diff options
Diffstat (limited to 'src/core')
| -rw-r--r-- | src/core/hle/service/nvdrv/devices/nvhost_as_gpu.cpp | 12 |
1 files changed, 2 insertions, 10 deletions
diff --git a/src/core/hle/service/nvdrv/devices/nvhost_as_gpu.cpp b/src/core/hle/service/nvdrv/devices/nvhost_as_gpu.cpp index b7964d66e..af62d33d2 100644 --- a/src/core/hle/service/nvdrv/devices/nvhost_as_gpu.cpp +++ b/src/core/hle/service/nvdrv/devices/nvhost_as_gpu.cpp | |||
| @@ -173,16 +173,8 @@ u32 nvhost_as_gpu::UnmapBuffer(const std::vector<u8>& input, std::vector<u8>& ou | |||
| 173 | return 0; | 173 | return 0; |
| 174 | } | 174 | } |
| 175 | 175 | ||
| 176 | auto& system_instance = Core::System::GetInstance(); | 176 | params.offset = Core::System::GetInstance().GPU().MemoryManager().UnmapBuffer(params.offset, |
| 177 | 177 | itr->second.size); | |
| 178 | // Remove this memory region from the rasterizer cache. | ||
| 179 | auto& gpu = system_instance.GPU(); | ||
| 180 | auto cpu_addr = gpu.MemoryManager().GpuToCpuAddress(params.offset); | ||
| 181 | ASSERT(cpu_addr); | ||
| 182 | gpu.FlushAndInvalidateRegion(ToCacheAddr(Memory::GetPointer(*cpu_addr)), itr->second.size); | ||
| 183 | |||
| 184 | params.offset = gpu.MemoryManager().UnmapBuffer(params.offset, itr->second.size); | ||
| 185 | |||
| 186 | buffer_mappings.erase(itr->second.offset); | 178 | buffer_mappings.erase(itr->second.offset); |
| 187 | 179 | ||
| 188 | std::memcpy(output.data(), ¶ms, output.size()); | 180 | std::memcpy(output.data(), ¶ms, output.size()); |