diff options
author | bunnei <bunneidev@gmail.com> | 2018-06-08 16:39:55 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-06-08 16:39:55 -0400 |
commit | a941a94148190f71912fface3405f87b2a894b83 (patch) | |
tree | bb8a51beb4026c47921802817a1ab2e03f9bfc44 /src | |
parent | 5aff2d38a940892ce93a813e8de5100f919956d2 (diff) | |
parent | 47dc5e0dabeedc9a080c51214418e4761069ae90 (diff) |
Merge pull request #546 from Subv/flush_ubo_buffer
Rasterizer: Flush the written region when writing shader uniform data before copying it to the uniform buffers.
Diffstat (limited to 'src')
-rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp index 0bd235218..59761c6b1 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp @@ -218,6 +218,9 @@ void RasterizerOpenGL::SetupShaders(u8* buffer_ptr, GLintptr buffer_offset) { ubo.SetFromRegs(gpu.state.shader_stages[stage]); std::memcpy(buffer_ptr, &ubo, sizeof(ubo)); + // Flush the buffer so that the GPU can see the data we just wrote. + glFlushMappedBufferRange(GL_ARRAY_BUFFER, buffer_offset, sizeof(ubo)); + // Upload uniform data as one UBO per stage const GLintptr ubo_offset = buffer_offset; copy_buffer(uniform_buffers[stage].handle, ubo_offset, |