summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLynne <[email protected]>2025-08-09 15:05:55 +0900
committerLynne <[email protected]>2025-08-09 15:07:56 +0900
commita9fb323e8866255ef537409a3082532025c7a4ff (patch)
tree9e3cfa3230272a07c7abb95d05fb70a423bd2396
parent5621eee672391680f432075865e7580189ad0097 (diff)
vulkan: temporarily disable threading for ASIC-based hwaccels
The issue is that a race condition exists between threads locking frames, which results in cyclic loops and deadlocks. Compute-based implementations are not affected. Fixes #20169
-rw-r--r--libavcodec/vulkan_av1.c2
-rw-r--r--libavcodec/vulkan_h264.c2
-rw-r--r--libavcodec/vulkan_hevc.c2
-rw-r--r--libavcodec/vulkan_vp9.c2
4 files changed, 4 insertions, 4 deletions
diff --git a/libavcodec/vulkan_av1.c b/libavcodec/vulkan_av1.c
index afbd2347de..788e3cca78 100644
--- a/libavcodec/vulkan_av1.c
+++ b/libavcodec/vulkan_av1.c
@@ -666,5 +666,5 @@ const FFHWAccel ff_av1_vulkan_hwaccel = {
.uninit = &ff_vk_decode_uninit,
.frame_params = &ff_vk_frame_params,
.priv_data_size = sizeof(FFVulkanDecodeContext),
- .caps_internal = HWACCEL_CAP_ASYNC_SAFE | HWACCEL_CAP_THREAD_SAFE,
+ .caps_internal = HWACCEL_CAP_ASYNC_SAFE,
};
diff --git a/libavcodec/vulkan_h264.c b/libavcodec/vulkan_h264.c
index 09f394dacf..ebe305e7b5 100644
--- a/libavcodec/vulkan_h264.c
+++ b/libavcodec/vulkan_h264.c
@@ -588,5 +588,5 @@ const FFHWAccel ff_h264_vulkan_hwaccel = {
.uninit = &ff_vk_decode_uninit,
.frame_params = &ff_vk_frame_params,
.priv_data_size = sizeof(FFVulkanDecodeContext),
- .caps_internal = HWACCEL_CAP_ASYNC_SAFE | HWACCEL_CAP_THREAD_SAFE,
+ .caps_internal = HWACCEL_CAP_ASYNC_SAFE,
};
diff --git a/libavcodec/vulkan_hevc.c b/libavcodec/vulkan_hevc.c
index 78ad833308..5e15c6b931 100644
--- a/libavcodec/vulkan_hevc.c
+++ b/libavcodec/vulkan_hevc.c
@@ -953,5 +953,5 @@ const FFHWAccel ff_hevc_vulkan_hwaccel = {
.uninit = &ff_vk_decode_uninit,
.frame_params = &ff_vk_frame_params,
.priv_data_size = sizeof(FFVulkanDecodeContext),
- .caps_internal = HWACCEL_CAP_ASYNC_SAFE | HWACCEL_CAP_THREAD_SAFE,
+ .caps_internal = HWACCEL_CAP_ASYNC_SAFE,
};
diff --git a/libavcodec/vulkan_vp9.c b/libavcodec/vulkan_vp9.c
index ddb4eccc3c..f8ce73dc90 100644
--- a/libavcodec/vulkan_vp9.c
+++ b/libavcodec/vulkan_vp9.c
@@ -366,5 +366,5 @@ const FFHWAccel ff_vp9_vulkan_hwaccel = {
.uninit = &ff_vk_decode_uninit,
.frame_params = &ff_vk_frame_params,
.priv_data_size = sizeof(FFVulkanDecodeContext),
- .caps_internal = HWACCEL_CAP_ASYNC_SAFE | HWACCEL_CAP_THREAD_SAFE,
+ .caps_internal = HWACCEL_CAP_ASYNC_SAFE,
};