summaryrefslogtreecommitdiff
path: root/libavutil/vulkan.c
Commit message (Collapse)AuthorAge
* lavu/vulkan: check for initialization when freeing buffersLynne2021-11-20
| | | | | | | | | What happens on startup is that ffmpeg.c initializes the filter, then frees it without feeding a single frame through. With no input frame, the filter lacks a hardware device. The rest of the uninit code checks if Vulkan objects exist, which they must if there's a hardware device, but vk->DeviceWaitIdle does not require an object. So, add a check for it.
* lavu/vulkan: add support for using libshaderc as a GLSL compilerLynne2021-11-19
| | | | | | | It's got a much better API that's actually maintained, it eliminates race conditions, it comes with a pkg-config file by default, and unfortunately isn't currently packaged by Debian or other large distributions.
* lavfi/vulkan: split off lavfi-specific code into vulkan_filter.cLynne2021-11-19
| | | | | | | | | | | | | | | | | The issue is that libavfilter depends on libavcodec, and when doing a static build, if libavcodec also includes "libavfilter/vulkan.c", then during link-time, compiling programs will fail as there would be multiple definitions of the same symbols in both libavfilter and libavcodec's object files. Linkers are, however, more permitting if both files that include a common file that's used as a template are one-to-one identical. Hence, to make both files the same in the future, export all avfilter specific functions to a separate file. There is some work in progress to make templated files like this be compiled only once, so this is not a long-term solution. This also removes a macro that could be used to toggle SPIRV compilation capability on #include-time, as this could cause the files to be different.
* lavu/vulkan: add option to switch between shader compilers and cleanup glslangLynne2021-11-19
|
* lavu/vulkan: move common Vulkan code from libavfilter to libavutilLynne2021-11-19