pvr: Fix seg fault in vkAllocateDescriptorSets().
In cases when no immutable samplers were present but sampler descriptor set layout bindings were, a seg fault was being caused by an attempt to get the immutable sampler from within the immutable sampler array while the array was not allocated. This commit also remove the binding type check since only those specific types can have immutable samplers. The check is covered by the descriptor set layout creation and assignment of has_immutable_samplers. This commit also makes the immutable samplers const, since they're meant to be immutable. This commit also adds has_immutable_samplers field to descriptor set layout. Previously to check whether immutable samplers were present or not you'd check for the layout binding's descriptor count to be 0 and the immutable sampler offset to be 0. This doesn't tell you everything. If you have a descriptor of the appropriate type (VK_DESCRIPTOR_TYPE_{COMBINED_,}IMAGE_SAMPLER). So descriptor count of >1. The offset can be 0 if you don't have immutable sampler, or have them at the beginning of the immutable samplers array. So you can't determine if you really have immutable samplers or not. One could attempt to perform a NULL check on the array but this would not work in cases where you have following set layout bindings with immutable samplers as the array stores the whole layout's immutable samplers. Signed-off-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com> Reviewed-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com> Part-of: <!15688>