radv: assert on inline uniform blocks in radv_CmdPushDescriptorSetKHR()
authorSamuel Iglesias Gonsálvez <siglesias@igalia.com>
Tue, 11 Jun 2019 09:00:28 +0000 (11:00 +0200)
committerSamuel Iglesias Gonsálvez <siglesias@igalia.com>
Tue, 11 Jun 2019 14:32:27 +0000 (16:32 +0200)
commit32e1d85cb69933bca768da550ffe73cb64d547ec
treeeb5d7e68a67fe50b9d289fe98297cc94c04cd4b8
parentd0c52ff610421e8b27d534968d1b1d8c03c73da9
radv: assert on inline uniform blocks in radv_CmdPushDescriptorSetKHR()

According to the Vulkan spec, inline uniform blocks are not allowed
to be updated through vkCmdPushDescriptorSetKHR().

These are the spec quotes from "13.2.1. Descriptor Set Layout"
that are relevant for this case:

"VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR specifies
 that descriptor sets must not be allocated using this layout, and
 descriptors are instead pushed by vkCmdPushDescriptorSetKHR."

"If flags contains
 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR, then all
 elements of pBindings must not have a descriptorType of
 VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT".

There is no explicit mention in vkCmdPushDescriptorSetKHR() to forbid
this case but it is implied in the creation of the descriptor set
layout as aforementioned.

Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
src/amd/vulkan/radv_cmd_buffer.c