diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/hle/service/nvdrv/devices/nvhost_gpu.cpp | 6 | ||||
| -rw-r--r-- | src/core/hle/service/nvdrv/devices/nvhost_gpu.h | 1 |
2 files changed, 5 insertions, 2 deletions
diff --git a/src/core/hle/service/nvdrv/devices/nvhost_gpu.cpp b/src/core/hle/service/nvdrv/devices/nvhost_gpu.cpp index 9d1107594..8083f5a87 100644 --- a/src/core/hle/service/nvdrv/devices/nvhost_gpu.cpp +++ b/src/core/hle/service/nvdrv/devices/nvhost_gpu.cpp | |||
| @@ -119,8 +119,10 @@ u32 nvhost_gpu::AllocGPFIFOEx2(const std::vector<u8>& input, std::vector<u8>& ou | |||
| 119 | params.num_entries, params.flags, params.unk0, params.unk1, params.unk2, | 119 | params.num_entries, params.flags, params.unk0, params.unk1, params.unk2, |
| 120 | params.unk3); | 120 | params.unk3); |
| 121 | 121 | ||
| 122 | params.fence_out.id = 0; | 122 | auto& gpu = Core::System::GetInstance().GPU(); |
| 123 | params.fence_out.value = 0; | 123 | params.fence_out.id = channels; |
| 124 | params.fence_out.value = gpu.GetSyncpointValue(channels); | ||
| 125 | channels++; | ||
| 124 | std::memcpy(output.data(), ¶ms, output.size()); | 126 | std::memcpy(output.data(), ¶ms, output.size()); |
| 125 | return 0; | 127 | return 0; |
| 126 | } | 128 | } |
diff --git a/src/core/hle/service/nvdrv/devices/nvhost_gpu.h b/src/core/hle/service/nvdrv/devices/nvhost_gpu.h index 0729eeb8d..54378cb5d 100644 --- a/src/core/hle/service/nvdrv/devices/nvhost_gpu.h +++ b/src/core/hle/service/nvdrv/devices/nvhost_gpu.h | |||
| @@ -190,6 +190,7 @@ private: | |||
| 190 | u32 ChannelSetTimeout(const std::vector<u8>& input, std::vector<u8>& output); | 190 | u32 ChannelSetTimeout(const std::vector<u8>& input, std::vector<u8>& output); |
| 191 | 191 | ||
| 192 | std::shared_ptr<nvmap> nvmap_dev; | 192 | std::shared_ptr<nvmap> nvmap_dev; |
| 193 | u32 channels{}; | ||
| 193 | }; | 194 | }; |
| 194 | 195 | ||
| 195 | } // namespace Service::Nvidia::Devices | 196 | } // namespace Service::Nvidia::Devices |