Mesa (main): mesa: refactor GetProgramiv to use program resource list

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Jan 20 06:39:50 UTC 2022


Module: Mesa
Branch: main
Commit: 521ede8451df846045d7bc41f44311ace2fddbb5
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=521ede8451df846045d7bc41f44311ace2fddbb5

Author: Tapani Pälli <tapani.palli at intel.com>
Date:   Tue Jan 18 09:38:18 2022 +0200

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 at intel.com>
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14589>

---

 src/mesa/main/shaderapi.c | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/src/mesa/main/shaderapi.c b/src/mesa/main/shaderapi.c
index 73ea99aeb27..03eac9794c7 100644
--- a/src/mesa/main/shaderapi.c
+++ b/src/mesa/main/shaderapi.c
@@ -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: {



More information about the mesa-commit mailing list