aboutsummaryrefslogtreecommitdiffstats
path: root/libavutil/vulkan_functions.h
Commit message (Collapse)AuthorAgeFilesLines
* hwcontext_vulkan: move device feature struct setup to a new functionLynne2024-10-041-0/+1
|
* hwcontext_vulkan: enable VK_KHR_shader_relaxed_extended_instructionLynne2024-10-041-0/+1
|
* vulkan_functions: change extension type to a typedef uint64_tLynne2024-10-041-27/+32
| | | | | We were getting a bit too close for comfort to the 32-bit limit on enums.
* vulkan: check if current buffer has finished execution before picking anotherLynne2024-10-041-0/+1
| | | | | This saves resources, as dependencies are freed/reclaimed with a lower latency, and provies a speedup.
* vulkan: use push descriptors where possibleLynne2024-09-231-0/+2
| | | | | | | | Push descriptors are in theory slightly faster, but come with limitations for which we have to check. Either way, they're not difficult to implement, so even though no one should be using peasant-tier descriptors, do it anyway.
* vulkan: add support for regular descriptor poolsLynne2024-09-231-0/+3
| | | | | | | | | | | | | This permits: - The use of Vulkan filtering on many more devices - Better debugging due to lack of descriptor buffer support in layers Much of the changes here are due to a requirement that updates to descriptors must happen between the command buffer being waited on, and the pipeline not being bound. We routinely did it the other way around, by updating only after we bind the pipeline.
* hwcontext_vulkan: add support for implicit DRM synchronizationLynne2024-09-221-0/+1
| | | | | | | | | | | | | | | | | | | More recent kernel versions allow for users to extract a sync_file handle from a DMA-BUF, which can then be imported into Vulkan as a binary semaphore. This finally allows for synchronization between Vulkan and DMA-BUF images, such as those from screen capture software, or VAAPI, avoiding any corruption artifacts. This is done fully asynchronously, where we use the kernel's given binary semaphores as a dependency to increment the image's usual VkSemaphores we allocate. The old imported binary semaphores are cleaned up after execution as usual. In the future, hwcontext_drm should receive support for explicitly synchronized images as well, which would make the synchronization more robust and portable.
* hwcontext_vulkan: enable VK_KHR_video_maintenance1Lynne2024-08-161-0/+1
| | | | We require it for encoding.
* hwcontext_vulkan: add support for Vulkan encodingLynne2024-08-111-0/+9
|
* hwcontext_vulkan: add support for VK_EXT_shader_objectLynne2024-08-111-1/+6
| | | | | We'd like to use it eventually, and its already covered by the minimum version of the headers we require.
* hwcontext_vulkan: initialize optical flow queues if availableLynne2024-08-111-0/+8
| | | | Lets us implement FPS conversion.
* vulkan_av1: port to the new stable APILynne2024-03-251-1/+1
| | | | Co-Authored-by: Dave Airlie <airlied@redhat.com>
* vulkan: enable VK_KHR_cooperative_matrixLynne2023-08-261-0/+2
| | | | | It's of interest to API users, and of interest to us, as a DCT/DST can be implemented via matrix multiplies.
* lavfi: add nlmeans_vulkan filterLynne2023-05-291-0/+1
|
* vulkan: add support for the atomic float ops extensionLynne2023-05-291-0/+1
|
* av1dec: add Vulkan hwaccelLynne2023-05-291-0/+1
|
* vulkan: rewrite to support all necessary featuresLynne2023-05-291-0/+1
| | | | | | | | | | | | | | | This commit rewrites the majority of vulkan.c to enable its use as a general-purpose high-level utility code, usable for decoding, encoding, and filtering of video frames. The dependency system was rewritten to simplify management of execution. The image handling system was rewritten to accomodate multiplane images. Due to how related all the new features were, this is a single commit.
* vulkan: add support for retrieving queue, query and video propertiesLynne2023-05-291-0/+1
|
* hwcontext_vulkan: load query-related functionsLynne2023-05-291-0/+9
| | | | Needed for both encoding and decoding.
* hwcontext_vulkan: add functions for video decodingLynne2023-05-291-0/+20
|
* hwcontext_vulkan: use VK_EXT_physical_device_drm to derive DRM to VulkanLynne2023-05-291-0/+1
| | | | Finally, a way to directly identify a Vulkan device from a DRM device!
* hwcontext_vulkan: add support for descriptor buffersLynne2023-05-291-0/+9
|
* hwcontext_vulkan: enable VK_KHR_synchronization2 if supportedLynne2023-05-291-1/+4
|
* hwcontext_vulkan: enable support for YCbCr samplersLynne2023-05-291-0/+2
|
* hwcontext_vulkan: avoid using 64-bit enumsLynne2022-01-271-1/+1
| | | | MSVC (2016, but possibly more) still force enums to be basic ints.
* avutil/hwcontext_vulkan: fully support customizable validation layersWu Jianhua2021-11-261-0/+1
| | | | | | | | | | Validation layer is an indispensable part of developing on Vulkan. The following commands is on how to enable validation layers: ffmpeg -init_hw_device vulkan=0,debug=1,validation_layers=VK_LAYER_LUNARG_monitor+VK_LAYER_LUNARG_api_dump Signed-off-by: Wu Jianhua <jianhua.wu@intel.com>
* vulkan: fix checkheadersLynne2021-11-191-0/+6
|
* avutil/vulkan: load win32 external memory functionsTimo Rothenpieler2021-11-141-0/+12
|
* hwcontext_vulkan: use vkDeviceWaitIdle instead of vkWaitSemaphores on uninitLynne2021-11-121-0/+1
| | | | | To silence a possible validation layer bug, switch the function. It only gets triggered by vf_libplacebo, which is odd.
* lavu: move hwcontext_vulkan's function loader into separate filesLynne2021-11-121-0/+162
This allows for the loader to be shared with libavcodec and libavfilter.