]> git.tdb.fi Git - libs/gl.git/blobdiff - source/backends/vulkan/pipelinestate_backend.cpp
Check the flat qualifier from the correct member
[libs/gl.git] / source / backends / vulkan / pipelinestate_backend.cpp
index f06e2d324a82e9302135b46c49d7401b9c008f4a..9e6db92fd3b8e2a3a07ccfef9f2e8f490a0df064 100644 (file)
@@ -196,7 +196,7 @@ void VulkanPipelineState::fill_graphics_creation_info(vector<char> &buffer) cons
 
        input_assembly_info->sType = VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO;
        input_assembly_info->topology = static_cast<VkPrimitiveTopology>(get_vulkan_primitive_type(self.primitive_type));
-       input_assembly_info->primitiveRestartEnable = !has_tessellation;
+       input_assembly_info->primitiveRestartEnable = (self.primitive_type!=POINTS && self.primitive_type!=LINES && self.primitive_type!=TRIANGLES && self.primitive_type!=PATCHES);
 
        if(has_tessellation)
        {
@@ -448,6 +448,10 @@ unsigned VulkanPipelineState::fill_descriptor_writes(unsigned index, unsigned fr
                ++write_ptr;
        }
 
+#ifdef DEBUG
+       self.check_bound_resources();
+#endif
+
        return n_writes;
 }
 
@@ -456,8 +460,13 @@ void VulkanPipelineState::synchronize_resources() const
        const PipelineState &self = *static_cast<const PipelineState *>(this);
 
        for(const PipelineState::BoundResource &r: self.resources)
-               if(r.type==PipelineState::STORAGE_TEXTURE)
-                       r.texture->change_layout(-1, VK_IMAGE_LAYOUT_GENERAL, false);
+               if(r.used)
+               {
+                       if(r.type==PipelineState::STORAGE_TEXTURE)
+                               r.texture->change_layout(-1, VK_IMAGE_LAYOUT_GENERAL, false);
+                       else if(r.type==PipelineState::SAMPLED_TEXTURE)
+                               r.texture->change_layout(-1, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, false);
+               }
 }
 
 void VulkanPipelineState::apply(const VulkanCommandRecorder &vkCmd, const VulkanPipelineState *last, unsigned frame, bool negative_viewport) const