diff options
| author | bunnei <bunneidev@gmail.com> | 2015-05-22 19:40:57 -0400 |
|---|---|---|
| committer | bunnei <bunneidev@gmail.com> | 2015-05-22 19:40:57 -0400 |
| commit | 7b94b312d39037e9a90c981b49743965c0d1a743 (patch) | |
| tree | f922946de22f54bf0c0aaaff01371f5ca7a2fc57 /src/core/hle/service/gsp_gpu.cpp | |
| parent | eca2b71fa8a6c4c104695b866952e4295dc6466f (diff) | |
| parent | 62668688e1055dbfcbff824acfd9c9f970fc2c09 (diff) | |
Merge pull request #789 from tfarley/opengl-renderer
OpenGL Hardware Renderer
Diffstat (limited to 'src/core/hle/service/gsp_gpu.cpp')
| -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 @@ #include "core/hw/lcd.h" #include "video_core/gpu_debugger.h" +#include "video_core/video_core.h" // Main graphics debugger object - TODO: Here is probably not the best place for this GraphicsDebugger g_debugger; @@ -264,6 +265,8 @@ static void FlushDataCache(Service::Interface* self) { u32 size = cmd_buff[2]; u32 process = cmd_buff[4]; + VideoCore::g_renderer->hw_rasterizer->NotifyFlush(Memory::VirtualToPhysicalAddress(address), size); + // TODO(purpasmart96): Verify return header on HW cmd_buff[1] = RESULT_SUCCESS.raw; // No error @@ -352,10 +355,16 @@ static void ExecuteCommand(const Command& command, u32 thread_id) { // GX request DMA - typically used for copying memory from GSP heap to VRAM case CommandId::REQUEST_DMA: + VideoCore::g_renderer->hw_rasterizer->NotifyPreRead(Memory::VirtualToPhysicalAddress(command.dma_request.source_address), + command.dma_request.size); + memcpy(Memory::GetPointer(command.dma_request.dest_address), Memory::GetPointer(command.dma_request.source_address), command.dma_request.size); SignalInterrupt(InterruptId::DMA); + + VideoCore::g_renderer->hw_rasterizer->NotifyFlush(Memory::VirtualToPhysicalAddress(command.dma_request.dest_address), + command.dma_request.size); break; // ctrulib homebrew sends all relevant command list data with this command, |
