vulkan multilib problems
In gst-libs/gst/vulkan/gstvkhandle.h
there is this define:
VK_DEFINE_NON_DISPATCHABLE_HANDLE(GstVulkanHandleTypedef)
Which in vulkan/vulkan_core.h
resolves to this:
#if !defined(VK_DEFINE_NON_DISPATCHABLE_HANDLE)
#if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
#define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object;
#else
#define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
#endif
#endif
Which generates different .gir
files for i686 and x86_64:
19a20,24
> <alias name="VulkanHandleTypedef" c:type="GstVulkanHandleTypedef">
> <source-position filename="../gst-libs/gst/vulkan/gstvkhandle.h"
> line="50"/>
> <type name="guint64" c:type="uint64_t"/>
> </alias>
5070,5076d5074
< <record name="VulkanHandleTypedef"
< c:type="GstVulkanHandleTypedef"
< disguised="1"
< version="1.18">
< <source-position filename="../gst-libs/gst/vulkan/gstvkhandle.h"
< line="50"/>
< </record>
Which then causes installation problems when installing the -devel packages:
gstreamer1-plugins-bad-free-devel-1.18.2-2.el9.i686.rpm gstreamer1-plugins-bad-free-devel-1.18.2-2.el9.x86_64.rpm
warning: /root/tmp.TDRrtuKWTa/rpms/gstreamer1-plugins-bad-free-devel-1.18.2-2.el9.i686.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
file /usr/share/gir-1.0/GstVulkan-1.0.gir conflicts between attempted installs of gstreamer1-plugins-bad-free-devel-1.18.2-2.el9.i686 and gstreamer1-plugins-bad-free-devel-1.18.2-2.el9.x86_64
I'm not quite sure what to do but according to the docs https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VK_DEFINE_NON_DISPATCHABLE_HANDLE.html it should be possible to do:
diff --git a/gst-libs/gst/vulkan/gstvkapi.h b/gst-libs/gst/vulkan/gstvkapi.h
index 9d223201f..76886c703 100644
--- a/gst-libs/gst/vulkan/gstvkapi.h
+++ b/gst-libs/gst/vulkan/gstvkapi.h
@@ -31,6 +31,8 @@
#include <gst/vulkan/vulkan_fwd.h>
#include <gst/vulkan/vulkan-enumtypes.h>
+#define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
+
#include <vulkan/vulkan_core.h>
#endif /* __GST_VULKAN_API_H__ */
What do you think? shall I make a merge request?