From 3e7f200e1faf67c0a8670c4d5641d0fa8c7f9e32 Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Thu, 4 Dec 2025 14:07:43 -0800 Subject: [PATCH] ir3: Skip non-bindless ldc warmups Non bindless UBOs are pushed in cmdstream, so warmup instructions should be unnecessary. And cause hangs on gen8. Signed-off-by: Rob Clark Part-of: --- src/freedreno/ir3/ir3_compiler_nir.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/freedreno/ir3/ir3_compiler_nir.c b/src/freedreno/ir3/ir3_compiler_nir.c index 1f0c109f6e1..f0fa4ee3c54 100644 --- a/src/freedreno/ir3/ir3_compiler_nir.c +++ b/src/freedreno/ir3/ir3_compiler_nir.c @@ -3428,6 +3428,8 @@ emit_intrinsic(struct ir3_context *ctx, nir_intrinsic_instr *intr) break; } case nir_intrinsic_prefetch_ubo_ir3: { + if (!ir3_bindless_resource(intr->src[0])) + break; struct ir3_instruction *offset = create_immed(b, 0); struct ir3_instruction *idx = ir3_get_src(ctx, &intr->src[0])[0]; struct ir3_instruction *ldc = ir3_LDC(b, idx, 0, offset, 0);