diff options
Diffstat (limited to 'src/core')
| -rw-r--r-- | src/core/hle/service/nvdrv/devices/nvhost_nvdec.cpp | 6 | ||||
| -rw-r--r-- | src/core/hle/service/nvdrv/devices/nvhost_vic.cpp | 12 |
2 files changed, 8 insertions, 10 deletions
diff --git a/src/core/hle/service/nvdrv/devices/nvhost_nvdec.cpp b/src/core/hle/service/nvdrv/devices/nvhost_nvdec.cpp index 4e58b9b80..e2f671d8e 100644 --- a/src/core/hle/service/nvdrv/devices/nvhost_nvdec.cpp +++ b/src/core/hle/service/nvdrv/devices/nvhost_nvdec.cpp | |||
| @@ -31,9 +31,8 @@ NvResult nvhost_nvdec::Ioctl1(DeviceFD fd, Ioctl command, const std::vector<u8>& | |||
| 31 | return SetSubmitTimeout(input, output); | 31 | return SetSubmitTimeout(input, output); |
| 32 | case 0x9: | 32 | case 0x9: |
| 33 | return MapBuffer(input, output); | 33 | return MapBuffer(input, output); |
| 34 | case 0xa: { | 34 | case 0xa: |
| 35 | return UnmapBuffer(input, output); | 35 | return UnmapBuffer(input, output); |
| 36 | } | ||
| 37 | default: | 36 | default: |
| 38 | break; | 37 | break; |
| 39 | } | 38 | } |
| @@ -67,7 +66,8 @@ NvResult nvhost_nvdec::Ioctl3(DeviceFD fd, Ioctl command, const std::vector<u8>& | |||
| 67 | void nvhost_nvdec::OnOpen(DeviceFD fd) {} | 66 | void nvhost_nvdec::OnOpen(DeviceFD fd) {} |
| 68 | 67 | ||
| 69 | void nvhost_nvdec::OnClose(DeviceFD fd) { | 68 | void nvhost_nvdec::OnClose(DeviceFD fd) { |
| 70 | system.GPU().ClearCommandBuffer(); | 69 | LOG_INFO(Service_NVDRV, "NVDEC video stream ended"); |
| 70 | system.GPU().ClearCdmaInstance(); | ||
| 71 | } | 71 | } |
| 72 | 72 | ||
| 73 | } // namespace Service::Nvidia::Devices | 73 | } // namespace Service::Nvidia::Devices |
diff --git a/src/core/hle/service/nvdrv/devices/nvhost_vic.cpp b/src/core/hle/service/nvdrv/devices/nvhost_vic.cpp index 0421fb956..301efe8a1 100644 --- a/src/core/hle/service/nvdrv/devices/nvhost_vic.cpp +++ b/src/core/hle/service/nvdrv/devices/nvhost_vic.cpp | |||
| @@ -29,13 +29,8 @@ NvResult nvhost_vic::Ioctl1(DeviceFD fd, Ioctl command, const std::vector<u8>& i | |||
| 29 | return GetWaitbase(input, output); | 29 | return GetWaitbase(input, output); |
| 30 | case 0x9: | 30 | case 0x9: |
| 31 | return MapBuffer(input, output); | 31 | return MapBuffer(input, output); |
| 32 | case 0xa: { | 32 | case 0xa: |
| 33 | if (command.length == 0x1c) { | ||
| 34 | Tegra::ChCommandHeaderList cmdlist{{0xDEADB33F}}; | ||
| 35 | system.GPU().PushCommandBuffer(cmdlist); | ||
| 36 | } | ||
| 37 | return UnmapBuffer(input, output); | 33 | return UnmapBuffer(input, output); |
| 38 | } | ||
| 39 | default: | 34 | default: |
| 40 | break; | 35 | break; |
| 41 | } | 36 | } |
| @@ -69,6 +64,9 @@ NvResult nvhost_vic::Ioctl3(DeviceFD fd, Ioctl command, const std::vector<u8>& i | |||
| 69 | } | 64 | } |
| 70 | 65 | ||
| 71 | void nvhost_vic::OnOpen(DeviceFD fd) {} | 66 | void nvhost_vic::OnOpen(DeviceFD fd) {} |
| 72 | void nvhost_vic::OnClose(DeviceFD fd) {} | 67 | |
| 68 | void nvhost_vic::OnClose(DeviceFD fd) { | ||
| 69 | system.GPU().ClearCdmaInstance(); | ||
| 70 | } | ||
| 73 | 71 | ||
| 74 | } // namespace Service::Nvidia::Devices | 72 | } // namespace Service::Nvidia::Devices |