From 30ab0fa45dc3b12821e8cf629158f78814774f7c Mon Sep 17 00:00:00 2001
From: wwylele <wwylele@gmail.com>
Date: Tue, 27 Sep 2016 21:35:56 +0800
Subject: [PATCH] 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
---
 src/core/hw/gpu.cpp | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/src/core/hw/gpu.cpp b/src/core/hw/gpu.cpp
index b90f5e5f95..8a46d71a50 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