Mesa (master): glsl: simplify set_opaque_binding()

Samuel Pitoiset hakzsam at kemper.freedesktop.org
Thu May 11 19:11:41 UTC 2017


Module: Mesa
Branch: master
Commit: 4ad5fa617c1d8e18b06d94e8c44e55b268631604
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=4ad5fa617c1d8e18b06d94e8c44e55b268631604

Author: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Date:   Thu May 11 12:31:27 2017 +0200

glsl: simplify set_opaque_binding()

While we are at it, update the GLSL spec comment.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Reviewed-by: Timothy Arceri <tarceri at itsqueeze.com>

---

 src/compiler/glsl/link_uniform_initializers.cpp | 41 ++++++++++++-------------
 1 file changed, 20 insertions(+), 21 deletions(-)

diff --git a/src/compiler/glsl/link_uniform_initializers.cpp b/src/compiler/glsl/link_uniform_initializers.cpp
index 79a6c75aaa..a7af75586e 100644
--- a/src/compiler/glsl/link_uniform_initializers.cpp
+++ b/src/compiler/glsl/link_uniform_initializers.cpp
@@ -117,7 +117,7 @@ set_opaque_binding(void *mem_ctx, gl_shader_program *prog,
 
       const unsigned elements = MAX2(storage->array_elements, 1);
 
-      /* Section 4.4.4 (Opaque-Uniform Layout Qualifiers) of the GLSL 4.20 spec
+      /* Section 4.4.6 (Opaque-Uniform Layout Qualifiers) of the GLSL 4.50 spec
        * says:
        *
        *     "If the binding identifier is used with an array, the first element
@@ -129,27 +129,26 @@ set_opaque_binding(void *mem_ctx, gl_shader_program *prog,
       }
 
       for (int sh = 0; sh < MESA_SHADER_STAGES; sh++) {
-        gl_linked_shader *shader = prog->_LinkedShaders[sh];
-
-         if (shader) {
-            if (storage->type->is_sampler() && storage->opaque[sh].active) {
-               for (unsigned i = 0; i < elements; i++) {
-                  const unsigned index = storage->opaque[sh].index + i;
-                  if (index >= ARRAY_SIZE(shader->Program->SamplerUnits))
-                     break;
-                  shader->Program->SamplerUnits[index] =
-                     storage->storage[i].i;
-               }
+         gl_linked_shader *shader = prog->_LinkedShaders[sh];
 
-            } else if (storage->type->is_image() &&
-                    storage->opaque[sh].active) {
-               for (unsigned i = 0; i < elements; i++) {
-                  const unsigned index = storage->opaque[sh].index + i;
-                  if (index >= ARRAY_SIZE(shader->Program->sh.ImageUnits))
-                     break;
-                  shader->Program->sh.ImageUnits[index] =
-                     storage->storage[i].i;
-               }
+         if (!shader)
+            continue;
+         if (!storage->opaque[sh].active)
+            continue;
+
+         if (storage->type->is_sampler()) {
+            for (unsigned i = 0; i < elements; i++) {
+               const unsigned index = storage->opaque[sh].index + i;
+               if (index >= ARRAY_SIZE(shader->Program->SamplerUnits))
+                  break;
+               shader->Program->SamplerUnits[index] = storage->storage[i].i;
+            }
+         } else if (storage->type->is_image()) {
+            for (unsigned i = 0; i < elements; i++) {
+               const unsigned index = storage->opaque[sh].index + i;
+               if (index >= ARRAY_SIZE(shader->Program->sh.ImageUnits))
+                  break;
+               shader->Program->sh.ImageUnits[index] = storage->storage[i].i;
             }
          }
       }




More information about the mesa-commit mailing list