vulkan: implement proper descriptor set handling
authorMatthew Waters <matthew@centricular.com>
Wed, 6 Nov 2019 11:19:42 +0000 (22:19 +1100)
committerGStreamer Merge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Thu, 7 Nov 2019 20:01:57 +0000 (20:01 +0000)
commit32b3387ae6a4e28934c83b357fd95df2fe9103b4
tree8cb0c608726336155ab94b06e72802c10da19438
parent1c89096b4f76f2ae6df5f465520f6225fd367f8c
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.
18 files changed:
ext/vulkan/vkcolorconvert.c
ext/vulkan/vkcolorconvert.h
ext/vulkan/vkfullscreenrender.c
ext/vulkan/vkfullscreenrender.h
ext/vulkan/vkimageidentity.c
ext/vulkan/vkimageidentity.h
ext/vulkan/vkviewconvert.c
ext/vulkan/vkviewconvert.h
gst-libs/gst/vulkan/gstvkdescriptorcache-private.h [new file with mode: 0644]
gst-libs/gst/vulkan/gstvkdescriptorcache.c [new file with mode: 0644]
gst-libs/gst/vulkan/gstvkdescriptorcache.h [new file with mode: 0644]
gst-libs/gst/vulkan/gstvkdescriptorpool.c [new file with mode: 0644]
gst-libs/gst/vulkan/gstvkdescriptorpool.h [new file with mode: 0644]
gst-libs/gst/vulkan/gstvkdescriptorset.c [new file with mode: 0644]
gst-libs/gst/vulkan/gstvkdescriptorset.h [new file with mode: 0644]
gst-libs/gst/vulkan/meson.build
gst-libs/gst/vulkan/vulkan.h
gst-libs/gst/vulkan/vulkan_fwd.h