vk_compute_pass: Fix pipeline barriers on non-initialized ASTC images
This commit is contained in:
		@@ -411,7 +411,7 @@ void ASTCDecoderPass::Assemble(Image& image, const StagingBufferRef& map,
 | 
			
		||||
            const VkImageMemoryBarrier image_barrier{
 | 
			
		||||
                .sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
 | 
			
		||||
                .pNext = nullptr,
 | 
			
		||||
                .srcAccessMask = VK_ACCESS_SHADER_WRITE_BIT,
 | 
			
		||||
                .srcAccessMask = is_initialized ? VK_ACCESS_SHADER_WRITE_BIT : VkAccessFlags{},
 | 
			
		||||
                .dstAccessMask = VK_ACCESS_SHADER_READ_BIT | VK_ACCESS_SHADER_WRITE_BIT,
 | 
			
		||||
                .oldLayout = is_initialized ? VK_IMAGE_LAYOUT_GENERAL : VK_IMAGE_LAYOUT_UNDEFINED,
 | 
			
		||||
                .newLayout = VK_IMAGE_LAYOUT_GENERAL,
 | 
			
		||||
@@ -426,7 +426,8 @@ void ASTCDecoderPass::Assemble(Image& image, const StagingBufferRef& map,
 | 
			
		||||
                    .layerCount = VK_REMAINING_ARRAY_LAYERS,
 | 
			
		||||
                },
 | 
			
		||||
            };
 | 
			
		||||
            cmdbuf.PipelineBarrier(is_initialized ? VK_PIPELINE_STAGE_ALL_COMMANDS_BIT : 0,
 | 
			
		||||
            cmdbuf.PipelineBarrier(is_initialized ? VK_PIPELINE_STAGE_ALL_COMMANDS_BIT
 | 
			
		||||
                                                  : VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
 | 
			
		||||
                                   VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, 0, image_barrier);
 | 
			
		||||
            cmdbuf.BindPipeline(VK_PIPELINE_BIND_POINT_COMPUTE, vk_pipeline);
 | 
			
		||||
        });
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user