From 9c575eb18a9532c9207eb9fd1f615635ccd21115 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Fri, 6 Oct 2023 09:55:49 -0400 Subject: [PATCH] asahi: Handle load_sampler_handle Signed-off-by: Alyssa Rosenzweig Part-of: --- src/gallium/drivers/asahi/agx_nir_lower_sysvals.c | 3 +++ src/gallium/drivers/asahi/agx_state.h | 3 +++ 2 files changed, 6 insertions(+) diff --git a/src/gallium/drivers/asahi/agx_nir_lower_sysvals.c b/src/gallium/drivers/asahi/agx_nir_lower_sysvals.c index 7021cbb58b9..08af274f074 100644 --- a/src/gallium/drivers/asahi/agx_nir_lower_sysvals.c +++ b/src/gallium/drivers/asahi/agx_nir_lower_sysvals.c @@ -127,6 +127,9 @@ lower_intrinsic(nir_builder *b, nir_intrinsic_instr *intr) return load_ubo(b, intr, s->ubo_base); case nir_intrinsic_load_texture_handle_agx: return load_texture_handle(b, intr, &s->texture_base); + case nir_intrinsic_load_sampler_handle_agx: + return load_sysval_indirect(b, 1, 16, stage_table(b), &s->sampler_handle, + intr->src[0].ssa); case nir_intrinsic_load_vbo_base_agx: return load_sysval_indirect(b, 1, 64, AGX_SYSVAL_TABLE_ROOT, &u->vbo_base, intr->src[0].ssa); diff --git a/src/gallium/drivers/asahi/agx_state.h b/src/gallium/drivers/asahi/agx_state.h index 5bc24b656a0..c34a83b67ea 100644 --- a/src/gallium/drivers/asahi/agx_state.h +++ b/src/gallium/drivers/asahi/agx_state.h @@ -157,6 +157,9 @@ struct PACKED agx_stage_uniforms { uint64_t ssbo_base[PIPE_MAX_SHADER_BUFFERS]; uint32_t ssbo_size[PIPE_MAX_SHADER_BUFFERS]; + /* If lowered to bindless, sampler index in the heap */ + uint16_t sampler_handle[PIPE_MAX_SAMPLERS]; + /* LOD bias as float16 */ uint16_t lod_bias[PIPE_MAX_SAMPLERS]; };