diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/hle/service/nvdrv/devices/nvhost_gpu.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/core/hle/service/nvdrv/devices/nvhost_gpu.cpp b/src/core/hle/service/nvdrv/devices/nvhost_gpu.cpp index 126782573..5a1123ad2 100644 --- a/src/core/hle/service/nvdrv/devices/nvhost_gpu.cpp +++ b/src/core/hle/service/nvdrv/devices/nvhost_gpu.cpp | |||
| @@ -132,9 +132,12 @@ u32 nvhost_gpu::SubmitGPFIFO(const std::vector<u8>& input, std::vector<u8>& outp | |||
| 132 | LOG_WARNING(Service_NVDRV, "(STUBBED) called, gpfifo={:X}, num_entries={:X}, flags={:X}", | 132 | LOG_WARNING(Service_NVDRV, "(STUBBED) called, gpfifo={:X}, num_entries={:X}, flags={:X}", |
| 133 | params.address, params.num_entries, params.flags); | 133 | params.address, params.num_entries, params.flags); |
| 134 | 134 | ||
| 135 | auto entries = std::vector<IoctlGpfifoEntry>(); | 135 | ASSERT_MSG(input.size() == |
| 136 | entries.resize(params.num_entries); | 136 | sizeof(IoctlSubmitGpfifo) + params.num_entries * sizeof(IoctlGpfifoEntry), |
| 137 | std::memcpy(&entries[0], &input.data()[sizeof(IoctlSubmitGpfifo)], | 137 | "Incorrect input size"); |
| 138 | |||
| 139 | std::vector<IoctlGpfifoEntry> entries(params.num_entries); | ||
| 140 | std::memcpy(entries.data(), &input[sizeof(IoctlSubmitGpfifo)], | ||
| 138 | params.num_entries * sizeof(IoctlGpfifoEntry)); | 141 | params.num_entries * sizeof(IoctlGpfifoEntry)); |
| 139 | for (auto entry : entries) { | 142 | for (auto entry : entries) { |
| 140 | Tegra::GPUVAddr va_addr = entry.Address(); | 143 | Tegra::GPUVAddr va_addr = entry.Address(); |