From 6ff7906ddc89d8f970702d320f29317831de7975 Mon Sep 17 00:00:00 2001 From: Markus Wick Date: Fri, 10 Aug 2018 10:29:37 +0200 Subject: gl_rasterizer: Use the stream buffer for constant buffers. --- src/video_core/renderer_opengl/gl_state.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src/video_core/renderer_opengl/gl_state.cpp') diff --git a/src/video_core/renderer_opengl/gl_state.cpp b/src/video_core/renderer_opengl/gl_state.cpp index 68bacd4c5..212c87e0c 100644 --- a/src/video_core/renderer_opengl/gl_state.cpp +++ b/src/video_core/renderer_opengl/gl_state.cpp @@ -209,10 +209,13 @@ void OpenGLState::Apply() const { const auto& current = cur_state.draw.const_buffers[stage][buffer_id]; const auto& new_state = draw.const_buffers[stage][buffer_id]; - if (current.enabled != new_state.enabled || current.bindpoint != new_state.bindpoint || - current.ssbo != new_state.ssbo) { + if (std::tie(current.enabled, current.bindpoint, current.ssbo, current.size, + current.offset) != std::tie(new_state.enabled, new_state.bindpoint, + new_state.ssbo, new_state.size, + new_state.offset)) { if (new_state.enabled) { - glBindBufferBase(GL_UNIFORM_BUFFER, new_state.bindpoint, new_state.ssbo); + glBindBufferRange(GL_UNIFORM_BUFFER, new_state.bindpoint, new_state.ssbo, + new_state.offset, new_state.size); } } } -- cgit v1.2.3