|
|
|
@ -328,12 +328,13 @@ void ASTCDecoderPass::Assemble(Image& image, const StagingBufferRef& map,
|
|
|
|
|
const VkImageAspectFlags aspect_mask = image.AspectMask();
|
|
|
|
|
const VkImage vk_image = image.Handle();
|
|
|
|
|
const bool is_initialized = image.ExchangeInitialization();
|
|
|
|
|
scheduler.Record(
|
|
|
|
|
[vk_pipeline, vk_image, aspect_mask, is_initialized](vk::CommandBuffer cmdbuf) {
|
|
|
|
|
scheduler.Record([vk_pipeline, vk_image, aspect_mask,
|
|
|
|
|
is_initialized](vk::CommandBuffer cmdbuf) {
|
|
|
|
|
const VkImageMemoryBarrier image_barrier{
|
|
|
|
|
.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
|
|
|
|
|
.pNext = nullptr,
|
|
|
|
|
.srcAccessMask = is_initialized ? VK_ACCESS_SHADER_WRITE_BIT : VK_ACCESS_NONE,
|
|
|
|
|
.srcAccessMask = static_cast<VkAccessFlags>(is_initialized ? VK_ACCESS_SHADER_WRITE_BIT
|
|
|
|
|
: VK_ACCESS_NONE),
|
|
|
|
|
.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,
|
|
|
|
|