summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/radeonsi/si_state.h
diff options
context:
space:
mode:
authorBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>2016-04-15 01:00:41 +0200
committerBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>2016-04-19 18:10:30 +0200
commit058b54c6244416e47ec211e2300624cd9e3ae623 (patch)
tree04752b477b777045160091d5b788634c155aa356 /src/gallium/drivers/radeonsi/si_state.h
parentaabc7d61d6826164f5ecf8243a6265af6c6ee62c (diff)
downloadexternal_mesa3d-058b54c6244416e47ec211e2300624cd9e3ae623.zip
external_mesa3d-058b54c6244416e47ec211e2300624cd9e3ae623.tar.gz
external_mesa3d-058b54c6244416e47ec211e2300624cd9e3ae623.tar.bz2
radeonsi: Replace list_dirty with a mask.
We can then upload only the dirty ones with the constant engine. Signed-off-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Diffstat (limited to 'src/gallium/drivers/radeonsi/si_state.h')
-rw-r--r--src/gallium/drivers/radeonsi/si_state.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/gallium/drivers/radeonsi/si_state.h b/src/gallium/drivers/radeonsi/si_state.h
index fbdc8ee..a0ae72e 100644
--- a/src/gallium/drivers/radeonsi/si_state.h
+++ b/src/gallium/drivers/radeonsi/si_state.h
@@ -191,8 +191,6 @@ struct si_descriptors {
unsigned element_dw_size;
/* The maximum number of descriptors. */
unsigned num_elements;
- /* Whether the list has been changed and should be re-uploaded. */
- bool list_dirty;
/* The buffer where the descriptors have been uploaded. */
struct r600_resource *buffer;
@@ -204,6 +202,13 @@ struct si_descriptors {
/* The i-th bit is set if that element is enabled (non-NULL resource). */
uint64_t enabled_mask;
+ /* elements of the list that are changed and need to be uploaded */
+ uint64_t dirty_mask;
+
+ /* Whether the CE ram is dirty and needs to be reinitialized entirely
+ * before we can do partial updates. */
+ bool ce_ram_dirty;
+
/* The shader userdata offset within a shader where the 64-bit pointer to the descriptor
* array will be stored. */
unsigned shader_userdata_offset;