Commit graph

193 commits

Author SHA1 Message Date
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
Matthew Waters 8819319ad1 vkswapper: always match lock/unlock of the render lock
If a draw event comes from the winsys before we've rendered a buffer we were
deadlocking.
2016-02-17 01:13:43 +11:00
Matthew Waters a4e82bcef7 vkmemory: debug output the memory properties requested 2016-02-17 01:13:43 +11:00
Matthew Waters 87a35f679d vkimagememory: don't leak GstMapInfo in failure cases on _map() 2016-02-17 01:13:43 +11:00
Matthew Waters 074cb047ef vulkan: de-C99 struct declarations 2016-02-17 01:13:43 +11:00
Matthew Waters a4476fa24b vkwindow/swapper: implement redraw handling
only xcb has been implemented
2016-02-17 01:13:43 +11:00
Matthew Waters 216a321319 vulkan: implement quitting and resizing the window
As before, only xcb has been implemented.
2016-02-17 01:13:43 +11:00
Matthew Waters 5de6dd9f40 new vulkan based video sink
Currently xcb is the only winsys that is implemented and there's no redraws et
al
2016-02-17 01:13:43 +11:00