263 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			263 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
#ifndef VULKAN_FUCHSIA_H_
 | 
						|
#define VULKAN_FUCHSIA_H_ 1
 | 
						|
 | 
						|
/*
 | 
						|
** Copyright 2015-2023 The Khronos Group Inc.
 | 
						|
**
 | 
						|
** SPDX-License-Identifier: Apache-2.0
 | 
						|
*/
 | 
						|
 | 
						|
/*
 | 
						|
** This header is generated from the Khronos Vulkan XML API Registry.
 | 
						|
**
 | 
						|
*/
 | 
						|
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
extern "C" {
 | 
						|
#endif
 | 
						|
 | 
						|
 | 
						|
 | 
						|
// VK_FUCHSIA_imagepipe_surface is a preprocessor guard. Do not pass it to API calls.
 | 
						|
#define VK_FUCHSIA_imagepipe_surface 1
 | 
						|
#define VK_FUCHSIA_IMAGEPIPE_SURFACE_SPEC_VERSION 1
 | 
						|
#define VK_FUCHSIA_IMAGEPIPE_SURFACE_EXTENSION_NAME "VK_FUCHSIA_imagepipe_surface"
 | 
						|
typedef VkFlags VkImagePipeSurfaceCreateFlagsFUCHSIA;
 | 
						|
typedef struct VkImagePipeSurfaceCreateInfoFUCHSIA {
 | 
						|
    VkStructureType                         sType;
 | 
						|
    const void*                             pNext;
 | 
						|
    VkImagePipeSurfaceCreateFlagsFUCHSIA    flags;
 | 
						|
    zx_handle_t                             imagePipeHandle;
 | 
						|
} VkImagePipeSurfaceCreateInfoFUCHSIA;
 | 
						|
 | 
						|
typedef VkResult (VKAPI_PTR *PFN_vkCreateImagePipeSurfaceFUCHSIA)(VkInstance instance, const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
 | 
						|
 | 
						|
#ifndef VK_NO_PROTOTYPES
 | 
						|
VKAPI_ATTR VkResult VKAPI_CALL vkCreateImagePipeSurfaceFUCHSIA(
 | 
						|
    VkInstance                                  instance,
 | 
						|
    const VkImagePipeSurfaceCreateInfoFUCHSIA*  pCreateInfo,
 | 
						|
    const VkAllocationCallbacks*                pAllocator,
 | 
						|
    VkSurfaceKHR*                               pSurface);
 | 
						|
#endif
 | 
						|
 | 
						|
 | 
						|
// VK_FUCHSIA_external_memory is a preprocessor guard. Do not pass it to API calls.
 | 
						|
#define VK_FUCHSIA_external_memory 1
 | 
						|
#define VK_FUCHSIA_EXTERNAL_MEMORY_SPEC_VERSION 1
 | 
						|
#define VK_FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME "VK_FUCHSIA_external_memory"
 | 
						|
typedef struct VkImportMemoryZirconHandleInfoFUCHSIA {
 | 
						|
    VkStructureType                       sType;
 | 
						|
    const void*                           pNext;
 | 
						|
    VkExternalMemoryHandleTypeFlagBits    handleType;
 | 
						|
    zx_handle_t                           handle;
 | 
						|
} VkImportMemoryZirconHandleInfoFUCHSIA;
 | 
						|
 | 
						|
typedef struct VkMemoryZirconHandlePropertiesFUCHSIA {
 | 
						|
    VkStructureType    sType;
 | 
						|
    void*              pNext;
 | 
						|
    uint32_t           memoryTypeBits;
 | 
						|
} VkMemoryZirconHandlePropertiesFUCHSIA;
 | 
						|
 | 
						|
typedef struct VkMemoryGetZirconHandleInfoFUCHSIA {
 | 
						|
    VkStructureType                       sType;
 | 
						|
    const void*                           pNext;
 | 
						|
    VkDeviceMemory                        memory;
 | 
						|
    VkExternalMemoryHandleTypeFlagBits    handleType;
 | 
						|
} VkMemoryGetZirconHandleInfoFUCHSIA;
 | 
						|
 | 
						|
typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryZirconHandleFUCHSIA)(VkDevice device, const VkMemoryGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, zx_handle_t* pZirconHandle);
 | 
						|
typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, zx_handle_t zirconHandle, VkMemoryZirconHandlePropertiesFUCHSIA* pMemoryZirconHandleProperties);
 | 
						|
 | 
						|
#ifndef VK_NO_PROTOTYPES
 | 
						|
VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryZirconHandleFUCHSIA(
 | 
						|
    VkDevice                                    device,
 | 
						|
    const VkMemoryGetZirconHandleInfoFUCHSIA*   pGetZirconHandleInfo,
 | 
						|
    zx_handle_t*                                pZirconHandle);
 | 
						|
 | 
						|
VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryZirconHandlePropertiesFUCHSIA(
 | 
						|
    VkDevice                                    device,
 | 
						|
    VkExternalMemoryHandleTypeFlagBits          handleType,
 | 
						|
    zx_handle_t                                 zirconHandle,
 | 
						|
    VkMemoryZirconHandlePropertiesFUCHSIA*      pMemoryZirconHandleProperties);
 | 
						|
#endif
 | 
						|
 | 
						|
 | 
						|
// VK_FUCHSIA_external_semaphore is a preprocessor guard. Do not pass it to API calls.
 | 
						|
#define VK_FUCHSIA_external_semaphore 1
 | 
						|
#define VK_FUCHSIA_EXTERNAL_SEMAPHORE_SPEC_VERSION 1
 | 
						|
#define VK_FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_FUCHSIA_external_semaphore"
 | 
						|
typedef struct VkImportSemaphoreZirconHandleInfoFUCHSIA {
 | 
						|
    VkStructureType                          sType;
 | 
						|
    const void*                              pNext;
 | 
						|
    VkSemaphore                              semaphore;
 | 
						|
    VkSemaphoreImportFlags                   flags;
 | 
						|
    VkExternalSemaphoreHandleTypeFlagBits    handleType;
 | 
						|
    zx_handle_t                              zirconHandle;
 | 
						|
} VkImportSemaphoreZirconHandleInfoFUCHSIA;
 | 
						|
 | 
						|
typedef struct VkSemaphoreGetZirconHandleInfoFUCHSIA {
 | 
						|
    VkStructureType                          sType;
 | 
						|
    const void*                              pNext;
 | 
						|
    VkSemaphore                              semaphore;
 | 
						|
    VkExternalSemaphoreHandleTypeFlagBits    handleType;
 | 
						|
} VkSemaphoreGetZirconHandleInfoFUCHSIA;
 | 
						|
 | 
						|
typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreZirconHandleFUCHSIA)(VkDevice device, const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo);
 | 
						|
typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreZirconHandleFUCHSIA)(VkDevice device, const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, zx_handle_t* pZirconHandle);
 | 
						|
 | 
						|
#ifndef VK_NO_PROTOTYPES
 | 
						|
VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreZirconHandleFUCHSIA(
 | 
						|
    VkDevice                                    device,
 | 
						|
    const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo);
 | 
						|
 | 
						|
VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreZirconHandleFUCHSIA(
 | 
						|
    VkDevice                                    device,
 | 
						|
    const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo,
 | 
						|
    zx_handle_t*                                pZirconHandle);
 | 
						|
#endif
 | 
						|
 | 
						|
 | 
						|
// VK_FUCHSIA_buffer_collection is a preprocessor guard. Do not pass it to API calls.
 | 
						|
#define VK_FUCHSIA_buffer_collection 1
 | 
						|
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferCollectionFUCHSIA)
 | 
						|
#define VK_FUCHSIA_BUFFER_COLLECTION_SPEC_VERSION 2
 | 
						|
#define VK_FUCHSIA_BUFFER_COLLECTION_EXTENSION_NAME "VK_FUCHSIA_buffer_collection"
 | 
						|
typedef VkFlags VkImageFormatConstraintsFlagsFUCHSIA;
 | 
						|
 | 
						|
typedef enum VkImageConstraintsInfoFlagBitsFUCHSIA {
 | 
						|
    VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA = 0x00000001,
 | 
						|
    VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA = 0x00000002,
 | 
						|
    VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA = 0x00000004,
 | 
						|
    VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA = 0x00000008,
 | 
						|
    VK_IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA = 0x00000010,
 | 
						|
    VK_IMAGE_CONSTRAINTS_INFO_FLAG_BITS_MAX_ENUM_FUCHSIA = 0x7FFFFFFF
 | 
						|
} VkImageConstraintsInfoFlagBitsFUCHSIA;
 | 
						|
typedef VkFlags VkImageConstraintsInfoFlagsFUCHSIA;
 | 
						|
typedef struct VkBufferCollectionCreateInfoFUCHSIA {
 | 
						|
    VkStructureType    sType;
 | 
						|
    const void*        pNext;
 | 
						|
    zx_handle_t        collectionToken;
 | 
						|
} VkBufferCollectionCreateInfoFUCHSIA;
 | 
						|
 | 
						|
typedef struct VkImportMemoryBufferCollectionFUCHSIA {
 | 
						|
    VkStructureType              sType;
 | 
						|
    const void*                  pNext;
 | 
						|
    VkBufferCollectionFUCHSIA    collection;
 | 
						|
    uint32_t                     index;
 | 
						|
} VkImportMemoryBufferCollectionFUCHSIA;
 | 
						|
 | 
						|
typedef struct VkBufferCollectionImageCreateInfoFUCHSIA {
 | 
						|
    VkStructureType              sType;
 | 
						|
    const void*                  pNext;
 | 
						|
    VkBufferCollectionFUCHSIA    collection;
 | 
						|
    uint32_t                     index;
 | 
						|
} VkBufferCollectionImageCreateInfoFUCHSIA;
 | 
						|
 | 
						|
typedef struct VkBufferCollectionConstraintsInfoFUCHSIA {
 | 
						|
    VkStructureType    sType;
 | 
						|
    const void*        pNext;
 | 
						|
    uint32_t           minBufferCount;
 | 
						|
    uint32_t           maxBufferCount;
 | 
						|
    uint32_t           minBufferCountForCamping;
 | 
						|
    uint32_t           minBufferCountForDedicatedSlack;
 | 
						|
    uint32_t           minBufferCountForSharedSlack;
 | 
						|
} VkBufferCollectionConstraintsInfoFUCHSIA;
 | 
						|
 | 
						|
typedef struct VkBufferConstraintsInfoFUCHSIA {
 | 
						|
    VkStructureType                             sType;
 | 
						|
    const void*                                 pNext;
 | 
						|
    VkBufferCreateInfo                          createInfo;
 | 
						|
    VkFormatFeatureFlags                        requiredFormatFeatures;
 | 
						|
    VkBufferCollectionConstraintsInfoFUCHSIA    bufferCollectionConstraints;
 | 
						|
} VkBufferConstraintsInfoFUCHSIA;
 | 
						|
 | 
						|
typedef struct VkBufferCollectionBufferCreateInfoFUCHSIA {
 | 
						|
    VkStructureType              sType;
 | 
						|
    const void*                  pNext;
 | 
						|
    VkBufferCollectionFUCHSIA    collection;
 | 
						|
    uint32_t                     index;
 | 
						|
} VkBufferCollectionBufferCreateInfoFUCHSIA;
 | 
						|
 | 
						|
typedef struct VkSysmemColorSpaceFUCHSIA {
 | 
						|
    VkStructureType    sType;
 | 
						|
    const void*        pNext;
 | 
						|
    uint32_t           colorSpace;
 | 
						|
} VkSysmemColorSpaceFUCHSIA;
 | 
						|
 | 
						|
typedef struct VkBufferCollectionPropertiesFUCHSIA {
 | 
						|
    VkStructureType                  sType;
 | 
						|
    void*                            pNext;
 | 
						|
    uint32_t                         memoryTypeBits;
 | 
						|
    uint32_t                         bufferCount;
 | 
						|
    uint32_t                         createInfoIndex;
 | 
						|
    uint64_t                         sysmemPixelFormat;
 | 
						|
    VkFormatFeatureFlags             formatFeatures;
 | 
						|
    VkSysmemColorSpaceFUCHSIA        sysmemColorSpaceIndex;
 | 
						|
    VkComponentMapping               samplerYcbcrConversionComponents;
 | 
						|
    VkSamplerYcbcrModelConversion    suggestedYcbcrModel;
 | 
						|
    VkSamplerYcbcrRange              suggestedYcbcrRange;
 | 
						|
    VkChromaLocation                 suggestedXChromaOffset;
 | 
						|
    VkChromaLocation                 suggestedYChromaOffset;
 | 
						|
} VkBufferCollectionPropertiesFUCHSIA;
 | 
						|
 | 
						|
typedef struct VkImageFormatConstraintsInfoFUCHSIA {
 | 
						|
    VkStructureType                         sType;
 | 
						|
    const void*                             pNext;
 | 
						|
    VkImageCreateInfo                       imageCreateInfo;
 | 
						|
    VkFormatFeatureFlags                    requiredFormatFeatures;
 | 
						|
    VkImageFormatConstraintsFlagsFUCHSIA    flags;
 | 
						|
    uint64_t                                sysmemPixelFormat;
 | 
						|
    uint32_t                                colorSpaceCount;
 | 
						|
    const VkSysmemColorSpaceFUCHSIA*        pColorSpaces;
 | 
						|
} VkImageFormatConstraintsInfoFUCHSIA;
 | 
						|
 | 
						|
typedef struct VkImageConstraintsInfoFUCHSIA {
 | 
						|
    VkStructureType                               sType;
 | 
						|
    const void*                                   pNext;
 | 
						|
    uint32_t                                      formatConstraintsCount;
 | 
						|
    const VkImageFormatConstraintsInfoFUCHSIA*    pFormatConstraints;
 | 
						|
    VkBufferCollectionConstraintsInfoFUCHSIA      bufferCollectionConstraints;
 | 
						|
    VkImageConstraintsInfoFlagsFUCHSIA            flags;
 | 
						|
} VkImageConstraintsInfoFUCHSIA;
 | 
						|
 | 
						|
typedef VkResult (VKAPI_PTR *PFN_vkCreateBufferCollectionFUCHSIA)(VkDevice device, const VkBufferCollectionCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferCollectionFUCHSIA* pCollection);
 | 
						|
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);
 | 
						|
 | 
						|
#ifndef VK_NO_PROTOTYPES
 | 
						|
VKAPI_ATTR VkResult VKAPI_CALL vkCreateBufferCollectionFUCHSIA(
 | 
						|
    VkDevice                                    device,
 | 
						|
    const VkBufferCollectionCreateInfoFUCHSIA*  pCreateInfo,
 | 
						|
    const VkAllocationCallbacks*                pAllocator,
 | 
						|
    VkBufferCollectionFUCHSIA*                  pCollection);
 | 
						|
 | 
						|
VKAPI_ATTR VkResult VKAPI_CALL vkSetBufferCollectionImageConstraintsFUCHSIA(
 | 
						|
    VkDevice                                    device,
 | 
						|
    VkBufferCollectionFUCHSIA                   collection,
 | 
						|
    const VkImageConstraintsInfoFUCHSIA*        pImageConstraintsInfo);
 | 
						|
 | 
						|
VKAPI_ATTR VkResult VKAPI_CALL vkSetBufferCollectionBufferConstraintsFUCHSIA(
 | 
						|
    VkDevice                                    device,
 | 
						|
    VkBufferCollectionFUCHSIA                   collection,
 | 
						|
    const VkBufferConstraintsInfoFUCHSIA*       pBufferConstraintsInfo);
 | 
						|
 | 
						|
VKAPI_ATTR void VKAPI_CALL vkDestroyBufferCollectionFUCHSIA(
 | 
						|
    VkDevice                                    device,
 | 
						|
    VkBufferCollectionFUCHSIA                   collection,
 | 
						|
    const VkAllocationCallbacks*                pAllocator);
 | 
						|
 | 
						|
VKAPI_ATTR VkResult VKAPI_CALL vkGetBufferCollectionPropertiesFUCHSIA(
 | 
						|
    VkDevice                                    device,
 | 
						|
    VkBufferCollectionFUCHSIA                   collection,
 | 
						|
    VkBufferCollectionPropertiesFUCHSIA*        pProperties);
 | 
						|
#endif
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
}
 | 
						|
#endif
 | 
						|
 | 
						|
#endif
 |