radv: add support for 32 descriptor sets.
This bumps the limit to the number of sets to 32, now that we have proper support for it. It also uses 1u in a few places to make things a bit safer. Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
@@ -1381,7 +1381,7 @@ radv_flush_descriptors(struct radv_cmd_buffer *cmd_buffer,
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < MAX_SETS; i++) {
|
for (i = 0; i < MAX_SETS; i++) {
|
||||||
if (!(cmd_buffer->state.descriptors_dirty & (1 << i)))
|
if (!(cmd_buffer->state.descriptors_dirty & (1u << i)))
|
||||||
continue;
|
continue;
|
||||||
struct radv_descriptor_set *set = cmd_buffer->state.descriptors[i];
|
struct radv_descriptor_set *set = cmd_buffer->state.descriptors[i];
|
||||||
if (!set)
|
if (!set)
|
||||||
@@ -1957,7 +1957,7 @@ void radv_bind_descriptor_set(struct radv_cmd_buffer *cmd_buffer,
|
|||||||
struct radeon_winsys *ws = cmd_buffer->device->ws;
|
struct radeon_winsys *ws = cmd_buffer->device->ws;
|
||||||
|
|
||||||
cmd_buffer->state.descriptors[idx] = set;
|
cmd_buffer->state.descriptors[idx] = set;
|
||||||
cmd_buffer->state.descriptors_dirty |= (1 << idx);
|
cmd_buffer->state.descriptors_dirty |= (1u << idx);
|
||||||
if (!set)
|
if (!set)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@@ -2067,7 +2067,7 @@ void radv_meta_push_descriptor_set(
|
|||||||
descriptorWriteCount, pDescriptorWrites, 0, NULL);
|
descriptorWriteCount, pDescriptorWrites, 0, NULL);
|
||||||
|
|
||||||
cmd_buffer->state.descriptors[set] = push_set;
|
cmd_buffer->state.descriptors[set] = push_set;
|
||||||
cmd_buffer->state.descriptors_dirty |= (1 << set);
|
cmd_buffer->state.descriptors_dirty |= (1u << set);
|
||||||
}
|
}
|
||||||
|
|
||||||
void radv_CmdPushDescriptorSetKHR(
|
void radv_CmdPushDescriptorSetKHR(
|
||||||
@@ -2092,7 +2092,7 @@ void radv_CmdPushDescriptorSetKHR(
|
|||||||
descriptorWriteCount, pDescriptorWrites, 0, NULL);
|
descriptorWriteCount, pDescriptorWrites, 0, NULL);
|
||||||
|
|
||||||
cmd_buffer->state.descriptors[set] = push_set;
|
cmd_buffer->state.descriptors[set] = push_set;
|
||||||
cmd_buffer->state.descriptors_dirty |= (1 << set);
|
cmd_buffer->state.descriptors_dirty |= (1u << set);
|
||||||
cmd_buffer->state.push_descriptors_dirty = true;
|
cmd_buffer->state.push_descriptors_dirty = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2116,7 +2116,7 @@ void radv_CmdPushDescriptorSetWithTemplateKHR(
|
|||||||
descriptorUpdateTemplate, pData);
|
descriptorUpdateTemplate, pData);
|
||||||
|
|
||||||
cmd_buffer->state.descriptors[set] = push_set;
|
cmd_buffer->state.descriptors[set] = push_set;
|
||||||
cmd_buffer->state.descriptors_dirty |= (1 << set);
|
cmd_buffer->state.descriptors_dirty |= (1u << set);
|
||||||
cmd_buffer->state.push_descriptors_dirty = true;
|
cmd_buffer->state.push_descriptors_dirty = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2207,7 +2207,7 @@ void radv_CmdBindPipeline(
|
|||||||
|
|
||||||
for (unsigned i = 0; i < MAX_SETS; i++) {
|
for (unsigned i = 0; i < MAX_SETS; i++) {
|
||||||
if (cmd_buffer->state.descriptors[i])
|
if (cmd_buffer->state.descriptors[i])
|
||||||
cmd_buffer->state.descriptors_dirty |= (1 << i);
|
cmd_buffer->state.descriptors_dirty |= (1u << i);
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (pipelineBindPoint) {
|
switch (pipelineBindPoint) {
|
||||||
|
@@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
#include <vulkan/vulkan.h>
|
#include <vulkan/vulkan.h>
|
||||||
|
|
||||||
#define MAX_SETS 8
|
#define MAX_SETS 32
|
||||||
|
|
||||||
struct radv_descriptor_set_binding_layout {
|
struct radv_descriptor_set_binding_layout {
|
||||||
VkDescriptorType type;
|
VkDescriptorType type;
|
||||||
|
Reference in New Issue
Block a user