Commit graph

130 commits

Author SHA1 Message Date
Matthew Waters 773e914f48 vkupload: fix a structure sType 2019-06-20 01:41:56 +10:00
Matthew Waters db617a98ad vksink: Retrieve vulkan queue earlier
Allows using the swapper's queue over upstream's queue.  The swapper
will check for the necessary presentation support that upstream may not
consider.
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 9593e4e8bb vulkan: add a new image copying element
Copies using the graphics pipeline, an input image and renders to an
output image.
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 ca38c2f25e vktrash: add more destruction of vulkan types 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 f351f3a759 vulkansink: Respond to queue queries 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 2d0cab20c0 vkswapper: don't output duplicate formats 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
Matthew Waters 8def3b3743 vkbufferpool: Fix multiplaner allocations
Use the plane width/height and the sizes required by vulkan

Fixes allocation of:
videotestsrc ! video/x-raw,format=I420 ! vulkanupload ! fakesink
2019-06-04 09:03:44 +00:00
Matthew Waters 268dfcaad9 vk*memory: explicitly error out for driver NPOT alignment 2019-06-04 09:03:44 +00:00
Matthew Waters 0526310a95 vulkan/image: initialize the requirements struct before using it 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
Matthew Waters eb0f7f3279 vulkan: remove unused X11 window system references
We use XCB instead
2019-06-04 09:03:44 +00:00
Matthew Waters 873add374a vulkan: remove unused layer enablement
This is possible now via the vulkan loader
2019-06-04 09:03:44 +00:00
Thibault Saunier 47a49f3381 docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
Matthew Waters 2e442b801b vulkan: Add iOS window implementation 2019-04-08 09:26:20 +00:00
Matthew Waters 012d6b1d98 vulkan: Add Cocoa window implementation 2019-04-08 09:26:20 +00:00
Matthew Waters b9be6b318e vulkan: make the debug extension optional
i.e. don't fail if it's not available
2019-04-08 09:26:20 +00:00
Tim-Philipp Müller 054dc5282d vulkan: fix some compiler warnings in gnu89 mode
for loop variable initialization and conflicting types for i.
2019-03-22 23:39:04 +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
Nirbheek Chauhan b55dfb5313 Add feature options for almost all plugins
The only plugins remaining are those that haven't been ported to Meson
yet, and msdk. Also, the tests are still automagic.

https://bugzilla.gnome.org/show_bug.cgi?id=795107
2018-07-27 19:04:38 +05:30
Tim-Philipp Müller a862c0aa85 vulkan: Update for g_type_class_add_private() deprecation in recent GLib 2018-06-24 01:25:04 +02:00
Matthew Waters 52e3db3371 vulkaninstance: add missing precondition to _open() 2018-06-13 20:23:22 +10:00
Xavier Claessens 83d0623293 Meson: Generate pc file for all plugins in bad
https://bugzilla.gnome.org/show_bug.cgi?id=794568
2018-04-25 11:08:09 +01: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
Jussi Kukkonen 97b0085c48 vulkan: Use the generated version of vkconfig.h
Build fails in ext/vulkan/xcb and ext/vulkan/wayland when:
* building from tarball
* building out-of-tree
* Only one WSI integration (xcb or wayland) is enabled by configure.ac
This is because vkconfig.h from source directory gets used instead
of the generated one.

Add the correct build directory to "-I". Use angle bracket
include in vkapi.h so that it actually looks in the include search
path instead of defaulting to the same (source tree) directory.

https://bugzilla.gnome.org/show_bug.cgi?id=784539
2017-07-10 21:42:49 +10:00
Jussi Kukkonen 9c6d36984f vkdisplay: Use ifdef for platform specific defines
VK_KHR_*_SURFACE_EXTENSION_NAME are only available when corresponding
WSI is enabled.

https://bugzilla.gnome.org/show_bug.cgi?id=784539
2017-07-10 21:42:49 +10:00
Sebastian Dröge 634cd87c76 gst: Clear floating flag in constructor of all GstObject subclasses that are not owned by any parent
https://bugzilla.gnome.org/show_bug.cgi?id=743062
2017-05-17 10:40:23 +03:00
Nicolas Dufresne 4261692187 Remove plugin specific static build option
Static and dynamic plugins now have the same interface. The standard
--enable-static/--enable-shared toggle are sufficient.
2017-05-16 14:05:52 -04:00
Thibault Saunier 78022a6e0c docs: Port all docstring to gtk-doc markdown 2017-04-12 12:57:57 -03:00
Matthew Waters d7bb3b5542 vkwindow: fix build error on i386
Vulkan handles are either pointers (64-bit) or 64-bit integer
handles (32-bit). Cast the type in failure cases.

vkwindow.c:229:561: error: return makes integer from pointer without a cast [-Werror=int-conversion]
vkwindow.c:231:194: error: return makes integer from pointer without a cast [-Werror=int-conversion]

https://bugzilla.gnome.org/show_bug.cgi?id=777979
2017-02-01 16:08:55 +11:00
Matthew Waters f6b81a6125 vkimagememory: use the correct enum for RGB16/BGR16 formats
vkimagememory.c:64:14: warning: implicit conversion from enumeration type 'GstVideoGLTextureType' to different enumeration type 'VkFormat' (aka 'enum VkFormat') [-Wenum-conversion]
     return GST_VIDEO_GL_TEXTURE_TYPE_RGB16;

https://bugzilla.gnome.org/show_bug.cgi?id=777760
2017-01-26 19:52:07 +11:00
Sebastian Dröge 5c99f9cf37 gst: Don't declare variables inside the for loop header
This is a C99 feature.
2016-12-13 22:39:01 +02:00
Reynaldo H. Verdejo Pinochet 7c64ea4832 wayland: avoid prefix clash in combined pkg-config check
Adittionally, remove leftover WAYLAND_DRM_ include flags var

Fixes building of ext/wayland/* broken by dfd86de67a

Related to:

https://bugzilla.gnome.org/show_bug.cgi?id=773927
2016-11-18 10:41:16 -08:00
Arun Raghavan 723218aa63 vulkan: Add missing files to meson build 2016-11-04 09:51:45 +05:30
Matthew Waters ea167c533e vkswapper: Use the trash list to free resources after they've been used
This allows further parallelism and removes a device wait from the end of
the render code.
2016-11-03 16:58:35 +11:00
Matthew Waters 0f800095e1 vulkan: add a trash object
This allows pushing the destruction of vulkan resources after the signalling
of an vulkan event.  The event facilitates knowing when a specific point in the
vulkan queue has been reached.  Only after the event has been signaled can
vulkan resources be freed and/or reused.
2016-11-03 16:58:35 +11:00
Matthew Waters af8c4589ba vulkan: add a simple refcountable fence wrapper 2016-11-03 16:58:35 +11:00
Matthew Waters 4e3cb77fa8 vkdisplay: hold a weakref on the list of windows
It's possible that the window may have been destroyed when a winsys
event comes in for it.

Fixes an assertion in make -C tests/check generic/states.check
2016-10-05 12:20:52 +11:00
Matthew Waters 1b3de55eb1 vkdevice: only unref the gstcontext query if non-NULL
Fixes an assertion in make -C tests/check generic/states.check
2016-10-05 12:20:52 +11:00
Matthew Waters a969048003 meson: add build files for vulkan 2016-09-09 16:55:23 +10:00