Module: Mesa
Branch: staging/21.3
Commit: 80de4fd03b3c85621373b89f11ea21ad9b6cdcc9
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=80de4fd03b3c85621373b89f11ea21ad9b6cdcc9

Author: Tapani Pälli <[email protected]>
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 <[email protected]>
Reviewed-by: Marek Olšák <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14589>
(cherry picked from commit 521ede8451df846045d7bc41f44311ace2fddbb5)

---

 .pick_status.json         | 2 +-
 src/mesa/main/shaderapi.c | 9 ++-------
 2 files changed, 3 insertions(+), 8 deletions(-)

diff --git a/.pick_status.json b/.pick_status.json
index 5eac2fc14cc..c4bc1b6ae75 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -2236,7 +2236,7 @@
         "description": "mesa: refactor GetProgramiv to use program resource 
list",
         "nominated": true,
         "nomination_type": 0,
-        "resolution": 0,
+        "resolution": 1,
         "main_sha": null,
         "because_sha": null
     },
diff --git a/src/mesa/main/shaderapi.c b/src/mesa/main/shaderapi.c
index 1dda13d9f1f..83f06a70767 100644
--- a/src/mesa/main/shaderapi.c
+++ b/src/mesa/main/shaderapi.c
@@ -767,13 +767,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: {

Reply via email to