Matthew Waters
24d096597b
vulkan: implement caching and reuse of a couple of vulkan resources
...
Includes a new GstVulkanHandlePool base class for pooling different
resources togther. The descriptor cache object is ported to
GstVulkanHandlePool with the exact same functionality.
A new GstVulkanFenceCache is also implemented for caching fences
which is used internally by GstVulkanDevice for creating or reusing
fences.
The existing GstVulkanTrashFenceList object now caches trash objects.
2019-11-28 23:27:21 +00:00
Matthew Waters
4f3051fd2d
vulkan: add a couple of missing fence unrefs
2019-11-28 23:27:21 +00:00
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
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
0d57c1817b
vkhandle: expose a printf format specifier for a vulkan handle
2019-11-11 11:04:59 +11:00
Matthew Waters
982e06ef87
vkswapper: add inherit support
...
Used on android
2019-11-11 11:04:59 +11:00
Matthew Waters
332f1742d2
vkswapper: output specific values when swapchain flags fail
2019-11-11 11:04:59 +11:00
Matthew Waters
670d0a8e88
vulkan: remove the private struct from the public struct
...
Remove any references to CamelTypePrivate from the public CamelType
struct. They can be accessed as needed using
camel_type_get_instance_private().
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
Matthew Waters
a2aa17278a
vulkan: dump surface information
2019-11-07 20:01:57 +00:00
Matthew Waters
475a2b0acd
vulkan/image: use the full video info for returning vulkan formats
...
We may need some colorspace information for returning sRGB vs no sRGB.
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
82e86573b8
vulkan: implement command buffer reuse
...
Using a similar design for reference counting as
GstBuffer/GstBufferPool.
2019-09-19 02:01:35 +00:00
Matthew Waters
5f76c84feb
vulkan: split physical device from logical device
2019-09-17 13:02:44 +10:00
Matthew Waters
87311d404e
vulkan/swapper: add a couple of missing g_clear_error()'s
2019-08-28 10:34:39 +00:00
Matthew Waters
09883b6a6b
vulkan/swapper: check queue present return later
...
During resizes, the VkQueuePresent can return OUT_OF_DATE and if a buffer
is displayed returning OUT_OF_DATE it would error out and stop the pipeline.
We already have a explicit check for OUT_OF_DATE and the same general
error check in the statements following so just use that code.
2019-08-28 10:34:39 +00:00
Matthew Waters
d1f8f7436d
vulkan/swapper: destroy the surface in finalize
...
Fixes a leak of the VkSurface object.
2019-08-28 10:34:39 +00:00
Matthew Waters
cac1487479
vulkan/swapper: set some values to NULL in error conditions
...
So that they are not double free()-ed.
2019-08-28 10:34:39 +00:00
Matthew Waters
5ab92e05d8
vulkanswapper: disconnect window signals before any internal resources
...
Otherwise, it's racy whether the necessary resources are available in
the signal callbacks on destruction.
2019-08-28 10:34:39 +00:00
Matthew Waters
db157428ee
vulkan/ios: keep track of surface changes
2019-08-14 13:45:31 +10:00
Matthew Waters
69af8a9360
vulkan: move swapper object to the gstvulkan library
...
Allows other sinks and/or user code to display to a VkSurface
2019-07-04 14:18:15 +10:00