فهرست منبع

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
wwylele 9 سال پیش
والد
کامیت
30ab0fa45d
1فایلهای تغییر یافته به همراه8 افزوده شده و 4 حذف شده
  1. 8 4
      src/core/hw/gpu.cpp

+ 8 - 4
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(),
             LOG_TRACE(HW_GPU, "MemoryFill from 0x%08x to 0x%08x", config.GetStartAddress(),
                       config.GetEndAddress());
                       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
             // Reset "trigger" flag and set the "finish" flag