<div dir="ltr"><div>Reviewed-by: Marek Olšák <<a href="mailto:marek.olsak@amd.com">marek.olsak@amd.com</a>><br><br></div>Marek<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Apr 3, 2018 at 12:06 AM, Ilia Mirkin <span dir="ltr"><<a href="mailto:imirkin@alum.mit.edu" target="_blank">imirkin@alum.mit.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">All consts are now implicitly 2d (they set .Dimension), so trigger<br>
asserts. Also, the texture offset can't handle any sort of 2d indexing.<br>
While this could be tacked on, this seems unnecessary, just move it off<br>
into a separate temp.<br>
<br>
Fixes assertion failure in<br>
tests/spec/arb_gpu_shader5/<wbr>compiler/builtin-functions/fs-<wbr>gatherOffset-uniform-offset.<wbr>frag<br>
<br>
Note that this was an issue even before the const-always-2d thing, since<br>
there was no detection of when even a proper second dimension was used,<br>
e.g. for UBO or geom/tess inputs.<br>
<br>
Signed-off-by: Ilia Mirkin <<a href="mailto:imirkin@alum.mit.edu">imirkin@alum.mit.edu</a>><br>
---<br>
 src/mesa/state_tracker/st_<wbr>glsl_to_tgsi.cpp | 6 +++++-<br>
 1 file changed, 5 insertions(+), 1 deletion(-)<br>
<br>
diff --git a/src/mesa/state_tracker/st_<wbr>glsl_to_tgsi.cpp b/src/mesa/state_tracker/st_<wbr>glsl_to_tgsi.cpp<br>
index 5f7a0dcd3e8..01a58d7d2c6 100644<br>
--- a/src/mesa/state_tracker/st_<wbr>glsl_to_tgsi.cpp<br>
+++ b/src/mesa/state_tracker/st_<wbr>glsl_to_tgsi.cpp<br>
@@ -4096,7 +4096,11 @@ glsl_to_tgsi_visitor::get_<wbr>deref_offsets(ir_dereference *ir,<br>
 st_src_reg<br>
 glsl_to_tgsi_visitor::<wbr>canonicalize_gather_offset(st_<wbr>src_reg offset)<br>
 {<br>
-   if (offset.reladdr || offset.reladdr2) {<br>
+   if (offset.reladdr || offset.reladdr2 ||<br>
+       offset.has_index2 ||<br>
+       offset.file == PROGRAM_UNIFORM ||<br>
+       offset.file == PROGRAM_CONSTANT ||<br>
+       offset.file == PROGRAM_STATE_VAR) {<br>
       st_src_reg tmp = get_temp(glsl_type::ivec2_<wbr>type);<br>
       st_dst_reg tmp_dst = st_dst_reg(tmp);<br>
       tmp_dst.writemask = WRITEMASK_XY;<br>
<span class="HOEnZb"><font color="#888888">--<br>
2.16.1<br>
<br>
______________________________<wbr>_________________<br>
mesa-dev mailing list<br>
<a href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev" rel="noreferrer" target="_blank">https://lists.freedesktop.org/<wbr>mailman/listinfo/mesa-dev</a><br>
</font></span></blockquote></div><br></div>