dzn: Use separate dirty bits for descriptor sets/dynamic buffers

We'll be able to take advantage of this granularity in bindless mode

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21913>
This commit is contained in:
Jesse Natalie
2023-03-03 08:48:39 -08:00
committed by Marge Bot
parent 1846426195
commit 5f61e66024
2 changed files with 14 additions and 3 deletions
+2 -2
View File
@@ -4700,7 +4700,7 @@ dzn_CmdBindDescriptorSets(VkCommandBuffer commandBuffer,
if (desc_state->sets[idx].set != set) {
desc_state->sets[idx].set = set;
dirty |= DZN_CMD_BINDPOINT_DIRTY_HEAPS;
dirty |= DZN_CMD_BINDPOINT_DIRTY_DESC_SET0 << idx;
}
uint32_t dynamic_buffer_count = playout->sets[idx].dynamic_buffer_count;
@@ -4712,7 +4712,7 @@ dzn_CmdBindDescriptorSets(VkCommandBuffer commandBuffer,
dynamicOffsetCount -= dynamic_buffer_count;
pDynamicOffsets += dynamic_buffer_count;
dirty |= DZN_CMD_BINDPOINT_DIRTY_HEAPS;
dirty |= DZN_CMD_BINDPOINT_DIRTY_DYNAMIC_BUFFERS;
}
}
+12 -1
View File
@@ -339,8 +339,19 @@ struct dzn_device_memory {
enum dzn_cmd_bindpoint_dirty {
DZN_CMD_BINDPOINT_DIRTY_PIPELINE = 1 << 0,
DZN_CMD_BINDPOINT_DIRTY_HEAPS = 1 << 1,
DZN_CMD_BINDPOINT_DIRTY_DYNAMIC_BUFFERS = 1 << 1,
DZN_CMD_BINDPOINT_DIRTY_SYSVALS = 1 << 2,
DZN_CMD_BINDPOINT_DIRTY_DESC_SET0 = 1 << 3,
DZN_CMD_BINDPOINT_DIRTY_DESC_SET1 = 1 << 4,
DZN_CMD_BINDPOINT_DIRTY_DESC_SET2 = 1 << 5,
DZN_CMD_BINDPOINT_DIRTY_DESC_SET3 = 1 << 6,
DZN_CMD_BINDPOINT_DIRTY_HEAPS =
DZN_CMD_BINDPOINT_DIRTY_DYNAMIC_BUFFERS |
DZN_CMD_BINDPOINT_DIRTY_SYSVALS |
DZN_CMD_BINDPOINT_DIRTY_DESC_SET0 |
DZN_CMD_BINDPOINT_DIRTY_DESC_SET1 |
DZN_CMD_BINDPOINT_DIRTY_DESC_SET2 |
DZN_CMD_BINDPOINT_DIRTY_DESC_SET3,
};
enum dzn_cmd_dirty {