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