diff options
author | Samuel Pitoiset <[email protected]> | 2017-05-18 23:51:26 +0200 |
---|---|---|
committer | Samuel Pitoiset <[email protected]> | 2017-06-14 10:04:36 +0200 |
commit | 811756dfd0779187c205f1e89c0d014d29f60866 (patch) | |
tree | 71bdd141f01798d80bdb36cb322267aa94455e78 /src/gallium/drivers/radeonsi/si_pipe.h | |
parent | 48fe8a6210c808669bf003b62a735c6fb4bd8742 (diff) |
radeonsi: upload new descriptors when resident buffers are invalidated
When texture buffers are invalidated the addr in the resident
descriptor has to be updated but we can't create a new descriptor
because the resident handle has to be the same.
Instead, use the WRITE_DATA packet which allows to update memory
directly but graphics/compute have to be idle in case the GPU is
reading the descriptor.
Signed-off-by: Samuel Pitoiset <[email protected]>
Reviewed-by: Marek Olšák <[email protected]>
Diffstat (limited to 'src/gallium/drivers/radeonsi/si_pipe.h')
-rw-r--r-- | src/gallium/drivers/radeonsi/si_pipe.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/gallium/drivers/radeonsi/si_pipe.h b/src/gallium/drivers/radeonsi/si_pipe.h index 9ebc9220742..427ac1c83ae 100644 --- a/src/gallium/drivers/radeonsi/si_pipe.h +++ b/src/gallium/drivers/radeonsi/si_pipe.h @@ -235,6 +235,8 @@ struct si_bindless_descriptor struct pb_slab_entry entry; struct r600_resource *buffer; unsigned offset; + uint32_t desc_list[16]; + bool dirty; }; struct si_texture_handle @@ -420,6 +422,7 @@ struct si_context { /* Bindless descriptors. */ struct util_dynarray bindless_descriptors; + bool bindless_descriptors_dirty; /* Allocated bindless handles */ struct hash_table *tex_handles; |