gblur_vulkan: simplify buffer content writing

Before .buf_elems, users had to manually print to a string if they
wanted a non-fixed number of elements in an array.

Since we're printing everything to the shaders manually anyway, use
the new mechanism.
master
Lynne 6 days ago
parent f774a9376a
commit 2066c5526d
No known key found for this signature in database
GPG Key ID: A2FEA5F03F034464
  1. 10
      libavfilter/vf_gblur_vulkan.c

@ -139,15 +139,10 @@ static int init_gblur_pipeline(GBlurVulkanContext *s,
.mem_quali = "readonly", .mem_quali = "readonly",
.mem_layout = "std430", .mem_layout = "std430",
.stages = VK_SHADER_STAGE_COMPUTE_BIT, .stages = VK_SHADER_STAGE_COMPUTE_BIT,
.buf_content = NULL, .buf_content = "float kernel",
.buf_elems = ksize,
}; };
char *kernel_def = av_asprintf("float kernel[%i];", ksize);
if (!kernel_def)
return AVERROR(ENOMEM);
buf_desc.buf_content = kernel_def;
RET(ff_vk_shader_add_descriptor_set(&s->vkctx, shd, &buf_desc, 1, 1, 0)); RET(ff_vk_shader_add_descriptor_set(&s->vkctx, shd, &buf_desc, 1, 1, 0));
GLSLD( gblur_func ); GLSLD( gblur_func );
@ -189,7 +184,6 @@ static int init_gblur_pipeline(GBlurVulkanContext *s,
VK_FORMAT_UNDEFINED)); VK_FORMAT_UNDEFINED));
fail: fail:
av_free(kernel_def);
if (spv_opaque) if (spv_opaque)
spv->free_shader(spv, &spv_opaque); spv->free_shader(spv, &spv_opaque);
return err; return err;

Loading…
Cancel
Save