freedreno/ir3: remove store_output lowered to store_shared_ir3
authorRob Clark <robdclark@chromium.org>
Wed, 4 Dec 2019 18:15:39 +0000 (10:15 -0800)
committerRob Clark <robdclark@chromium.org>
Wed, 4 Dec 2019 21:08:52 +0000 (13:08 -0800)
Fixes crashes that were unnoticed in CI because debug_assert() was not
enabled (but become real crashes after the next patch):

dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.ivec2_highp_geometry
dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.ivec2_lowp_geometry
dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.ivec2_mediump_geometry
dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.uvec2_highp_geometry
dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.uvec2_lowp_geometry
dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.uvec2_mediump_geometry

Signed-off-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
src/freedreno/ir3/ir3_nir_lower_tess.c

index 27fc24c1a0dde83219b8dce574f229dce5b83e23..5066f022729a3967f5ee00586e02d36b783983c7 100644 (file)
@@ -191,7 +191,7 @@ lower_vs_block(nir_block *block, nir_builder *b, struct state *state)
                case nir_intrinsic_store_output: {
                        // src[] = { value, offset }.
 
-                       b->cursor = nir_before_instr(&intr->instr);
+                       b->cursor = nir_instr_remove(&intr->instr);
 
                        nir_ssa_def *vertex_id = build_vertex_id(b, state);
                        nir_ssa_def *offset = build_local_offset(b, state, vertex_id, nir_intrinsic_base(intr),