summaryrefslogtreecommitdiffstats
path: root/src/intel/vulkan/anv_descriptor_set.c
diff options
context:
space:
mode:
authorJason Ekstrand <jason.ekstrand@intel.com>2016-02-22 21:39:14 -0800
committerJason Ekstrand <jason.ekstrand@intel.com>2016-02-22 21:39:14 -0800
commitbfbb238dea91b1c2bde4f2f3eb20d39c95da3850 (patch)
tree0c8c727ae656d6ab16a0b68a1397cdac49723d4d /src/intel/vulkan/anv_descriptor_set.c
parent64e1c8405920a160c0fdac47ebe4f1e1c0468d7a (diff)
downloadexternal_mesa3d-bfbb238dea91b1c2bde4f2f3eb20d39c95da3850.zip
external_mesa3d-bfbb238dea91b1c2bde4f2f3eb20d39c95da3850.tar.gz
external_mesa3d-bfbb238dea91b1c2bde4f2f3eb20d39c95da3850.tar.bz2
anv/descriptor_set: Set descriptor type for immuatable samplers
Diffstat (limited to 'src/intel/vulkan/anv_descriptor_set.c')
-rw-r--r--src/intel/vulkan/anv_descriptor_set.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/intel/vulkan/anv_descriptor_set.c b/src/intel/vulkan/anv_descriptor_set.c
index b439f2a..fe105b2 100644
--- a/src/intel/vulkan/anv_descriptor_set.c
+++ b/src/intel/vulkan/anv_descriptor_set.c
@@ -399,8 +399,17 @@ anv_descriptor_set_create(struct anv_device *device,
struct anv_descriptor *desc = set->descriptors;
for (uint32_t b = 0; b < layout->binding_count; b++) {
if (layout->binding[b].immutable_samplers) {
- for (uint32_t i = 0; i < layout->binding[b].array_size; i++)
- desc[i].sampler = layout->binding[b].immutable_samplers[i];
+ for (uint32_t i = 0; i < layout->binding[b].array_size; i++) {
+ /* The type will get changed to COMBINED_IMAGE_SAMPLER in
+ * UpdateDescriptorSets if needed. However, if the descriptor
+ * set has an immutable sampler, UpdateDescriptorSets may never
+ * touch it, so we need to make sure it's 100% valid now.
+ */
+ desc[i] = (struct anv_descriptor) {
+ .type = VK_DESCRIPTOR_TYPE_SAMPLER,
+ .sampler = layout->binding[b].immutable_samplers[i],
+ };
+ }
}
desc += layout->binding[b].array_size;
}