Matthew Waters
0d94c9ae7f
glmixer: don't hold the object lock while calling into GL
...
Doing so can deadlock between the GL thread and the object lock e.g.
when performing reconfigure events in glimagesink on a resize event.
https://bugzilla.gnome.org/show_bug.cgi?id=760559
2016-02-17 10:30:45 +11:00
Matthew Waters
1cca847b2a
vkdevice: add the necessary but arbitrary queue priority
...
Silences an error in the validation layers.
2016-02-17 01:13:43 +11:00
Matthew Waters
49430569da
vkswapper: add the necessary call to check if the physical device supports the surface
...
Silences an error in the validation layers.
2016-02-17 01:13:43 +11:00
Matthew Waters
4ca3fdb955
vulkan: update to SDK 1.0.3.1
2016-02-17 01:13:43 +11:00
Matthew Waters
a3aa0d11ec
vkswapper: iterate over the device queue's using the new iteration API
2016-02-17 01:13:43 +11:00
Matthew Waters
ca8f2b0826
vkdevice: add callback iteration over the device queue's
2016-02-17 01:13:43 +11:00
Matthew Waters
eb4419b49b
vkqueue: add context helpers
2016-02-17 01:13:43 +11: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
d1d8a365a2
vkdevice: remove unneeded error parameter from get_queue()
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
57bd62f85f
vkdisplay: unref the instance
...
fixes memory leak
2016-02-17 01:13:43 +11:00
Matthew Waters
7118f1f7e2
vulkan: chain up in finalize
...
They were missing in some cases
2016-02-17 01:13:43 +11:00
Matthew Waters
22172df413
vksink: only unref if the pointers are non-NULL
2016-02-17 01:13:43 +11:00
Matthew Waters
b5dce08d8f
vkimagememory: free the managing struct on _free
...
fixes a memory leak
2016-02-17 01:13:43 +11:00
Matthew Waters
68b1e18123
vkdevice: perform a waitIdle before destroying the device
2016-02-17 01:13:43 +11:00
Matthew Waters
1c2aae08c5
Revert "vulkan: remove views from the memory objects."
...
This reverts commit 1ea817298ee4d5ef9b00f888f8ebe16a888b1150.
2016-02-17 01:13:43 +11:00
Matthew Waters
3c2710dc0f
vulkanmemory: remove bind variants
2016-02-17 01:13:43 +11:00
Matthew Waters
4c0a169af9
vulkan: remove views from the memory objects.
...
They are not used and it's not possible to create the view before binding the
VkDeviceMemory object to them.
2016-02-17 01:13:43 +11:00
Matthew Waters
0309c9fbc7
vkswapper: alpha flags are now supported by LunarG's driver
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
Matthew Waters
980213ee97
vkutils: fix assert inversion
2016-02-17 01:13:43 +11:00
Matthew Waters
43afa15fac
vulkan: add caps feature names for the buffer and image memories
2016-02-17 01:13:43 +11:00
Matthew Waters
7871910bc6
vulkan: add device to handle_context_query
2016-02-17 01:13:43 +11:00
Matthew Waters
bfab93dabe
vulkan: move instance_open into the utility ensure_element_data
...
So callers don't have to perform it themselves.
2016-02-17 01:13:43 +11:00
Matthew Waters
0bcb3cdd29
vkinstance: add signal for overriding device creation
2016-02-17 01:13:43 +11:00
Matthew Waters
300f4e03b2
vulkan: separate allocation and binding of memory
2016-02-17 01:13:43 +11:00
Matthew Waters
914c1a5193
vkbuffermemory: follow the rest of the struct macros
2016-02-17 01:13:43 +11:00
Matthew Waters
16510e2cbc
vkswapper: use buffer memory to upload video frames to the GPU
2016-02-17 01:13:43 +11:00
Matthew Waters
bd41cc4557
vulkan: add a buffer memory allocator
...
Wraps the VkBuffer in a GstMemory subclass.
2016-02-17 01:13:43 +11:00
Matthew Waters
eb3f6eebce
vkmemory: align struct members in the header
2016-02-17 01:13:43 +11:00
Matthew Waters
a2ad5d9eac
vkmacros: use specific _INIT macros to initialize structures
2016-02-17 01:13:43 +11:00
Matthew Waters
6731fad9af
vkimagememory: add get_{width,height) functions
2016-02-17 01:13:43 +11:00
Matthew Waters
08fd5c2ae5
vulkan: update to release 1.0.1.1
2016-02-17 01:13:43 +11:00
Matthew Waters
700eb16af8
vulkan/xcb: flush after mapping the window
...
Otherwise the map may not reach the server and not appear.
2016-02-17 01:13:43 +11:00
Matthew Waters
28ad97059d
vkswapper: fix semaphore usage
2016-02-17 01:13:43 +11:00
Matthew Waters
0ee8fe193e
vulkan: add some debugging about the supported extensions
2016-02-17 01:13:43 +11:00
Matthew Waters
72e956fe5e
vkswapper: get the function pointers from the correct object
...
GetPhysicalDevice* functions are instance functions rather than device
functions.
2016-02-17 01:13:43 +11:00
Matthew Waters
d067ed8a9e
vkinstance: add the necessary winsys extension
2016-02-17 01:13:43 +11:00
Matthew Waters
3ed50f36ed
vkdisplay: forward declare GstVulkanDisplayType
2016-02-17 01:13:43 +11:00
Matthew Waters
f0fb45dd76
vkapi: remove unneeded headers
...
vkapi is for accessing the vulkan headers with the correct defines applied so
doesn't need any interal headers.
2016-02-17 01:13:43 +11:00
Matthew Waters
873e0d6340
vkimagememory: fix the memory barrier access masks
...
silences the following warnings from the validation layer
AccessMask xxx must have required access bit xxx and may have optional bits 0
when layout is VK_IMAGE_LAYOUT_TRANSFER_{SRC,DST}_OPTIMAL
2016-02-17 01:13:43 +11:00
Matthew Waters
9a0f415e79
vkswapper: only wait on the semaphore once
...
It's invalid usage and we may deadlock
2016-02-17 01:13:43 +11:00
Matthew Waters
2f11fc029d
vkimagememory: initialize flags and don't crash on errors
2016-02-17 01:13:43 +11:00
Matthew Waters
b38362e75f
vulkan: update error db for 0.10.2
2016-02-17 01:13:43 +11:00
Matthew Waters
6fe59754df
vulkan: update to SDK 0.10.2
2016-02-17 01:13:43 +11:00
Matthew Waters
996200ffc0
vulkan: implement GstContext helpers
...
Based off libgstgl's implementation
2016-02-17 01:13:43 +11:00
Matthew Waters
75aaf184bb
vkdevice: remove gst_vulkan_device_close()
...
When sharing the device between multiple elements/application, we need
to use th erefcount to know when to close the device.
2016-02-17 01:13:43 +11:00
Matthew Waters
5dd530daec
vkinstance: remove gst_vulkan_instance_close
...
Sharing the instance across multiple elements/application will require
using the refcount instead to know when to close and destroy the instance.
2016-02-17 01:13:43 +11:00
Matthew Waters
203c6fa55c
vkswapper: remove outdated comment
2016-02-17 01:13:43 +11:00