diff --git a/src/freedreno/ci/deqp-freedreno-a630-skips.txt b/src/freedreno/ci/deqp-freedreno-a630-skips.txt index e3e6299e04c..1bc586269f4 100644 --- a/src/freedreno/ci/deqp-freedreno-a630-skips.txt +++ b/src/freedreno/ci/deqp-freedreno-a630-skips.txt @@ -12,12 +12,10 @@ dEQP-GLES[0-9]*.functional.flush_finish.* # Timeouts, passes otherwise KHR-GL33.texture_swizzle.smoke -# Timeout on what looks like an infinite loop in ir3's mark_kill_path() -dEQP-VK.geometry.layered.cube_array.36_36_12.secondary_cmd_buffer_inherit_framebuffer -# More timeouts, possibly the same. -dEQP-VK.geometry.layered.3d.64_64_8.secondary_cmd_buffer_inherit_framebuffer -dEQP-VK.geometry.layered.cube_array.64_64_12.secondary_cmd_buffer_inherit_framebuffer +# Timeout, stuck on live_effect() dEQP-VK.spirv_assembly.instruction.graphics.spirv_ids_abuse.lots_ids_tesse + +# Timeout, passes otherwise dEQP-VK.tessellation.invariance.outer_edge_division.quads_fractional_odd_spacing # Timeout (VK-GL-CTS 1.2.5.0) diff --git a/src/freedreno/ir3/ir3.c b/src/freedreno/ir3/ir3.c index c75033bb337..0cff9fae04e 100644 --- a/src/freedreno/ir3/ir3.c +++ b/src/freedreno/ir3/ir3.c @@ -294,6 +294,11 @@ struct ir3_instruction * ir3_instr_clone(struct ir3_instruction *instr) /* Add a false dependency to instruction, to ensure it is scheduled first: */ void ir3_instr_add_dep(struct ir3_instruction *instr, struct ir3_instruction *dep) { + for (unsigned i = 0; i < instr->deps_count; i++) { + if (instr->deps[i] == dep) + return; + } + array_insert(instr, instr->deps, dep); }