Commit graph

15 commits

Author SHA1 Message Date
Matthew Waters
0e72318515 vulkan/instance: expose extension/layer choices
Extensions and layers can be enabled before calling
gst_vulkan_instance_open() but after calling
gst_vulkan_instance_fill_info().

Use the list of available extensions to better choose a default display
implementation to use based on the available Vulkan extensions for surface
output.

Defaults are still the same.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1341>
2020-06-21 09:30:29 +00:00
Matthew Waters
af19fa94f4 vulkan/display: implement thread-safe find_window() 2020-03-03 05:00:50 +00:00
Matthew Waters
08928541c6 vulkan: add android WSI integration 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
Seungha Yang
1e38255c97 vulkan: Fix build on Windows
* Fix meson build script for Windows. Since the Vulkan dependency
object was declared by us in case of Windows, the dependency object
shouldn't be used for finding header

* Fix build error by including Windows specific header
gstvkdisplay.c(563): error C2065: 'VK_KHR_WIN32_SURFACE_EXTENSION_NAME': undeclared identifier
2019-09-25 22:14:40 +09: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
656a0cde84 vulkan: create the macos/ios-specific displays 2019-09-16 03:15:39 +00:00
Matthew Waters
c237c8de6a vulkandisplay: silence an unused but set error with no enable winsys implementations 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
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
70fda3ff78 vulkan: large docs update 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
Renamed from ext/vulkan/vkdisplay.c (Browse further)