Skip to content

Improve support for vulkan descriptors

commit 0ecb386f

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().

commit b2a006a0

vulkan: implement proper descriptor set handling

The major functionality gain this provides is proper reference counting
for a descriptor set.  Overall this allows us to create descriptor sets
when they are needed (or reused from a cache) without violating any of
vulkan's object synchronisation requirements.

As there are a fixed number of sets available in a pool, the number of
descriptors in elements is currently hardcoded to 32.  This can be extended
in a future change to create pools on the fly if that limit is ever overrun.

commit 3e169092

vulkan/fence: add always-signalled fence type

Allows a cleaner control flow when there is no fence available for use
with the trash list.  An always signalled fence type will always return
TRUE for gst_vulkan_fence_is_signalled.

commit bf47fb39

vulkan: add handle type for arbitrary vulkan handles

Serve two purposes:
1. refcounting of vulkan handles with associated destruction.  When
   combined with the trash list, the user can ensure destruction at
   the correct time according to the vulkan rules.
2. avoids polluting our API with 32-bit vs 64-bit integer/pointers
   differences as exposed through the vulkan API.  on 32-bit, vulkan
   non-dispatchable handles are 64-bit integers and on 64-bit, they
   are pointers.

commit 8c967986

vulkanviewconvert: fix typo of output image view name

commit 6f732d24

vulkan: fix non-dispatchable handles on 32-bit platforms

non-dispatchable handles are 64-bit integers on 32-bit platforms

commit 7a41734b

vulkan: use VK_NULL_HANDLE in more places

Fixes compiler warnings on 32-bit platforms assigning a void * to a
64-bit integer value.

commit 46d2e0f2

vulkan: use the provided VKAPI_ATTR for the debug callback

Ensures that we get the calling convention correct for the platform we
are using.

commit 7fa2b318

vulkan: dump surface information

commit d45fa6ae

vulkan: print criticals/warnings for vulkan errors/warnings

Simplifies finding the erronous cases in using the Vulkan API
incorrectly.

commit 4c080531

vulkan/image: use the full video info for returning vulkan formats

We may need some colorspace information for returning sRGB vs no sRGB.

Merge request reports