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];