Add multi-format sysmem entrypoints
These entrypoints will allow applications to specify that they can
handle multiple different image formats in a buffer collection. This
will allow us to remove a hack from ImagePipe2, where it uses
VK_FORMAT_UNDEFINED to allow that it supports any format that the driver
supports.
Bug: fxb/54503
Change-Id: Ifb0c1dd5d07000d910fe46750b0dcc002949a1c4
Reviewed-on: https://fuchsia-review.googlesource.com/c/third_party/Vulkan-Headers/+/421196
Reviewed-by: John Rosasco <rosasco@google.com>
Reviewed-by: Craig Stout <cstout@google.com>
diff --git a/include/vulkan/vulkan.hpp b/include/vulkan/vulkan.hpp
index 3103e88..e7f0fc8 100644
--- a/include/vulkan/vulkan.hpp
+++ b/include/vulkan/vulkan.hpp
@@ -3335,6 +3335,16 @@
# endif /*VK_USE_PLATFORM_ANDROID_KHR*/
# ifdef VK_USE_PLATFORM_FUCHSIA
+ VkResult vkGetBufferCollectionProperties2FUCHSIA( VkDevice device,
+ VkBufferCollectionFUCHSIA collection,
+ VkBufferCollectionProperties2FUCHSIA * pProperties ) const
+ VULKAN_HPP_NOEXCEPT
+ {
+ return ::vkGetBufferCollectionProperties2FUCHSIA( device, collection, pProperties );
+ }
+# endif /*VK_USE_PLATFORM_FUCHSIA*/
+
+# ifdef VK_USE_PLATFORM_FUCHSIA
VkResult vkGetBufferCollectionPropertiesFUCHSIA( VkDevice device,
VkBufferCollectionFUCHSIA collection,
VkBufferCollectionPropertiesFUCHSIA * pProperties ) const
@@ -4623,6 +4633,16 @@
}
# endif /*VK_USE_PLATFORM_FUCHSIA*/
+# ifdef VK_USE_PLATFORM_FUCHSIA
+ VkResult vkSetBufferCollectionImageConstraintsFUCHSIA(
+ VkDevice device,
+ VkBufferCollectionFUCHSIA collection,
+ const VkImageConstraintsInfoFUCHSIA * pImageConstraintsInfo ) const VULKAN_HPP_NOEXCEPT
+ {
+ return ::vkSetBufferCollectionImageConstraintsFUCHSIA( device, collection, pImageConstraintsInfo );
+ }
+# endif /*VK_USE_PLATFORM_FUCHSIA*/
+
VkResult vkSetDebugUtilsObjectNameEXT( VkDevice device,
const VkDebugUtilsObjectNameInfoEXT * pNameInfo ) const VULKAN_HPP_NOEXCEPT
{
@@ -7402,6 +7422,30 @@
}
}
+#ifdef VK_USE_PLATFORM_FUCHSIA
+ enum class ImageFormatConstraintsFlagBitsFUCHSIA : VkImageFormatConstraintsFlagsFUCHSIA
+ {
+ eCpuReadRarely = VK_IMAGE_FORMAT_CONSTRAINTS_CPU_READ_RARELY_FUCHSIA,
+ eCpuReadOften = VK_IMAGE_FORMAT_CONSTRAINTS_CPU_READ_OFTEN_FUCHSIA,
+ eCpuWriteRarely = VK_IMAGE_FORMAT_CONSTRAINTS_CPU_WRITE_RARELY_FUCHSIA,
+ eCpuWriteOften = VK_IMAGE_FORMAT_CONSTRAINTS_CPU_WRITE_OFTEN_FUCHSIA,
+ eProtectedOptional = VK_IMAGE_FORMAT_CONSTRAINTS_PROTECTED_OPTIONAL_FUCHSIA
+ };
+
+ VULKAN_HPP_INLINE std::string to_string( ImageFormatConstraintsFlagBitsFUCHSIA value )
+ {
+ switch ( value )
+ {
+ case ImageFormatConstraintsFlagBitsFUCHSIA::eCpuReadRarely: return "CpuReadRarely";
+ case ImageFormatConstraintsFlagBitsFUCHSIA::eCpuReadOften: return "CpuReadOften";
+ case ImageFormatConstraintsFlagBitsFUCHSIA::eCpuWriteRarely: return "CpuWriteRarely";
+ case ImageFormatConstraintsFlagBitsFUCHSIA::eCpuWriteOften: return "CpuWriteOften";
+ case ImageFormatConstraintsFlagBitsFUCHSIA::eProtectedOptional: return "ProtectedOptional";
+ default: return "invalid";
+ }
+ }
+#endif /*VK_USE_PLATFORM_FUCHSIA*/
+
enum class ImageLayout
{
eUndefined = VK_IMAGE_LAYOUT_UNDEFINED,
@@ -9810,6 +9854,10 @@
eBufferCollectionPropertiesFUCHSIA = VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA,
eBufferConstraintsInfoFUCHSIA = VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA,
eBufferCollectionBufferCreateInfoFUCHSIA = VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA,
+ eImageConstraintsInfoFUCHSIA = VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA,
+ eImageFormatConstraintsInfoFUCHSIA = VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA,
+ eBufferCollectionProperties2FUCHSIA = VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES2_FUCHSIA,
+ eSysmemColorSpaceFUCHSIA = VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA,
eTempImportMemoryZirconHandleInfoFUCHSIA = VK_STRUCTURE_TYPE_TEMP_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA,
eTempMemoryZirconHandlePropertiesFUCHSIA = VK_STRUCTURE_TYPE_TEMP_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA,
eTempMemoryGetZirconHandleInfoFUCHSIA = VK_STRUCTURE_TYPE_TEMP_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA,
@@ -10488,6 +10536,10 @@
case StructureType::eBufferCollectionPropertiesFUCHSIA: return "BufferCollectionPropertiesFUCHSIA";
case StructureType::eBufferConstraintsInfoFUCHSIA: return "BufferConstraintsInfoFUCHSIA";
case StructureType::eBufferCollectionBufferCreateInfoFUCHSIA: return "BufferCollectionBufferCreateInfoFUCHSIA";
+ case StructureType::eImageConstraintsInfoFUCHSIA: return "ImageConstraintsInfoFUCHSIA";
+ case StructureType::eImageFormatConstraintsInfoFUCHSIA: return "ImageFormatConstraintsInfoFUCHSIA";
+ case StructureType::eBufferCollectionProperties2FUCHSIA: return "BufferCollectionProperties2FUCHSIA";
+ case StructureType::eSysmemColorSpaceFUCHSIA: return "SysmemColorSpaceFUCHSIA";
case StructureType::eTempImportMemoryZirconHandleInfoFUCHSIA: return "TempImportMemoryZirconHandleInfoFUCHSIA";
case StructureType::eTempMemoryZirconHandlePropertiesFUCHSIA: return "TempMemoryZirconHandlePropertiesFUCHSIA";
case StructureType::eTempMemoryGetZirconHandleInfoFUCHSIA: return "TempMemoryGetZirconHandleInfoFUCHSIA";
@@ -13393,6 +13445,67 @@
}
#ifdef VK_USE_PLATFORM_FUCHSIA
+
+ using ImageFormatConstraintsFlagsFUCHSIA = Flags<ImageFormatConstraintsFlagBitsFUCHSIA>;
+
+ template <>
+ struct FlagTraits<ImageFormatConstraintsFlagBitsFUCHSIA>
+ {
+ enum : VkFlags
+ {
+ allFlags = VkFlags( ImageFormatConstraintsFlagBitsFUCHSIA::eCpuReadRarely ) |
+ VkFlags( ImageFormatConstraintsFlagBitsFUCHSIA::eCpuReadOften ) |
+ VkFlags( ImageFormatConstraintsFlagBitsFUCHSIA::eCpuWriteRarely ) |
+ VkFlags( ImageFormatConstraintsFlagBitsFUCHSIA::eCpuWriteOften ) |
+ VkFlags( ImageFormatConstraintsFlagBitsFUCHSIA::eProtectedOptional )
+ };
+ };
+
+ VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageFormatConstraintsFlagsFUCHSIA operator|(
+ ImageFormatConstraintsFlagBitsFUCHSIA bit0, ImageFormatConstraintsFlagBitsFUCHSIA bit1 ) VULKAN_HPP_NOEXCEPT
+ {
+ return ImageFormatConstraintsFlagsFUCHSIA( bit0 ) | bit1;
+ }
+
+ VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageFormatConstraintsFlagsFUCHSIA operator&(
+ ImageFormatConstraintsFlagBitsFUCHSIA bit0, ImageFormatConstraintsFlagBitsFUCHSIA bit1 ) VULKAN_HPP_NOEXCEPT
+ {
+ return ImageFormatConstraintsFlagsFUCHSIA( bit0 ) & bit1;
+ }
+
+ VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageFormatConstraintsFlagsFUCHSIA operator^(
+ ImageFormatConstraintsFlagBitsFUCHSIA bit0, ImageFormatConstraintsFlagBitsFUCHSIA bit1 ) VULKAN_HPP_NOEXCEPT
+ {
+ return ImageFormatConstraintsFlagsFUCHSIA( bit0 ) ^ bit1;
+ }
+
+ VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageFormatConstraintsFlagsFUCHSIA
+ operator~( ImageFormatConstraintsFlagBitsFUCHSIA bits ) VULKAN_HPP_NOEXCEPT
+ {
+ return ~( ImageFormatConstraintsFlagsFUCHSIA( bits ) );
+ }
+
+ VULKAN_HPP_INLINE std::string to_string( ImageFormatConstraintsFlagsFUCHSIA value )
+ {
+ if ( !value )
+ return "{}";
+ std::string result;
+
+ if ( value & ImageFormatConstraintsFlagBitsFUCHSIA::eCpuReadRarely )
+ result += "CpuReadRarely | ";
+ if ( value & ImageFormatConstraintsFlagBitsFUCHSIA::eCpuReadOften )
+ result += "CpuReadOften | ";
+ if ( value & ImageFormatConstraintsFlagBitsFUCHSIA::eCpuWriteRarely )
+ result += "CpuWriteRarely | ";
+ if ( value & ImageFormatConstraintsFlagBitsFUCHSIA::eCpuWriteOften )
+ result += "CpuWriteOften | ";
+ if ( value & ImageFormatConstraintsFlagBitsFUCHSIA::eProtectedOptional )
+ result += "ProtectedOptional | ";
+ return "{ " + result.substr( 0, result.size() - 3 ) + " }";
+ }
+#endif /*VK_USE_PLATFORM_FUCHSIA*/
+
+#ifdef VK_USE_PLATFORM_FUCHSIA
enum class ImagePipeSurfaceCreateFlagBitsFUCHSIA : VkFlags
{
};
@@ -24322,6 +24435,284 @@
#endif /*VK_USE_PLATFORM_FUCHSIA*/
#ifdef VK_USE_PLATFORM_FUCHSIA
+ struct SysmemColorSpaceFUCHSIA
+ {
+ static const bool allowDuplicate = false;
+ static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSysmemColorSpaceFUCHSIA;
+
+# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+ VULKAN_HPP_CONSTEXPR SysmemColorSpaceFUCHSIA( uint32_t colorSpace_ = {} ) VULKAN_HPP_NOEXCEPT
+ : colorSpace( colorSpace_ )
+ {}
+
+ VULKAN_HPP_CONSTEXPR SysmemColorSpaceFUCHSIA( SysmemColorSpaceFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+ SysmemColorSpaceFUCHSIA( VkSysmemColorSpaceFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
+ {
+ *this = rhs;
+ }
+# endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+
+ SysmemColorSpaceFUCHSIA & operator=( VkSysmemColorSpaceFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
+ {
+ *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA const *>( &rhs );
+ return *this;
+ }
+
+ SysmemColorSpaceFUCHSIA & operator=( SysmemColorSpaceFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
+ {
+ memcpy( static_cast<void *>( this ), &rhs, sizeof( SysmemColorSpaceFUCHSIA ) );
+ return *this;
+ }
+
+ SysmemColorSpaceFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+ {
+ pNext = pNext_;
+ return *this;
+ }
+
+ SysmemColorSpaceFUCHSIA & setColorSpace( uint32_t colorSpace_ ) VULKAN_HPP_NOEXCEPT
+ {
+ colorSpace = colorSpace_;
+ return *this;
+ }
+
+ operator VkSysmemColorSpaceFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<const VkSysmemColorSpaceFUCHSIA *>( this );
+ }
+
+ operator VkSysmemColorSpaceFUCHSIA &() VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<VkSysmemColorSpaceFUCHSIA *>( this );
+ }
+
+# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+ auto operator<=>( SysmemColorSpaceFUCHSIA const & ) const = default;
+# else
+ bool operator==( SysmemColorSpaceFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( colorSpace == rhs.colorSpace );
+ }
+
+ bool operator!=( SysmemColorSpaceFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return !operator==( rhs );
+ }
+# endif
+
+ public:
+ const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSysmemColorSpaceFUCHSIA;
+ const void * pNext = {};
+ uint32_t colorSpace = {};
+ };
+ static_assert( sizeof( SysmemColorSpaceFUCHSIA ) == sizeof( VkSysmemColorSpaceFUCHSIA ),
+ "struct and wrapper have different size!" );
+ static_assert( std::is_standard_layout<SysmemColorSpaceFUCHSIA>::value, "struct wrapper is not a standard layout!" );
+
+ template <>
+ struct CppType<StructureType, StructureType::eSysmemColorSpaceFUCHSIA>
+ {
+ using Type = SysmemColorSpaceFUCHSIA;
+ };
+#endif /*VK_USE_PLATFORM_FUCHSIA*/
+
+#ifdef VK_USE_PLATFORM_FUCHSIA
+ struct BufferCollectionProperties2FUCHSIA
+ {
+ static const bool allowDuplicate = false;
+ static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType =
+ StructureType::eBufferCollectionProperties2FUCHSIA;
+
+# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+ VULKAN_HPP_CONSTEXPR BufferCollectionProperties2FUCHSIA(
+ uint32_t memoryTypeBits_ = {},
+ uint32_t bufferCount_ = {},
+ uint32_t createInfoIndex_ = {},
+ uint64_t sysmemFormat_ = {},
+ VULKAN_HPP_NAMESPACE::FormatFeatureFlags formatFeatures_ = {},
+ VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA colorSpace_ = {},
+ VULKAN_HPP_NAMESPACE::ComponentMapping samplerYcbcrConversionComponents_ = {},
+ VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel_ =
+ VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity,
+ VULKAN_HPP_NAMESPACE::SamplerYcbcrRange suggestedYcbcrRange_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull,
+ VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven,
+ VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset_ =
+ VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven ) VULKAN_HPP_NOEXCEPT
+ : memoryTypeBits( memoryTypeBits_ )
+ , bufferCount( bufferCount_ )
+ , createInfoIndex( createInfoIndex_ )
+ , sysmemFormat( sysmemFormat_ )
+ , formatFeatures( formatFeatures_ )
+ , colorSpace( colorSpace_ )
+ , samplerYcbcrConversionComponents( samplerYcbcrConversionComponents_ )
+ , suggestedYcbcrModel( suggestedYcbcrModel_ )
+ , suggestedYcbcrRange( suggestedYcbcrRange_ )
+ , suggestedXChromaOffset( suggestedXChromaOffset_ )
+ , suggestedYChromaOffset( suggestedYChromaOffset_ )
+ {}
+
+ VULKAN_HPP_CONSTEXPR BufferCollectionProperties2FUCHSIA( BufferCollectionProperties2FUCHSIA const & rhs )
+ VULKAN_HPP_NOEXCEPT = default;
+
+ BufferCollectionProperties2FUCHSIA( VkBufferCollectionProperties2FUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
+ {
+ *this = rhs;
+ }
+# endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+
+ BufferCollectionProperties2FUCHSIA &
+ operator=( VkBufferCollectionProperties2FUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
+ {
+ *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferCollectionProperties2FUCHSIA const *>( &rhs );
+ return *this;
+ }
+
+ BufferCollectionProperties2FUCHSIA & operator=( BufferCollectionProperties2FUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
+ {
+ memcpy( static_cast<void *>( this ), &rhs, sizeof( BufferCollectionProperties2FUCHSIA ) );
+ return *this;
+ }
+
+ BufferCollectionProperties2FUCHSIA & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+ {
+ pNext = pNext_;
+ return *this;
+ }
+
+ BufferCollectionProperties2FUCHSIA & setMemoryTypeBits( uint32_t memoryTypeBits_ ) VULKAN_HPP_NOEXCEPT
+ {
+ memoryTypeBits = memoryTypeBits_;
+ return *this;
+ }
+
+ BufferCollectionProperties2FUCHSIA & setBufferCount( uint32_t bufferCount_ ) VULKAN_HPP_NOEXCEPT
+ {
+ bufferCount = bufferCount_;
+ return *this;
+ }
+
+ BufferCollectionProperties2FUCHSIA & setCreateInfoIndex( uint32_t createInfoIndex_ ) VULKAN_HPP_NOEXCEPT
+ {
+ createInfoIndex = createInfoIndex_;
+ return *this;
+ }
+
+ BufferCollectionProperties2FUCHSIA & setSysmemFormat( uint64_t sysmemFormat_ ) VULKAN_HPP_NOEXCEPT
+ {
+ sysmemFormat = sysmemFormat_;
+ return *this;
+ }
+
+ BufferCollectionProperties2FUCHSIA &
+ setFormatFeatures( VULKAN_HPP_NAMESPACE::FormatFeatureFlags formatFeatures_ ) VULKAN_HPP_NOEXCEPT
+ {
+ formatFeatures = formatFeatures_;
+ return *this;
+ }
+
+ BufferCollectionProperties2FUCHSIA &
+ setColorSpace( VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA const & colorSpace_ ) VULKAN_HPP_NOEXCEPT
+ {
+ colorSpace = colorSpace_;
+ return *this;
+ }
+
+ BufferCollectionProperties2FUCHSIA & setSamplerYcbcrConversionComponents(
+ VULKAN_HPP_NAMESPACE::ComponentMapping const & samplerYcbcrConversionComponents_ ) VULKAN_HPP_NOEXCEPT
+ {
+ samplerYcbcrConversionComponents = samplerYcbcrConversionComponents_;
+ return *this;
+ }
+
+ BufferCollectionProperties2FUCHSIA & setSuggestedYcbcrModel(
+ VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel_ ) VULKAN_HPP_NOEXCEPT
+ {
+ suggestedYcbcrModel = suggestedYcbcrModel_;
+ return *this;
+ }
+
+ BufferCollectionProperties2FUCHSIA &
+ setSuggestedYcbcrRange( VULKAN_HPP_NAMESPACE::SamplerYcbcrRange suggestedYcbcrRange_ ) VULKAN_HPP_NOEXCEPT
+ {
+ suggestedYcbcrRange = suggestedYcbcrRange_;
+ return *this;
+ }
+
+ BufferCollectionProperties2FUCHSIA &
+ setSuggestedXChromaOffset( VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset_ ) VULKAN_HPP_NOEXCEPT
+ {
+ suggestedXChromaOffset = suggestedXChromaOffset_;
+ return *this;
+ }
+
+ BufferCollectionProperties2FUCHSIA &
+ setSuggestedYChromaOffset( VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset_ ) VULKAN_HPP_NOEXCEPT
+ {
+ suggestedYChromaOffset = suggestedYChromaOffset_;
+ return *this;
+ }
+
+ operator VkBufferCollectionProperties2FUCHSIA const &() const VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<const VkBufferCollectionProperties2FUCHSIA *>( this );
+ }
+
+ operator VkBufferCollectionProperties2FUCHSIA &() VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<VkBufferCollectionProperties2FUCHSIA *>( this );
+ }
+
+# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+ auto operator<=>( BufferCollectionProperties2FUCHSIA const & ) const = default;
+# else
+ bool operator==( BufferCollectionProperties2FUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memoryTypeBits == rhs.memoryTypeBits ) &&
+ ( bufferCount == rhs.bufferCount ) && ( createInfoIndex == rhs.createInfoIndex ) &&
+ ( sysmemFormat == rhs.sysmemFormat ) && ( formatFeatures == rhs.formatFeatures ) &&
+ ( colorSpace == rhs.colorSpace ) &&
+ ( samplerYcbcrConversionComponents == rhs.samplerYcbcrConversionComponents ) &&
+ ( suggestedYcbcrModel == rhs.suggestedYcbcrModel ) && ( suggestedYcbcrRange == rhs.suggestedYcbcrRange ) &&
+ ( suggestedXChromaOffset == rhs.suggestedXChromaOffset ) &&
+ ( suggestedYChromaOffset == rhs.suggestedYChromaOffset );
+ }
+
+ bool operator!=( BufferCollectionProperties2FUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return !operator==( rhs );
+ }
+# endif
+
+ public:
+ const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferCollectionProperties2FUCHSIA;
+ void * pNext = {};
+ uint32_t memoryTypeBits = {};
+ uint32_t bufferCount = {};
+ uint32_t createInfoIndex = {};
+ uint64_t sysmemFormat = {};
+ VULKAN_HPP_NAMESPACE::FormatFeatureFlags formatFeatures = {};
+ VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA colorSpace = {};
+ VULKAN_HPP_NAMESPACE::ComponentMapping samplerYcbcrConversionComponents = {};
+ VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel =
+ VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity;
+ VULKAN_HPP_NAMESPACE::SamplerYcbcrRange suggestedYcbcrRange = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull;
+ VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
+ VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
+ };
+ static_assert( sizeof( BufferCollectionProperties2FUCHSIA ) == sizeof( VkBufferCollectionProperties2FUCHSIA ),
+ "struct and wrapper have different size!" );
+ static_assert( std::is_standard_layout<BufferCollectionProperties2FUCHSIA>::value,
+ "struct wrapper is not a standard layout!" );
+
+ template <>
+ struct CppType<StructureType, StructureType::eBufferCollectionProperties2FUCHSIA>
+ {
+ using Type = BufferCollectionProperties2FUCHSIA;
+ };
+#endif /*VK_USE_PLATFORM_FUCHSIA*/
+
+#ifdef VK_USE_PLATFORM_FUCHSIA
struct BufferCollectionPropertiesFUCHSIA
{
static const bool allowDuplicate = false;
@@ -50427,6 +50818,347 @@
using Type = DisplayEventInfoEXT;
};
+#ifdef VK_USE_PLATFORM_FUCHSIA
+ struct ImageFormatConstraintsInfoFUCHSIA
+ {
+ static const bool allowDuplicate = false;
+ static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType =
+ StructureType::eImageFormatConstraintsInfoFUCHSIA;
+
+# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+ VULKAN_HPP_CONSTEXPR ImageFormatConstraintsInfoFUCHSIA(
+ VULKAN_HPP_NAMESPACE::FormatFeatureFlags requiredFormatFeatures_ = {},
+ VULKAN_HPP_NAMESPACE::ImageFormatConstraintsFlagsFUCHSIA flags_ = {},
+ uint64_t sysmemFormat_ = {},
+ uint32_t colorSpaceCount_ = {},
+ const VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA * pColorSpaces_ = {} ) VULKAN_HPP_NOEXCEPT
+ : requiredFormatFeatures( requiredFormatFeatures_ )
+ , flags( flags_ )
+ , sysmemFormat( sysmemFormat_ )
+ , colorSpaceCount( colorSpaceCount_ )
+ , pColorSpaces( pColorSpaces_ )
+ {}
+
+ VULKAN_HPP_CONSTEXPR
+ ImageFormatConstraintsInfoFUCHSIA( ImageFormatConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+ ImageFormatConstraintsInfoFUCHSIA( VkImageFormatConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
+ {
+ *this = rhs;
+ }
+# endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+
+ ImageFormatConstraintsInfoFUCHSIA & operator=( VkImageFormatConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
+ {
+ *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA const *>( &rhs );
+ return *this;
+ }
+
+ ImageFormatConstraintsInfoFUCHSIA & operator=( ImageFormatConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
+ {
+ memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageFormatConstraintsInfoFUCHSIA ) );
+ return *this;
+ }
+
+ ImageFormatConstraintsInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+ {
+ pNext = pNext_;
+ return *this;
+ }
+
+ ImageFormatConstraintsInfoFUCHSIA &
+ setRequiredFormatFeatures( VULKAN_HPP_NAMESPACE::FormatFeatureFlags requiredFormatFeatures_ ) VULKAN_HPP_NOEXCEPT
+ {
+ requiredFormatFeatures = requiredFormatFeatures_;
+ return *this;
+ }
+
+ ImageFormatConstraintsInfoFUCHSIA &
+ setFlags( VULKAN_HPP_NAMESPACE::ImageFormatConstraintsFlagsFUCHSIA flags_ ) VULKAN_HPP_NOEXCEPT
+ {
+ flags = flags_;
+ return *this;
+ }
+
+ ImageFormatConstraintsInfoFUCHSIA & setSysmemFormat( uint64_t sysmemFormat_ ) VULKAN_HPP_NOEXCEPT
+ {
+ sysmemFormat = sysmemFormat_;
+ return *this;
+ }
+
+ ImageFormatConstraintsInfoFUCHSIA & setColorSpaceCount( uint32_t colorSpaceCount_ ) VULKAN_HPP_NOEXCEPT
+ {
+ colorSpaceCount = colorSpaceCount_;
+ return *this;
+ }
+
+ ImageFormatConstraintsInfoFUCHSIA &
+ setPColorSpaces( const VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA * pColorSpaces_ ) VULKAN_HPP_NOEXCEPT
+ {
+ pColorSpaces = pColorSpaces_;
+ return *this;
+ }
+
+ operator VkImageFormatConstraintsInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<const VkImageFormatConstraintsInfoFUCHSIA *>( this );
+ }
+
+ operator VkImageFormatConstraintsInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<VkImageFormatConstraintsInfoFUCHSIA *>( this );
+ }
+
+# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+ auto operator<=>( ImageFormatConstraintsInfoFUCHSIA const & ) const = default;
+# else
+ bool operator==( ImageFormatConstraintsInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) &&
+ ( requiredFormatFeatures == rhs.requiredFormatFeatures ) && ( flags == rhs.flags ) &&
+ ( sysmemFormat == rhs.sysmemFormat ) && ( colorSpaceCount == rhs.colorSpaceCount ) &&
+ ( pColorSpaces == rhs.pColorSpaces );
+ }
+
+ bool operator!=( ImageFormatConstraintsInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return !operator==( rhs );
+ }
+# endif
+
+ public:
+ const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageFormatConstraintsInfoFUCHSIA;
+ const void * pNext = {};
+ VULKAN_HPP_NAMESPACE::FormatFeatureFlags requiredFormatFeatures = {};
+ VULKAN_HPP_NAMESPACE::ImageFormatConstraintsFlagsFUCHSIA flags = {};
+ uint64_t sysmemFormat = {};
+ uint32_t colorSpaceCount = {};
+ const VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA * pColorSpaces = {};
+ };
+ static_assert( sizeof( ImageFormatConstraintsInfoFUCHSIA ) == sizeof( VkImageFormatConstraintsInfoFUCHSIA ),
+ "struct and wrapper have different size!" );
+ static_assert( std::is_standard_layout<ImageFormatConstraintsInfoFUCHSIA>::value,
+ "struct wrapper is not a standard layout!" );
+
+ template <>
+ struct CppType<StructureType, StructureType::eImageFormatConstraintsInfoFUCHSIA>
+ {
+ using Type = ImageFormatConstraintsInfoFUCHSIA;
+ };
+#endif /*VK_USE_PLATFORM_FUCHSIA*/
+
+#ifdef VK_USE_PLATFORM_FUCHSIA
+ struct ImageConstraintsInfoFUCHSIA
+ {
+ static const bool allowDuplicate = false;
+ static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageConstraintsInfoFUCHSIA;
+
+# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+ VULKAN_HPP_CONSTEXPR ImageConstraintsInfoFUCHSIA(
+ uint32_t createInfoCount_ = {},
+ const VULKAN_HPP_NAMESPACE::ImageCreateInfo * pCreateInfos_ = {},
+ const VULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA * pFormatConstraints_ = {},
+ uint32_t minBufferCount_ = {},
+ uint32_t maxBufferCount_ = {},
+ uint32_t minBufferCountForCamping_ = {},
+ uint32_t minBufferCountForDedicatedSlack_ = {},
+ uint32_t minBufferCountForSharedSlack_ = {} ) VULKAN_HPP_NOEXCEPT
+ : createInfoCount( createInfoCount_ )
+ , pCreateInfos( pCreateInfos_ )
+ , pFormatConstraints( pFormatConstraints_ )
+ , minBufferCount( minBufferCount_ )
+ , maxBufferCount( maxBufferCount_ )
+ , minBufferCountForCamping( minBufferCountForCamping_ )
+ , minBufferCountForDedicatedSlack( minBufferCountForDedicatedSlack_ )
+ , minBufferCountForSharedSlack( minBufferCountForSharedSlack_ )
+ {}
+
+ VULKAN_HPP_CONSTEXPR
+ ImageConstraintsInfoFUCHSIA( ImageConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+ ImageConstraintsInfoFUCHSIA( VkImageConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
+ {
+ *this = rhs;
+ }
+
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+ ImageConstraintsInfoFUCHSIA(
+ VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageCreateInfo> const & createInfos_,
+ VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<
+ const VULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA> const & formatConstraints_ = {},
+ uint32_t minBufferCount_ = {},
+ uint32_t maxBufferCount_ = {},
+ uint32_t minBufferCountForCamping_ = {},
+ uint32_t minBufferCountForDedicatedSlack_ = {},
+ uint32_t minBufferCountForSharedSlack_ = {} )
+ : createInfoCount( static_cast<uint32_t>( createInfos_.size() ) )
+ , pCreateInfos( createInfos_.data() )
+ , pFormatConstraints( formatConstraints_.data() )
+ , minBufferCount( minBufferCount_ )
+ , maxBufferCount( maxBufferCount_ )
+ , minBufferCountForCamping( minBufferCountForCamping_ )
+ , minBufferCountForDedicatedSlack( minBufferCountForDedicatedSlack_ )
+ , minBufferCountForSharedSlack( minBufferCountForSharedSlack_ )
+ {
+# ifdef VULKAN_HPP_NO_EXCEPTIONS
+ VULKAN_HPP_ASSERT( formatConstraints_.empty() || ( createInfos_.size() == formatConstraints_.size() ) );
+# else
+ if ( !formatConstraints_.empty() && ( createInfos_.size() != formatConstraints_.size() ) )
+ {
+ throw LogicError(
+ VULKAN_HPP_NAMESPACE_STRING
+ "::ImageConstraintsInfoFUCHSIA::ImageConstraintsInfoFUCHSIA: !formatConstraints_.empty() && ( createInfos_.size() != formatConstraints_.size() )" );
+ }
+# endif /*VULKAN_HPP_NO_EXCEPTIONS*/
+ }
+# endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
+# endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+
+ ImageConstraintsInfoFUCHSIA & operator=( VkImageConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
+ {
+ *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFUCHSIA const *>( &rhs );
+ return *this;
+ }
+
+ ImageConstraintsInfoFUCHSIA & operator=( ImageConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
+ {
+ memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageConstraintsInfoFUCHSIA ) );
+ return *this;
+ }
+
+ ImageConstraintsInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+ {
+ pNext = pNext_;
+ return *this;
+ }
+
+ ImageConstraintsInfoFUCHSIA & setCreateInfoCount( uint32_t createInfoCount_ ) VULKAN_HPP_NOEXCEPT
+ {
+ createInfoCount = createInfoCount_;
+ return *this;
+ }
+
+ ImageConstraintsInfoFUCHSIA &
+ setPCreateInfos( const VULKAN_HPP_NAMESPACE::ImageCreateInfo * pCreateInfos_ ) VULKAN_HPP_NOEXCEPT
+ {
+ pCreateInfos = pCreateInfos_;
+ return *this;
+ }
+
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+ ImageConstraintsInfoFUCHSIA & setCreateInfos(
+ VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageCreateInfo> const & createInfos_ )
+ VULKAN_HPP_NOEXCEPT
+ {
+ createInfoCount = static_cast<uint32_t>( createInfos_.size() );
+ pCreateInfos = createInfos_.data();
+ return *this;
+ }
+# endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
+
+ ImageConstraintsInfoFUCHSIA & setPFormatConstraints(
+ const VULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA * pFormatConstraints_ ) VULKAN_HPP_NOEXCEPT
+ {
+ pFormatConstraints = pFormatConstraints_;
+ return *this;
+ }
+
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+ ImageConstraintsInfoFUCHSIA & setFormatConstraints(
+ VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<
+ const VULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA> const & formatConstraints_ ) VULKAN_HPP_NOEXCEPT
+ {
+ createInfoCount = static_cast<uint32_t>( formatConstraints_.size() );
+ pFormatConstraints = formatConstraints_.data();
+ return *this;
+ }
+# endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
+
+ ImageConstraintsInfoFUCHSIA & setMinBufferCount( uint32_t minBufferCount_ ) VULKAN_HPP_NOEXCEPT
+ {
+ minBufferCount = minBufferCount_;
+ return *this;
+ }
+
+ ImageConstraintsInfoFUCHSIA & setMaxBufferCount( uint32_t maxBufferCount_ ) VULKAN_HPP_NOEXCEPT
+ {
+ maxBufferCount = maxBufferCount_;
+ return *this;
+ }
+
+ ImageConstraintsInfoFUCHSIA & setMinBufferCountForCamping( uint32_t minBufferCountForCamping_ ) VULKAN_HPP_NOEXCEPT
+ {
+ minBufferCountForCamping = minBufferCountForCamping_;
+ return *this;
+ }
+
+ ImageConstraintsInfoFUCHSIA &
+ setMinBufferCountForDedicatedSlack( uint32_t minBufferCountForDedicatedSlack_ ) VULKAN_HPP_NOEXCEPT
+ {
+ minBufferCountForDedicatedSlack = minBufferCountForDedicatedSlack_;
+ return *this;
+ }
+
+ ImageConstraintsInfoFUCHSIA &
+ setMinBufferCountForSharedSlack( uint32_t minBufferCountForSharedSlack_ ) VULKAN_HPP_NOEXCEPT
+ {
+ minBufferCountForSharedSlack = minBufferCountForSharedSlack_;
+ return *this;
+ }
+
+ operator VkImageConstraintsInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<const VkImageConstraintsInfoFUCHSIA *>( this );
+ }
+
+ operator VkImageConstraintsInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<VkImageConstraintsInfoFUCHSIA *>( this );
+ }
+
+# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+ auto operator<=>( ImageConstraintsInfoFUCHSIA const & ) const = default;
+# else
+ bool operator==( ImageConstraintsInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( createInfoCount == rhs.createInfoCount ) &&
+ ( pCreateInfos == rhs.pCreateInfos ) && ( pFormatConstraints == rhs.pFormatConstraints ) &&
+ ( minBufferCount == rhs.minBufferCount ) && ( maxBufferCount == rhs.maxBufferCount ) &&
+ ( minBufferCountForCamping == rhs.minBufferCountForCamping ) &&
+ ( minBufferCountForDedicatedSlack == rhs.minBufferCountForDedicatedSlack ) &&
+ ( minBufferCountForSharedSlack == rhs.minBufferCountForSharedSlack );
+ }
+
+ bool operator!=( ImageConstraintsInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return !operator==( rhs );
+ }
+# endif
+
+ public:
+ const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageConstraintsInfoFUCHSIA;
+ const void * pNext = {};
+ uint32_t createInfoCount = {};
+ const VULKAN_HPP_NAMESPACE::ImageCreateInfo * pCreateInfos = {};
+ const VULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA * pFormatConstraints = {};
+ uint32_t minBufferCount = {};
+ uint32_t maxBufferCount = {};
+ uint32_t minBufferCountForCamping = {};
+ uint32_t minBufferCountForDedicatedSlack = {};
+ uint32_t minBufferCountForSharedSlack = {};
+ };
+ static_assert( sizeof( ImageConstraintsInfoFUCHSIA ) == sizeof( VkImageConstraintsInfoFUCHSIA ),
+ "struct and wrapper have different size!" );
+ static_assert( std::is_standard_layout<ImageConstraintsInfoFUCHSIA>::value,
+ "struct wrapper is not a standard layout!" );
+
+ template <>
+ struct CppType<StructureType, StructureType::eImageConstraintsInfoFUCHSIA>
+ {
+ using Type = ImageConstraintsInfoFUCHSIA;
+ };
+#endif /*VK_USE_PLATFORM_FUCHSIA*/
+
struct XYColorEXT
{
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
@@ -53388,6 +54120,21 @@
#ifdef VK_USE_PLATFORM_FUCHSIA
template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+ VULKAN_HPP_NODISCARD Result getBufferCollectionProperties2FUCHSIA(
+ VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection,
+ VULKAN_HPP_NAMESPACE::BufferCollectionProperties2FUCHSIA * pProperties,
+ Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+ template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+ VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS
+ typename ResultValueType<VULKAN_HPP_NAMESPACE::BufferCollectionProperties2FUCHSIA>::type
+ getBufferCollectionProperties2FUCHSIA( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection,
+ Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VK_USE_PLATFORM_FUCHSIA*/
+
+#ifdef VK_USE_PLATFORM_FUCHSIA
+ template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
VULKAN_HPP_NODISCARD Result getBufferCollectionPropertiesFUCHSIA(
VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection,
VULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA * pProperties,
@@ -54840,6 +55587,21 @@
# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
#endif /*VK_USE_PLATFORM_FUCHSIA*/
+#ifdef VK_USE_PLATFORM_FUCHSIA
+ template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+ VULKAN_HPP_NODISCARD Result setBufferCollectionImageConstraintsFUCHSIA(
+ VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection,
+ const VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFUCHSIA * pImageConstraintsInfo,
+ Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+ template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+ VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type
+ setBufferCollectionImageConstraintsFUCHSIA( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection,
+ const ImageConstraintsInfoFUCHSIA & imageConstraintsInfo,
+ Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VK_USE_PLATFORM_FUCHSIA*/
+
template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
VULKAN_HPP_NODISCARD Result setDebugUtilsObjectNameEXT(
const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT * pNameInfo,
@@ -95257,6 +96019,36 @@
#ifdef VK_USE_PLATFORM_FUCHSIA
template <typename Dispatch>
+ VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getBufferCollectionProperties2FUCHSIA(
+ VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection,
+ VULKAN_HPP_NAMESPACE::BufferCollectionProperties2FUCHSIA * pProperties,
+ Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
+ {
+ return static_cast<Result>( d.vkGetBufferCollectionProperties2FUCHSIA(
+ m_device,
+ static_cast<VkBufferCollectionFUCHSIA>( collection ),
+ reinterpret_cast<VkBufferCollectionProperties2FUCHSIA *>( pProperties ) ) );
+ }
+# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+ template <typename Dispatch>
+ VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE
+ typename ResultValueType<VULKAN_HPP_NAMESPACE::BufferCollectionProperties2FUCHSIA>::type
+ Device::getBufferCollectionProperties2FUCHSIA( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection,
+ Dispatch const & d ) const
+ {
+ VULKAN_HPP_NAMESPACE::BufferCollectionProperties2FUCHSIA properties;
+ Result result = static_cast<Result>( d.vkGetBufferCollectionProperties2FUCHSIA(
+ m_device,
+ static_cast<VkBufferCollectionFUCHSIA>( collection ),
+ reinterpret_cast<VkBufferCollectionProperties2FUCHSIA *>( &properties ) ) );
+ return createResultValue(
+ result, properties, VULKAN_HPP_NAMESPACE_STRING "::Device::getBufferCollectionProperties2FUCHSIA" );
+ }
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VK_USE_PLATFORM_FUCHSIA*/
+
+#ifdef VK_USE_PLATFORM_FUCHSIA
+ template <typename Dispatch>
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
Device::getBufferCollectionPropertiesFUCHSIA( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection,
VULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA * pProperties,
@@ -98403,6 +99195,35 @@
# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
#endif /*VK_USE_PLATFORM_FUCHSIA*/
+#ifdef VK_USE_PLATFORM_FUCHSIA
+ template <typename Dispatch>
+ VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::setBufferCollectionImageConstraintsFUCHSIA(
+ VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection,
+ const VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFUCHSIA * pImageConstraintsInfo,
+ Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
+ {
+ return static_cast<Result>( d.vkSetBufferCollectionImageConstraintsFUCHSIA(
+ m_device,
+ static_cast<VkBufferCollectionFUCHSIA>( collection ),
+ reinterpret_cast<const VkImageConstraintsInfoFUCHSIA *>( pImageConstraintsInfo ) ) );
+ }
+# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+ template <typename Dispatch>
+ VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
+ Device::setBufferCollectionImageConstraintsFUCHSIA( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection,
+ const ImageConstraintsInfoFUCHSIA & imageConstraintsInfo,
+ Dispatch const & d ) const
+ {
+ Result result = static_cast<Result>( d.vkSetBufferCollectionImageConstraintsFUCHSIA(
+ m_device,
+ static_cast<VkBufferCollectionFUCHSIA>( collection ),
+ reinterpret_cast<const VkImageConstraintsInfoFUCHSIA *>( &imageConstraintsInfo ) ) );
+ return createResultValue( result,
+ VULKAN_HPP_NAMESPACE_STRING "::Device::setBufferCollectionImageConstraintsFUCHSIA" );
+ }
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VK_USE_PLATFORM_FUCHSIA*/
+
template <typename Dispatch>
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::setDebugUtilsObjectNameEXT(
const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT * pNameInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
@@ -106266,6 +107087,9 @@
PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID = 0;
#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
#ifdef VK_USE_PLATFORM_FUCHSIA
+ PFN_vkGetBufferCollectionProperties2FUCHSIA vkGetBufferCollectionProperties2FUCHSIA = 0;
+#endif /*VK_USE_PLATFORM_FUCHSIA*/
+#ifdef VK_USE_PLATFORM_FUCHSIA
PFN_vkGetBufferCollectionPropertiesFUCHSIA vkGetBufferCollectionPropertiesFUCHSIA = 0;
#endif /*VK_USE_PLATFORM_FUCHSIA*/
PFN_vkGetBufferDeviceAddressEXT vkGetBufferDeviceAddressEXT = 0;
@@ -106486,6 +107310,9 @@
#ifdef VK_USE_PLATFORM_FUCHSIA
PFN_vkSetBufferCollectionConstraintsFUCHSIA vkSetBufferCollectionConstraintsFUCHSIA = 0;
#endif /*VK_USE_PLATFORM_FUCHSIA*/
+#ifdef VK_USE_PLATFORM_FUCHSIA
+ PFN_vkSetBufferCollectionImageConstraintsFUCHSIA vkSetBufferCollectionImageConstraintsFUCHSIA = 0;
+#endif /*VK_USE_PLATFORM_FUCHSIA*/
PFN_vkSetDebugUtilsObjectNameEXT vkSetDebugUtilsObjectNameEXT = 0;
PFN_vkSetDebugUtilsObjectTagEXT vkSetDebugUtilsObjectTagEXT = 0;
PFN_vkSetEvent vkSetEvent = 0;
@@ -107237,6 +108064,10 @@
vkGetInstanceProcAddr( instance, "vkGetAndroidHardwareBufferPropertiesANDROID" ) );
#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
#ifdef VK_USE_PLATFORM_FUCHSIA
+ vkGetBufferCollectionProperties2FUCHSIA = PFN_vkGetBufferCollectionProperties2FUCHSIA(
+ vkGetInstanceProcAddr( instance, "vkGetBufferCollectionProperties2FUCHSIA" ) );
+#endif /*VK_USE_PLATFORM_FUCHSIA*/
+#ifdef VK_USE_PLATFORM_FUCHSIA
vkGetBufferCollectionPropertiesFUCHSIA = PFN_vkGetBufferCollectionPropertiesFUCHSIA(
vkGetInstanceProcAddr( instance, "vkGetBufferCollectionPropertiesFUCHSIA" ) );
#endif /*VK_USE_PLATFORM_FUCHSIA*/
@@ -107488,6 +108319,10 @@
vkSetBufferCollectionConstraintsFUCHSIA = PFN_vkSetBufferCollectionConstraintsFUCHSIA(
vkGetInstanceProcAddr( instance, "vkSetBufferCollectionConstraintsFUCHSIA" ) );
#endif /*VK_USE_PLATFORM_FUCHSIA*/
+#ifdef VK_USE_PLATFORM_FUCHSIA
+ vkSetBufferCollectionImageConstraintsFUCHSIA = PFN_vkSetBufferCollectionImageConstraintsFUCHSIA(
+ vkGetInstanceProcAddr( instance, "vkSetBufferCollectionImageConstraintsFUCHSIA" ) );
+#endif /*VK_USE_PLATFORM_FUCHSIA*/
vkSetDebugUtilsObjectNameEXT =
PFN_vkSetDebugUtilsObjectNameEXT( vkGetInstanceProcAddr( instance, "vkSetDebugUtilsObjectNameEXT" ) );
vkSetDebugUtilsObjectTagEXT =
@@ -107926,6 +108761,10 @@
vkGetDeviceProcAddr( device, "vkGetAndroidHardwareBufferPropertiesANDROID" ) );
#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
#ifdef VK_USE_PLATFORM_FUCHSIA
+ vkGetBufferCollectionProperties2FUCHSIA = PFN_vkGetBufferCollectionProperties2FUCHSIA(
+ vkGetDeviceProcAddr( device, "vkGetBufferCollectionProperties2FUCHSIA" ) );
+#endif /*VK_USE_PLATFORM_FUCHSIA*/
+#ifdef VK_USE_PLATFORM_FUCHSIA
vkGetBufferCollectionPropertiesFUCHSIA = PFN_vkGetBufferCollectionPropertiesFUCHSIA(
vkGetDeviceProcAddr( device, "vkGetBufferCollectionPropertiesFUCHSIA" ) );
#endif /*VK_USE_PLATFORM_FUCHSIA*/
@@ -108172,6 +109011,10 @@
vkSetBufferCollectionConstraintsFUCHSIA = PFN_vkSetBufferCollectionConstraintsFUCHSIA(
vkGetDeviceProcAddr( device, "vkSetBufferCollectionConstraintsFUCHSIA" ) );
#endif /*VK_USE_PLATFORM_FUCHSIA*/
+#ifdef VK_USE_PLATFORM_FUCHSIA
+ vkSetBufferCollectionImageConstraintsFUCHSIA = PFN_vkSetBufferCollectionImageConstraintsFUCHSIA(
+ vkGetDeviceProcAddr( device, "vkSetBufferCollectionImageConstraintsFUCHSIA" ) );
+#endif /*VK_USE_PLATFORM_FUCHSIA*/
vkSetDebugUtilsObjectNameEXT =
PFN_vkSetDebugUtilsObjectNameEXT( vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectNameEXT" ) );
vkSetDebugUtilsObjectTagEXT =
diff --git a/include/vulkan/vulkan_core.h b/include/vulkan/vulkan_core.h
index e135790..3f76541 100644
--- a/include/vulkan/vulkan_core.h
+++ b/include/vulkan/vulkan_core.h
@@ -604,6 +604,10 @@
VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA = 1001004006,
VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA = 1001004007,
VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA = 1001004008,
+ VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA = 1001004009,
+ VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA = 1001004010,
+ VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES2_FUCHSIA = 1001004011,
+ VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA = 1001004012,
VK_STRUCTURE_TYPE_TEMP_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA = 1001005000,
VK_STRUCTURE_TYPE_TEMP_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA = 1001005001,
VK_STRUCTURE_TYPE_TEMP_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1001005002,
diff --git a/include/vulkan/vulkan_fuchsia.h b/include/vulkan/vulkan_fuchsia.h
index a102c31..91e9f12 100644
--- a/include/vulkan/vulkan_fuchsia.h
+++ b/include/vulkan/vulkan_fuchsia.h
@@ -55,6 +55,16 @@
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferCollectionFUCHSIA)
#define VK_FUCHSIA_BUFFER_COLLECTION_SPEC_VERSION 1
#define VK_FUCHSIA_BUFFER_COLLECTION_EXTENSION_NAME "VK_FUCHSIA_buffer_collection"
+
+typedef enum VkImageFormatConstraintsFlagBitsFUCHSIA {
+ VK_IMAGE_FORMAT_CONSTRAINTS_CPU_READ_RARELY_FUCHSIA = 0x00000001,
+ VK_IMAGE_FORMAT_CONSTRAINTS_CPU_READ_OFTEN_FUCHSIA = 0x00000002,
+ VK_IMAGE_FORMAT_CONSTRAINTS_CPU_WRITE_RARELY_FUCHSIA = 0x00000004,
+ VK_IMAGE_FORMAT_CONSTRAINTS_CPU_WRITE_OFTEN_FUCHSIA = 0x00000008,
+ VK_IMAGE_FORMAT_CONSTRAINTS_PROTECTED_OPTIONAL_FUCHSIA = 0x00000010,
+ VK_IMAGE_FORMAT_CONSTRAINTS_FLAG_BITS_MAX_ENUM_FUCHSIA = 0x7FFFFFFF
+} VkImageFormatConstraintsFlagBitsFUCHSIA;
+typedef VkFlags VkImageFormatConstraintsFlagsFUCHSIA;
typedef struct VkBufferCollectionCreateInfoFUCHSIA {
VkStructureType sType;
const void* pNext;
@@ -104,11 +114,58 @@
uint32_t count;
} VkBufferCollectionPropertiesFUCHSIA;
+typedef struct VkSysmemColorSpaceFUCHSIA {
+ VkStructureType sType;
+ const void* pNext;
+ uint32_t colorSpace;
+} VkSysmemColorSpaceFUCHSIA;
+
+typedef struct VkBufferCollectionProperties2FUCHSIA {
+ VkStructureType sType;
+ void* pNext;
+ uint32_t memoryTypeBits;
+ uint32_t bufferCount;
+ uint32_t createInfoIndex;
+ uint64_t sysmemFormat;
+ VkFormatFeatureFlags formatFeatures;
+ VkSysmemColorSpaceFUCHSIA colorSpace;
+ VkComponentMapping samplerYcbcrConversionComponents;
+ VkSamplerYcbcrModelConversion suggestedYcbcrModel;
+ VkSamplerYcbcrRange suggestedYcbcrRange;
+ VkChromaLocation suggestedXChromaOffset;
+ VkChromaLocation suggestedYChromaOffset;
+} VkBufferCollectionProperties2FUCHSIA;
+
+typedef struct VkImageFormatConstraintsInfoFUCHSIA {
+ VkStructureType sType;
+ const void* pNext;
+ VkFormatFeatureFlags requiredFormatFeatures;
+ VkImageFormatConstraintsFlagsFUCHSIA flags;
+ uint64_t sysmemFormat;
+ uint32_t colorSpaceCount;
+ const VkSysmemColorSpaceFUCHSIA* pColorSpaces;
+} VkImageFormatConstraintsInfoFUCHSIA;
+
+typedef struct VkImageConstraintsInfoFUCHSIA {
+ VkStructureType sType;
+ const void* pNext;
+ uint32_t createInfoCount;
+ const VkImageCreateInfo* pCreateInfos;
+ const VkImageFormatConstraintsInfoFUCHSIA* pFormatConstraints;
+ uint32_t minBufferCount;
+ uint32_t maxBufferCount;
+ uint32_t minBufferCountForCamping;
+ uint32_t minBufferCountForDedicatedSlack;
+ uint32_t minBufferCountForSharedSlack;
+} VkImageConstraintsInfoFUCHSIA;
+
typedef VkResult (VKAPI_PTR *PFN_vkCreateBufferCollectionFUCHSIA)(VkDevice device, const VkBufferCollectionCreateInfoFUCHSIA* pImportInfo, const VkAllocationCallbacks* pAllocator, VkBufferCollectionFUCHSIA* pCollection);
typedef VkResult (VKAPI_PTR *PFN_vkSetBufferCollectionConstraintsFUCHSIA)(VkDevice device, VkBufferCollectionFUCHSIA collection, const VkImageCreateInfo* pImageInfo);
+typedef VkResult (VKAPI_PTR *PFN_vkSetBufferCollectionImageConstraintsFUCHSIA)(VkDevice device, VkBufferCollectionFUCHSIA collection, const VkImageConstraintsInfoFUCHSIA* pImageConstraintsInfo);
typedef VkResult (VKAPI_PTR *PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA)(VkDevice device, VkBufferCollectionFUCHSIA collection, const VkBufferConstraintsInfoFUCHSIA* pBufferConstraintsInfo);
typedef void (VKAPI_PTR *PFN_vkDestroyBufferCollectionFUCHSIA)(VkDevice device, VkBufferCollectionFUCHSIA collection, const VkAllocationCallbacks* pAllocator);
typedef VkResult (VKAPI_PTR *PFN_vkGetBufferCollectionPropertiesFUCHSIA)(VkDevice device, VkBufferCollectionFUCHSIA collection, VkBufferCollectionPropertiesFUCHSIA* pProperties);
+typedef VkResult (VKAPI_PTR *PFN_vkGetBufferCollectionProperties2FUCHSIA)(VkDevice device, VkBufferCollectionFUCHSIA collection, VkBufferCollectionProperties2FUCHSIA* pProperties);
#ifndef VK_NO_PROTOTYPES
VKAPI_ATTR VkResult VKAPI_CALL vkCreateBufferCollectionFUCHSIA(
@@ -122,6 +179,11 @@
VkBufferCollectionFUCHSIA collection,
const VkImageCreateInfo* pImageInfo);
+VKAPI_ATTR VkResult VKAPI_CALL vkSetBufferCollectionImageConstraintsFUCHSIA(
+ VkDevice device,
+ VkBufferCollectionFUCHSIA collection,
+ const VkImageConstraintsInfoFUCHSIA* pImageConstraintsInfo);
+
VKAPI_ATTR VkResult VKAPI_CALL vkSetBufferCollectionBufferConstraintsFUCHSIA(
VkDevice device,
VkBufferCollectionFUCHSIA collection,
@@ -136,6 +198,11 @@
VkDevice device,
VkBufferCollectionFUCHSIA collection,
VkBufferCollectionPropertiesFUCHSIA* pProperties);
+
+VKAPI_ATTR VkResult VKAPI_CALL vkGetBufferCollectionProperties2FUCHSIA(
+ VkDevice device,
+ VkBufferCollectionFUCHSIA collection,
+ VkBufferCollectionProperties2FUCHSIA* pProperties);
#endif
diff --git a/registry/vk.xml b/registry/vk.xml
index b85ddd4..cd6d595 100644
--- a/registry/vk.xml
+++ b/registry/vk.xml
@@ -351,6 +351,7 @@
<type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineRasterizationDepthClipStateCreateFlagsEXT</name>;</type>
<type requires="VkSwapchainImageUsageFlagBitsANDROID" category="bitmask">typedef <type>VkFlags</type> <name>VkSwapchainImageUsageFlagsANDROID</name>;</type>
<type requires="VkToolPurposeFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkToolPurposeFlagsEXT</name>;</type>
+ <type requires="VkImageFormatConstraintsFlagBitsFUCHSIA" category="bitmask">typedef <type>VkFlags</type> <name>VkImageFormatConstraintsFlagsFUCHSIA</name>;</type>
<comment>Types which can be void pointers or class pointers, selected at compile time</comment>
<type category="handle"><type>VK_DEFINE_HANDLE</type>(<name>VkInstance</name>)</type>
@@ -552,6 +553,7 @@
<type name="VkPipelineCompilerControlFlagBitsAMD" category="enum"/>
<type name="VkShaderCorePropertiesFlagBitsAMD" category="enum"/>
<type name="VkToolPurposeFlagBitsEXT" category="enum"/>
+ <type name="VkImageFormatConstraintsFlagBitsFUCHSIA" category="enum"/>
<comment>WSI extensions</comment>
<type name="VkColorSpaceKHR" category="enum"/>
@@ -2251,13 +2253,54 @@
<member><type>uint32_t</type> <name>memoryTypeBits</name></member>
<member><type>uint32_t</type> <name>count</name></member>
</type>
+ <type category="struct" name="VkBufferCollectionProperties2FUCHSIA">
+ <member values="VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES2_FUCHSIA"><type>VkStructureType</type> <name>sType</name></member>
+ <member><type>void</type>* <name>pNext</name></member>
+ <member><type>uint32_t</type> <name>memoryTypeBits</name></member>
+ <member><type>uint32_t</type> <name>bufferCount</name></member>
+ <member><type>uint32_t</type> <name>createInfoIndex</name></member>
+ <member><type>uint64_t</type> <name>sysmemFormat</name></member>
+ <member><type>VkFormatFeatureFlags</type> <name>formatFeatures</name></member>
+ <member><type>VkSysmemColorSpaceFUCHSIA</type> <name>colorSpace</name></member>
+ <member><type>VkComponentMapping</type> <name>samplerYcbcrConversionComponents</name></member>
+ <member><type>VkSamplerYcbcrModelConversion</type> <name>suggestedYcbcrModel</name></member>
+ <member><type>VkSamplerYcbcrRange</type> <name>suggestedYcbcrRange</name></member>
+ <member><type>VkChromaLocation</type> <name>suggestedXChromaOffset</name></member>
+ <member><type>VkChromaLocation</type> <name>suggestedYChromaOffset</name></member>
+ </type>
<type category="struct" name="VkBufferConstraintsInfoFUCHSIA">
<member values="VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA"><type>VkStructureType</type> <name>sType</name></member>
<member>const <type>void</type>* <name>pNext</name></member>
<member>const <type>VkBufferCreateInfo</type>* <name>pBufferCreateInfo</name></member>
- <member><type>VkFormatFeatureFlags</type> <name>requiredFormatFeatures</name></member>
+ <member optional="true"><type>VkFormatFeatureFlags</type> <name>requiredFormatFeatures</name></member>
<member><type>uint32_t</type> <name>minCount</name></member>
</type>
+ <type category="struct" name="VkSysmemColorSpaceFUCHSIA">
+ <member values="VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA"><type>VkStructureType</type> <name>sType</name></member>
+ <member>const <type>void</type>* <name>pNext</name></member>
+ <member><type>uint32_t</type> <name>colorSpace</name></member>
+ </type>
+ <type category="struct" name="VkImageFormatConstraintsInfoFUCHSIA">
+ <member values="VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA"><type>VkStructureType</type> <name>sType</name></member>
+ <member>const <type>void</type>* <name>pNext</name></member>
+ <member optional="true"><type>VkFormatFeatureFlags</type> <name>requiredFormatFeatures</name></member>
+ <member optional="true"><type>VkImageFormatConstraintsFlagsFUCHSIA</type> <name>flags</name></member>
+ <member><type>uint64_t</type> <name>sysmemFormat</name></member>
+ <member><type>uint32_t</type> <name>colorSpaceCount</name></member>
+ <member optional="true">const <type>VkSysmemColorSpaceFUCHSIA</type>* <name>pColorSpaces</name></member>
+ </type>
+ <type category="struct" name="VkImageConstraintsInfoFUCHSIA">
+ <member values="VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA"><type>VkStructureType</type> <name>sType</name></member>
+ <member>const <type>void</type>* <name>pNext</name></member>
+ <member><type>uint32_t</type> <name>createInfoCount</name></member>
+ <member len="createInfoCount">const <type>VkImageCreateInfo</type>* <name>pCreateInfos</name></member>
+ <member len="createInfoCount" optional="true">const <type>VkImageFormatConstraintsInfoFUCHSIA</type>* <name>pFormatConstraints</name></member>
+ <member><type>uint32_t</type> <name>minBufferCount</name></member>
+ <member><type>uint32_t</type> <name>maxBufferCount</name></member>
+ <member><type>uint32_t</type> <name>minBufferCountForCamping</name></member>
+ <member><type>uint32_t</type> <name>minBufferCountForDedicatedSlack</name></member>
+ <member><type>uint32_t</type> <name>minBufferCountForSharedSlack</name></member>
+ </type>
<type category="struct" name="VkMemoryWin32HandlePropertiesKHR" returnedonly="true">
<member values="VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR"><type>VkStructureType</type> <name>sType</name></member>
<member><type>void</type>* <name>pNext</name></member>
@@ -6210,6 +6253,13 @@
<enum bitpos="3" name="VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT"/>
<enum bitpos="4" name="VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT"/>
</enums>
+ <enums name="VkImageFormatConstraintsFlagBitsFUCHSIA" type="bitmask">
+ <enum bitpos="0" name="VK_IMAGE_FORMAT_CONSTRAINTS_CPU_READ_RARELY_FUCHSIA"/>
+ <enum bitpos="1" name="VK_IMAGE_FORMAT_CONSTRAINTS_CPU_READ_OFTEN_FUCHSIA"/>
+ <enum bitpos="2" name="VK_IMAGE_FORMAT_CONSTRAINTS_CPU_WRITE_RARELY_FUCHSIA"/>
+ <enum bitpos="3" name="VK_IMAGE_FORMAT_CONSTRAINTS_CPU_WRITE_OFTEN_FUCHSIA"/>
+ <enum bitpos="4" name="VK_IMAGE_FORMAT_CONSTRAINTS_PROTECTED_OPTIONAL_FUCHSIA"/>
+ </enums>
<commands comment="Vulkan command definitions">
<command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_LAYER_NOT_PRESENT,VK_ERROR_EXTENSION_NOT_PRESENT,VK_ERROR_INCOMPATIBLE_DRIVER">
@@ -7395,6 +7445,12 @@
<param><type>VkBufferCollectionFUCHSIA</type> <name>collection</name></param>
<param>const <type>VkBufferConstraintsInfoFUCHSIA</type>* <name>pBufferConstraintsInfo</name></param>
</command>
+ <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
+ <proto><type>VkResult</type> <name>vkSetBufferCollectionImageConstraintsFUCHSIA</name></proto>
+ <param><type>VkDevice</type> <name>device</name></param>
+ <param><type>VkBufferCollectionFUCHSIA</type> <name>collection</name></param>
+ <param>const <type>VkImageConstraintsInfoFUCHSIA</type>* <name>pImageConstraintsInfo</name></param>
+ </command>
<command>
<proto><type>void</type> <name>vkDestroyBufferCollectionFUCHSIA</name></proto>
<param><type>VkDevice</type> <name>device</name></param>
@@ -7407,6 +7463,12 @@
<param><type>VkBufferCollectionFUCHSIA</type> <name>collection</name></param>
<param><type>VkBufferCollectionPropertiesFUCHSIA</type>* <name>pProperties</name></param>
</command>
+ <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
+ <proto><type>VkResult</type> <name>vkGetBufferCollectionProperties2FUCHSIA</name></proto>
+ <param><type>VkDevice</type> <name>device</name></param>
+ <param><type>VkBufferCollectionFUCHSIA</type> <name>collection</name></param>
+ <param><type>VkBufferCollectionProperties2FUCHSIA</type>* <name>pProperties</name></param>
+ </command>
<command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_NATIVE_WINDOW_IN_USE_KHR">
<proto><type>VkResult</type> <name>vkCreateStreamDescriptorSurfaceGGP</name></proto>
<param><type>VkInstance</type> <name>instance</name></param>
@@ -13243,7 +13305,7 @@
<enum value=""VK_AMD_extension_323"" name="VK_AMD_EXTENSION_323_EXTENSION_NAME"/>
</require>
</extension>
- <extension name="VK_FUCHSIA_buffer_collection" number="1005" type="device" requires="VK_FUCHSIA_external_memory" author="FUCHSIA" contact="John Bauman @jbauman" supported="vulkan" platform="fuchsia">
+ <extension name="VK_FUCHSIA_buffer_collection" number="1005" type="device" requires="VK_FUCHSIA_external_memory,VK_KHR_sampler_ycbcr_conversion" author="FUCHSIA" contact="John Bauman @jbauman" supported="vulkan" platform="fuchsia">
<require>
<enum value="1" name="VK_FUCHSIA_BUFFER_COLLECTION_SPEC_VERSION"/>
<enum value=""VK_FUCHSIA_buffer_collection"" name="VK_FUCHSIA_BUFFER_COLLECTION_EXTENSION_NAME"/>
@@ -13256,6 +13318,10 @@
<enum offset="6" extends="VkStructureType" name="VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA"/>
<enum offset="7" extends="VkStructureType" name="VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA"/>
<enum offset="8" extends="VkStructureType" name="VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA"/>
+ <enum offset="9" extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA"/>
+ <enum offset="10" extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA"/>
+ <enum offset="11" extends="VkStructureType" name="VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES2_FUCHSIA"/>
+ <enum offset="12" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA"/>
<type name="VkBufferCollectionFUCHSIA"/>
<type name="VkBufferCollectionCreateInfoFUCHSIA"/>
<type name="VkFuchsiaImageFormatFUCHSIA"/>
@@ -13264,11 +13330,19 @@
<type name="VkBufferConstraintsInfoFUCHSIA"/>
<type name="VkBufferCollectionBufferCreateInfoFUCHSIA"/>
<type name="VkBufferCollectionPropertiesFUCHSIA"/>
+ <type name="VkBufferCollectionProperties2FUCHSIA"/>
+ <type name="VkImageFormatConstraintsFlagBitsFUCHSIA"/>
+ <type name="VkImageFormatConstraintsFlagsFUCHSIA"/>
+ <type name="VkSysmemColorSpaceFUCHSIA"/>
+ <type name="VkImageConstraintsInfoFUCHSIA"/>
+ <type name="VkImageFormatConstraintsInfoFUCHSIA"/>
<command name="vkCreateBufferCollectionFUCHSIA"/>
<command name="vkSetBufferCollectionConstraintsFUCHSIA"/>
+ <command name="vkSetBufferCollectionImageConstraintsFUCHSIA"/>
<command name="vkSetBufferCollectionBufferConstraintsFUCHSIA"/>
<command name="vkDestroyBufferCollectionFUCHSIA"/>
<command name="vkGetBufferCollectionPropertiesFUCHSIA"/>
+ <command name="vkGetBufferCollectionProperties2FUCHSIA"/>
</require>
</extension>
<extension name="VK_FUCHSIA_external_memory" number="1006" type="device" requires="VK_KHR_external_memory_capabilities,VK_KHR_external_memory" author="FUCHSIA" contact="Craig Stout @cdotstout" supported="vulkan" platform="fuchsia">