[Mesa-dev] [PATCH] anv: descriptors: don't update immutables samplers with anything but their immutable value
Lionel Landwerlin
lionel.g.landwerlin at intel.com
Sat Jan 21 12:28:35 UTC 2017
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
---
src/intel/vulkan/anv_descriptor_set.c | 31 +++++++++++++++++++------------
1 file changed, 19 insertions(+), 12 deletions(-)
diff --git a/src/intel/vulkan/anv_descriptor_set.c b/src/intel/vulkan/anv_descriptor_set.c
index 4367c0ebe0..a5e65afc48 100644
--- a/src/intel/vulkan/anv_descriptor_set.c
+++ b/src/intel/vulkan/anv_descriptor_set.c
@@ -587,8 +587,13 @@ void anv_UpdateDescriptorSets(
switch (write->descriptorType) {
case VK_DESCRIPTOR_TYPE_SAMPLER:
for (uint32_t j = 0; j < write->descriptorCount; j++) {
- ANV_FROM_HANDLE(anv_sampler, sampler,
- write->pImageInfo[j].sampler);
+ /* If this descriptor has an immutable sampler, we don't want to
+ * stomp on it.
+ */
+ struct anv_sampler *sampler =
+ bind_layout->immutable_samplers ?
+ bind_layout->immutable_samplers[j] :
+ anv_sampler_from_handle(write->pImageInfo[j].sampler);
desc[j] = (struct anv_descriptor) {
.type = VK_DESCRIPTOR_TYPE_SAMPLER,
@@ -601,17 +606,19 @@ void anv_UpdateDescriptorSets(
for (uint32_t j = 0; j < write->descriptorCount; j++) {
ANV_FROM_HANDLE(anv_image_view, iview,
write->pImageInfo[j].imageView);
- ANV_FROM_HANDLE(anv_sampler, sampler,
- write->pImageInfo[j].sampler);
-
- desc[j].type = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER;
- desc[j].image_view = iview;
-
- /* If this descriptor has an immutable sampler, we don't want
- * to stomp on it.
+ /* If this descriptor has an immutable sampler, we don't want to
+ * stomp on it.
*/
- if (sampler)
- desc[j].sampler = sampler;
+ struct anv_sampler *sampler =
+ bind_layout->immutable_samplers ?
+ bind_layout->immutable_samplers[j] :
+ anv_sampler_from_handle(write->pImageInfo[j].sampler);
+
+ desc[j] = (struct anv_descriptor) {
+ .type = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
+ .image_view = iview,
+ .sampler = sampler,
+ };
}
break;
--
2.11.0
More information about the mesa-dev
mailing list