This is an automated email from the git hooks/post-receive script.

Git pushed a commit to branch master
in repository ffmpeg.

commit d381151ae3a8ea8b923751c9b6d4e1e81386f59e
Author:     Lynne <[email protected]>
AuthorDate: Thu Feb 12 11:33:07 2026 +0100
Commit:     Lynne <[email protected]>
CommitDate: Tue Apr 21 08:28:45 2026 +0200

    vulkan_filter: add an argument for setting the Z workgroup count
---
 libavfilter/vf_avgblur_vulkan.c   |  2 +-
 libavfilter/vf_blend_vulkan.c     |  2 +-
 libavfilter/vf_bwdif_vulkan.c     |  2 +-
 libavfilter/vf_chromaber_vulkan.c |  2 +-
 libavfilter/vf_flip_vulkan.c      |  2 +-
 libavfilter/vf_gblur_vulkan.c     |  2 +-
 libavfilter/vf_interlace_vulkan.c |  2 +-
 libavfilter/vf_overlay_vulkan.c   |  2 +-
 libavfilter/vf_scale_vulkan.c     |  2 +-
 libavfilter/vf_transpose_vulkan.c |  2 +-
 libavfilter/vf_v360_vulkan.c      |  2 +-
 libavfilter/vf_xfade_vulkan.c     |  2 +-
 libavfilter/vsrc_testsrc_vulkan.c |  4 ++--
 libavfilter/vulkan_filter.c       | 15 +++++++++------
 libavfilter/vulkan_filter.h       |  9 ++++++---
 15 files changed, 29 insertions(+), 23 deletions(-)

diff --git a/libavfilter/vf_avgblur_vulkan.c b/libavfilter/vf_avgblur_vulkan.c
index db0b1b8612..3716f62ccd 100644
--- a/libavfilter/vf_avgblur_vulkan.c
+++ b/libavfilter/vf_avgblur_vulkan.c
@@ -122,7 +122,7 @@ static int avgblur_vulkan_filter_frame(AVFilterLink *link, 
AVFrame *in)
 
     RET(ff_vk_filter_process_simple(&s->vkctx, &s->e, &s->shd,
                                     out, in, VK_NULL_HANDLE,
-                                    &s->opts, sizeof(s->opts)));
+                                    1, &s->opts, sizeof(s->opts)));
 
     err = av_frame_copy_props(out, in);
     if (err < 0)
diff --git a/libavfilter/vf_blend_vulkan.c b/libavfilter/vf_blend_vulkan.c
index 35b6dd2827..4f1d4644c3 100644
--- a/libavfilter/vf_blend_vulkan.c
+++ b/libavfilter/vf_blend_vulkan.c
@@ -265,7 +265,7 @@ static int blend_frame(FFFrameSync *fs)
 
     RET(ff_vk_filter_process_Nin(&s->vkctx, &s->e, &s->shd,
                                  out, (AVFrame *[]){ top, bottom }, 2,
-                                 VK_NULL_HANDLE, NULL, 0));
+                                 VK_NULL_HANDLE, 1, NULL, 0));
 
     return ff_filter_frame(outlink, out);
 
diff --git a/libavfilter/vf_bwdif_vulkan.c b/libavfilter/vf_bwdif_vulkan.c
index 5fefb3396d..ea4154daf5 100644
--- a/libavfilter/vf_bwdif_vulkan.c
+++ b/libavfilter/vf_bwdif_vulkan.c
@@ -115,7 +115,7 @@ static void bwdif_vulkan_filter_frame(AVFilterContext *ctx, 
AVFrame *dst,
 
     ff_vk_filter_process_Nin(&s->vkctx, &s->e, &s->shd, dst,
                              (AVFrame *[]){ y->prev, y->cur, y->next }, 3,
-                             VK_NULL_HANDLE, &params, sizeof(params));
+                             VK_NULL_HANDLE, 1, &params, sizeof(params));
 
     if (y->current_field == YADIF_FIELD_END)
         y->current_field = YADIF_FIELD_NORMAL;
diff --git a/libavfilter/vf_chromaber_vulkan.c 
b/libavfilter/vf_chromaber_vulkan.c
index 65b53afd64..6dd50c1bb4 100644
--- a/libavfilter/vf_chromaber_vulkan.c
+++ b/libavfilter/vf_chromaber_vulkan.c
@@ -188,7 +188,7 @@ static int chromaber_vulkan_filter_frame(AVFilterLink 
*link, AVFrame *in)
         RET(init_filter(ctx, in));
 
     RET(ff_vk_filter_process_simple(&s->vkctx, &s->e, &s->shd, out, in,
-                                    s->sampler, &s->opts, sizeof(s->opts)));
+                                    s->sampler, 1, &s->opts, sizeof(s->opts)));
 
     err = av_frame_copy_props(out, in);
     if (err < 0)
diff --git a/libavfilter/vf_flip_vulkan.c b/libavfilter/vf_flip_vulkan.c
index 3e2aed0fda..4f38a39950 100644
--- a/libavfilter/vf_flip_vulkan.c
+++ b/libavfilter/vf_flip_vulkan.c
@@ -174,7 +174,7 @@ static int filter_frame(AVFilterLink *link, AVFrame *in, 
enum FlipType type)
         RET(init_filter(ctx, in, type));
 
     RET(ff_vk_filter_process_simple(&s->vkctx, &s->e, &s->shd, out, in,
-                                    VK_NULL_HANDLE, NULL, 0));
+                                    VK_NULL_HANDLE, 1, NULL, 0));
 
     RET(av_frame_copy_props(out, in));
 
diff --git a/libavfilter/vf_gblur_vulkan.c b/libavfilter/vf_gblur_vulkan.c
index 1b447e2754..8ade1c955d 100644
--- a/libavfilter/vf_gblur_vulkan.c
+++ b/libavfilter/vf_gblur_vulkan.c
@@ -316,7 +316,7 @@ static int gblur_vulkan_filter_frame(AVFilterLink *link, 
AVFrame *in)
 
     RET(ff_vk_filter_process_2pass(&s->vkctx, &s->e,
                                    (FFVulkanShader *[2]){ &s->shd_hor, 
&s->shd_ver },
-                                   out, tmp, in, VK_NULL_HANDLE, NULL, 0));
+                                   out, tmp, in, VK_NULL_HANDLE, 1, NULL, 0));
 
     err = av_frame_copy_props(out, in);
     if (err < 0)
diff --git a/libavfilter/vf_interlace_vulkan.c 
b/libavfilter/vf_interlace_vulkan.c
index 7afb30c2d7..afa8a634f8 100644
--- a/libavfilter/vf_interlace_vulkan.c
+++ b/libavfilter/vf_interlace_vulkan.c
@@ -218,7 +218,7 @@ static int interlace_vulkan_filter_frame(AVFilterLink 
*link, AVFrame *in)
 
     RET(ff_vk_filter_process_Nin(&s->vkctx, &s->e, &s->shd,
                                  out, (AVFrame *[]){ input_top, input_bot }, 2,
-                                 s->sampler, NULL, 0));
+                                 s->sampler, 1, NULL, 0));
 
     err = av_frame_copy_props(out, s->cur);
     if (err < 0)
diff --git a/libavfilter/vf_overlay_vulkan.c b/libavfilter/vf_overlay_vulkan.c
index 1f9eed8e08..e1a07e4bfd 100644
--- a/libavfilter/vf_overlay_vulkan.c
+++ b/libavfilter/vf_overlay_vulkan.c
@@ -240,7 +240,7 @@ static int overlay_vulkan_blend(FFFrameSync *fs)
 
     RET(ff_vk_filter_process_Nin(&s->vkctx, &s->e, &s->shd,
                                  out, (AVFrame *[]){ input_main, input_overlay 
}, 2,
-                                 VK_NULL_HANDLE, &s->opts, sizeof(s->opts)));
+                                 VK_NULL_HANDLE, 1, &s->opts, 
sizeof(s->opts)));
 
     err = av_frame_copy_props(out, input_main);
     if (err < 0)
diff --git a/libavfilter/vf_scale_vulkan.c b/libavfilter/vf_scale_vulkan.c
index 1a78ad948d..ad9789ef27 100644
--- a/libavfilter/vf_scale_vulkan.c
+++ b/libavfilter/vf_scale_vulkan.c
@@ -389,7 +389,7 @@ static int scale_vulkan_filter_frame(AVFilterLink *link, 
AVFrame *in)
         }
 
         RET(ff_vk_filter_process_simple(&s->vkctx, &s->e, &s->shd, out, in,
-                                        s->sampler, &s->opts, 
sizeof(s->opts)));
+                                        s->sampler, 1, &s->opts, 
sizeof(s->opts)));
     } else {
         err = sws_scale_frame(s->sws, out, in);
         if (err < 0)
diff --git a/libavfilter/vf_transpose_vulkan.c 
b/libavfilter/vf_transpose_vulkan.c
index 3fe2d11cb2..be37c36e1d 100644
--- a/libavfilter/vf_transpose_vulkan.c
+++ b/libavfilter/vf_transpose_vulkan.c
@@ -156,7 +156,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in)
         RET(init_filter(ctx, in));
 
     RET(ff_vk_filter_process_simple(&s->vkctx, &s->e, &s->shd, out, in,
-                                    VK_NULL_HANDLE, NULL, 0));
+                                    VK_NULL_HANDLE, 1, NULL, 0));
 
     RET(av_frame_copy_props(out, in));
 
diff --git a/libavfilter/vf_v360_vulkan.c b/libavfilter/vf_v360_vulkan.c
index 8d308d452e..25b55276f4 100644
--- a/libavfilter/vf_v360_vulkan.c
+++ b/libavfilter/vf_v360_vulkan.c
@@ -283,7 +283,7 @@ static int v360_vulkan_filter_frame(AVFilterLink *link, 
AVFrame *in)
                               pd.rot_mat, s->rotation_order);
 
     RET(ff_vk_filter_process_simple(&s->vkctx, &s->e, &s->shd,
-                                    out, in, s->sampler,
+                                    out, in, s->sampler, 1,
                                     &pd, sizeof(pd)));
 
     err = av_frame_copy_props(out, in);
diff --git a/libavfilter/vf_xfade_vulkan.c b/libavfilter/vf_xfade_vulkan.c
index 58e8797733..3aa96d62b0 100644
--- a/libavfilter/vf_xfade_vulkan.c
+++ b/libavfilter/vf_xfade_vulkan.c
@@ -447,7 +447,7 @@ static int xfade_frame(AVFilterContext *avctx, AVFrame 
*frame_a, AVFrame *frame_
                         0.f, 1.f);
 
     RET(ff_vk_filter_process_Nin(&s->vkctx, &s->e, &s->shd, output,
-                                 (AVFrame *[]){ frame_a, frame_b }, 2, 
s->sampler,
+                                 (AVFrame *[]){ frame_a, frame_b }, 2, 
s->sampler, 1,
                                  &(XFadeParameters){ progress }, 
sizeof(XFadeParameters)));
 
     return ff_filter_frame(outlink, output);
diff --git a/libavfilter/vsrc_testsrc_vulkan.c 
b/libavfilter/vsrc_testsrc_vulkan.c
index ee0cfe254c..ae01af9791 100644
--- a/libavfilter/vsrc_testsrc_vulkan.c
+++ b/libavfilter/vsrc_testsrc_vulkan.c
@@ -236,7 +236,7 @@ static int testsrc_vulkan_activate(AVFilterContext *ctx)
                 return AVERROR(ENOMEM);
 
             err = ff_vk_filter_process_simple(&s->vkctx, &s->e, &s->shd, 
s->picref, NULL,
-                                              VK_NULL_HANDLE, &s->opts, 
sizeof(s->opts));
+                                              VK_NULL_HANDLE, 1, &s->opts, 
sizeof(s->opts));
             if (err < 0)
                 return err;
         }
@@ -255,7 +255,7 @@ static int testsrc_vulkan_activate(AVFilterContext *ctx)
     frame->sample_aspect_ratio = s->sar;
     if (!s->draw_once) {
         err = ff_vk_filter_process_simple(&s->vkctx, &s->e, &s->shd, frame, 
NULL,
-                                          VK_NULL_HANDLE, &s->opts, 
sizeof(s->opts));
+                                          VK_NULL_HANDLE, 1, &s->opts, 
sizeof(s->opts));
         if (err < 0) {
             av_frame_free(&frame);
             return err;
diff --git a/libavfilter/vulkan_filter.c b/libavfilter/vulkan_filter.c
index 44a4ce7242..2fc467c6d9 100644
--- a/libavfilter/vulkan_filter.c
+++ b/libavfilter/vulkan_filter.c
@@ -241,7 +241,8 @@ int ff_vk_filter_init(AVFilterContext *avctx)
 
 int ff_vk_filter_process_simple(FFVulkanContext *vkctx, FFVkExecPool *e,
                                 FFVulkanShader *shd, AVFrame *out_f, AVFrame 
*in_f,
-                                VkSampler sampler, void *push_src, size_t 
push_size)
+                                VkSampler sampler, uint32_t wgc_z,
+                                void *push_src, size_t push_size)
 {
     int err = 0;
     FFVulkanFunctions *vk = &vkctx->vkfn;
@@ -304,7 +305,7 @@ int ff_vk_filter_process_simple(FFVulkanContext *vkctx, 
FFVkExecPool *e,
     vk->CmdDispatch(exec->buf,
                     FFALIGN(vkctx->output_width,  
shd->lg_size[0])/shd->lg_size[0],
                     FFALIGN(vkctx->output_height, 
shd->lg_size[1])/shd->lg_size[1],
-                    1);
+                    wgc_z);
 
     return ff_vk_exec_submit(vkctx, exec);
 fail:
@@ -315,7 +316,8 @@ fail:
 int ff_vk_filter_process_2pass(FFVulkanContext *vkctx, FFVkExecPool *e,
                                FFVulkanShader *shd_list[2],
                                AVFrame *out, AVFrame *tmp, AVFrame *in,
-                               VkSampler sampler, void *push_src, size_t 
push_size)
+                               VkSampler sampler, uint32_t wgc_z,
+                               void *push_src, size_t push_size)
 {
     int err = 0;
     FFVulkanFunctions *vk = &vkctx->vkfn;
@@ -395,7 +397,7 @@ int ff_vk_filter_process_2pass(FFVulkanContext *vkctx, 
FFVkExecPool *e,
         vk->CmdDispatch(exec->buf,
                         FFALIGN(vkctx->output_width,  
shd->lg_size[0])/shd->lg_size[0],
                         FFALIGN(vkctx->output_height, 
shd->lg_size[1])/shd->lg_size[1],
-                        1);
+                        wgc_z);
     }
 
     return ff_vk_exec_submit(vkctx, exec);
@@ -407,7 +409,8 @@ fail:
 int ff_vk_filter_process_Nin(FFVulkanContext *vkctx, FFVkExecPool *e,
                              FFVulkanShader *shd,
                              AVFrame *out, AVFrame *in[], int nb_in,
-                             VkSampler sampler, void *push_src, size_t 
push_size)
+                             VkSampler sampler, uint32_t wgc_z,
+                             void *push_src, size_t push_size)
 {
     int err = 0;
     FFVulkanFunctions *vk = &vkctx->vkfn;
@@ -474,7 +477,7 @@ int ff_vk_filter_process_Nin(FFVulkanContext *vkctx, 
FFVkExecPool *e,
     vk->CmdDispatch(exec->buf,
                     FFALIGN(vkctx->output_width,  
shd->lg_size[0])/shd->lg_size[0],
                     FFALIGN(vkctx->output_height, 
shd->lg_size[1])/shd->lg_size[1],
-                    1);
+                    wgc_z);
 
     return ff_vk_exec_submit(vkctx, exec);
 fail:
diff --git a/libavfilter/vulkan_filter.h b/libavfilter/vulkan_filter.h
index 6ed9c4de39..c54c8c56c4 100644
--- a/libavfilter/vulkan_filter.h
+++ b/libavfilter/vulkan_filter.h
@@ -44,7 +44,8 @@ int ff_vk_filter_init_context(AVFilterContext *avctx, 
FFVulkanContext *s,
  */
 int ff_vk_filter_process_simple(FFVulkanContext *vkctx, FFVkExecPool *e,
                                 FFVulkanShader *shd, AVFrame *out_f, AVFrame 
*in_f,
-                                VkSampler sampler, void *push_src, size_t 
push_size);
+                                VkSampler sampler, uint32_t wgc_z,
+                                void *push_src, size_t push_size);
 
 /**
  * Submit a compute shader with a single in and single out with 2 stages.
@@ -52,7 +53,8 @@ int ff_vk_filter_process_simple(FFVulkanContext *vkctx, 
FFVkExecPool *e,
 int ff_vk_filter_process_2pass(FFVulkanContext *vkctx, FFVkExecPool *e,
                                FFVulkanShader *shd_list[2],
                                AVFrame *out, AVFrame *tmp, AVFrame *in,
-                               VkSampler sampler, void *push_src, size_t 
push_size);
+                               VkSampler sampler, uint32_t wgc_z,
+                               void *push_src, size_t push_size);
 
 /**
  * Up to 16 inputs, one output
@@ -60,6 +62,7 @@ int ff_vk_filter_process_2pass(FFVulkanContext *vkctx, 
FFVkExecPool *e,
 int ff_vk_filter_process_Nin(FFVulkanContext *vkctx, FFVkExecPool *e,
                              FFVulkanShader *shd,
                              AVFrame *out, AVFrame *in[], int nb_in,
-                             VkSampler sampler, void *push_src, size_t 
push_size);
+                             VkSampler sampler, uint32_t wgc_z,
+                             void *push_src, size_t push_size);
 
 #endif /* AVFILTER_VULKAN_FILTER_H */

_______________________________________________
ffmpeg-cvslog mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to