Reviewed-by: Marek Olšák <marek.ol...@amd.com>

Marek

On Tue, Apr 3, 2018 at 12:06 AM, Ilia Mirkin <imir...@alum.mit.edu> wrote:

> All consts are now implicitly 2d (they set .Dimension), so trigger
> asserts. Also, the texture offset can't handle any sort of 2d indexing.
> While this could be tacked on, this seems unnecessary, just move it off
> into a separate temp.
>
> Fixes assertion failure in
> tests/spec/arb_gpu_shader5/compiler/builtin-functions/fs-
> gatherOffset-uniform-offset.frag
>
> Note that this was an issue even before the const-always-2d thing, since
> there was no detection of when even a proper second dimension was used,
> e.g. for UBO or geom/tess inputs.
>
> Signed-off-by: Ilia Mirkin <imir...@alum.mit.edu>
> ---
>  src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
> b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
> index 5f7a0dcd3e8..01a58d7d2c6 100644
> --- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
> +++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
> @@ -4096,7 +4096,11 @@ glsl_to_tgsi_visitor::get_deref_offsets(ir_dereference
> *ir,
>  st_src_reg
>  glsl_to_tgsi_visitor::canonicalize_gather_offset(st_src_reg offset)
>  {
> -   if (offset.reladdr || offset.reladdr2) {
> +   if (offset.reladdr || offset.reladdr2 ||
> +       offset.has_index2 ||
> +       offset.file == PROGRAM_UNIFORM ||
> +       offset.file == PROGRAM_CONSTANT ||
> +       offset.file == PROGRAM_STATE_VAR) {
>        st_src_reg tmp = get_temp(glsl_type::ivec2_type);
>        st_dst_reg tmp_dst = st_dst_reg(tmp);
>        tmp_dst.writemask = WRITEMASK_XY;
> --
> 2.16.1
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to