summaryrefslogtreecommitdiff
path: root/libavutil/hwcontext_vulkan.c
diff options
context:
space:
mode:
authorLynne <dev@lynne.ee>2023-03-14 20:45:45 +0100
committerLynne <dev@lynne.ee>2023-05-29 00:41:41 +0200
commit9b385b480f5aad0d628424841dbc9e5dca106738 (patch)
tree6b8eb0db5110c7710c2fd84c242a3f2f1d8752a1 /libavutil/hwcontext_vulkan.c
parente5e12c5078ab1a4ad04d03ed65749f584f96fd00 (diff)
hwcontext_vulkan: enable GPU-assisted validation when debugging
Diffstat (limited to 'libavutil/hwcontext_vulkan.c')
-rw-r--r--libavutil/hwcontext_vulkan.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c
index 3d3b82af4c..2825592925 100644
--- a/libavutil/hwcontext_vulkan.c
+++ b/libavutil/hwcontext_vulkan.c
@@ -696,6 +696,9 @@ static int create_instance(AVHWDeviceContext *ctx, AVDictionary *opts)
LIBAVUTIL_VERSION_MINOR,
LIBAVUTIL_VERSION_MICRO),
};
+ VkValidationFeaturesEXT validation_features = {
+ .sType = VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT,
+ };
VkInstanceCreateInfo inst_props = {
.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO,
.pApplicationInfo = &application_info,
@@ -726,6 +729,17 @@ static int create_instance(AVHWDeviceContext *ctx, AVDictionary *opts)
if (err < 0)
goto fail;
+ if (debug_mode) {
+ VkValidationFeatureEnableEXT feat_list[] = {
+ VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT,
+ VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT,
+ VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT,
+ };
+ validation_features.pEnabledValidationFeatures = feat_list;
+ validation_features.enabledValidationFeatureCount = FF_ARRAY_ELEMS(feat_list);
+ inst_props.pNext = &validation_features;
+ }
+
/* Try to create the instance */
ret = vk->CreateInstance(&inst_props, hwctx->alloc, &hwctx->inst);