diff options
| author | 2018-06-07 11:21:36 -0400 | |
|---|---|---|
| committer | 2018-06-07 11:21:36 -0400 | |
| commit | ee318d4015f1d19fc80d0bfc3d3aba29c3df342e (patch) | |
| tree | 122cf63b67d76f6b77924b2c721e6714c27d1579 /src | |
| parent | Merge pull request #522 from mailwl/mm-u (diff) | |
| parent | GLRenderer: Write the shader stage configuration UBO data *before* copying it... (diff) | |
| download | yuzu-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.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 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); |