Matthew Waters
9f4b043161
vulkan/queue: be sure to take a lock around command submission
...
This ensures that only one thread is submitting commands at a time as
required by the Vulkan specification.
2019-11-14 07:10:16 +00:00
Matthew Waters
c89f21388d
vulkan/render: fix indent command comment typo
2019-11-14 07:10:16 +00:00
Matthew Waters
726261aa05
vulkan: NULL check destruction of vulkan resources
...
If the element fails to start up, any number of vulkan resources could
have not been created.
2019-11-13 22:27:59 +00:00
Matthew Waters
0c3eec57f2
vulkan: make new trash objects ref the fence
...
Avoids gst_vulkan_fence_ref at each call site of the trash object
creation
2019-11-13 22:27:59 +00:00
Matthew Waters
32b3387ae6
vulkan: implement proper descriptor set handling
...
The major functionality gain this provides is proper reference counting
for a descriptor set. Overall this allows us to create descriptor sets
when they are needed (or reused from a cache) without violating any of
vulkan's object synchronisation requirements.
As there are a fixed number of sets available in a pool, the number of
descriptors in elements is currently hardcoded to 32. This can be extended
in a future change to create pools on the fly if that limit is ever overrun.
2019-11-07 20:01:57 +00:00
Matthew Waters
1c89096b4f
vulkan/fence: add always-signalled fence type
...
Allows a cleaner control flow when there is no fence available for use
with the trash list. An always signalled fence type will always return
TRUE for gst_vulkan_fence_is_signalled.
2019-11-07 20:01:57 +00:00
Matthew Waters
7a1bb3001a
vulkan: use VK_NULL_HANDLE in more places
...
Fixes compiler warnings on 32-bit platforms assigning a void * to a
64-bit integer value.
2019-11-07 20:01:57 +00:00
Aaron Boxer
6d3429af34
documentation: fixed a heap o' typos
2019-11-05 09:11:25 -05:00
Matthew Waters
452bb72292
vkbuffer: remove buffer view from the memory
...
It's only really useful for texture buffers which we currently do not
use.
2019-09-25 11:11:02 +00:00
Matthew Waters
5f76c84feb
vulkan: split physical device from logical device
2019-09-17 13:02:44 +10:00
Matthew Waters
407dab607f
vulkan: only pass the device/instance/display in to *_handle_*() functions
...
We don't need to change the pointer value in these functions.
2019-09-17 13:02:43 +10:00
Matthew Waters
833c596bc5
vulkan/fullscreenrender: free the attachment descriptions
...
Fixes a memory leak of the attachment descriptions we receive from the
subclass.
2019-08-22 14:57:02 +10:00
Matthew Waters
b5256d94fc
vulkan: move trash list to library
2019-07-04 14:18:15 +10:00
Matthew Waters
d43fea06c5
vkcolorconvert: add support for RGB<->NV12
2019-06-20 01:41:56 +10:00
Matthew Waters
b93de8b0d8
vkfullscreenrender: create descriptor sets later
...
The desciptor sets may be dependant on the caps
2019-06-20 01:41:56 +10:00
Matthew Waters
dc0c9dea7f
vulkan/identity: Split out most rendering code to a base class
...
A simple base class that renders a 2d fullscreen quad parallel to the
screen surface inside the view frustum.
2019-06-20 01:41:56 +10:00