[FFmpeg-devel] [PATCH 08/11] gblur_vulkan: port to imageLoad()

Lynne dev at lynne.ee
Mon Feb 17 21:49:15 EET 2025


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.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_0xA2FEA5F03F034464.asc
Type: application/pgp-keys
Size: 624 bytes
Desc: OpenPGP public key
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20250217/88d0ead7/attachment.key>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature.asc
Type: application/pgp-signature
Size: 236 bytes
Desc: OpenPGP digital signature
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20250217/88d0ead7/attachment.sig>


More information about the ffmpeg-devel mailing list