diff options
author | Charlie Lao <cclao@google.com> | 2024-04-24 14:09:59 -0700 |
---|---|---|
committer | Angle LUCI CQ <angle-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2024-04-29 21:40:46 +0000 |
commit | 4929e1df3e20790afdc1f7c39cc74a5c6473a077 (patch) | |
tree | 06bdb58cf0644b15c2d7e92afa500d53328f1e97 | |
parent | f51f2bc55b1f8aa2ef8bd9539adcefcadbe91bb9 (diff) | |
download | angle-4929e1df3e20790afdc1f7c39cc74a5c6473a077.tar.gz |
Vulkan: Add feature flag for using event for image barrier
This is preparation CL that adds a feature flag for using VkEvent for
image barriers.
Bug: b/336844257
Change-Id: I01a7d779e16e2c259ddd05dca7338b3b18c30ba7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5484708
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
-rw-r--r-- | include/platform/autogen/FeaturesVk_autogen.h | 7 | ||||
-rw-r--r-- | include/platform/vk_features.json | 10 | ||||
-rw-r--r-- | src/libANGLE/renderer/vulkan/vk_renderer.cpp | 4 | ||||
-rw-r--r-- | util/autogen/angle_features_autogen.cpp | 1 | ||||
-rw-r--r-- | util/autogen/angle_features_autogen.h | 1 |
5 files changed, 22 insertions, 1 deletions
diff --git a/include/platform/autogen/FeaturesVk_autogen.h b/include/platform/autogen/FeaturesVk_autogen.h index b43a1afc70..896fa7435e 100644 --- a/include/platform/autogen/FeaturesVk_autogen.h +++ b/include/platform/autogen/FeaturesVk_autogen.h @@ -1424,6 +1424,13 @@ struct FeaturesVk : FeatureSetBase &members, "http://anglebug.com/8676" }; + FeatureInfo useVkEventForImageBarrier = { + "useVkEventForImageBarrier", + FeatureCategory::VulkanFeatures, + "Uses VkEvent instead of VkCmdPipelineBarrier for image barriers", + &members, "https://issuetracker.google.com/336844257" + }; + }; inline FeaturesVk::FeaturesVk() = default; diff --git a/include/platform/vk_features.json b/include/platform/vk_features.json index 0a0de11ab6..a915735d87 100644 --- a/include/platform/vk_features.json +++ b/include/platform/vk_features.json @@ -1554,6 +1554,14 @@ "VkDevice supports the VK_KHR_16bit_storage extension and has the storageInputOutput16 feature" ], "issue": "http://anglebug.com/8676" + }, + { + "name": "use_vkEvent_for_image_barrier", + "category": "Features", + "description": [ + "Uses VkEvent instead of VkCmdPipelineBarrier for image barriers" + ], + "issue": "https://issuetracker.google.com/336844257" } ] -}
\ No newline at end of file +} diff --git a/src/libANGLE/renderer/vulkan/vk_renderer.cpp b/src/libANGLE/renderer/vulkan/vk_renderer.cpp index d6b224e82a..6ab2a187e9 100644 --- a/src/libANGLE/renderer/vulkan/vk_renderer.cpp +++ b/src/libANGLE/renderer/vulkan/vk_renderer.cpp @@ -5057,6 +5057,10 @@ void Renderer::initFeatures(const vk::ExtensionNameList &deviceExtensionNames, ANGLE_FEATURE_CONDITION(&mFeatures, supportsExternalFormatResolve, false); #endif + // Disable use of VkCmdWaitEvent for image barriers for now. + // https://issuetracker.google.com/336844257 + ANGLE_FEATURE_CONDITION(&mFeatures, useVkEventForImageBarrier, false); + // Disable memory report feature overrides if extension is not supported. if ((mFeatures.logMemoryReportCallbacks.enabled || mFeatures.logMemoryReportStats.enabled) && !mMemoryReportFeatures.deviceMemoryReport) diff --git a/util/autogen/angle_features_autogen.cpp b/util/autogen/angle_features_autogen.cpp index ec503e9fc1..173269fbbb 100644 --- a/util/autogen/angle_features_autogen.cpp +++ b/util/autogen/angle_features_autogen.cpp @@ -405,6 +405,7 @@ constexpr PackedEnumMap<Feature, const char *> kFeatureNames = {{ {Feature::UseSystemMemoryForConstantBuffers, "useSystemMemoryForConstantBuffers"}, {Feature::UseUnusedBlocksWithStandardOrSharedLayout, "useUnusedBlocksWithStandardOrSharedLayout"}, {Feature::UseVertexInputBindingStrideDynamicState, "useVertexInputBindingStrideDynamicState"}, + {Feature::UseVkEventForImageBarrier, "useVkEventForImageBarrier"}, {Feature::UseVmaForImageSuballocation, "useVmaForImageSuballocation"}, {Feature::VaryingsRequireMatchingPrecisionInSpirv, "varyingsRequireMatchingPrecisionInSpirv"}, {Feature::VertexIDDoesNotIncludeBaseVertex, "vertexIDDoesNotIncludeBaseVertex"}, diff --git a/util/autogen/angle_features_autogen.h b/util/autogen/angle_features_autogen.h index 9b57149f74..ec9ac8e00b 100644 --- a/util/autogen/angle_features_autogen.h +++ b/util/autogen/angle_features_autogen.h @@ -405,6 +405,7 @@ enum class Feature UseSystemMemoryForConstantBuffers, UseUnusedBlocksWithStandardOrSharedLayout, UseVertexInputBindingStrideDynamicState, + UseVkEventForImageBarrier, UseVmaForImageSuballocation, VaryingsRequireMatchingPrecisionInSpirv, VertexIDDoesNotIncludeBaseVertex, |