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
be9c9e44f1
vulkan/error: add the error value in hex and decimal
...
Provides more information for what may be an 'Unknown' error.
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
b43651cf99
vulkandisplay: Also free the GSource
...
NULL checking the main_context does not help as we've just destroyed the
GMainContext and set that field to NULL, not to mention it's unnecessary.
Fixes a leak of display's GSource.
2019-08-22 17:28:19 +10:00
Matthew Waters
1b7e83c584
vulkandisplay: free the list of windows on destruction
...
They may not have had an explicit removal from the subclass.
2019-08-22 17:02:07 +10:00
Matthew Waters
fc9f047885
vulkandisplay: fix use-after-free with removal of window
...
g_list_delete_link() free()'s the list node so any access after that is
a use-after-free.
2019-08-22 14:55:40 +10:00
Matthew Waters
e83df1759d
vulkan/xcb: display->windows is a list of allocated GWeakRef
...
Don't access them as plain GstVulkanWindow objects.
2019-08-22 14:54:30 +10:00
Matthew Waters
db157428ee
vulkan/ios: keep track of surface changes
2019-08-14 13:45:31 +10:00
Matthew Waters
c8614bf4da
vulkan/ios: initialize the frame to the parent's
2019-08-14 13:45:31 +10:00
Yeongjin Jeong
68057cee98
vulkan: Fix GstMemory leaks
...
Allocated GstMemory should be freed with g_free()
2019-08-06 07:44:05 +00:00
Matthew Waters
d916cad886
vulkan: add a couple of headers to the install list
2019-08-05 11:32:59 +10:00
Matthew Waters
58f203844d
vulkan/window: add property for the parent display
2019-07-05 16:20:05 +10:00
Matthew Waters
fda9b57dbe
vulkan/device: add property for the parent instance
2019-07-05 16:13:13 +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
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
bbdb2f3f17
vulkan: add some information on vulkan formats
2019-06-20 01:41:56 +10:00
Matthew Waters
2dcdaaf7cb
vulkan: ensure initialization of a couple of debug categories
...
Needed when some of the context querying functions can be called before
an instance has been created.
2019-06-20 01:41:56 +10:00
Seungha Yang
7b1b3327a0
vulkan: Add support WIN32 for Windows
...
It's almost a fork of glwindow_win32 implementation.
To build on Windows, Vulkan SDK (at https://vulkan.lunarg.com/sdk/home )
and VK_SDK_PATH environment are required. Note that VK_SDK_PATH environment
setting is a part of the SDK installation.
2019-06-13 04:55:15 +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
ae13e66639
vkmemory: fix allocation of sizes less than the alignment
...
Avoids allocating a 0-sized device memory which is invalid vulkan usage
2019-06-04 09:03:44 +00:00
Matthew Waters
0efd559950
vk*pool: expand usage hints to cover use in a renderpass
2019-06-04 09:03:44 +00:00
Matthew Waters
25a970f9d5
vkformat: fix format conversion for matching vulkan formats
...
Other formats still need a swizzle or conversion.
2019-06-04 09:03:44 +00:00
Matthew Waters
5478d39900
vkbuffermemory: bufferview's are only for texture-like memory
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
673d775df0
vkupload: implement buffer to image uploader
2019-06-04 09:03:44 +00:00
Matthew Waters
c568d1a673
vkqueue: unly unref the context query if it succeeds
2019-06-04 09:03:44 +00:00
Matthew Waters
70fda3ff78
vulkan: large docs update
2019-06-04 09:03:44 +00:00
Matthew Waters
32d217a9df
vulkan: add a command pool object for tracking
2019-06-04 09:03:44 +00:00
Matthew Waters
25dd3b32e5
vulkan: make a gstvulkan library out of the existing API
2019-06-04 09:03:44 +00:00