aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCharlie Lao <cclao@google.com>2024-04-24 14:09:59 -0700
committerAngle LUCI CQ <angle-scoped@luci-project-accounts.iam.gserviceaccount.com>2024-04-29 21:40:46 +0000
commit4929e1df3e20790afdc1f7c39cc74a5c6473a077 (patch)
tree06bdb58cf0644b15c2d7e92afa500d53328f1e97
parentf51f2bc55b1f8aa2ef8bd9539adcefcadbe91bb9 (diff)
downloadangle-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.h7
-rw-r--r--include/platform/vk_features.json10
-rw-r--r--src/libANGLE/renderer/vulkan/vk_renderer.cpp4
-rw-r--r--util/autogen/angle_features_autogen.cpp1
-rw-r--r--util/autogen/angle_features_autogen.h1
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,