Browse Source

[vk] Ensure image view flags are resolved

true-eds
CamilleLaVey 4 weeks ago
committed by Caio Oliveira
parent
commit
b5f8ff7035
No known key found for this signature in database GPG Key ID: AAAE6C7FD4186B0C
  1. 16
      src/video_core/renderer_vulkan/vk_texture_cache.cpp

16
src/video_core/renderer_vulkan/vk_texture_cache.cpp

@ -2051,15 +2051,21 @@ ImageView::ImageView(TextureCacheRuntime& runtime, const VideoCommon::ImageViewI
}
}
const auto format_info = MaxwellToVK::SurfaceFormat(*device, FormatType::Optimal, true, format);
if (ImageUsageFlags(format_info, format) != image.UsageFlags()) {
LOG_WARNING(Render_Vulkan,
"Image view format {} has different usage flags than image format {}", format,
image.info.format);
const VkImageUsageFlags desired_usage = ImageUsageFlags(format_info, format);
const VkImageUsageFlags image_usage = image.UsageFlags();
// ImageView usage must be a subset of the original image usage
const VkImageUsageFlags view_usage = desired_usage & image_usage;
if (desired_usage != image_usage) {
LOG_DEBUG(Render_Vulkan,
"Image view format {} usage flags (0x{:X}) restricted to image usage (0x{:X}), result: 0x{:X}",
format, desired_usage, image_usage, view_usage);
}
const VkImageViewUsageCreateInfo image_view_usage{
.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO,
.pNext = nullptr,
.usage = ImageUsageFlags(format_info, format),
.usage = view_usage,
};
const VkImageViewCreateInfo create_info{
.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,

Loading…
Cancel
Save