Przeglądaj źródła

gl_rasterizer: Skip zero addr/sized regions on flush/invalidate.

bunnei 7 lat temu
rodzic
commit
032e4c4ca3

+ 6 - 0
src/video_core/renderer_opengl/gl_rasterizer.cpp

@@ -749,11 +749,17 @@ void RasterizerOpenGL::FlushAll() {}
 
 
 void RasterizerOpenGL::FlushRegion(CacheAddr addr, u64 size) {
 void RasterizerOpenGL::FlushRegion(CacheAddr addr, u64 size) {
     MICROPROFILE_SCOPE(OpenGL_CacheManagement);
     MICROPROFILE_SCOPE(OpenGL_CacheManagement);
+    if (!addr || !size) {
+        return;
+    }
     res_cache.FlushRegion(addr, size);
     res_cache.FlushRegion(addr, size);
 }
 }
 
 
 void RasterizerOpenGL::InvalidateRegion(CacheAddr addr, u64 size) {
 void RasterizerOpenGL::InvalidateRegion(CacheAddr addr, u64 size) {
     MICROPROFILE_SCOPE(OpenGL_CacheManagement);
     MICROPROFILE_SCOPE(OpenGL_CacheManagement);
+    if (!addr || !size) {
+        return;
+    }
     res_cache.InvalidateRegion(addr, size);
     res_cache.InvalidateRegion(addr, size);
     shader_cache.InvalidateRegion(addr, size);
     shader_cache.InvalidateRegion(addr, size);
     global_cache.InvalidateRegion(addr, size);
     global_cache.InvalidateRegion(addr, size);