xref: /aosp_15_r20/external/mesa3d/include/vulkan/vulkan_screen.h (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1 #ifndef VULKAN_SCREEN_H_
2 #define VULKAN_SCREEN_H_ 1
3 
4 /*
5 ** Copyright 2015-2024 The Khronos Group Inc.
6 **
7 ** SPDX-License-Identifier: Apache-2.0
8 */
9 
10 /*
11 ** This header is generated from the Khronos Vulkan XML API Registry.
12 **
13 */
14 
15 
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19 
20 
21 
22 // VK_QNX_screen_surface is a preprocessor guard. Do not pass it to API calls.
23 #define VK_QNX_screen_surface 1
24 #define VK_QNX_SCREEN_SURFACE_SPEC_VERSION 1
25 #define VK_QNX_SCREEN_SURFACE_EXTENSION_NAME "VK_QNX_screen_surface"
26 typedef VkFlags VkScreenSurfaceCreateFlagsQNX;
27 typedef struct VkScreenSurfaceCreateInfoQNX {
28     VkStructureType                  sType;
29     const void*                      pNext;
30     VkScreenSurfaceCreateFlagsQNX    flags;
31     struct _screen_context*          context;
32     struct _screen_window*           window;
33 } VkScreenSurfaceCreateInfoQNX;
34 
35 typedef VkResult (VKAPI_PTR *PFN_vkCreateScreenSurfaceQNX)(VkInstance instance, const VkScreenSurfaceCreateInfoQNX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
36 typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct _screen_window* window);
37 
38 #ifndef VK_NO_PROTOTYPES
39 VKAPI_ATTR VkResult VKAPI_CALL vkCreateScreenSurfaceQNX(
40     VkInstance                                  instance,
41     const VkScreenSurfaceCreateInfoQNX*         pCreateInfo,
42     const VkAllocationCallbacks*                pAllocator,
43     VkSurfaceKHR*                               pSurface);
44 
45 VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceScreenPresentationSupportQNX(
46     VkPhysicalDevice                            physicalDevice,
47     uint32_t                                    queueFamilyIndex,
48     struct _screen_window*                      window);
49 #endif
50 
51 
52 // VK_QNX_external_memory_screen_buffer is a preprocessor guard. Do not pass it to API calls.
53 #define VK_QNX_external_memory_screen_buffer 1
54 #define VK_QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_SPEC_VERSION 1
55 #define VK_QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_EXTENSION_NAME "VK_QNX_external_memory_screen_buffer"
56 typedef struct VkScreenBufferPropertiesQNX {
57     VkStructureType    sType;
58     void*              pNext;
59     VkDeviceSize       allocationSize;
60     uint32_t           memoryTypeBits;
61 } VkScreenBufferPropertiesQNX;
62 
63 typedef struct VkScreenBufferFormatPropertiesQNX {
64     VkStructureType                  sType;
65     void*                            pNext;
66     VkFormat                         format;
67     uint64_t                         externalFormat;
68     uint64_t                         screenUsage;
69     VkFormatFeatureFlags             formatFeatures;
70     VkComponentMapping               samplerYcbcrConversionComponents;
71     VkSamplerYcbcrModelConversion    suggestedYcbcrModel;
72     VkSamplerYcbcrRange              suggestedYcbcrRange;
73     VkChromaLocation                 suggestedXChromaOffset;
74     VkChromaLocation                 suggestedYChromaOffset;
75 } VkScreenBufferFormatPropertiesQNX;
76 
77 typedef struct VkImportScreenBufferInfoQNX {
78     VkStructureType           sType;
79     const void*               pNext;
80     struct _screen_buffer*    buffer;
81 } VkImportScreenBufferInfoQNX;
82 
83 typedef struct VkExternalFormatQNX {
84     VkStructureType    sType;
85     void*              pNext;
86     uint64_t           externalFormat;
87 } VkExternalFormatQNX;
88 
89 typedef struct VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX {
90     VkStructureType    sType;
91     void*              pNext;
92     VkBool32           screenBufferImport;
93 } VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX;
94 
95 typedef VkResult (VKAPI_PTR *PFN_vkGetScreenBufferPropertiesQNX)(VkDevice device, const struct _screen_buffer* buffer, VkScreenBufferPropertiesQNX* pProperties);
96 
97 #ifndef VK_NO_PROTOTYPES
98 VKAPI_ATTR VkResult VKAPI_CALL vkGetScreenBufferPropertiesQNX(
99     VkDevice                                    device,
100     const struct _screen_buffer*                buffer,
101     VkScreenBufferPropertiesQNX*                pProperties);
102 #endif
103 
104 #ifdef __cplusplus
105 }
106 #endif
107 
108 #endif
109