Mesa (master): glsl: skip buffer variables when filling UniformRemapTable

Tapani Pälli tpalli at kemper.freedesktop.org
Wed Oct 21 03:55:31 UTC 2015


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

Author: Tapani Pälli <tapani.palli at intel.com>
Date:   Tue Oct 20 08:32:15 2015 +0300

glsl: skip buffer variables when filling UniformRemapTable

UniformRemapTable is used only for remapping user specified uniform
locations to driver internally used ones, shader storage buffer
variables should not utilize uniform locations.

Signed-off-by: Tapani Pälli <tapani.palli at intel.com>
Reviewed-by: Marta Lofstedt <marta.lofstedt at intel.com>
Reviewed-by: Samuel Iglesias Gonsálvez <siglesias at igalia.com>

---

 src/glsl/link_uniforms.cpp |    7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/glsl/link_uniforms.cpp b/src/glsl/link_uniforms.cpp
index fe00aa3..f7b87a1 100644
--- a/src/glsl/link_uniforms.cpp
+++ b/src/glsl/link_uniforms.cpp
@@ -1180,7 +1180,8 @@ link_assign_uniform_locations(struct gl_shader_program *prog,
 
    /* Reserve all the explicit locations of the active uniforms. */
    for (unsigned i = 0; i < num_uniforms; i++) {
-      if (uniforms[i].type->is_subroutine())
+      if (uniforms[i].type->is_subroutine() ||
+          uniforms[i].is_shader_storage)
          continue;
 
       if (uniforms[i].remap_location != UNMAPPED_UNIFORM_LOC) {
@@ -1200,8 +1201,10 @@ link_assign_uniform_locations(struct gl_shader_program *prog,
    /* Reserve locations for rest of the uniforms. */
    for (unsigned i = 0; i < num_uniforms; i++) {
 
-      if (uniforms[i].type->is_subroutine())
+      if (uniforms[i].type->is_subroutine() ||
+          uniforms[i].is_shader_storage)
          continue;
+
       /* Built-in uniforms should not get any location. */
       if (uniforms[i].builtin)
          continue;




More information about the mesa-commit mailing list