xref: /aosp_15_r20/external/vulkan-headers/include/vulkan/vulkan_beta.h (revision 902771965e4c6d39c75c62130a6a330c08b024db)
1*90277196SAndroid Build Coastguard Worker #ifndef VULKAN_BETA_H_
2*90277196SAndroid Build Coastguard Worker #define VULKAN_BETA_H_ 1
3*90277196SAndroid Build Coastguard Worker 
4*90277196SAndroid Build Coastguard Worker /*
5*90277196SAndroid Build Coastguard Worker ** Copyright 2015-2024 The Khronos Group Inc.
6*90277196SAndroid Build Coastguard Worker **
7*90277196SAndroid Build Coastguard Worker ** SPDX-License-Identifier: Apache-2.0
8*90277196SAndroid Build Coastguard Worker */
9*90277196SAndroid Build Coastguard Worker 
10*90277196SAndroid Build Coastguard Worker /*
11*90277196SAndroid Build Coastguard Worker ** This header is generated from the Khronos Vulkan XML API Registry.
12*90277196SAndroid Build Coastguard Worker **
13*90277196SAndroid Build Coastguard Worker */
14*90277196SAndroid Build Coastguard Worker 
15*90277196SAndroid Build Coastguard Worker 
16*90277196SAndroid Build Coastguard Worker #ifdef __cplusplus
17*90277196SAndroid Build Coastguard Worker extern "C" {
18*90277196SAndroid Build Coastguard Worker #endif
19*90277196SAndroid Build Coastguard Worker 
20*90277196SAndroid Build Coastguard Worker 
21*90277196SAndroid Build Coastguard Worker 
22*90277196SAndroid Build Coastguard Worker // VK_KHR_portability_subset is a preprocessor guard. Do not pass it to API calls.
23*90277196SAndroid Build Coastguard Worker #define VK_KHR_portability_subset 1
24*90277196SAndroid Build Coastguard Worker #define VK_KHR_PORTABILITY_SUBSET_SPEC_VERSION 1
25*90277196SAndroid Build Coastguard Worker #define VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME "VK_KHR_portability_subset"
26*90277196SAndroid Build Coastguard Worker typedef struct VkPhysicalDevicePortabilitySubsetFeaturesKHR {
27*90277196SAndroid Build Coastguard Worker     VkStructureType    sType;
28*90277196SAndroid Build Coastguard Worker     void*              pNext;
29*90277196SAndroid Build Coastguard Worker     VkBool32           constantAlphaColorBlendFactors;
30*90277196SAndroid Build Coastguard Worker     VkBool32           events;
31*90277196SAndroid Build Coastguard Worker     VkBool32           imageViewFormatReinterpretation;
32*90277196SAndroid Build Coastguard Worker     VkBool32           imageViewFormatSwizzle;
33*90277196SAndroid Build Coastguard Worker     VkBool32           imageView2DOn3DImage;
34*90277196SAndroid Build Coastguard Worker     VkBool32           multisampleArrayImage;
35*90277196SAndroid Build Coastguard Worker     VkBool32           mutableComparisonSamplers;
36*90277196SAndroid Build Coastguard Worker     VkBool32           pointPolygons;
37*90277196SAndroid Build Coastguard Worker     VkBool32           samplerMipLodBias;
38*90277196SAndroid Build Coastguard Worker     VkBool32           separateStencilMaskRef;
39*90277196SAndroid Build Coastguard Worker     VkBool32           shaderSampleRateInterpolationFunctions;
40*90277196SAndroid Build Coastguard Worker     VkBool32           tessellationIsolines;
41*90277196SAndroid Build Coastguard Worker     VkBool32           tessellationPointMode;
42*90277196SAndroid Build Coastguard Worker     VkBool32           triangleFans;
43*90277196SAndroid Build Coastguard Worker     VkBool32           vertexAttributeAccessBeyondStride;
44*90277196SAndroid Build Coastguard Worker } VkPhysicalDevicePortabilitySubsetFeaturesKHR;
45*90277196SAndroid Build Coastguard Worker 
46*90277196SAndroid Build Coastguard Worker typedef struct VkPhysicalDevicePortabilitySubsetPropertiesKHR {
47*90277196SAndroid Build Coastguard Worker     VkStructureType    sType;
48*90277196SAndroid Build Coastguard Worker     void*              pNext;
49*90277196SAndroid Build Coastguard Worker     uint32_t           minVertexInputBindingStrideAlignment;
50*90277196SAndroid Build Coastguard Worker } VkPhysicalDevicePortabilitySubsetPropertiesKHR;
51*90277196SAndroid Build Coastguard Worker 
52*90277196SAndroid Build Coastguard Worker 
53*90277196SAndroid Build Coastguard Worker 
54*90277196SAndroid Build Coastguard Worker // VK_AMDX_shader_enqueue is a preprocessor guard. Do not pass it to API calls.
55*90277196SAndroid Build Coastguard Worker #define VK_AMDX_shader_enqueue 1
56*90277196SAndroid Build Coastguard Worker #define VK_AMDX_SHADER_ENQUEUE_SPEC_VERSION 1
57*90277196SAndroid Build Coastguard Worker #define VK_AMDX_SHADER_ENQUEUE_EXTENSION_NAME "VK_AMDX_shader_enqueue"
58*90277196SAndroid Build Coastguard Worker #define VK_SHADER_INDEX_UNUSED_AMDX       (~0U)
59*90277196SAndroid Build Coastguard Worker typedef struct VkPhysicalDeviceShaderEnqueueFeaturesAMDX {
60*90277196SAndroid Build Coastguard Worker     VkStructureType    sType;
61*90277196SAndroid Build Coastguard Worker     void*              pNext;
62*90277196SAndroid Build Coastguard Worker     VkBool32           shaderEnqueue;
63*90277196SAndroid Build Coastguard Worker } VkPhysicalDeviceShaderEnqueueFeaturesAMDX;
64*90277196SAndroid Build Coastguard Worker 
65*90277196SAndroid Build Coastguard Worker typedef struct VkPhysicalDeviceShaderEnqueuePropertiesAMDX {
66*90277196SAndroid Build Coastguard Worker     VkStructureType    sType;
67*90277196SAndroid Build Coastguard Worker     void*              pNext;
68*90277196SAndroid Build Coastguard Worker     uint32_t           maxExecutionGraphDepth;
69*90277196SAndroid Build Coastguard Worker     uint32_t           maxExecutionGraphShaderOutputNodes;
70*90277196SAndroid Build Coastguard Worker     uint32_t           maxExecutionGraphShaderPayloadSize;
71*90277196SAndroid Build Coastguard Worker     uint32_t           maxExecutionGraphShaderPayloadCount;
72*90277196SAndroid Build Coastguard Worker     uint32_t           executionGraphDispatchAddressAlignment;
73*90277196SAndroid Build Coastguard Worker } VkPhysicalDeviceShaderEnqueuePropertiesAMDX;
74*90277196SAndroid Build Coastguard Worker 
75*90277196SAndroid Build Coastguard Worker typedef struct VkExecutionGraphPipelineScratchSizeAMDX {
76*90277196SAndroid Build Coastguard Worker     VkStructureType    sType;
77*90277196SAndroid Build Coastguard Worker     void*              pNext;
78*90277196SAndroid Build Coastguard Worker     VkDeviceSize       size;
79*90277196SAndroid Build Coastguard Worker } VkExecutionGraphPipelineScratchSizeAMDX;
80*90277196SAndroid Build Coastguard Worker 
81*90277196SAndroid Build Coastguard Worker typedef struct VkExecutionGraphPipelineCreateInfoAMDX {
82*90277196SAndroid Build Coastguard Worker     VkStructureType                           sType;
83*90277196SAndroid Build Coastguard Worker     const void*                               pNext;
84*90277196SAndroid Build Coastguard Worker     VkPipelineCreateFlags                     flags;
85*90277196SAndroid Build Coastguard Worker     uint32_t                                  stageCount;
86*90277196SAndroid Build Coastguard Worker     const VkPipelineShaderStageCreateInfo*    pStages;
87*90277196SAndroid Build Coastguard Worker     const VkPipelineLibraryCreateInfoKHR*     pLibraryInfo;
88*90277196SAndroid Build Coastguard Worker     VkPipelineLayout                          layout;
89*90277196SAndroid Build Coastguard Worker     VkPipeline                                basePipelineHandle;
90*90277196SAndroid Build Coastguard Worker     int32_t                                   basePipelineIndex;
91*90277196SAndroid Build Coastguard Worker } VkExecutionGraphPipelineCreateInfoAMDX;
92*90277196SAndroid Build Coastguard Worker 
93*90277196SAndroid Build Coastguard Worker typedef union VkDeviceOrHostAddressConstAMDX {
94*90277196SAndroid Build Coastguard Worker     VkDeviceAddress    deviceAddress;
95*90277196SAndroid Build Coastguard Worker     const void*        hostAddress;
96*90277196SAndroid Build Coastguard Worker } VkDeviceOrHostAddressConstAMDX;
97*90277196SAndroid Build Coastguard Worker 
98*90277196SAndroid Build Coastguard Worker typedef struct VkDispatchGraphInfoAMDX {
99*90277196SAndroid Build Coastguard Worker     uint32_t                          nodeIndex;
100*90277196SAndroid Build Coastguard Worker     uint32_t                          payloadCount;
101*90277196SAndroid Build Coastguard Worker     VkDeviceOrHostAddressConstAMDX    payloads;
102*90277196SAndroid Build Coastguard Worker     uint64_t                          payloadStride;
103*90277196SAndroid Build Coastguard Worker } VkDispatchGraphInfoAMDX;
104*90277196SAndroid Build Coastguard Worker 
105*90277196SAndroid Build Coastguard Worker typedef struct VkDispatchGraphCountInfoAMDX {
106*90277196SAndroid Build Coastguard Worker     uint32_t                          count;
107*90277196SAndroid Build Coastguard Worker     VkDeviceOrHostAddressConstAMDX    infos;
108*90277196SAndroid Build Coastguard Worker     uint64_t                          stride;
109*90277196SAndroid Build Coastguard Worker } VkDispatchGraphCountInfoAMDX;
110*90277196SAndroid Build Coastguard Worker 
111*90277196SAndroid Build Coastguard Worker typedef struct VkPipelineShaderStageNodeCreateInfoAMDX {
112*90277196SAndroid Build Coastguard Worker       VkStructureType    sType;
113*90277196SAndroid Build Coastguard Worker     const void*          pNext;
114*90277196SAndroid Build Coastguard Worker     const char*          pName;
115*90277196SAndroid Build Coastguard Worker     uint32_t             index;
116*90277196SAndroid Build Coastguard Worker } VkPipelineShaderStageNodeCreateInfoAMDX;
117*90277196SAndroid Build Coastguard Worker 
118*90277196SAndroid Build Coastguard Worker typedef VkResult (VKAPI_PTR *PFN_vkCreateExecutionGraphPipelinesAMDX)(VkDevice                                        device, VkPipelineCache                 pipelineCache, uint32_t                                        createInfoCount, const VkExecutionGraphPipelineCreateInfoAMDX* pCreateInfos, const VkAllocationCallbacks*    pAllocator, VkPipeline*               pPipelines);
119*90277196SAndroid Build Coastguard Worker typedef VkResult (VKAPI_PTR *PFN_vkGetExecutionGraphPipelineScratchSizeAMDX)(VkDevice                                        device, VkPipeline                                      executionGraph, VkExecutionGraphPipelineScratchSizeAMDX*         pSizeInfo);
120*90277196SAndroid Build Coastguard Worker typedef VkResult (VKAPI_PTR *PFN_vkGetExecutionGraphPipelineNodeIndexAMDX)(VkDevice                                        device, VkPipeline                                      executionGraph, const VkPipelineShaderStageNodeCreateInfoAMDX*   pNodeInfo, uint32_t*                                       pNodeIndex);
121*90277196SAndroid Build Coastguard Worker typedef void (VKAPI_PTR *PFN_vkCmdInitializeGraphScratchMemoryAMDX)(VkCommandBuffer                                 commandBuffer, VkDeviceAddress                                 scratch);
122*90277196SAndroid Build Coastguard Worker typedef void (VKAPI_PTR *PFN_vkCmdDispatchGraphAMDX)(VkCommandBuffer                                 commandBuffer, VkDeviceAddress                                 scratch, const VkDispatchGraphCountInfoAMDX*              pCountInfo);
123*90277196SAndroid Build Coastguard Worker typedef void (VKAPI_PTR *PFN_vkCmdDispatchGraphIndirectAMDX)(VkCommandBuffer                                 commandBuffer, VkDeviceAddress                                 scratch, const VkDispatchGraphCountInfoAMDX*              pCountInfo);
124*90277196SAndroid Build Coastguard Worker typedef void (VKAPI_PTR *PFN_vkCmdDispatchGraphIndirectCountAMDX)(VkCommandBuffer                                 commandBuffer, VkDeviceAddress                                 scratch, VkDeviceAddress                                 countInfo);
125*90277196SAndroid Build Coastguard Worker 
126*90277196SAndroid Build Coastguard Worker #ifndef VK_NO_PROTOTYPES
127*90277196SAndroid Build Coastguard Worker VKAPI_ATTR VkResult VKAPI_CALL vkCreateExecutionGraphPipelinesAMDX(
128*90277196SAndroid Build Coastguard Worker     VkDevice                                    device,
129*90277196SAndroid Build Coastguard Worker     VkPipelineCache                             pipelineCache,
130*90277196SAndroid Build Coastguard Worker     uint32_t                                    createInfoCount,
131*90277196SAndroid Build Coastguard Worker     const VkExecutionGraphPipelineCreateInfoAMDX* pCreateInfos,
132*90277196SAndroid Build Coastguard Worker     const VkAllocationCallbacks*                pAllocator,
133*90277196SAndroid Build Coastguard Worker     VkPipeline*                                 pPipelines);
134*90277196SAndroid Build Coastguard Worker 
135*90277196SAndroid Build Coastguard Worker VKAPI_ATTR VkResult VKAPI_CALL vkGetExecutionGraphPipelineScratchSizeAMDX(
136*90277196SAndroid Build Coastguard Worker     VkDevice                                    device,
137*90277196SAndroid Build Coastguard Worker     VkPipeline                                  executionGraph,
138*90277196SAndroid Build Coastguard Worker     VkExecutionGraphPipelineScratchSizeAMDX*    pSizeInfo);
139*90277196SAndroid Build Coastguard Worker 
140*90277196SAndroid Build Coastguard Worker VKAPI_ATTR VkResult VKAPI_CALL vkGetExecutionGraphPipelineNodeIndexAMDX(
141*90277196SAndroid Build Coastguard Worker     VkDevice                                    device,
142*90277196SAndroid Build Coastguard Worker     VkPipeline                                  executionGraph,
143*90277196SAndroid Build Coastguard Worker     const VkPipelineShaderStageNodeCreateInfoAMDX* pNodeInfo,
144*90277196SAndroid Build Coastguard Worker     uint32_t*                                   pNodeIndex);
145*90277196SAndroid Build Coastguard Worker 
146*90277196SAndroid Build Coastguard Worker VKAPI_ATTR void VKAPI_CALL vkCmdInitializeGraphScratchMemoryAMDX(
147*90277196SAndroid Build Coastguard Worker     VkCommandBuffer                             commandBuffer,
148*90277196SAndroid Build Coastguard Worker     VkDeviceAddress                             scratch);
149*90277196SAndroid Build Coastguard Worker 
150*90277196SAndroid Build Coastguard Worker VKAPI_ATTR void VKAPI_CALL vkCmdDispatchGraphAMDX(
151*90277196SAndroid Build Coastguard Worker     VkCommandBuffer                             commandBuffer,
152*90277196SAndroid Build Coastguard Worker     VkDeviceAddress                             scratch,
153*90277196SAndroid Build Coastguard Worker     const VkDispatchGraphCountInfoAMDX*         pCountInfo);
154*90277196SAndroid Build Coastguard Worker 
155*90277196SAndroid Build Coastguard Worker VKAPI_ATTR void VKAPI_CALL vkCmdDispatchGraphIndirectAMDX(
156*90277196SAndroid Build Coastguard Worker     VkCommandBuffer                             commandBuffer,
157*90277196SAndroid Build Coastguard Worker     VkDeviceAddress                             scratch,
158*90277196SAndroid Build Coastguard Worker     const VkDispatchGraphCountInfoAMDX*         pCountInfo);
159*90277196SAndroid Build Coastguard Worker 
160*90277196SAndroid Build Coastguard Worker VKAPI_ATTR void VKAPI_CALL vkCmdDispatchGraphIndirectCountAMDX(
161*90277196SAndroid Build Coastguard Worker     VkCommandBuffer                             commandBuffer,
162*90277196SAndroid Build Coastguard Worker     VkDeviceAddress                             scratch,
163*90277196SAndroid Build Coastguard Worker     VkDeviceAddress                             countInfo);
164*90277196SAndroid Build Coastguard Worker #endif
165*90277196SAndroid Build Coastguard Worker 
166*90277196SAndroid Build Coastguard Worker 
167*90277196SAndroid Build Coastguard Worker // VK_NV_displacement_micromap is a preprocessor guard. Do not pass it to API calls.
168*90277196SAndroid Build Coastguard Worker #define VK_NV_displacement_micromap 1
169*90277196SAndroid Build Coastguard Worker #define VK_NV_DISPLACEMENT_MICROMAP_SPEC_VERSION 2
170*90277196SAndroid Build Coastguard Worker #define VK_NV_DISPLACEMENT_MICROMAP_EXTENSION_NAME "VK_NV_displacement_micromap"
171*90277196SAndroid Build Coastguard Worker 
172*90277196SAndroid Build Coastguard Worker typedef enum VkDisplacementMicromapFormatNV {
173*90277196SAndroid Build Coastguard Worker     VK_DISPLACEMENT_MICROMAP_FORMAT_64_TRIANGLES_64_BYTES_NV = 1,
174*90277196SAndroid Build Coastguard Worker     VK_DISPLACEMENT_MICROMAP_FORMAT_256_TRIANGLES_128_BYTES_NV = 2,
175*90277196SAndroid Build Coastguard Worker     VK_DISPLACEMENT_MICROMAP_FORMAT_1024_TRIANGLES_128_BYTES_NV = 3,
176*90277196SAndroid Build Coastguard Worker     VK_DISPLACEMENT_MICROMAP_FORMAT_MAX_ENUM_NV = 0x7FFFFFFF
177*90277196SAndroid Build Coastguard Worker } VkDisplacementMicromapFormatNV;
178*90277196SAndroid Build Coastguard Worker typedef struct VkPhysicalDeviceDisplacementMicromapFeaturesNV {
179*90277196SAndroid Build Coastguard Worker     VkStructureType    sType;
180*90277196SAndroid Build Coastguard Worker     void*              pNext;
181*90277196SAndroid Build Coastguard Worker     VkBool32           displacementMicromap;
182*90277196SAndroid Build Coastguard Worker } VkPhysicalDeviceDisplacementMicromapFeaturesNV;
183*90277196SAndroid Build Coastguard Worker 
184*90277196SAndroid Build Coastguard Worker typedef struct VkPhysicalDeviceDisplacementMicromapPropertiesNV {
185*90277196SAndroid Build Coastguard Worker     VkStructureType    sType;
186*90277196SAndroid Build Coastguard Worker     void*              pNext;
187*90277196SAndroid Build Coastguard Worker     uint32_t           maxDisplacementMicromapSubdivisionLevel;
188*90277196SAndroid Build Coastguard Worker } VkPhysicalDeviceDisplacementMicromapPropertiesNV;
189*90277196SAndroid Build Coastguard Worker 
190*90277196SAndroid Build Coastguard Worker typedef struct VkAccelerationStructureTrianglesDisplacementMicromapNV {
191*90277196SAndroid Build Coastguard Worker     VkStructureType                     sType;
192*90277196SAndroid Build Coastguard Worker     void*                               pNext;
193*90277196SAndroid Build Coastguard Worker     VkFormat                            displacementBiasAndScaleFormat;
194*90277196SAndroid Build Coastguard Worker     VkFormat                            displacementVectorFormat;
195*90277196SAndroid Build Coastguard Worker     VkDeviceOrHostAddressConstKHR       displacementBiasAndScaleBuffer;
196*90277196SAndroid Build Coastguard Worker     VkDeviceSize                        displacementBiasAndScaleStride;
197*90277196SAndroid Build Coastguard Worker     VkDeviceOrHostAddressConstKHR       displacementVectorBuffer;
198*90277196SAndroid Build Coastguard Worker     VkDeviceSize                        displacementVectorStride;
199*90277196SAndroid Build Coastguard Worker     VkDeviceOrHostAddressConstKHR       displacedMicromapPrimitiveFlags;
200*90277196SAndroid Build Coastguard Worker     VkDeviceSize                        displacedMicromapPrimitiveFlagsStride;
201*90277196SAndroid Build Coastguard Worker     VkIndexType                         indexType;
202*90277196SAndroid Build Coastguard Worker     VkDeviceOrHostAddressConstKHR       indexBuffer;
203*90277196SAndroid Build Coastguard Worker     VkDeviceSize                        indexStride;
204*90277196SAndroid Build Coastguard Worker     uint32_t                            baseTriangle;
205*90277196SAndroid Build Coastguard Worker     uint32_t                            usageCountsCount;
206*90277196SAndroid Build Coastguard Worker     const VkMicromapUsageEXT*           pUsageCounts;
207*90277196SAndroid Build Coastguard Worker     const VkMicromapUsageEXT* const*    ppUsageCounts;
208*90277196SAndroid Build Coastguard Worker     VkMicromapEXT                       micromap;
209*90277196SAndroid Build Coastguard Worker } VkAccelerationStructureTrianglesDisplacementMicromapNV;
210*90277196SAndroid Build Coastguard Worker 
211*90277196SAndroid Build Coastguard Worker 
212*90277196SAndroid Build Coastguard Worker #ifdef __cplusplus
213*90277196SAndroid Build Coastguard Worker }
214*90277196SAndroid Build Coastguard Worker #endif
215*90277196SAndroid Build Coastguard Worker 
216*90277196SAndroid Build Coastguard Worker #endif
217