radv: rely on pipeline layout when creating push descriptors with template
descriptorSetLayout should be ignored for push descriptors. While we are it, also ignore pipelineBindPoint. Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2210 Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3180> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3180>
This commit is contained in:
parent
f51ee564f5
commit
02dd1fb859
|
@ -1153,7 +1153,18 @@ VkResult radv_CreateDescriptorUpdateTemplate(VkDevice _device,
|
|||
return vk_error(device->instance, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
|
||||
templ->entry_count = entry_count;
|
||||
templ->bind_point = pCreateInfo->pipelineBindPoint;
|
||||
|
||||
if (pCreateInfo->templateType == VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR) {
|
||||
RADV_FROM_HANDLE(radv_pipeline_layout, pipeline_layout, pCreateInfo->pipelineLayout);
|
||||
|
||||
/* descriptorSetLayout should be ignored for push descriptors
|
||||
* and instead it refers to pipelineLayout and set.
|
||||
*/
|
||||
assert(pCreateInfo->set < MAX_SETS);
|
||||
set_layout = pipeline_layout->set[pCreateInfo->set].layout;
|
||||
|
||||
templ->bind_point = pCreateInfo->pipelineBindPoint;
|
||||
}
|
||||
|
||||
for (i = 0; i < entry_count; i++) {
|
||||
const VkDescriptorUpdateTemplateEntry *entry = &pCreateInfo->pDescriptorUpdateEntries[i];
|
||||
|
|
Loading…
Reference in New Issue