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" <i...@freedesktop.org> wrote:
From: Ian Romanick <ian.d.roman...@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.roman...@intel.com>
Fixes: 5a02ffb733e nir: Rework lower_locals_to_regs to use deref instructions
Cc: Jason Ekstrand <ja...@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
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev