[Mesa-dev] [PATCH] st/mesa: tex offsets can't be in a const or 2d-indexed
Ilia Mirkin
imirkin at alum.mit.edu
Sat Apr 7 19:23:47 UTC 2018
ping?
On Tue, Apr 3, 2018 at 12:06 AM, Ilia Mirkin <imirkin at 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 <imirkin at 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
>
More information about the mesa-dev
mailing list