]> git.tdb.fi Git - libs/gl.git/blobdiff - source/backends/vulkan/program_backend.cpp
Fix handling of descriptor set bindings when shader stages change
[libs/gl.git] / source / backends / vulkan / program_backend.cpp
index 5af7d67aca0ba314884e2fb831de68e011c791e8..728bacbce7c6f75217c258691287e9ee164a2597 100644 (file)
@@ -125,10 +125,10 @@ void VulkanProgram::finalize_uniforms()
                        {
                                bindings.emplace_back();
                                VkDescriptorSetLayoutBinding &binding = bindings.back();
-                               binding.binding = b.bind_point;
-                               binding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC;
+                               binding.binding = b.bind_point&0xFFFFF;
+                               binding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
                                binding.descriptorCount = 1;
-                               binding.stageFlags = VK_SHADER_STAGE_ALL;
+                               binding.stageFlags = stage_flags;
                                binding.pImmutableSamplers = 0;
                        }
 
@@ -137,10 +137,10 @@ void VulkanProgram::finalize_uniforms()
                        {
                                bindings.emplace_back();
                                VkDescriptorSetLayoutBinding &binding = bindings.back();
-                               binding.binding = u.binding;
+                               binding.binding = u.binding&0xFFFFF;
                                binding.descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER;
                                binding.descriptorCount = 1;
-                               binding.stageFlags = VK_SHADER_STAGE_ALL;
+                               binding.stageFlags = stage_flags;
                                binding.pImmutableSamplers = 0;
                        }