summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl/gl_state.cpp
diff options
context:
space:
mode:
authorMarkus Wick <markus@selfnet.de>2018-08-10 10:29:37 +0200
committerMarkus Wick <markus@selfnet.de>2018-08-12 16:10:26 +0200
commit6ff7906ddc89d8f970702d320f29317831de7975 (patch)
tree97c15d6b51b71a1a2904dc1c148ff7b9c66e0477 /src/video_core/renderer_opengl/gl_state.cpp
parentgl_rasterizer: Use the streaming buffer itself for the constant buffer. (diff)
downloadyuzu-6ff7906ddc89d8f970702d320f29317831de7975.tar
yuzu-6ff7906ddc89d8f970702d320f29317831de7975.tar.gz
yuzu-6ff7906ddc89d8f970702d320f29317831de7975.tar.bz2
yuzu-6ff7906ddc89d8f970702d320f29317831de7975.tar.lz
yuzu-6ff7906ddc89d8f970702d320f29317831de7975.tar.xz
yuzu-6ff7906ddc89d8f970702d320f29317831de7975.tar.zst
yuzu-6ff7906ddc89d8f970702d320f29317831de7975.zip
Diffstat (limited to 'src/video_core/renderer_opengl/gl_state.cpp')
-rw-r--r--src/video_core/renderer_opengl/gl_state.cpp9
1 files changed, 6 insertions, 3 deletions
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);
}
}
}