1 module sbylib.wrapper.vulkan.enums;
2 
3 import erupted;
4 
5 enum SurfaceTransform {
6     Identity = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR,
7     Rotate90 = VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR,
8     Rotate180 = VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR,
9     Rotate270 = VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR,
10     HorizontalMirror = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR,
11     HorizontalMirrorRotate90 = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR,
12     HorizontalMirrorRotate180 = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR,
13     HorizontalMirrorRotate270 = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR,
14     Ineherit = VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR,
15 }
16 
17 enum CompositeAlpha {
18     Opaque = VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR,
19     AlphaPreMultiplied = VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR,
20     AlphaPostMultiplied
21         = VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR, Inherit = VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR,
22 }
23 
24 enum ImageUsage {
25     TransferSrc = VK_IMAGE_USAGE_TRANSFER_SRC_BIT,
26     TransferDst = VK_IMAGE_USAGE_TRANSFER_DST_BIT,
27     Sampled = VK_IMAGE_USAGE_SAMPLED_BIT,
28     Storate = VK_IMAGE_USAGE_STORAGE_BIT,
29     ColorAttachment = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT,
30     DepthStencilAttachment = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,
31     TransientAttachment = VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT,
32     InputAttachment = VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT,
33     SharingRateImage = VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV,
34     FragmentDensityMap = VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT,
35 }
36 
37 enum SharingMode {
38     Exclusive = VK_SHARING_MODE_EXCLUSIVE,
39     Concurrent = VK_SHARING_MODE_CONCURRENT,
40 }
41 
42 enum PresentMode {
43     Immediate = VK_PRESENT_MODE_IMMEDIATE_KHR,
44     Mailbox = VK_PRESENT_MODE_MAILBOX_KHR,
45     FIFO = VK_PRESENT_MODE_FIFO_KHR,
46     FIFORelaxed = VK_PRESENT_MODE_FIFO_RELAXED_KHR,
47     SharedDemandRefresh = VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR,
48     SharedContinuousRefresh = VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR,
49 }
50 
51 enum ImageViewType {
52     Type1D = VK_IMAGE_VIEW_TYPE_1D,
53     Type2D = VK_IMAGE_VIEW_TYPE_2D,
54     Type3D = VK_IMAGE_VIEW_TYPE_3D,
55     TypeCube = VK_IMAGE_VIEW_TYPE_CUBE,
56     Type1DArray = VK_IMAGE_VIEW_TYPE_1D_ARRAY,
57     Type2DArray = VK_IMAGE_VIEW_TYPE_2D_ARRAY,
58     TypeCubeArray = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY,
59 }
60 
61 enum ComponentSwizzle {
62     Identity = VK_COMPONENT_SWIZZLE_IDENTITY,
63     Zero = VK_COMPONENT_SWIZZLE_ZERO,
64     One = VK_COMPONENT_SWIZZLE_ONE,
65     R = VK_COMPONENT_SWIZZLE_R,
66     G = VK_COMPONENT_SWIZZLE_G,
67     B = VK_COMPONENT_SWIZZLE_B,
68     A = VK_COMPONENT_SWIZZLE_A,
69 }
70 
71 enum ImageAspect {
72     Color = VK_IMAGE_ASPECT_COLOR_BIT,
73     Depth = VK_IMAGE_ASPECT_DEPTH_BIT,
74     Stencil = VK_IMAGE_ASPECT_STENCIL_BIT,
75     Metadata = VK_IMAGE_ASPECT_METADATA_BIT,
76     Plane0 = VK_IMAGE_ASPECT_PLANE_0_BIT,
77     Plane1 = VK_IMAGE_ASPECT_PLANE_1_BIT,
78     Plane2 = VK_IMAGE_ASPECT_PLANE_2_BIT,
79     MemoryPlane0 = VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT,
80     MemoryPlane1 = VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT,
81     MemoryPlane2
82         = VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT,
83         MemoryPlane3 = VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT,
84         Plane0KHR = VK_IMAGE_ASPECT_PLANE_0_BIT_KHR,
85         Plane1KHR = VK_IMAGE_ASPECT_PLANE_1_BIT_KHR, Plane2KHR = VK_IMAGE_ASPECT_PLANE_2_BIT_KHR,
86 }
87 
88 enum ShaderStage {
89     Vertex = VK_SHADER_STAGE_VERTEX_BIT,
90     TessellationControl = VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT,
91     TessellationEvaluation = VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT,
92     Geometry = VK_SHADER_STAGE_GEOMETRY_BIT,
93     Fragment = VK_SHADER_STAGE_FRAGMENT_BIT,
94     Task = VK_SHADER_STAGE_TASK_BIT_NV,
95     Mesh = VK_SHADER_STAGE_MESH_BIT_NV,
96     Compute = VK_SHADER_STAGE_COMPUTE_BIT,
97     Raygen = VK_SHADER_STAGE_RAYGEN_BIT_NV,
98     AnyHit = VK_SHADER_STAGE_ANY_HIT_BIT_NV,
99     ClosestHit = VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV,
100     Miss = VK_SHADER_STAGE_MISS_BIT_NV,
101     Intersection = VK_SHADER_STAGE_INTERSECTION_BIT_NV,
102     Callable = VK_SHADER_STAGE_CALLABLE_BIT_NV,
103 }
104 
105 enum VertexInputRate {
106     Vertex = VK_VERTEX_INPUT_RATE_VERTEX,
107     Instance = VK_VERTEX_INPUT_RATE_INSTANCE,
108 }
109 
110 enum PrimitiveTopology {
111     PointList = VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
112     LineList = VK_PRIMITIVE_TOPOLOGY_LINE_LIST,
113     LineStrip = VK_PRIMITIVE_TOPOLOGY_LINE_STRIP,
114     TriangleList = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,
115     TriangleStrip = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP,
116     TriangleFan = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN,
117     LineListWithAdjacency = VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY,
118     LineStripWithAdjacency = VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY,
119     TriangleListWithAdjacency = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY,
120     TriangleStripWithAdajacency = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY,
121     PatchList = VK_PRIMITIVE_TOPOLOGY_PATCH_LIST,
122 }
123 
124 enum PolygonMode {
125     Fill = VK_POLYGON_MODE_FILL,
126     Line = VK_POLYGON_MODE_LINE,
127     Point = VK_POLYGON_MODE_POINT,
128     FillRectangle = VK_POLYGON_MODE_FILL_RECTANGLE_NV,
129 }
130 
131 enum CullMode {
132     None = VK_CULL_MODE_NONE,
133     Front = VK_CULL_MODE_FRONT_BIT,
134     Back = VK_CULL_MODE_BACK_BIT,
135     FrontAndBack = VK_CULL_MODE_FRONT_AND_BACK,
136 }
137 
138 enum FrontFace {
139     CounterClockwise = VK_FRONT_FACE_COUNTER_CLOCKWISE,
140     Clockwise = VK_FRONT_FACE_CLOCKWISE,
141 }
142 
143 enum SampleCount {
144     Count1 = VK_SAMPLE_COUNT_1_BIT,
145     Count2 = VK_SAMPLE_COUNT_2_BIT,
146     Count4 = VK_SAMPLE_COUNT_4_BIT,
147     Count8 = VK_SAMPLE_COUNT_8_BIT,
148     Count16 = VK_SAMPLE_COUNT_16_BIT,
149     Count32 = VK_SAMPLE_COUNT_32_BIT,
150     Count64 = VK_SAMPLE_COUNT_64_BIT,
151 }
152 
153 enum AttachmentLoadOp {
154     Load = VK_ATTACHMENT_LOAD_OP_LOAD,
155     Clear = VK_ATTACHMENT_LOAD_OP_CLEAR,
156     DontCare = VK_ATTACHMENT_LOAD_OP_DONT_CARE,
157 }
158 
159 enum AttachmentStoreOp {
160     Store = VK_ATTACHMENT_STORE_OP_STORE,
161     DontCare = VK_ATTACHMENT_STORE_OP_DONT_CARE,
162 }
163 
164 enum ImageLayout {
165     Undefined = VK_IMAGE_LAYOUT_UNDEFINED,
166     General = VK_IMAGE_LAYOUT_GENERAL,
167     ColorAttachmentOptimal = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
168     DepthStencilAttachmentOptimal = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL,
169     DepthStencilReadOnlyOptimal = VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL,
170     ShaderReadOnlyOptimal = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL,
171     TransferSrcOptimal = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
172     TransferDstOptimal = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
173     Preinitialized = VK_IMAGE_LAYOUT_PREINITIALIZED,
174     DepthReadOnlyStencilAttachmentOptimal = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
175     DepthAttachmentStencilReadonlyOptimal = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
176     PresentSrc = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR,
177     SharedPresentSrc = VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR,
178     ShadingRateOptimal = VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV,
179     FragmentDensityMapOptimal = VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT,
180     DepthReadOnlyStencilAttachmentOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR,
181     DepthAttachmentStencilReaOnlyOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR,
182 }
183 
184 enum PipelineBindPoint {
185     Graphics = VK_PIPELINE_BIND_POINT_GRAPHICS,
186     Compute = VK_PIPELINE_BIND_POINT_COMPUTE,
187     RayTracing = VK_PIPELINE_BIND_POINT_RAY_TRACING_NV,
188 }
189 
190 enum PipelineStage {
191     None = 0,
192     TopOfPipe = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
193     DrawIndirect = VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT,
194     VertexInput = VK_PIPELINE_STAGE_VERTEX_INPUT_BIT,
195     VertexShader = VK_PIPELINE_STAGE_VERTEX_SHADER_BIT,
196     TessellationControlShader = VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT,
197     TessellationEvaluationShader = VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT,
198     GeometryShader = VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT,
199     FragmentShader = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,
200     EarlyFragmentTests = VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT,
201     LateFragmentTests = VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,
202     ColorAttachmentOutput = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
203     ComputeShader = VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT,
204     Transfer = VK_PIPELINE_STAGE_TRANSFER_BIT,
205     BottomOfPipe = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT,
206     Host = VK_PIPELINE_STAGE_HOST_BIT, AllGraphics = VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT,
207     AllCommands = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT,
208     TransformFeedback = VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT,
209     ConditionalRendering = VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT,
210     CommandProcess = VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX,
211     ShadingRateImage = VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV,
212     RayTracingShader = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV,
213     AccelerationStructureBuild = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV,
214     TaskShader = VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV,
215     MeshShader = VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV,
216     FragmentDensityProcess = VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT,
217 }
218 
219 enum CommandBufferLevel {
220     Primary = VK_COMMAND_BUFFER_LEVEL_PRIMARY,
221     Secondary = VK_COMMAND_BUFFER_LEVEL_SECONDARY,
222 }
223 
224 enum BufferUsage {
225     TransferSrc = VK_BUFFER_USAGE_TRANSFER_SRC_BIT,
226     TransferDst = VK_BUFFER_USAGE_TRANSFER_DST_BIT,
227     UniformTexelBuffer = VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT,
228     StorateTexelBuffer = VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT,
229     UniformBuffer = VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,
230     StorageBuffer = VK_BUFFER_USAGE_STORAGE_BUFFER_BIT,
231     IndexBuffer = VK_BUFFER_USAGE_INDEX_BUFFER_BIT,
232     VertexBuffer = VK_BUFFER_USAGE_VERTEX_BUFFER_BIT,
233     IndirectBuffer
234         = VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT,
235         TransformFeedbackBuffer = VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT,
236         TransformFeedbackCounterBuffer = VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT,
237         ConditionalRendering = VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT,
238         RayTracing = VK_BUFFER_USAGE_RAY_TRACING_BIT_NV,
239         ShaderDeviceAddress = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT,
240 }
241 
242 enum LogicOp {
243     Clear = VK_LOGIC_OP_CLEAR,
244     And = VK_LOGIC_OP_AND,
245     AndReverse = VK_LOGIC_OP_AND_REVERSE,
246     Copy = VK_LOGIC_OP_COPY,
247     AndInverted = VK_LOGIC_OP_AND_INVERTED,
248     NoOp = VK_LOGIC_OP_NO_OP,
249     Xor = VK_LOGIC_OP_XOR,
250     Or = VK_LOGIC_OP_OR,
251     Nor = VK_LOGIC_OP_NOR,
252     Equivalent = VK_LOGIC_OP_EQUIVALENT,
253     Invert = VK_LOGIC_OP_INVERT,
254     OrReverse = VK_LOGIC_OP_OR_REVERSE,
255     CopyInverted = VK_LOGIC_OP_COPY_INVERTED,
256     OrInverted = VK_LOGIC_OP_OR_INVERTED,
257     Nand = VK_LOGIC_OP_NAND,
258     Set = VK_LOGIC_OP_SET,
259 }
260 
261 enum BlendFactor {
262     Zero = VK_BLEND_FACTOR_ZERO,
263     One = VK_BLEND_FACTOR_ONE,
264     SrcColor = VK_BLEND_FACTOR_SRC_COLOR,
265     OneMInusSrcColor
266         = VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR, DstColor = VK_BLEND_FACTOR_DST_COLOR,
267         OneMinusDstColor = VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR,
268         SrcAlpha = VK_BLEND_FACTOR_SRC_ALPHA,
269         OneMinusSrcAlpha = VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA,
270         DstAlpha = VK_BLEND_FACTOR_DST_ALPHA, OneMinusDstAlpha = VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA,
271         ConstantColor = VK_BLEND_FACTOR_CONSTANT_COLOR,
272         OneMinusConstantColor = VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR,
273         ConstantAlpha = VK_BLEND_FACTOR_CONSTANT_ALPHA,
274         OneMinusConstantAlpha = VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA,
275         SrcAlphaSaturate = VK_BLEND_FACTOR_SRC_ALPHA_SATURATE, Src1Color = VK_BLEND_FACTOR_SRC1_COLOR,
276         OneMinusSrc1Color = VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR,
277         Src1Alpha = VK_BLEND_FACTOR_SRC1_ALPHA,
278         OneMinusSrc1Alpha = VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA,
279 }
280 
281 enum BlendOp {
282     Add = VK_BLEND_OP_ADD,
283     Subtract = VK_BLEND_OP_SUBTRACT,
284     ReverseSubtract
285         = VK_BLEND_OP_REVERSE_SUBTRACT, Min = VK_BLEND_OP_MIN, Max = VK_BLEND_OP_MAX,
286         Zero = VK_BLEND_OP_ZERO_EXT, Src = VK_BLEND_OP_SRC_EXT,
287         Dst = VK_BLEND_OP_DST_EXT, SrcOver = VK_BLEND_OP_SRC_OVER_EXT,
288         DstOver = VK_BLEND_OP_DST_OVER_EXT, SrcIn = VK_BLEND_OP_SRC_IN_EXT,
289         DstIn = VK_BLEND_OP_DST_IN_EXT,
290         SrcOut = VK_BLEND_OP_SRC_OUT_EXT,
291         DstOut = VK_BLEND_OP_DST_OUT_EXT, SrcAtop = VK_BLEND_OP_SRC_ATOP_EXT,
292         DstAtop = VK_BLEND_OP_DST_ATOP_EXT, Xor = VK_BLEND_OP_XOR_EXT,
293         Multiply = VK_BLEND_OP_MULTIPLY_EXT,
294         Screen = VK_BLEND_OP_SCREEN_EXT,
295         Overlay = VK_BLEND_OP_OVERLAY_EXT, Darken = VK_BLEND_OP_DARKEN_EXT,
296         Lighten = VK_BLEND_OP_LIGHTEN_EXT, Colordodge = VK_BLEND_OP_COLORDODGE_EXT,
297         Colorburn = VK_BLEND_OP_COLORBURN_EXT,
298         Hardlight = VK_BLEND_OP_HARDLIGHT_EXT,
299         Softlight = VK_BLEND_OP_SOFTLIGHT_EXT,
300         Difference = VK_BLEND_OP_DIFFERENCE_EXT, Exclusion = VK_BLEND_OP_EXCLUSION_EXT,
301         Invert = VK_BLEND_OP_INVERT_EXT, InvertRGB = VK_BLEND_OP_INVERT_RGB_EXT,
302         Lineardodge = VK_BLEND_OP_LINEARDODGE_EXT,
303         Linearburn = VK_BLEND_OP_LINEARBURN_EXT,
304         Vividlight = VK_BLEND_OP_VIVIDLIGHT_EXT,
305         Linearlight = VK_BLEND_OP_LINEARLIGHT_EXT, Pinlight = VK_BLEND_OP_PINLIGHT_EXT,
306         Hardmix = VK_BLEND_OP_HARDMIX_EXT, HSLHue = VK_BLEND_OP_HSL_HUE_EXT,
307         HSLSaturation = VK_BLEND_OP_HSL_SATURATION_EXT,
308         HSLColor = VK_BLEND_OP_HSL_COLOR_EXT,
309         HSLLuminosity = VK_BLEND_OP_HSL_LUMINOSITY_EXT,
310         Plus = VK_BLEND_OP_PLUS_EXT, PlusClamped = VK_BLEND_OP_PLUS_CLAMPED_EXT,
311         PlusClampedAlpha = VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT,
312         PlusDarker = VK_BLEND_OP_PLUS_DARKER_EXT,
313         Minus = VK_BLEND_OP_MINUS_EXT,
314         MinusClamped = VK_BLEND_OP_MINUS_CLAMPED_EXT,
315         Contrast = VK_BLEND_OP_CONTRAST_EXT, InvertOVG = VK_BLEND_OP_INVERT_OVG_EXT,
316         Red = VK_BLEND_OP_RED_EXT, Green = VK_BLEND_OP_GREEN_EXT, Blue = VK_BLEND_OP_BLUE_EXT,
317 }
318 
319 enum ColorComponent {
320     R = VK_COLOR_COMPONENT_R_BIT,
321     G = VK_COLOR_COMPONENT_G_BIT,
322     B = VK_COLOR_COMPONENT_B_BIT,
323     A = VK_COLOR_COMPONENT_A_BIT,
324 }
325 
326 enum SubpassContents {
327     Inline = VK_SUBPASS_CONTENTS_INLINE,
328     SecondaryCommandBuffers = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS,
329 }
330 
331 enum DescriptorType {
332     Sampler = VK_DESCRIPTOR_TYPE_SAMPLER,
333     CombinedImageSampler = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
334     SampledImage = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE,
335     StorageImage = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE,
336     UniformTexelBuffer = VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER,
337     StorageTexelBuffer = VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER,
338     UniformBuffer = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
339     StorageBuffer = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER,
340     UniformBufferDynamic = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC,
341     StorageBufferDybamic = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC,
342     InputAttachment = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT,
343     InlineUinformBlock = VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT,
344     AccelerationStructure = VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV,
345 }
346 
347 enum ImageType {
348     Type1D = VK_IMAGE_TYPE_1D,
349     Type2D = VK_IMAGE_TYPE_2D,
350     Type3D = VK_IMAGE_TYPE_3D,
351 }
352 
353 enum ImageTiling {
354     Optimal = VK_IMAGE_TILING_OPTIMAL,
355     Linear = VK_IMAGE_TILING_LINEAR,
356     DRMFormatModifier = VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT,
357 }
358 
359 enum AccessFlags {
360     IndirectCommandRead = VK_ACCESS_INDIRECT_COMMAND_READ_BIT,
361     IndexRead = VK_ACCESS_INDEX_READ_BIT,
362     VertxAttributeRead = VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT, UniformRead = VK_ACCESS_UNIFORM_READ_BIT,
363     InputAttachmentRead = VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,
364     ShaderRead = VK_ACCESS_SHADER_READ_BIT,
365     ShaderWrite = VK_ACCESS_SHADER_WRITE_BIT,
366     ColorAttachmentRead = VK_ACCESS_COLOR_ATTACHMENT_READ_BIT,
367     ColorAttachmentWrite = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
368     DepthStencilAttachmentRead = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT,
369     DepthStencilAttachmentWrite = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,
370     TransferRead = VK_ACCESS_TRANSFER_READ_BIT,
371     TransferWrite = VK_ACCESS_TRANSFER_WRITE_BIT,
372     HostRead = VK_ACCESS_HOST_READ_BIT,
373     HostWrite = VK_ACCESS_HOST_WRITE_BIT, MemoryRead = VK_ACCESS_MEMORY_READ_BIT,
374     MemoryWrite = VK_ACCESS_MEMORY_WRITE_BIT,
375     TransformFeedbackWrite = VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,
376     TransformFeedbackRead = VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT,
377     TransformFeedbackCounterWrite = VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,
378     TransformFeedbackCounterRead = VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT,
379     CommandProcessRead = VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX,
380     CommandProcessWrite = VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX,
381     ColorAttachmentReadNoncoherent = VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT,
382     ShadingRateImageRead = VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV,
383     AccelerationStructureRead = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV,
384     AccelerationStructureWrite = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV,
385     FragmentDensityMapRead = VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT,
386 }
387 
388 enum SamplerFilter {
389     Nearest = VK_FILTER_NEAREST,
390     Linear = VK_FILTER_LINEAR,
391     Cubic = VK_FILTER_CUBIC_IMG,
392 }
393 
394 enum SamplerMipmapMode {
395     Nearest = VK_SAMPLER_MIPMAP_MODE_NEAREST,
396     Linear = VK_SAMPLER_MIPMAP_MODE_LINEAR,
397 }
398 
399 enum SamplerAddressMode {
400     Repeat = VK_SAMPLER_ADDRESS_MODE_REPEAT,
401     MirroredRepeat = VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT,
402     ClampToEdge = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,
403     ClampToBorder = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER,
404     MirrorClampToEdge = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE,
405 }
406 
407 enum CompareOp {
408     Never = VK_COMPARE_OP_NEVER,
409     Less = VK_COMPARE_OP_LESS,
410     Equal = VK_COMPARE_OP_EQUAL,
411     LessOrEqual = VK_COMPARE_OP_LESS_OR_EQUAL,
412     Greater = VK_COMPARE_OP_GREATER,
413     NotEqual = VK_COMPARE_OP_NOT_EQUAL,
414     GreaterOrEqual = VK_COMPARE_OP_GREATER_OR_EQUAL,
415     Always = VK_COMPARE_OP_ALWAYS,
416 }
417 
418 enum BorderColor {
419     FloatTransparentBlack = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,
420     IntTransparentBlack = VK_BORDER_COLOR_INT_TRANSPARENT_BLACK,
421     FloatOpaqueBlack = VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK,
422     IntOpaqueBlack = VK_BORDER_COLOR_INT_OPAQUE_BLACK,
423     FloatOpaqueWhite = VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE,
424     IntOpaqueWhite = VK_BORDER_COLOR_INT_OPAQUE_WHITE,
425 }
426 
427 enum DependencyFlags {
428     ByRegion = VK_DEPENDENCY_BY_REGION_BIT,
429     DeviceGroup = VK_DEPENDENCY_DEVICE_GROUP_BIT,
430     ViewLocal = VK_DEPENDENCY_VIEW_LOCAL_BIT,
431 }
432 
433 enum IndexType {
434     Uint16 = VK_INDEX_TYPE_UINT16,
435     Uint32 = VK_INDEX_TYPE_UINT32,
436     None = VK_INDEX_TYPE_NONE_NV,
437     Uint8 = VK_INDEX_TYPE_UINT8_EXT,
438 }
439 
440 enum DebugReportObjectType {
441     Unknown = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,
442     Instance = VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT,
443     PhysicalDevice = VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT,
444     Device = VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT,
445     Queue = VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT,
446     Semaphore = VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT,
447     CommandBuffer = VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT,
448     Fence = VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT,
449     DeviceMemory = VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT,
450     Buffer = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT,
451     Image = VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT,
452     Event = VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT,
453     QueryPool = VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT,
454     BufferView = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT,
455     ImageView = VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT,
456     ShaderModule = VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT,
457     PipelineCache = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT,
458     PipelineLayout = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT,
459     RenderPass = VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT,
460     Pipeline = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT,
461     DescriptorSetLayout = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT,
462     Sampler = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT,
463     DescriptorPool = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT,
464     DescriptorSet = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT,
465     Framebuffer = VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT,
466     CommandPool = VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT,
467     Surface = VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT,
468     Swapchain = VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT,
469     ReportCallback = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
470     Display = VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT,
471     DisplayMode = VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT,
472     ObjectTable = VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT,
473     IndirectCommandsLayout = VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT,
474     ValidationCacheEXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
475     SamplerYCBCRConversion = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,
476     DescriptorUpdateTemplate = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT,
477     AccelerationStructure = VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT,
478     DebugReport = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT,
479     ValidationCache = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT,
480     DescriptorUpdateTemplateKHR = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT,
481     SamplerYCBCRConversionKHR = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT,
482 }