summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl/gl_buffer_cache.h
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2021-06-10 07:24:12 +0200
committerameerj <52414509+ameerj@users.noreply.github.com>2021-07-23 03:51:35 +0200
commit60a96c49e59e600685b9a79d80b2685318b4fb64 (patch)
tree9bd2a745edac5dfe7352ea314dd1a1321075348e /src/video_core/renderer_opengl/gl_buffer_cache.h
parentshader_environment: Add shader_local_memory_crs_size to local memory size (diff)
downloadyuzu-60a96c49e59e600685b9a79d80b2685318b4fb64.tar
yuzu-60a96c49e59e600685b9a79d80b2685318b4fb64.tar.gz
yuzu-60a96c49e59e600685b9a79d80b2685318b4fb64.tar.bz2
yuzu-60a96c49e59e600685b9a79d80b2685318b4fb64.tar.lz
yuzu-60a96c49e59e600685b9a79d80b2685318b4fb64.tar.xz
yuzu-60a96c49e59e600685b9a79d80b2685318b4fb64.tar.zst
yuzu-60a96c49e59e600685b9a79d80b2685318b4fb64.zip
Diffstat (limited to '')
-rw-r--r--src/video_core/renderer_opengl/gl_buffer_cache.h12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/video_core/renderer_opengl/gl_buffer_cache.h b/src/video_core/renderer_opengl/gl_buffer_cache.h
index bc16abafb..060d36427 100644
--- a/src/video_core/renderer_opengl/gl_buffer_cache.h
+++ b/src/video_core/renderer_opengl/gl_buffer_cache.h
@@ -92,16 +92,14 @@ public:
VideoCore::Surface::PixelFormat format);
void BindFastUniformBuffer(size_t stage, u32 binding_index, u32 size) {
+ const GLuint handle = fast_uniforms[stage][binding_index].handle;
+ const GLsizeiptr gl_size = static_cast<GLsizeiptr>(size);
if (use_assembly_shaders) {
- const GLuint handle = fast_uniforms[stage][binding_index].handle;
- const GLsizeiptr gl_size = static_cast<GLsizeiptr>(size);
glBindBufferRangeNV(PABO_LUT[stage], binding_index, handle, 0, gl_size);
} else {
const GLuint base_binding = graphics_base_uniform_bindings[stage];
const GLuint binding = base_binding + binding_index;
- glBindBufferRange(GL_UNIFORM_BUFFER, binding,
- fast_uniforms[stage][binding_index].handle, 0,
- static_cast<GLsizeiptr>(size));
+ glBindBufferRange(GL_UNIFORM_BUFFER, binding, handle, 0, gl_size);
}
}
@@ -134,6 +132,10 @@ public:
return has_fast_buffer_sub_data;
}
+ [[nodiscard]] bool SupportsNonZeroUniformOffset() const noexcept {
+ return !use_assembly_shaders;
+ }
+
void SetBaseUniformBindings(const std::array<GLuint, 5>& bindings) {
graphics_base_uniform_bindings = bindings;
}