diff options
| author | 2016-09-27 21:35:56 +0800 | |
|---|---|---|
| committer | 2016-09-29 10:01:34 +0800 | |
| commit | 30ab0fa45dc3b12821e8cf629158f78814774f7c (patch) | |
| tree | 879a83a95daa8737d3a627e06abebae19319a0bc | |
| parent | gpu: add validity check for TextureCopy, DisplayTransfer and FillMemory (diff) | |
| download | yuzu-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
| -rw-r--r-- | src/core/hw/gpu.cpp | 12 |
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 |