diff options
author | Subv <subv2112@gmail.com> | 2018-04-15 11:18:09 -0500 |
---|---|---|
committer | Subv <subv2112@gmail.com> | 2018-04-15 11:18:09 -0500 |
commit | e128e90350a95bbeeebb3987c3513537e5e4289c (patch) | |
tree | f1487899eaee35fe95e136deb853222871ef585c /src | |
parent | 7da47da66e150e1d5bc1e43a37b3d9d9554b1c5f (diff) |
GPU: Don't use GetPointer when uploading the constbuffer data to the GPU.
Diffstat (limited to 'src')
-rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp index 8709f9fc2..a778dfc64 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer.cpp +++ b/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); } |