On 17/02/2025 19:31, Lynne wrote: > --- > libavfilter/vf_gblur_vulkan.c | 21 ++++++++++----------- > 1 file changed, 10 insertions(+), 11 deletions(-) > > diff --git a/libavfilter/vf_gblur_vulkan.c b/libavfilter/vf_gblur_vulkan.c > index 101c8ffd8c..bc4c2217b5 100644 > --- a/libavfilter/vf_gblur_vulkan.c > +++ b/libavfilter/vf_gblur_vulkan.c > @@ -51,17 +51,17 @@ typedef struct GBlurVulkanContext { > } GBlurVulkanContext; > > static const char gblur_func[] = { > - C(0, void gblur(const ivec2 pos, const int index) ) > - C(0, { ) > + C(0, void gblur(const ivec2 pos, const int index) ) > + C(0, { ) > C(1, vec4 sum = imageLoad(input_images[index], pos) * kernel[0]; ) > - C(0, ) > - C(1, for(int i = 1; i < kernel.length(); i++) { ) > + C(0, ) > + C(1, for(int i = 1; i < kernel.length(); i++) { ) > C(2, sum += imageLoad(input_images[index], pos + OFFSET) * kernel[i]; ) > C(2, sum += imageLoad(input_images[index], pos - OFFSET) * kernel[i]; ) > - C(1, } ) > - C(0, ) > - C(1, imageStore(output_images[index], pos, sum); ) > - C(0, } ) > + C(1, } ) > + C(0, ) > + C(1, imageStore(output_images[index], pos, sum); ) > + C(0, } ) > }; > > static inline float gaussian(float sigma, float x) > @@ -254,7 +254,7 @@ static av_cold int init_filter(AVFilterContext *ctx, AVFrame *in) > > RET(ff_vk_shader_add_descriptor_set(vkctx, shd, desc, 2, 0, 0)); > > - GLSLC(0, #define OFFSET (vec2(i, 0.0))); > + GLSLC(0, #define OFFSET (ivec2(i, 0.0))); > RET(init_gblur_pipeline(s, shd, &s->params_hor, s->size, s->sigma, spv)); > } > > @@ -268,7 +268,7 @@ static av_cold int init_filter(AVFilterContext *ctx, AVFrame *in) > > RET(ff_vk_shader_add_descriptor_set(vkctx, shd, desc, 2, 0, 0)); > > - GLSLC(0, #define OFFSET (vec2(0.0, i))); > + GLSLC(0, #define OFFSET (ivec2(0.0, i))); > RET(init_gblur_pipeline(s, shd, &s->params_ver, s->sizeV, s->sigmaV, spv)); > } > > @@ -285,7 +285,6 @@ static av_cold void gblur_vulkan_uninit(AVFilterContext *avctx) > { > GBlurVulkanContext *s = avctx->priv; > FFVulkanContext *vkctx = &s->vkctx; > - FFVulkanFunctions *vk = &vkctx->vkfn; > > ff_vk_exec_pool_free(vkctx, &s->e); > ff_vk_shader_free(vkctx, &s->shd_hor); Note, this patch was a fix for the previous patch, merged both together.