[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