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

Lynne dev at lynne.ee
Mon Feb 17 20:31:18 EET 2025


---
 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);
-- 
2.47.2


More information about the ffmpeg-devel mailing list