aboutsummaryrefslogtreecommitdiff
path: root/layers/descriptor_sets.cpp
diff options
context:
space:
mode:
authorChris Forbes <chrisforbes@google.com>2018-04-13 09:34:15 -0700
committerChris Forbes <chrisf@ijw.co.nz>2018-04-15 17:45:52 -0700
commit27681093e25892944f8dcdb7a86450c1ec202d34 (patch)
treeae2917ae7a13ce8515c4be19a79a0c6bd57d46b0 /layers/descriptor_sets.cpp
parent27fc489851430e984f2ac081e7cfbf05c88f8268 (diff)
downloadusermoji-27681093e25892944f8dcdb7a86450c1ec202d34.tar.xz
Don't clobber immutable samplers in update
The copy cases were already doing the right thing; the basic updates missed the check for the sampler being immutable. Fixes #2569
Diffstat (limited to 'layers/descriptor_sets.cpp')
-rw-r--r--layers/descriptor_sets.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/layers/descriptor_sets.cpp b/layers/descriptor_sets.cpp
index 57f30347..f9d64568 100644
--- a/layers/descriptor_sets.cpp
+++ b/layers/descriptor_sets.cpp
@@ -1358,7 +1358,9 @@ bool cvdescriptorset::ValidateImageUpdate(VkImageView image_view, VkImageLayout
}
void cvdescriptorset::SamplerDescriptor::WriteUpdate(const VkWriteDescriptorSet *update, const uint32_t index) {
- sampler_ = update->pImageInfo[index].sampler;
+ if (!immutable_) {
+ sampler_ = update->pImageInfo[index].sampler;
+ }
updated = true;
}
@@ -1390,7 +1392,9 @@ cvdescriptorset::ImageSamplerDescriptor::ImageSamplerDescriptor(const VkSampler
void cvdescriptorset::ImageSamplerDescriptor::WriteUpdate(const VkWriteDescriptorSet *update, const uint32_t index) {
updated = true;
const auto &image_info = update->pImageInfo[index];
- sampler_ = image_info.sampler;
+ if (!immutable_) {
+ sampler_ = image_info.sampler;
+ }
image_view_ = image_info.imageView;
image_layout_ = image_info.imageLayout;
}