diff options
author | Samuel Pitoiset <samuel.pitoiset@gmail.com> | 2017-08-23 09:42:58 +0200 |
---|---|---|
committer | Samuel Pitoiset <samuel.pitoiset@gmail.com> | 2017-08-23 13:38:56 +0200 |
commit | 94cc01105ec70cc364d6cea3f909b0b04dcad7c1 (patch) | |
tree | 26b6918e7c006dadadc22e7f5ce020ac80670e88 | |
parent | f4ec41ecc41dc17088475e4769c7a688dddfdb6f (diff) |
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 <samuel.pitoiset@gmail.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
-rw-r--r-- | src/gallium/drivers/radeonsi/si_descriptors.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/gallium/drivers/radeonsi/si_descriptors.c b/src/gallium/drivers/radeonsi/si_descriptors.c index 3fdfdbbec7..cc897c9817 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) |