anv: remove multiple push descriptors
VUID-VkPipelineLayoutCreateInfo-pSetLayouts-00293 pSetLayouts must not contain more than one descriptor set layout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR set There is only one push descriptor set with all the descriptor sets, so no need to have an array. Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Emma Anholt <emma@anholt.net> Reviewed-by: Tapani Pälli <tapani.palli@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19050>
This commit is contained in:

committed by
Marge Bot

parent
803f438d85
commit
06d955ab21
@@ -57,12 +57,10 @@ static void
|
|||||||
anv_cmd_pipeline_state_finish(struct anv_cmd_buffer *cmd_buffer,
|
anv_cmd_pipeline_state_finish(struct anv_cmd_buffer *cmd_buffer,
|
||||||
struct anv_cmd_pipeline_state *pipe_state)
|
struct anv_cmd_pipeline_state *pipe_state)
|
||||||
{
|
{
|
||||||
for (uint32_t i = 0; i < ARRAY_SIZE(pipe_state->push_descriptors); i++) {
|
if (pipe_state->push_descriptor) {
|
||||||
if (pipe_state->push_descriptors[i]) {
|
anv_descriptor_set_layout_unref(cmd_buffer->device,
|
||||||
anv_descriptor_set_layout_unref(cmd_buffer->device,
|
pipe_state->push_descriptor->set.layout);
|
||||||
pipe_state->push_descriptors[i]->set.layout);
|
vk_free(&cmd_buffer->vk.pool->alloc, pipe_state->push_descriptor);
|
||||||
vk_free(&cmd_buffer->vk.pool->alloc, pipe_state->push_descriptors[i]);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -877,7 +875,7 @@ anv_cmd_buffer_push_descriptor_set(struct anv_cmd_buffer *cmd_buffer,
|
|||||||
}
|
}
|
||||||
|
|
||||||
struct anv_push_descriptor_set **push_set =
|
struct anv_push_descriptor_set **push_set =
|
||||||
&pipe_state->push_descriptors[_set];
|
&pipe_state->push_descriptor;
|
||||||
|
|
||||||
if (*push_set == NULL) {
|
if (*push_set == NULL) {
|
||||||
*push_set = vk_zalloc(&cmd_buffer->vk.pool->alloc,
|
*push_set = vk_zalloc(&cmd_buffer->vk.pool->alloc,
|
||||||
|
@@ -2433,7 +2433,7 @@ anv_gfx8_9_vb_cache_range_needs_workaround(struct anv_vb_cache_range *bound,
|
|||||||
*/
|
*/
|
||||||
struct anv_cmd_pipeline_state {
|
struct anv_cmd_pipeline_state {
|
||||||
struct anv_descriptor_set *descriptors[MAX_SETS];
|
struct anv_descriptor_set *descriptors[MAX_SETS];
|
||||||
struct anv_push_descriptor_set *push_descriptors[MAX_SETS];
|
struct anv_push_descriptor_set *push_descriptor;
|
||||||
|
|
||||||
struct anv_push_constants push_constants;
|
struct anv_push_constants push_constants;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user