summaryrefslogtreecommitdiffstats
path: root/src/core/hle
diff options
context:
space:
mode:
authortfarley <tfarleygithub@gmail.com>2015-05-19 06:21:33 +0200
committertfarley <tfarleygithub@gmail.com>2015-05-23 00:51:18 +0200
commit05dc633a8c35221ce8d6abe6ddf027f8b0bab6c2 (patch)
treed080c1efd3b928bda551cb9eee304547e66a4351 /src/core/hle
parentINI hw/sw renderer toggle (diff)
downloadyuzu-05dc633a8c35221ce8d6abe6ddf027f8b0bab6c2.tar
yuzu-05dc633a8c35221ce8d6abe6ddf027f8b0bab6c2.tar.gz
yuzu-05dc633a8c35221ce8d6abe6ddf027f8b0bab6c2.tar.bz2
yuzu-05dc633a8c35221ce8d6abe6ddf027f8b0bab6c2.tar.lz
yuzu-05dc633a8c35221ce8d6abe6ddf027f8b0bab6c2.tar.xz
yuzu-05dc633a8c35221ce8d6abe6ddf027f8b0bab6c2.tar.zst
yuzu-05dc633a8c35221ce8d6abe6ddf027f8b0bab6c2.zip
Diffstat (limited to 'src/core/hle')
-rw-r--r--src/core/hle/service/gsp_gpu.cpp9
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,