diff options
author | Jason Macnak <natsu@google.com> | 2022-04-06 10:40:14 -0700 |
---|---|---|
committer | Jason Macnak <natsu@google.com> | 2022-04-06 10:43:45 -0700 |
commit | b9055d7ce628a096e3e4bb29d0f87faf2ff4a3eb (patch) | |
tree | da1c60334d2e8e84c618d02552b79da8f0aa74f8 | |
parent | 998000453d78ed2e66269a48650d778a3dbb83f5 (diff) | |
download | vulkan-cereal-b9055d7ce628a096e3e4bb29d0f87faf2ff4a3eb.tar.gz |
Allow IMAGE_ATTACHMENT usage with COLOR_ATTACHMENT format feature
... as this is allowed by the spec:
VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT specifies that an image view
can be used as a framebuffer color attachment and as an input
attachment.
Bug: b/165022040
Test: `cvd start --gpu_mode=gfxstream` with WIP ANGLE
Change-Id: I52bf98845d762c0fd109134f5fe4b01b2206b3a3
-rw-r--r-- | stream-servers/vulkan/VkCommonOperations.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/stream-servers/vulkan/VkCommonOperations.cpp b/stream-servers/vulkan/VkCommonOperations.cpp index 60d8a5cf..f8769a34 100644 --- a/stream-servers/vulkan/VkCommonOperations.cpp +++ b/stream-servers/vulkan/VkCommonOperations.cpp @@ -1540,11 +1540,16 @@ static std::unique_ptr<VkImageCreateInfo> generateColorBufferVkImageCreateInfo_l const VkFormatProperties& formatProperties = *maybeFormatProperties; constexpr std::pair<VkFormatFeatureFlags, VkImageUsageFlags> formatUsagePairs[] = { - {VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT}, - {VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT, VK_IMAGE_USAGE_SAMPLED_BIT}, - {VK_FORMAT_FEATURE_TRANSFER_SRC_BIT, VK_IMAGE_USAGE_TRANSFER_SRC_BIT}, - {VK_FORMAT_FEATURE_TRANSFER_DST_BIT, VK_IMAGE_USAGE_TRANSFER_DST_BIT}, - {VK_FORMAT_FEATURE_BLIT_SRC_BIT, VK_IMAGE_USAGE_TRANSFER_SRC_BIT}, + {VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT, + VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT|VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT}, + {VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT, + VK_IMAGE_USAGE_SAMPLED_BIT}, + {VK_FORMAT_FEATURE_TRANSFER_SRC_BIT, + VK_IMAGE_USAGE_TRANSFER_SRC_BIT}, + {VK_FORMAT_FEATURE_TRANSFER_DST_BIT, + VK_IMAGE_USAGE_TRANSFER_DST_BIT}, + {VK_FORMAT_FEATURE_BLIT_SRC_BIT, + VK_IMAGE_USAGE_TRANSFER_SRC_BIT}, }; VkFormatFeatureFlags tilingFeatures = (tiling == VK_IMAGE_TILING_OPTIMAL) ? formatProperties.optimalTilingFeatures |