From: Samuel Pitoiset Date: Wed, 23 Aug 2017 07:42:58 +0000 (+0200) Subject: radeonsi: do not assert when reserving bindless slot 0 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=94cc01105ec70cc364d6cea3f909b0b04dcad7c1;p=mesa.git radeonsi: do not assert when reserving bindless slot 0 When assertions were disabled, the compiler removed the call to util_idalloc_alloc() and the first allocated bindless slot was 0 which is invalid per the spec. Signed-off-by: Samuel Pitoiset Reviewed-by: Timothy Arceri --- diff --git a/src/gallium/drivers/radeonsi/si_descriptors.c b/src/gallium/drivers/radeonsi/si_descriptors.c index 3fdfdbbec7f..cc897c9817e 100644 --- a/src/gallium/drivers/radeonsi/si_descriptors.c +++ b/src/gallium/drivers/radeonsi/si_descriptors.c @@ -2179,6 +2179,8 @@ static void si_init_bindless_descriptors(struct si_context *sctx, unsigned shader_userdata_index, unsigned num_elements) { + MAYBE_UNUSED unsigned desc_slot; + si_init_descriptors(desc, shader_userdata_index, 16, num_elements); sctx->bindless_descriptors.num_active_slots = num_elements; @@ -2192,7 +2194,8 @@ static void si_init_bindless_descriptors(struct si_context *sctx, util_idalloc_resize(&sctx->bindless_used_slots, num_elements); /* Reserve slot 0 because it's an invalid handle for bindless. */ - assert(!util_idalloc_alloc(&sctx->bindless_used_slots)); + desc_slot = util_idalloc_alloc(&sctx->bindless_used_slots); + assert(desc_slot != 0); } static void si_release_bindless_descriptors(struct si_context *sctx)