summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar bunnei2018-06-07 11:21:36 -0400
committerGravatar GitHub2018-06-07 11:21:36 -0400
commitee318d4015f1d19fc80d0bfc3d3aba29c3df342e (patch)
tree122cf63b67d76f6b77924b2c721e6714c27d1579 /src
parentMerge pull request #522 from mailwl/mm-u (diff)
parentGLRenderer: Write the shader stage configuration UBO data *before* copying it... (diff)
downloadyuzu-ee318d4015f1d19fc80d0bfc3d3aba29c3df342e.tar.gz
yuzu-ee318d4015f1d19fc80d0bfc3d3aba29c3df342e.tar.xz
yuzu-ee318d4015f1d19fc80d0bfc3d3aba29c3df342e.zip
Merge pull request #543 from Subv/uniforms
GLRenderer: Write the shader stage configuration UBO data *before* copying it to the GPU.
Diffstat (limited to 'src')
-rw-r--r--src/video_core/renderer_opengl/gl_rasterizer.cpp7
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 2e90ebcf4..0bd235218 100644
--- a/src/video_core/renderer_opengl/gl_rasterizer.cpp
+++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp
@@ -214,13 +214,14 @@ void RasterizerOpenGL::SetupShaders(u8* buffer_ptr, GLintptr buffer_offset) {
214 continue; 214 continue;
215 } 215 }
216 216
217 GLShader::MaxwellUniformData ubo{};
218 ubo.SetFromRegs(gpu.state.shader_stages[stage]);
219 std::memcpy(buffer_ptr, &ubo, sizeof(ubo));
220
217 // Upload uniform data as one UBO per stage 221 // Upload uniform data as one UBO per stage
218 const GLintptr ubo_offset = buffer_offset; 222 const GLintptr ubo_offset = buffer_offset;
219 copy_buffer(uniform_buffers[stage].handle, ubo_offset, 223 copy_buffer(uniform_buffers[stage].handle, ubo_offset,
220 sizeof(GLShader::MaxwellUniformData)); 224 sizeof(GLShader::MaxwellUniformData));
221 GLShader::MaxwellUniformData* ub_ptr =
222 reinterpret_cast<GLShader::MaxwellUniformData*>(buffer_ptr);
223 ub_ptr->SetFromRegs(gpu.state.shader_stages[stage]);
224 225
225 buffer_ptr += sizeof(GLShader::MaxwellUniformData); 226 buffer_ptr += sizeof(GLShader::MaxwellUniformData);
226 buffer_offset += sizeof(GLShader::MaxwellUniformData); 227 buffer_offset += sizeof(GLShader::MaxwellUniformData);