summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorwwylele <wwylele@gmail.com>2016-09-27 21:35:56 +0800
committerwwylele <wwylele@gmail.com>2016-09-29 10:01:34 +0800
commit30ab0fa45dc3b12821e8cf629158f78814774f7c (patch)
tree879a83a95daa8737d3a627e06abebae19319a0bc /src
parent48470e57fc52f7883d825675e4410fb4fe735643 (diff)
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) {
LOG_TRACE(HW_GPU, "MemoryFill from 0x%08x to 0x%08x", config.GetStartAddress(),
config.GetEndAddress());
- if (!is_second_filler) {
- GSP_GPU::SignalInterrupt(GSP_GPU::InterruptId::PSC0);
- } else {
- GSP_GPU::SignalInterrupt(GSP_GPU::InterruptId::PSC1);
+ // It seems that it won't signal interrupt if "address_start" is zero.
+ // TODO: hwtest this
+ if (config.GetStartAddress() != 0) {
+ if (!is_second_filler) {
+ GSP_GPU::SignalInterrupt(GSP_GPU::InterruptId::PSC0);
+ } else {
+ GSP_GPU::SignalInterrupt(GSP_GPU::InterruptId::PSC1);
+ }
}
// Reset "trigger" flag and set the "finish" flag