diff options
Diffstat (limited to 'src/core/hle')
| -rw-r--r-- | src/core/hle/service/gsp_gpu.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/core/hle/service/gsp_gpu.cpp b/src/core/hle/service/gsp_gpu.cpp index c11c5faba..c56475ae4 100644 --- a/src/core/hle/service/gsp_gpu.cpp +++ b/src/core/hle/service/gsp_gpu.cpp | |||
| @@ -15,6 +15,7 @@ | |||
| 15 | #include "core/hw/lcd.h" | 15 | #include "core/hw/lcd.h" |
| 16 | 16 | ||
| 17 | #include "video_core/gpu_debugger.h" | 17 | #include "video_core/gpu_debugger.h" |
| 18 | #include "video_core/video_core.h" | ||
| 18 | 19 | ||
| 19 | // Main graphics debugger object - TODO: Here is probably not the best place for this | 20 | // Main graphics debugger object - TODO: Here is probably not the best place for this |
| 20 | GraphicsDebugger g_debugger; | 21 | GraphicsDebugger g_debugger; |
| @@ -264,6 +265,8 @@ static void FlushDataCache(Service::Interface* self) { | |||
| 264 | u32 size = cmd_buff[2]; | 265 | u32 size = cmd_buff[2]; |
| 265 | u32 process = cmd_buff[4]; | 266 | u32 process = cmd_buff[4]; |
| 266 | 267 | ||
| 268 | VideoCore::g_renderer->hw_rasterizer->NotifyFlush(Memory::VirtualToPhysicalAddress(address), size); | ||
| 269 | |||
| 267 | // TODO(purpasmart96): Verify return header on HW | 270 | // TODO(purpasmart96): Verify return header on HW |
| 268 | 271 | ||
| 269 | cmd_buff[1] = RESULT_SUCCESS.raw; // No error | 272 | cmd_buff[1] = RESULT_SUCCESS.raw; // No error |
| @@ -352,10 +355,16 @@ static void ExecuteCommand(const Command& command, u32 thread_id) { | |||
| 352 | 355 | ||
| 353 | // GX request DMA - typically used for copying memory from GSP heap to VRAM | 356 | // GX request DMA - typically used for copying memory from GSP heap to VRAM |
| 354 | case CommandId::REQUEST_DMA: | 357 | case CommandId::REQUEST_DMA: |
| 358 | VideoCore::g_renderer->hw_rasterizer->NotifyPreRead(Memory::VirtualToPhysicalAddress(command.dma_request.source_address), | ||
| 359 | command.dma_request.size); | ||
| 360 | |||
| 355 | memcpy(Memory::GetPointer(command.dma_request.dest_address), | 361 | memcpy(Memory::GetPointer(command.dma_request.dest_address), |
| 356 | Memory::GetPointer(command.dma_request.source_address), | 362 | Memory::GetPointer(command.dma_request.source_address), |
| 357 | command.dma_request.size); | 363 | command.dma_request.size); |
| 358 | SignalInterrupt(InterruptId::DMA); | 364 | SignalInterrupt(InterruptId::DMA); |
| 365 | |||
| 366 | VideoCore::g_renderer->hw_rasterizer->NotifyFlush(Memory::VirtualToPhysicalAddress(command.dma_request.dest_address), | ||
| 367 | command.dma_request.size); | ||
| 359 | break; | 368 | break; |
| 360 | 369 | ||
| 361 | // ctrulib homebrew sends all relevant command list data with this command, | 370 | // ctrulib homebrew sends all relevant command list data with this command, |