aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Beich <jbeich@FreeBSD.org>2024-12-05 13:24:21 +0000
committerJan Beich <jbeich@FreeBSD.org>2024-12-06 19:36:36 +0000
commit4e677104710264cca16b92b544cc2829a3d0d357 (patch)
tree8d8b77f42a63e2bddac28da67059e40bc13f6552
parent71d9a817ef5db0d27598c52654471a2bdd237924 (diff)
graphics/vulkan-headers: unbreak 32-bit consumers after 4868165d658c
In file included from /usr/local/include/vulkan/vulkan.hpp:8864: /usr/local/include/vulkan/vulkan_structs.hpp:1241:90: error: invalid operands to binary expression ('const vk::AccelerationStructureKHR' and 'const vk::AccelerationStructureKHR') 1241 | return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( accelerationStructure == rhs.accelerationStructure ) && | ~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~ Reported by: pkg-fallout (benchmarks/vkmark, emulators/flycast)
-rw-r--r--graphics/vulkan-headers/Makefile1
-rw-r--r--graphics/vulkan-headers/files/patch-32bit62
2 files changed, 63 insertions, 0 deletions
diff --git a/graphics/vulkan-headers/Makefile b/graphics/vulkan-headers/Makefile
index d8b74a877a4d..c0c578caf341 100644
--- a/graphics/vulkan-headers/Makefile
+++ b/graphics/vulkan-headers/Makefile
@@ -1,6 +1,7 @@
PORTNAME= vulkan-headers
DISTVERSIONPREFIX= v
DISTVERSION= 1.4.303
+PORTREVISION= 1
CATEGORIES= graphics
MAINTAINER= jbeich@FreeBSD.org
diff --git a/graphics/vulkan-headers/files/patch-32bit b/graphics/vulkan-headers/files/patch-32bit
new file mode 100644
index 000000000000..2413e6fe2618
--- /dev/null
+++ b/graphics/vulkan-headers/files/patch-32bit
@@ -0,0 +1,62 @@
+https://github.com/KhronosGroup/Vulkan-Hpp/commit/c2c49478e9f2
+https://github.com/KhronosGroup/Vulkan-Hpp/issues/2009
+
+--- include/vulkan/vulkan_handles.hpp.orig 2024-12-04 08:19:07 UTC
++++ include/vulkan/vulkan_handles.hpp
+@@ -17706,5 +17706,56 @@ namespace VULKAN_HPP_NAMESPACE
+ VULKAN_HPP_NODISCARD typename ResultValueType<uint32_t>::type enumerateInstanceVersion( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT );
+ #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
++// operators to compare vk::-handles
++#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
++template <typename T, typename std::enable_if<VULKAN_HPP_NAMESPACE::isVulkanHandleType<T>::value, int>::type = 0>
++bool operator<=>( T const & lhs, T const & rhs )
++{
++ return static_cast<typename T::NativeType>( lhs ) <=> static_cast<typename T::NativeType>( rhs );
++}
++#else
++template <typename T, typename std::enable_if<VULKAN_HPP_NAMESPACE::isVulkanHandleType<T>::value, int>::type = 0>
++bool operator==( T const & lhs, T const & rhs )
++{
++ return static_cast<typename T::NativeType>( lhs ) == static_cast<typename T::NativeType>( rhs );
++}
++
++template <typename T, typename std::enable_if<VULKAN_HPP_NAMESPACE::isVulkanHandleType<T>::value, int>::type = 0>
++bool operator!=( T const & lhs, T const & rhs )
++{
++ return static_cast<typename T::NativeType>( lhs ) != static_cast<typename T::NativeType>( rhs );
++}
++
++template <typename T, typename std::enable_if<VULKAN_HPP_NAMESPACE::isVulkanHandleType<T>::value, int>::type = 0>
++bool operator<( T const & lhs, T const & rhs )
++{
++ return static_cast<typename T::NativeType>( lhs ) < static_cast<typename T::NativeType>( rhs );
++}
++#endif
++
++template <typename T, typename std::enable_if<VULKAN_HPP_NAMESPACE::isVulkanHandleType<T>::value, int>::type = 0>
++bool operator==( T const & v, std::nullptr_t )
++{
++ return !v;
++}
++
++template <typename T, typename std::enable_if<VULKAN_HPP_NAMESPACE::isVulkanHandleType<T>::value, int>::type = 0>
++bool operator==( std::nullptr_t, T const & v )
++{
++ return !v;
++}
++
++template <typename T, typename std::enable_if<VULKAN_HPP_NAMESPACE::isVulkanHandleType<T>::value, int>::type = 0>
++bool operator!=( T const & v, std::nullptr_t )
++{
++ return !!v;
++}
++
++template <typename T, typename std::enable_if<VULKAN_HPP_NAMESPACE::isVulkanHandleType<T>::value, int>::type = 0>
++bool operator!=( std::nullptr_t, T const & v )
++{
++ return !!v;
++}
++
+ } // namespace VULKAN_HPP_NAMESPACE
+ #endif