diff options
| author | Subv <subv2112@gmail.com> | 2018-04-15 14:14:57 -0500 |
|---|---|---|
| committer | Subv <subv2112@gmail.com> | 2018-04-15 14:14:57 -0500 |
| commit | 14ac40436ead929506d5fdf16eb3721940e60956 (patch) | |
| tree | a3bf955b685822b3931203eb0f075f72010150b0 /src/video_core/renderer_opengl/gl_rasterizer.h | |
| parent | e128e90350a95bbeeebb3987c3513537e5e4289c (diff) | |
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.
Diffstat (limited to 'src/video_core/renderer_opengl/gl_rasterizer.h')
| -rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer.h | 13 |
1 files changed, 11 insertions, 2 deletions
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<GLShader::ConstBufferEntry>& entries); /// Syncs the viewport to match the guest state |
