From 77c8d1a8469750a01aa2ce21c5605838f67bde71 Mon Sep 17 00:00:00 2001 From: Mikko Rasa Date: Tue, 18 Jul 2023 11:12:57 +0300 Subject: [PATCH] Add a function to query if a uniform is a storage image --- source/backends/vulkan/program_backend.cpp | 6 +++--- source/core/reflectdata.h | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/source/backends/vulkan/program_backend.cpp b/source/backends/vulkan/program_backend.cpp index 8ad2205d..8c2a5c33 100644 --- a/source/backends/vulkan/program_backend.cpp +++ b/source/backends/vulkan/program_backend.cpp @@ -138,10 +138,10 @@ void VulkanProgram::finalize_uniforms() bindings.emplace_back(); VkDescriptorSetLayoutBinding &binding = bindings.back(); binding.binding = u.binding&0xFFFFF; - if(is_sampled_image(u.type)) - binding.descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER; - else + if(u.is_storage_image()) binding.descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE; + else + binding.descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER; binding.descriptorCount = 1; binding.stageFlags = stage_flags; binding.pImmutableSamplers = 0; diff --git a/source/core/reflectdata.h b/source/core/reflectdata.h index a48dda6d..83b01671 100644 --- a/source/core/reflectdata.h +++ b/source/core/reflectdata.h @@ -40,6 +40,8 @@ struct ReflectData DataType type = VOID; Tag tag; int binding = -1; + + bool is_storage_image() const { return is_image(type) && !is_sampled_image(type); } }; struct BlockInfo -- 2.45.2