Mesa (master): glsl: Support uint index in do_vec_index_to_cond_assign

Jordan Justen jljusten at kemper.freedesktop.org
Wed Oct 14 20:26:46 UTC 2015


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

Author: Jordan Justen <jordan.l.justen at intel.com>
Date:   Mon Oct 12 20:22:14 2015 -0700

glsl: Support uint index in do_vec_index_to_cond_assign

The ES31-CTS.compute_shader.pipeline-compute-chain test case generates
an unsigned index by using gl_LocalInvocationID.x and
gl_LocalInvocationID.y as array indices.

Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
Reviewed-by: Tapani Pälli <tapani.palli at intel.com>

---

 src/glsl/lower_vec_index_to_cond_assign.cpp |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/glsl/lower_vec_index_to_cond_assign.cpp b/src/glsl/lower_vec_index_to_cond_assign.cpp
index 0c3394a..b623882 100644
--- a/src/glsl/lower_vec_index_to_cond_assign.cpp
+++ b/src/glsl/lower_vec_index_to_cond_assign.cpp
@@ -88,7 +88,9 @@ ir_vec_index_to_cond_assign_visitor::convert_vec_index_to_cond_assign(void *mem_
    exec_list list;
 
    /* Store the index to a temporary to avoid reusing its tree. */
-   index = new(base_ir) ir_variable(glsl_type::int_type,
+   assert(orig_index->type == glsl_type::int_type ||
+          orig_index->type == glsl_type::uint_type);
+   index = new(base_ir) ir_variable(orig_index->type,
 				    "vec_index_tmp_i",
 				    ir_var_temporary);
    list.push_tail(index);




More information about the mesa-commit mailing list