Răsfoiți Sursa

GPU: Don't use GetPointer when uploading the constbuffer data to the GPU.

Subv 8 ani în urmă
părinte
comite
e128e90350
1 a modificat fișierele cu 4 adăugiri și 3 ștergeri
  1. 4 3
      src/video_core/renderer_opengl/gl_rasterizer.cpp

+ 4 - 3
src/video_core/renderer_opengl/gl_rasterizer.cpp

@@ -571,10 +571,11 @@ void RasterizerOpenGL::SetupConstBuffers(Maxwell::ShaderStage stage,
         buffer_draw_state.bindpoint = bindpoint;
 
         VAddr addr = gpu.memory_manager->PhysicalToVirtualAddress(buffer.address);
-        const u8* data = Memory::GetPointer(addr);
+        std::vector<u8> data(used_buffer.GetSize() * sizeof(float));
+        Memory::ReadBlock(addr, data.data(), data.size());
+
         glBindBuffer(GL_SHADER_STORAGE_BUFFER, buffer_draw_state.ssbo);
-        glBufferData(GL_SHADER_STORAGE_BUFFER, used_buffer.GetSize() * sizeof(float), data,
-                     GL_DYNAMIC_DRAW);
+        glBufferData(GL_SHADER_STORAGE_BUFFER, data.size(), data.data(), GL_DYNAMIC_DRAW);
         glBindBuffer(GL_SHADER_STORAGE_BUFFER, 0);
     }