Просмотр исходного кода

MaxwellDMA: Correct copying on accuracy level.

Fernando Sahmkow 6 лет назад
Родитель
Сommit
1b3be8a8f8
1 измененных файлов с 7 добавлено и 2 удалено
  1. 7 2
      src/video_core/engines/maxwell_dma.cpp

+ 7 - 2
src/video_core/engines/maxwell_dma.cpp

@@ -104,8 +104,13 @@ void MaxwellDMA::HandleCopy() {
             write_buffer.resize(dst_size);
             write_buffer.resize(dst_size);
         }
         }
 
 
-        memory_manager.ReadBlock(source, read_buffer.data(), src_size);
-        memory_manager.ReadBlock(dest, write_buffer.data(), dst_size);
+        if (Settings::IsGPULevelExtreme()) {
+            memory_manager.ReadBlock(source, read_buffer.data(), src_size);
+            memory_manager.ReadBlock(dest, write_buffer.data(), dst_size);
+        } else {
+            memory_manager.ReadBlockUnsafe(source, read_buffer.data(), src_size);
+            memory_manager.ReadBlockUnsafe(dest, write_buffer.data(), dst_size);
+        }
 
 
         Texture::UnswizzleSubrect(
         Texture::UnswizzleSubrect(
             regs.x_count, regs.y_count, regs.dst_pitch, regs.src_params.size_x, bytes_per_pixel,
             regs.x_count, regs.y_count, regs.dst_pitch, regs.src_params.size_x, bytes_per_pixel,