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

Author: Matt Turner <[email protected]>
Date:   Fri Oct 27 18:15:46 2017 -0700

nir: Don't print swizzles when there are more than 4 components

... as can happen with various types like mat4, or else we'll smash the
stack writing past the end of components_local[].

Fixes: 5a0d3e1129b7 ("nir: Print the components referenced for split or
                      packed shader in/outs.")
Reviewed-by: Jason Ekstrand <[email protected]>

---

 src/compiler/nir/nir_print.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/compiler/nir/nir_print.c b/src/compiler/nir/nir_print.c
index 4b7ad5c6ba..fcc8025346 100644
--- a/src/compiler/nir/nir_print.c
+++ b/src/compiler/nir/nir_print.c
@@ -457,7 +457,7 @@ print_var_decl(nir_variable *var, print_state *state)
       switch (var->data.mode) {
       case nir_var_shader_in:
       case nir_var_shader_out:
-         if (num_components != 4 && num_components != 0) {
+         if (num_components < 4 && num_components != 0) {
             const char *xyzw = "xyzw";
             for (int i = 0; i < num_components; i++)
                components_local[i + 1] = xyzw[i + var->data.location_frac];

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to