summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar wwylele2016-09-27 21:35:56 +0800
committerGravatar wwylele2016-09-29 10:01:34 +0800
commit30ab0fa45dc3b12821e8cf629158f78814774f7c (patch)
tree879a83a95daa8737d3a627e06abebae19319a0bc /src
parentgpu: add validity check for TextureCopy, DisplayTransfer and FillMemory (diff)
downloadyuzu-30ab0fa45dc3b12821e8cf629158f78814774f7c.tar.gz
yuzu-30ab0fa45dc3b12821e8cf629158f78814774f7c.tar.xz
yuzu-30ab0fa45dc3b12821e8cf629158f78814774f7c.zip
gpu: keep the old signal strategy for null pointer
previous commits changes the behaviour of interrupt when meeting invalid params. Regresses to the same behaviour as before needs more hwtest
Diffstat (limited to 'src')
-rw-r--r--src/core/hw/gpu.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/core/hw/gpu.cpp b/src/core/hw/gpu.cpp
index b90f5e5f9..8a46d71a5 100644
--- a/src/core/hw/gpu.cpp
+++ b/src/core/hw/gpu.cpp
@@ -416,10 +416,14 @@ inline void Write(u32 addr, const T data) {
416 LOG_TRACE(HW_GPU, "MemoryFill from 0x%08x to 0x%08x", config.GetStartAddress(), 416 LOG_TRACE(HW_GPU, "MemoryFill from 0x%08x to 0x%08x", config.GetStartAddress(),
417 config.GetEndAddress()); 417 config.GetEndAddress());
418 418
419 if (!is_second_filler) { 419 // It seems that it won't signal interrupt if "address_start" is zero.
420 GSP_GPU::SignalInterrupt(GSP_GPU::InterruptId::PSC0); 420 // TODO: hwtest this
421 } else { 421 if (config.GetStartAddress() != 0) {
422 GSP_GPU::SignalInterrupt(GSP_GPU::InterruptId::PSC1); 422 if (!is_second_filler) {
423 GSP_GPU::SignalInterrupt(GSP_GPU::InterruptId::PSC0);
424 } else {
425 GSP_GPU::SignalInterrupt(GSP_GPU::InterruptId::PSC1);
426 }
423 } 427 }
424 428
425 // Reset "trigger" flag and set the "finish" flag 429 // Reset "trigger" flag and set the "finish" flag