Mesa (master): glsl: Lower vector_extracts to swizzles after lower_vector_derefs.
Kenneth Graunke
kwg at kemper.freedesktop.org
Fri Apr 29 23:05:16 UTC 2016
Module: Mesa
Branch: master
Commit: 750c38fad1f19e2403b4960674006c5f932075ad
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=750c38fad1f19e2403b4960674006c5f932075ad
Author: Kenneth Graunke <kenneth at whitecape.org>
Date: Wed Apr 27 21:07:07 2016 -0700
glsl: Lower vector_extracts to swizzles after lower_vector_derefs.
lower_vector_derefs can produce new vector_extract operations.
Neither i965 nor st_glsl_to_tgsi can handle them, so we'd best
convert them to swizzles.
Together with the previous patch, this fixes assertion failures in
GLideN64, as well as a new Piglit test which reproduces the issue:
spec/glsl-1.10/compiler/vector-dereference-in-dereference.frag
Cc: mesa-stable at lists.freedesktop.org
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=95164
Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
---
src/compiler/glsl/linker.cpp | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/compiler/glsl/linker.cpp b/src/compiler/glsl/linker.cpp
index dcc8a57..7bd795c 100644
--- a/src/compiler/glsl/linker.cpp
+++ b/src/compiler/glsl/linker.cpp
@@ -4813,6 +4813,7 @@ link_shaders(struct gl_context *ctx, struct gl_shader_program *prog)
&prog->Comp.SharedSize);
lower_vector_derefs(prog->_LinkedShaders[i]);
+ do_vec_index_to_swizzle(prog->_LinkedShaders[i]->ir);
}
done:
More information about the mesa-commit
mailing list