From 14ac40436ead929506d5fdf16eb3721940e60956 Mon Sep 17 00:00:00 2001 From: Subv Date: Sun, 15 Apr 2018 14:14:57 -0500 Subject: GPU: Don't use explicit binding points when uploading the constbuffers to opengl. The bindpoints will now be dynamically calculated based on the number of buffers used by the previous shader stage. --- src/video_core/renderer_opengl/gl_rasterizer.h | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'src/video_core/renderer_opengl/gl_rasterizer.h') diff --git a/src/video_core/renderer_opengl/gl_rasterizer.h b/src/video_core/renderer_opengl/gl_rasterizer.h index 1ea0dfa71..32d9598aa 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer.h +++ b/src/video_core/renderer_opengl/gl_rasterizer.h @@ -87,8 +87,17 @@ private: /// Binds the required textures to OpenGL before drawing a batch. void BindTextures(); - /// Configures the current constbuffers to use for the draw command. - void SetupConstBuffers(Tegra::Engines::Maxwell3D::Regs::ShaderStage stage, + /* + * Configures the current constbuffers to use for the draw command. + * @param stage The shader stage to configure buffers for. + * @param program The OpenGL program object that contains the specified stage. + * @param base_name The name prefix of the buffer objects in the GLSL shaders. + * @param current_bindpoint The offset at which to start counting new buffer bindpoints. + * @param entries Vector describing the buffers that are actually used in the guest shader. + * @returns The next available bindpoint for use in the next shader stage. + */ + u32 SetupConstBuffers(Tegra::Engines::Maxwell3D::Regs::ShaderStage stage, GLuint program, + const std::string& base_name, u32 current_bindpoint, const std::vector& entries); /// Syncs the viewport to match the guest state -- cgit v1.2.3