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
756d52ef15
vulkan/upload: allocate from the correct pool
...
Only relevant when upstream does not use our provided pool.
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
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
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
Yeongjin Jeong
8bc5144020
vulkan: Don't dereference null pointer when printing error
...
When printing error message because the function failed, the GError variable
may not be used and it can be NULL.
2019-08-29 11:19:37 +00:00
Matthew Waters
b5256d94fc
vulkan: move trash list to library
2019-07-04 14:18:15 +10:00
Matthew Waters
0cb416db11
vkbuffermemory: report requested size of the memory
...
Rather than using Vulkan's much larger aligned sizes. Fixes multi-planer
video with the GstVideoFrame API.
2019-06-20 01:41:56 +10:00
Matthew Waters
31728880fe
vkupload: Also implement copying non vulkan memory into vulkan buffers
...
The only way we can upload things is through our memory so any
non-vulkan memory that appears must be copied into our memory.
2019-06-20 01:41:56 +10:00
Matthew Waters
773e914f48
vkupload: fix a structure sType
2019-06-20 01:41:56 +10:00
Matthew Waters
f33310df56
vkupload: remove debugging error log
2019-06-04 09:03:44 +00:00
Matthew Waters
ac09f88eb9
vulkan: implement the correct memory barriers necessary
...
Vulkan validation layers are finally silent!
2019-06-04 09:03:44 +00:00
Matthew Waters
1230a6c723
vulkan: remove uneeded buffer inheritence information
...
buffer inheritence informationi is only required for secondary command
buffers which we are not creating
2019-06-04 09:03:44 +00:00
Matthew Waters
80cbbb319d
vkupload: add raw->vulkanimage uploader
2019-06-04 09:03:44 +00:00
Matthew Waters
d61e771c37
vulkan: use c99 designated initializers where possible
...
Makes the code much easier to read and allows removing our terrible
macros for structure initialization.
2019-06-04 09:03:44 +00:00
Matthew Waters
b02493091b
vkswapper: support displaying memory:VulkanImage
2019-06-04 09:03:44 +00:00
Matthew Waters
673d775df0
vkupload: implement buffer to image uploader
2019-06-04 09:03:44 +00:00
Matthew Waters
7ee28e2e4b
vulkan: don't require every element to have a display
...
Only sink elements really care about a valid display
2019-06-04 09:03:44 +00:00
Tim-Philipp Müller
ecb7049d7e
vulkan: fix some leaks
...
Fix vk_instance leak when state change fails like in
generic/states unit test.
2019-03-08 01:18:39 +00:00
Matthew Waters
e5c4135e81
vulkanupload: actually loop over possible uploaders
...
Fix some funky control that wasn't working
CID #1417219
2018-02-08 16:55:43 +11:00
Edward Hervey
87dbd558cc
vulkan: Fix out-of-bound read
...
G_N_ELEMENTS is the *number* of entries, not the maximum entry number
CID #1417215
2017-11-21 16:39:14 +01:00
Nicolas Dufresne
9b2e28d91d
Request minimum buffer even if need_pool is FALSE
...
When tee is used, it will not request a pool, but still it wants to
know how many buffers are required.
https://bugzilla.gnome.org/show_bug.cgi?id=730758
2017-09-06 14:19:37 -04:00
Thibault Saunier
78022a6e0c
docs: Port all docstring to gtk-doc markdown
2017-04-12 12:57:57 -03:00
Matthew Waters
7b566b2964
vkupload: add video/x-raw to the VulkanBuffer uploader
...
Allows upstream elements that use our memory to passthrough without copying.
2016-09-08 16:14:41 +10:00
Matthew Waters
b76fcfd3f7
vkupload: copy necessary buffer metadata
...
timestamps, flags, etc
2016-04-11 14:18:47 +10:00
Matthew Waters
5617b0904b
vkutils: move object-specific context queries to their respective files
...
vkutils now just contains some utility functions to further simplify retrieving
multiple objects.
2016-02-17 01:13:43 +11:00
Matthew Waters
53f99ac804
vkupload: implement an uploader abstraction
2016-02-17 01:13:43 +11:00
Matthew Waters
0dd1154b73
vulkan: add a vulkanbuffer bufferpool
2016-02-17 01:13:43 +11:00
Matthew Waters
86e18d6b8f
vulkan: add upload element
2016-02-17 01:13:43 +11:00