mesa: refactor GetProgramiv to use program resource list

This way we make sure glGetActiveUniform and glGetProgramiv
are in sync about active uniform count.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5885
Cc: mesa-stable
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14589>
This commit is contained in:
Tapani Pälli 2022-01-18 09:38:18 +02:00 committed by Marge Bot
parent 7a8d651d50
commit 521ede8451

View file

@ -777,13 +777,8 @@ get_programiv(struct gl_context *ctx, GLuint program, GLenum pname,
*params = _mesa_longest_attribute_name_length(shProg);
return;
case GL_ACTIVE_UNIFORMS: {
unsigned i;
const unsigned num_uniforms =
shProg->data->NumUniformStorage - shProg->data->NumHiddenUniforms;
for (*params = 0, i = 0; i < num_uniforms; i++) {
if (!shProg->data->UniformStorage[i].is_shader_storage)
(*params)++;
}
_mesa_GetProgramInterfaceiv(program, GL_UNIFORM, GL_ACTIVE_RESOURCES,
params);
return;
}
case GL_ACTIVE_UNIFORM_MAX_LENGTH: {