diff options
author | Samuel Pitoiset <[email protected]> | 2017-07-03 16:06:44 +0200 |
---|---|---|
committer | Samuel Pitoiset <[email protected]> | 2017-08-22 11:34:29 +0200 |
commit | c2dfa9b1114db660547eca8bcdf32374313b6a04 (patch) | |
tree | 4886bae62ed5b2f0eb612954083933d790e27d07 /src/gallium/drivers/radeonsi/si_pipe.c | |
parent | 50349f404d3e4153c364f21ddc24a57060020003 (diff) |
radeonsi: use slot indexes for bindless handles
Using VRAM address as bindless handles is not a good idea because
we have to use LLVMIntToPTr and the LLVM CSE pass can't optimize
because it has no information about the pointer.
Instead, use slots indexes like the existing descriptors. Note
that we use fixed 16-dword slots for both samplers and images.
This doesn't really matter because no real apps use image handles.
This improves performance with DOW3 by +7%.
Signed-off-by: Samuel Pitoiset <[email protected]>
Reviewed-by: Marek Olšák <[email protected]>
Diffstat (limited to 'src/gallium/drivers/radeonsi/si_pipe.c')
-rw-r--r-- | src/gallium/drivers/radeonsi/si_pipe.c | 12 |
1 files changed, 0 insertions, 12 deletions
diff --git a/src/gallium/drivers/radeonsi/si_pipe.c b/src/gallium/drivers/radeonsi/si_pipe.c index a2b37cbab0c..1523eaed941 100644 --- a/src/gallium/drivers/radeonsi/si_pipe.c +++ b/src/gallium/drivers/radeonsi/si_pipe.c @@ -98,9 +98,6 @@ static void si_destroy_context(struct pipe_context *context) si_saved_cs_reference(&sctx->current_saved_cs, NULL); - pb_slabs_deinit(&sctx->bindless_descriptor_slabs); - util_dynarray_fini(&sctx->bindless_descriptors); - _mesa_hash_table_destroy(sctx->tex_handles, NULL); _mesa_hash_table_destroy(sctx->img_handles, NULL); @@ -371,15 +368,6 @@ static struct pipe_context *si_create_context(struct pipe_screen *screen, sctx->tm = si_create_llvm_target_machine(sscreen); - /* Create a slab allocator for all bindless descriptors. */ - if (!pb_slabs_init(&sctx->bindless_descriptor_slabs, 6, 6, 1, sctx, - si_bindless_descriptor_can_reclaim_slab, - si_bindless_descriptor_slab_alloc, - si_bindless_descriptor_slab_free)) - goto fail; - - util_dynarray_init(&sctx->bindless_descriptors, NULL); - /* Bindless handles. */ sctx->tex_handles = _mesa_hash_table_create(NULL, _mesa_hash_pointer, _mesa_key_pointer_equal); |