aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLynne <dev@lynne.ee>2024-10-04 01:27:46 +0200
committerLynne <dev@lynne.ee>2024-10-04 10:10:44 +0200
commit356d1cc8ff8e401cecf5300c5a6174cc19204988 (patch)
tree359da0032e6459a712f75551255ae7d9d685a544
parente3676d96cbafa4e859b364f0fb64651cd9f20270 (diff)
downloadffmpeg-356d1cc8ff8e401cecf5300c5a6174cc19204988.tar.gz
vulkan: parse instance list and add the DEBUG_UTILS extension
Required to let users know whether debugging is active.
-rw-r--r--libavfilter/vulkan_filter.c2
-rw-r--r--libavutil/hwcontext_vulkan.c1
-rw-r--r--libavutil/vulkan.c2
-rw-r--r--libavutil/vulkan_loader.h4
4 files changed, 8 insertions, 1 deletions
diff --git a/libavfilter/vulkan_filter.c b/libavfilter/vulkan_filter.c
index 8d9b416d6a..85665b4d42 100644
--- a/libavfilter/vulkan_filter.c
+++ b/libavfilter/vulkan_filter.c
@@ -151,6 +151,8 @@ skip:
s->extensions = ff_vk_extensions_to_mask(vk_dev->enabled_dev_extensions,
vk_dev->nb_enabled_dev_extensions);
+ s->extensions |= ff_vk_extensions_to_mask(vk_dev->enabled_inst_extensions,
+ vk_dev->nb_enabled_inst_extensions);
err = ff_vk_load_functions(device_ctx, &s->vkfn, s->extensions, 1, 1);
if (err < 0) {
diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c
index 870e988578..033077178c 100644
--- a/libavutil/hwcontext_vulkan.c
+++ b/libavutil/hwcontext_vulkan.c
@@ -739,7 +739,6 @@ static int check_extensions(AVHWDeviceContext *ctx, int dev, AVDictionary *opts,
if (found) {
av_log(ctx, AV_LOG_VERBOSE, "Using %s extension %s\n", mod, tstr);
ADD_VAL_TO_LIST(extension_names, extensions_found, tstr);
- p->vkctx.extensions |= FF_VK_EXT_DEBUG_UTILS;
} else {
av_log(ctx, AV_LOG_ERROR, "Debug extension \"%s\" not found!\n",
tstr);
diff --git a/libavutil/vulkan.c b/libavutil/vulkan.c
index ba1d18f4c6..4ee28ad839 100644
--- a/libavutil/vulkan.c
+++ b/libavutil/vulkan.c
@@ -2347,6 +2347,8 @@ int ff_vk_init(FFVulkanContext *s, void *log_parent,
s->extensions = ff_vk_extensions_to_mask(s->hwctx->enabled_dev_extensions,
s->hwctx->nb_enabled_dev_extensions);
+ s->extensions |= ff_vk_extensions_to_mask(s->hwctx->enabled_inst_extensions,
+ s->hwctx->nb_enabled_inst_extensions);
err = ff_vk_load_functions(s->device, &s->vkfn, s->extensions, 1, 1);
if (err < 0) {
diff --git a/libavutil/vulkan_loader.h b/libavutil/vulkan_loader.h
index 3dc27c159e..12e9884b8c 100644
--- a/libavutil/vulkan_loader.h
+++ b/libavutil/vulkan_loader.h
@@ -40,6 +40,10 @@ static inline uint64_t ff_vk_extensions_to_mask(const char * const *extensions,
const char *name;
FFVulkanExtensions flag;
} extension_map[] = {
+ /* Instance extensions */
+ { VK_EXT_DEBUG_UTILS_EXTENSION_NAME, FF_VK_EXT_DEBUG_UTILS },
+
+ /* Device extensions */
{ VK_KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_EXTENSION_NAME, FF_VK_EXT_RELAXED_EXTENDED_INSTR },
{ VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME, FF_VK_EXT_EXTERNAL_DMABUF_MEMORY },
{ VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME, FF_VK_EXT_DRM_MODIFIER_FLAGS },