diff options
author | Lioncash <mathew1800@gmail.com> | 2018-08-04 08:57:08 +0200 |
---|---|---|
committer | Lioncash <mathew1800@gmail.com> | 2018-08-04 08:57:11 +0200 |
commit | 3b678b9e8e46d098571b22f1c25f7ff36caf3c2d (patch) | |
tree | ea918556c1d0a6a466e94c0b38d3adf317a9611d | |
parent | gl_shader_manager: Amend sign differences in an assertion comparison in SetShaderUniformBlockBinding() (diff) | |
download | yuzu-3b678b9e8e46d098571b22f1c25f7ff36caf3c2d.tar yuzu-3b678b9e8e46d098571b22f1c25f7ff36caf3c2d.tar.gz yuzu-3b678b9e8e46d098571b22f1c25f7ff36caf3c2d.tar.bz2 yuzu-3b678b9e8e46d098571b22f1c25f7ff36caf3c2d.tar.lz yuzu-3b678b9e8e46d098571b22f1c25f7ff36caf3c2d.tar.xz yuzu-3b678b9e8e46d098571b22f1c25f7ff36caf3c2d.tar.zst yuzu-3b678b9e8e46d098571b22f1c25f7ff36caf3c2d.zip |
-rw-r--r-- | src/video_core/renderer_opengl/gl_shader_manager.cpp | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/video_core/renderer_opengl/gl_shader_manager.cpp b/src/video_core/renderer_opengl/gl_shader_manager.cpp index 1d88f8cec..415d42fda 100644 --- a/src/video_core/renderer_opengl/gl_shader_manager.cpp +++ b/src/video_core/renderer_opengl/gl_shader_manager.cpp @@ -13,14 +13,16 @@ namespace Impl { static void SetShaderUniformBlockBinding(GLuint shader, const char* name, Maxwell3D::Regs::ShaderStage binding, size_t expected_size) { - GLuint ub_index = glGetUniformBlockIndex(shader, name); - if (ub_index != GL_INVALID_INDEX) { - GLint ub_size = 0; - glGetActiveUniformBlockiv(shader, ub_index, GL_UNIFORM_BLOCK_DATA_SIZE, &ub_size); - ASSERT_MSG(static_cast<size_t>(ub_size) == expected_size, - "Uniform block size did not match! Got {}, expected {}", ub_size, expected_size); - glUniformBlockBinding(shader, ub_index, static_cast<GLuint>(binding)); + const GLuint ub_index = glGetUniformBlockIndex(shader, name); + if (ub_index == GL_INVALID_INDEX) { + return; } + + GLint ub_size = 0; + glGetActiveUniformBlockiv(shader, ub_index, GL_UNIFORM_BLOCK_DATA_SIZE, &ub_size); + ASSERT_MSG(static_cast<size_t>(ub_size) == expected_size, + "Uniform block size did not match! Got {}, expected {}", ub_size, expected_size); + glUniformBlockBinding(shader, ub_index, static_cast<GLuint>(binding)); } void SetShaderUniformBlockBindings(GLuint shader) { |