diff options
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, | |||
| 571 | buffer_draw_state.bindpoint = bindpoint; | 571 | buffer_draw_state.bindpoint = bindpoint; |
| 572 | 572 | ||
| 573 | VAddr addr = gpu.memory_manager->PhysicalToVirtualAddress(buffer.address); | 573 | VAddr addr = gpu.memory_manager->PhysicalToVirtualAddress(buffer.address); |
| 574 | const u8* data = Memory::GetPointer(addr); | 574 | std::vector<u8> data(used_buffer.GetSize() * sizeof(float)); |
| 575 | Memory::ReadBlock(addr, data.data(), data.size()); | ||
| 576 | |||
| 575 | glBindBuffer(GL_SHADER_STORAGE_BUFFER, buffer_draw_state.ssbo); | 577 | glBindBuffer(GL_SHADER_STORAGE_BUFFER, buffer_draw_state.ssbo); |
| 576 | glBufferData(GL_SHADER_STORAGE_BUFFER, used_buffer.GetSize() * sizeof(float), data, | 578 | glBufferData(GL_SHADER_STORAGE_BUFFER, data.size(), data.data(), GL_DYNAMIC_DRAW); |
| 577 | GL_DYNAMIC_DRAW); | ||
| 578 | glBindBuffer(GL_SHADER_STORAGE_BUFFER, 0); | 579 | glBindBuffer(GL_SHADER_STORAGE_BUFFER, 0); |
| 579 | } | 580 | } |
| 580 | 581 | ||