| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
| |
This function dates back a long time ago, before vkfmt_from_pixfmt2.
When it was converted over, the thought was that this was far too
restrictive to demand storage images for each format.
With the new clever function, it makes sure to check that the compatible
subformats a format can be used as support storage capabilities.
This gets rid of fake support for RGB48/RGB96 which some implementations
offer but don't support using as storage images.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
We do uploads asynchronously, and we map the software frames in
order to avoid 2-stage copying. However, whilst we added a dependency
upon the mapped buffers, we did not add the original frame backing
those buffers as a dependency.
This caused issues on RADV, particularly with RGB images.
|
| |
|
|
|
|
| |
They were non-working for quite a while.
|
|
|
|
| |
Signed-off-by: James Almer <jamrial@gmail.com>
|
|
|
|
| |
Signed-off-by: James Almer <jamrial@gmail.com>
|
|
|
|
|
| |
We need it even for something as simple as bitexact opening
of images.
|
| |
|
| |
|
|
|
|
| |
Signed-off-by: James Almer <jamrial@gmail.com>
|
| |
|
| |
|
| |
|
|
|
|
| |
This was forgotten during the recent device feature refactor.
|
|
|
|
| |
Its set just a few lines earlier.
|
|
|
|
| |
This fixes compilation with less recent Vulkan headers.
|
|
|
|
|
| |
This simply keeps all shader optimizations, but allows debug
data to be generated.
|
|
|
|
| |
Required to let users know whether debugging is active.
|
| |
|
| |
|
|
|
|
|
|
| |
This makes std430 (which we use everywhere already) fully match C
layout.
Extension was made mandatory in 1.2.
|
|
|
|
|
| |
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.
|
|
|
|
| |
This allows disabling of certain extensions when debug mode is turned on.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
VUID-VkPhysicalDeviceImageFormatInfo2-usage-requiredbitmask
fmt_props.usage was initialized to 0 as create_info.usage was set later.
|
| |
|
|
|
|
|
| |
The array was tied to our old queue API, which meant that if users
set it, it was never set.
|
|
|
|
|
|
| |
images
This allows mapping of 10-bit DRM images.
|
|
|
|
|
|
|
| |
Both of these are fundamentally incompatible with video decoding.
The third one can be tracked in the following validation layer issue:
https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/6627
|
|
|
|
|
|
|
| |
The issue is that we ask for storage images by default if
available, but because that is gated by the format supporting
storage images, and the check for the format supporting storage
images is gated by the usage, this resulted in a catch-22.
|
|
|
|
| |
Vulkan filters don't need images which can be transferred into.
|
|
|
|
| |
This was left out of the recent rewrite of the system.
|
|
|
|
|
|
|
|
|
|
| |
Vulkan encoding was designed in a very... consolidated way.
You had to know the exact codec and profile that the image was going to
eventually be encoded as at... image creation time. Unfortunately, as good
as our code is, glimpsing into the exact future isn't what its capable of.
video_maintenance1 removed that requirement, which only then made encoding
images practically possible.
|
|
|
|
| |
We require it for encoding.
|
|
|
|
|
|
| |
The issue is that enabling features requires that the device
extension is supported. The extensions bitfield was set later,
so it was always 0, leading to no features being added.
|
|
|
|
|
|
|
| |
extension
It was added to Vulkan 1.1 a long time ago.
Validation layer will warn if this is enabled.
|
|
|
|
|
|
|
|
|
| |
The validation layer option only supported GPU-assisted validation.
This is mutually exclusive with shader debug printfs, so we need to
differentiate between the two.
This also fixes issues with user-given layers, and leaks in case of
errors.
|
|
|
|
|
| |
Issue ref:
https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/6627
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
vkCreateDevice
Fixes:
vkCreateDevice(): pCreateInfo->pNext<VkPhysicalDeviceOpticalFlowFeaturesNV> includes a
pointer to a VkPhysicalDeviceOpticalFlowFeaturesNV, but when creating VkDevice, the
parent extension (VK_NV_optical_flow) was not included in ppEnabledExtensionNames.
The Vulkan spec states: Each pNext member of any structure (including this one) in
the pNext chain must be either NULL or a pointer to a valid struct for extending
VkDeviceCreateInfo.
|
| |
|
| |
|
|
|
|
|
| |
We'd like to use it eventually, and its already covered by
the minimum version of the headers we require.
|
| |
|
|
|
|
|
| |
The struct data seem to get corrupted otherwise.
Possibly a validation layer or libvulkan issue.
|