Commit ce5dd206 authored by Peng Huang's avatar Peng Huang Committed by Commit Bot

VulkanSurface: only require useful usage bits

Requesting VK_IMAGE_USAGE_STORAGE_BIT has performance penalty with
some GPUs, so we just request useful usages.

Bug: 1126548,fuchsia:59204
Change-Id: I0f0cc01221f55c4ca4df6974f1002179bfc731a6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2401330Reviewed-by: default avatarEmircan Uysaler <emircan@chromium.org>
Commit-Queue: Emircan Uysaler <emircan@chromium.org>
Commit-Queue: Peng Huang <penghuang@chromium.org>
Auto-Submit: Peng Huang <penghuang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#805447}
parent fd0d170e
...@@ -171,7 +171,9 @@ bool VulkanSurface::Initialize(VulkanDeviceQueue* device_queue, ...@@ -171,7 +171,9 @@ bool VulkanSurface::Initialize(VulkanDeviceQueue* device_queue,
} }
constexpr auto kRequiredUsageFlags = constexpr auto kRequiredUsageFlags =
VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT; VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT;
constexpr auto kOptionalUsageFlags =
VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_SAMPLED_BIT;
if ((surface_caps.supportedUsageFlags & kRequiredUsageFlags) != if ((surface_caps.supportedUsageFlags & kRequiredUsageFlags) !=
kRequiredUsageFlags) { kRequiredUsageFlags) {
DLOG(ERROR) << "Vulkan surface doesn't support necessary usage. " DLOG(ERROR) << "Vulkan surface doesn't support necessary usage. "
...@@ -179,7 +181,8 @@ bool VulkanSurface::Initialize(VulkanDeviceQueue* device_queue, ...@@ -179,7 +181,8 @@ bool VulkanSurface::Initialize(VulkanDeviceQueue* device_queue,
<< std::hex << surface_caps.supportedUsageFlags; << std::hex << surface_caps.supportedUsageFlags;
} }
image_usage_flags_ = surface_caps.supportedUsageFlags; image_usage_flags_ = (kRequiredUsageFlags | kOptionalUsageFlags) &
surface_caps.supportedUsageFlags;
return true; return true;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment