X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbackends%2Fvulkan%2Fpipelinestate_backend.cpp;h=013e34c2636a9e995ab64d9815bc53e14dc80f41;hb=2c060874dcf5cee7ffa52e3d2caee505371fa1a8;hp=892348214790573832989baa7ea6de790b418139;hpb=7b59f9eb7120bf31afded9105aba8163a4381e5b;p=libs%2Fgl.git diff --git a/source/backends/vulkan/pipelinestate_backend.cpp b/source/backends/vulkan/pipelinestate_backend.cpp index 89234821..013e34c2 100644 --- a/source/backends/vulkan/pipelinestate_backend.cpp +++ b/source/backends/vulkan/pipelinestate_backend.cpp @@ -49,7 +49,7 @@ void VulkanPipelineState::update() const for(const PipelineState::BoundUniformBlock &u: self.uniform_blocks) if(u.changed || changed_sets==~0U) { - u.used = self.shprog->uses_binding(u.binding); + u.used = self.shprog->uses_uniform_block_binding(u.binding); if(u.binding>=0) changed_sets |= 1<<(u.binding>>20); u.changed = false; @@ -57,7 +57,7 @@ void VulkanPipelineState::update() const for(const PipelineState::BoundTexture &t: self.textures) if(t.changed || changed_sets==~0U) { - t.used = self.shprog->uses_binding(t.binding); + t.used = self.shprog->uses_texture_binding(t.binding); changed_sets |= 1<<(t.binding>>20); if(t.sampler) t.sampler->refresh(); @@ -374,7 +374,8 @@ void VulkanPipelineState::apply(VkCommandBuffer command_buffer) const } } - vk.CmdBindDescriptorSets(command_buffer, VK_PIPELINE_BIND_POINT_GRAPHICS, self.shprog->layout_handle, 0, descriptor_set_handles.size(), descriptor_set_handles.data(), 0, 0); + if(!descriptor_set_handles.empty()) + vk.CmdBindDescriptorSets(command_buffer, VK_PIPELINE_BIND_POINT_GRAPHICS, self.shprog->layout_handle, 0, descriptor_set_handles.size(), descriptor_set_handles.data(), 0, 0); VkViewport viewport = { }; if(self.viewport)