diff options
| author | bunnei <bunneidev@gmail.com> | 2019-03-16 00:05:24 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-03-16 00:05:24 -0400 |
| commit | 47b622825ca0ff664044abdf2d64a141452a8d1c (patch) | |
| tree | ff18141caee2b1a460e6d5e22283e78c073880b0 /src/video_core/engines/maxwell_3d.cpp | |
| parent | 06ac6460d31036dddf7e4ae12355391035cc30ca (diff) | |
| parent | 2eaf6c41a4686028c0abc84d1be6fd48a67cf49f (diff) | |
Merge pull request #2237 from bunnei/cache-host-addr
gpu: Use host address for caching instead of guest address.
Diffstat (limited to 'src/video_core/engines/maxwell_3d.cpp')
| -rw-r--r-- | src/video_core/engines/maxwell_3d.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/video_core/engines/maxwell_3d.cpp b/src/video_core/engines/maxwell_3d.cpp index 144e7fa82..49979694e 100644 --- a/src/video_core/engines/maxwell_3d.cpp +++ b/src/video_core/engines/maxwell_3d.cpp @@ -396,7 +396,10 @@ void Maxwell3D::ProcessCBData(u32 value) { const auto address = memory_manager.GpuToCpuAddress(buffer_address + regs.const_buffer.cb_pos); ASSERT_MSG(address, "Invalid GPU address"); - Memory::Write32(*address, value); + u8* ptr{Memory::GetPointer(*address)}; + rasterizer.InvalidateRegion(ToCacheAddr(ptr), sizeof(u32)); + std::memcpy(ptr, &value, sizeof(u32)); + dirty_flags.OnMemoryWrite(); // Increment the current buffer position. |
