Explorar el Código

Zero out memory region of recreated surface before flushing

FernandoS27 hace 7 años
padre
commit
dc85e3bff1
Se han modificado 1 ficheros con 2 adiciones y 0 borrados
  1. 2 0
      src/video_core/renderer_opengl/gl_rasterizer_cache.cpp

+ 2 - 0
src/video_core/renderer_opengl/gl_rasterizer_cache.cpp

@@ -1325,6 +1325,8 @@ void RasterizerCacheOpenGL::AccurateCopySurface(const Surface& src_surface,
                                                 const Surface& dst_surface) {
                                                 const Surface& dst_surface) {
     const auto& src_params{src_surface->GetSurfaceParams()};
     const auto& src_params{src_surface->GetSurfaceParams()};
     const auto& dst_params{dst_surface->GetSurfaceParams()};
     const auto& dst_params{dst_surface->GetSurfaceParams()};
+    auto* start = Memory::GetPointer(src_params.addr);
+    std::fill(start, start + dst_params.MemorySize(), 0);
     FlushRegion(src_params.addr, dst_params.MemorySize());
     FlushRegion(src_params.addr, dst_params.MemorySize());
     LoadSurface(dst_surface);
     LoadSurface(dst_surface);
 }
 }