[FFmpeg-devel] [PATCH 4/4] lavc/vulkan: add SPIR-V compilation support
epirat07 at gmail.com
epirat07 at gmail.com
Fri Oct 4 13:01:37 EEST 2024
On 4 Oct 2024, at 11:31, Lynne via ffmpeg-devel wrote:
> This is the same as with libavfilter.
>
> We will need SPIR-V compilation for at least three different things,
> like the VC-2 encoder and decoder, AV1 film grain synthesis for
> hardware with no support for it, and possibly other codecs.
> ---
> libavcodec/Makefile | 4 ++++
> libavcodec/vulkan_glslang.c | 19 +++++++++++++++++++
> libavcodec/vulkan_shaderc.c | 19 +++++++++++++++++++
> 3 files changed, 42 insertions(+)
> create mode 100644 libavcodec/vulkan_glslang.c
> create mode 100644 libavcodec/vulkan_shaderc.c
>
> diff --git a/libavcodec/Makefile b/libavcodec/Makefile
> index a253a9b160..7147ed0360 100644
> --- a/libavcodec/Makefile
> +++ b/libavcodec/Makefile
> @@ -1257,6 +1257,10 @@ OBJS-$(HAVE_THREADS) += pthread.o pthread_slice.o pthread_fram
>
> OBJS-$(CONFIG_FRAME_THREAD_ENCODER) += frame_thread_encoder.o
>
> +# vulkan libs
> +OBJS-$(CONFIG_LIBGLSLANG) += vulkan_glslang.o
> +OBJS-$(CONFIG_LIBSHADERC) += vulkan_shaderc.o
> +
> # Windows resource file
> SHLIBOBJS-$(HAVE_GNU_WINDRES) += avcodecres.o
>
> diff --git a/libavcodec/vulkan_glslang.c b/libavcodec/vulkan_glslang.c
> new file mode 100644
> index 0000000000..9aa41567a3
> --- /dev/null
> +++ b/libavcodec/vulkan_glslang.c
> @@ -0,0 +1,19 @@
> +/*
> + * This file is part of FFmpeg.
> + *
> + * FFmpeg is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU Lesser General Public
> + * License as published by the Free Software Foundation; either
> + * version 2.1 of the License, or (at your option) any later version.
> + *
> + * FFmpeg is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> + * Lesser General Public License for more details.
> + *
> + * You should have received a copy of the GNU Lesser General Public
> + * License along with FFmpeg; if not, write to the Free Software
> + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
> + */
> +
> +#include "libavutil/vulkan_glslang.c"
> diff --git a/libavcodec/vulkan_shaderc.c b/libavcodec/vulkan_shaderc.c
> new file mode 100644
> index 0000000000..9f60bf4dfd
> --- /dev/null
> +++ b/libavcodec/vulkan_shaderc.c
> @@ -0,0 +1,19 @@
> +/*
> + * This file is part of FFmpeg.
> + *
> + * FFmpeg is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU Lesser General Public
> + * License as published by the Free Software Foundation; either
> + * version 2.1 of the License, or (at your option) any later version.
> + *
> + * FFmpeg is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> + * Lesser General Public License for more details.
> + *
> + * You should have received a copy of the GNU Lesser General Public
> + * License along with FFmpeg; if not, write to the Free Software
> + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
> + */
> +
> +#include "libavutil/vulkan_shaderc.c"
Wouldn’t this cause duplicate symbol issues with for example ff_vk_shaderc_init
being in both libavfilter and libavcodec?
> --
> 2.45.2.753.g447d99e1c3b
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
More information about the ffmpeg-devel
mailing list