| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
| |
We were getting a bit too close for comfort to the 32-bit limit
on enums.
|
|
|
|
|
| |
This saves resources, as dependencies are freed/reclaimed with a lower latency,
and provies a speedup.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
We require it for encoding.
|
| |
|
|
|
|
|
| |
We'd like to use it eventually, and its already covered by
the minimum version of the headers we require.
|
|
|
|
| |
Lets us implement FPS conversion.
|
|
|
|
| |
Co-Authored-by: Dave Airlie <airlied@redhat.com>
|
|
|
|
|
| |
It's of interest to API users, and of interest to us,
as a DCT/DST can be implemented via matrix multiplies.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
Needed for both encoding and decoding.
|
| |
|
|
|
|
| |
Finally, a way to directly identify a Vulkan device from a DRM device!
|
| |
|
| |
|
| |
|
|
|
|
| |
MSVC (2016, but possibly more) still force enums to be basic ints.
|
|
|
|
|
|
|
|
|
|
| |
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>
|
| |
|
| |
|
|
|
|
|
| |
To silence a possible validation layer bug, switch the function. It only gets
triggered by vf_libplacebo, which is odd.
|
|
This allows for the loader to be shared with libavcodec and libavfilter.
|