summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/radeonsi/si_pipe.h
diff options
context:
space:
mode:
authorSamuel Pitoiset <[email protected]>2017-05-18 23:51:26 +0200
committerSamuel Pitoiset <[email protected]>2017-06-14 10:04:36 +0200
commit811756dfd0779187c205f1e89c0d014d29f60866 (patch)
tree71bdd141f01798d80bdb36cb322267aa94455e78 /src/gallium/drivers/radeonsi/si_pipe.h
parent48fe8a6210c808669bf003b62a735c6fb4bd8742 (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.h3
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;