| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the image data is not at the start of the buffer allocation, such as
when the buffer has padding before the image data, this function maps too
much memory, since src_data + src_buf->size exceeds the buffer size.
Fix this by subtracting the difference between the buffer start and the
provided image data pointer from the size of the memory range to map.
An easy way to reproduce this issue is using the vf_pad filter, which
allocates image data buffers with a nonzero offset whenever padding is
requested before the start of the image data.
|
|
|
|
| |
Previous patch to fix these issues was incomplete.
|
| |
|
|
|
|
|
| |
The patch was applied by mistake in an unfinished form.
This fixes the build and lets the code run.
|
| |
|
| |
|
|
|
|
|
| |
We require this internally when using descriptor buffers, so it makes sense
to enable it internally, also.
|
|
|
|
|
| |
Signed-off-by: Niklas Haas <git@haasn.dev>
Sponsored-by: nxtedition
|
|
|
|
|
| |
Support was partially added previously in vulkan.c, but now it's fully
supported.
|
| |
|
|
|
|
|
|
| |
This allows for it to be shared.
Technically, implementations should not give drivers structs
that the drivers are not familiar with.
|
|
|
|
|
|
| |
Just correctness. We don't exceed this on any known hardware, but
its better to check.
If we do, we simply fall back to regular descriptors.
|
|
|
|
|
| |
Allows for it to be reused. In particular, for a future patch to make
vulkan hwaccels output DMABUF-backed VkImages.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Vulkan's main issue around using BGR is simple.
The letters in the shader don't match up (rgba in shader, bgra in format).
So of course, rather than allowing "bgra" or other permutations of
formats in the shader, they went the nuclear option and spent months writing
an extension to get rid of the need to have a format in the shader to begin
with.
All this to solve a problem that should never have existed to begin with.
This fixes BGRA images since enabling WithoutFormat, as the GPU now remaps
without your involvement.
|
|
|
|
|
|
|
|
|
|
|
|
| |
This implements support for reading and writing storage images with
no format.
The issue is that we define our images as arrays, and arrays can
only have a single type, which means that f.ex. NV12 needs two
different images, R8 and RG8.
The only driver known not to advertise support for the extension
as a whole is Intel, because they have parial support for odd formats
we never use. Therefore, just always enable it by default.
|
|
|
|
|
|
|
|
|
|
| |
We violated the spec, which, despite the actual command buffer pool
*not* being involved in any functions which require external synchronization
of the pool, *require* external synchronization even if only the
command buffers are used.
This also has the effect of *significantly* speeding up execution
in case command buffers are contended.
|
|
|
|
|
|
| |
This commit adds support for compiler hints.
While on AMD these are not used/needed, Nvidia benefits from them, and gives
a sizeable 10% speedup on 4k.
|
| |
|
|
|
|
| |
Allows for cleaner code.
|
| |
|
|
|
|
|
| |
This adds a function which adds a regular timeline semaphore
as a wait-only dependency.
|
| |
|
| |
|
|
|
|
| |
This is useful elsewhere.
|
| |
|
| |
|
|
|
|
|
|
|
| |
Unused since aea4d4b423c62aecf326ef3ae1578710faa3eca6.
Reviewed-by: Lynne <dev@lynne.ee>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
|
|
|
|
|
|
|
|
|
|
|
| |
This simplifies the code, reduces allocations, and critically, does
not store references of frames, along with references to hw_frames_ctx.
The issue was that storing refs to frames while transferring stored
refs to hw_frames_ctx of frames, and so created a circular dependency,
which caused the Vulkan device to never be terminated.
This only stores what it strictly needs as a dependency, and enables
the frames context to be freed, even while doing asynchronous transfers.
|
| |
|
|
|
|
| |
Useful when creating a descriptor array of separate images
|
|
|
|
|
|
|
|
|
|
| |
This enables users to specify a number that would be appended to
the buf_content string.
Saves users from needing to manually print to a string.
An earlier commit tried doing this via .elems, but it was
faulty, as this also incremented the total number of descriptors
in the descriptor set.
|
|
|
|
| |
Fixes validation errors.
|
|
|
|
|
| |
The issue is if a shader fails to compile, shd->desc_layout would
not exist, but nb_descriptor_sets would.
|
|
|
|
|
| |
This avoids needing to snprintf when the buffer only contains an array of a struct,
while letting the validation layers detect errors more reliably.
|
|
|
|
|
|
|
|
|
|
| |
We recently introduced a public field which was a superset
of the queue context we used to have.
Switch to using it entirely.
This also allows us to get rid of the NIH function which was
valid only for video queues.
|
|
|
|
|
|
|
|
|
| |
This code was simply incorrect through and through. It did not
protect what actually has to be protected in a multi-threaded setup.
Perhaps it was used to silence threading errors?
Either way, remove it, and document the correct way to use execution
pools in a threaded environment.
|
|
|
|
|
|
|
|
|
| |
The code used to use atomic, but over time, this got broken.
This commit also remmoves the is-the-last-submission-ready
shortcut, which rarely did anything.
There's also value in relying on the fact that contexts
always carry their frames in a strictly incremental order
with no gaps.
|
|
|
|
| |
This fixes a potential deadlock on exit.
|
|
|
|
|
| |
This resulted in uninit errors and was never caught as
we generally did not use massive allocations before.
|
|
|
|
| |
submission
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
The code used as a basis was the buffer dependency code, where the
counter was incremented after each buffer, but for the sw_frame dep
API, we only support adding individual frames at a time.
|
|
|
|
|
| |
Some software frames may be mapped, and we'd like to have
them as proper dependencies.
|
|
|
|
| |
Required to know the subgroup size.
|
| |
|
| |
|
|
|
|
| |
They were non-working for quite a while.
|