diff --git a/src/asahi/lib/shaders/geometry.cl b/src/asahi/lib/shaders/geometry.cl index 8e4fd66f8f1..8d8b53c264e 100644 --- a/src/asahi/lib/shaders/geometry.cl +++ b/src/asahi/lib/shaders/geometry.cl @@ -347,15 +347,11 @@ libagx_unroll_restart(constant struct agx_restart_unroll_params *p, uint count = in_draw[0]; - local uintptr_t out_ptr, in_ptr; + local uintptr_t out_ptr; if (tid == 0) { out_ptr = (uintptr_t)setup_unroll_for_draw(p, in_draw, draw, mode, p->index_size_B); - /* Accessed thru local mem because NIR deref is too aggressive */ - in_ptr = (uintptr_t)(libagx_index_buffer( - p->index_buffer, p->index_buffer_size_el, in_draw[2], p->index_size_B, - p->zero_sink)); } barrier(CLK_LOCAL_MEM_FENCE); @@ -363,6 +359,10 @@ libagx_unroll_restart(constant struct agx_restart_unroll_params *p, global uint16_t *out_16 = (global uint16_t *)out_ptr; global uint8_t *out_8 = (global uint8_t *)out_ptr; + uintptr_t in_ptr = (uintptr_t)(libagx_index_buffer( + p->index_buffer, p->index_buffer_size_el, in_draw[2], p->index_size_B, + p->zero_sink)); + local uint scratch[32]; uint out_prims = 0;