[Mesa-dev] [PATCH 1/2] i965/vec4: Handle nir_instr_type_deref to silence run-time output

Jason Ekstrand jason at jlekstrand.net
Tue Jul 3 14:09:40 UTC 2018


Do we do this in fs?  I'm very confused as to how any deref instructions 
can survive this late.  They can for fs but only for images (not textures). 
I would expect them to be killed off by DCE long before we get here.

On July 3, 2018 00:26:32 "Ian Romanick" <idr at freedesktop.org> wrote:

> From: Ian Romanick <ian.d.romanick at intel.com>
>
> Previously, shader-db runs on Gen5 through Haswell would spew tons of
> messages like:
>
>    VS instruction not yet implemented by NIR->vec4
>
> I checked several instance of this, and all of them were
> nir_instr_type_deref instructions in vertex shaders that had texture
> accesses (e.g., UnrealEngine4/EffectsCaveDemo/239.shader_test).
>
> Solution copied directly from fs_visitor::nir_emit_instr.
>
> Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
> Fixes: 5a02ffb733e nir: Rework lower_locals_to_regs to use deref instructions
> Cc: Jason Ekstrand <jason at jlekstrand.net>
> ---
> src/intel/compiler/brw_vec4_nir.cpp | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/src/intel/compiler/brw_vec4_nir.cpp 
> b/src/intel/compiler/brw_vec4_nir.cpp
> index 7131fa06b4a..5f45d5b0c98 100644
> --- a/src/intel/compiler/brw_vec4_nir.cpp
> +++ b/src/intel/compiler/brw_vec4_nir.cpp
> @@ -168,6 +168,10 @@ vec4_visitor::nir_emit_instr(nir_instr *instr)
>       nir_emit_undef(nir_instr_as_ssa_undef(instr));
>       break;
>
> +   case nir_instr_type_deref:
> +      /* Derefs can exist for images but they do nothing */
> +      break;
> +
>    default:
>       fprintf(stderr, "VS instruction not yet implemented by NIR->vec4\n");
>       break;
> --
> 2.14.4





More information about the mesa-dev mailing list