void insert_texture_barrier(VkCommandBuffer cmd, vk::image *image) { if (image->info.usage & VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT) { VkImageAspectFlags aspect = VK_IMAGE_ASPECT_DEPTH_BIT; if (image->info.format != VK_FORMAT_D16_UNORM) aspect |= VK_IMAGE_ASPECT_STENCIL_BIT; insert_texture_barrier(cmd, image->value, image->current_layout, { aspect, 0, 1, 0, 1 }); } else { insert_texture_barrier(cmd, image->value, image->current_layout, { VK_IMAGE_ASPECT_COLOR_BIT, 0, 1, 0, 1 }); } }
void insert_texture_barrier(VkCommandBuffer cmd, vk::image *image, VkImageLayout new_layout) { insert_texture_barrier(cmd, image->value, image->current_layout, new_layout, { image->aspect(), 0, 1, 0, 1 }); image->current_layout = new_layout; }