aboutsummaryrefslogtreecommitdiff
path: root/include/vulkan
diff options
context:
space:
mode:
Diffstat (limited to 'include/vulkan')
-rw-r--r--include/vulkan/vulkan.hpp557
-rw-r--r--include/vulkan/vulkan_android.h66
-rw-r--r--include/vulkan/vulkan_core.h11
3 files changed, 553 insertions, 81 deletions
diff --git a/include/vulkan/vulkan.hpp b/include/vulkan/vulkan.hpp
index a71b08b4..aa796cf4 100644
--- a/include/vulkan/vulkan.hpp
+++ b/include/vulkan/vulkan.hpp
@@ -36,7 +36,7 @@
# include <cassert>
# define VULKAN_HPP_ASSERT assert
#endif
-static_assert( VK_HEADER_VERSION == 70 , "Wrong VK_HEADER_VERSION!" );
+static_assert( VK_HEADER_VERSION == 71 , "Wrong VK_HEADER_VERSION!" );
// 32-bit vulkan is not typesafe for handles, so don't allow copy constructors on this platform by default.
// To enable this feature on 32-bit platforms please define VULKAN_HPP_TYPESAFE_CONVERSION
@@ -85,6 +85,12 @@ static_assert( VK_HEADER_VERSION == 70 , "Wrong VK_HEADER_VERSION!" );
# define VULKAN_HPP_TYPESAFE_EXPLICIT explicit
#endif
+#if defined(_MSC_VER) && (_MSC_VER <= 1800)
+# define VULKAN_HPP_CONSTEXPR
+#else
+# define VULKAN_HPP_CONSTEXPR constexpr
+#endif
+
#if !defined(VULKAN_HPP_NAMESPACE)
#define VULKAN_HPP_NAMESPACE vk
@@ -106,7 +112,7 @@ namespace VULKAN_HPP_NAMESPACE
class Flags
{
public:
- Flags()
+ VULKAN_HPP_CONSTEXPR Flags()
: m_mask(0)
{
}
@@ -247,7 +253,7 @@ namespace VULKAN_HPP_NAMESPACE
class ArrayProxy
{
public:
- ArrayProxy(std::nullptr_t)
+ VULKAN_HPP_CONSTEXPR ArrayProxy(std::nullptr_t)
: m_count(0)
, m_ptr(nullptr)
{}
@@ -1775,6 +1781,12 @@ public:
{
return ::vkFreeMemory( device, memory, pAllocator);
}
+#ifdef VK_USE_PLATFORM_ANDROID_ANDROID
+ VkResult vkGetAndroidHardwareBufferPropertiesANDROID( VkDevice device, const struct AHardwareBuffer* buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties ) const
+ {
+ return ::vkGetAndroidHardwareBufferPropertiesANDROID( device, buffer, pProperties);
+ }
+#endif /*VK_USE_PLATFORM_ANDROID_ANDROID*/
void vkGetBufferMemoryRequirements( VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements ) const
{
return ::vkGetBufferMemoryRequirements( device, buffer, pMemoryRequirements);
@@ -1889,6 +1901,12 @@ public:
{
return ::vkGetInstanceProcAddr( instance, pName);
}
+#ifdef VK_USE_PLATFORM_ANDROID_ANDROID
+ VkResult vkGetMemoryAndroidHardwareBufferANDROID( VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct AHardwareBuffer** pBuffer ) const
+ {
+ return ::vkGetMemoryAndroidHardwareBufferANDROID( device, pInfo, pBuffer);
+ }
+#endif /*VK_USE_PLATFORM_ANDROID_ANDROID*/
VkResult vkGetMemoryFdKHR( VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd ) const
{
return ::vkGetMemoryFdKHR( device, pGetFdInfo, pFd);
@@ -2643,11 +2661,11 @@ public:
class DeviceMemory
{
public:
- DeviceMemory()
+ VULKAN_HPP_CONSTEXPR DeviceMemory()
: m_deviceMemory(VK_NULL_HANDLE)
{}
- DeviceMemory( std::nullptr_t )
+ VULKAN_HPP_CONSTEXPR DeviceMemory( std::nullptr_t )
: m_deviceMemory(VK_NULL_HANDLE)
{}
@@ -2710,11 +2728,11 @@ public:
class CommandPool
{
public:
- CommandPool()
+ VULKAN_HPP_CONSTEXPR CommandPool()
: m_commandPool(VK_NULL_HANDLE)
{}
- CommandPool( std::nullptr_t )
+ VULKAN_HPP_CONSTEXPR CommandPool( std::nullptr_t )
: m_commandPool(VK_NULL_HANDLE)
{}
@@ -2777,11 +2795,11 @@ public:
class Buffer
{
public:
- Buffer()
+ VULKAN_HPP_CONSTEXPR Buffer()
: m_buffer(VK_NULL_HANDLE)
{}
- Buffer( std::nullptr_t )
+ VULKAN_HPP_CONSTEXPR Buffer( std::nullptr_t )
: m_buffer(VK_NULL_HANDLE)
{}
@@ -2844,11 +2862,11 @@ public:
class BufferView
{
public:
- BufferView()
+ VULKAN_HPP_CONSTEXPR BufferView()
: m_bufferView(VK_NULL_HANDLE)
{}
- BufferView( std::nullptr_t )
+ VULKAN_HPP_CONSTEXPR BufferView( std::nullptr_t )
: m_bufferView(VK_NULL_HANDLE)
{}
@@ -2911,11 +2929,11 @@ public:
class Image
{
public:
- Image()
+ VULKAN_HPP_CONSTEXPR Image()
: m_image(VK_NULL_HANDLE)
{}
- Image( std::nullptr_t )
+ VULKAN_HPP_CONSTEXPR Image( std::nullptr_t )
: m_image(VK_NULL_HANDLE)
{}
@@ -2978,11 +2996,11 @@ public:
class ImageView
{
public:
- ImageView()
+ VULKAN_HPP_CONSTEXPR ImageView()
: m_imageView(VK_NULL_HANDLE)
{}
- ImageView( std::nullptr_t )
+ VULKAN_HPP_CONSTEXPR ImageView( std::nullptr_t )
: m_imageView(VK_NULL_HANDLE)
{}
@@ -3045,11 +3063,11 @@ public:
class ShaderModule
{
public:
- ShaderModule()
+ VULKAN_HPP_CONSTEXPR ShaderModule()
: m_shaderModule(VK_NULL_HANDLE)
{}
- ShaderModule( std::nullptr_t )
+ VULKAN_HPP_CONSTEXPR ShaderModule( std::nullptr_t )
: m_shaderModule(VK_NULL_HANDLE)
{}
@@ -3112,11 +3130,11 @@ public:
class Pipeline
{
public:
- Pipeline()
+ VULKAN_HPP_CONSTEXPR Pipeline()
: m_pipeline(VK_NULL_HANDLE)
{}
- Pipeline( std::nullptr_t )
+ VULKAN_HPP_CONSTEXPR Pipeline( std::nullptr_t )
: m_pipeline(VK_NULL_HANDLE)
{}
@@ -3179,11 +3197,11 @@ public:
class PipelineLayout
{
public:
- PipelineLayout()
+ VULKAN_HPP_CONSTEXPR PipelineLayout()
: m_pipelineLayout(VK_NULL_HANDLE)
{}
- PipelineLayout( std::nullptr_t )
+ VULKAN_HPP_CONSTEXPR PipelineLayout( std::nullptr_t )
: m_pipelineLayout(VK_NULL_HANDLE)
{}
@@ -3246,11 +3264,11 @@ public:
class Sampler
{
public:
- Sampler()
+ VULKAN_HPP_CONSTEXPR Sampler()
: m_sampler(VK_NULL_HANDLE)
{}
- Sampler( std::nullptr_t )
+ VULKAN_HPP_CONSTEXPR Sampler( std::nullptr_t )
: m_sampler(VK_NULL_HANDLE)
{}
@@ -3313,11 +3331,11 @@ public:
class DescriptorSet
{
public:
- DescriptorSet()
+ VULKAN_HPP_CONSTEXPR DescriptorSet()
: m_descriptorSet(VK_NULL_HANDLE)
{}
- DescriptorSet( std::nullptr_t )
+ VULKAN_HPP_CONSTEXPR DescriptorSet( std::nullptr_t )
: m_descriptorSet(VK_NULL_HANDLE)
{}
@@ -3380,11 +3398,11 @@ public:
class DescriptorSetLayout
{
public:
- DescriptorSetLayout()
+ VULKAN_HPP_CONSTEXPR DescriptorSetLayout()
: m_descriptorSetLayout(VK_NULL_HANDLE)
{}
- DescriptorSetLayout( std::nullptr_t )
+ VULKAN_HPP_CONSTEXPR DescriptorSetLayout( std::nullptr_t )
: m_descriptorSetLayout(VK_NULL_HANDLE)
{}
@@ -3447,11 +3465,11 @@ public:
class DescriptorPool
{
public:
- DescriptorPool()
+ VULKAN_HPP_CONSTEXPR DescriptorPool()
: m_descriptorPool(VK_NULL_HANDLE)
{}
- DescriptorPool( std::nullptr_t )
+ VULKAN_HPP_CONSTEXPR DescriptorPool( std::nullptr_t )
: m_descriptorPool(VK_NULL_HANDLE)
{}
@@ -3514,11 +3532,11 @@ public:
class Fence
{
public:
- Fence()
+ VULKAN_HPP_CONSTEXPR Fence()
: m_fence(VK_NULL_HANDLE)
{}
- Fence( std::nullptr_t )
+ VULKAN_HPP_CONSTEXPR Fence( std::nullptr_t )
: m_fence(VK_NULL_HANDLE)
{}
@@ -3581,11 +3599,11 @@ public:
class Semaphore
{
public:
- Semaphore()
+ VULKAN_HPP_CONSTEXPR Semaphore()
: m_semaphore(VK_NULL_HANDLE)
{}
- Semaphore( std::nullptr_t )
+ VULKAN_HPP_CONSTEXPR Semaphore( std::nullptr_t )
: m_semaphore(VK_NULL_HANDLE)
{}
@@ -3648,11 +3666,11 @@ public:
class Event
{
public:
- Event()
+ VULKAN_HPP_CONSTEXPR Event()
: m_event(VK_NULL_HANDLE)
{}
- Event( std::nullptr_t )
+ VULKAN_HPP_CONSTEXPR Event( std::nullptr_t )
: m_event(VK_NULL_HANDLE)
{}
@@ -3715,11 +3733,11 @@ public:
class QueryPool
{
public:
- QueryPool()
+ VULKAN_HPP_CONSTEXPR QueryPool()
: m_queryPool(VK_NULL_HANDLE)
{}
- QueryPool( std::nullptr_t )
+ VULKAN_HPP_CONSTEXPR QueryPool( std::nullptr_t )
: m_queryPool(VK_NULL_HANDLE)
{}
@@ -3782,11 +3800,11 @@ public:
class Framebuffer
{
public:
- Framebuffer()
+ VULKAN_HPP_CONSTEXPR Framebuffer()
: m_framebuffer(VK_NULL_HANDLE)
{}
- Framebuffer( std::nullptr_t )
+ VULKAN_HPP_CONSTEXPR Framebuffer( std::nullptr_t )
: m_framebuffer(VK_NULL_HANDLE)
{}
@@ -3849,11 +3867,11 @@ public:
class RenderPass
{
public:
- RenderPass()
+ VULKAN_HPP_CONSTEXPR RenderPass()
: m_renderPass(VK_NULL_HANDLE)
{}
- RenderPass( std::nullptr_t )
+ VULKAN_HPP_CONSTEXPR RenderPass( std::nullptr_t )
: m_renderPass(VK_NULL_HANDLE)
{}
@@ -3916,11 +3934,11 @@ public:
class PipelineCache
{
public:
- PipelineCache()
+ VULKAN_HPP_CONSTEXPR PipelineCache()
: m_pipelineCache(VK_NULL_HANDLE)
{}
- PipelineCache( std::nullptr_t )
+ VULKAN_HPP_CONSTEXPR PipelineCache( std::nullptr_t )
: m_pipelineCache(VK_NULL_HANDLE)
{}
@@ -3983,11 +4001,11 @@ public:
class ObjectTableNVX
{
public:
- ObjectTableNVX()
+ VULKAN_HPP_CONSTEXPR ObjectTableNVX()
: m_objectTableNVX(VK_NULL_HANDLE)
{}
- ObjectTableNVX( std::nullptr_t )
+ VULKAN_HPP_CONSTEXPR ObjectTableNVX( std::nullptr_t )
: m_objectTableNVX(VK_NULL_HANDLE)
{}
@@ -4050,11 +4068,11 @@ public:
class IndirectCommandsLayoutNVX
{
public:
- IndirectCommandsLayoutNVX()
+ VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutNVX()
: m_indirectCommandsLayoutNVX(VK_NULL_HANDLE)
{}
- IndirectCommandsLayoutNVX( std::nullptr_t )
+ VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutNVX( std::nullptr_t )
: m_indirectCommandsLayoutNVX(VK_NULL_HANDLE)
{}
@@ -4117,11 +4135,11 @@ public:
class DescriptorUpdateTemplate
{
public:
- DescriptorUpdateTemplate()
+ VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplate()
: m_descriptorUpdateTemplate(VK_NULL_HANDLE)
{}
- DescriptorUpdateTemplate( std::nullptr_t )
+ VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplate( std::nullptr_t )
: m_descriptorUpdateTemplate(VK_NULL_HANDLE)
{}
@@ -4186,11 +4204,11 @@ public:
class SamplerYcbcrConversion
{
public:
- SamplerYcbcrConversion()
+ VULKAN_HPP_CONSTEXPR SamplerYcbcrConversion()
: m_samplerYcbcrConversion(VK_NULL_HANDLE)
{}
- SamplerYcbcrConversion( std::nullptr_t )
+ VULKAN_HPP_CONSTEXPR SamplerYcbcrConversion( std::nullptr_t )
: m_samplerYcbcrConversion(VK_NULL_HANDLE)
{}
@@ -4255,11 +4273,11 @@ public:
class ValidationCacheEXT
{
public:
- ValidationCacheEXT()
+ VULKAN_HPP_CONSTEXPR ValidationCacheEXT()
: m_validationCacheEXT(VK_NULL_HANDLE)
{}
- ValidationCacheEXT( std::nullptr_t )
+ VULKAN_HPP_CONSTEXPR ValidationCacheEXT( std::nullptr_t )
: m_validationCacheEXT(VK_NULL_HANDLE)
{}
@@ -4322,11 +4340,11 @@ public:
class DisplayKHR
{
public:
- DisplayKHR()
+ VULKAN_HPP_CONSTEXPR DisplayKHR()
: m_displayKHR(VK_NULL_HANDLE)
{}
- DisplayKHR( std::nullptr_t )
+ VULKAN_HPP_CONSTEXPR DisplayKHR( std::nullptr_t )
: m_displayKHR(VK_NULL_HANDLE)
{}
@@ -4389,11 +4407,11 @@ public:
class DisplayModeKHR
{
public:
- DisplayModeKHR()
+ VULKAN_HPP_CONSTEXPR DisplayModeKHR()
: m_displayModeKHR(VK_NULL_HANDLE)
{}
- DisplayModeKHR( std::nullptr_t )
+ VULKAN_HPP_CONSTEXPR DisplayModeKHR( std::nullptr_t )
: m_displayModeKHR(VK_NULL_HANDLE)
{}
@@ -4456,11 +4474,11 @@ public:
class SurfaceKHR
{
public:
- SurfaceKHR()
+ VULKAN_HPP_CONSTEXPR SurfaceKHR()
: m_surfaceKHR(VK_NULL_HANDLE)
{}
- SurfaceKHR( std::nullptr_t )
+ VULKAN_HPP_CONSTEXPR SurfaceKHR( std::nullptr_t )
: m_surfaceKHR(VK_NULL_HANDLE)
{}
@@ -4523,11 +4541,11 @@ public:
class SwapchainKHR
{
public:
- SwapchainKHR()
+ VULKAN_HPP_CONSTEXPR SwapchainKHR()
: m_swapchainKHR(VK_NULL_HANDLE)
{}
- SwapchainKHR( std::nullptr_t )
+ VULKAN_HPP_CONSTEXPR SwapchainKHR( std::nullptr_t )
: m_swapchainKHR(VK_NULL_HANDLE)
{}
@@ -4590,11 +4608,11 @@ public:
class DebugReportCallbackEXT
{
public:
- DebugReportCallbackEXT()
+ VULKAN_HPP_CONSTEXPR DebugReportCallbackEXT()
: m_debugReportCallbackEXT(VK_NULL_HANDLE)
{}
- DebugReportCallbackEXT( std::nullptr_t )
+ VULKAN_HPP_CONSTEXPR DebugReportCallbackEXT( std::nullptr_t )
: m_debugReportCallbackEXT(VK_NULL_HANDLE)
{}
@@ -4657,11 +4675,11 @@ public:
class DebugUtilsMessengerEXT
{
public:
- DebugUtilsMessengerEXT()
+ VULKAN_HPP_CONSTEXPR DebugUtilsMessengerEXT()
: m_debugUtilsMessengerEXT(VK_NULL_HANDLE)
{}
- DebugUtilsMessengerEXT( std::nullptr_t )
+ VULKAN_HPP_CONSTEXPR DebugUtilsMessengerEXT( std::nullptr_t )
: m_debugUtilsMessengerEXT(VK_NULL_HANDLE)
{}
@@ -8519,6 +8537,12 @@ public:
eDebugUtilsLabelEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT,
eDebugUtilsMessengerCallbackDataEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT,
eDebugUtilsMessengerCreateInfoEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT,
+ eAndroidHardwareBufferUsageANDROID = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID,
+ eAndroidHardwareBufferPropertiesANDROID = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID,
+ eAndroidHardwareBufferFormatPropertiesANDROID = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID,
+ eImportAndroidHardwareBufferInfoANDROID = VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID,
+ eMemoryGetAndroidHardwareBufferInfoANDROID = VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID,
+ eExternalFormatANDROID = VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID,
ePhysicalDeviceSamplerFilterMinmaxPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT,
eSamplerReductionModeCreateInfoEXT = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT,
eSampleLocationsInfoEXT = VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT,
@@ -15833,6 +15857,239 @@ public:
};
static_assert( sizeof( PhysicalDeviceVertexAttributeDivisorPropertiesEXT ) == sizeof( VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT ), "struct and wrapper have different size!" );
+#ifdef VK_USE_PLATFORM_ANDROID_ANDROID
+ struct ImportAndroidHardwareBufferInfoANDROID
+ {
+ ImportAndroidHardwareBufferInfoANDROID( struct AHardwareBuffer* buffer_ = nullptr )
+ : buffer( buffer_ )
+ {
+ }
+
+ ImportAndroidHardwareBufferInfoANDROID( VkImportAndroidHardwareBufferInfoANDROID const & rhs )
+ {
+ memcpy( this, &rhs, sizeof( ImportAndroidHardwareBufferInfoANDROID ) );
+ }
+
+ ImportAndroidHardwareBufferInfoANDROID& operator=( VkImportAndroidHardwareBufferInfoANDROID const & rhs )
+ {
+ memcpy( this, &rhs, sizeof( ImportAndroidHardwareBufferInfoANDROID ) );
+ return *this;
+ }
+ ImportAndroidHardwareBufferInfoANDROID& setPNext( const void* pNext_ )
+ {
+ pNext = pNext_;
+ return *this;
+ }
+
+ ImportAndroidHardwareBufferInfoANDROID& setBuffer( struct AHardwareBuffer* buffer_ )
+ {
+ buffer = buffer_;
+ return *this;
+ }
+
+ operator const VkImportAndroidHardwareBufferInfoANDROID&() const
+ {
+ return *reinterpret_cast<const VkImportAndroidHardwareBufferInfoANDROID*>(this);
+ }
+
+ bool operator==( ImportAndroidHardwareBufferInfoANDROID const& rhs ) const
+ {
+ return ( sType == rhs.sType )
+ && ( pNext == rhs.pNext )
+ && ( buffer == rhs.buffer );
+ }
+
+ bool operator!=( ImportAndroidHardwareBufferInfoANDROID const& rhs ) const
+ {
+ return !operator==( rhs );
+ }
+
+ private:
+ StructureType sType = StructureType::eImportAndroidHardwareBufferInfoANDROID;
+
+ public:
+ const void* pNext = nullptr;
+ struct AHardwareBuffer* buffer;
+ };
+ static_assert( sizeof( ImportAndroidHardwareBufferInfoANDROID ) == sizeof( VkImportAndroidHardwareBufferInfoANDROID ), "struct and wrapper have different size!" );
+#endif /*VK_USE_PLATFORM_ANDROID_ANDROID*/
+
+#ifdef VK_USE_PLATFORM_ANDROID_ANDROID
+ struct AndroidHardwareBufferUsageANDROID
+ {
+ operator const VkAndroidHardwareBufferUsageANDROID&() const
+ {
+ return *reinterpret_cast<const VkAndroidHardwareBufferUsageANDROID*>(this);
+ }
+
+ bool operator==( AndroidHardwareBufferUsageANDROID const& rhs ) const
+ {
+ return ( sType == rhs.sType )
+ && ( pNext == rhs.pNext )
+ && ( androidHardwareBufferUsage == rhs.androidHardwareBufferUsage );
+ }
+
+ bool operator!=( AndroidHardwareBufferUsageANDROID const& rhs ) const
+ {
+ return !operator==( rhs );
+ }
+
+ private:
+ StructureType sType = StructureType::eAndroidHardwareBufferUsageANDROID;
+
+ public:
+ void* pNext = nullptr;
+ uint64_t androidHardwareBufferUsage;
+ };
+ static_assert( sizeof( AndroidHardwareBufferUsageANDROID ) == sizeof( VkAndroidHardwareBufferUsageANDROID ), "struct and wrapper have different size!" );
+#endif /*VK_USE_PLATFORM_ANDROID_ANDROID*/
+
+#ifdef VK_USE_PLATFORM_ANDROID_ANDROID
+ struct AndroidHardwareBufferPropertiesANDROID
+ {
+ operator const VkAndroidHardwareBufferPropertiesANDROID&() const
+ {
+ return *reinterpret_cast<const VkAndroidHardwareBufferPropertiesANDROID*>(this);
+ }
+
+ bool operator==( AndroidHardwareBufferPropertiesANDROID const& rhs ) const
+ {
+ return ( sType == rhs.sType )
+ && ( pNext == rhs.pNext )
+ && ( allocationSize == rhs.allocationSize )
+ && ( memoryTypeBits == rhs.memoryTypeBits );
+ }
+
+ bool operator!=( AndroidHardwareBufferPropertiesANDROID const& rhs ) const
+ {
+ return !operator==( rhs );
+ }
+
+ private:
+ StructureType sType = StructureType::eAndroidHardwareBufferPropertiesANDROID;
+
+ public:
+ void* pNext = nullptr;
+ DeviceSize allocationSize;
+ uint32_t memoryTypeBits;
+ };
+ static_assert( sizeof( AndroidHardwareBufferPropertiesANDROID ) == sizeof( VkAndroidHardwareBufferPropertiesANDROID ), "struct and wrapper have different size!" );
+#endif /*VK_USE_PLATFORM_ANDROID_ANDROID*/
+
+#ifdef VK_USE_PLATFORM_ANDROID_ANDROID
+ struct MemoryGetAndroidHardwareBufferInfoANDROID
+ {
+ MemoryGetAndroidHardwareBufferInfoANDROID( DeviceMemory memory_ = DeviceMemory() )
+ : memory( memory_ )
+ {
+ }
+
+ MemoryGetAndroidHardwareBufferInfoANDROID( VkMemoryGetAndroidHardwareBufferInfoANDROID const & rhs )
+ {
+ memcpy( this, &rhs, sizeof( MemoryGetAndroidHardwareBufferInfoANDROID ) );
+ }
+
+ MemoryGetAndroidHardwareBufferInfoANDROID& operator=( VkMemoryGetAndroidHardwareBufferInfoANDROID const & rhs )
+ {
+ memcpy( this, &rhs, sizeof( MemoryGetAndroidHardwareBufferInfoANDROID ) );
+ return *this;
+ }
+ MemoryGetAndroidHardwareBufferInfoANDROID& setPNext( const void* pNext_ )
+ {
+ pNext = pNext_;
+ return *this;
+ }
+
+ MemoryGetAndroidHardwareBufferInfoANDROID& setMemory( DeviceMemory memory_ )
+ {
+ memory = memory_;
+ return *this;
+ }
+
+ operator const VkMemoryGetAndroidHardwareBufferInfoANDROID&() const
+ {
+ return *reinterpret_cast<const VkMemoryGetAndroidHardwareBufferInfoANDROID*>(this);
+ }
+
+ bool operator==( MemoryGetAndroidHardwareBufferInfoANDROID const& rhs ) const
+ {
+ return ( sType == rhs.sType )
+ && ( pNext == rhs.pNext )
+ && ( memory == rhs.memory );
+ }
+
+ bool operator!=( MemoryGetAndroidHardwareBufferInfoANDROID const& rhs ) const
+ {
+ return !operator==( rhs );
+ }
+
+ private:
+ StructureType sType = StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID;
+
+ public:
+ const void* pNext = nullptr;
+ DeviceMemory memory;
+ };
+ static_assert( sizeof( MemoryGetAndroidHardwareBufferInfoANDROID ) == sizeof( VkMemoryGetAndroidHardwareBufferInfoANDROID ), "struct and wrapper have different size!" );
+#endif /*VK_USE_PLATFORM_ANDROID_ANDROID*/
+
+#ifdef VK_USE_PLATFORM_ANDROID_ANDROID
+ struct ExternalFormatANDROID
+ {
+ ExternalFormatANDROID( uint64_t externalFormat_ = 0 )
+ : externalFormat( externalFormat_ )
+ {
+ }
+
+ ExternalFormatANDROID( VkExternalFormatANDROID const & rhs )
+ {
+ memcpy( this, &rhs, sizeof( ExternalFormatANDROID ) );
+ }
+
+ ExternalFormatANDROID& operator=( VkExternalFormatANDROID const & rhs )
+ {
+ memcpy( this, &rhs, sizeof( ExternalFormatANDROID ) );
+ return *this;
+ }
+ ExternalFormatANDROID& setPNext( void* pNext_ )
+ {
+ pNext = pNext_;
+ return *this;
+ }
+
+ ExternalFormatANDROID& setExternalFormat( uint64_t externalFormat_ )
+ {
+ externalFormat = externalFormat_;
+ return *this;
+ }
+
+ operator const VkExternalFormatANDROID&() const
+ {
+ return *reinterpret_cast<const VkExternalFormatANDROID*>(this);
+ }
+
+ bool operator==( ExternalFormatANDROID const& rhs ) const
+ {
+ return ( sType == rhs.sType )
+ && ( pNext == rhs.pNext )
+ && ( externalFormat == rhs.externalFormat );
+ }
+
+ bool operator!=( ExternalFormatANDROID const& rhs ) const
+ {
+ return !operator==( rhs );
+ }
+
+ private:
+ StructureType sType = StructureType::eExternalFormatANDROID;
+
+ public:
+ void* pNext = nullptr;
+ uint64_t externalFormat;
+ };
+ static_assert( sizeof( ExternalFormatANDROID ) == sizeof( VkExternalFormatANDROID ), "struct and wrapper have different size!" );
+#endif /*VK_USE_PLATFORM_ANDROID_ANDROID*/
+
enum class SubpassContents
{
eInline = VK_SUBPASS_CONTENTS_INLINE,
@@ -24666,6 +24923,7 @@ public:
eD3D12Resource = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,
eD3D12ResourceKHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,
eDmaBufEXT = VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT,
+ eAndroidHardwareBufferANDROID = VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID,
eHostAllocationEXT = VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT,
eHostMappedForeignMemoryEXT = VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT
};
@@ -24686,7 +24944,7 @@ public:
{
enum
{
- allFlags = VkFlags(ExternalMemoryHandleTypeFlagBits::eOpaqueFd) | VkFlags(ExternalMemoryHandleTypeFlagBits::eOpaqueWin32) | VkFlags(ExternalMemoryHandleTypeFlagBits::eOpaqueWin32Kmt) | VkFlags(ExternalMemoryHandleTypeFlagBits::eD3D11Texture) | VkFlags(ExternalMemoryHandleTypeFlagBits::eD3D11TextureKmt) | VkFlags(ExternalMemoryHandleTypeFlagBits::eD3D12Heap) | VkFlags(ExternalMemoryHandleTypeFlagBits::eD3D12Resource) | VkFlags(ExternalMemoryHandleTypeFlagBits::eDmaBufEXT) | VkFlags(ExternalMemoryHandleTypeFlagBits::eHostAllocationEXT) | VkFlags(ExternalMemoryHandleTypeFlagBits::eHostMappedForeignMemoryEXT)
+ allFlags = VkFlags(ExternalMemoryHandleTypeFlagBits::eOpaqueFd) | VkFlags(ExternalMemoryHandleTypeFlagBits::eOpaqueWin32) | VkFlags(ExternalMemoryHandleTypeFlagBits::eOpaqueWin32Kmt) | VkFlags(ExternalMemoryHandleTypeFlagBits::eD3D11Texture) | VkFlags(ExternalMemoryHandleTypeFlagBits::eD3D11TextureKmt) | VkFlags(ExternalMemoryHandleTypeFlagBits::eD3D12Heap) | VkFlags(ExternalMemoryHandleTypeFlagBits::eD3D12Resource) | VkFlags(ExternalMemoryHandleTypeFlagBits::eDmaBufEXT) | VkFlags(ExternalMemoryHandleTypeFlagBits::eAndroidHardwareBufferANDROID) | VkFlags(ExternalMemoryHandleTypeFlagBits::eHostAllocationEXT) | VkFlags(ExternalMemoryHandleTypeFlagBits::eHostMappedForeignMemoryEXT)
};
};
@@ -28194,6 +28452,50 @@ public:
using SamplerYcbcrConversionCreateInfoKHR = SamplerYcbcrConversionCreateInfo;
+#ifdef VK_USE_PLATFORM_ANDROID_ANDROID
+ struct AndroidHardwareBufferFormatPropertiesANDROID
+ {
+ operator const VkAndroidHardwareBufferFormatPropertiesANDROID&() const
+ {
+ return *reinterpret_cast<const VkAndroidHardwareBufferFormatPropertiesANDROID*>(this);
+ }
+
+ bool operator==( AndroidHardwareBufferFormatPropertiesANDROID const& rhs ) const
+ {
+ return ( sType == rhs.sType )
+ && ( pNext == rhs.pNext )
+ && ( format == rhs.format )
+ && ( externalFormat == rhs.externalFormat )
+ && ( formatFeatures == rhs.formatFeatures )
+ && ( samplerYcbcrConversionComponents == rhs.samplerYcbcrConversionComponents )
+ && ( suggestedYcbcrModel == rhs.suggestedYcbcrModel )
+ && ( suggestedYcbcrRange == rhs.suggestedYcbcrRange )
+ && ( suggestedXChromaOffset == rhs.suggestedXChromaOffset )
+ && ( suggestedYChromaOffset == rhs.suggestedYChromaOffset );
+ }
+
+ bool operator!=( AndroidHardwareBufferFormatPropertiesANDROID const& rhs ) const
+ {
+ return !operator==( rhs );
+ }
+
+ private:
+ StructureType sType = StructureType::eAndroidHardwareBufferFormatPropertiesANDROID;
+
+ public:
+ void* pNext = nullptr;
+ Format format;
+ uint64_t externalFormat;
+ FormatFeatureFlags formatFeatures;
+ ComponentMapping samplerYcbcrConversionComponents;
+ SamplerYcbcrModelConversion suggestedYcbcrModel;
+ SamplerYcbcrRange suggestedYcbcrRange;
+ ChromaLocation suggestedXChromaOffset;
+ ChromaLocation suggestedYChromaOffset;
+ };
+ static_assert( sizeof( AndroidHardwareBufferFormatPropertiesANDROID ) == sizeof( VkAndroidHardwareBufferFormatPropertiesANDROID ), "struct and wrapper have different size!" );
+#endif /*VK_USE_PLATFORM_ANDROID_ANDROID*/
+
enum class BlendOverlapEXT
{
eUncorrelated = VK_BLEND_OVERLAP_UNCORRELATED_EXT,
@@ -28773,11 +29075,11 @@ public:
class CommandBuffer
{
public:
- CommandBuffer()
+ VULKAN_HPP_CONSTEXPR CommandBuffer()
: m_commandBuffer(VK_NULL_HANDLE)
{}
- CommandBuffer( std::nullptr_t )
+ VULKAN_HPP_CONSTEXPR CommandBuffer( std::nullptr_t )
: m_commandBuffer(VK_NULL_HANDLE)
{}
@@ -30199,11 +30501,11 @@ public:
class Queue
{
public:
- Queue()
+ VULKAN_HPP_CONSTEXPR Queue()
: m_queue(VK_NULL_HANDLE)
{}
- Queue( std::nullptr_t )
+ VULKAN_HPP_CONSTEXPR Queue( std::nullptr_t )
: m_queue(VK_NULL_HANDLE)
{}
@@ -30468,11 +30770,11 @@ public:
class Device
{
public:
- Device()
+ VULKAN_HPP_CONSTEXPR Device()
: m_device(VK_NULL_HANDLE)
{}
- Device( std::nullptr_t )
+ VULKAN_HPP_CONSTEXPR Device( std::nullptr_t )
: m_device(VK_NULL_HANDLE)
{}
@@ -31512,7 +31814,7 @@ public:
Result getSwapchainCounterEXT( SwapchainKHR swapchain, SurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue, Dispatch const &d = Dispatch() ) const;
#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
template<typename Dispatch = DispatchLoaderStatic>
- ResultValue<uint64_t> getSwapchainCounterEXT( SwapchainKHR swapchain, SurfaceCounterFlagBitsEXT counter, Dispatch const &d = Dispatch() ) const;
+ ResultValueType<uint64_t>::type getSwapchainCounterEXT( SwapchainKHR swapchain, SurfaceCounterFlagBitsEXT counter, Dispatch const &d = Dispatch() ) const;
#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
template<typename Dispatch = DispatchLoaderStatic>
@@ -31832,6 +32134,26 @@ public:
ResultValueType<MemoryHostPointerPropertiesEXT>::type getMemoryHostPointerPropertiesEXT( ExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, Dispatch const &d = Dispatch() ) const;
#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#ifdef VK_USE_PLATFORM_ANDROID_ANDROID
+ template<typename Dispatch = DispatchLoaderStatic>
+ Result getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer* buffer, AndroidHardwareBufferPropertiesANDROID* pProperties, Dispatch const &d = Dispatch() ) const;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+ template<typename Dispatch = DispatchLoaderStatic>
+ ResultValueType<AndroidHardwareBufferPropertiesANDROID>::type getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, Dispatch const &d = Dispatch() ) const;
+ template <typename ...T, typename Dispatch = DispatchLoaderStatic>
+ typename ResultValueType<StructureChain<T...>>::type getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, Dispatch const &d = Dispatch() ) const;
+#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VK_USE_PLATFORM_ANDROID_ANDROID*/
+
+#ifdef VK_USE_PLATFORM_ANDROID_ANDROID
+ template<typename Dispatch = DispatchLoaderStatic>
+ Result getMemoryAndroidHardwareBufferANDROID( const MemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct AHardwareBuffer** pBuffer, Dispatch const &d = Dispatch() ) const;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+ template<typename Dispatch = DispatchLoaderStatic>
+ ResultValueType<struct AHardwareBuffer*>::type getMemoryAndroidHardwareBufferANDROID( const MemoryGetAndroidHardwareBufferInfoANDROID & info, Dispatch const &d = Dispatch() ) const;
+#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VK_USE_PLATFORM_ANDROID_ANDROID*/
+
VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDevice() const
@@ -34065,11 +34387,11 @@ public:
}
#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
template<typename Dispatch>
- VULKAN_HPP_INLINE ResultValue<uint64_t> Device::getSwapchainCounterEXT( SwapchainKHR swapchain, SurfaceCounterFlagBitsEXT counter, Dispatch const &d ) const
+ VULKAN_HPP_INLINE ResultValueType<uint64_t>::type Device::getSwapchainCounterEXT( SwapchainKHR swapchain, SurfaceCounterFlagBitsEXT counter, Dispatch const &d ) const
{
uint64_t counterValue;
Result result = static_cast<Result>( d.vkGetSwapchainCounterEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ), static_cast<VkSurfaceCounterFlagBitsEXT>( counter ), &counterValue ) );
- return createResultValue( result, counterValue, VULKAN_HPP_NAMESPACE_STRING"::Device::getSwapchainCounterEXT", { Result::eSuccess, Result::eErrorDeviceLost, Result::eErrorOutOfDateKHR } );
+ return createResultValue( result, counterValue, VULKAN_HPP_NAMESPACE_STRING"::Device::getSwapchainCounterEXT" );
}
#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
@@ -34828,6 +35150,48 @@ public:
}
#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#ifdef VK_USE_PLATFORM_ANDROID_ANDROID
+ template<typename Dispatch>
+ VULKAN_HPP_INLINE Result Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer* buffer, AndroidHardwareBufferPropertiesANDROID* pProperties, Dispatch const &d) const
+ {
+ return static_cast<Result>( d.vkGetAndroidHardwareBufferPropertiesANDROID( m_device, buffer, reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID*>( pProperties ) ) );
+ }
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+ template<typename Dispatch>
+ VULKAN_HPP_INLINE ResultValueType<AndroidHardwareBufferPropertiesANDROID>::type Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, Dispatch const &d ) const
+ {
+ AndroidHardwareBufferPropertiesANDROID properties;
+ Result result = static_cast<Result>( d.vkGetAndroidHardwareBufferPropertiesANDROID( m_device, buffer, reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID*>( &properties ) ) );
+ return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::Device::getAndroidHardwareBufferPropertiesANDROID" );
+ }
+ template <typename ...T, typename Dispatch>
+ VULKAN_HPP_INLINE typename ResultValueType<StructureChain<T...>>::type Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, Dispatch const &d ) const
+ {
+ StructureChain<T...> structureChain;
+ AndroidHardwareBufferPropertiesANDROID& properties = structureChain.template get<AndroidHardwareBufferPropertiesANDROID>();
+ Result result = static_cast<Result>( d.vkGetAndroidHardwareBufferPropertiesANDROID( m_device, buffer, reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID*>( &properties ) ) );
+ return createResultValue( result, structureChain, VULKAN_HPP_NAMESPACE_STRING"::Device::getAndroidHardwareBufferPropertiesANDROID" );
+ }
+#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VK_USE_PLATFORM_ANDROID_ANDROID*/
+
+#ifdef VK_USE_PLATFORM_ANDROID_ANDROID
+ template<typename Dispatch>
+ VULKAN_HPP_INLINE Result Device::getMemoryAndroidHardwareBufferANDROID( const MemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct AHardwareBuffer** pBuffer, Dispatch const &d) const
+ {
+ return static_cast<Result>( d.vkGetMemoryAndroidHardwareBufferANDROID( m_device, reinterpret_cast<const VkMemoryGetAndroidHardwareBufferInfoANDROID*>( pInfo ), pBuffer ) );
+ }
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+ template<typename Dispatch>
+ VULKAN_HPP_INLINE ResultValueType<struct AHardwareBuffer*>::type Device::getMemoryAndroidHardwareBufferANDROID( const MemoryGetAndroidHardwareBufferInfoANDROID & info, Dispatch const &d ) const
+ {
+ struct AHardwareBuffer* buffer;
+ Result result = static_cast<Result>( d.vkGetMemoryAndroidHardwareBufferANDROID( m_device, reinterpret_cast<const VkMemoryGetAndroidHardwareBufferInfoANDROID*>( &info ), &buffer ) );
+ return createResultValue( result, buffer, VULKAN_HPP_NAMESPACE_STRING"::Device::getMemoryAndroidHardwareBufferANDROID" );
+ }
+#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VK_USE_PLATFORM_ANDROID_ANDROID*/
+
#ifndef VULKAN_HPP_NO_SMART_HANDLE
template <> class UniqueHandleTraits<Device> {public: using deleter = ObjectDestroy<NoParent>; };
@@ -34837,11 +35201,11 @@ public:
class PhysicalDevice
{
public:
- PhysicalDevice()
+ VULKAN_HPP_CONSTEXPR PhysicalDevice()
: m_physicalDevice(VK_NULL_HANDLE)
{}
- PhysicalDevice( std::nullptr_t )
+ VULKAN_HPP_CONSTEXPR PhysicalDevice( std::nullptr_t )
: m_physicalDevice(VK_NULL_HANDLE)
{}
@@ -36534,11 +36898,11 @@ public:
class Instance
{
public:
- Instance()
+ VULKAN_HPP_CONSTEXPR Instance()
: m_instance(VK_NULL_HANDLE)
{}
- Instance( std::nullptr_t )
+ VULKAN_HPP_CONSTEXPR Instance( std::nullptr_t )
: m_instance(VK_NULL_HANDLE)
{}
@@ -37571,6 +37935,16 @@ public:
template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceConservativeRasterizationPropertiesEXT>{ enum { value = true }; };
template <> struct isStructureChainValid<PipelineVertexInputStateCreateInfo, PipelineVertexInputDivisorStateCreateInfoEXT>{ enum { value = true }; };
template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceVertexAttributeDivisorPropertiesEXT>{ enum { value = true }; };
+#ifdef VK_USE_PLATFORM_ANDROID_ANDROID
+ template <> struct isStructureChainValid<MemoryAllocateInfo, ImportAndroidHardwareBufferInfoANDROID>{ enum { value = true }; };
+#endif /*VK_USE_PLATFORM_ANDROID_ANDROID*/
+#ifdef VK_USE_PLATFORM_ANDROID_ANDROID
+ template <> struct isStructureChainValid<ImageFormatProperties2, AndroidHardwareBufferUsageANDROID>{ enum { value = true }; };
+#endif /*VK_USE_PLATFORM_ANDROID_ANDROID*/
+#ifdef VK_USE_PLATFORM_ANDROID_ANDROID
+ template <> struct isStructureChainValid<ImageCreateInfo, ExternalFormatANDROID>{ enum { value = true }; };
+ template <> struct isStructureChainValid<SamplerYcbcrConversionCreateInfo, ExternalFormatANDROID>{ enum { value = true }; };
+#endif /*VK_USE_PLATFORM_ANDROID_ANDROID*/
template <> struct isStructureChainValid<SurfaceCapabilities2KHR, SharedPresentSurfaceCapabilitiesKHR>{ enum { value = true }; };
template <> struct isStructureChainValid<ImageViewCreateInfo, ImageViewUsageCreateInfo>{ enum { value = true }; };
template <> struct isStructureChainValid<RenderPassCreateInfo, RenderPassInputAttachmentAspectCreateInfo>{ enum { value = true }; };
@@ -37610,6 +37984,11 @@ public:
template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDevicePointClippingProperties>{ enum { value = true }; };
template <> struct isStructureChainValid<SamplerCreateInfo, SamplerReductionModeCreateInfoEXT>{ enum { value = true }; };
template <> struct isStructureChainValid<PipelineTessellationStateCreateInfo, PipelineTessellationDomainOriginStateCreateInfo>{ enum { value = true }; };
+#ifdef VK_USE_PLATFORM_ANDROID_ANDROID
+#ifdef VK_USE_PLATFORM_ANDROID_ANDROID
+ template <> struct isStructureChainValid<AndroidHardwareBufferPropertiesANDROID, AndroidHardwareBufferFormatPropertiesANDROID>{ enum { value = true }; };
+#endif /*VK_USE_PLATFORM_ANDROID_ANDROID*/
+#endif /*VK_USE_PLATFORM_ANDROID_ANDROID*/
template <> struct isStructureChainValid<PipelineColorBlendStateCreateInfo, PipelineColorBlendAdvancedStateCreateInfoEXT>{ enum { value = true }; };
template <> struct isStructureChainValid<PipelineMultisampleStateCreateInfo, PipelineCoverageModulationStateCreateInfoNV>{ enum { value = true }; };
template <> struct isStructureChainValid<DeviceQueueCreateInfo, DeviceQueueGlobalPriorityCreateInfoEXT>{ enum { value = true }; };
@@ -39021,6 +39400,12 @@ public:
case StructureType::eDebugUtilsLabelEXT: return "DebugUtilsLabelEXT";
case StructureType::eDebugUtilsMessengerCallbackDataEXT: return "DebugUtilsMessengerCallbackDataEXT";
case StructureType::eDebugUtilsMessengerCreateInfoEXT: return "DebugUtilsMessengerCreateInfoEXT";
+ case StructureType::eAndroidHardwareBufferUsageANDROID: return "AndroidHardwareBufferUsageANDROID";
+ case StructureType::eAndroidHardwareBufferPropertiesANDROID: return "AndroidHardwareBufferPropertiesANDROID";
+ case StructureType::eAndroidHardwareBufferFormatPropertiesANDROID: return "AndroidHardwareBufferFormatPropertiesANDROID";
+ case StructureType::eImportAndroidHardwareBufferInfoANDROID: return "ImportAndroidHardwareBufferInfoANDROID";
+ case StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID: return "MemoryGetAndroidHardwareBufferInfoANDROID";
+ case StructureType::eExternalFormatANDROID: return "ExternalFormatANDROID";
case StructureType::ePhysicalDeviceSamplerFilterMinmaxPropertiesEXT: return "PhysicalDeviceSamplerFilterMinmaxPropertiesEXT";
case StructureType::eSamplerReductionModeCreateInfoEXT: return "SamplerReductionModeCreateInfoEXT";
case StructureType::eSampleLocationsInfoEXT: return "SampleLocationsInfoEXT";
@@ -40317,6 +40702,7 @@ public:
case ExternalMemoryHandleTypeFlagBits::eD3D12Heap: return "D3D12Heap";
case ExternalMemoryHandleTypeFlagBits::eD3D12Resource: return "D3D12Resource";
case ExternalMemoryHandleTypeFlagBits::eDmaBufEXT: return "DmaBufEXT";
+ case ExternalMemoryHandleTypeFlagBits::eAndroidHardwareBufferANDROID: return "AndroidHardwareBufferANDROID";
case ExternalMemoryHandleTypeFlagBits::eHostAllocationEXT: return "HostAllocationEXT";
case ExternalMemoryHandleTypeFlagBits::eHostMappedForeignMemoryEXT: return "HostMappedForeignMemoryEXT";
default: return "invalid";
@@ -40335,6 +40721,7 @@ public:
if (value & ExternalMemoryHandleTypeFlagBits::eD3D12Heap) result += "D3D12Heap | ";
if (value & ExternalMemoryHandleTypeFlagBits::eD3D12Resource) result += "D3D12Resource | ";
if (value & ExternalMemoryHandleTypeFlagBits::eDmaBufEXT) result += "DmaBufEXT | ";
+ if (value & ExternalMemoryHandleTypeFlagBits::eAndroidHardwareBufferANDROID) result += "AndroidHardwareBufferANDROID | ";
if (value & ExternalMemoryHandleTypeFlagBits::eHostAllocationEXT) result += "HostAllocationEXT | ";
if (value & ExternalMemoryHandleTypeFlagBits::eHostMappedForeignMemoryEXT) result += "HostMappedForeignMemoryEXT | ";
return "{" + result.substr(0, result.size() - 3) + "}";
@@ -41020,6 +41407,9 @@ public:
PFN_vkFreeCommandBuffers vkFreeCommandBuffers = 0;
PFN_vkFreeDescriptorSets vkFreeDescriptorSets = 0;
PFN_vkFreeMemory vkFreeMemory = 0;
+#ifdef VK_USE_PLATFORM_ANDROID_ANDROID
+ PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID = 0;
+#endif /*VK_USE_PLATFORM_ANDROID_ANDROID*/
PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements = 0;
PFN_vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2 = 0;
PFN_vkGetBufferMemoryRequirements2KHR vkGetBufferMemoryRequirements2KHR = 0;
@@ -41050,6 +41440,9 @@ public:
PFN_vkGetImageSparseMemoryRequirements2KHR vkGetImageSparseMemoryRequirements2KHR = 0;
PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout = 0;
PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr = 0;
+#ifdef VK_USE_PLATFORM_ANDROID_ANDROID
+ PFN_vkGetMemoryAndroidHardwareBufferANDROID vkGetMemoryAndroidHardwareBufferANDROID = 0;
+#endif /*VK_USE_PLATFORM_ANDROID_ANDROID*/
PFN_vkGetMemoryFdKHR vkGetMemoryFdKHR = 0;
PFN_vkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHR = 0;
PFN_vkGetMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXT = 0;
@@ -41375,6 +41768,9 @@ public:
vkFreeCommandBuffers = PFN_vkFreeCommandBuffers(device ? device.getProcAddr( "vkFreeCommandBuffers") : instance.getProcAddr( "vkFreeCommandBuffers"));
vkFreeDescriptorSets = PFN_vkFreeDescriptorSets(device ? device.getProcAddr( "vkFreeDescriptorSets") : instance.getProcAddr( "vkFreeDescriptorSets"));
vkFreeMemory = PFN_vkFreeMemory(device ? device.getProcAddr( "vkFreeMemory") : instance.getProcAddr( "vkFreeMemory"));
+#ifdef VK_USE_PLATFORM_ANDROID_ANDROID
+ vkGetAndroidHardwareBufferPropertiesANDROID = PFN_vkGetAndroidHardwareBufferPropertiesANDROID(device ? device.getProcAddr( "vkGetAndroidHardwareBufferPropertiesANDROID") : instance.getProcAddr( "vkGetAndroidHardwareBufferPropertiesANDROID"));
+#endif /*VK_USE_PLATFORM_ANDROID_ANDROID*/
vkGetBufferMemoryRequirements = PFN_vkGetBufferMemoryRequirements(device ? device.getProcAddr( "vkGetBufferMemoryRequirements") : instance.getProcAddr( "vkGetBufferMemoryRequirements"));
vkGetBufferMemoryRequirements2 = PFN_vkGetBufferMemoryRequirements2(device ? device.getProcAddr( "vkGetBufferMemoryRequirements2") : instance.getProcAddr( "vkGetBufferMemoryRequirements2"));
vkGetBufferMemoryRequirements2KHR = PFN_vkGetBufferMemoryRequirements2KHR(device ? device.getProcAddr( "vkGetBufferMemoryRequirements2KHR") : instance.getProcAddr( "vkGetBufferMemoryRequirements2KHR"));
@@ -41405,6 +41801,9 @@ public:
vkGetImageSparseMemoryRequirements2KHR = PFN_vkGetImageSparseMemoryRequirements2KHR(device ? device.getProcAddr( "vkGetImageSparseMemoryRequirements2KHR") : instance.getProcAddr( "vkGetImageSparseMemoryRequirements2KHR"));
vkGetImageSubresourceLayout = PFN_vkGetImageSubresourceLayout(device ? device.getProcAddr( "vkGetImageSubresourceLayout") : instance.getProcAddr( "vkGetImageSubresourceLayout"));
vkGetInstanceProcAddr = PFN_vkGetInstanceProcAddr(instance.getProcAddr( "vkGetInstanceProcAddr"));
+#ifdef VK_USE_PLATFORM_ANDROID_ANDROID
+ vkGetMemoryAndroidHardwareBufferANDROID = PFN_vkGetMemoryAndroidHardwareBufferANDROID(device ? device.getProcAddr( "vkGetMemoryAndroidHardwareBufferANDROID") : instance.getProcAddr( "vkGetMemoryAndroidHardwareBufferANDROID"));
+#endif /*VK_USE_PLATFORM_ANDROID_ANDROID*/
vkGetMemoryFdKHR = PFN_vkGetMemoryFdKHR(device ? device.getProcAddr( "vkGetMemoryFdKHR") : instance.getProcAddr( "vkGetMemoryFdKHR"));
vkGetMemoryFdPropertiesKHR = PFN_vkGetMemoryFdPropertiesKHR(device ? device.getProcAddr( "vkGetMemoryFdPropertiesKHR") : instance.getProcAddr( "vkGetMemoryFdPropertiesKHR"));
vkGetMemoryHostPointerPropertiesEXT = PFN_vkGetMemoryHostPointerPropertiesEXT(device ? device.getProcAddr( "vkGetMemoryHostPointerPropertiesEXT") : instance.getProcAddr( "vkGetMemoryHostPointerPropertiesEXT"));
diff --git a/include/vulkan/vulkan_android.h b/include/vulkan/vulkan_android.h
index 5e61c053..07aaeda2 100644
--- a/include/vulkan/vulkan_android.h
+++ b/include/vulkan/vulkan_android.h
@@ -53,6 +53,72 @@ VKAPI_ATTR VkResult VKAPI_CALL vkCreateAndroidSurfaceKHR(
VkSurfaceKHR* pSurface);
#endif
+#define VK_ANDROID_external_memory_android_hardware_buffer 1
+struct AHardwareBuffer;
+
+#define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION 3
+#define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME "VK_ANDROID_external_memory_android_hardware_buffer"
+
+typedef struct VkAndroidHardwareBufferUsageANDROID {
+ VkStructureType sType;
+ void* pNext;
+ uint64_t androidHardwareBufferUsage;
+} VkAndroidHardwareBufferUsageANDROID;
+
+typedef struct VkAndroidHardwareBufferPropertiesANDROID {
+ VkStructureType sType;
+ void* pNext;
+ VkDeviceSize allocationSize;
+ uint32_t memoryTypeBits;
+} VkAndroidHardwareBufferPropertiesANDROID;
+
+typedef struct VkAndroidHardwareBufferFormatPropertiesANDROID {
+ VkStructureType sType;
+ void* pNext;
+ VkFormat format;
+ uint64_t externalFormat;
+ VkFormatFeatureFlags formatFeatures;
+ VkComponentMapping samplerYcbcrConversionComponents;
+ VkSamplerYcbcrModelConversion suggestedYcbcrModel;
+ VkSamplerYcbcrRange suggestedYcbcrRange;
+ VkChromaLocation suggestedXChromaOffset;
+ VkChromaLocation suggestedYChromaOffset;
+} VkAndroidHardwareBufferFormatPropertiesANDROID;
+
+typedef struct VkImportAndroidHardwareBufferInfoANDROID {
+ VkStructureType sType;
+ const void* pNext;
+ struct AHardwareBuffer* buffer;
+} VkImportAndroidHardwareBufferInfoANDROID;
+
+typedef struct VkMemoryGetAndroidHardwareBufferInfoANDROID {
+ VkStructureType sType;
+ const void* pNext;
+ VkDeviceMemory memory;
+} VkMemoryGetAndroidHardwareBufferInfoANDROID;
+
+typedef struct VkExternalFormatANDROID {
+ VkStructureType sType;
+ void* pNext;
+ uint64_t externalFormat;
+} VkExternalFormatANDROID;
+
+
+typedef VkResult (VKAPI_PTR *PFN_vkGetAndroidHardwareBufferPropertiesANDROID)(VkDevice device, const struct AHardwareBuffer* buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties);
+typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryAndroidHardwareBufferANDROID)(VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct AHardwareBuffer** pBuffer);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR VkResult VKAPI_CALL vkGetAndroidHardwareBufferPropertiesANDROID(
+ VkDevice device,
+ const struct AHardwareBuffer* buffer,
+ VkAndroidHardwareBufferPropertiesANDROID* pProperties);
+
+VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryAndroidHardwareBufferANDROID(
+ VkDevice device,
+ const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
+ struct AHardwareBuffer** pBuffer);
+#endif
+
#ifdef __cplusplus
}
#endif
diff --git a/include/vulkan/vulkan_core.h b/include/vulkan/vulkan_core.h
index c115fa66..943493c4 100644
--- a/include/vulkan/vulkan_core.h
+++ b/include/vulkan/vulkan_core.h
@@ -43,7 +43,7 @@ extern "C" {
#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff)
#define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff)
// Version of this file
-#define VK_HEADER_VERSION 70
+#define VK_HEADER_VERSION 71
#define VK_NULL_HANDLE 0
@@ -356,6 +356,12 @@ typedef enum VkStructureType {
VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002,
VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003,
VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004,
+ VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129000,
+ VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001,
+ VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002,
+ VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003,
+ VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004,
+ VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = 1000130000,
VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = 1000130001,
VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000,
@@ -3767,6 +3773,7 @@ typedef enum VkExternalMemoryHandleTypeFlagBits {
VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0x00000020,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0x00000200,
+ VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000400,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
@@ -5090,7 +5097,7 @@ VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBaseKHR(
#define VK_KHR_maintenance1 1
-#define VK_KHR_MAINTENANCE1_SPEC_VERSION 1
+#define VK_KHR_MAINTENANCE1_SPEC_VERSION 2
#define VK_KHR_MAINTENANCE1_EXTENSION_NAME "VK_KHR_maintenance1"
typedef VkCommandPoolTrimFlags VkCommandPoolTrimFlagsKHR;