// // Vulkan wrapper generated from "https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/master/include/vulkan/vulkan_core.h" // package vulkan import "core:c" import win32 "core:sys/windows" _ :: win32 import "vendor:x11/xlib" _ :: xlib when ODIN_OS == .Windows { HINSTANCE :: win32.HINSTANCE HWND :: win32.HWND HMONITOR :: win32.HMONITOR HANDLE :: win32.HANDLE LPCWSTR :: win32.LPCWSTR SECURITY_ATTRIBUTES :: win32.SECURITY_ATTRIBUTES DWORD :: win32.DWORD LONG :: win32.LONG LUID :: win32.LUID } else { HINSTANCE :: distinct rawptr HWND :: distinct rawptr HMONITOR :: distinct rawptr HANDLE :: distinct rawptr LPCWSTR :: ^u16 SECURITY_ATTRIBUTES :: struct {} DWORD :: u32 LONG :: c.long LUID :: struct { LowPart: DWORD, HighPart: LONG, } } when xlib.IS_SUPPORTED { XlibDisplay :: xlib.Display XlibWindow :: xlib.Window XlibVisualID :: xlib.VisualID } else { XlibDisplay :: struct {} // Opaque struct defined by Xlib XlibWindow :: c.ulong XlibVisualID :: c.ulong } xcb_visualid_t :: u32 xcb_window_t :: u32 CAMetalLayer :: struct {} MTLBuffer_id :: rawptr MTLTexture_id :: rawptr MTLSharedEvent_id :: rawptr MTLDevice_id :: rawptr MTLCommandQueue_id :: rawptr /********************************/ Extent2D :: struct { width: u32, height: u32, } Extent3D :: struct { width: u32, height: u32, depth: u32, } Offset2D :: struct { x: i32, y: i32, } Offset3D :: struct { x: i32, y: i32, z: i32, } Rect2D :: struct { offset: Offset2D, extent: Extent2D, } BaseInStructure :: struct { sType: StructureType, pNext: ^BaseInStructure, } BaseOutStructure :: struct { sType: StructureType, pNext: ^BaseOutStructure, } BufferMemoryBarrier :: struct { sType: StructureType, pNext: rawptr, srcAccessMask: AccessFlags, dstAccessMask: AccessFlags, srcQueueFamilyIndex: u32, dstQueueFamilyIndex: u32, buffer: Buffer, offset: DeviceSize, size: DeviceSize, } DispatchIndirectCommand :: struct { x: u32, y: u32, z: u32, } DrawIndexedIndirectCommand :: struct { indexCount: u32, instanceCount: u32, firstIndex: u32, vertexOffset: i32, firstInstance: u32, } DrawIndirectCommand :: struct { vertexCount: u32, instanceCount: u32, firstVertex: u32, firstInstance: u32, } ImageSubresourceRange :: struct { aspectMask: ImageAspectFlags, baseMipLevel: u32, levelCount: u32, baseArrayLayer: u32, layerCount: u32, } ImageMemoryBarrier :: struct { sType: StructureType, pNext: rawptr, srcAccessMask: AccessFlags, dstAccessMask: AccessFlags, oldLayout: ImageLayout, newLayout: ImageLayout, srcQueueFamilyIndex: u32, dstQueueFamilyIndex: u32, image: Image, subresourceRange: ImageSubresourceRange, } MemoryBarrier :: struct { sType: StructureType, pNext: rawptr, srcAccessMask: AccessFlags, dstAccessMask: AccessFlags, } PipelineCacheHeaderVersionOne :: struct { headerSize: u32, headerVersion: PipelineCacheHeaderVersion, vendorID: u32, deviceID: u32, pipelineCacheUUID: [UUID_SIZE]u8, } AllocationCallbacks :: struct { pUserData: rawptr, pfnAllocation: ProcAllocationFunction, pfnReallocation: ProcReallocationFunction, pfnFree: ProcFreeFunction, pfnInternalAllocation: ProcInternalAllocationNotification, pfnInternalFree: ProcInternalFreeNotification, } ApplicationInfo :: struct { sType: StructureType, pNext: rawptr, pApplicationName: cstring, applicationVersion: u32, pEngineName: cstring, engineVersion: u32, apiVersion: u32, } FormatProperties :: struct { linearTilingFeatures: FormatFeatureFlags, optimalTilingFeatures: FormatFeatureFlags, bufferFeatures: FormatFeatureFlags, } ImageFormatProperties :: struct { maxExtent: Extent3D, maxMipLevels: u32, maxArrayLayers: u32, sampleCounts: SampleCountFlags, maxResourceSize: DeviceSize, } InstanceCreateInfo :: struct { sType: StructureType, pNext: rawptr, flags: InstanceCreateFlags, pApplicationInfo: ^ApplicationInfo, enabledLayerCount: u32, ppEnabledLayerNames: [^]cstring, enabledExtensionCount: u32, ppEnabledExtensionNames: [^]cstring, } MemoryHeap :: struct { size: DeviceSize, flags: MemoryHeapFlags, } MemoryType :: struct { propertyFlags: MemoryPropertyFlags, heapIndex: u32, } PhysicalDeviceFeatures :: struct { robustBufferAccess: b32, fullDrawIndexUint32: b32, imageCubeArray: b32, independentBlend: b32, geometryShader: b32, tessellationShader: b32, sampleRateShading: b32, dualSrcBlend: b32, logicOp: b32, multiDrawIndirect: b32, drawIndirectFirstInstance: b32, depthClamp: b32, depthBiasClamp: b32, fillModeNonSolid: b32, depthBounds: b32, wideLines: b32, largePoints: b32, alphaToOne: b32, multiViewport: b32, samplerAnisotropy: b32, textureCompressionETC2: b32, textureCompressionASTC_LDR: b32, textureCompressionBC: b32, occlusionQueryPrecise: b32, pipelineStatisticsQuery: b32, vertexPipelineStoresAndAtomics: b32, fragmentStoresAndAtomics: b32, shaderTessellationAndGeometryPointSize: b32, shaderImageGatherExtended: b32, shaderStorageImageExtendedFormats: b32, shaderStorageImageMultisample: b32, shaderStorageImageReadWithoutFormat: b32, shaderStorageImageWriteWithoutFormat: b32, shaderUniformBufferArrayDynamicIndexing: b32, shaderSampledImageArrayDynamicIndexing: b32, shaderStorageBufferArrayDynamicIndexing: b32, shaderStorageImageArrayDynamicIndexing: b32, shaderClipDistance: b32, shaderCullDistance: b32, shaderFloat64: b32, shaderInt64: b32, shaderInt16: b32, shaderResourceResidency: b32, shaderResourceMinLod: b32, sparseBinding: b32, sparseResidencyBuffer: b32, sparseResidencyImage2D: b32, sparseResidencyImage3D: b32, sparseResidency2Samples: b32, sparseResidency4Samples: b32, sparseResidency8Samples: b32, sparseResidency16Samples: b32, sparseResidencyAliased: b32, variableMultisampleRate: b32, inheritedQueries: b32, } PhysicalDeviceLimits :: struct { maxImageDimension1D: u32, maxImageDimension2D: u32, maxImageDimension3D: u32, maxImageDimensionCube: u32, maxImageArrayLayers: u32, maxTexelBufferElements: u32, maxUniformBufferRange: u32, maxStorageBufferRange: u32, maxPushConstantsSize: u32, maxMemoryAllocationCount: u32, maxSamplerAllocationCount: u32, bufferImageGranularity: DeviceSize, sparseAddressSpaceSize: DeviceSize, maxBoundDescriptorSets: u32, maxPerStageDescriptorSamplers: u32, maxPerStageDescriptorUniformBuffers: u32, maxPerStageDescriptorStorageBuffers: u32, maxPerStageDescriptorSampledImages: u32, maxPerStageDescriptorStorageImages: u32, maxPerStageDescriptorInputAttachments: u32, maxPerStageResources: u32, maxDescriptorSetSamplers: u32, maxDescriptorSetUniformBuffers: u32, maxDescriptorSetUniformBuffersDynamic: u32, maxDescriptorSetStorageBuffers: u32, maxDescriptorSetStorageBuffersDynamic: u32, maxDescriptorSetSampledImages: u32, maxDescriptorSetStorageImages: u32, maxDescriptorSetInputAttachments: u32, maxVertexInputAttributes: u32, maxVertexInputBindings: u32, maxVertexInputAttributeOffset: u32, maxVertexInputBindingStride: u32, maxVertexOutputComponents: u32, maxTessellationGenerationLevel: u32, maxTessellationPatchSize: u32, maxTessellationControlPerVertexInputComponents: u32, maxTessellationControlPerVertexOutputComponents: u32, maxTessellationControlPerPatchOutputComponents: u32, maxTessellationControlTotalOutputComponents: u32, maxTessellationEvaluationInputComponents: u32, maxTessellationEvaluationOutputComponents: u32, maxGeometryShaderInvocations: u32, maxGeometryInputComponents: u32, maxGeometryOutputComponents: u32, maxGeometryOutputVertices: u32, maxGeometryTotalOutputComponents: u32, maxFragmentInputComponents: u32, maxFragmentOutputAttachments: u32, maxFragmentDualSrcAttachments: u32, maxFragmentCombinedOutputResources: u32, maxComputeSharedMemorySize: u32, maxComputeWorkGroupCount: [3]u32, maxComputeWorkGroupInvocations: u32, maxComputeWorkGroupSize: [3]u32, subPixelPrecisionBits: u32, subTexelPrecisionBits: u32, mipmapPrecisionBits: u32, maxDrawIndexedIndexValue: u32, maxDrawIndirectCount: u32, maxSamplerLodBias: f32, maxSamplerAnisotropy: f32, maxViewports: u32, maxViewportDimensions: [2]u32, viewportBoundsRange: [2]f32, viewportSubPixelBits: u32, minMemoryMapAlignment: int, minTexelBufferOffsetAlignment: DeviceSize, minUniformBufferOffsetAlignment: DeviceSize, minStorageBufferOffsetAlignment: DeviceSize, minTexelOffset: i32, maxTexelOffset: u32, minTexelGatherOffset: i32, maxTexelGatherOffset: u32, minInterpolationOffset: f32, maxInterpolationOffset: f32, subPixelInterpolationOffsetBits: u32, maxFramebufferWidth: u32, maxFramebufferHeight: u32, maxFramebufferLayers: u32, framebufferColorSampleCounts: SampleCountFlags, framebufferDepthSampleCounts: SampleCountFlags, framebufferStencilSampleCounts: SampleCountFlags, framebufferNoAttachmentsSampleCounts: SampleCountFlags, maxColorAttachments: u32, sampledImageColorSampleCounts: SampleCountFlags, sampledImageIntegerSampleCounts: SampleCountFlags, sampledImageDepthSampleCounts: SampleCountFlags, sampledImageStencilSampleCounts: SampleCountFlags, storageImageSampleCounts: SampleCountFlags, maxSampleMaskWords: u32, timestampComputeAndGraphics: b32, timestampPeriod: f32, maxClipDistances: u32, maxCullDistances: u32, maxCombinedClipAndCullDistances: u32, discreteQueuePriorities: u32, pointSizeRange: [2]f32, lineWidthRange: [2]f32, pointSizeGranularity: f32, lineWidthGranularity: f32, strictLines: b32, standardSampleLocations: b32, optimalBufferCopyOffsetAlignment: DeviceSize, optimalBufferCopyRowPitchAlignment: DeviceSize, nonCoherentAtomSize: DeviceSize, } PhysicalDeviceMemoryProperties :: struct { memoryTypeCount: u32, memoryTypes: [MAX_MEMORY_TYPES]MemoryType, memoryHeapCount: u32, memoryHeaps: [MAX_MEMORY_HEAPS]MemoryHeap, } PhysicalDeviceSparseProperties :: struct { residencyStandard2DBlockShape: b32, residencyStandard2DMultisampleBlockShape: b32, residencyStandard3DBlockShape: b32, residencyAlignedMipSize: b32, residencyNonResidentStrict: b32, } PhysicalDeviceProperties :: struct { apiVersion: u32, driverVersion: u32, vendorID: u32, deviceID: u32, deviceType: PhysicalDeviceType, deviceName: [MAX_PHYSICAL_DEVICE_NAME_SIZE]byte, pipelineCacheUUID: [UUID_SIZE]u8, limits: PhysicalDeviceLimits, sparseProperties: PhysicalDeviceSparseProperties, } QueueFamilyProperties :: struct { queueFlags: QueueFlags, queueCount: u32, timestampValidBits: u32, minImageTransferGranularity: Extent3D, } DeviceQueueCreateInfo :: struct { sType: StructureType, pNext: rawptr, flags: DeviceQueueCreateFlags, queueFamilyIndex: u32, queueCount: u32, pQueuePriorities: [^]f32, } DeviceCreateInfo :: struct { sType: StructureType, pNext: rawptr, flags: DeviceCreateFlags, queueCreateInfoCount: u32, pQueueCreateInfos: [^]DeviceQueueCreateInfo, enabledLayerCount: u32, ppEnabledLayerNames: [^]cstring, enabledExtensionCount: u32, ppEnabledExtensionNames: [^]cstring, pEnabledFeatures: [^]PhysicalDeviceFeatures, } ExtensionProperties :: struct { extensionName: [MAX_EXTENSION_NAME_SIZE]byte, specVersion: u32, } LayerProperties :: struct { layerName: [MAX_EXTENSION_NAME_SIZE]byte, specVersion: u32, implementationVersion: u32, description: [MAX_DESCRIPTION_SIZE]byte, } SubmitInfo :: struct { sType: StructureType, pNext: rawptr, waitSemaphoreCount: u32, pWaitSemaphores: [^]Semaphore, pWaitDstStageMask: [^]PipelineStageFlags, commandBufferCount: u32, pCommandBuffers: [^]CommandBuffer, signalSemaphoreCount: u32, pSignalSemaphores: [^]Semaphore, } MappedMemoryRange :: struct { sType: StructureType, pNext: rawptr, memory: DeviceMemory, offset: DeviceSize, size: DeviceSize, } MemoryAllocateInfo :: struct { sType: StructureType, pNext: rawptr, allocationSize: DeviceSize, memoryTypeIndex: u32, } MemoryRequirements :: struct { size: DeviceSize, alignment: DeviceSize, memoryTypeBits: u32, } SparseMemoryBind :: struct { resourceOffset: DeviceSize, size: DeviceSize, memory: DeviceMemory, memoryOffset: DeviceSize, flags: SparseMemoryBindFlags, } SparseBufferMemoryBindInfo :: struct { buffer: Buffer, bindCount: u32, pBinds: [^]SparseMemoryBind, } SparseImageOpaqueMemoryBindInfo :: struct { image: Image, bindCount: u32, pBinds: [^]SparseMemoryBind, } ImageSubresource :: struct { aspectMask: ImageAspectFlags, mipLevel: u32, arrayLayer: u32, } SparseImageMemoryBind :: struct { subresource: ImageSubresource, offset: Offset3D, extent: Extent3D, memory: DeviceMemory, memoryOffset: DeviceSize, flags: SparseMemoryBindFlags, } SparseImageMemoryBindInfo :: struct { image: Image, bindCount: u32, pBinds: [^]SparseImageMemoryBind, } BindSparseInfo :: struct { sType: StructureType, pNext: rawptr, waitSemaphoreCount: u32, pWaitSemaphores: [^]Semaphore, bufferBindCount: u32, pBufferBinds: [^]SparseBufferMemoryBindInfo, imageOpaqueBindCount: u32, pImageOpaqueBinds: [^]SparseImageOpaqueMemoryBindInfo, imageBindCount: u32, pImageBinds: [^]SparseImageMemoryBindInfo, signalSemaphoreCount: u32, pSignalSemaphores: [^]Semaphore, } SparseImageFormatProperties :: struct { aspectMask: ImageAspectFlags, imageGranularity: Extent3D, flags: SparseImageFormatFlags, } SparseImageMemoryRequirements :: struct { formatProperties: SparseImageFormatProperties, imageMipTailFirstLod: u32, imageMipTailSize: DeviceSize, imageMipTailOffset: DeviceSize, imageMipTailStride: DeviceSize, } FenceCreateInfo :: struct { sType: StructureType, pNext: rawptr, flags: FenceCreateFlags, } SemaphoreCreateInfo :: struct { sType: StructureType, pNext: rawptr, flags: SemaphoreCreateFlags, } EventCreateInfo :: struct { sType: StructureType, pNext: rawptr, flags: EventCreateFlags, } QueryPoolCreateInfo :: struct { sType: StructureType, pNext: rawptr, flags: QueryPoolCreateFlags, queryType: QueryType, queryCount: u32, pipelineStatistics: QueryPipelineStatisticFlags, } BufferCreateInfo :: struct { sType: StructureType, pNext: rawptr, flags: BufferCreateFlags, size: DeviceSize, usage: BufferUsageFlags, sharingMode: SharingMode, queueFamilyIndexCount: u32, pQueueFamilyIndices: [^]u32, } BufferViewCreateInfo :: struct { sType: StructureType, pNext: rawptr, flags: BufferViewCreateFlags, buffer: Buffer, format: Format, offset: DeviceSize, range: DeviceSize, } ImageCreateInfo :: struct { sType: StructureType, pNext: rawptr, flags: ImageCreateFlags, imageType: ImageType, format: Format, extent: Extent3D, mipLevels: u32, arrayLayers: u32, samples: SampleCountFlags, tiling: ImageTiling, usage: ImageUsageFlags, sharingMode: SharingMode, queueFamilyIndexCount: u32, pQueueFamilyIndices: [^]u32, initialLayout: ImageLayout, } SubresourceLayout :: struct { offset: DeviceSize, size: DeviceSize, rowPitch: DeviceSize, arrayPitch: DeviceSize, depthPitch: DeviceSize, } ComponentMapping :: struct { r: ComponentSwizzle, g: ComponentSwizzle, b: ComponentSwizzle, a: ComponentSwizzle, } ImageViewCreateInfo :: struct { sType: StructureType, pNext: rawptr, flags: ImageViewCreateFlags, image: Image, viewType: ImageViewType, format: Format, components: ComponentMapping, subresourceRange: ImageSubresourceRange, } ShaderModuleCreateInfo :: struct { sType: StructureType, pNext: rawptr, flags: ShaderModuleCreateFlags, codeSize: int, pCode: ^u32, } PipelineCacheCreateInfo :: struct { sType: StructureType, pNext: rawptr, flags: PipelineCacheCreateFlags, initialDataSize: int, pInitialData: rawptr, } SpecializationMapEntry :: struct { constantID: u32, offset: u32, size: int, } SpecializationInfo :: struct { mapEntryCount: u32, pMapEntries: [^]SpecializationMapEntry, dataSize: int, pData: rawptr, } PipelineShaderStageCreateInfo :: struct { sType: StructureType, pNext: rawptr, flags: PipelineShaderStageCreateFlags, stage: ShaderStageFlags, module: ShaderModule, pName: cstring, pSpecializationInfo: ^SpecializationInfo, } ComputePipelineCreateInfo :: struct { sType: StructureType, pNext: rawptr, flags: PipelineCreateFlags, stage: PipelineShaderStageCreateInfo, layout: PipelineLayout, basePipelineHandle: Pipeline, basePipelineIndex: i32, } VertexInputBindingDescription :: struct { binding: u32, stride: u32, inputRate: VertexInputRate, } VertexInputAttributeDescription :: struct { location: u32, binding: u32, format: Format, offset: u32, } PipelineVertexInputStateCreateInfo :: struct { sType: StructureType, pNext: rawptr, flags: PipelineVertexInputStateCreateFlags, vertexBindingDescriptionCount: u32, pVertexBindingDescriptions: [^]VertexInputBindingDescription, vertexAttributeDescriptionCount: u32, pVertexAttributeDescriptions: [^]VertexInputAttributeDescription, } PipelineInputAssemblyStateCreateInfo :: struct { sType: StructureType, pNext: rawptr, flags: PipelineInputAssemblyStateCreateFlags, topology: PrimitiveTopology, primitiveRestartEnable: b32, } PipelineTessellationStateCreateInfo :: struct { sType: StructureType, pNext: rawptr, flags: PipelineTessellationStateCreateFlags, patchControlPoints: u32, } Viewport :: struct { x: f32, y: f32, width: f32, height: f32, minDepth: f32, maxDepth: f32, } PipelineViewportStateCreateInfo :: struct { sType: StructureType, pNext: rawptr, flags: PipelineViewportStateCreateFlags, viewportCount: u32, pViewports: [^]Viewport, scissorCount: u32, pScissors: [^]Rect2D, } PipelineRasterizationStateCreateInfo :: struct { sType: StructureType, pNext: rawptr, flags: PipelineRasterizationStateCreateFlags, depthClampEnable: b32, rasterizerDiscardEnable: b32, polygonMode: PolygonMode, cullMode: CullModeFlags, frontFace: FrontFace, depthBiasEnable: b32, depthBiasConstantFactor: f32, depthBiasClamp: f32, depthBiasSlopeFactor: f32, lineWidth: f32, } PipelineMultisampleStateCreateInfo :: struct { sType: StructureType, pNext: rawptr, flags: PipelineMultisampleStateCreateFlags, rasterizationSamples: SampleCountFlags, sampleShadingEnable: b32, minSampleShading: f32, pSampleMask: ^SampleMask, alphaToCoverageEnable: b32, alphaToOneEnable: b32, } StencilOpState :: struct { failOp: StencilOp, passOp: StencilOp, depthFailOp: StencilOp, compareOp: CompareOp, compareMask: u32, writeMask: u32, reference: u32, } PipelineDepthStencilStateCreateInfo :: struct { sType: StructureType, pNext: rawptr, flags: PipelineDepthStencilStateCreateFlags, depthTestEnable: b32, depthWriteEnable: b32, depthCompareOp: CompareOp, depthBoundsTestEnable: b32, stencilTestEnable: b32, front: StencilOpState, back: StencilOpState, minDepthBounds: f32, maxDepthBounds: f32, } PipelineColorBlendAttachmentState :: struct { blendEnable: b32, srcColorBlendFactor: BlendFactor, dstColorBlendFactor: BlendFactor, colorBlendOp: BlendOp, srcAlphaBlendFactor: BlendFactor, dstAlphaBlendFactor: BlendFactor, alphaBlendOp: BlendOp, colorWriteMask: ColorComponentFlags, } PipelineColorBlendStateCreateInfo :: struct { sType: StructureType, pNext: rawptr, flags: PipelineColorBlendStateCreateFlags, logicOpEnable: b32, logicOp: LogicOp, attachmentCount: u32, pAttachments: [^]PipelineColorBlendAttachmentState, blendConstants: [4]f32, } PipelineDynamicStateCreateInfo :: struct { sType: StructureType, pNext: rawptr, flags: PipelineDynamicStateCreateFlags, dynamicStateCount: u32, pDynamicStates: [^]DynamicState, } GraphicsPipelineCreateInfo :: struct { sType: StructureType, pNext: rawptr, flags: PipelineCreateFlags, stageCount: u32, pStages: [^]PipelineShaderStageCreateInfo, pVertexInputState: ^PipelineVertexInputStateCreateInfo, pInputAssemblyState: ^PipelineInputAssemblyStateCreateInfo, pTessellationState: ^PipelineTessellationStateCreateInfo, pViewportState: ^PipelineViewportStateCreateInfo, pRasterizationState: ^PipelineRasterizationStateCreateInfo, pMultisampleState: ^PipelineMultisampleStateCreateInfo, pDepthStencilState: ^PipelineDepthStencilStateCreateInfo, pColorBlendState: ^PipelineColorBlendStateCreateInfo, pDynamicState: ^PipelineDynamicStateCreateInfo, layout: PipelineLayout, renderPass: RenderPass, subpass: u32, basePipelineHandle: Pipeline, basePipelineIndex: i32, } PushConstantRange :: struct { stageFlags: ShaderStageFlags, offset: u32, size: u32, } PipelineLayoutCreateInfo :: struct { sType: StructureType, pNext: rawptr, flags: PipelineLayoutCreateFlags, setLayoutCount: u32, pSetLayouts: [^]DescriptorSetLayout, pushConstantRangeCount: u32, pPushConstantRanges: [^]PushConstantRange, } SamplerCreateInfo :: struct { sType: StructureType, pNext: rawptr, flags: SamplerCreateFlags, magFilter: Filter, minFilter: Filter, mipmapMode: SamplerMipmapMode, addressModeU: SamplerAddressMode, addressModeV: SamplerAddressMode, addressModeW: SamplerAddressMode, mipLodBias: f32, anisotropyEnable: b32, maxAnisotropy: f32, compareEnable: b32, compareOp: CompareOp, minLod: f32, maxLod: f32, borderColor: BorderColor, unnormalizedCoordinates: b32, } CopyDescriptorSet :: struct { sType: StructureType, pNext: rawptr, srcSet: DescriptorSet, srcBinding: u32, srcArrayElement: u32, dstSet: DescriptorSet, dstBinding: u32, dstArrayElement: u32, descriptorCount: u32, } DescriptorBufferInfo :: struct { buffer: Buffer, offset: DeviceSize, range: DeviceSize, } DescriptorImageInfo :: struct { sampler: Sampler, imageView: ImageView, imageLayout: ImageLayout, } DescriptorPoolSize :: struct { type: DescriptorType, descriptorCount: u32, } DescriptorPoolCreateInfo :: struct { sType: StructureType, pNext: rawptr, flags: DescriptorPoolCreateFlags, maxSets: u32, poolSizeCount: u32, pPoolSizes: [^]DescriptorPoolSize, } DescriptorSetAllocateInfo :: struct { sType: StructureType, pNext: rawptr, descriptorPool: DescriptorPool, descriptorSetCount: u32, pSetLayouts: [^]DescriptorSetLayout, } DescriptorSetLayoutBinding :: struct { binding: u32, descriptorType: DescriptorType, descriptorCount: u32, stageFlags: ShaderStageFlags, pImmutableSamplers: [^]Sampler, } DescriptorSetLayoutCreateInfo :: struct { sType: StructureType, pNext: rawptr, flags: DescriptorSetLayoutCreateFlags, bindingCount: u32, pBindings: [^]DescriptorSetLayoutBinding, } WriteDescriptorSet :: struct { sType: StructureType, pNext: rawptr, dstSet: DescriptorSet, dstBinding: u32, dstArrayElement: u32, descriptorCount: u32, descriptorType: DescriptorType, pImageInfo: ^DescriptorImageInfo, pBufferInfo: ^DescriptorBufferInfo, pTexelBufferView: ^BufferView, } AttachmentDescription :: struct { flags: AttachmentDescriptionFlags, format: Format, samples: SampleCountFlags, loadOp: AttachmentLoadOp, storeOp: AttachmentStoreOp, stencilLoadOp: AttachmentLoadOp, stencilStoreOp: AttachmentStoreOp, initialLayout: ImageLayout, finalLayout: ImageLayout, } AttachmentReference :: struct { attachment: u32, layout: ImageLayout, } FramebufferCreateInfo :: struct { sType: StructureType, pNext: rawptr, flags: FramebufferCreateFlags, renderPass: RenderPass, attachmentCount: u32, pAttachments: [^]ImageView, width: u32, height: u32, layers: u32, } SubpassDescription :: struct { flags: SubpassDescriptionFlags, pipelineBindPoint: PipelineBindPoint, inputAttachmentCount: u32, pInputAttachments: [^]AttachmentReference, colorAttachmentCount: u32, pColorAttachments: [^]AttachmentReference, pResolveAttachments: [^]AttachmentReference, pDepthStencilAttachment: ^AttachmentReference, preserveAttachmentCount: u32, pPreserveAttachments: [^]u32, } SubpassDependency :: struct { srcSubpass: u32, dstSubpass: u32, srcStageMask: PipelineStageFlags, dstStageMask: PipelineStageFlags, srcAccessMask: AccessFlags, dstAccessMask: AccessFlags, dependencyFlags: DependencyFlags, } RenderPassCreateInfo :: struct { sType: StructureType, pNext: rawptr, flags: RenderPassCreateFlags, attachmentCount: u32, pAttachments: [^]AttachmentDescription, subpassCount: u32, pSubpasses: [^]SubpassDescription, dependencyCount: u32, pDependencies: [^]SubpassDependency, } CommandPoolCreateInfo :: struct { sType: StructureType, pNext: rawptr, flags: CommandPoolCreateFlags, queueFamilyIndex: u32, } CommandBufferAllocateInfo :: struct { sType: StructureType, pNext: rawptr, commandPool: CommandPool, level: CommandBufferLevel, commandBufferCount: u32, } CommandBufferInheritanceInfo :: struct { sType: StructureType, pNext: rawptr, renderPass: RenderPass, subpass: u32, framebuffer: Framebuffer, occlusionQueryEnable: b32, queryFlags: QueryControlFlags, pipelineStatistics: QueryPipelineStatisticFlags, } CommandBufferBeginInfo :: struct { sType: StructureType, pNext: rawptr, flags: CommandBufferUsageFlags, pInheritanceInfo: ^CommandBufferInheritanceInfo, } BufferCopy :: struct { srcOffset: DeviceSize, dstOffset: DeviceSize, size: DeviceSize, } ImageSubresourceLayers :: struct { aspectMask: ImageAspectFlags, mipLevel: u32, baseArrayLayer: u32, layerCount: u32, } BufferImageCopy :: struct { bufferOffset: DeviceSize, bufferRowLength: u32, bufferImageHeight: u32, imageSubresource: ImageSubresourceLayers, imageOffset: Offset3D, imageExtent: Extent3D, } ClearColorValue :: struct #raw_union { float32: [4]f32, int32: [4]i32, uint32: [4]u32, } ClearDepthStencilValue :: struct { depth: f32, stencil: u32, } ClearValue :: struct #raw_union { color: ClearColorValue, depthStencil: ClearDepthStencilValue, } ClearAttachment :: struct { aspectMask: ImageAspectFlags, colorAttachment: u32, clearValue: ClearValue, } ClearRect :: struct { rect: Rect2D, baseArrayLayer: u32, layerCount: u32, } ImageBlit :: struct { srcSubresource: ImageSubresourceLayers, srcOffsets: [2]Offset3D, dstSubresource: ImageSubresourceLayers, dstOffsets: [2]Offset3D, } ImageCopy :: struct { srcSubresource: ImageSubresourceLayers, srcOffset: Offset3D, dstSubresource: ImageSubresourceLayers, dstOffset: Offset3D, extent: Extent3D, } ImageResolve :: struct { srcSubresource: ImageSubresourceLayers, srcOffset: Offset3D, dstSubresource: ImageSubresourceLayers, dstOffset: Offset3D, extent: Extent3D, } RenderPassBeginInfo :: struct { sType: StructureType, pNext: rawptr, renderPass: RenderPass, framebuffer: Framebuffer, renderArea: Rect2D, clearValueCount: u32, pClearValues: [^]ClearValue, } PhysicalDeviceSubgroupProperties :: struct { sType: StructureType, pNext: rawptr, subgroupSize: u32, supportedStages: ShaderStageFlags, supportedOperations: SubgroupFeatureFlags, quadOperationsInAllStages: b32, } BindBufferMemoryInfo :: struct { sType: StructureType, pNext: rawptr, buffer: Buffer, memory: DeviceMemory, memoryOffset: DeviceSize, } BindImageMemoryInfo :: struct { sType: StructureType, pNext: rawptr, image: Image, memory: DeviceMemory, memoryOffset: DeviceSize, } PhysicalDevice16BitStorageFeatures :: struct { sType: StructureType, pNext: rawptr, storageBuffer16BitAccess: b32, uniformAndStorageBuffer16BitAccess: b32, storagePushConstant16: b32, storageInputOutput16: b32, } MemoryDedicatedRequirements :: struct { sType: StructureType, pNext: rawptr, prefersDedicatedAllocation: b32, requiresDedicatedAllocation: b32, } MemoryDedicatedAllocateInfo :: struct { sType: StructureType, pNext: rawptr, image: Image, buffer: Buffer, } MemoryAllocateFlagsInfo :: struct { sType: StructureType, pNext: rawptr, flags: MemoryAllocateFlags, deviceMask: u32, } DeviceGroupRenderPassBeginInfo :: struct { sType: StructureType, pNext: rawptr, deviceMask: u32, deviceRenderAreaCount: u32, pDeviceRenderAreas: [^]Rect2D, } DeviceGroupCommandBufferBeginInfo :: struct { sType: StructureType, pNext: rawptr, deviceMask: u32, } DeviceGroupSubmitInfo :: struct { sType: StructureType, pNext: rawptr, waitSemaphoreCount: u32, pWaitSemaphoreDeviceIndices: [^]u32, commandBufferCount: u32, pCommandBufferDeviceMasks: [^]u32, signalSemaphoreCount: u32, pSignalSemaphoreDeviceIndices: [^]u32, } DeviceGroupBindSparseInfo :: struct { sType: StructureType, pNext: rawptr, resourceDeviceIndex: u32, memoryDeviceIndex: u32, } BindBufferMemoryDeviceGroupInfo :: struct { sType: StructureType, pNext: rawptr, deviceIndexCount: u32, pDeviceIndices: [^]u32, } BindImageMemoryDeviceGroupInfo :: struct { sType: StructureType, pNext: rawptr, deviceIndexCount: u32, pDeviceIndices: [^]u32, splitInstanceBindRegionCount: u32, pSplitInstanceBindRegions: [^]Rect2D, } PhysicalDeviceGroupProperties :: struct { sType: StructureType, pNext: rawptr, physicalDeviceCount: u32, physicalDevices: [MAX_DEVICE_GROUP_SIZE]PhysicalDevice, subsetAllocation: b32, } DeviceGroupDeviceCreateInfo :: struct { sType: StructureType, pNext: rawptr, physicalDeviceCount: u32, pPhysicalDevices: [^]PhysicalDevice, } BufferMemoryRequirementsInfo2 :: struct { sType: StructureType, pNext: rawptr, buffer: Buffer, } ImageMemoryRequirementsInfo2 :: struct { sType: StructureType, pNext: rawptr, image: Image, } ImageSparseMemoryRequirementsInfo2 :: struct { sType: StructureType, pNext: rawptr, image: Image, } MemoryRequirements2 :: struct { sType: StructureType, pNext: rawptr, memoryRequirements: MemoryRequirements, } SparseImageMemoryRequirements2 :: struct { sType: StructureType, pNext: rawptr, memoryRequirements: SparseImageMemoryRequirements, } PhysicalDeviceFeatures2 :: struct { sType: StructureType, pNext: rawptr, features: PhysicalDeviceFeatures, } PhysicalDeviceProperties2 :: struct { sType: StructureType, pNext: rawptr, properties: PhysicalDeviceProperties, } FormatProperties2 :: struct { sType: StructureType, pNext: rawptr, formatProperties: FormatProperties, } ImageFormatProperties2 :: struct { sType: StructureType, pNext: rawptr, imageFormatProperties: ImageFormatProperties, } PhysicalDeviceImageFormatInfo2 :: struct { sType: StructureType, pNext: rawptr, format: Format, type: ImageType, tiling: ImageTiling, usage: ImageUsageFlags, flags: ImageCreateFlags, } QueueFamilyProperties2 :: struct { sType: StructureType, pNext: rawptr, queueFamilyProperties: QueueFamilyProperties, } PhysicalDeviceMemoryProperties2 :: struct { sType: StructureType, pNext: rawptr, memoryProperties: PhysicalDeviceMemoryProperties, } SparseImageFormatProperties2 :: struct { sType: StructureType, pNext: rawptr, properties: SparseImageFormatProperties, } PhysicalDeviceSparseImageFormatInfo2 :: struct { sType: StructureType, pNext: rawptr, format: Format, type: ImageType, samples: SampleCountFlags, usage: ImageUsageFlags, tiling: ImageTiling, } PhysicalDevicePointClippingProperties :: struct { sType: StructureType, pNext: rawptr, pointClippingBehavior: PointClippingBehavior, } InputAttachmentAspectReference :: struct { subpass: u32, inputAttachmentIndex: u32, aspectMask: ImageAspectFlags, } RenderPassInputAttachmentAspectCreateInfo :: struct { sType: StructureType, pNext: rawptr, aspectReferenceCount: u32, pAspectReferences: [^]InputAttachmentAspectReference, } ImageViewUsageCreateInfo :: struct { sType: StructureType, pNext: rawptr, usage: ImageUsageFlags, } PipelineTessellationDomainOriginStateCreateInfo :: struct { sType: StructureType, pNext: rawptr, domainOrigin: TessellationDomainOrigin, } RenderPassMultiviewCreateInfo :: struct { sType: StructureType, pNext: rawptr, subpassCount: u32, pViewMasks: [^]u32, dependencyCount: u32, pViewOffsets: [^]i32, correlationMaskCount: u32, pCorrelationMasks: [^]u32, } PhysicalDeviceMultiviewFeatures :: struct { sType: StructureType, pNext: rawptr, multiview: b32, multiviewGeometryShader: b32, multiviewTessellationShader: b32, } PhysicalDeviceMultiviewProperties :: struct { sType: StructureType, pNext: rawptr, maxMultiviewViewCount: u32, maxMultiviewInstanceIndex: u32, } PhysicalDeviceVariablePointersFeatures :: struct { sType: StructureType, pNext: rawptr, variablePointersStorageBuffer: b32, variablePointers: b32, } PhysicalDeviceProtectedMemoryFeatures :: struct { sType: StructureType, pNext: rawptr, protectedMemory: b32, } PhysicalDeviceProtectedMemoryProperties :: struct { sType: StructureType, pNext: rawptr, protectedNoFault: b32, } DeviceQueueInfo2 :: struct { sType: StructureType, pNext: rawptr, flags: DeviceQueueCreateFlags, queueFamilyIndex: u32, queueIndex: u32, } ProtectedSubmitInfo :: struct { sType: StructureType, pNext: rawptr, protectedSubmit: b32, } SamplerYcbcrConversionCreateInfo :: struct { sType: StructureType, pNext: rawptr, format: Format, ycbcrModel: SamplerYcbcrModelConversion, ycbcrRange: SamplerYcbcrRange, components: ComponentMapping, xChromaOffset: ChromaLocation, yChromaOffset: ChromaLocation, chromaFilter: Filter, forceExplicitReconstruction: b32, } SamplerYcbcrConversionInfo :: struct { sType: StructureType, pNext: rawptr, conversion: SamplerYcbcrConversion, } BindImagePlaneMemoryInfo :: struct { sType: StructureType, pNext: rawptr, planeAspect: ImageAspectFlags, } ImagePlaneMemoryRequirementsInfo :: struct { sType: StructureType, pNext: rawptr, planeAspect: ImageAspectFlags, } PhysicalDeviceSamplerYcbcrConversionFeatures :: struct { sType: StructureType, pNext: rawptr, samplerYcbcrConversion: b32, } SamplerYcbcrConversionImageFormatProperties :: struct { sType: StructureType, pNext: rawptr, combinedImageSamplerDescriptorCount: u32, } DescriptorUpdateTemplateEntry :: struct { dstBinding: u32, dstArrayElement: u32, descriptorCount: u32, descriptorType: DescriptorType, offset: int, stride: int, } DescriptorUpdateTemplateCreateInfo :: struct { sType: StructureType, pNext: rawptr, flags: DescriptorUpdateTemplateCreateFlags, descriptorUpdateEntryCount: u32, pDescriptorUpdateEntries: [^]DescriptorUpdateTemplateEntry, templateType: DescriptorUpdateTemplateType, descriptorSetLayout: DescriptorSetLayout, pipelineBindPoint: PipelineBindPoint, pipelineLayout: PipelineLayout, set: u32, } ExternalMemoryProperties :: struct { externalMemoryFeatures: ExternalMemoryFeatureFlags, exportFromImportedHandleTypes: ExternalMemoryHandleTypeFlags, compatibleHandleTypes: ExternalMemoryHandleTypeFlags, } PhysicalDeviceExternalImageFormatInfo :: struct { sType: StructureType, pNext: rawptr, handleType: ExternalMemoryHandleTypeFlags, } ExternalImageFormatProperties :: struct { sType: StructureType, pNext: rawptr, externalMemoryProperties: ExternalMemoryProperties, } PhysicalDeviceExternalBufferInfo :: struct { sType: StructureType, pNext: rawptr, flags: BufferCreateFlags, usage: BufferUsageFlags, handleType: ExternalMemoryHandleTypeFlags, } ExternalBufferProperties :: struct { sType: StructureType, pNext: rawptr, externalMemoryProperties: ExternalMemoryProperties, } PhysicalDeviceIDProperties :: struct { sType: StructureType, pNext: rawptr, deviceUUID: [UUID_SIZE]u8, driverUUID: [UUID_SIZE]u8, deviceLUID: [LUID_SIZE]u8, deviceNodeMask: u32, deviceLUIDValid: b32, } ExternalMemoryImageCreateInfo :: struct { sType: StructureType, pNext: rawptr, handleTypes: ExternalMemoryHandleTypeFlags, } ExternalMemoryBufferCreateInfo :: struct { sType: StructureType, pNext: rawptr, handleTypes: ExternalMemoryHandleTypeFlags, } ExportMemoryAllocateInfo :: struct { sType: StructureType, pNext: rawptr, handleTypes: ExternalMemoryHandleTypeFlags, } PhysicalDeviceExternalFenceInfo :: struct { sType: StructureType, pNext: rawptr, handleType: ExternalFenceHandleTypeFlags, } ExternalFenceProperties :: struct { sType: StructureType, pNext: rawptr, exportFromImportedHandleTypes: ExternalFenceHandleTypeFlags, compatibleHandleTypes: ExternalFenceHandleTypeFlags, externalFenceFeatures: ExternalFenceFeatureFlags, } ExportFenceCreateInfo :: struct { sType: StructureType, pNext: rawptr, handleTypes: ExternalFenceHandleTypeFlags, } ExportSemaphoreCreateInfo :: struct { sType: StructureType, pNext: rawptr, handleTypes: ExternalSemaphoreHandleTypeFlags, } PhysicalDeviceExternalSemaphoreInfo :: struct { sType: StructureType, pNext: rawptr, handleType: ExternalSemaphoreHandleTypeFlags, } ExternalSemaphoreProperties :: struct { sType: StructureType, pNext: rawptr, exportFromImportedHandleTypes: ExternalSemaphoreHandleTypeFlags, compatibleHandleTypes: ExternalSemaphoreHandleTypeFlags, externalSemaphoreFeatures: ExternalSemaphoreFeatureFlags, } PhysicalDeviceMaintenance3Properties :: struct { sType: StructureType, pNext: rawptr, maxPerSetDescriptors: u32, maxMemoryAllocationSize: DeviceSize, } DescriptorSetLayoutSupport :: struct { sType: StructureType, pNext: rawptr, supported: b32, } PhysicalDeviceShaderDrawParametersFeatures :: struct { sType: StructureType, pNext: rawptr, shaderDrawParameters: b32, } PhysicalDeviceVulkan11Features :: struct { sType: StructureType, pNext: rawptr, storageBuffer16BitAccess: b32, uniformAndStorageBuffer16BitAccess: b32, storagePushConstant16: b32, storageInputOutput16: b32, multiview: b32, multiviewGeometryShader: b32, multiviewTessellationShader: b32, variablePointersStorageBuffer: b32, variablePointers: b32, protectedMemory: b32, samplerYcbcrConversion: b32, shaderDrawParameters: b32, } PhysicalDeviceVulkan11Properties :: struct { sType: StructureType, pNext: rawptr, deviceUUID: [UUID_SIZE]u8, driverUUID: [UUID_SIZE]u8, deviceLUID: [LUID_SIZE]u8, deviceNodeMask: u32, deviceLUIDValid: b32, subgroupSize: u32, subgroupSupportedStages: ShaderStageFlags, subgroupSupportedOperations: SubgroupFeatureFlags, subgroupQuadOperationsInAllStages: b32, pointClippingBehavior: PointClippingBehavior, maxMultiviewViewCount: u32, maxMultiviewInstanceIndex: u32, protectedNoFault: b32, maxPerSetDescriptors: u32, maxMemoryAllocationSize: DeviceSize, } PhysicalDeviceVulkan12Features :: struct { sType: StructureType, pNext: rawptr, samplerMirrorClampToEdge: b32, drawIndirectCount: b32, storageBuffer8BitAccess: b32, uniformAndStorageBuffer8BitAccess: b32, storagePushConstant8: b32, shaderBufferInt64Atomics: b32, shaderSharedInt64Atomics: b32, shaderFloat16: b32, shaderInt8: b32, descriptorIndexing: b32, shaderInputAttachmentArrayDynamicIndexing: b32, shaderUniformTexelBufferArrayDynamicIndexing: b32, shaderStorageTexelBufferArrayDynamicIndexing: b32, shaderUniformBufferArrayNonUniformIndexing: b32, shaderSampledImageArrayNonUniformIndexing: b32, shaderStorageBufferArrayNonUniformIndexing: b32, shaderStorageImageArrayNonUniformIndexing: b32, shaderInputAttachmentArrayNonUniformIndexing: b32, shaderUniformTexelBufferArrayNonUniformIndexing: b32, shaderStorageTexelBufferArrayNonUniformIndexing: b32, descriptorBindingUniformBufferUpdateAfterBind: b32, descriptorBindingSampledImageUpdateAfterBind: b32, descriptorBindingStorageImageUpdateAfterBind: b32, descriptorBindingStorageBufferUpdateAfterBind: b32, descriptorBindingUniformTexelBufferUpdateAfterBind: b32, descriptorBindingStorageTexelBufferUpdateAfterBind: b32, descriptorBindingUpdateUnusedWhilePending: b32, descriptorBindingPartiallyBound: b32, descriptorBindingVariableDescriptorCount: b32, runtimeDescriptorArray: b32, samplerFilterMinmax: b32, scalarBlockLayout: b32, imagelessFramebuffer: b32, uniformBufferStandardLayout: b32, shaderSubgroupExtendedTypes: b32, separateDepthStencilLayouts: b32, hostQueryReset: b32, timelineSemaphore: b32, bufferDeviceAddress: b32, bufferDeviceAddressCaptureReplay: b32, bufferDeviceAddressMultiDevice: b32, vulkanMemoryModel: b32, vulkanMemoryModelDeviceScope: b32, vulkanMemoryModelAvailabilityVisibilityChains: b32, shaderOutputViewportIndex: b32, shaderOutputLayer: b32, subgroupBroadcastDynamicId: b32, } ConformanceVersion :: struct { major: u8, minor: u8, subminor: u8, patch: u8, } PhysicalDeviceVulkan12Properties :: struct { sType: StructureType, pNext: rawptr, driverID: DriverId, driverName: [MAX_DRIVER_NAME_SIZE]byte, driverInfo: [MAX_DRIVER_INFO_SIZE]byte, conformanceVersion: ConformanceVersion, denormBehaviorIndependence: ShaderFloatControlsIndependence, roundingModeIndependence: ShaderFloatControlsIndependence, shaderSignedZeroInfNanPreserveFloat16: b32, shaderSignedZeroInfNanPreserveFloat32: b32, shaderSignedZeroInfNanPreserveFloat64: b32, shaderDenormPreserveFloat16: b32, shaderDenormPreserveFloat32: b32, shaderDenormPreserveFloat64: b32, shaderDenormFlushToZeroFloat16: b32, shaderDenormFlushToZeroFloat32: b32, shaderDenormFlushToZeroFloat64: b32, shaderRoundingModeRTEFloat16: b32, shaderRoundingModeRTEFloat32: b32, shaderRoundingModeRTEFloat64: b32, shaderRoundingModeRTZFloat16: b32, shaderRoundingModeRTZFloat32: b32, shaderRoundingModeRTZFloat64: b32, maxUpdateAfterBindDescriptorsInAllPools: u32, shaderUniformBufferArrayNonUniformIndexingNative: b32, shaderSampledImageArrayNonUniformIndexingNative: b32, shaderStorageBufferArrayNonUniformIndexingNative: b32, shaderStorageImageArrayNonUniformIndexingNative: b32, shaderInputAttachmentArrayNonUniformIndexingNative: b32, robustBufferAccessUpdateAfterBind: b32, quadDivergentImplicitLod: b32, maxPerStageDescriptorUpdateAfterBindSamplers: u32, maxPerStageDescriptorUpdateAfterBindUniformBuffers: u32, maxPerStageDescriptorUpdateAfterBindStorageBuffers: u32, maxPerStageDescriptorUpdateAfterBindSampledImages: u32, maxPerStageDescriptorUpdateAfterBindStorageImages: u32, maxPerStageDescriptorUpdateAfterBindInputAttachments: u32, maxPerStageUpdateAfterBindResources: u32, maxDescriptorSetUpdateAfterBindSamplers: u32, maxDescriptorSetUpdateAfterBindUniformBuffers: u32, maxDescriptorSetUpdateAfterBindUniformBuffersDynamic: u32, maxDescriptorSetUpdateAfterBindStorageBuffers: u32, maxDescriptorSetUpdateAfterBindStorageBuffersDynamic: u32, maxDescriptorSetUpdateAfterBindSampledImages: u32, maxDescriptorSetUpdateAfterBindStorageImages: u32, maxDescriptorSetUpdateAfterBindInputAttachments: u32, supportedDepthResolveModes: ResolveModeFlags, supportedStencilResolveModes: ResolveModeFlags, independentResolveNone: b32, independentResolve: b32, filterMinmaxSingleComponentFormats: b32, filterMinmaxImageComponentMapping: b32, maxTimelineSemaphoreValueDifference: u64, framebufferIntegerColorSampleCounts: SampleCountFlags, } ImageFormatListCreateInfo :: struct { sType: StructureType, pNext: rawptr, viewFormatCount: u32, pViewFormats: [^]Format, } AttachmentDescription2 :: struct { sType: StructureType, pNext: rawptr, flags: AttachmentDescriptionFlags, format: Format, samples: SampleCountFlags, loadOp: AttachmentLoadOp, storeOp: AttachmentStoreOp, stencilLoadOp: AttachmentLoadOp, stencilStoreOp: AttachmentStoreOp, initialLayout: ImageLayout, finalLayout: ImageLayout, } AttachmentReference2 :: struct { sType: StructureType, pNext: rawptr, attachment: u32, layout: ImageLayout, aspectMask: ImageAspectFlags, } SubpassDescription2 :: struct { sType: StructureType, pNext: rawptr, flags: SubpassDescriptionFlags, pipelineBindPoint: PipelineBindPoint, viewMask: u32, inputAttachmentCount: u32, pInputAttachments: [^]AttachmentReference2, colorAttachmentCount: u32, pColorAttachments: [^]AttachmentReference2, pResolveAttachments: [^]AttachmentReference2, pDepthStencilAttachment: ^AttachmentReference2, preserveAttachmentCount: u32, pPreserveAttachments: [^]u32, } SubpassDependency2 :: struct { sType: StructureType, pNext: rawptr, srcSubpass: u32, dstSubpass: u32, srcStageMask: PipelineStageFlags, dstStageMask: PipelineStageFlags, srcAccessMask: AccessFlags, dstAccessMask: AccessFlags, dependencyFlags: DependencyFlags, viewOffset: i32, } RenderPassCreateInfo2 :: struct { sType: StructureType, pNext: rawptr, flags: RenderPassCreateFlags, attachmentCount: u32, pAttachments: [^]AttachmentDescription2, subpassCount: u32, pSubpasses: [^]SubpassDescription2, dependencyCount: u32, pDependencies: [^]SubpassDependency2, correlatedViewMaskCount: u32, pCorrelatedViewMasks: [^]u32, } SubpassBeginInfo :: struct { sType: StructureType, pNext: rawptr, contents: SubpassContents, } SubpassEndInfo :: struct { sType: StructureType, pNext: rawptr, } PhysicalDevice8BitStorageFeatures :: struct { sType: StructureType, pNext: rawptr, storageBuffer8BitAccess: b32, uniformAndStorageBuffer8BitAccess: b32, storagePushConstant8: b32, } PhysicalDeviceDriverProperties :: struct { sType: StructureType, pNext: rawptr, driverID: DriverId, driverName: [MAX_DRIVER_NAME_SIZE]byte, driverInfo: [MAX_DRIVER_INFO_SIZE]byte, conformanceVersion: ConformanceVersion, } PhysicalDeviceShaderAtomicInt64Features :: struct { sType: StructureType, pNext: rawptr, shaderBufferInt64Atomics: b32, shaderSharedInt64Atomics: b32, } PhysicalDeviceShaderFloat16Int8Features :: struct { sType: StructureType, pNext: rawptr, shaderFloat16: b32, shaderInt8: b32, } PhysicalDeviceFloatControlsProperties :: struct { sType: StructureType, pNext: rawptr, denormBehaviorIndependence: ShaderFloatControlsIndependence, roundingModeIndependence: ShaderFloatControlsIndependence, shaderSignedZeroInfNanPreserveFloat16: b32, shaderSignedZeroInfNanPreserveFloat32: b32, shaderSignedZeroInfNanPreserveFloat64: b32, shaderDenormPreserveFloat16: b32, shaderDenormPreserveFloat32: b32, shaderDenormPreserveFloat64: b32, shaderDenormFlushToZeroFloat16: b32, shaderDenormFlushToZeroFloat32: b32, shaderDenormFlushToZeroFloat64: b32, shaderRoundingModeRTEFloat16: b32, shaderRoundingModeRTEFloat32: b32, shaderRoundingModeRTEFloat64: b32, shaderRoundingModeRTZFloat16: b32, shaderRoundingModeRTZFloat32: b32, shaderRoundingModeRTZFloat64: b32, } DescriptorSetLayoutBindingFlagsCreateInfo :: struct { sType: StructureType, pNext: rawptr, bindingCount: u32, pBindingFlags: [^]DescriptorBindingFlags, } PhysicalDeviceDescriptorIndexingFeatures :: struct { sType: StructureType, pNext: rawptr, shaderInputAttachmentArrayDynamicIndexing: b32, shaderUniformTexelBufferArrayDynamicIndexing: b32, shaderStorageTexelBufferArrayDynamicIndexing: b32, shaderUniformBufferArrayNonUniformIndexing: b32, shaderSampledImageArrayNonUniformIndexing: b32, shaderStorageBufferArrayNonUniformIndexing: b32, shaderStorageImageArrayNonUniformIndexing: b32, shaderInputAttachmentArrayNonUniformIndexing: b32, shaderUniformTexelBufferArrayNonUniformIndexing: b32, shaderStorageTexelBufferArrayNonUniformIndexing: b32, descriptorBindingUniformBufferUpdateAfterBind: b32, descriptorBindingSampledImageUpdateAfterBind: b32, descriptorBindingStorageImageUpdateAfterBind: b32, descriptorBindingStorageBufferUpdateAfterBind: b32, descriptorBindingUniformTexelBufferUpdateAfterBind: b32, descriptorBindingStorageTexelBufferUpdateAfterBind: b32, descriptorBindingUpdateUnusedWhilePending: b32, descriptorBindingPartiallyBound: b32, descriptorBindingVariableDescriptorCount: b32, runtimeDescriptorArray: b32, } PhysicalDeviceDescriptorIndexingProperties :: struct { sType: StructureType, pNext: rawptr, maxUpdateAfterBindDescriptorsInAllPools: u32, shaderUniformBufferArrayNonUniformIndexingNative: b32, shaderSampledImageArrayNonUniformIndexingNative: b32, shaderStorageBufferArrayNonUniformIndexingNative: b32, shaderStorageImageArrayNonUniformIndexingNative: b32, shaderInputAttachmentArrayNonUniformIndexingNative: b32, robustBufferAccessUpdateAfterBind: b32, quadDivergentImplicitLod: b32, maxPerStageDescriptorUpdateAfterBindSamplers: u32, maxPerStageDescriptorUpdateAfterBindUniformBuffers: u32, maxPerStageDescriptorUpdateAfterBindStorageBuffers: u32, maxPerStageDescriptorUpdateAfterBindSampledImages: u32, maxPerStageDescriptorUpdateAfterBindStorageImages: u32, maxPerStageDescriptorUpdateAfterBindInputAttachments: u32, maxPerStageUpdateAfterBindResources: u32, maxDescriptorSetUpdateAfterBindSamplers: u32, maxDescriptorSetUpdateAfterBindUniformBuffers: u32, maxDescriptorSetUpdateAfterBindUniformBuffersDynamic: u32, maxDescriptorSetUpdateAfterBindStorageBuffers: u32, maxDescriptorSetUpdateAfterBindStorageBuffersDynamic: u32, maxDescriptorSetUpdateAfterBindSampledImages: u32, maxDescriptorSetUpdateAfterBindStorageImages: u32, maxDescriptorSetUpdateAfterBindInputAttachments: u32, } DescriptorSetVariableDescriptorCountAllocateInfo :: struct { sType: StructureType, pNext: rawptr, descriptorSetCount: u32, pDescriptorCounts: [^]u32, } DescriptorSetVariableDescriptorCountLayoutSupport :: struct { sType: StructureType, pNext: rawptr, maxVariableDescriptorCount: u32, } SubpassDescriptionDepthStencilResolve :: struct { sType: StructureType, pNext: rawptr, depthResolveMode: ResolveModeFlags, stencilResolveMode: ResolveModeFlags, pDepthStencilResolveAttachment: ^AttachmentReference2, } PhysicalDeviceDepthStencilResolveProperties :: struct { sType: StructureType, pNext: rawptr, supportedDepthResolveModes: ResolveModeFlags, supportedStencilResolveModes: ResolveModeFlags, independentResolveNone: b32, independentResolve: b32, } PhysicalDeviceScalarBlockLayoutFeatures :: struct { sType: StructureType, pNext: rawptr, scalarBlockLayout: b32, } ImageStencilUsageCreateInfo :: struct { sType: StructureType, pNext: rawptr, stencilUsage: ImageUsageFlags, } SamplerReductionModeCreateInfo :: struct { sType: StructureType, pNext: rawptr, reductionMode: SamplerReductionMode, } PhysicalDeviceSamplerFilterMinmaxProperties :: struct { sType: StructureType, pNext: rawptr, filterMinmaxSingleComponentFormats: b32, filterMinmaxImageComponentMapping: b32, } PhysicalDeviceVulkanMemoryModelFeatures :: struct { sType: StructureType, pNext: rawptr, vulkanMemoryModel: b32, vulkanMemoryModelDeviceScope: b32, vulkanMemoryModelAvailabilityVisibilityChains: b32, } PhysicalDeviceImagelessFramebufferFeatures :: struct { sType: StructureType, pNext: rawptr, imagelessFramebuffer: b32, } FramebufferAttachmentImageInfo :: struct { sType: StructureType, pNext: rawptr, flags: ImageCreateFlags, usage: ImageUsageFlags, width: u32, height: u32, layerCount: u32, viewFormatCount: u32, pViewFormats: [^]Format, } FramebufferAttachmentsCreateInfo :: struct { sType: StructureType, pNext: rawptr, attachmentImageInfoCount: u32, pAttachmentImageInfos: [^]FramebufferAttachmentImageInfo, } RenderPassAttachmentBeginInfo :: struct { sType: StructureType, pNext: rawptr, attachmentCount: u32, pAttachments: [^]ImageView, } PhysicalDeviceUniformBufferStandardLayoutFeatures :: struct { sType: StructureType, pNext: rawptr, uniformBufferStandardLayout: b32, } PhysicalDeviceShaderSubgroupExtendedTypesFeatures :: struct { sType: StructureType, pNext: rawptr, shaderSubgroupExtendedTypes: b32, } PhysicalDeviceSeparateDepthStencilLayoutsFeatures :: struct { sType: StructureType, pNext: rawptr, separateDepthStencilLayouts: b32, } AttachmentReferenceStencilLayout :: struct { sType: StructureType, pNext: rawptr, stencilLayout: ImageLayout, } AttachmentDescriptionStencilLayout :: struct { sType: StructureType, pNext: rawptr, stencilInitialLayout: ImageLayout, stencilFinalLayout: ImageLayout, } PhysicalDeviceHostQueryResetFeatures :: struct { sType: StructureType, pNext: rawptr, hostQueryReset: b32, } PhysicalDeviceTimelineSemaphoreFeatures :: struct { sType: StructureType, pNext: rawptr, timelineSemaphore: b32, } PhysicalDeviceTimelineSemaphoreProperties :: struct { sType: StructureType, pNext: rawptr, maxTimelineSemaphoreValueDifference: u64, } SemaphoreTypeCreateInfo :: struct { sType: StructureType, pNext: rawptr, semaphoreType: SemaphoreType, initialValue: u64, } TimelineSemaphoreSubmitInfo :: struct { sType: StructureType, pNext: rawptr, waitSemaphoreValueCount: u32, pWaitSemaphoreValues: [^]u64, signalSemaphoreValueCount: u32, pSignalSemaphoreValues: [^]u64, } SemaphoreWaitInfo :: struct { sType: StructureType, pNext: rawptr, flags: SemaphoreWaitFlags, semaphoreCount: u32, pSemaphores: [^]Semaphore, pValues: [^]u64, } SemaphoreSignalInfo :: struct { sType: StructureType, pNext: rawptr, semaphore: Semaphore, value: u64, } PhysicalDeviceBufferDeviceAddressFeatures :: struct { sType: StructureType, pNext: rawptr, bufferDeviceAddress: b32, bufferDeviceAddressCaptureReplay: b32, bufferDeviceAddressMultiDevice: b32, } BufferDeviceAddressInfo :: struct { sType: StructureType, pNext: rawptr, buffer: Buffer, } BufferOpaqueCaptureAddressCreateInfo :: struct { sType: StructureType, pNext: rawptr, opaqueCaptureAddress: u64, } MemoryOpaqueCaptureAddressAllocateInfo :: struct { sType: StructureType, pNext: rawptr, opaqueCaptureAddress: u64, } DeviceMemoryOpaqueCaptureAddressInfo :: struct { sType: StructureType, pNext: rawptr, memory: DeviceMemory, } PhysicalDeviceVulkan13Features :: struct { sType: StructureType, pNext: rawptr, robustImageAccess: b32, inlineUniformBlock: b32, descriptorBindingInlineUniformBlockUpdateAfterBind: b32, pipelineCreationCacheControl: b32, privateData: b32, shaderDemoteToHelperInvocation: b32, shaderTerminateInvocation: b32, subgroupSizeControl: b32, computeFullSubgroups: b32, synchronization2: b32, textureCompressionASTC_HDR: b32, shaderZeroInitializeWorkgroupMemory: b32, dynamicRendering: b32, shaderIntegerDotProduct: b32, maintenance4: b32, } PhysicalDeviceVulkan13Properties :: struct { sType: StructureType, pNext: rawptr, minSubgroupSize: u32, maxSubgroupSize: u32, maxComputeWorkgroupSubgroups: u32, requiredSubgroupSizeStages: ShaderStageFlags, maxInlineUniformBlockSize: u32, maxPerStageDescriptorInlineUniformBlocks: u32, maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks: u32, maxDescriptorSetInlineUniformBlocks: u32, maxDescriptorSetUpdateAfterBindInlineUniformBlocks: u32, maxInlineUniformTotalSize: u32, integerDotProduct8BitUnsignedAccelerated: b32, integerDotProduct8BitSignedAccelerated: b32, integerDotProduct8BitMixedSignednessAccelerated: b32, integerDotProduct4x8BitPackedUnsignedAccelerated: b32, integerDotProduct4x8BitPackedSignedAccelerated: b32, integerDotProduct4x8BitPackedMixedSignednessAccelerated: b32, integerDotProduct16BitUnsignedAccelerated: b32, integerDotProduct16BitSignedAccelerated: b32, integerDotProduct16BitMixedSignednessAccelerated: b32, integerDotProduct32BitUnsignedAccelerated: b32, integerDotProduct32BitSignedAccelerated: b32, integerDotProduct32BitMixedSignednessAccelerated: b32, integerDotProduct64BitUnsignedAccelerated: b32, integerDotProduct64BitSignedAccelerated: b32, integerDotProduct64BitMixedSignednessAccelerated: b32, integerDotProductAccumulatingSaturating8BitUnsignedAccelerated: b32, integerDotProductAccumulatingSaturating8BitSignedAccelerated: b32, integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated: b32, integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated: b32, integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated: b32, integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated: b32, integerDotProductAccumulatingSaturating16BitUnsignedAccelerated: b32, integerDotProductAccumulatingSaturating16BitSignedAccelerated: b32, integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated: b32, integerDotProductAccumulatingSaturating32BitUnsignedAccelerated: b32, integerDotProductAccumulatingSaturating32BitSignedAccelerated: b32, integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated: b32, integerDotProductAccumulatingSaturating64BitUnsignedAccelerated: b32, integerDotProductAccumulatingSaturating64BitSignedAccelerated: b32, integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated: b32, storageTexelBufferOffsetAlignmentBytes: DeviceSize, storageTexelBufferOffsetSingleTexelAlignment: b32, uniformTexelBufferOffsetAlignmentBytes: DeviceSize, uniformTexelBufferOffsetSingleTexelAlignment: b32, maxBufferSize: DeviceSize, } PipelineCreationFeedback :: struct { flags: PipelineCreationFeedbackFlags, duration: u64, } PipelineCreationFeedbackCreateInfo :: struct { sType: StructureType, pNext: rawptr, pPipelineCreationFeedback: ^PipelineCreationFeedback, pipelineStageCreationFeedbackCount: u32, pPipelineStageCreationFeedbacks: [^]PipelineCreationFeedback, } PhysicalDeviceShaderTerminateInvocationFeatures :: struct { sType: StructureType, pNext: rawptr, shaderTerminateInvocation: b32, } PhysicalDeviceToolProperties :: struct { sType: StructureType, pNext: rawptr, name: [MAX_EXTENSION_NAME_SIZE]byte, version: [MAX_EXTENSION_NAME_SIZE]byte, purposes: ToolPurposeFlags, description: [MAX_DESCRIPTION_SIZE]byte, layer: [MAX_EXTENSION_NAME_SIZE]byte, } PhysicalDeviceShaderDemoteToHelperInvocationFeatures :: struct { sType: StructureType, pNext: rawptr, shaderDemoteToHelperInvocation: b32, } PhysicalDevicePrivateDataFeatures :: struct { sType: StructureType, pNext: rawptr, privateData: b32, } DevicePrivateDataCreateInfo :: struct { sType: StructureType, pNext: rawptr, privateDataSlotRequestCount: u32, } PrivateDataSlotCreateInfo :: struct { sType: StructureType, pNext: rawptr, flags: PrivateDataSlotCreateFlags, } PhysicalDevicePipelineCreationCacheControlFeatures :: struct { sType: StructureType, pNext: rawptr, pipelineCreationCacheControl: b32, } MemoryBarrier2 :: struct { sType: StructureType, pNext: rawptr, srcStageMask: PipelineStageFlags2, srcAccessMask: AccessFlags2, dstStageMask: PipelineStageFlags2, dstAccessMask: AccessFlags2, } BufferMemoryBarrier2 :: struct { sType: StructureType, pNext: rawptr, srcStageMask: PipelineStageFlags2, srcAccessMask: AccessFlags2, dstStageMask: PipelineStageFlags2, dstAccessMask: AccessFlags2, srcQueueFamilyIndex: u32, dstQueueFamilyIndex: u32, buffer: Buffer, offset: DeviceSize, size: DeviceSize, } ImageMemoryBarrier2 :: struct { sType: StructureType, pNext: rawptr, srcStageMask: PipelineStageFlags2, srcAccessMask: AccessFlags2, dstStageMask: PipelineStageFlags2, dstAccessMask: AccessFlags2, oldLayout: ImageLayout, newLayout: ImageLayout, srcQueueFamilyIndex: u32, dstQueueFamilyIndex: u32, image: Image, subresourceRange: ImageSubresourceRange, } DependencyInfo :: struct { sType: StructureType, pNext: rawptr, dependencyFlags: DependencyFlags, memoryBarrierCount: u32, pMemoryBarriers: [^]MemoryBarrier2, bufferMemoryBarrierCount: u32, pBufferMemoryBarriers: [^]BufferMemoryBarrier2, imageMemoryBarrierCount: u32, pImageMemoryBarriers: [^]ImageMemoryBarrier2, } SemaphoreSubmitInfo :: struct { sType: StructureType, pNext: rawptr, semaphore: Semaphore, value: u64, stageMask: PipelineStageFlags2, deviceIndex: u32, } CommandBufferSubmitInfo :: struct { sType: StructureType, pNext: rawptr, commandBuffer: CommandBuffer, deviceMask: u32, } SubmitInfo2 :: struct { sType: StructureType, pNext: rawptr, flags: SubmitFlags, waitSemaphoreInfoCount: u32, pWaitSemaphoreInfos: [^]SemaphoreSubmitInfo, commandBufferInfoCount: u32, pCommandBufferInfos: [^]CommandBufferSubmitInfo, signalSemaphoreInfoCount: u32, pSignalSemaphoreInfos: [^]SemaphoreSubmitInfo, } PhysicalDeviceSynchronization2Features :: struct { sType: StructureType, pNext: rawptr, synchronization2: b32, } PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures :: struct { sType: StructureType, pNext: rawptr, shaderZeroInitializeWorkgroupMemory: b32, } PhysicalDeviceImageRobustnessFeatures :: struct { sType: StructureType, pNext: rawptr, robustImageAccess: b32, } BufferCopy2 :: struct { sType: StructureType, pNext: rawptr, srcOffset: DeviceSize, dstOffset: DeviceSize, size: DeviceSize, } CopyBufferInfo2 :: struct { sType: StructureType, pNext: rawptr, srcBuffer: Buffer, dstBuffer: Buffer, regionCount: u32, pRegions: [^]BufferCopy2, } ImageCopy2 :: struct { sType: StructureType, pNext: rawptr, srcSubresource: ImageSubresourceLayers, srcOffset: Offset3D, dstSubresource: ImageSubresourceLayers, dstOffset: Offset3D, extent: Extent3D, } CopyImageInfo2 :: struct { sType: StructureType, pNext: rawptr, srcImage: Image, srcImageLayout: ImageLayout, dstImage: Image, dstImageLayout: ImageLayout, regionCount: u32, pRegions: [^]ImageCopy2, } BufferImageCopy2 :: struct { sType: StructureType, pNext: rawptr, bufferOffset: DeviceSize, bufferRowLength: u32, bufferImageHeight: u32, imageSubresource: ImageSubresourceLayers, imageOffset: Offset3D, imageExtent: Extent3D, } CopyBufferToImageInfo2 :: struct { sType: StructureType, pNext: rawptr, srcBuffer: Buffer, dstImage: Image, dstImageLayout: ImageLayout, regionCount: u32, pRegions: [^]BufferImageCopy2, } CopyImageToBufferInfo2 :: struct { sType: StructureType, pNext: rawptr, srcImage: Image, srcImageLayout: ImageLayout, dstBuffer: Buffer, regionCount: u32, pRegions: [^]BufferImageCopy2, } ImageBlit2 :: struct { sType: StructureType, pNext: rawptr, srcSubresource: ImageSubresourceLayers, srcOffsets: [2]Offset3D, dstSubresource: ImageSubresourceLayers, dstOffsets: [2]Offset3D, } BlitImageInfo2 :: struct { sType: StructureType, pNext: rawptr, srcImage: Image, srcImageLayout: ImageLayout, dstImage: Image, dstImageLayout: ImageLayout, regionCount: u32, pRegions: [^]ImageBlit2, filter: Filter, } ImageResolve2 :: struct { sType: StructureType, pNext: rawptr, srcSubresource: ImageSubresourceLayers, srcOffset: Offset3D, dstSubresource: ImageSubresourceLayers, dstOffset: Offset3D, extent: Extent3D, } ResolveImageInfo2 :: struct { sType: StructureType, pNext: rawptr, srcImage: Image, srcImageLayout: ImageLayout, dstImage: Image, dstImageLayout: ImageLayout, regionCount: u32, pRegions: [^]ImageResolve2, } PhysicalDeviceSubgroupSizeControlFeatures :: struct { sType: StructureType, pNext: rawptr, subgroupSizeControl: b32, computeFullSubgroups: b32, } PhysicalDeviceSubgroupSizeControlProperties :: struct { sType: StructureType, pNext: rawptr, minSubgroupSize: u32, maxSubgroupSize: u32, maxComputeWorkgroupSubgroups: u32, requiredSubgroupSizeStages: ShaderStageFlags, } PipelineShaderStageRequiredSubgroupSizeCreateInfo :: struct { sType: StructureType, pNext: rawptr, requiredSubgroupSize: u32, } PhysicalDeviceInlineUniformBlockFeatures :: struct { sType: StructureType, pNext: rawptr, inlineUniformBlock: b32, descriptorBindingInlineUniformBlockUpdateAfterBind: b32, } PhysicalDeviceInlineUniformBlockProperties :: struct { sType: StructureType, pNext: rawptr, maxInlineUniformBlockSize: u32, maxPerStageDescriptorInlineUniformBlocks: u32, maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks: u32, maxDescriptorSetInlineUniformBlocks: u32, maxDescriptorSetUpdateAfterBindInlineUniformBlocks: u32, } WriteDescriptorSetInlineUniformBlock :: struct { sType: StructureType, pNext: rawptr, dataSize: u32, pData: rawptr, } DescriptorPoolInlineUniformBlockCreateInfo :: struct { sType: StructureType, pNext: rawptr, maxInlineUniformBlockBindings: u32, } PhysicalDeviceTextureCompressionASTCHDRFeatures :: struct { sType: StructureType, pNext: rawptr, textureCompressionASTC_HDR: b32, } RenderingAttachmentInfo :: struct { sType: StructureType, pNext: rawptr, imageView: ImageView, imageLayout: ImageLayout, resolveMode: ResolveModeFlags, resolveImageView: ImageView, resolveImageLayout: ImageLayout, loadOp: AttachmentLoadOp, storeOp: AttachmentStoreOp, clearValue: ClearValue, } RenderingInfo :: struct { sType: StructureType, pNext: rawptr, flags: RenderingFlags, renderArea: Rect2D, layerCount: u32, viewMask: u32, colorAttachmentCount: u32, pColorAttachments: [^]RenderingAttachmentInfo, pDepthAttachment: ^RenderingAttachmentInfo, pStencilAttachment: ^RenderingAttachmentInfo, } PipelineRenderingCreateInfo :: struct { sType: StructureType, pNext: rawptr, viewMask: u32, colorAttachmentCount: u32, pColorAttachmentFormats: [^]Format, depthAttachmentFormat: Format, stencilAttachmentFormat: Format, } PhysicalDeviceDynamicRenderingFeatures :: struct { sType: StructureType, pNext: rawptr, dynamicRendering: b32, } CommandBufferInheritanceRenderingInfo :: struct { sType: StructureType, pNext: rawptr, flags: RenderingFlags, viewMask: u32, colorAttachmentCount: u32, pColorAttachmentFormats: [^]Format, depthAttachmentFormat: Format, stencilAttachmentFormat: Format, rasterizationSamples: SampleCountFlags, } PhysicalDeviceShaderIntegerDotProductFeatures :: struct { sType: StructureType, pNext: rawptr, shaderIntegerDotProduct: b32, } PhysicalDeviceShaderIntegerDotProductProperties :: struct { sType: StructureType, pNext: rawptr, integerDotProduct8BitUnsignedAccelerated: b32, integerDotProduct8BitSignedAccelerated: b32, integerDotProduct8BitMixedSignednessAccelerated: b32, integerDotProduct4x8BitPackedUnsignedAccelerated: b32, integerDotProduct4x8BitPackedSignedAccelerated: b32, integerDotProduct4x8BitPackedMixedSignednessAccelerated: b32, integerDotProduct16BitUnsignedAccelerated: b32, integerDotProduct16BitSignedAccelerated: b32, integerDotProduct16BitMixedSignednessAccelerated: b32, integerDotProduct32BitUnsignedAccelerated: b32, integerDotProduct32BitSignedAccelerated: b32, integerDotProduct32BitMixedSignednessAccelerated: b32, integerDotProduct64BitUnsignedAccelerated: b32, integerDotProduct64BitSignedAccelerated: b32, integerDotProduct64BitMixedSignednessAccelerated: b32, integerDotProductAccumulatingSaturating8BitUnsignedAccelerated: b32, integerDotProductAccumulatingSaturating8BitSignedAccelerated: b32, integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated: b32, integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated: b32, integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated: b32, integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated: b32, integerDotProductAccumulatingSaturating16BitUnsignedAccelerated: b32, integerDotProductAccumulatingSaturating16BitSignedAccelerated: b32, integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated: b32, integerDotProductAccumulatingSaturating32BitUnsignedAccelerated: b32, integerDotProductAccumulatingSaturating32BitSignedAccelerated: b32, integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated: b32, integerDotProductAccumulatingSaturating64BitUnsignedAccelerated: b32, integerDotProductAccumulatingSaturating64BitSignedAccelerated: b32, integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated: b32, } PhysicalDeviceTexelBufferAlignmentProperties :: struct { sType: StructureType, pNext: rawptr, storageTexelBufferOffsetAlignmentBytes: DeviceSize, storageTexelBufferOffsetSingleTexelAlignment: b32, uniformTexelBufferOffsetAlignmentBytes: DeviceSize, uniformTexelBufferOffsetSingleTexelAlignment: b32, } FormatProperties3 :: struct { sType: StructureType, pNext: rawptr, linearTilingFeatures: FormatFeatureFlags2, optimalTilingFeatures: FormatFeatureFlags2, bufferFeatures: FormatFeatureFlags2, } PhysicalDeviceMaintenance4Features :: struct { sType: StructureType, pNext: rawptr, maintenance4: b32, } PhysicalDeviceMaintenance4Properties :: struct { sType: StructureType, pNext: rawptr, maxBufferSize: DeviceSize, } DeviceBufferMemoryRequirements :: struct { sType: StructureType, pNext: rawptr, pCreateInfo: ^BufferCreateInfo, } DeviceImageMemoryRequirements :: struct { sType: StructureType, pNext: rawptr, pCreateInfo: ^ImageCreateInfo, planeAspect: ImageAspectFlags, } PhysicalDeviceVulkan14Features :: struct { sType: StructureType, pNext: rawptr, globalPriorityQuery: b32, shaderSubgroupRotate: b32, shaderSubgroupRotateClustered: b32, shaderFloatControls2: b32, shaderExpectAssume: b32, rectangularLines: b32, bresenhamLines: b32, smoothLines: b32, stippledRectangularLines: b32, stippledBresenhamLines: b32, stippledSmoothLines: b32, vertexAttributeInstanceRateDivisor: b32, vertexAttributeInstanceRateZeroDivisor: b32, indexTypeUint8: b32, dynamicRenderingLocalRead: b32, maintenance5: b32, maintenance6: b32, pipelineProtectedAccess: b32, pipelineRobustness: b32, hostImageCopy: b32, pushDescriptor: b32, } PhysicalDeviceVulkan14Properties :: struct { sType: StructureType, pNext: rawptr, lineSubPixelPrecisionBits: u32, maxVertexAttribDivisor: u32, supportsNonZeroFirstInstance: b32, maxPushDescriptors: u32, dynamicRenderingLocalReadDepthStencilAttachments: b32, dynamicRenderingLocalReadMultisampledAttachments: b32, earlyFragmentMultisampleCoverageAfterSampleCounting: b32, earlyFragmentSampleMaskTestBeforeSampleCounting: b32, depthStencilSwizzleOneSupport: b32, polygonModePointSize: b32, nonStrictSinglePixelWideLinesUseParallelogram: b32, nonStrictWideLinesUseParallelogram: b32, blockTexelViewCompatibleMultipleLayers: b32, maxCombinedImageSamplerDescriptorCount: u32, fragmentShadingRateClampCombinerInputs: b32, defaultRobustnessStorageBuffers: PipelineRobustnessBufferBehavior, defaultRobustnessUniformBuffers: PipelineRobustnessBufferBehavior, defaultRobustnessVertexInputs: PipelineRobustnessBufferBehavior, defaultRobustnessImages: PipelineRobustnessImageBehavior, copySrcLayoutCount: u32, pCopySrcLayouts: [^]ImageLayout, copyDstLayoutCount: u32, pCopyDstLayouts: [^]ImageLayout, optimalTilingLayoutUUID: [UUID_SIZE]u8, identicalMemoryTypeRequirements: b32, } DeviceQueueGlobalPriorityCreateInfo :: struct { sType: StructureType, pNext: rawptr, globalPriority: QueueGlobalPriority, } PhysicalDeviceGlobalPriorityQueryFeatures :: struct { sType: StructureType, pNext: rawptr, globalPriorityQuery: b32, } QueueFamilyGlobalPriorityProperties :: struct { sType: StructureType, pNext: rawptr, priorityCount: u32, priorities: [MAX_GLOBAL_PRIORITY_SIZE]QueueGlobalPriority, } PhysicalDeviceShaderSubgroupRotateFeatures :: struct { sType: StructureType, pNext: rawptr, shaderSubgroupRotate: b32, shaderSubgroupRotateClustered: b32, } PhysicalDeviceShaderFloatControls2Features :: struct { sType: StructureType, pNext: rawptr, shaderFloatControls2: b32, } PhysicalDeviceShaderExpectAssumeFeatures :: struct { sType: StructureType, pNext: rawptr, shaderExpectAssume: b32, } PhysicalDeviceLineRasterizationFeatures :: struct { sType: StructureType, pNext: rawptr, rectangularLines: b32, bresenhamLines: b32, smoothLines: b32, stippledRectangularLines: b32, stippledBresenhamLines: b32, stippledSmoothLines: b32, } PhysicalDeviceLineRasterizationProperties :: struct { sType: StructureType, pNext: rawptr, lineSubPixelPrecisionBits: u32, } PipelineRasterizationLineStateCreateInfo :: struct { sType: StructureType, pNext: rawptr, lineRasterizationMode: LineRasterizationMode, stippledLineEnable: b32, lineStippleFactor: u32, lineStipplePattern: u16, } PhysicalDeviceVertexAttributeDivisorProperties :: struct { sType: StructureType, pNext: rawptr, maxVertexAttribDivisor: u32, supportsNonZeroFirstInstance: b32, } VertexInputBindingDivisorDescription :: struct { binding: u32, divisor: u32, } PipelineVertexInputDivisorStateCreateInfo :: struct { sType: StructureType, pNext: rawptr, vertexBindingDivisorCount: u32, pVertexBindingDivisors: [^]VertexInputBindingDivisorDescription, } PhysicalDeviceVertexAttributeDivisorFeatures :: struct { sType: StructureType, pNext: rawptr, vertexAttributeInstanceRateDivisor: b32, vertexAttributeInstanceRateZeroDivisor: b32, } PhysicalDeviceIndexTypeUint8Features :: struct { sType: StructureType, pNext: rawptr, indexTypeUint8: b32, } MemoryMapInfo :: struct { sType: StructureType, pNext: rawptr, flags: MemoryMapFlags, memory: DeviceMemory, offset: DeviceSize, size: DeviceSize, } MemoryUnmapInfo :: struct { sType: StructureType, pNext: rawptr, flags: MemoryUnmapFlags, memory: DeviceMemory, } PhysicalDeviceMaintenance5Features :: struct { sType: StructureType, pNext: rawptr, maintenance5: b32, } PhysicalDeviceMaintenance5Properties :: struct { sType: StructureType, pNext: rawptr, earlyFragmentMultisampleCoverageAfterSampleCounting: b32, earlyFragmentSampleMaskTestBeforeSampleCounting: b32, depthStencilSwizzleOneSupport: b32, polygonModePointSize: b32, nonStrictSinglePixelWideLinesUseParallelogram: b32, nonStrictWideLinesUseParallelogram: b32, } RenderingAreaInfo :: struct { sType: StructureType, pNext: rawptr, viewMask: u32, colorAttachmentCount: u32, pColorAttachmentFormats: [^]Format, depthAttachmentFormat: Format, stencilAttachmentFormat: Format, } ImageSubresource2 :: struct { sType: StructureType, pNext: rawptr, imageSubresource: ImageSubresource, } DeviceImageSubresourceInfo :: struct { sType: StructureType, pNext: rawptr, pCreateInfo: ^ImageCreateInfo, pSubresource: ^ImageSubresource2, } SubresourceLayout2 :: struct { sType: StructureType, pNext: rawptr, subresourceLayout: SubresourceLayout, } PipelineCreateFlags2CreateInfo :: struct { sType: StructureType, pNext: rawptr, flags: PipelineCreateFlags2, } BufferUsageFlags2CreateInfo :: struct { sType: StructureType, pNext: rawptr, usage: BufferUsageFlags2, } PhysicalDevicePushDescriptorProperties :: struct { sType: StructureType, pNext: rawptr, maxPushDescriptors: u32, } PhysicalDeviceDynamicRenderingLocalReadFeatures :: struct { sType: StructureType, pNext: rawptr, dynamicRenderingLocalRead: b32, } RenderingAttachmentLocationInfo :: struct { sType: StructureType, pNext: rawptr, colorAttachmentCount: u32, pColorAttachmentLocations: [^]u32, } RenderingInputAttachmentIndexInfo :: struct { sType: StructureType, pNext: rawptr, colorAttachmentCount: u32, pColorAttachmentInputIndices: [^]u32, pDepthInputAttachmentIndex: ^u32, pStencilInputAttachmentIndex: ^u32, } PhysicalDeviceMaintenance6Features :: struct { sType: StructureType, pNext: rawptr, maintenance6: b32, } PhysicalDeviceMaintenance6Properties :: struct { sType: StructureType, pNext: rawptr, blockTexelViewCompatibleMultipleLayers: b32, maxCombinedImageSamplerDescriptorCount: u32, fragmentShadingRateClampCombinerInputs: b32, } BindMemoryStatus :: struct { sType: StructureType, pNext: rawptr, pResult: ^Result, } BindDescriptorSetsInfo :: struct { sType: StructureType, pNext: rawptr, stageFlags: ShaderStageFlags, layout: PipelineLayout, firstSet: u32, descriptorSetCount: u32, pDescriptorSets: [^]DescriptorSet, dynamicOffsetCount: u32, pDynamicOffsets: [^]u32, } PushConstantsInfo :: struct { sType: StructureType, pNext: rawptr, layout: PipelineLayout, stageFlags: ShaderStageFlags, offset: u32, size: u32, pValues: rawptr, } PushDescriptorSetInfo :: struct { sType: StructureType, pNext: rawptr, stageFlags: ShaderStageFlags, layout: PipelineLayout, set: u32, descriptorWriteCount: u32, pDescriptorWrites: [^]WriteDescriptorSet, } PushDescriptorSetWithTemplateInfo :: struct { sType: StructureType, pNext: rawptr, descriptorUpdateTemplate: DescriptorUpdateTemplate, layout: PipelineLayout, set: u32, pData: rawptr, } PhysicalDevicePipelineProtectedAccessFeatures :: struct { sType: StructureType, pNext: rawptr, pipelineProtectedAccess: b32, } PhysicalDevicePipelineRobustnessFeatures :: struct { sType: StructureType, pNext: rawptr, pipelineRobustness: b32, } PhysicalDevicePipelineRobustnessProperties :: struct { sType: StructureType, pNext: rawptr, defaultRobustnessStorageBuffers: PipelineRobustnessBufferBehavior, defaultRobustnessUniformBuffers: PipelineRobustnessBufferBehavior, defaultRobustnessVertexInputs: PipelineRobustnessBufferBehavior, defaultRobustnessImages: PipelineRobustnessImageBehavior, } PipelineRobustnessCreateInfo :: struct { sType: StructureType, pNext: rawptr, storageBuffers: PipelineRobustnessBufferBehavior, uniformBuffers: PipelineRobustnessBufferBehavior, vertexInputs: PipelineRobustnessBufferBehavior, images: PipelineRobustnessImageBehavior, } PhysicalDeviceHostImageCopyFeatures :: struct { sType: StructureType, pNext: rawptr, hostImageCopy: b32, } PhysicalDeviceHostImageCopyProperties :: struct { sType: StructureType, pNext: rawptr, copySrcLayoutCount: u32, pCopySrcLayouts: [^]ImageLayout, copyDstLayoutCount: u32, pCopyDstLayouts: [^]ImageLayout, optimalTilingLayoutUUID: [UUID_SIZE]u8, identicalMemoryTypeRequirements: b32, } MemoryToImageCopy :: struct { sType: StructureType, pNext: rawptr, pHostPointer: rawptr, memoryRowLength: u32, memoryImageHeight: u32, imageSubresource: ImageSubresourceLayers, imageOffset: Offset3D, imageExtent: Extent3D, } ImageToMemoryCopy :: struct { sType: StructureType, pNext: rawptr, pHostPointer: rawptr, memoryRowLength: u32, memoryImageHeight: u32, imageSubresource: ImageSubresourceLayers, imageOffset: Offset3D, imageExtent: Extent3D, } CopyMemoryToImageInfo :: struct { sType: StructureType, pNext: rawptr, flags: HostImageCopyFlags, dstImage: Image, dstImageLayout: ImageLayout, regionCount: u32, pRegions: [^]MemoryToImageCopy, } CopyImageToMemoryInfo :: struct { sType: StructureType, pNext: rawptr, flags: HostImageCopyFlags, srcImage: Image, srcImageLayout: ImageLayout, regionCount: u32, pRegions: [^]ImageToMemoryCopy, } CopyImageToImageInfo :: struct { sType: StructureType, pNext: rawptr, flags: HostImageCopyFlags, srcImage: Image, srcImageLayout: ImageLayout, dstImage: Image, dstImageLayout: ImageLayout, regionCount: u32, pRegions: [^]ImageCopy2, } HostImageLayoutTransitionInfo :: struct { sType: StructureType, pNext: rawptr, image: Image, oldLayout: ImageLayout, newLayout: ImageLayout, subresourceRange: ImageSubresourceRange, } SubresourceHostMemcpySize :: struct { sType: StructureType, pNext: rawptr, size: DeviceSize, } HostImageCopyDevicePerformanceQuery :: struct { sType: StructureType, pNext: rawptr, optimalDeviceAccess: b32, identicalMemoryLayout: b32, } SurfaceCapabilitiesKHR :: struct { minImageCount: u32, maxImageCount: u32, currentExtent: Extent2D, minImageExtent: Extent2D, maxImageExtent: Extent2D, maxImageArrayLayers: u32, supportedTransforms: SurfaceTransformFlagsKHR, currentTransform: SurfaceTransformFlagsKHR, supportedCompositeAlpha: CompositeAlphaFlagsKHR, supportedUsageFlags: ImageUsageFlags, } SurfaceFormatKHR :: struct { format: Format, colorSpace: ColorSpaceKHR, } SwapchainCreateInfoKHR :: struct { sType: StructureType, pNext: rawptr, flags: SwapchainCreateFlagsKHR, surface: SurfaceKHR, minImageCount: u32, imageFormat: Format, imageColorSpace: ColorSpaceKHR, imageExtent: Extent2D, imageArrayLayers: u32, imageUsage: ImageUsageFlags, imageSharingMode: SharingMode, queueFamilyIndexCount: u32, pQueueFamilyIndices: [^]u32, preTransform: SurfaceTransformFlagsKHR, compositeAlpha: CompositeAlphaFlagsKHR, presentMode: PresentModeKHR, clipped: b32, oldSwapchain: SwapchainKHR, } PresentInfoKHR :: struct { sType: StructureType, pNext: rawptr, waitSemaphoreCount: u32, pWaitSemaphores: [^]Semaphore, swapchainCount: u32, pSwapchains: [^]SwapchainKHR, pImageIndices: [^]u32, pResults: [^]Result, } ImageSwapchainCreateInfoKHR :: struct { sType: StructureType, pNext: rawptr, swapchain: SwapchainKHR, } BindImageMemorySwapchainInfoKHR :: struct { sType: StructureType, pNext: rawptr, swapchain: SwapchainKHR, imageIndex: u32, } AcquireNextImageInfoKHR :: struct { sType: StructureType, pNext: rawptr, swapchain: SwapchainKHR, timeout: u64, semaphore: Semaphore, fence: Fence, deviceMask: u32, } DeviceGroupPresentCapabilitiesKHR :: struct { sType: StructureType, pNext: rawptr, presentMask: [MAX_DEVICE_GROUP_SIZE]u32, modes: DeviceGroupPresentModeFlagsKHR, } DeviceGroupPresentInfoKHR :: struct { sType: StructureType, pNext: rawptr, swapchainCount: u32, pDeviceMasks: [^]u32, mode: DeviceGroupPresentModeFlagsKHR, } DeviceGroupSwapchainCreateInfoKHR :: struct { sType: StructureType, pNext: rawptr, modes: DeviceGroupPresentModeFlagsKHR, } DisplayModeParametersKHR :: struct { visibleRegion: Extent2D, refreshRate: u32, } DisplayModeCreateInfoKHR :: struct { sType: StructureType, pNext: rawptr, flags: DisplayModeCreateFlagsKHR, parameters: DisplayModeParametersKHR, } DisplayModePropertiesKHR :: struct { displayMode: DisplayModeKHR, parameters: DisplayModeParametersKHR, } DisplayPlaneCapabilitiesKHR :: struct { supportedAlpha: DisplayPlaneAlphaFlagsKHR, minSrcPosition: Offset2D, maxSrcPosition: Offset2D, minSrcExtent: Extent2D, maxSrcExtent: Extent2D, minDstPosition: Offset2D, maxDstPosition: Offset2D, minDstExtent: Extent2D, maxDstExtent: Extent2D, } DisplayPlanePropertiesKHR :: struct { currentDisplay: DisplayKHR, currentStackIndex: u32, } DisplayPropertiesKHR :: struct { display: DisplayKHR, displayName: cstring, physicalDimensions: Extent2D, physicalResolution: Extent2D, supportedTransforms: SurfaceTransformFlagsKHR, planeReorderPossible: b32, persistentContent: b32, } DisplaySurfaceCreateInfoKHR :: struct { sType: StructureType, pNext: rawptr, flags: DisplaySurfaceCreateFlagsKHR, displayMode: DisplayModeKHR, planeIndex: u32, planeStackIndex: u32, transform: SurfaceTransformFlagsKHR, globalAlpha: f32, alphaMode: DisplayPlaneAlphaFlagsKHR, imageExtent: Extent2D, } DisplayPresentInfoKHR :: struct { sType: StructureType, pNext: rawptr, srcRect: Rect2D, dstRect: Rect2D, persistent: b32, } QueueFamilyQueryResultStatusPropertiesKHR :: struct { sType: StructureType, pNext: rawptr, queryResultStatusSupport: b32, } QueueFamilyVideoPropertiesKHR :: struct { sType: StructureType, pNext: rawptr, videoCodecOperations: VideoCodecOperationFlagsKHR, } VideoProfileInfoKHR :: struct { sType: StructureType, pNext: rawptr, videoCodecOperation: VideoCodecOperationFlagsKHR, chromaSubsampling: VideoChromaSubsamplingFlagsKHR, lumaBitDepth: VideoComponentBitDepthFlagsKHR, chromaBitDepth: VideoComponentBitDepthFlagsKHR, } VideoProfileListInfoKHR :: struct { sType: StructureType, pNext: rawptr, profileCount: u32, pProfiles: [^]VideoProfileInfoKHR, } VideoCapabilitiesKHR :: struct { sType: StructureType, pNext: rawptr, flags: VideoCapabilityFlagsKHR, minBitstreamBufferOffsetAlignment: DeviceSize, minBitstreamBufferSizeAlignment: DeviceSize, pictureAccessGranularity: Extent2D, minCodedExtent: Extent2D, maxCodedExtent: Extent2D, maxDpbSlots: u32, maxActiveReferencePictures: u32, stdHeaderVersion: ExtensionProperties, } PhysicalDeviceVideoFormatInfoKHR :: struct { sType: StructureType, pNext: rawptr, imageUsage: ImageUsageFlags, } VideoFormatPropertiesKHR :: struct { sType: StructureType, pNext: rawptr, format: Format, componentMapping: ComponentMapping, imageCreateFlags: ImageCreateFlags, imageType: ImageType, imageTiling: ImageTiling, imageUsageFlags: ImageUsageFlags, } VideoPictureResourceInfoKHR :: struct { sType: StructureType, pNext: rawptr, codedOffset: Offset2D, codedExtent: Extent2D, baseArrayLayer: u32, imageViewBinding: ImageView, } VideoReferenceSlotInfoKHR :: struct { sType: StructureType, pNext: rawptr, slotIndex: i32, pPictureResource: ^VideoPictureResourceInfoKHR, } VideoSessionMemoryRequirementsKHR :: struct { sType: StructureType, pNext: rawptr, memoryBindIndex: u32, memoryRequirements: MemoryRequirements, } BindVideoSessionMemoryInfoKHR :: struct { sType: StructureType, pNext: rawptr, memoryBindIndex: u32, memory: DeviceMemory, memoryOffset: DeviceSize, memorySize: DeviceSize, } VideoSessionCreateInfoKHR :: struct { sType: StructureType, pNext: rawptr, queueFamilyIndex: u32, flags: VideoSessionCreateFlagsKHR, pVideoProfile: ^VideoProfileInfoKHR, pictureFormat: Format, maxCodedExtent: Extent2D, referencePictureFormat: Format, maxDpbSlots: u32, maxActiveReferencePictures: u32, pStdHeaderVersion: ^ExtensionProperties, } VideoSessionParametersCreateInfoKHR :: struct { sType: StructureType, pNext: rawptr, flags: VideoSessionParametersCreateFlagsKHR, videoSessionParametersTemplate: VideoSessionParametersKHR, videoSession: VideoSessionKHR, } VideoSessionParametersUpdateInfoKHR :: struct { sType: StructureType, pNext: rawptr, updateSequenceCount: u32, } VideoBeginCodingInfoKHR :: struct { sType: StructureType, pNext: rawptr, flags: VideoBeginCodingFlagsKHR, videoSession: VideoSessionKHR, videoSessionParameters: VideoSessionParametersKHR, referenceSlotCount: u32, pReferenceSlots: [^]VideoReferenceSlotInfoKHR, } VideoEndCodingInfoKHR :: struct { sType: StructureType, pNext: rawptr, flags: VideoEndCodingFlagsKHR, } VideoCodingControlInfoKHR :: struct { sType: StructureType, pNext: rawptr, flags: VideoCodingControlFlagsKHR, } VideoDecodeCapabilitiesKHR :: struct { sType: StructureType, pNext: rawptr, flags: VideoDecodeCapabilityFlagsKHR, } VideoDecodeUsageInfoKHR :: struct { sType: StructureType, pNext: rawptr, videoUsageHints: VideoDecodeUsageFlagsKHR, } VideoDecodeInfoKHR :: struct { sType: StructureType, pNext: rawptr, flags: VideoDecodeFlagsKHR, srcBuffer: Buffer, srcBufferOffset: DeviceSize, srcBufferRange: DeviceSize, dstPictureResource: VideoPictureResourceInfoKHR, pSetupReferenceSlot: ^VideoReferenceSlotInfoKHR, referenceSlotCount: u32, pReferenceSlots: [^]VideoReferenceSlotInfoKHR, } VideoEncodeH264CapabilitiesKHR :: struct { sType: StructureType, pNext: rawptr, flags: VideoEncodeH264CapabilityFlagsKHR, maxLevelIdc: VideoH264LevelIdc, maxSliceCount: u32, maxPPictureL0ReferenceCount: u32, maxBPictureL0ReferenceCount: u32, maxL1ReferenceCount: u32, maxTemporalLayerCount: u32, expectDyadicTemporalLayerPattern: b32, minQp: i32, maxQp: i32, prefersGopRemainingFrames: b32, requiresGopRemainingFrames: b32, stdSyntaxFlags: VideoEncodeH264StdFlagsKHR, } VideoEncodeH264QpKHR :: struct { qpI: i32, qpP: i32, qpB: i32, } VideoEncodeH264QualityLevelPropertiesKHR :: struct { sType: StructureType, pNext: rawptr, preferredRateControlFlags: VideoEncodeH264RateControlFlagsKHR, preferredGopFrameCount: u32, preferredIdrPeriod: u32, preferredConsecutiveBFrameCount: u32, preferredTemporalLayerCount: u32, preferredConstantQp: VideoEncodeH264QpKHR, preferredMaxL0ReferenceCount: u32, preferredMaxL1ReferenceCount: u32, preferredStdEntropyCodingModeFlag: b32, } VideoEncodeH264SessionCreateInfoKHR :: struct { sType: StructureType, pNext: rawptr, useMaxLevelIdc: b32, maxLevelIdc: VideoH264LevelIdc, } VideoEncodeH264SessionParametersAddInfoKHR :: struct { sType: StructureType, pNext: rawptr, stdSPSCount: u32, pStdSPSs: [^]VideoH264SequenceParameterSet, stdPPSCount: u32, pStdPPSs: [^]VideoH264PictureParameterSet, } VideoEncodeH264SessionParametersCreateInfoKHR :: struct { sType: StructureType, pNext: rawptr, maxStdSPSCount: u32, maxStdPPSCount: u32, pParametersAddInfo: ^VideoEncodeH264SessionParametersAddInfoKHR, } VideoEncodeH264SessionParametersGetInfoKHR :: struct { sType: StructureType, pNext: rawptr, writeStdSPS: b32, writeStdPPS: b32, stdSPSId: u32, stdPPSId: u32, } VideoEncodeH264SessionParametersFeedbackInfoKHR :: struct { sType: StructureType, pNext: rawptr, hasStdSPSOverrides: b32, hasStdPPSOverrides: b32, } VideoEncodeH264NaluSliceInfoKHR :: struct { sType: StructureType, pNext: rawptr, constantQp: i32, pStdSliceHeader: ^VideoEncodeH264SliceHeader, } VideoEncodeH264PictureInfoKHR :: struct { sType: StructureType, pNext: rawptr, naluSliceEntryCount: u32, pNaluSliceEntries: [^]VideoEncodeH264NaluSliceInfoKHR, pStdPictureInfo: ^VideoEncodeH264PictureInfo, generatePrefixNalu: b32, } VideoEncodeH264DpbSlotInfoKHR :: struct { sType: StructureType, pNext: rawptr, pStdReferenceInfo: ^VideoEncodeH264ReferenceInfo, } VideoEncodeH264ProfileInfoKHR :: struct { sType: StructureType, pNext: rawptr, stdProfileIdc: VideoH264ProfileIdc, } VideoEncodeH264RateControlInfoKHR :: struct { sType: StructureType, pNext: rawptr, flags: VideoEncodeH264RateControlFlagsKHR, gopFrameCount: u32, idrPeriod: u32, consecutiveBFrameCount: u32, temporalLayerCount: u32, } VideoEncodeH264FrameSizeKHR :: struct { frameISize: u32, framePSize: u32, frameBSize: u32, } VideoEncodeH264RateControlLayerInfoKHR :: struct { sType: StructureType, pNext: rawptr, useMinQp: b32, minQp: VideoEncodeH264QpKHR, useMaxQp: b32, maxQp: VideoEncodeH264QpKHR, useMaxFrameSize: b32, maxFrameSize: VideoEncodeH264FrameSizeKHR, } VideoEncodeH264GopRemainingFrameInfoKHR :: struct { sType: StructureType, pNext: rawptr, useGopRemainingFrames: b32, gopRemainingI: u32, gopRemainingP: u32, gopRemainingB: u32, } VideoEncodeH265CapabilitiesKHR :: struct { sType: StructureType, pNext: rawptr, flags: VideoEncodeH265CapabilityFlagsKHR, maxLevelIdc: VideoH265LevelIdc, maxSliceSegmentCount: u32, maxTiles: Extent2D, ctbSizes: VideoEncodeH265CtbSizeFlagsKHR, transformBlockSizes: VideoEncodeH265TransformBlockSizeFlagsKHR, maxPPictureL0ReferenceCount: u32, maxBPictureL0ReferenceCount: u32, maxL1ReferenceCount: u32, maxSubLayerCount: u32, expectDyadicTemporalSubLayerPattern: b32, minQp: i32, maxQp: i32, prefersGopRemainingFrames: b32, requiresGopRemainingFrames: b32, stdSyntaxFlags: VideoEncodeH265StdFlagsKHR, } VideoEncodeH265SessionCreateInfoKHR :: struct { sType: StructureType, pNext: rawptr, useMaxLevelIdc: b32, maxLevelIdc: VideoH265LevelIdc, } VideoEncodeH265QpKHR :: struct { qpI: i32, qpP: i32, qpB: i32, } VideoEncodeH265QualityLevelPropertiesKHR :: struct { sType: StructureType, pNext: rawptr, preferredRateControlFlags: VideoEncodeH265RateControlFlagsKHR, preferredGopFrameCount: u32, preferredIdrPeriod: u32, preferredConsecutiveBFrameCount: u32, preferredSubLayerCount: u32, preferredConstantQp: VideoEncodeH265QpKHR, preferredMaxL0ReferenceCount: u32, preferredMaxL1ReferenceCount: u32, } VideoEncodeH265SessionParametersAddInfoKHR :: struct { sType: StructureType, pNext: rawptr, stdVPSCount: u32, pStdVPSs: [^]VideoH265VideoParameterSet, stdSPSCount: u32, pStdSPSs: [^]VideoH265SequenceParameterSet, stdPPSCount: u32, pStdPPSs: [^]VideoH265PictureParameterSet, } VideoEncodeH265SessionParametersCreateInfoKHR :: struct { sType: StructureType, pNext: rawptr, maxStdVPSCount: u32, maxStdSPSCount: u32, maxStdPPSCount: u32, pParametersAddInfo: ^VideoEncodeH265SessionParametersAddInfoKHR, } VideoEncodeH265SessionParametersGetInfoKHR :: struct { sType: StructureType, pNext: rawptr, writeStdVPS: b32, writeStdSPS: b32, writeStdPPS: b32, stdVPSId: u32, stdSPSId: u32, stdPPSId: u32, } VideoEncodeH265SessionParametersFeedbackInfoKHR :: struct { sType: StructureType, pNext: rawptr, hasStdVPSOverrides: b32, hasStdSPSOverrides: b32, hasStdPPSOverrides: b32, } VideoEncodeH265NaluSliceSegmentInfoKHR :: struct { sType: StructureType, pNext: rawptr, constantQp: i32, pStdSliceSegmentHeader: ^VideoEncodeH265SliceSegmentHeader, } VideoEncodeH265PictureInfoKHR :: struct { sType: StructureType, pNext: rawptr, naluSliceSegmentEntryCount: u32, pNaluSliceSegmentEntries: [^]VideoEncodeH265NaluSliceSegmentInfoKHR, pStdPictureInfo: ^VideoEncodeH265PictureInfo, } VideoEncodeH265DpbSlotInfoKHR :: struct { sType: StructureType, pNext: rawptr, pStdReferenceInfo: ^VideoEncodeH265ReferenceInfo, } VideoEncodeH265ProfileInfoKHR :: struct { sType: StructureType, pNext: rawptr, stdProfileIdc: VideoH265ProfileIdc, } VideoEncodeH265RateControlInfoKHR :: struct { sType: StructureType, pNext: rawptr, flags: VideoEncodeH265RateControlFlagsKHR, gopFrameCount: u32, idrPeriod: u32, consecutiveBFrameCount: u32, subLayerCount: u32, } VideoEncodeH265FrameSizeKHR :: struct { frameISize: u32, framePSize: u32, frameBSize: u32, } VideoEncodeH265RateControlLayerInfoKHR :: struct { sType: StructureType, pNext: rawptr, useMinQp: b32, minQp: VideoEncodeH265QpKHR, useMaxQp: b32, maxQp: VideoEncodeH265QpKHR, useMaxFrameSize: b32, maxFrameSize: VideoEncodeH265FrameSizeKHR, } VideoEncodeH265GopRemainingFrameInfoKHR :: struct { sType: StructureType, pNext: rawptr, useGopRemainingFrames: b32, gopRemainingI: u32, gopRemainingP: u32, gopRemainingB: u32, } VideoDecodeH264ProfileInfoKHR :: struct { sType: StructureType, pNext: rawptr, stdProfileIdc: VideoH264ProfileIdc, pictureLayout: VideoDecodeH264PictureLayoutFlagsKHR, } VideoDecodeH264CapabilitiesKHR :: struct { sType: StructureType, pNext: rawptr, maxLevelIdc: VideoH264LevelIdc, fieldOffsetGranularity: Offset2D, } VideoDecodeH264SessionParametersAddInfoKHR :: struct { sType: StructureType, pNext: rawptr, stdSPSCount: u32, pStdSPSs: [^]VideoH264SequenceParameterSet, stdPPSCount: u32, pStdPPSs: [^]VideoH264PictureParameterSet, } VideoDecodeH264SessionParametersCreateInfoKHR :: struct { sType: StructureType, pNext: rawptr, maxStdSPSCount: u32, maxStdPPSCount: u32, pParametersAddInfo: ^VideoDecodeH264SessionParametersAddInfoKHR, } VideoDecodeH264PictureInfoKHR :: struct { sType: StructureType, pNext: rawptr, pStdPictureInfo: ^VideoDecodeH264PictureInfo, sliceCount: u32, pSliceOffsets: [^]u32, } VideoDecodeH264DpbSlotInfoKHR :: struct { sType: StructureType, pNext: rawptr, pStdReferenceInfo: ^VideoDecodeH264ReferenceInfo, } ImportMemoryFdInfoKHR :: struct { sType: StructureType, pNext: rawptr, handleType: ExternalMemoryHandleTypeFlags, fd: c.int, } MemoryFdPropertiesKHR :: struct { sType: StructureType, pNext: rawptr, memoryTypeBits: u32, } MemoryGetFdInfoKHR :: struct { sType: StructureType, pNext: rawptr, memory: DeviceMemory, handleType: ExternalMemoryHandleTypeFlags, } ImportSemaphoreFdInfoKHR :: struct { sType: StructureType, pNext: rawptr, semaphore: Semaphore, flags: SemaphoreImportFlags, handleType: ExternalSemaphoreHandleTypeFlags, fd: c.int, } SemaphoreGetFdInfoKHR :: struct { sType: StructureType, pNext: rawptr, semaphore: Semaphore, handleType: ExternalSemaphoreHandleTypeFlags, } RectLayerKHR :: struct { offset: Offset2D, extent: Extent2D, layer: u32, } PresentRegionKHR :: struct { rectangleCount: u32, pRectangles: [^]RectLayerKHR, } PresentRegionsKHR :: struct { sType: StructureType, pNext: rawptr, swapchainCount: u32, pRegions: [^]PresentRegionKHR, } SharedPresentSurfaceCapabilitiesKHR :: struct { sType: StructureType, pNext: rawptr, sharedPresentSupportedUsageFlags: ImageUsageFlags, } ImportFenceFdInfoKHR :: struct { sType: StructureType, pNext: rawptr, fence: Fence, flags: FenceImportFlags, handleType: ExternalFenceHandleTypeFlags, fd: c.int, } FenceGetFdInfoKHR :: struct { sType: StructureType, pNext: rawptr, fence: Fence, handleType: ExternalFenceHandleTypeFlags, } PhysicalDevicePerformanceQueryFeaturesKHR :: struct { sType: StructureType, pNext: rawptr, performanceCounterQueryPools: b32, performanceCounterMultipleQueryPools: b32, } PhysicalDevicePerformanceQueryPropertiesKHR :: struct { sType: StructureType, pNext: rawptr, allowCommandBufferQueryCopies: b32, } PerformanceCounterKHR :: struct { sType: StructureType, pNext: rawptr, unit: PerformanceCounterUnitKHR, scope: PerformanceCounterScopeKHR, storage: PerformanceCounterStorageKHR, uuid: [UUID_SIZE]u8, } PerformanceCounterDescriptionKHR :: struct { sType: StructureType, pNext: rawptr, flags: PerformanceCounterDescriptionFlagsKHR, name: [MAX_DESCRIPTION_SIZE]byte, category: [MAX_DESCRIPTION_SIZE]byte, description: [MAX_DESCRIPTION_SIZE]byte, } QueryPoolPerformanceCreateInfoKHR :: struct { sType: StructureType, pNext: rawptr, queueFamilyIndex: u32, counterIndexCount: u32, pCounterIndices: [^]u32, } PerformanceCounterResultKHR :: struct #raw_union { int32: i32, int64: i64, uint32: u32, uint64: u64, float32: f32, float64: f64, } AcquireProfilingLockInfoKHR :: struct { sType: StructureType, pNext: rawptr, flags: AcquireProfilingLockFlagsKHR, timeout: u64, } PerformanceQuerySubmitInfoKHR :: struct { sType: StructureType, pNext: rawptr, counterPassIndex: u32, } PhysicalDeviceSurfaceInfo2KHR :: struct { sType: StructureType, pNext: rawptr, surface: SurfaceKHR, } SurfaceCapabilities2KHR :: struct { sType: StructureType, pNext: rawptr, surfaceCapabilities: SurfaceCapabilitiesKHR, } SurfaceFormat2KHR :: struct { sType: StructureType, pNext: rawptr, surfaceFormat: SurfaceFormatKHR, } DisplayProperties2KHR :: struct { sType: StructureType, pNext: rawptr, displayProperties: DisplayPropertiesKHR, } DisplayPlaneProperties2KHR :: struct { sType: StructureType, pNext: rawptr, displayPlaneProperties: DisplayPlanePropertiesKHR, } DisplayModeProperties2KHR :: struct { sType: StructureType, pNext: rawptr, displayModeProperties: DisplayModePropertiesKHR, } DisplayPlaneInfo2KHR :: struct { sType: StructureType, pNext: rawptr, mode: DisplayModeKHR, planeIndex: u32, } DisplayPlaneCapabilities2KHR :: struct { sType: StructureType, pNext: rawptr, capabilities: DisplayPlaneCapabilitiesKHR, } PhysicalDeviceShaderClockFeaturesKHR :: struct { sType: StructureType, pNext: rawptr, shaderSubgroupClock: b32, shaderDeviceClock: b32, } VideoDecodeH265ProfileInfoKHR :: struct { sType: StructureType, pNext: rawptr, stdProfileIdc: VideoH265ProfileIdc, } VideoDecodeH265CapabilitiesKHR :: struct { sType: StructureType, pNext: rawptr, maxLevelIdc: VideoH265LevelIdc, } VideoDecodeH265SessionParametersAddInfoKHR :: struct { sType: StructureType, pNext: rawptr, stdVPSCount: u32, pStdVPSs: [^]VideoH265VideoParameterSet, stdSPSCount: u32, pStdSPSs: [^]VideoH265SequenceParameterSet, stdPPSCount: u32, pStdPPSs: [^]VideoH265PictureParameterSet, } VideoDecodeH265SessionParametersCreateInfoKHR :: struct { sType: StructureType, pNext: rawptr, maxStdVPSCount: u32, maxStdSPSCount: u32, maxStdPPSCount: u32, pParametersAddInfo: ^VideoDecodeH265SessionParametersAddInfoKHR, } VideoDecodeH265PictureInfoKHR :: struct { sType: StructureType, pNext: rawptr, pStdPictureInfo: ^VideoDecodeH265PictureInfo, sliceSegmentCount: u32, pSliceSegmentOffsets: [^]u32, } VideoDecodeH265DpbSlotInfoKHR :: struct { sType: StructureType, pNext: rawptr, pStdReferenceInfo: ^VideoDecodeH265ReferenceInfo, } FragmentShadingRateAttachmentInfoKHR :: struct { sType: StructureType, pNext: rawptr, pFragmentShadingRateAttachment: ^AttachmentReference2, shadingRateAttachmentTexelSize: Extent2D, } PipelineFragmentShadingRateStateCreateInfoKHR :: struct { sType: StructureType, pNext: rawptr, fragmentSize: Extent2D, combinerOps: [2]FragmentShadingRateCombinerOpKHR, } PhysicalDeviceFragmentShadingRateFeaturesKHR :: struct { sType: StructureType, pNext: rawptr, pipelineFragmentShadingRate: b32, primitiveFragmentShadingRate: b32, attachmentFragmentShadingRate: b32, } PhysicalDeviceFragmentShadingRatePropertiesKHR :: struct { sType: StructureType, pNext: rawptr, minFragmentShadingRateAttachmentTexelSize: Extent2D, maxFragmentShadingRateAttachmentTexelSize: Extent2D, maxFragmentShadingRateAttachmentTexelSizeAspectRatio: u32, primitiveFragmentShadingRateWithMultipleViewports: b32, layeredShadingRateAttachments: b32, fragmentShadingRateNonTrivialCombinerOps: b32, maxFragmentSize: Extent2D, maxFragmentSizeAspectRatio: u32, maxFragmentShadingRateCoverageSamples: u32, maxFragmentShadingRateRasterizationSamples: SampleCountFlags, fragmentShadingRateWithShaderDepthStencilWrites: b32, fragmentShadingRateWithSampleMask: b32, fragmentShadingRateWithShaderSampleMask: b32, fragmentShadingRateWithConservativeRasterization: b32, fragmentShadingRateWithFragmentShaderInterlock: b32, fragmentShadingRateWithCustomSampleLocations: b32, fragmentShadingRateStrictMultiplyCombiner: b32, } PhysicalDeviceFragmentShadingRateKHR :: struct { sType: StructureType, pNext: rawptr, sampleCounts: SampleCountFlags, fragmentSize: Extent2D, } RenderingFragmentShadingRateAttachmentInfoKHR :: struct { sType: StructureType, pNext: rawptr, imageView: ImageView, imageLayout: ImageLayout, shadingRateAttachmentTexelSize: Extent2D, } PhysicalDeviceShaderQuadControlFeaturesKHR :: struct { sType: StructureType, pNext: rawptr, shaderQuadControl: b32, } SurfaceProtectedCapabilitiesKHR :: struct { sType: StructureType, pNext: rawptr, supportsProtected: b32, } PhysicalDevicePresentWaitFeaturesKHR :: struct { sType: StructureType, pNext: rawptr, presentWait: b32, } PhysicalDevicePipelineExecutablePropertiesFeaturesKHR :: struct { sType: StructureType, pNext: rawptr, pipelineExecutableInfo: b32, } PipelineInfoKHR :: struct { sType: StructureType, pNext: rawptr, pipeline: Pipeline, } PipelineExecutablePropertiesKHR :: struct { sType: StructureType, pNext: rawptr, stages: ShaderStageFlags, name: [MAX_DESCRIPTION_SIZE]byte, description: [MAX_DESCRIPTION_SIZE]byte, subgroupSize: u32, } PipelineExecutableInfoKHR :: struct { sType: StructureType, pNext: rawptr, pipeline: Pipeline, executableIndex: u32, } PipelineExecutableStatisticValueKHR :: struct #raw_union { b32: b32, i64: i64, u64: u64, f64: f64, } PipelineExecutableStatisticKHR :: struct { sType: StructureType, pNext: rawptr, name: [MAX_DESCRIPTION_SIZE]byte, description: [MAX_DESCRIPTION_SIZE]byte, format: PipelineExecutableStatisticFormatKHR, value: PipelineExecutableStatisticValueKHR, } PipelineExecutableInternalRepresentationKHR :: struct { sType: StructureType, pNext: rawptr, name: [MAX_DESCRIPTION_SIZE]byte, description: [MAX_DESCRIPTION_SIZE]byte, isText: b32, dataSize: int, pData: rawptr, } PipelineLibraryCreateInfoKHR :: struct { sType: StructureType, pNext: rawptr, libraryCount: u32, pLibraries: [^]Pipeline, } PresentIdKHR :: struct { sType: StructureType, pNext: rawptr, swapchainCount: u32, pPresentIds: [^]u64, } PhysicalDevicePresentIdFeaturesKHR :: struct { sType: StructureType, pNext: rawptr, presentId: b32, } VideoEncodeInfoKHR :: struct { sType: StructureType, pNext: rawptr, flags: VideoEncodeFlagsKHR, dstBuffer: Buffer, dstBufferOffset: DeviceSize, dstBufferRange: DeviceSize, srcPictureResource: VideoPictureResourceInfoKHR, pSetupReferenceSlot: ^VideoReferenceSlotInfoKHR, referenceSlotCount: u32, pReferenceSlots: [^]VideoReferenceSlotInfoKHR, precedingExternallyEncodedBytes: u32, } VideoEncodeCapabilitiesKHR :: struct { sType: StructureType, pNext: rawptr, flags: VideoEncodeCapabilityFlagsKHR, rateControlModes: VideoEncodeRateControlModeFlagsKHR, maxRateControlLayers: u32, maxBitrate: u64, maxQualityLevels: u32, encodeInputPictureGranularity: Extent2D, supportedEncodeFeedbackFlags: VideoEncodeFeedbackFlagsKHR, } QueryPoolVideoEncodeFeedbackCreateInfoKHR :: struct { sType: StructureType, pNext: rawptr, encodeFeedbackFlags: VideoEncodeFeedbackFlagsKHR, } VideoEncodeUsageInfoKHR :: struct { sType: StructureType, pNext: rawptr, videoUsageHints: VideoEncodeUsageFlagsKHR, videoContentHints: VideoEncodeContentFlagsKHR, tuningMode: VideoEncodeTuningModeKHR, } VideoEncodeRateControlLayerInfoKHR :: struct { sType: StructureType, pNext: rawptr, averageBitrate: u64, maxBitrate: u64, frameRateNumerator: u32, frameRateDenominator: u32, } VideoEncodeRateControlInfoKHR :: struct { sType: StructureType, pNext: rawptr, flags: VideoEncodeRateControlFlagsKHR, rateControlMode: VideoEncodeRateControlModeFlagsKHR, layerCount: u32, pLayers: [^]VideoEncodeRateControlLayerInfoKHR, virtualBufferSizeInMs: u32, initialVirtualBufferSizeInMs: u32, } PhysicalDeviceVideoEncodeQualityLevelInfoKHR :: struct { sType: StructureType, pNext: rawptr, pVideoProfile: ^VideoProfileInfoKHR, qualityLevel: u32, } VideoEncodeQualityLevelPropertiesKHR :: struct { sType: StructureType, pNext: rawptr, preferredRateControlMode: VideoEncodeRateControlModeFlagsKHR, preferredRateControlLayerCount: u32, } VideoEncodeQualityLevelInfoKHR :: struct { sType: StructureType, pNext: rawptr, qualityLevel: u32, } VideoEncodeSessionParametersGetInfoKHR :: struct { sType: StructureType, pNext: rawptr, videoSessionParameters: VideoSessionParametersKHR, } VideoEncodeSessionParametersFeedbackInfoKHR :: struct { sType: StructureType, pNext: rawptr, hasOverrides: b32, } PhysicalDeviceFragmentShaderBarycentricFeaturesKHR :: struct { sType: StructureType, pNext: rawptr, fragmentShaderBarycentric: b32, } PhysicalDeviceFragmentShaderBarycentricPropertiesKHR :: struct { sType: StructureType, pNext: rawptr, triStripVertexOrderIndependentOfProvokingVertex: b32, } PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR :: struct { sType: StructureType, pNext: rawptr, shaderSubgroupUniformControlFlow: b32, } PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR :: struct { sType: StructureType, pNext: rawptr, workgroupMemoryExplicitLayout: b32, workgroupMemoryExplicitLayoutScalarBlockLayout: b32, workgroupMemoryExplicitLayout8BitAccess: b32, workgroupMemoryExplicitLayout16BitAccess: b32, } PhysicalDeviceRayTracingMaintenance1FeaturesKHR :: struct { sType: StructureType, pNext: rawptr, rayTracingMaintenance1: b32, rayTracingPipelineTraceRaysIndirect2: b32, } TraceRaysIndirectCommand2KHR :: struct { raygenShaderRecordAddress: DeviceAddress, raygenShaderRecordSize: DeviceSize, missShaderBindingTableAddress: DeviceAddress, missShaderBindingTableSize: DeviceSize, missShaderBindingTableStride: DeviceSize, hitShaderBindingTableAddress: DeviceAddress, hitShaderBindingTableSize: DeviceSize, hitShaderBindingTableStride: DeviceSize, callableShaderBindingTableAddress: DeviceAddress, callableShaderBindingTableSize: DeviceSize, callableShaderBindingTableStride: DeviceSize, width: u32, height: u32, depth: u32, } PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR :: struct { sType: StructureType, pNext: rawptr, shaderMaximalReconvergence: b32, } PhysicalDeviceRayTracingPositionFetchFeaturesKHR :: struct { sType: StructureType, pNext: rawptr, rayTracingPositionFetch: b32, } PhysicalDevicePipelineBinaryFeaturesKHR :: struct { sType: StructureType, pNext: rawptr, pipelineBinaries: b32, } PhysicalDevicePipelineBinaryPropertiesKHR :: struct { sType: StructureType, pNext: rawptr, pipelineBinaryInternalCache: b32, pipelineBinaryInternalCacheControl: b32, pipelineBinaryPrefersInternalCache: b32, pipelineBinaryPrecompiledInternalCache: b32, pipelineBinaryCompressedData: b32, } DevicePipelineBinaryInternalCacheControlKHR :: struct { sType: StructureType, pNext: rawptr, disableInternalCache: b32, } PipelineBinaryKeyKHR :: struct { sType: StructureType, pNext: rawptr, keySize: u32, key: [MAX_PIPELINE_BINARY_KEY_SIZE_KHR]u8, } PipelineBinaryDataKHR :: struct { dataSize: int, pData: rawptr, } PipelineBinaryKeysAndDataKHR :: struct { binaryCount: u32, pPipelineBinaryKeys: [^]PipelineBinaryKeyKHR, pPipelineBinaryData: ^PipelineBinaryDataKHR, } PipelineCreateInfoKHR :: struct { sType: StructureType, pNext: rawptr, } PipelineBinaryCreateInfoKHR :: struct { sType: StructureType, pNext: rawptr, pKeysAndDataInfo: ^PipelineBinaryKeysAndDataKHR, pipeline: Pipeline, pPipelineCreateInfo: ^PipelineCreateInfoKHR, } PipelineBinaryInfoKHR :: struct { sType: StructureType, pNext: rawptr, binaryCount: u32, pPipelineBinaries: [^]PipelineBinaryKHR, } ReleaseCapturedPipelineDataInfoKHR :: struct { sType: StructureType, pNext: rawptr, pipeline: Pipeline, } PipelineBinaryDataInfoKHR :: struct { sType: StructureType, pNext: rawptr, pipelineBinary: PipelineBinaryKHR, } PipelineBinaryHandlesInfoKHR :: struct { sType: StructureType, pNext: rawptr, pipelineBinaryCount: u32, pPipelineBinaries: [^]PipelineBinaryKHR, } CooperativeMatrixPropertiesKHR :: struct { sType: StructureType, pNext: rawptr, MSize: u32, NSize: u32, KSize: u32, AType: ComponentTypeKHR, BType: ComponentTypeKHR, CType: ComponentTypeKHR, ResultType: ComponentTypeKHR, saturatingAccumulation: b32, scope: ScopeKHR, } PhysicalDeviceCooperativeMatrixFeaturesKHR :: struct { sType: StructureType, pNext: rawptr, cooperativeMatrix: b32, cooperativeMatrixRobustBufferAccess: b32, } PhysicalDeviceCooperativeMatrixPropertiesKHR :: struct { sType: StructureType, pNext: rawptr, cooperativeMatrixSupportedStages: ShaderStageFlags, } PhysicalDeviceComputeShaderDerivativesFeaturesKHR :: struct { sType: StructureType, pNext: rawptr, computeDerivativeGroupQuads: b32, computeDerivativeGroupLinear: b32, } PhysicalDeviceComputeShaderDerivativesPropertiesKHR :: struct { sType: StructureType, pNext: rawptr, meshAndTaskShaderDerivatives: b32, } VideoDecodeAV1ProfileInfoKHR :: struct { sType: StructureType, pNext: rawptr, stdProfile: VideoAV1Profile, filmGrainSupport: b32, } VideoDecodeAV1CapabilitiesKHR :: struct { sType: StructureType, pNext: rawptr, maxLevel: VideoAV1Level, } VideoDecodeAV1SessionParametersCreateInfoKHR :: struct { sType: StructureType, pNext: rawptr, pStdSequenceHeader: ^VideoAV1SequenceHeader, } VideoDecodeAV1PictureInfoKHR :: struct { sType: StructureType, pNext: rawptr, pStdPictureInfo: ^VideoDecodeAV1PictureInfo, referenceNameSlotIndices: [MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR]i32, frameHeaderOffset: u32, tileCount: u32, pTileOffsets: [^]u32, pTileSizes: [^]u32, } VideoDecodeAV1DpbSlotInfoKHR :: struct { sType: StructureType, pNext: rawptr, pStdReferenceInfo: ^VideoDecodeAV1ReferenceInfo, } PhysicalDeviceVideoEncodeAV1FeaturesKHR :: struct { sType: StructureType, pNext: rawptr, videoEncodeAV1: b32, } VideoEncodeAV1CapabilitiesKHR :: struct { sType: StructureType, pNext: rawptr, flags: VideoEncodeAV1CapabilityFlagsKHR, maxLevel: VideoAV1Level, codedPictureAlignment: Extent2D, maxTiles: Extent2D, minTileSize: Extent2D, maxTileSize: Extent2D, superblockSizes: VideoEncodeAV1SuperblockSizeFlagsKHR, maxSingleReferenceCount: u32, singleReferenceNameMask: u32, maxUnidirectionalCompoundReferenceCount: u32, maxUnidirectionalCompoundGroup1ReferenceCount: u32, unidirectionalCompoundReferenceNameMask: u32, maxBidirectionalCompoundReferenceCount: u32, maxBidirectionalCompoundGroup1ReferenceCount: u32, maxBidirectionalCompoundGroup2ReferenceCount: u32, bidirectionalCompoundReferenceNameMask: u32, maxTemporalLayerCount: u32, maxSpatialLayerCount: u32, maxOperatingPoints: u32, minQIndex: u32, maxQIndex: u32, prefersGopRemainingFrames: b32, requiresGopRemainingFrames: b32, stdSyntaxFlags: VideoEncodeAV1StdFlagsKHR, } VideoEncodeAV1QIndexKHR :: struct { intraQIndex: u32, predictiveQIndex: u32, bipredictiveQIndex: u32, } VideoEncodeAV1QualityLevelPropertiesKHR :: struct { sType: StructureType, pNext: rawptr, preferredRateControlFlags: VideoEncodeAV1RateControlFlagsKHR, preferredGopFrameCount: u32, preferredKeyFramePeriod: u32, preferredConsecutiveBipredictiveFrameCount: u32, preferredTemporalLayerCount: u32, preferredConstantQIndex: VideoEncodeAV1QIndexKHR, preferredMaxSingleReferenceCount: u32, preferredSingleReferenceNameMask: u32, preferredMaxUnidirectionalCompoundReferenceCount: u32, preferredMaxUnidirectionalCompoundGroup1ReferenceCount: u32, preferredUnidirectionalCompoundReferenceNameMask: u32, preferredMaxBidirectionalCompoundReferenceCount: u32, preferredMaxBidirectionalCompoundGroup1ReferenceCount: u32, preferredMaxBidirectionalCompoundGroup2ReferenceCount: u32, preferredBidirectionalCompoundReferenceNameMask: u32, } VideoEncodeAV1SessionCreateInfoKHR :: struct { sType: StructureType, pNext: rawptr, useMaxLevel: b32, maxLevel: VideoAV1Level, } VideoEncodeAV1SessionParametersCreateInfoKHR :: struct { sType: StructureType, pNext: rawptr, pStdSequenceHeader: ^VideoAV1SequenceHeader, pStdDecoderModelInfo: ^VideoEncodeAV1DecoderModelInfo, stdOperatingPointCount: u32, pStdOperatingPoints: [^]VideoEncodeAV1OperatingPointInfo, } VideoEncodeAV1PictureInfoKHR :: struct { sType: StructureType, pNext: rawptr, predictionMode: VideoEncodeAV1PredictionModeKHR, rateControlGroup: VideoEncodeAV1RateControlGroupKHR, constantQIndex: u32, pStdPictureInfo: ^VideoEncodeAV1PictureInfo, referenceNameSlotIndices: [MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR]i32, primaryReferenceCdfOnly: b32, generateObuExtensionHeader: b32, } VideoEncodeAV1DpbSlotInfoKHR :: struct { sType: StructureType, pNext: rawptr, pStdReferenceInfo: ^VideoEncodeAV1ReferenceInfo, } VideoEncodeAV1ProfileInfoKHR :: struct { sType: StructureType, pNext: rawptr, stdProfile: VideoAV1Profile, } VideoEncodeAV1FrameSizeKHR :: struct { intraFrameSize: u32, predictiveFrameSize: u32, bipredictiveFrameSize: u32, } VideoEncodeAV1GopRemainingFrameInfoKHR :: struct { sType: StructureType, pNext: rawptr, useGopRemainingFrames: b32, gopRemainingIntra: u32, gopRemainingPredictive: u32, gopRemainingBipredictive: u32, } VideoEncodeAV1RateControlInfoKHR :: struct { sType: StructureType, pNext: rawptr, flags: VideoEncodeAV1RateControlFlagsKHR, gopFrameCount: u32, keyFramePeriod: u32, consecutiveBipredictiveFrameCount: u32, temporalLayerCount: u32, } VideoEncodeAV1RateControlLayerInfoKHR :: struct { sType: StructureType, pNext: rawptr, useMinQIndex: b32, minQIndex: VideoEncodeAV1QIndexKHR, useMaxQIndex: b32, maxQIndex: VideoEncodeAV1QIndexKHR, useMaxFrameSize: b32, maxFrameSize: VideoEncodeAV1FrameSizeKHR, } PhysicalDeviceVideoMaintenance1FeaturesKHR :: struct { sType: StructureType, pNext: rawptr, videoMaintenance1: b32, } VideoInlineQueryInfoKHR :: struct { sType: StructureType, pNext: rawptr, queryPool: QueryPool, firstQuery: u32, queryCount: u32, } CalibratedTimestampInfoKHR :: struct { sType: StructureType, pNext: rawptr, timeDomain: TimeDomainKHR, } SetDescriptorBufferOffsetsInfoEXT :: struct { sType: StructureType, pNext: rawptr, stageFlags: ShaderStageFlags, layout: PipelineLayout, firstSet: u32, setCount: u32, pBufferIndices: [^]u32, pOffsets: [^]DeviceSize, } BindDescriptorBufferEmbeddedSamplersInfoEXT :: struct { sType: StructureType, pNext: rawptr, stageFlags: ShaderStageFlags, layout: PipelineLayout, set: u32, } VideoEncodeQuantizationMapCapabilitiesKHR :: struct { sType: StructureType, pNext: rawptr, maxQuantizationMapExtent: Extent2D, } VideoFormatQuantizationMapPropertiesKHR :: struct { sType: StructureType, pNext: rawptr, quantizationMapTexelSize: Extent2D, } VideoEncodeQuantizationMapInfoKHR :: struct { sType: StructureType, pNext: rawptr, quantizationMap: ImageView, quantizationMapExtent: Extent2D, } VideoEncodeQuantizationMapSessionParametersCreateInfoKHR :: struct { sType: StructureType, pNext: rawptr, quantizationMapTexelSize: Extent2D, } PhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR :: struct { sType: StructureType, pNext: rawptr, videoEncodeQuantizationMap: b32, } VideoEncodeH264QuantizationMapCapabilitiesKHR :: struct { sType: StructureType, pNext: rawptr, minQpDelta: i32, maxQpDelta: i32, } VideoEncodeH265QuantizationMapCapabilitiesKHR :: struct { sType: StructureType, pNext: rawptr, minQpDelta: i32, maxQpDelta: i32, } VideoFormatH265QuantizationMapPropertiesKHR :: struct { sType: StructureType, pNext: rawptr, compatibleCtbSizes: VideoEncodeH265CtbSizeFlagsKHR, } VideoEncodeAV1QuantizationMapCapabilitiesKHR :: struct { sType: StructureType, pNext: rawptr, minQIndexDelta: i32, maxQIndexDelta: i32, } VideoFormatAV1QuantizationMapPropertiesKHR :: struct { sType: StructureType, pNext: rawptr, compatibleSuperblockSizes: VideoEncodeAV1SuperblockSizeFlagsKHR, } PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR :: struct { sType: StructureType, pNext: rawptr, shaderRelaxedExtendedInstruction: b32, } PhysicalDeviceMaintenance7FeaturesKHR :: struct { sType: StructureType, pNext: rawptr, maintenance7: b32, } PhysicalDeviceMaintenance7PropertiesKHR :: struct { sType: StructureType, pNext: rawptr, robustFragmentShadingRateAttachmentAccess: b32, separateDepthStencilAttachmentAccess: b32, maxDescriptorSetTotalUniformBuffersDynamic: u32, maxDescriptorSetTotalStorageBuffersDynamic: u32, maxDescriptorSetTotalBuffersDynamic: u32, maxDescriptorSetUpdateAfterBindTotalUniformBuffersDynamic: u32, maxDescriptorSetUpdateAfterBindTotalStorageBuffersDynamic: u32, maxDescriptorSetUpdateAfterBindTotalBuffersDynamic: u32, } PhysicalDeviceLayeredApiPropertiesKHR :: struct { sType: StructureType, pNext: rawptr, vendorID: u32, deviceID: u32, layeredAPI: PhysicalDeviceLayeredApiKHR, deviceName: [MAX_PHYSICAL_DEVICE_NAME_SIZE]byte, } PhysicalDeviceLayeredApiPropertiesListKHR :: struct { sType: StructureType, pNext: rawptr, layeredApiCount: u32, pLayeredApis: [^]PhysicalDeviceLayeredApiPropertiesKHR, } PhysicalDeviceLayeredApiVulkanPropertiesKHR :: struct { sType: StructureType, pNext: rawptr, properties: PhysicalDeviceProperties2, } PhysicalDeviceMaintenance8FeaturesKHR :: struct { sType: StructureType, pNext: rawptr, maintenance8: b32, } MemoryBarrierAccessFlags3KHR :: struct { sType: StructureType, pNext: rawptr, srcAccessMask3: AccessFlags3KHR, dstAccessMask3: AccessFlags3KHR, } PhysicalDeviceVideoMaintenance2FeaturesKHR :: struct { sType: StructureType, pNext: rawptr, videoMaintenance2: b32, } VideoDecodeH264InlineSessionParametersInfoKHR :: struct { sType: StructureType, pNext: rawptr, pStdSPS: ^VideoH264SequenceParameterSet, pStdPPS: ^VideoH264PictureParameterSet, } VideoDecodeH265InlineSessionParametersInfoKHR :: struct { sType: StructureType, pNext: rawptr, pStdVPS: ^VideoH265VideoParameterSet, pStdSPS: ^VideoH265SequenceParameterSet, pStdPPS: ^VideoH265PictureParameterSet, } VideoDecodeAV1InlineSessionParametersInfoKHR :: struct { sType: StructureType, pNext: rawptr, pStdSequenceHeader: ^VideoAV1SequenceHeader, } PhysicalDeviceDepthClampZeroOneFeaturesKHR :: struct { sType: StructureType, pNext: rawptr, depthClampZeroOne: b32, } DebugReportCallbackCreateInfoEXT :: struct { sType: StructureType, pNext: rawptr, flags: DebugReportFlagsEXT, pfnCallback: ProcDebugReportCallbackEXT, pUserData: rawptr, } PipelineRasterizationStateRasterizationOrderAMD :: struct { sType: StructureType, pNext: rawptr, rasterizationOrder: RasterizationOrderAMD, } DebugMarkerObjectNameInfoEXT :: struct { sType: StructureType, pNext: rawptr, objectType: DebugReportObjectTypeEXT, object: u64, pObjectName: cstring, } DebugMarkerObjectTagInfoEXT :: struct { sType: StructureType, pNext: rawptr, objectType: DebugReportObjectTypeEXT, object: u64, tagName: u64, tagSize: int, pTag: rawptr, } DebugMarkerMarkerInfoEXT :: struct { sType: StructureType, pNext: rawptr, pMarkerName: cstring, color: [4]f32, } DedicatedAllocationImageCreateInfoNV :: struct { sType: StructureType, pNext: rawptr, dedicatedAllocation: b32, } DedicatedAllocationBufferCreateInfoNV :: struct { sType: StructureType, pNext: rawptr, dedicatedAllocation: b32, } DedicatedAllocationMemoryAllocateInfoNV :: struct { sType: StructureType, pNext: rawptr, image: Image, buffer: Buffer, } PhysicalDeviceTransformFeedbackFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, transformFeedback: b32, geometryStreams: b32, } PhysicalDeviceTransformFeedbackPropertiesEXT :: struct { sType: StructureType, pNext: rawptr, maxTransformFeedbackStreams: u32, maxTransformFeedbackBuffers: u32, maxTransformFeedbackBufferSize: DeviceSize, maxTransformFeedbackStreamDataSize: u32, maxTransformFeedbackBufferDataSize: u32, maxTransformFeedbackBufferDataStride: u32, transformFeedbackQueries: b32, transformFeedbackStreamsLinesTriangles: b32, transformFeedbackRasterizationStreamSelect: b32, transformFeedbackDraw: b32, } PipelineRasterizationStateStreamCreateInfoEXT :: struct { sType: StructureType, pNext: rawptr, flags: PipelineRasterizationStateStreamCreateFlagsEXT, rasterizationStream: u32, } CuModuleCreateInfoNVX :: struct { sType: StructureType, pNext: rawptr, dataSize: int, pData: rawptr, } CuModuleTexturingModeCreateInfoNVX :: struct { sType: StructureType, pNext: rawptr, use64bitTexturing: b32, } CuFunctionCreateInfoNVX :: struct { sType: StructureType, pNext: rawptr, module: CuModuleNVX, pName: cstring, } CuLaunchInfoNVX :: struct { sType: StructureType, pNext: rawptr, function: CuFunctionNVX, gridDimX: u32, gridDimY: u32, gridDimZ: u32, blockDimX: u32, blockDimY: u32, blockDimZ: u32, sharedMemBytes: u32, paramCount: int, pParams: [^]rawptr, extraCount: int, pExtras: [^]rawptr, } ImageViewHandleInfoNVX :: struct { sType: StructureType, pNext: rawptr, imageView: ImageView, descriptorType: DescriptorType, sampler: Sampler, } ImageViewAddressPropertiesNVX :: struct { sType: StructureType, pNext: rawptr, deviceAddress: DeviceAddress, size: DeviceSize, } TextureLODGatherFormatPropertiesAMD :: struct { sType: StructureType, pNext: rawptr, supportsTextureGatherLODBiasAMD: b32, } ShaderResourceUsageAMD :: struct { numUsedVgprs: u32, numUsedSgprs: u32, ldsSizePerLocalWorkGroup: u32, ldsUsageSizeInBytes: int, scratchMemUsageInBytes: int, } ShaderStatisticsInfoAMD :: struct { shaderStageMask: ShaderStageFlags, resourceUsage: ShaderResourceUsageAMD, numPhysicalVgprs: u32, numPhysicalSgprs: u32, numAvailableVgprs: u32, numAvailableSgprs: u32, computeWorkGroupSize: [3]u32, } PhysicalDeviceCornerSampledImageFeaturesNV :: struct { sType: StructureType, pNext: rawptr, cornerSampledImage: b32, } ExternalImageFormatPropertiesNV :: struct { imageFormatProperties: ImageFormatProperties, externalMemoryFeatures: ExternalMemoryFeatureFlagsNV, exportFromImportedHandleTypes: ExternalMemoryHandleTypeFlagsNV, compatibleHandleTypes: ExternalMemoryHandleTypeFlagsNV, } ExternalMemoryImageCreateInfoNV :: struct { sType: StructureType, pNext: rawptr, handleTypes: ExternalMemoryHandleTypeFlagsNV, } ExportMemoryAllocateInfoNV :: struct { sType: StructureType, pNext: rawptr, handleTypes: ExternalMemoryHandleTypeFlagsNV, } ValidationFlagsEXT :: struct { sType: StructureType, pNext: rawptr, disabledValidationCheckCount: u32, pDisabledValidationChecks: [^]ValidationCheckEXT, } ImageViewASTCDecodeModeEXT :: struct { sType: StructureType, pNext: rawptr, decodeMode: Format, } PhysicalDeviceASTCDecodeFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, decodeModeSharedExponent: b32, } ConditionalRenderingBeginInfoEXT :: struct { sType: StructureType, pNext: rawptr, buffer: Buffer, offset: DeviceSize, flags: ConditionalRenderingFlagsEXT, } PhysicalDeviceConditionalRenderingFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, conditionalRendering: b32, inheritedConditionalRendering: b32, } CommandBufferInheritanceConditionalRenderingInfoEXT :: struct { sType: StructureType, pNext: rawptr, conditionalRenderingEnable: b32, } ViewportWScalingNV :: struct { xcoeff: f32, ycoeff: f32, } PipelineViewportWScalingStateCreateInfoNV :: struct { sType: StructureType, pNext: rawptr, viewportWScalingEnable: b32, viewportCount: u32, pViewportWScalings: [^]ViewportWScalingNV, } SurfaceCapabilities2EXT :: struct { sType: StructureType, pNext: rawptr, minImageCount: u32, maxImageCount: u32, currentExtent: Extent2D, minImageExtent: Extent2D, maxImageExtent: Extent2D, maxImageArrayLayers: u32, supportedTransforms: SurfaceTransformFlagsKHR, currentTransform: SurfaceTransformFlagsKHR, supportedCompositeAlpha: CompositeAlphaFlagsKHR, supportedUsageFlags: ImageUsageFlags, supportedSurfaceCounters: SurfaceCounterFlagsEXT, } DisplayPowerInfoEXT :: struct { sType: StructureType, pNext: rawptr, powerState: DisplayPowerStateEXT, } DeviceEventInfoEXT :: struct { sType: StructureType, pNext: rawptr, deviceEvent: DeviceEventTypeEXT, } DisplayEventInfoEXT :: struct { sType: StructureType, pNext: rawptr, displayEvent: DisplayEventTypeEXT, } SwapchainCounterCreateInfoEXT :: struct { sType: StructureType, pNext: rawptr, surfaceCounters: SurfaceCounterFlagsEXT, } RefreshCycleDurationGOOGLE :: struct { refreshDuration: u64, } PastPresentationTimingGOOGLE :: struct { presentID: u32, desiredPresentTime: u64, actualPresentTime: u64, earliestPresentTime: u64, presentMargin: u64, } PresentTimeGOOGLE :: struct { presentID: u32, desiredPresentTime: u64, } PresentTimesInfoGOOGLE :: struct { sType: StructureType, pNext: rawptr, swapchainCount: u32, pTimes: [^]PresentTimeGOOGLE, } PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX :: struct { sType: StructureType, pNext: rawptr, perViewPositionAllComponents: b32, } MultiviewPerViewAttributesInfoNVX :: struct { sType: StructureType, pNext: rawptr, perViewAttributes: b32, perViewAttributesPositionXOnly: b32, } ViewportSwizzleNV :: struct { x: ViewportCoordinateSwizzleNV, y: ViewportCoordinateSwizzleNV, z: ViewportCoordinateSwizzleNV, w: ViewportCoordinateSwizzleNV, } PipelineViewportSwizzleStateCreateInfoNV :: struct { sType: StructureType, pNext: rawptr, flags: PipelineViewportSwizzleStateCreateFlagsNV, viewportCount: u32, pViewportSwizzles: [^]ViewportSwizzleNV, } PhysicalDeviceDiscardRectanglePropertiesEXT :: struct { sType: StructureType, pNext: rawptr, maxDiscardRectangles: u32, } PipelineDiscardRectangleStateCreateInfoEXT :: struct { sType: StructureType, pNext: rawptr, flags: PipelineDiscardRectangleStateCreateFlagsEXT, discardRectangleMode: DiscardRectangleModeEXT, discardRectangleCount: u32, pDiscardRectangles: [^]Rect2D, } PhysicalDeviceConservativeRasterizationPropertiesEXT :: struct { sType: StructureType, pNext: rawptr, primitiveOverestimationSize: f32, maxExtraPrimitiveOverestimationSize: f32, extraPrimitiveOverestimationSizeGranularity: f32, primitiveUnderestimation: b32, conservativePointAndLineRasterization: b32, degenerateTrianglesRasterized: b32, degenerateLinesRasterized: b32, fullyCoveredFragmentShaderInputVariable: b32, conservativeRasterizationPostDepthCoverage: b32, } PipelineRasterizationConservativeStateCreateInfoEXT :: struct { sType: StructureType, pNext: rawptr, flags: PipelineRasterizationConservativeStateCreateFlagsEXT, conservativeRasterizationMode: ConservativeRasterizationModeEXT, extraPrimitiveOverestimationSize: f32, } PhysicalDeviceDepthClipEnableFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, depthClipEnable: b32, } PipelineRasterizationDepthClipStateCreateInfoEXT :: struct { sType: StructureType, pNext: rawptr, flags: PipelineRasterizationDepthClipStateCreateFlagsEXT, depthClipEnable: b32, } XYColorEXT :: struct { x: f32, y: f32, } HdrMetadataEXT :: struct { sType: StructureType, pNext: rawptr, displayPrimaryRed: XYColorEXT, displayPrimaryGreen: XYColorEXT, displayPrimaryBlue: XYColorEXT, whitePoint: XYColorEXT, maxLuminance: f32, minLuminance: f32, maxContentLightLevel: f32, maxFrameAverageLightLevel: f32, } PhysicalDeviceRelaxedLineRasterizationFeaturesIMG :: struct { sType: StructureType, pNext: rawptr, relaxedLineRasterization: b32, } DebugUtilsLabelEXT :: struct { sType: StructureType, pNext: rawptr, pLabelName: cstring, color: [4]f32, } DebugUtilsObjectNameInfoEXT :: struct { sType: StructureType, pNext: rawptr, objectType: ObjectType, objectHandle: u64, pObjectName: cstring, } DebugUtilsMessengerCallbackDataEXT :: struct { sType: StructureType, pNext: rawptr, flags: DebugUtilsMessengerCallbackDataFlagsEXT, pMessageIdName: cstring, messageIdNumber: i32, pMessage: cstring, queueLabelCount: u32, pQueueLabels: [^]DebugUtilsLabelEXT, cmdBufLabelCount: u32, pCmdBufLabels: [^]DebugUtilsLabelEXT, objectCount: u32, pObjects: [^]DebugUtilsObjectNameInfoEXT, } DebugUtilsMessengerCreateInfoEXT :: struct { sType: StructureType, pNext: rawptr, flags: DebugUtilsMessengerCreateFlagsEXT, messageSeverity: DebugUtilsMessageSeverityFlagsEXT, messageType: DebugUtilsMessageTypeFlagsEXT, pfnUserCallback: ProcDebugUtilsMessengerCallbackEXT, pUserData: rawptr, } DebugUtilsObjectTagInfoEXT :: struct { sType: StructureType, pNext: rawptr, objectType: ObjectType, objectHandle: u64, tagName: u64, tagSize: int, pTag: rawptr, } AttachmentSampleCountInfoAMD :: struct { sType: StructureType, pNext: rawptr, colorAttachmentCount: u32, pColorAttachmentSamples: [^]SampleCountFlags, depthStencilAttachmentSamples: SampleCountFlags, } SampleLocationEXT :: struct { x: f32, y: f32, } SampleLocationsInfoEXT :: struct { sType: StructureType, pNext: rawptr, sampleLocationsPerPixel: SampleCountFlags, sampleLocationGridSize: Extent2D, sampleLocationsCount: u32, pSampleLocations: [^]SampleLocationEXT, } AttachmentSampleLocationsEXT :: struct { attachmentIndex: u32, sampleLocationsInfo: SampleLocationsInfoEXT, } SubpassSampleLocationsEXT :: struct { subpassIndex: u32, sampleLocationsInfo: SampleLocationsInfoEXT, } RenderPassSampleLocationsBeginInfoEXT :: struct { sType: StructureType, pNext: rawptr, attachmentInitialSampleLocationsCount: u32, pAttachmentInitialSampleLocations: [^]AttachmentSampleLocationsEXT, postSubpassSampleLocationsCount: u32, pPostSubpassSampleLocations: [^]SubpassSampleLocationsEXT, } PipelineSampleLocationsStateCreateInfoEXT :: struct { sType: StructureType, pNext: rawptr, sampleLocationsEnable: b32, sampleLocationsInfo: SampleLocationsInfoEXT, } PhysicalDeviceSampleLocationsPropertiesEXT :: struct { sType: StructureType, pNext: rawptr, sampleLocationSampleCounts: SampleCountFlags, maxSampleLocationGridSize: Extent2D, sampleLocationCoordinateRange: [2]f32, sampleLocationSubPixelBits: u32, variableSampleLocations: b32, } MultisamplePropertiesEXT :: struct { sType: StructureType, pNext: rawptr, maxSampleLocationGridSize: Extent2D, } PhysicalDeviceBlendOperationAdvancedFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, advancedBlendCoherentOperations: b32, } PhysicalDeviceBlendOperationAdvancedPropertiesEXT :: struct { sType: StructureType, pNext: rawptr, advancedBlendMaxColorAttachments: u32, advancedBlendIndependentBlend: b32, advancedBlendNonPremultipliedSrcColor: b32, advancedBlendNonPremultipliedDstColor: b32, advancedBlendCorrelatedOverlap: b32, advancedBlendAllOperations: b32, } PipelineColorBlendAdvancedStateCreateInfoEXT :: struct { sType: StructureType, pNext: rawptr, srcPremultiplied: b32, dstPremultiplied: b32, blendOverlap: BlendOverlapEXT, } PipelineCoverageToColorStateCreateInfoNV :: struct { sType: StructureType, pNext: rawptr, flags: PipelineCoverageToColorStateCreateFlagsNV, coverageToColorEnable: b32, coverageToColorLocation: u32, } PipelineCoverageModulationStateCreateInfoNV :: struct { sType: StructureType, pNext: rawptr, flags: PipelineCoverageModulationStateCreateFlagsNV, coverageModulationMode: CoverageModulationModeNV, coverageModulationTableEnable: b32, coverageModulationTableCount: u32, pCoverageModulationTable: [^]f32, } PhysicalDeviceShaderSMBuiltinsPropertiesNV :: struct { sType: StructureType, pNext: rawptr, shaderSMCount: u32, shaderWarpsPerSM: u32, } PhysicalDeviceShaderSMBuiltinsFeaturesNV :: struct { sType: StructureType, pNext: rawptr, shaderSMBuiltins: b32, } DrmFormatModifierPropertiesEXT :: struct { drmFormatModifier: u64, drmFormatModifierPlaneCount: u32, drmFormatModifierTilingFeatures: FormatFeatureFlags, } DrmFormatModifierPropertiesListEXT :: struct { sType: StructureType, pNext: rawptr, drmFormatModifierCount: u32, pDrmFormatModifierProperties: [^]DrmFormatModifierPropertiesEXT, } PhysicalDeviceImageDrmFormatModifierInfoEXT :: struct { sType: StructureType, pNext: rawptr, drmFormatModifier: u64, sharingMode: SharingMode, queueFamilyIndexCount: u32, pQueueFamilyIndices: [^]u32, } ImageDrmFormatModifierListCreateInfoEXT :: struct { sType: StructureType, pNext: rawptr, drmFormatModifierCount: u32, pDrmFormatModifiers: [^]u64, } ImageDrmFormatModifierExplicitCreateInfoEXT :: struct { sType: StructureType, pNext: rawptr, drmFormatModifier: u64, drmFormatModifierPlaneCount: u32, pPlaneLayouts: [^]SubresourceLayout, } ImageDrmFormatModifierPropertiesEXT :: struct { sType: StructureType, pNext: rawptr, drmFormatModifier: u64, } DrmFormatModifierProperties2EXT :: struct { drmFormatModifier: u64, drmFormatModifierPlaneCount: u32, drmFormatModifierTilingFeatures: FormatFeatureFlags2, } DrmFormatModifierPropertiesList2EXT :: struct { sType: StructureType, pNext: rawptr, drmFormatModifierCount: u32, pDrmFormatModifierProperties: [^]DrmFormatModifierProperties2EXT, } ValidationCacheCreateInfoEXT :: struct { sType: StructureType, pNext: rawptr, flags: ValidationCacheCreateFlagsEXT, initialDataSize: int, pInitialData: rawptr, } ShaderModuleValidationCacheCreateInfoEXT :: struct { sType: StructureType, pNext: rawptr, validationCache: ValidationCacheEXT, } ShadingRatePaletteNV :: struct { shadingRatePaletteEntryCount: u32, pShadingRatePaletteEntries: [^]ShadingRatePaletteEntryNV, } PipelineViewportShadingRateImageStateCreateInfoNV :: struct { sType: StructureType, pNext: rawptr, shadingRateImageEnable: b32, viewportCount: u32, pShadingRatePalettes: [^]ShadingRatePaletteNV, } PhysicalDeviceShadingRateImageFeaturesNV :: struct { sType: StructureType, pNext: rawptr, shadingRateImage: b32, shadingRateCoarseSampleOrder: b32, } PhysicalDeviceShadingRateImagePropertiesNV :: struct { sType: StructureType, pNext: rawptr, shadingRateTexelSize: Extent2D, shadingRatePaletteSize: u32, shadingRateMaxCoarseSamples: u32, } CoarseSampleLocationNV :: struct { pixelX: u32, pixelY: u32, sample: u32, } CoarseSampleOrderCustomNV :: struct { shadingRate: ShadingRatePaletteEntryNV, sampleCount: u32, sampleLocationCount: u32, pSampleLocations: [^]CoarseSampleLocationNV, } PipelineViewportCoarseSampleOrderStateCreateInfoNV :: struct { sType: StructureType, pNext: rawptr, sampleOrderType: CoarseSampleOrderTypeNV, customSampleOrderCount: u32, pCustomSampleOrders: [^]CoarseSampleOrderCustomNV, } RayTracingShaderGroupCreateInfoNV :: struct { sType: StructureType, pNext: rawptr, type: RayTracingShaderGroupTypeKHR, generalShader: u32, closestHitShader: u32, anyHitShader: u32, intersectionShader: u32, } RayTracingPipelineCreateInfoNV :: struct { sType: StructureType, pNext: rawptr, flags: PipelineCreateFlags, stageCount: u32, pStages: [^]PipelineShaderStageCreateInfo, groupCount: u32, pGroups: [^]RayTracingShaderGroupCreateInfoNV, maxRecursionDepth: u32, layout: PipelineLayout, basePipelineHandle: Pipeline, basePipelineIndex: i32, } GeometryTrianglesNV :: struct { sType: StructureType, pNext: rawptr, vertexData: Buffer, vertexOffset: DeviceSize, vertexCount: u32, vertexStride: DeviceSize, vertexFormat: Format, indexData: Buffer, indexOffset: DeviceSize, indexCount: u32, indexType: IndexType, transformData: Buffer, transformOffset: DeviceSize, } GeometryAABBNV :: struct { sType: StructureType, pNext: rawptr, aabbData: Buffer, numAABBs: u32, stride: u32, offset: DeviceSize, } GeometryDataNV :: struct { triangles: GeometryTrianglesNV, aabbs: GeometryAABBNV, } GeometryNV :: struct { sType: StructureType, pNext: rawptr, geometryType: GeometryTypeKHR, geometry: GeometryDataNV, flags: GeometryFlagsKHR, } AccelerationStructureInfoNV :: struct { sType: StructureType, pNext: rawptr, type: AccelerationStructureTypeNV, flags: BuildAccelerationStructureFlagsNV, instanceCount: u32, geometryCount: u32, pGeometries: [^]GeometryNV, } AccelerationStructureCreateInfoNV :: struct { sType: StructureType, pNext: rawptr, compactedSize: DeviceSize, info: AccelerationStructureInfoNV, } BindAccelerationStructureMemoryInfoNV :: struct { sType: StructureType, pNext: rawptr, accelerationStructure: AccelerationStructureNV, memory: DeviceMemory, memoryOffset: DeviceSize, deviceIndexCount: u32, pDeviceIndices: [^]u32, } WriteDescriptorSetAccelerationStructureNV :: struct { sType: StructureType, pNext: rawptr, accelerationStructureCount: u32, pAccelerationStructures: [^]AccelerationStructureNV, } AccelerationStructureMemoryRequirementsInfoNV :: struct { sType: StructureType, pNext: rawptr, type: AccelerationStructureMemoryRequirementsTypeNV, accelerationStructure: AccelerationStructureNV, } PhysicalDeviceRayTracingPropertiesNV :: struct { sType: StructureType, pNext: rawptr, shaderGroupHandleSize: u32, maxRecursionDepth: u32, maxShaderGroupStride: u32, shaderGroupBaseAlignment: u32, maxGeometryCount: u64, maxInstanceCount: u64, maxTriangleCount: u64, maxDescriptorSetAccelerationStructures: u32, } TransformMatrixKHR :: struct { mat: [3][4]f32, } AabbPositionsKHR :: struct { minX: f32, minY: f32, minZ: f32, maxX: f32, maxY: f32, maxZ: f32, } AccelerationStructureInstanceKHR :: struct { transform: TransformMatrixKHR, using _: bit_field u32 { instanceCustomIndex: u32 | 24, mask: u32 | 8, }, using _: bit_field u32 { instanceShaderBindingTableRecordOffset: u32 | 24, flags: GeometryInstanceFlagKHR | 8, }, accelerationStructureReference: u64, } PhysicalDeviceRepresentativeFragmentTestFeaturesNV :: struct { sType: StructureType, pNext: rawptr, representativeFragmentTest: b32, } PipelineRepresentativeFragmentTestStateCreateInfoNV :: struct { sType: StructureType, pNext: rawptr, representativeFragmentTestEnable: b32, } PhysicalDeviceImageViewImageFormatInfoEXT :: struct { sType: StructureType, pNext: rawptr, imageViewType: ImageViewType, } FilterCubicImageViewImageFormatPropertiesEXT :: struct { sType: StructureType, pNext: rawptr, filterCubic: b32, filterCubicMinmax: b32, } ImportMemoryHostPointerInfoEXT :: struct { sType: StructureType, pNext: rawptr, handleType: ExternalMemoryHandleTypeFlags, pHostPointer: rawptr, } MemoryHostPointerPropertiesEXT :: struct { sType: StructureType, pNext: rawptr, memoryTypeBits: u32, } PhysicalDeviceExternalMemoryHostPropertiesEXT :: struct { sType: StructureType, pNext: rawptr, minImportedHostPointerAlignment: DeviceSize, } PipelineCompilerControlCreateInfoAMD :: struct { sType: StructureType, pNext: rawptr, compilerControlFlags: PipelineCompilerControlFlagsAMD, } PhysicalDeviceShaderCorePropertiesAMD :: struct { sType: StructureType, pNext: rawptr, shaderEngineCount: u32, shaderArraysPerEngineCount: u32, computeUnitsPerShaderArray: u32, simdPerComputeUnit: u32, wavefrontsPerSimd: u32, wavefrontSize: u32, sgprsPerSimd: u32, minSgprAllocation: u32, maxSgprAllocation: u32, sgprAllocationGranularity: u32, vgprsPerSimd: u32, minVgprAllocation: u32, maxVgprAllocation: u32, vgprAllocationGranularity: u32, } DeviceMemoryOverallocationCreateInfoAMD :: struct { sType: StructureType, pNext: rawptr, overallocationBehavior: MemoryOverallocationBehaviorAMD, } PhysicalDeviceVertexAttributeDivisorPropertiesEXT :: struct { sType: StructureType, pNext: rawptr, maxVertexAttribDivisor: u32, } PhysicalDeviceMeshShaderFeaturesNV :: struct { sType: StructureType, pNext: rawptr, taskShader: b32, meshShader: b32, } PhysicalDeviceMeshShaderPropertiesNV :: struct { sType: StructureType, pNext: rawptr, maxDrawMeshTasksCount: u32, maxTaskWorkGroupInvocations: u32, maxTaskWorkGroupSize: [3]u32, maxTaskTotalMemorySize: u32, maxTaskOutputCount: u32, maxMeshWorkGroupInvocations: u32, maxMeshWorkGroupSize: [3]u32, maxMeshTotalMemorySize: u32, maxMeshOutputVertices: u32, maxMeshOutputPrimitives: u32, maxMeshMultiviewViewCount: u32, meshOutputPerVertexGranularity: u32, meshOutputPerPrimitiveGranularity: u32, } DrawMeshTasksIndirectCommandNV :: struct { taskCount: u32, firstTask: u32, } PhysicalDeviceShaderImageFootprintFeaturesNV :: struct { sType: StructureType, pNext: rawptr, imageFootprint: b32, } PipelineViewportExclusiveScissorStateCreateInfoNV :: struct { sType: StructureType, pNext: rawptr, exclusiveScissorCount: u32, pExclusiveScissors: [^]Rect2D, } PhysicalDeviceExclusiveScissorFeaturesNV :: struct { sType: StructureType, pNext: rawptr, exclusiveScissor: b32, } QueueFamilyCheckpointPropertiesNV :: struct { sType: StructureType, pNext: rawptr, checkpointExecutionStageMask: PipelineStageFlags, } CheckpointDataNV :: struct { sType: StructureType, pNext: rawptr, stage: PipelineStageFlags, pCheckpointMarker: rawptr, } QueueFamilyCheckpointProperties2NV :: struct { sType: StructureType, pNext: rawptr, checkpointExecutionStageMask: PipelineStageFlags2, } CheckpointData2NV :: struct { sType: StructureType, pNext: rawptr, stage: PipelineStageFlags2, pCheckpointMarker: rawptr, } PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL :: struct { sType: StructureType, pNext: rawptr, shaderIntegerFunctions2: b32, } PerformanceValueDataINTEL :: struct #raw_union { value32: u32, value64: u64, valueFloat: f32, valueBool: b32, valueString: cstring, } PerformanceValueINTEL :: struct { type: PerformanceValueTypeINTEL, data: PerformanceValueDataINTEL, } InitializePerformanceApiInfoINTEL :: struct { sType: StructureType, pNext: rawptr, pUserData: rawptr, } QueryPoolPerformanceQueryCreateInfoINTEL :: struct { sType: StructureType, pNext: rawptr, performanceCountersSampling: QueryPoolSamplingModeINTEL, } PerformanceMarkerInfoINTEL :: struct { sType: StructureType, pNext: rawptr, marker: u64, } PerformanceStreamMarkerInfoINTEL :: struct { sType: StructureType, pNext: rawptr, marker: u32, } PerformanceOverrideInfoINTEL :: struct { sType: StructureType, pNext: rawptr, type: PerformanceOverrideTypeINTEL, enable: b32, parameter: u64, } PerformanceConfigurationAcquireInfoINTEL :: struct { sType: StructureType, pNext: rawptr, type: PerformanceConfigurationTypeINTEL, } PhysicalDevicePCIBusInfoPropertiesEXT :: struct { sType: StructureType, pNext: rawptr, pciDomain: u32, pciBus: u32, pciDevice: u32, pciFunction: u32, } DisplayNativeHdrSurfaceCapabilitiesAMD :: struct { sType: StructureType, pNext: rawptr, localDimmingSupport: b32, } SwapchainDisplayNativeHdrCreateInfoAMD :: struct { sType: StructureType, pNext: rawptr, localDimmingEnable: b32, } PhysicalDeviceFragmentDensityMapFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, fragmentDensityMap: b32, fragmentDensityMapDynamic: b32, fragmentDensityMapNonSubsampledImages: b32, } PhysicalDeviceFragmentDensityMapPropertiesEXT :: struct { sType: StructureType, pNext: rawptr, minFragmentDensityTexelSize: Extent2D, maxFragmentDensityTexelSize: Extent2D, fragmentDensityInvocations: b32, } RenderPassFragmentDensityMapCreateInfoEXT :: struct { sType: StructureType, pNext: rawptr, fragmentDensityMapAttachment: AttachmentReference, } RenderingFragmentDensityMapAttachmentInfoEXT :: struct { sType: StructureType, pNext: rawptr, imageView: ImageView, imageLayout: ImageLayout, } PhysicalDeviceShaderCoreProperties2AMD :: struct { sType: StructureType, pNext: rawptr, shaderCoreFeatures: ShaderCorePropertiesFlagsAMD, activeComputeUnitCount: u32, } PhysicalDeviceCoherentMemoryFeaturesAMD :: struct { sType: StructureType, pNext: rawptr, deviceCoherentMemory: b32, } PhysicalDeviceShaderImageAtomicInt64FeaturesEXT :: struct { sType: StructureType, pNext: rawptr, shaderImageInt64Atomics: b32, sparseImageInt64Atomics: b32, } PhysicalDeviceMemoryBudgetPropertiesEXT :: struct { sType: StructureType, pNext: rawptr, heapBudget: [MAX_MEMORY_HEAPS]DeviceSize, heapUsage: [MAX_MEMORY_HEAPS]DeviceSize, } PhysicalDeviceMemoryPriorityFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, memoryPriority: b32, } MemoryPriorityAllocateInfoEXT :: struct { sType: StructureType, pNext: rawptr, priority: f32, } PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV :: struct { sType: StructureType, pNext: rawptr, dedicatedAllocationImageAliasing: b32, } PhysicalDeviceBufferDeviceAddressFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, bufferDeviceAddress: b32, bufferDeviceAddressCaptureReplay: b32, bufferDeviceAddressMultiDevice: b32, } BufferDeviceAddressCreateInfoEXT :: struct { sType: StructureType, pNext: rawptr, deviceAddress: DeviceAddress, } ValidationFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, enabledValidationFeatureCount: u32, pEnabledValidationFeatures: [^]ValidationFeatureEnableEXT, disabledValidationFeatureCount: u32, pDisabledValidationFeatures: [^]ValidationFeatureDisableEXT, } CooperativeMatrixPropertiesNV :: struct { sType: StructureType, pNext: rawptr, MSize: u32, NSize: u32, KSize: u32, AType: ComponentTypeNV, BType: ComponentTypeNV, CType: ComponentTypeNV, DType: ComponentTypeNV, scope: ScopeNV, } PhysicalDeviceCooperativeMatrixFeaturesNV :: struct { sType: StructureType, pNext: rawptr, cooperativeMatrix: b32, cooperativeMatrixRobustBufferAccess: b32, } PhysicalDeviceCooperativeMatrixPropertiesNV :: struct { sType: StructureType, pNext: rawptr, cooperativeMatrixSupportedStages: ShaderStageFlags, } PhysicalDeviceCoverageReductionModeFeaturesNV :: struct { sType: StructureType, pNext: rawptr, coverageReductionMode: b32, } PipelineCoverageReductionStateCreateInfoNV :: struct { sType: StructureType, pNext: rawptr, flags: PipelineCoverageReductionStateCreateFlagsNV, coverageReductionMode: CoverageReductionModeNV, } FramebufferMixedSamplesCombinationNV :: struct { sType: StructureType, pNext: rawptr, coverageReductionMode: CoverageReductionModeNV, rasterizationSamples: SampleCountFlags, depthStencilSamples: SampleCountFlags, colorSamples: SampleCountFlags, } PhysicalDeviceFragmentShaderInterlockFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, fragmentShaderSampleInterlock: b32, fragmentShaderPixelInterlock: b32, fragmentShaderShadingRateInterlock: b32, } PhysicalDeviceYcbcrImageArraysFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, ycbcrImageArrays: b32, } PhysicalDeviceProvokingVertexFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, provokingVertexLast: b32, transformFeedbackPreservesProvokingVertex: b32, } PhysicalDeviceProvokingVertexPropertiesEXT :: struct { sType: StructureType, pNext: rawptr, provokingVertexModePerPipeline: b32, transformFeedbackPreservesTriangleFanProvokingVertex: b32, } PipelineRasterizationProvokingVertexStateCreateInfoEXT :: struct { sType: StructureType, pNext: rawptr, provokingVertexMode: ProvokingVertexModeEXT, } HeadlessSurfaceCreateInfoEXT :: struct { sType: StructureType, pNext: rawptr, flags: HeadlessSurfaceCreateFlagsEXT, } PhysicalDeviceShaderAtomicFloatFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, shaderBufferFloat32Atomics: b32, shaderBufferFloat32AtomicAdd: b32, shaderBufferFloat64Atomics: b32, shaderBufferFloat64AtomicAdd: b32, shaderSharedFloat32Atomics: b32, shaderSharedFloat32AtomicAdd: b32, shaderSharedFloat64Atomics: b32, shaderSharedFloat64AtomicAdd: b32, shaderImageFloat32Atomics: b32, shaderImageFloat32AtomicAdd: b32, sparseImageFloat32Atomics: b32, sparseImageFloat32AtomicAdd: b32, } PhysicalDeviceExtendedDynamicStateFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, extendedDynamicState: b32, } PhysicalDeviceMapMemoryPlacedFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, memoryMapPlaced: b32, memoryMapRangePlaced: b32, memoryUnmapReserve: b32, } PhysicalDeviceMapMemoryPlacedPropertiesEXT :: struct { sType: StructureType, pNext: rawptr, minPlacedMemoryMapAlignment: DeviceSize, } MemoryMapPlacedInfoEXT :: struct { sType: StructureType, pNext: rawptr, pPlacedAddress: rawptr, } PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: struct { sType: StructureType, pNext: rawptr, shaderBufferFloat16Atomics: b32, shaderBufferFloat16AtomicAdd: b32, shaderBufferFloat16AtomicMinMax: b32, shaderBufferFloat32AtomicMinMax: b32, shaderBufferFloat64AtomicMinMax: b32, shaderSharedFloat16Atomics: b32, shaderSharedFloat16AtomicAdd: b32, shaderSharedFloat16AtomicMinMax: b32, shaderSharedFloat32AtomicMinMax: b32, shaderSharedFloat64AtomicMinMax: b32, shaderImageFloat32AtomicMinMax: b32, sparseImageFloat32AtomicMinMax: b32, } SurfacePresentModeEXT :: struct { sType: StructureType, pNext: rawptr, presentMode: PresentModeKHR, } SurfacePresentScalingCapabilitiesEXT :: struct { sType: StructureType, pNext: rawptr, supportedPresentScaling: PresentScalingFlagsEXT, supportedPresentGravityX: PresentGravityFlagsEXT, supportedPresentGravityY: PresentGravityFlagsEXT, minScaledImageExtent: Extent2D, maxScaledImageExtent: Extent2D, } SurfacePresentModeCompatibilityEXT :: struct { sType: StructureType, pNext: rawptr, presentModeCount: u32, pPresentModes: [^]PresentModeKHR, } PhysicalDeviceSwapchainMaintenance1FeaturesEXT :: struct { sType: StructureType, pNext: rawptr, swapchainMaintenance1: b32, } SwapchainPresentFenceInfoEXT :: struct { sType: StructureType, pNext: rawptr, swapchainCount: u32, pFences: [^]Fence, } SwapchainPresentModesCreateInfoEXT :: struct { sType: StructureType, pNext: rawptr, presentModeCount: u32, pPresentModes: [^]PresentModeKHR, } SwapchainPresentModeInfoEXT :: struct { sType: StructureType, pNext: rawptr, swapchainCount: u32, pPresentModes: [^]PresentModeKHR, } SwapchainPresentScalingCreateInfoEXT :: struct { sType: StructureType, pNext: rawptr, scalingBehavior: PresentScalingFlagsEXT, presentGravityX: PresentGravityFlagsEXT, presentGravityY: PresentGravityFlagsEXT, } ReleaseSwapchainImagesInfoEXT :: struct { sType: StructureType, pNext: rawptr, swapchain: SwapchainKHR, imageIndexCount: u32, pImageIndices: [^]u32, } PhysicalDeviceDeviceGeneratedCommandsPropertiesNV :: struct { sType: StructureType, pNext: rawptr, maxGraphicsShaderGroupCount: u32, maxIndirectSequenceCount: u32, maxIndirectCommandsTokenCount: u32, maxIndirectCommandsStreamCount: u32, maxIndirectCommandsTokenOffset: u32, maxIndirectCommandsStreamStride: u32, minSequencesCountBufferOffsetAlignment: u32, minSequencesIndexBufferOffsetAlignment: u32, minIndirectCommandsBufferOffsetAlignment: u32, } PhysicalDeviceDeviceGeneratedCommandsFeaturesNV :: struct { sType: StructureType, pNext: rawptr, deviceGeneratedCommands: b32, } GraphicsShaderGroupCreateInfoNV :: struct { sType: StructureType, pNext: rawptr, stageCount: u32, pStages: [^]PipelineShaderStageCreateInfo, pVertexInputState: ^PipelineVertexInputStateCreateInfo, pTessellationState: ^PipelineTessellationStateCreateInfo, } GraphicsPipelineShaderGroupsCreateInfoNV :: struct { sType: StructureType, pNext: rawptr, groupCount: u32, pGroups: [^]GraphicsShaderGroupCreateInfoNV, pipelineCount: u32, pPipelines: [^]Pipeline, } BindShaderGroupIndirectCommandNV :: struct { groupIndex: u32, } BindIndexBufferIndirectCommandNV :: struct { bufferAddress: DeviceAddress, size: u32, indexType: IndexType, } BindVertexBufferIndirectCommandNV :: struct { bufferAddress: DeviceAddress, size: u32, stride: u32, } SetStateFlagsIndirectCommandNV :: struct { data: u32, } IndirectCommandsStreamNV :: struct { buffer: Buffer, offset: DeviceSize, } IndirectCommandsLayoutTokenNV :: struct { sType: StructureType, pNext: rawptr, tokenType: IndirectCommandsTokenTypeNV, stream: u32, offset: u32, vertexBindingUnit: u32, vertexDynamicStride: b32, pushconstantPipelineLayout: PipelineLayout, pushconstantShaderStageFlags: ShaderStageFlags, pushconstantOffset: u32, pushconstantSize: u32, indirectStateFlags: IndirectStateFlagsNV, indexTypeCount: u32, pIndexTypes: [^]IndexType, pIndexTypeValues: [^]u32, } IndirectCommandsLayoutCreateInfoNV :: struct { sType: StructureType, pNext: rawptr, flags: IndirectCommandsLayoutUsageFlagsNV, pipelineBindPoint: PipelineBindPoint, tokenCount: u32, pTokens: [^]IndirectCommandsLayoutTokenNV, streamCount: u32, pStreamStrides: [^]u32, } GeneratedCommandsInfoNV :: struct { sType: StructureType, pNext: rawptr, pipelineBindPoint: PipelineBindPoint, pipeline: Pipeline, indirectCommandsLayout: IndirectCommandsLayoutNV, streamCount: u32, pStreams: [^]IndirectCommandsStreamNV, sequencesCount: u32, preprocessBuffer: Buffer, preprocessOffset: DeviceSize, preprocessSize: DeviceSize, sequencesCountBuffer: Buffer, sequencesCountOffset: DeviceSize, sequencesIndexBuffer: Buffer, sequencesIndexOffset: DeviceSize, } GeneratedCommandsMemoryRequirementsInfoNV :: struct { sType: StructureType, pNext: rawptr, pipelineBindPoint: PipelineBindPoint, pipeline: Pipeline, indirectCommandsLayout: IndirectCommandsLayoutNV, maxSequencesCount: u32, } PhysicalDeviceInheritedViewportScissorFeaturesNV :: struct { sType: StructureType, pNext: rawptr, inheritedViewportScissor2D: b32, } CommandBufferInheritanceViewportScissorInfoNV :: struct { sType: StructureType, pNext: rawptr, viewportScissor2D: b32, viewportDepthCount: u32, pViewportDepths: [^]Viewport, } PhysicalDeviceTexelBufferAlignmentFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, texelBufferAlignment: b32, } RenderPassTransformBeginInfoQCOM :: struct { sType: StructureType, pNext: rawptr, transform: SurfaceTransformFlagsKHR, } CommandBufferInheritanceRenderPassTransformInfoQCOM :: struct { sType: StructureType, pNext: rawptr, transform: SurfaceTransformFlagsKHR, renderArea: Rect2D, } PhysicalDeviceDepthBiasControlFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, depthBiasControl: b32, leastRepresentableValueForceUnormRepresentation: b32, floatRepresentation: b32, depthBiasExact: b32, } DepthBiasInfoEXT :: struct { sType: StructureType, pNext: rawptr, depthBiasConstantFactor: f32, depthBiasClamp: f32, depthBiasSlopeFactor: f32, } DepthBiasRepresentationInfoEXT :: struct { sType: StructureType, pNext: rawptr, depthBiasRepresentation: DepthBiasRepresentationEXT, depthBiasExact: b32, } PhysicalDeviceDeviceMemoryReportFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, deviceMemoryReport: b32, } DeviceMemoryReportCallbackDataEXT :: struct { sType: StructureType, pNext: rawptr, flags: DeviceMemoryReportFlagsEXT, type: DeviceMemoryReportEventTypeEXT, memoryObjectId: u64, size: DeviceSize, objectType: ObjectType, objectHandle: u64, heapIndex: u32, } DeviceDeviceMemoryReportCreateInfoEXT :: struct { sType: StructureType, pNext: rawptr, flags: DeviceMemoryReportFlagsEXT, pfnUserCallback: ProcDeviceMemoryReportCallbackEXT, pUserData: rawptr, } PhysicalDeviceRobustness2FeaturesEXT :: struct { sType: StructureType, pNext: rawptr, robustBufferAccess2: b32, robustImageAccess2: b32, nullDescriptor: b32, } PhysicalDeviceRobustness2PropertiesEXT :: struct { sType: StructureType, pNext: rawptr, robustStorageBufferAccessSizeAlignment: DeviceSize, robustUniformBufferAccessSizeAlignment: DeviceSize, } SamplerCustomBorderColorCreateInfoEXT :: struct { sType: StructureType, pNext: rawptr, customBorderColor: ClearColorValue, format: Format, } PhysicalDeviceCustomBorderColorPropertiesEXT :: struct { sType: StructureType, pNext: rawptr, maxCustomBorderColorSamplers: u32, } PhysicalDeviceCustomBorderColorFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, customBorderColors: b32, customBorderColorWithoutFormat: b32, } PhysicalDevicePresentBarrierFeaturesNV :: struct { sType: StructureType, pNext: rawptr, presentBarrier: b32, } SurfaceCapabilitiesPresentBarrierNV :: struct { sType: StructureType, pNext: rawptr, presentBarrierSupported: b32, } SwapchainPresentBarrierCreateInfoNV :: struct { sType: StructureType, pNext: rawptr, presentBarrierEnable: b32, } PhysicalDeviceDiagnosticsConfigFeaturesNV :: struct { sType: StructureType, pNext: rawptr, diagnosticsConfig: b32, } DeviceDiagnosticsConfigCreateInfoNV :: struct { sType: StructureType, pNext: rawptr, flags: DeviceDiagnosticsConfigFlagsNV, } CudaModuleCreateInfoNV :: struct { sType: StructureType, pNext: rawptr, dataSize: int, pData: rawptr, } CudaFunctionCreateInfoNV :: struct { sType: StructureType, pNext: rawptr, module: CudaModuleNV, pName: cstring, } CudaLaunchInfoNV :: struct { sType: StructureType, pNext: rawptr, function: CudaFunctionNV, gridDimX: u32, gridDimY: u32, gridDimZ: u32, blockDimX: u32, blockDimY: u32, blockDimZ: u32, sharedMemBytes: u32, paramCount: int, pParams: [^]rawptr, extraCount: int, pExtras: [^]rawptr, } PhysicalDeviceCudaKernelLaunchFeaturesNV :: struct { sType: StructureType, pNext: rawptr, cudaKernelLaunchFeatures: b32, } PhysicalDeviceCudaKernelLaunchPropertiesNV :: struct { sType: StructureType, pNext: rawptr, computeCapabilityMinor: u32, computeCapabilityMajor: u32, } QueryLowLatencySupportNV :: struct { sType: StructureType, pNext: rawptr, pQueriedLowLatencyData: rawptr, } PhysicalDeviceDescriptorBufferPropertiesEXT :: struct { sType: StructureType, pNext: rawptr, combinedImageSamplerDescriptorSingleArray: b32, bufferlessPushDescriptors: b32, allowSamplerImageViewPostSubmitCreation: b32, descriptorBufferOffsetAlignment: DeviceSize, maxDescriptorBufferBindings: u32, maxResourceDescriptorBufferBindings: u32, maxSamplerDescriptorBufferBindings: u32, maxEmbeddedImmutableSamplerBindings: u32, maxEmbeddedImmutableSamplers: u32, bufferCaptureReplayDescriptorDataSize: int, imageCaptureReplayDescriptorDataSize: int, imageViewCaptureReplayDescriptorDataSize: int, samplerCaptureReplayDescriptorDataSize: int, accelerationStructureCaptureReplayDescriptorDataSize: int, samplerDescriptorSize: int, combinedImageSamplerDescriptorSize: int, sampledImageDescriptorSize: int, storageImageDescriptorSize: int, uniformTexelBufferDescriptorSize: int, robustUniformTexelBufferDescriptorSize: int, storageTexelBufferDescriptorSize: int, robustStorageTexelBufferDescriptorSize: int, uniformBufferDescriptorSize: int, robustUniformBufferDescriptorSize: int, storageBufferDescriptorSize: int, robustStorageBufferDescriptorSize: int, inputAttachmentDescriptorSize: int, accelerationStructureDescriptorSize: int, maxSamplerDescriptorBufferRange: DeviceSize, maxResourceDescriptorBufferRange: DeviceSize, samplerDescriptorBufferAddressSpaceSize: DeviceSize, resourceDescriptorBufferAddressSpaceSize: DeviceSize, descriptorBufferAddressSpaceSize: DeviceSize, } PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT :: struct { sType: StructureType, pNext: rawptr, combinedImageSamplerDensityMapDescriptorSize: int, } PhysicalDeviceDescriptorBufferFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, descriptorBuffer: b32, descriptorBufferCaptureReplay: b32, descriptorBufferImageLayoutIgnored: b32, descriptorBufferPushDescriptors: b32, } DescriptorAddressInfoEXT :: struct { sType: StructureType, pNext: rawptr, address: DeviceAddress, range: DeviceSize, format: Format, } DescriptorBufferBindingInfoEXT :: struct { sType: StructureType, pNext: rawptr, address: DeviceAddress, usage: BufferUsageFlags, } DescriptorBufferBindingPushDescriptorBufferHandleEXT :: struct { sType: StructureType, pNext: rawptr, buffer: Buffer, } DescriptorDataEXT :: struct #raw_union { pSampler: ^Sampler, pCombinedImageSampler: ^DescriptorImageInfo, pInputAttachmentImage: ^DescriptorImageInfo, pSampledImage: ^DescriptorImageInfo, pStorageImage: ^DescriptorImageInfo, pUniformTexelBuffer: ^DescriptorAddressInfoEXT, pStorageTexelBuffer: ^DescriptorAddressInfoEXT, pUniformBuffer: ^DescriptorAddressInfoEXT, pStorageBuffer: ^DescriptorAddressInfoEXT, accelerationStructure: DeviceAddress, } DescriptorGetInfoEXT :: struct { sType: StructureType, pNext: rawptr, type: DescriptorType, data: DescriptorDataEXT, } BufferCaptureDescriptorDataInfoEXT :: struct { sType: StructureType, pNext: rawptr, buffer: Buffer, } ImageCaptureDescriptorDataInfoEXT :: struct { sType: StructureType, pNext: rawptr, image: Image, } ImageViewCaptureDescriptorDataInfoEXT :: struct { sType: StructureType, pNext: rawptr, imageView: ImageView, } SamplerCaptureDescriptorDataInfoEXT :: struct { sType: StructureType, pNext: rawptr, sampler: Sampler, } OpaqueCaptureDescriptorDataCreateInfoEXT :: struct { sType: StructureType, pNext: rawptr, opaqueCaptureDescriptorData: rawptr, } AccelerationStructureCaptureDescriptorDataInfoEXT :: struct { sType: StructureType, pNext: rawptr, accelerationStructure: AccelerationStructureKHR, accelerationStructureNV: AccelerationStructureNV, } PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, graphicsPipelineLibrary: b32, } PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT :: struct { sType: StructureType, pNext: rawptr, graphicsPipelineLibraryFastLinking: b32, graphicsPipelineLibraryIndependentInterpolationDecoration: b32, } GraphicsPipelineLibraryCreateInfoEXT :: struct { sType: StructureType, pNext: rawptr, flags: GraphicsPipelineLibraryFlagsEXT, } PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD :: struct { sType: StructureType, pNext: rawptr, shaderEarlyAndLateFragmentTests: b32, } PhysicalDeviceFragmentShadingRateEnumsFeaturesNV :: struct { sType: StructureType, pNext: rawptr, fragmentShadingRateEnums: b32, supersampleFragmentShadingRates: b32, noInvocationFragmentShadingRates: b32, } PhysicalDeviceFragmentShadingRateEnumsPropertiesNV :: struct { sType: StructureType, pNext: rawptr, maxFragmentShadingRateInvocationCount: SampleCountFlags, } PipelineFragmentShadingRateEnumStateCreateInfoNV :: struct { sType: StructureType, pNext: rawptr, shadingRateType: FragmentShadingRateTypeNV, shadingRate: FragmentShadingRateNV, combinerOps: [2]FragmentShadingRateCombinerOpKHR, } DeviceOrHostAddressConstKHR :: struct #raw_union { deviceAddress: DeviceAddress, hostAddress: rawptr, } AccelerationStructureGeometryMotionTrianglesDataNV :: struct { sType: StructureType, pNext: rawptr, vertexData: DeviceOrHostAddressConstKHR, } AccelerationStructureMotionInfoNV :: struct { sType: StructureType, pNext: rawptr, maxInstances: u32, flags: AccelerationStructureMotionInfoFlagsNV, } AccelerationStructureMatrixMotionInstanceNV :: struct { transformT0: TransformMatrixKHR, transformT1: TransformMatrixKHR, using _: bit_field u32 { instanceCustomIndex: u32 | 24, mask: u32 | 8, }, using _: bit_field u32 { instanceShaderBindingTableRecordOffset: u32 | 24, flags: GeometryInstanceFlagKHR | 8, }, accelerationStructureReference: u64, } SRTDataNV :: struct { sx: f32, a: f32, b: f32, pvx: f32, sy: f32, c: f32, pvy: f32, sz: f32, pvz: f32, qx: f32, qy: f32, qz: f32, qw: f32, tx: f32, ty: f32, tz: f32, } AccelerationStructureSRTMotionInstanceNV :: struct { transformT0: SRTDataNV, transformT1: SRTDataNV, using _: bit_field u32 { instanceCustomIndex: u32 | 24, mask: u32 | 8, }, using _: bit_field u32 { instanceShaderBindingTableRecordOffset: u32 | 24, flags: GeometryInstanceFlagKHR | 8, }, accelerationStructureReference: u64, } AccelerationStructureMotionInstanceDataNV :: struct #raw_union { staticInstance: AccelerationStructureInstanceKHR, matrixMotionInstance: AccelerationStructureMatrixMotionInstanceNV, srtMotionInstance: AccelerationStructureSRTMotionInstanceNV, } AccelerationStructureMotionInstanceNV :: struct { type: AccelerationStructureMotionInstanceTypeNV, flags: AccelerationStructureMotionInstanceFlagsNV, data: AccelerationStructureMotionInstanceDataNV, } PhysicalDeviceRayTracingMotionBlurFeaturesNV :: struct { sType: StructureType, pNext: rawptr, rayTracingMotionBlur: b32, rayTracingMotionBlurPipelineTraceRaysIndirect: b32, } PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, ycbcr2plane444Formats: b32, } PhysicalDeviceFragmentDensityMap2FeaturesEXT :: struct { sType: StructureType, pNext: rawptr, fragmentDensityMapDeferred: b32, } PhysicalDeviceFragmentDensityMap2PropertiesEXT :: struct { sType: StructureType, pNext: rawptr, subsampledLoads: b32, subsampledCoarseReconstructionEarlyAccess: b32, maxSubsampledArrayLayers: u32, maxDescriptorSetSubsampledSamplers: u32, } CopyCommandTransformInfoQCOM :: struct { sType: StructureType, pNext: rawptr, transform: SurfaceTransformFlagsKHR, } PhysicalDeviceImageCompressionControlFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, imageCompressionControl: b32, } ImageCompressionControlEXT :: struct { sType: StructureType, pNext: rawptr, flags: ImageCompressionFlagsEXT, compressionControlPlaneCount: u32, pFixedRateFlags: [^]ImageCompressionFixedRateFlagsEXT, } ImageCompressionPropertiesEXT :: struct { sType: StructureType, pNext: rawptr, imageCompressionFlags: ImageCompressionFlagsEXT, imageCompressionFixedRateFlags: ImageCompressionFixedRateFlagsEXT, } PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, attachmentFeedbackLoopLayout: b32, } PhysicalDevice4444FormatsFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, formatA4R4G4B4: b32, formatA4B4G4R4: b32, } PhysicalDeviceFaultFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, deviceFault: b32, deviceFaultVendorBinary: b32, } DeviceFaultCountsEXT :: struct { sType: StructureType, pNext: rawptr, addressInfoCount: u32, vendorInfoCount: u32, vendorBinarySize: DeviceSize, } DeviceFaultAddressInfoEXT :: struct { addressType: DeviceFaultAddressTypeEXT, reportedAddress: DeviceAddress, addressPrecision: DeviceSize, } DeviceFaultVendorInfoEXT :: struct { description: [MAX_DESCRIPTION_SIZE]byte, vendorFaultCode: u64, vendorFaultData: u64, } DeviceFaultInfoEXT :: struct { sType: StructureType, pNext: rawptr, description: [MAX_DESCRIPTION_SIZE]byte, pAddressInfos: [^]DeviceFaultAddressInfoEXT, pVendorInfos: [^]DeviceFaultVendorInfoEXT, pVendorBinaryData: rawptr, } DeviceFaultVendorBinaryHeaderVersionOneEXT :: struct { headerSize: u32, headerVersion: DeviceFaultVendorBinaryHeaderVersionEXT, vendorID: u32, deviceID: u32, driverVersion: u32, pipelineCacheUUID: [UUID_SIZE]u8, applicationNameOffset: u32, applicationVersion: u32, engineNameOffset: u32, engineVersion: u32, apiVersion: u32, } PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, rasterizationOrderColorAttachmentAccess: b32, rasterizationOrderDepthAttachmentAccess: b32, rasterizationOrderStencilAttachmentAccess: b32, } PhysicalDeviceRGBA10X6FormatsFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, formatRgba10x6WithoutYCbCrSampler: b32, } PhysicalDeviceMutableDescriptorTypeFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, mutableDescriptorType: b32, } MutableDescriptorTypeListEXT :: struct { descriptorTypeCount: u32, pDescriptorTypes: [^]DescriptorType, } MutableDescriptorTypeCreateInfoEXT :: struct { sType: StructureType, pNext: rawptr, mutableDescriptorTypeListCount: u32, pMutableDescriptorTypeLists: [^]MutableDescriptorTypeListEXT, } PhysicalDeviceVertexInputDynamicStateFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, vertexInputDynamicState: b32, } VertexInputBindingDescription2EXT :: struct { sType: StructureType, pNext: rawptr, binding: u32, stride: u32, inputRate: VertexInputRate, divisor: u32, } VertexInputAttributeDescription2EXT :: struct { sType: StructureType, pNext: rawptr, location: u32, binding: u32, format: Format, offset: u32, } PhysicalDeviceDrmPropertiesEXT :: struct { sType: StructureType, pNext: rawptr, hasPrimary: b32, hasRender: b32, primaryMajor: i64, primaryMinor: i64, renderMajor: i64, renderMinor: i64, } PhysicalDeviceAddressBindingReportFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, reportAddressBinding: b32, } DeviceAddressBindingCallbackDataEXT :: struct { sType: StructureType, pNext: rawptr, flags: DeviceAddressBindingFlagsEXT, baseAddress: DeviceAddress, size: DeviceSize, bindingType: DeviceAddressBindingTypeEXT, } PhysicalDeviceDepthClipControlFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, depthClipControl: b32, } PipelineViewportDepthClipControlCreateInfoEXT :: struct { sType: StructureType, pNext: rawptr, negativeOneToOne: b32, } PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, primitiveTopologyListRestart: b32, primitiveTopologyPatchListRestart: b32, } PhysicalDevicePresentModeFifoLatestReadyFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, presentModeFifoLatestReady: b32, } SubpassShadingPipelineCreateInfoHUAWEI :: struct { sType: StructureType, pNext: rawptr, renderPass: RenderPass, subpass: u32, } PhysicalDeviceSubpassShadingFeaturesHUAWEI :: struct { sType: StructureType, pNext: rawptr, subpassShading: b32, } PhysicalDeviceSubpassShadingPropertiesHUAWEI :: struct { sType: StructureType, pNext: rawptr, maxSubpassShadingWorkgroupSizeAspectRatio: u32, } PhysicalDeviceInvocationMaskFeaturesHUAWEI :: struct { sType: StructureType, pNext: rawptr, invocationMask: b32, } MemoryGetRemoteAddressInfoNV :: struct { sType: StructureType, pNext: rawptr, memory: DeviceMemory, handleType: ExternalMemoryHandleTypeFlags, } PhysicalDeviceExternalMemoryRDMAFeaturesNV :: struct { sType: StructureType, pNext: rawptr, externalMemoryRDMA: b32, } PipelinePropertiesIdentifierEXT :: struct { sType: StructureType, pNext: rawptr, pipelineIdentifier: [UUID_SIZE]u8, } PhysicalDevicePipelinePropertiesFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, pipelinePropertiesIdentifier: b32, } PhysicalDeviceFrameBoundaryFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, frameBoundary: b32, } FrameBoundaryEXT :: struct { sType: StructureType, pNext: rawptr, flags: FrameBoundaryFlagsEXT, frameID: u64, imageCount: u32, pImages: [^]Image, bufferCount: u32, pBuffers: [^]Buffer, tagName: u64, tagSize: int, pTag: rawptr, } PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, multisampledRenderToSingleSampled: b32, } SubpassResolvePerformanceQueryEXT :: struct { sType: StructureType, pNext: rawptr, optimal: b32, } MultisampledRenderToSingleSampledInfoEXT :: struct { sType: StructureType, pNext: rawptr, multisampledRenderToSingleSampledEnable: b32, rasterizationSamples: SampleCountFlags, } PhysicalDeviceExtendedDynamicState2FeaturesEXT :: struct { sType: StructureType, pNext: rawptr, extendedDynamicState2: b32, extendedDynamicState2LogicOp: b32, extendedDynamicState2PatchControlPoints: b32, } PhysicalDeviceColorWriteEnableFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, colorWriteEnable: b32, } PipelineColorWriteCreateInfoEXT :: struct { sType: StructureType, pNext: rawptr, attachmentCount: u32, pColorWriteEnables: [^]b32, } PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, primitivesGeneratedQuery: b32, primitivesGeneratedQueryWithRasterizerDiscard: b32, primitivesGeneratedQueryWithNonZeroStreams: b32, } PhysicalDeviceImageViewMinLodFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, minLod: b32, } ImageViewMinLodCreateInfoEXT :: struct { sType: StructureType, pNext: rawptr, minLod: f32, } PhysicalDeviceMultiDrawFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, multiDraw: b32, } PhysicalDeviceMultiDrawPropertiesEXT :: struct { sType: StructureType, pNext: rawptr, maxMultiDrawCount: u32, } MultiDrawInfoEXT :: struct { firstVertex: u32, vertexCount: u32, } MultiDrawIndexedInfoEXT :: struct { firstIndex: u32, indexCount: u32, vertexOffset: i32, } PhysicalDeviceImage2DViewOf3DFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, image2DViewOf3D: b32, sampler2DViewOf3D: b32, } PhysicalDeviceShaderTileImageFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, shaderTileImageColorReadAccess: b32, shaderTileImageDepthReadAccess: b32, shaderTileImageStencilReadAccess: b32, } PhysicalDeviceShaderTileImagePropertiesEXT :: struct { sType: StructureType, pNext: rawptr, shaderTileImageCoherentReadAccelerated: b32, shaderTileImageReadSampleFromPixelRateInvocation: b32, shaderTileImageReadFromHelperInvocation: b32, } MicromapUsageEXT :: struct { count: u32, subdivisionLevel: u32, format: u32, } DeviceOrHostAddressKHR :: struct #raw_union { deviceAddress: DeviceAddress, hostAddress: rawptr, } MicromapBuildInfoEXT :: struct { sType: StructureType, pNext: rawptr, type: MicromapTypeEXT, flags: BuildMicromapFlagsEXT, mode: BuildMicromapModeEXT, dstMicromap: MicromapEXT, usageCountsCount: u32, pUsageCounts: [^]MicromapUsageEXT, ppUsageCounts: ^[^]MicromapUsageEXT, data: DeviceOrHostAddressConstKHR, scratchData: DeviceOrHostAddressKHR, triangleArray: DeviceOrHostAddressConstKHR, triangleArrayStride: DeviceSize, } MicromapCreateInfoEXT :: struct { sType: StructureType, pNext: rawptr, createFlags: MicromapCreateFlagsEXT, buffer: Buffer, offset: DeviceSize, size: DeviceSize, type: MicromapTypeEXT, deviceAddress: DeviceAddress, } PhysicalDeviceOpacityMicromapFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, micromap: b32, micromapCaptureReplay: b32, micromapHostCommands: b32, } PhysicalDeviceOpacityMicromapPropertiesEXT :: struct { sType: StructureType, pNext: rawptr, maxOpacity2StateSubdivisionLevel: u32, maxOpacity4StateSubdivisionLevel: u32, } MicromapVersionInfoEXT :: struct { sType: StructureType, pNext: rawptr, pVersionData: ^u8, } CopyMicromapToMemoryInfoEXT :: struct { sType: StructureType, pNext: rawptr, src: MicromapEXT, dst: DeviceOrHostAddressKHR, mode: CopyMicromapModeEXT, } CopyMemoryToMicromapInfoEXT :: struct { sType: StructureType, pNext: rawptr, src: DeviceOrHostAddressConstKHR, dst: MicromapEXT, mode: CopyMicromapModeEXT, } CopyMicromapInfoEXT :: struct { sType: StructureType, pNext: rawptr, src: MicromapEXT, dst: MicromapEXT, mode: CopyMicromapModeEXT, } MicromapBuildSizesInfoEXT :: struct { sType: StructureType, pNext: rawptr, micromapSize: DeviceSize, buildScratchSize: DeviceSize, discardable: b32, } AccelerationStructureTrianglesOpacityMicromapEXT :: struct { sType: StructureType, pNext: rawptr, indexType: IndexType, indexBuffer: DeviceOrHostAddressConstKHR, indexStride: DeviceSize, baseTriangle: u32, usageCountsCount: u32, pUsageCounts: [^]MicromapUsageEXT, ppUsageCounts: ^[^]MicromapUsageEXT, micromap: MicromapEXT, } MicromapTriangleEXT :: struct { dataOffset: u32, subdivisionLevel: u16, format: u16, } PhysicalDeviceClusterCullingShaderFeaturesHUAWEI :: struct { sType: StructureType, pNext: rawptr, clustercullingShader: b32, multiviewClusterCullingShader: b32, } PhysicalDeviceClusterCullingShaderPropertiesHUAWEI :: struct { sType: StructureType, pNext: rawptr, maxWorkGroupCount: [3]u32, maxWorkGroupSize: [3]u32, maxOutputClusterCount: u32, indirectBufferOffsetAlignment: DeviceSize, } PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI :: struct { sType: StructureType, pNext: rawptr, clusterShadingRate: b32, } PhysicalDeviceBorderColorSwizzleFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, borderColorSwizzle: b32, borderColorSwizzleFromImage: b32, } SamplerBorderColorComponentMappingCreateInfoEXT :: struct { sType: StructureType, pNext: rawptr, components: ComponentMapping, srgb: b32, } PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, pageableDeviceLocalMemory: b32, } PhysicalDeviceShaderCorePropertiesARM :: struct { sType: StructureType, pNext: rawptr, pixelRate: u32, texelRate: u32, fmaRate: u32, } DeviceQueueShaderCoreControlCreateInfoARM :: struct { sType: StructureType, pNext: rawptr, shaderCoreCount: u32, } PhysicalDeviceSchedulingControlsFeaturesARM :: struct { sType: StructureType, pNext: rawptr, schedulingControls: b32, } PhysicalDeviceSchedulingControlsPropertiesARM :: struct { sType: StructureType, pNext: rawptr, schedulingControlsFlags: PhysicalDeviceSchedulingControlsFlagsARM, } PhysicalDeviceImageSlicedViewOf3DFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, imageSlicedViewOf3D: b32, } ImageViewSlicedCreateInfoEXT :: struct { sType: StructureType, pNext: rawptr, sliceOffset: u32, sliceCount: u32, } PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE :: struct { sType: StructureType, pNext: rawptr, descriptorSetHostMapping: b32, } DescriptorSetBindingReferenceVALVE :: struct { sType: StructureType, pNext: rawptr, descriptorSetLayout: DescriptorSetLayout, binding: u32, } DescriptorSetLayoutHostMappingInfoVALVE :: struct { sType: StructureType, pNext: rawptr, descriptorOffset: int, descriptorSize: u32, } PhysicalDeviceNonSeamlessCubeMapFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, nonSeamlessCubeMap: b32, } PhysicalDeviceRenderPassStripedFeaturesARM :: struct { sType: StructureType, pNext: rawptr, renderPassStriped: b32, } PhysicalDeviceRenderPassStripedPropertiesARM :: struct { sType: StructureType, pNext: rawptr, renderPassStripeGranularity: Extent2D, maxRenderPassStripes: u32, } RenderPassStripeInfoARM :: struct { sType: StructureType, pNext: rawptr, stripeArea: Rect2D, } RenderPassStripeBeginInfoARM :: struct { sType: StructureType, pNext: rawptr, stripeInfoCount: u32, pStripeInfos: [^]RenderPassStripeInfoARM, } RenderPassStripeSubmitInfoARM :: struct { sType: StructureType, pNext: rawptr, stripeSemaphoreInfoCount: u32, pStripeSemaphoreInfos: [^]SemaphoreSubmitInfo, } PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM :: struct { sType: StructureType, pNext: rawptr, fragmentDensityMapOffset: b32, } PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM :: struct { sType: StructureType, pNext: rawptr, fragmentDensityOffsetGranularity: Extent2D, } SubpassFragmentDensityMapOffsetEndInfoQCOM :: struct { sType: StructureType, pNext: rawptr, fragmentDensityOffsetCount: u32, pFragmentDensityOffsets: [^]Offset2D, } CopyMemoryIndirectCommandNV :: struct { srcAddress: DeviceAddress, dstAddress: DeviceAddress, size: DeviceSize, } CopyMemoryToImageIndirectCommandNV :: struct { srcAddress: DeviceAddress, bufferRowLength: u32, bufferImageHeight: u32, imageSubresource: ImageSubresourceLayers, imageOffset: Offset3D, imageExtent: Extent3D, } PhysicalDeviceCopyMemoryIndirectFeaturesNV :: struct { sType: StructureType, pNext: rawptr, indirectCopy: b32, } PhysicalDeviceCopyMemoryIndirectPropertiesNV :: struct { sType: StructureType, pNext: rawptr, supportedQueues: QueueFlags, } DecompressMemoryRegionNV :: struct { srcAddress: DeviceAddress, dstAddress: DeviceAddress, compressedSize: DeviceSize, decompressedSize: DeviceSize, decompressionMethod: MemoryDecompressionMethodFlagsNV, } PhysicalDeviceMemoryDecompressionFeaturesNV :: struct { sType: StructureType, pNext: rawptr, memoryDecompression: b32, } PhysicalDeviceMemoryDecompressionPropertiesNV :: struct { sType: StructureType, pNext: rawptr, decompressionMethods: MemoryDecompressionMethodFlagsNV, maxDecompressionIndirectCount: u64, } PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV :: struct { sType: StructureType, pNext: rawptr, deviceGeneratedCompute: b32, deviceGeneratedComputePipelines: b32, deviceGeneratedComputeCaptureReplay: b32, } ComputePipelineIndirectBufferInfoNV :: struct { sType: StructureType, pNext: rawptr, deviceAddress: DeviceAddress, size: DeviceSize, pipelineDeviceAddressCaptureReplay: DeviceAddress, } PipelineIndirectDeviceAddressInfoNV :: struct { sType: StructureType, pNext: rawptr, pipelineBindPoint: PipelineBindPoint, pipeline: Pipeline, } BindPipelineIndirectCommandNV :: struct { pipelineAddress: DeviceAddress, } PhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV :: struct { sType: StructureType, pNext: rawptr, spheres: b32, linearSweptSpheres: b32, } AccelerationStructureGeometryLinearSweptSpheresDataNV :: struct { sType: StructureType, pNext: rawptr, vertexFormat: Format, vertexData: DeviceOrHostAddressConstKHR, vertexStride: DeviceSize, radiusFormat: Format, radiusData: DeviceOrHostAddressConstKHR, radiusStride: DeviceSize, indexType: IndexType, indexData: DeviceOrHostAddressConstKHR, indexStride: DeviceSize, indexingMode: RayTracingLssIndexingModeNV, endCapsMode: RayTracingLssPrimitiveEndCapsModeNV, } AccelerationStructureGeometrySpheresDataNV :: struct { sType: StructureType, pNext: rawptr, vertexFormat: Format, vertexData: DeviceOrHostAddressConstKHR, vertexStride: DeviceSize, radiusFormat: Format, radiusData: DeviceOrHostAddressConstKHR, radiusStride: DeviceSize, indexType: IndexType, indexData: DeviceOrHostAddressConstKHR, indexStride: DeviceSize, } PhysicalDeviceLinearColorAttachmentFeaturesNV :: struct { sType: StructureType, pNext: rawptr, linearColorAttachment: b32, } PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, imageCompressionControlSwapchain: b32, } ImageViewSampleWeightCreateInfoQCOM :: struct { sType: StructureType, pNext: rawptr, filterCenter: Offset2D, filterSize: Extent2D, numPhases: u32, } PhysicalDeviceImageProcessingFeaturesQCOM :: struct { sType: StructureType, pNext: rawptr, textureSampleWeighted: b32, textureBoxFilter: b32, textureBlockMatch: b32, } PhysicalDeviceImageProcessingPropertiesQCOM :: struct { sType: StructureType, pNext: rawptr, maxWeightFilterPhases: u32, maxWeightFilterDimension: Extent2D, maxBlockMatchRegion: Extent2D, maxBoxFilterBlockSize: Extent2D, } PhysicalDeviceNestedCommandBufferFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, nestedCommandBuffer: b32, nestedCommandBufferRendering: b32, nestedCommandBufferSimultaneousUse: b32, } PhysicalDeviceNestedCommandBufferPropertiesEXT :: struct { sType: StructureType, pNext: rawptr, maxCommandBufferNestingLevel: u32, } ExternalMemoryAcquireUnmodifiedEXT :: struct { sType: StructureType, pNext: rawptr, acquireUnmodifiedMemory: b32, } PhysicalDeviceExtendedDynamicState3FeaturesEXT :: struct { sType: StructureType, pNext: rawptr, extendedDynamicState3TessellationDomainOrigin: b32, extendedDynamicState3DepthClampEnable: b32, extendedDynamicState3PolygonMode: b32, extendedDynamicState3RasterizationSamples: b32, extendedDynamicState3SampleMask: b32, extendedDynamicState3AlphaToCoverageEnable: b32, extendedDynamicState3AlphaToOneEnable: b32, extendedDynamicState3LogicOpEnable: b32, extendedDynamicState3ColorBlendEnable: b32, extendedDynamicState3ColorBlendEquation: b32, extendedDynamicState3ColorWriteMask: b32, extendedDynamicState3RasterizationStream: b32, extendedDynamicState3ConservativeRasterizationMode: b32, extendedDynamicState3ExtraPrimitiveOverestimationSize: b32, extendedDynamicState3DepthClipEnable: b32, extendedDynamicState3SampleLocationsEnable: b32, extendedDynamicState3ColorBlendAdvanced: b32, extendedDynamicState3ProvokingVertexMode: b32, extendedDynamicState3LineRasterizationMode: b32, extendedDynamicState3LineStippleEnable: b32, extendedDynamicState3DepthClipNegativeOneToOne: b32, extendedDynamicState3ViewportWScalingEnable: b32, extendedDynamicState3ViewportSwizzle: b32, extendedDynamicState3CoverageToColorEnable: b32, extendedDynamicState3CoverageToColorLocation: b32, extendedDynamicState3CoverageModulationMode: b32, extendedDynamicState3CoverageModulationTableEnable: b32, extendedDynamicState3CoverageModulationTable: b32, extendedDynamicState3CoverageReductionMode: b32, extendedDynamicState3RepresentativeFragmentTestEnable: b32, extendedDynamicState3ShadingRateImageEnable: b32, } PhysicalDeviceExtendedDynamicState3PropertiesEXT :: struct { sType: StructureType, pNext: rawptr, dynamicPrimitiveTopologyUnrestricted: b32, } ColorBlendEquationEXT :: struct { srcColorBlendFactor: BlendFactor, dstColorBlendFactor: BlendFactor, colorBlendOp: BlendOp, srcAlphaBlendFactor: BlendFactor, dstAlphaBlendFactor: BlendFactor, alphaBlendOp: BlendOp, } ColorBlendAdvancedEXT :: struct { advancedBlendOp: BlendOp, srcPremultiplied: b32, dstPremultiplied: b32, blendOverlap: BlendOverlapEXT, clampResults: b32, } PhysicalDeviceSubpassMergeFeedbackFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, subpassMergeFeedback: b32, } RenderPassCreationControlEXT :: struct { sType: StructureType, pNext: rawptr, disallowMerging: b32, } RenderPassCreationFeedbackInfoEXT :: struct { postMergeSubpassCount: u32, } RenderPassCreationFeedbackCreateInfoEXT :: struct { sType: StructureType, pNext: rawptr, pRenderPassFeedback: ^RenderPassCreationFeedbackInfoEXT, } RenderPassSubpassFeedbackInfoEXT :: struct { subpassMergeStatus: SubpassMergeStatusEXT, description: [MAX_DESCRIPTION_SIZE]byte, postMergeIndex: u32, } RenderPassSubpassFeedbackCreateInfoEXT :: struct { sType: StructureType, pNext: rawptr, pSubpassFeedback: ^RenderPassSubpassFeedbackInfoEXT, } DirectDriverLoadingInfoLUNARG :: struct { sType: StructureType, pNext: rawptr, flags: DirectDriverLoadingFlagsLUNARG, pfnGetInstanceProcAddr: ProcGetInstanceProcAddrLUNARG, } DirectDriverLoadingListLUNARG :: struct { sType: StructureType, pNext: rawptr, mode: DirectDriverLoadingModeLUNARG, driverCount: u32, pDrivers: [^]DirectDriverLoadingInfoLUNARG, } PhysicalDeviceShaderModuleIdentifierFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, shaderModuleIdentifier: b32, } PhysicalDeviceShaderModuleIdentifierPropertiesEXT :: struct { sType: StructureType, pNext: rawptr, shaderModuleIdentifierAlgorithmUUID: [UUID_SIZE]u8, } PipelineShaderStageModuleIdentifierCreateInfoEXT :: struct { sType: StructureType, pNext: rawptr, identifierSize: u32, pIdentifier: ^u8, } ShaderModuleIdentifierEXT :: struct { sType: StructureType, pNext: rawptr, identifierSize: u32, identifier: [MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT]u8, } PhysicalDeviceOpticalFlowFeaturesNV :: struct { sType: StructureType, pNext: rawptr, opticalFlow: b32, } PhysicalDeviceOpticalFlowPropertiesNV :: struct { sType: StructureType, pNext: rawptr, supportedOutputGridSizes: OpticalFlowGridSizeFlagsNV, supportedHintGridSizes: OpticalFlowGridSizeFlagsNV, hintSupported: b32, costSupported: b32, bidirectionalFlowSupported: b32, globalFlowSupported: b32, minWidth: u32, minHeight: u32, maxWidth: u32, maxHeight: u32, maxNumRegionsOfInterest: u32, } OpticalFlowImageFormatInfoNV :: struct { sType: StructureType, pNext: rawptr, usage: OpticalFlowUsageFlagsNV, } OpticalFlowImageFormatPropertiesNV :: struct { sType: StructureType, pNext: rawptr, format: Format, } OpticalFlowSessionCreateInfoNV :: struct { sType: StructureType, pNext: rawptr, width: u32, height: u32, imageFormat: Format, flowVectorFormat: Format, costFormat: Format, outputGridSize: OpticalFlowGridSizeFlagsNV, hintGridSize: OpticalFlowGridSizeFlagsNV, performanceLevel: OpticalFlowPerformanceLevelNV, flags: OpticalFlowSessionCreateFlagsNV, } OpticalFlowSessionCreatePrivateDataInfoNV :: struct { sType: StructureType, pNext: rawptr, id: u32, size: u32, pPrivateData: rawptr, } OpticalFlowExecuteInfoNV :: struct { sType: StructureType, pNext: rawptr, flags: OpticalFlowExecuteFlagsNV, regionCount: u32, pRegions: [^]Rect2D, } PhysicalDeviceLegacyDitheringFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, legacyDithering: b32, } PhysicalDeviceAntiLagFeaturesAMD :: struct { sType: StructureType, pNext: rawptr, antiLag: b32, } AntiLagPresentationInfoAMD :: struct { sType: StructureType, pNext: rawptr, stage: AntiLagStageAMD, frameIndex: u64, } AntiLagDataAMD :: struct { sType: StructureType, pNext: rawptr, mode: AntiLagModeAMD, maxFPS: u32, pPresentationInfo: ^AntiLagPresentationInfoAMD, } PhysicalDeviceShaderObjectFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, shaderObject: b32, } PhysicalDeviceShaderObjectPropertiesEXT :: struct { sType: StructureType, pNext: rawptr, shaderBinaryUUID: [UUID_SIZE]u8, shaderBinaryVersion: u32, } ShaderCreateInfoEXT :: struct { sType: StructureType, pNext: rawptr, flags: ShaderCreateFlagsEXT, stage: ShaderStageFlags, nextStage: ShaderStageFlags, codeType: ShaderCodeTypeEXT, codeSize: int, pCode: rawptr, pName: cstring, setLayoutCount: u32, pSetLayouts: [^]DescriptorSetLayout, pushConstantRangeCount: u32, pPushConstantRanges: [^]PushConstantRange, pSpecializationInfo: ^SpecializationInfo, } DepthClampRangeEXT :: struct { minDepthClamp: f32, maxDepthClamp: f32, } PhysicalDeviceTilePropertiesFeaturesQCOM :: struct { sType: StructureType, pNext: rawptr, tileProperties: b32, } TilePropertiesQCOM :: struct { sType: StructureType, pNext: rawptr, tileSize: Extent3D, apronSize: Extent2D, origin: Offset2D, } PhysicalDeviceAmigoProfilingFeaturesSEC :: struct { sType: StructureType, pNext: rawptr, amigoProfiling: b32, } AmigoProfilingSubmitInfoSEC :: struct { sType: StructureType, pNext: rawptr, firstDrawTimestamp: u64, swapBufferTimestamp: u64, } PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM :: struct { sType: StructureType, pNext: rawptr, multiviewPerViewViewports: b32, } PhysicalDeviceRayTracingInvocationReorderPropertiesNV :: struct { sType: StructureType, pNext: rawptr, rayTracingInvocationReorderReorderingHint: RayTracingInvocationReorderModeNV, } PhysicalDeviceRayTracingInvocationReorderFeaturesNV :: struct { sType: StructureType, pNext: rawptr, rayTracingInvocationReorder: b32, } PhysicalDeviceCooperativeVectorPropertiesNV :: struct { sType: StructureType, pNext: rawptr, cooperativeVectorSupportedStages: ShaderStageFlags, cooperativeVectorTrainingFloat16Accumulation: b32, cooperativeVectorTrainingFloat32Accumulation: b32, maxCooperativeVectorComponents: u32, } PhysicalDeviceCooperativeVectorFeaturesNV :: struct { sType: StructureType, pNext: rawptr, cooperativeVector: b32, cooperativeVectorTraining: b32, } CooperativeVectorPropertiesNV :: struct { sType: StructureType, pNext: rawptr, inputType: ComponentTypeKHR, inputInterpretation: ComponentTypeKHR, matrixInterpretation: ComponentTypeKHR, biasInterpretation: ComponentTypeKHR, resultType: ComponentTypeKHR, transpose: b32, } ConvertCooperativeVectorMatrixInfoNV :: struct { sType: StructureType, pNext: rawptr, srcSize: int, srcData: DeviceOrHostAddressConstKHR, pDstSize: ^int, dstData: DeviceOrHostAddressKHR, srcComponentType: ComponentTypeKHR, dstComponentType: ComponentTypeKHR, numRows: u32, numColumns: u32, srcLayout: CooperativeVectorMatrixLayoutNV, srcStride: int, dstLayout: CooperativeVectorMatrixLayoutNV, dstStride: int, } PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV :: struct { sType: StructureType, pNext: rawptr, extendedSparseAddressSpace: b32, } PhysicalDeviceExtendedSparseAddressSpacePropertiesNV :: struct { sType: StructureType, pNext: rawptr, extendedSparseAddressSpaceSize: DeviceSize, extendedSparseImageUsageFlags: ImageUsageFlags, extendedSparseBufferUsageFlags: BufferUsageFlags, } PhysicalDeviceLegacyVertexAttributesFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, legacyVertexAttributes: b32, } PhysicalDeviceLegacyVertexAttributesPropertiesEXT :: struct { sType: StructureType, pNext: rawptr, nativeUnalignedPerformance: b32, } LayerSettingEXT :: struct { pLayerName: cstring, pSettingName: cstring, type: LayerSettingTypeEXT, valueCount: u32, pValues: rawptr, } LayerSettingsCreateInfoEXT :: struct { sType: StructureType, pNext: rawptr, settingCount: u32, pSettings: [^]LayerSettingEXT, } PhysicalDeviceShaderCoreBuiltinsFeaturesARM :: struct { sType: StructureType, pNext: rawptr, shaderCoreBuiltins: b32, } PhysicalDeviceShaderCoreBuiltinsPropertiesARM :: struct { sType: StructureType, pNext: rawptr, shaderCoreMask: u64, shaderCoreCount: u32, shaderWarpsPerCore: u32, } PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, pipelineLibraryGroupHandles: b32, } PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, dynamicRenderingUnusedAttachments: b32, } LatencySleepModeInfoNV :: struct { sType: StructureType, pNext: rawptr, lowLatencyMode: b32, lowLatencyBoost: b32, minimumIntervalUs: u32, } LatencySleepInfoNV :: struct { sType: StructureType, pNext: rawptr, signalSemaphore: Semaphore, value: u64, } SetLatencyMarkerInfoNV :: struct { sType: StructureType, pNext: rawptr, presentID: u64, marker: LatencyMarkerNV, } LatencyTimingsFrameReportNV :: struct { sType: StructureType, pNext: rawptr, presentID: u64, inputSampleTimeUs: u64, simStartTimeUs: u64, simEndTimeUs: u64, renderSubmitStartTimeUs: u64, renderSubmitEndTimeUs: u64, presentStartTimeUs: u64, presentEndTimeUs: u64, driverStartTimeUs: u64, driverEndTimeUs: u64, osRenderQueueStartTimeUs: u64, osRenderQueueEndTimeUs: u64, gpuRenderStartTimeUs: u64, gpuRenderEndTimeUs: u64, } GetLatencyMarkerInfoNV :: struct { sType: StructureType, pNext: rawptr, timingCount: u32, pTimings: [^]LatencyTimingsFrameReportNV, } LatencySubmissionPresentIdNV :: struct { sType: StructureType, pNext: rawptr, presentID: u64, } SwapchainLatencyCreateInfoNV :: struct { sType: StructureType, pNext: rawptr, latencyModeEnable: b32, } OutOfBandQueueTypeInfoNV :: struct { sType: StructureType, pNext: rawptr, queueType: OutOfBandQueueTypeNV, } LatencySurfaceCapabilitiesNV :: struct { sType: StructureType, pNext: rawptr, presentModeCount: u32, pPresentModes: [^]PresentModeKHR, } PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM :: struct { sType: StructureType, pNext: rawptr, multiviewPerViewRenderAreas: b32, } MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM :: struct { sType: StructureType, pNext: rawptr, perViewRenderAreaCount: u32, pPerViewRenderAreas: [^]Rect2D, } PhysicalDevicePerStageDescriptorSetFeaturesNV :: struct { sType: StructureType, pNext: rawptr, perStageDescriptorSet: b32, dynamicPipelineLayout: b32, } PhysicalDeviceImageProcessing2FeaturesQCOM :: struct { sType: StructureType, pNext: rawptr, textureBlockMatch2: b32, } PhysicalDeviceImageProcessing2PropertiesQCOM :: struct { sType: StructureType, pNext: rawptr, maxBlockMatchWindow: Extent2D, } SamplerBlockMatchWindowCreateInfoQCOM :: struct { sType: StructureType, pNext: rawptr, windowExtent: Extent2D, windowCompareMode: BlockMatchWindowCompareModeQCOM, } PhysicalDeviceCubicWeightsFeaturesQCOM :: struct { sType: StructureType, pNext: rawptr, selectableCubicWeights: b32, } SamplerCubicWeightsCreateInfoQCOM :: struct { sType: StructureType, pNext: rawptr, cubicWeights: CubicFilterWeightsQCOM, } BlitImageCubicWeightsInfoQCOM :: struct { sType: StructureType, pNext: rawptr, cubicWeights: CubicFilterWeightsQCOM, } PhysicalDeviceYcbcrDegammaFeaturesQCOM :: struct { sType: StructureType, pNext: rawptr, ycbcrDegamma: b32, } SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM :: struct { sType: StructureType, pNext: rawptr, enableYDegamma: b32, enableCbCrDegamma: b32, } PhysicalDeviceCubicClampFeaturesQCOM :: struct { sType: StructureType, pNext: rawptr, cubicRangeClamp: b32, } PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, attachmentFeedbackLoopDynamicState: b32, } PhysicalDeviceLayeredDriverPropertiesMSFT :: struct { sType: StructureType, pNext: rawptr, underlyingAPI: LayeredDriverUnderlyingApiMSFT, } PhysicalDeviceDescriptorPoolOverallocationFeaturesNV :: struct { sType: StructureType, pNext: rawptr, descriptorPoolOverallocation: b32, } DisplaySurfaceStereoCreateInfoNV :: struct { sType: StructureType, pNext: rawptr, stereoType: DisplaySurfaceStereoTypeNV, } DisplayModeStereoPropertiesNV :: struct { sType: StructureType, pNext: rawptr, hdmi3DSupported: b32, } PhysicalDeviceRawAccessChainsFeaturesNV :: struct { sType: StructureType, pNext: rawptr, shaderRawAccessChains: b32, } PhysicalDeviceCommandBufferInheritanceFeaturesNV :: struct { sType: StructureType, pNext: rawptr, commandBufferInheritance: b32, } PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV :: struct { sType: StructureType, pNext: rawptr, shaderFloat16VectorAtomics: b32, } PhysicalDeviceShaderReplicatedCompositesFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, shaderReplicatedComposites: b32, } PhysicalDeviceRayTracingValidationFeaturesNV :: struct { sType: StructureType, pNext: rawptr, rayTracingValidation: b32, } PhysicalDeviceClusterAccelerationStructureFeaturesNV :: struct { sType: StructureType, pNext: rawptr, clusterAccelerationStructure: b32, } PhysicalDeviceClusterAccelerationStructurePropertiesNV :: struct { sType: StructureType, pNext: rawptr, maxVerticesPerCluster: u32, maxTrianglesPerCluster: u32, clusterScratchByteAlignment: u32, clusterByteAlignment: u32, clusterTemplateByteAlignment: u32, clusterBottomLevelByteAlignment: u32, clusterTemplateBoundsByteAlignment: u32, maxClusterGeometryIndex: u32, } ClusterAccelerationStructureClustersBottomLevelInputNV :: struct { sType: StructureType, pNext: rawptr, maxTotalClusterCount: u32, maxClusterCountPerAccelerationStructure: u32, } ClusterAccelerationStructureTriangleClusterInputNV :: struct { sType: StructureType, pNext: rawptr, vertexFormat: Format, maxGeometryIndexValue: u32, maxClusterUniqueGeometryCount: u32, maxClusterTriangleCount: u32, maxClusterVertexCount: u32, maxTotalTriangleCount: u32, maxTotalVertexCount: u32, minPositionTruncateBitCount: u32, } ClusterAccelerationStructureMoveObjectsInputNV :: struct { sType: StructureType, pNext: rawptr, type: ClusterAccelerationStructureTypeNV, noMoveOverlap: b32, maxMovedBytes: DeviceSize, } ClusterAccelerationStructureOpInputNV :: struct #raw_union { pClustersBottomLevel: ^ClusterAccelerationStructureClustersBottomLevelInputNV, pTriangleClusters: [^]ClusterAccelerationStructureTriangleClusterInputNV, pMoveObjects: [^]ClusterAccelerationStructureMoveObjectsInputNV, } ClusterAccelerationStructureInputInfoNV :: struct { sType: StructureType, pNext: rawptr, maxAccelerationStructureCount: u32, flags: BuildAccelerationStructureFlagsKHR, opType: ClusterAccelerationStructureOpTypeNV, opMode: ClusterAccelerationStructureOpModeNV, opInput: ClusterAccelerationStructureOpInputNV, } StridedDeviceAddressRegionKHR :: struct { deviceAddress: DeviceAddress, stride: DeviceSize, size: DeviceSize, } ClusterAccelerationStructureCommandsInfoNV :: struct { sType: StructureType, pNext: rawptr, input: ClusterAccelerationStructureInputInfoNV, dstImplicitData: DeviceAddress, scratchData: DeviceAddress, dstAddressesArray: StridedDeviceAddressRegionKHR, dstSizesArray: StridedDeviceAddressRegionKHR, srcInfosArray: StridedDeviceAddressRegionKHR, srcInfosCount: DeviceAddress, addressResolutionFlags: ClusterAccelerationStructureAddressResolutionFlagsNV, } StridedDeviceAddressNV :: struct { startAddress: DeviceAddress, strideInBytes: DeviceSize, } ClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV :: bit_field u32 { geometryIndex: u32 | 24, reserved: u32 | 5, geometryFlags: u32 | 3, } ClusterAccelerationStructureMoveObjectsInfoNV :: struct { srcAccelerationStructure: DeviceAddress, } ClusterAccelerationStructureBuildClustersBottomLevelInfoNV :: struct { clusterReferencesCount: u32, clusterReferencesStride: u32, clusterReferences: DeviceAddress, } ClusterAccelerationStructureBuildTriangleClusterInfoNV :: struct { clusterID: u32, clusterFlags: ClusterAccelerationStructureClusterFlagsNV, using _: bit_field u32 { triangleCount: u32 | 9, vertexCount: u32 | 9, positionTruncateBitCount: u32 | 6, indexType: u32 | 4, opacityMicromapIndexType: u32 | 4, }, baseGeometryIndexAndGeometryFlags: ClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV, indexBufferStride: u16, vertexBufferStride: u16, geometryIndexAndFlagsBufferStride: u16, opacityMicromapIndexBufferStride: u16, indexBuffer: DeviceAddress, vertexBuffer: DeviceAddress, geometryIndexAndFlagsBuffer: DeviceAddress, opacityMicromapArray: DeviceAddress, opacityMicromapIndexBuffer: DeviceAddress, } ClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV :: struct { clusterID: u32, clusterFlags: ClusterAccelerationStructureClusterFlagsNV, using _: bit_field u32 { triangleCount: u32 | 9, vertexCount: u32 | 9, positionTruncateBitCount: u32 | 6, indexType: u32 | 4, opacityMicromapIndexType: u32 | 4, }, baseGeometryIndexAndGeometryFlags: ClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV, indexBufferStride: u16, vertexBufferStride: u16, geometryIndexAndFlagsBufferStride: u16, opacityMicromapIndexBufferStride: u16, indexBuffer: DeviceAddress, vertexBuffer: DeviceAddress, geometryIndexAndFlagsBuffer: DeviceAddress, opacityMicromapArray: DeviceAddress, opacityMicromapIndexBuffer: DeviceAddress, instantiationBoundingBoxLimit: DeviceAddress, } ClusterAccelerationStructureInstantiateClusterInfoNV :: struct { clusterIdOffset: u32, using _: bit_field u32 { geometryIndexOffset: u32 | 24, reserved: u32 | 8, }, clusterTemplateAddress: DeviceAddress, vertexBuffer: StridedDeviceAddressNV, } AccelerationStructureBuildSizesInfoKHR :: struct { sType: StructureType, pNext: rawptr, accelerationStructureSize: DeviceSize, updateScratchSize: DeviceSize, buildScratchSize: DeviceSize, } RayTracingPipelineClusterAccelerationStructureCreateInfoNV :: struct { sType: StructureType, pNext: rawptr, allowClusterAccelerationStructure: b32, } PhysicalDevicePartitionedAccelerationStructureFeaturesNV :: struct { sType: StructureType, pNext: rawptr, partitionedAccelerationStructure: b32, } PhysicalDevicePartitionedAccelerationStructurePropertiesNV :: struct { sType: StructureType, pNext: rawptr, maxPartitionCount: u32, } PartitionedAccelerationStructureFlagsNV :: struct { sType: StructureType, pNext: rawptr, enablePartitionTranslation: b32, } BuildPartitionedAccelerationStructureIndirectCommandNV :: struct { opType: PartitionedAccelerationStructureOpTypeNV, argCount: u32, argData: StridedDeviceAddressNV, } PartitionedAccelerationStructureWriteInstanceDataNV :: struct { transform: TransformMatrixKHR, explicitAABB: [6]f32, instanceID: u32, instanceMask: u32, instanceContributionToHitGroupIndex: u32, instanceFlags: PartitionedAccelerationStructureInstanceFlagsNV, instanceIndex: u32, partitionIndex: u32, accelerationStructure: DeviceAddress, } PartitionedAccelerationStructureUpdateInstanceDataNV :: struct { instanceIndex: u32, instanceContributionToHitGroupIndex: u32, accelerationStructure: DeviceAddress, } PartitionedAccelerationStructureWritePartitionTranslationDataNV :: struct { partitionIndex: u32, partitionTranslation: [3]f32, } WriteDescriptorSetPartitionedAccelerationStructureNV :: struct { sType: StructureType, pNext: rawptr, accelerationStructureCount: u32, pAccelerationStructures: [^]DeviceAddress, } PartitionedAccelerationStructureInstancesInputNV :: struct { sType: StructureType, pNext: rawptr, flags: BuildAccelerationStructureFlagsKHR, instanceCount: u32, maxInstancePerPartitionCount: u32, partitionCount: u32, maxInstanceInGlobalPartitionCount: u32, } BuildPartitionedAccelerationStructureInfoNV :: struct { sType: StructureType, pNext: rawptr, input: PartitionedAccelerationStructureInstancesInputNV, srcAccelerationStructureData: DeviceAddress, dstAccelerationStructureData: DeviceAddress, scratchData: DeviceAddress, srcInfos: DeviceAddress, srcInfosCount: DeviceAddress, } PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, deviceGeneratedCommands: b32, dynamicGeneratedPipelineLayout: b32, } PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT :: struct { sType: StructureType, pNext: rawptr, maxIndirectPipelineCount: u32, maxIndirectShaderObjectCount: u32, maxIndirectSequenceCount: u32, maxIndirectCommandsTokenCount: u32, maxIndirectCommandsTokenOffset: u32, maxIndirectCommandsIndirectStride: u32, supportedIndirectCommandsInputModes: IndirectCommandsInputModeFlagsEXT, supportedIndirectCommandsShaderStages: ShaderStageFlags, supportedIndirectCommandsShaderStagesPipelineBinding: ShaderStageFlags, supportedIndirectCommandsShaderStagesShaderBinding: ShaderStageFlags, deviceGeneratedCommandsTransformFeedback: b32, deviceGeneratedCommandsMultiDrawIndirectCount: b32, } GeneratedCommandsMemoryRequirementsInfoEXT :: struct { sType: StructureType, pNext: rawptr, indirectExecutionSet: IndirectExecutionSetEXT, indirectCommandsLayout: IndirectCommandsLayoutEXT, maxSequenceCount: u32, maxDrawCount: u32, } IndirectExecutionSetPipelineInfoEXT :: struct { sType: StructureType, pNext: rawptr, initialPipeline: Pipeline, maxPipelineCount: u32, } IndirectExecutionSetShaderLayoutInfoEXT :: struct { sType: StructureType, pNext: rawptr, setLayoutCount: u32, pSetLayouts: [^]DescriptorSetLayout, } IndirectExecutionSetShaderInfoEXT :: struct { sType: StructureType, pNext: rawptr, shaderCount: u32, pInitialShaders: [^]ShaderEXT, pSetLayoutInfos: [^]IndirectExecutionSetShaderLayoutInfoEXT, maxShaderCount: u32, pushConstantRangeCount: u32, pPushConstantRanges: [^]PushConstantRange, } IndirectExecutionSetInfoEXT :: struct #raw_union { pPipelineInfo: ^IndirectExecutionSetPipelineInfoEXT, pShaderInfo: ^IndirectExecutionSetShaderInfoEXT, } IndirectExecutionSetCreateInfoEXT :: struct { sType: StructureType, pNext: rawptr, type: IndirectExecutionSetInfoTypeEXT, info: IndirectExecutionSetInfoEXT, } GeneratedCommandsInfoEXT :: struct { sType: StructureType, pNext: rawptr, shaderStages: ShaderStageFlags, indirectExecutionSet: IndirectExecutionSetEXT, indirectCommandsLayout: IndirectCommandsLayoutEXT, indirectAddress: DeviceAddress, indirectAddressSize: DeviceSize, preprocessAddress: DeviceAddress, preprocessSize: DeviceSize, maxSequenceCount: u32, sequenceCountAddress: DeviceAddress, maxDrawCount: u32, } WriteIndirectExecutionSetPipelineEXT :: struct { sType: StructureType, pNext: rawptr, index: u32, pipeline: Pipeline, } IndirectCommandsPushConstantTokenEXT :: struct { updateRange: PushConstantRange, } IndirectCommandsVertexBufferTokenEXT :: struct { vertexBindingUnit: u32, } IndirectCommandsIndexBufferTokenEXT :: struct { mode: IndirectCommandsInputModeFlagsEXT, } IndirectCommandsExecutionSetTokenEXT :: struct { type: IndirectExecutionSetInfoTypeEXT, shaderStages: ShaderStageFlags, } IndirectCommandsTokenDataEXT :: struct #raw_union { pPushConstant: ^IndirectCommandsPushConstantTokenEXT, pVertexBuffer: ^IndirectCommandsVertexBufferTokenEXT, pIndexBuffer: ^IndirectCommandsIndexBufferTokenEXT, pExecutionSet: ^IndirectCommandsExecutionSetTokenEXT, } IndirectCommandsLayoutTokenEXT :: struct { sType: StructureType, pNext: rawptr, type: IndirectCommandsTokenTypeEXT, data: IndirectCommandsTokenDataEXT, offset: u32, } IndirectCommandsLayoutCreateInfoEXT :: struct { sType: StructureType, pNext: rawptr, flags: IndirectCommandsLayoutUsageFlagsEXT, shaderStages: ShaderStageFlags, indirectStride: u32, pipelineLayout: PipelineLayout, tokenCount: u32, pTokens: [^]IndirectCommandsLayoutTokenEXT, } DrawIndirectCountIndirectCommandEXT :: struct { bufferAddress: DeviceAddress, stride: u32, commandCount: u32, } BindVertexBufferIndirectCommandEXT :: struct { bufferAddress: DeviceAddress, size: u32, stride: u32, } BindIndexBufferIndirectCommandEXT :: struct { bufferAddress: DeviceAddress, size: u32, indexType: IndexType, } GeneratedCommandsPipelineInfoEXT :: struct { sType: StructureType, pNext: rawptr, pipeline: Pipeline, } GeneratedCommandsShaderInfoEXT :: struct { sType: StructureType, pNext: rawptr, shaderCount: u32, pShaders: [^]ShaderEXT, } WriteIndirectExecutionSetShaderEXT :: struct { sType: StructureType, pNext: rawptr, index: u32, shader: ShaderEXT, } PhysicalDeviceImageAlignmentControlFeaturesMESA :: struct { sType: StructureType, pNext: rawptr, imageAlignmentControl: b32, } PhysicalDeviceImageAlignmentControlPropertiesMESA :: struct { sType: StructureType, pNext: rawptr, supportedImageAlignmentMask: u32, } ImageAlignmentControlCreateInfoMESA :: struct { sType: StructureType, pNext: rawptr, maximumRequestedAlignment: u32, } PhysicalDeviceDepthClampControlFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, depthClampControl: b32, } PipelineViewportDepthClampControlCreateInfoEXT :: struct { sType: StructureType, pNext: rawptr, depthClampMode: DepthClampModeEXT, pDepthClampRange: ^DepthClampRangeEXT, } PhysicalDeviceHdrVividFeaturesHUAWEI :: struct { sType: StructureType, pNext: rawptr, hdrVivid: b32, } HdrVividDynamicMetadataHUAWEI :: struct { sType: StructureType, pNext: rawptr, dynamicMetadataSize: int, pDynamicMetadata: rawptr, } CooperativeMatrixFlexibleDimensionsPropertiesNV :: struct { sType: StructureType, pNext: rawptr, MGranularity: u32, NGranularity: u32, KGranularity: u32, AType: ComponentTypeKHR, BType: ComponentTypeKHR, CType: ComponentTypeKHR, ResultType: ComponentTypeKHR, saturatingAccumulation: b32, scope: ScopeKHR, workgroupInvocations: u32, } PhysicalDeviceCooperativeMatrix2FeaturesNV :: struct { sType: StructureType, pNext: rawptr, cooperativeMatrixWorkgroupScope: b32, cooperativeMatrixFlexibleDimensions: b32, cooperativeMatrixReductions: b32, cooperativeMatrixConversions: b32, cooperativeMatrixPerElementOperations: b32, cooperativeMatrixTensorAddressing: b32, cooperativeMatrixBlockLoads: b32, } PhysicalDeviceCooperativeMatrix2PropertiesNV :: struct { sType: StructureType, pNext: rawptr, cooperativeMatrixWorkgroupScopeMaxWorkgroupSize: u32, cooperativeMatrixFlexibleDimensionsMaxDimension: u32, cooperativeMatrixWorkgroupScopeReservedSharedMemory: u32, } PhysicalDevicePipelineOpacityMicromapFeaturesARM :: struct { sType: StructureType, pNext: rawptr, pipelineOpacityMicromap: b32, } PhysicalDeviceVertexAttributeRobustnessFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, vertexAttributeRobustness: b32, } SetPresentConfigNV :: struct { sType: StructureType, pNext: rawptr, numFramesPerBatch: u32, presentConfigFeedback: u32, } PhysicalDevicePresentMeteringFeaturesNV :: struct { sType: StructureType, pNext: rawptr, presentMetering: b32, } AccelerationStructureBuildRangeInfoKHR :: struct { primitiveCount: u32, primitiveOffset: u32, firstVertex: u32, transformOffset: u32, } AccelerationStructureGeometryTrianglesDataKHR :: struct { sType: StructureType, pNext: rawptr, vertexFormat: Format, vertexData: DeviceOrHostAddressConstKHR, vertexStride: DeviceSize, maxVertex: u32, indexType: IndexType, indexData: DeviceOrHostAddressConstKHR, transformData: DeviceOrHostAddressConstKHR, } AccelerationStructureGeometryAabbsDataKHR :: struct { sType: StructureType, pNext: rawptr, data: DeviceOrHostAddressConstKHR, stride: DeviceSize, } AccelerationStructureGeometryInstancesDataKHR :: struct { sType: StructureType, pNext: rawptr, arrayOfPointers: b32, data: DeviceOrHostAddressConstKHR, } AccelerationStructureGeometryDataKHR :: struct #raw_union { triangles: AccelerationStructureGeometryTrianglesDataKHR, aabbs: AccelerationStructureGeometryAabbsDataKHR, instances: AccelerationStructureGeometryInstancesDataKHR, } AccelerationStructureGeometryKHR :: struct { sType: StructureType, pNext: rawptr, geometryType: GeometryTypeKHR, geometry: AccelerationStructureGeometryDataKHR, flags: GeometryFlagsKHR, } AccelerationStructureBuildGeometryInfoKHR :: struct { sType: StructureType, pNext: rawptr, type: AccelerationStructureTypeKHR, flags: BuildAccelerationStructureFlagsKHR, mode: BuildAccelerationStructureModeKHR, srcAccelerationStructure: AccelerationStructureKHR, dstAccelerationStructure: AccelerationStructureKHR, geometryCount: u32, pGeometries: [^]AccelerationStructureGeometryKHR, ppGeometries: ^[^]AccelerationStructureGeometryKHR, scratchData: DeviceOrHostAddressKHR, } AccelerationStructureCreateInfoKHR :: struct { sType: StructureType, pNext: rawptr, createFlags: AccelerationStructureCreateFlagsKHR, buffer: Buffer, offset: DeviceSize, size: DeviceSize, type: AccelerationStructureTypeKHR, deviceAddress: DeviceAddress, } WriteDescriptorSetAccelerationStructureKHR :: struct { sType: StructureType, pNext: rawptr, accelerationStructureCount: u32, pAccelerationStructures: [^]AccelerationStructureKHR, } PhysicalDeviceAccelerationStructureFeaturesKHR :: struct { sType: StructureType, pNext: rawptr, accelerationStructure: b32, accelerationStructureCaptureReplay: b32, accelerationStructureIndirectBuild: b32, accelerationStructureHostCommands: b32, descriptorBindingAccelerationStructureUpdateAfterBind: b32, } PhysicalDeviceAccelerationStructurePropertiesKHR :: struct { sType: StructureType, pNext: rawptr, maxGeometryCount: u64, maxInstanceCount: u64, maxPrimitiveCount: u64, maxPerStageDescriptorAccelerationStructures: u32, maxPerStageDescriptorUpdateAfterBindAccelerationStructures: u32, maxDescriptorSetAccelerationStructures: u32, maxDescriptorSetUpdateAfterBindAccelerationStructures: u32, minAccelerationStructureScratchOffsetAlignment: u32, } AccelerationStructureDeviceAddressInfoKHR :: struct { sType: StructureType, pNext: rawptr, accelerationStructure: AccelerationStructureKHR, } AccelerationStructureVersionInfoKHR :: struct { sType: StructureType, pNext: rawptr, pVersionData: ^u8, } CopyAccelerationStructureToMemoryInfoKHR :: struct { sType: StructureType, pNext: rawptr, src: AccelerationStructureKHR, dst: DeviceOrHostAddressKHR, mode: CopyAccelerationStructureModeKHR, } CopyMemoryToAccelerationStructureInfoKHR :: struct { sType: StructureType, pNext: rawptr, src: DeviceOrHostAddressConstKHR, dst: AccelerationStructureKHR, mode: CopyAccelerationStructureModeKHR, } CopyAccelerationStructureInfoKHR :: struct { sType: StructureType, pNext: rawptr, src: AccelerationStructureKHR, dst: AccelerationStructureKHR, mode: CopyAccelerationStructureModeKHR, } RayTracingShaderGroupCreateInfoKHR :: struct { sType: StructureType, pNext: rawptr, type: RayTracingShaderGroupTypeKHR, generalShader: u32, closestHitShader: u32, anyHitShader: u32, intersectionShader: u32, pShaderGroupCaptureReplayHandle: rawptr, } RayTracingPipelineInterfaceCreateInfoKHR :: struct { sType: StructureType, pNext: rawptr, maxPipelineRayPayloadSize: u32, maxPipelineRayHitAttributeSize: u32, } RayTracingPipelineCreateInfoKHR :: struct { sType: StructureType, pNext: rawptr, flags: PipelineCreateFlags, stageCount: u32, pStages: [^]PipelineShaderStageCreateInfo, groupCount: u32, pGroups: [^]RayTracingShaderGroupCreateInfoKHR, maxPipelineRayRecursionDepth: u32, pLibraryInfo: ^PipelineLibraryCreateInfoKHR, pLibraryInterface: ^RayTracingPipelineInterfaceCreateInfoKHR, pDynamicState: ^PipelineDynamicStateCreateInfo, layout: PipelineLayout, basePipelineHandle: Pipeline, basePipelineIndex: i32, } PhysicalDeviceRayTracingPipelineFeaturesKHR :: struct { sType: StructureType, pNext: rawptr, rayTracingPipeline: b32, rayTracingPipelineShaderGroupHandleCaptureReplay: b32, rayTracingPipelineShaderGroupHandleCaptureReplayMixed: b32, rayTracingPipelineTraceRaysIndirect: b32, rayTraversalPrimitiveCulling: b32, } PhysicalDeviceRayTracingPipelinePropertiesKHR :: struct { sType: StructureType, pNext: rawptr, shaderGroupHandleSize: u32, maxRayRecursionDepth: u32, maxShaderGroupStride: u32, shaderGroupBaseAlignment: u32, shaderGroupHandleCaptureReplaySize: u32, maxRayDispatchInvocationCount: u32, shaderGroupHandleAlignment: u32, maxRayHitAttributeSize: u32, } TraceRaysIndirectCommandKHR :: struct { width: u32, height: u32, depth: u32, } PhysicalDeviceRayQueryFeaturesKHR :: struct { sType: StructureType, pNext: rawptr, rayQuery: b32, } PhysicalDeviceMeshShaderFeaturesEXT :: struct { sType: StructureType, pNext: rawptr, taskShader: b32, meshShader: b32, multiviewMeshShader: b32, primitiveFragmentShadingRateMeshShader: b32, meshShaderQueries: b32, } PhysicalDeviceMeshShaderPropertiesEXT :: struct { sType: StructureType, pNext: rawptr, maxTaskWorkGroupTotalCount: u32, maxTaskWorkGroupCount: [3]u32, maxTaskWorkGroupInvocations: u32, maxTaskWorkGroupSize: [3]u32, maxTaskPayloadSize: u32, maxTaskSharedMemorySize: u32, maxTaskPayloadAndSharedMemorySize: u32, maxMeshWorkGroupTotalCount: u32, maxMeshWorkGroupCount: [3]u32, maxMeshWorkGroupInvocations: u32, maxMeshWorkGroupSize: [3]u32, maxMeshSharedMemorySize: u32, maxMeshPayloadAndSharedMemorySize: u32, maxMeshOutputMemorySize: u32, maxMeshPayloadAndOutputMemorySize: u32, maxMeshOutputComponents: u32, maxMeshOutputVertices: u32, maxMeshOutputPrimitives: u32, maxMeshOutputLayers: u32, maxMeshMultiviewViewCount: u32, meshOutputPerVertexGranularity: u32, meshOutputPerPrimitiveGranularity: u32, maxPreferredTaskWorkGroupInvocations: u32, maxPreferredMeshWorkGroupInvocations: u32, prefersLocalInvocationVertexOutput: b32, prefersLocalInvocationPrimitiveOutput: b32, prefersCompactVertexOutput: b32, prefersCompactPrimitiveOutput: b32, } DrawMeshTasksIndirectCommandEXT :: struct { groupCountX: u32, groupCountY: u32, groupCountZ: u32, } Win32SurfaceCreateInfoKHR :: struct { sType: StructureType, pNext: rawptr, flags: Win32SurfaceCreateFlagsKHR, hinstance: HINSTANCE, hwnd: HWND, } ImportMemoryWin32HandleInfoKHR :: struct { sType: StructureType, pNext: rawptr, handleType: ExternalMemoryHandleTypeFlags, handle: HANDLE, name: LPCWSTR, } ExportMemoryWin32HandleInfoKHR :: struct { sType: StructureType, pNext: rawptr, pAttributes: [^]SECURITY_ATTRIBUTES, dwAccess: DWORD, name: LPCWSTR, } MemoryWin32HandlePropertiesKHR :: struct { sType: StructureType, pNext: rawptr, memoryTypeBits: u32, } MemoryGetWin32HandleInfoKHR :: struct { sType: StructureType, pNext: rawptr, memory: DeviceMemory, handleType: ExternalMemoryHandleTypeFlags, } Win32KeyedMutexAcquireReleaseInfoKHR :: struct { sType: StructureType, pNext: rawptr, acquireCount: u32, pAcquireSyncs: [^]DeviceMemory, pAcquireKeys: [^]u64, pAcquireTimeouts: [^]u32, releaseCount: u32, pReleaseSyncs: [^]DeviceMemory, pReleaseKeys: [^]u64, } ImportSemaphoreWin32HandleInfoKHR :: struct { sType: StructureType, pNext: rawptr, semaphore: Semaphore, flags: SemaphoreImportFlags, handleType: ExternalSemaphoreHandleTypeFlags, handle: HANDLE, name: LPCWSTR, } ExportSemaphoreWin32HandleInfoKHR :: struct { sType: StructureType, pNext: rawptr, pAttributes: [^]SECURITY_ATTRIBUTES, dwAccess: DWORD, name: LPCWSTR, } D3D12FenceSubmitInfoKHR :: struct { sType: StructureType, pNext: rawptr, waitSemaphoreValuesCount: u32, pWaitSemaphoreValues: [^]u64, signalSemaphoreValuesCount: u32, pSignalSemaphoreValues: [^]u64, } SemaphoreGetWin32HandleInfoKHR :: struct { sType: StructureType, pNext: rawptr, semaphore: Semaphore, handleType: ExternalSemaphoreHandleTypeFlags, } ImportFenceWin32HandleInfoKHR :: struct { sType: StructureType, pNext: rawptr, fence: Fence, flags: FenceImportFlags, handleType: ExternalFenceHandleTypeFlags, handle: HANDLE, name: LPCWSTR, } ExportFenceWin32HandleInfoKHR :: struct { sType: StructureType, pNext: rawptr, pAttributes: [^]SECURITY_ATTRIBUTES, dwAccess: DWORD, name: LPCWSTR, } FenceGetWin32HandleInfoKHR :: struct { sType: StructureType, pNext: rawptr, fence: Fence, handleType: ExternalFenceHandleTypeFlags, } ImportMemoryWin32HandleInfoNV :: struct { sType: StructureType, pNext: rawptr, handleType: ExternalMemoryHandleTypeFlagsNV, handle: HANDLE, } ExportMemoryWin32HandleInfoNV :: struct { sType: StructureType, pNext: rawptr, pAttributes: [^]SECURITY_ATTRIBUTES, dwAccess: DWORD, } Win32KeyedMutexAcquireReleaseInfoNV :: struct { sType: StructureType, pNext: rawptr, acquireCount: u32, pAcquireSyncs: [^]DeviceMemory, pAcquireKeys: [^]u64, pAcquireTimeoutMilliseconds: [^]u32, releaseCount: u32, pReleaseSyncs: [^]DeviceMemory, pReleaseKeys: [^]u64, } SurfaceFullScreenExclusiveInfoEXT :: struct { sType: StructureType, pNext: rawptr, fullScreenExclusive: FullScreenExclusiveEXT, } SurfaceCapabilitiesFullScreenExclusiveEXT :: struct { sType: StructureType, pNext: rawptr, fullScreenExclusiveSupported: b32, } SurfaceFullScreenExclusiveWin32InfoEXT :: struct { sType: StructureType, pNext: rawptr, hmonitor: HMONITOR, } MetalSurfaceCreateInfoEXT :: struct { sType: StructureType, pNext: rawptr, flags: MetalSurfaceCreateFlagsEXT, pLayer: ^CAMetalLayer, } ExportMetalObjectCreateInfoEXT :: struct { sType: StructureType, pNext: rawptr, exportObjectType: ExportMetalObjectTypeFlagsEXT, } ExportMetalObjectsInfoEXT :: struct { sType: StructureType, pNext: rawptr, } ExportMetalDeviceInfoEXT :: struct { sType: StructureType, pNext: rawptr, mtlDevice: MTLDevice_id, } ExportMetalCommandQueueInfoEXT :: struct { sType: StructureType, pNext: rawptr, queue: Queue, mtlCommandQueue: MTLCommandQueue_id, } ExportMetalBufferInfoEXT :: struct { sType: StructureType, pNext: rawptr, memory: DeviceMemory, mtlBuffer: MTLBuffer_id, } ImportMetalBufferInfoEXT :: struct { sType: StructureType, pNext: rawptr, mtlBuffer: MTLBuffer_id, } ExportMetalTextureInfoEXT :: struct { sType: StructureType, pNext: rawptr, image: Image, imageView: ImageView, bufferView: BufferView, plane: ImageAspectFlags, mtlTexture: MTLTexture_id, } ImportMetalTextureInfoEXT :: struct { sType: StructureType, pNext: rawptr, plane: ImageAspectFlags, mtlTexture: MTLTexture_id, } ExportMetalIOSurfaceInfoEXT :: struct { sType: StructureType, pNext: rawptr, image: Image, ioSurface: IOSurfaceRef, } ImportMetalIOSurfaceInfoEXT :: struct { sType: StructureType, pNext: rawptr, ioSurface: IOSurfaceRef, } ExportMetalSharedEventInfoEXT :: struct { sType: StructureType, pNext: rawptr, semaphore: Semaphore, event: Event, mtlSharedEvent: MTLSharedEvent_id, } ImportMetalSharedEventInfoEXT :: struct { sType: StructureType, pNext: rawptr, mtlSharedEvent: MTLSharedEvent_id, } ImportMemoryMetalHandleInfoEXT :: struct { sType: StructureType, pNext: rawptr, handleType: ExternalMemoryHandleTypeFlags, handle: rawptr, } MemoryMetalHandlePropertiesEXT :: struct { sType: StructureType, pNext: rawptr, memoryTypeBits: u32, } MemoryGetMetalHandleInfoEXT :: struct { sType: StructureType, pNext: rawptr, memory: DeviceMemory, handleType: ExternalMemoryHandleTypeFlags, } MacOSSurfaceCreateInfoMVK :: struct { sType: StructureType, pNext: rawptr, flags: MacOSSurfaceCreateFlagsMVK, pView: rawptr, } IOSSurfaceCreateInfoMVK :: struct { sType: StructureType, pNext: rawptr, flags: IOSSurfaceCreateFlagsMVK, pView: rawptr, } WaylandSurfaceCreateInfoKHR :: struct { sType: StructureType, pNext: rawptr, flags: WaylandSurfaceCreateFlagsKHR, display: ^wl_display, surface: ^wl_surface, } XlibSurfaceCreateInfoKHR :: struct { sType: StructureType, pNext: rawptr, flags: XlibSurfaceCreateFlagsKHR, dpy: ^XlibDisplay, window: XlibWindow, } XcbSurfaceCreateInfoKHR :: struct { sType: StructureType, pNext: rawptr, flags: XcbSurfaceCreateFlagsKHR, connection: ^xcb_connection_t, window: xcb_window_t, } PhysicalDevicePortabilitySubsetFeaturesKHR :: struct { sType: StructureType, pNext: rawptr, constantAlphaColorBlendFactors: b32, events: b32, imageViewFormatReinterpretation: b32, imageViewFormatSwizzle: b32, imageView2DOn3DImage: b32, multisampleArrayImage: b32, mutableComparisonSamplers: b32, pointPolygons: b32, samplerMipLodBias: b32, separateStencilMaskRef: b32, shaderSampleRateInterpolationFunctions: b32, tessellationIsolines: b32, tessellationPointMode: b32, triangleFans: b32, vertexAttributeAccessBeyondStride: b32, } PhysicalDevicePortabilitySubsetPropertiesKHR :: struct { sType: StructureType, pNext: rawptr, minVertexInputBindingStrideAlignment: u32, } PhysicalDeviceShaderEnqueueFeaturesAMDX :: struct { sType: StructureType, pNext: rawptr, shaderEnqueue: b32, shaderMeshEnqueue: b32, } PhysicalDeviceShaderEnqueuePropertiesAMDX :: struct { sType: StructureType, pNext: rawptr, maxExecutionGraphDepth: u32, maxExecutionGraphShaderOutputNodes: u32, maxExecutionGraphShaderPayloadSize: u32, maxExecutionGraphShaderPayloadCount: u32, executionGraphDispatchAddressAlignment: u32, maxExecutionGraphWorkgroupCount: [3]u32, maxExecutionGraphWorkgroups: u32, } ExecutionGraphPipelineScratchSizeAMDX :: struct { sType: StructureType, pNext: rawptr, minSize: DeviceSize, maxSize: DeviceSize, sizeGranularity: DeviceSize, } ExecutionGraphPipelineCreateInfoAMDX :: struct { sType: StructureType, pNext: rawptr, flags: PipelineCreateFlags, stageCount: u32, pStages: [^]PipelineShaderStageCreateInfo, pLibraryInfo: ^PipelineLibraryCreateInfoKHR, layout: PipelineLayout, basePipelineHandle: Pipeline, basePipelineIndex: i32, } DeviceOrHostAddressConstAMDX :: struct #raw_union { deviceAddress: DeviceAddress, hostAddress: rawptr, } DispatchGraphInfoAMDX :: struct { nodeIndex: u32, payloadCount: u32, payloads: DeviceOrHostAddressConstAMDX, payloadStride: u64, } DispatchGraphCountInfoAMDX :: struct { count: u32, infos: DeviceOrHostAddressConstAMDX, stride: u64, } PipelineShaderStageNodeCreateInfoAMDX :: struct { sType: StructureType, pNext: rawptr, pName: cstring, index: u32, } PhysicalDeviceDisplacementMicromapFeaturesNV :: struct { sType: StructureType, pNext: rawptr, displacementMicromap: b32, } PhysicalDeviceDisplacementMicromapPropertiesNV :: struct { sType: StructureType, pNext: rawptr, maxDisplacementMicromapSubdivisionLevel: u32, } AccelerationStructureTrianglesDisplacementMicromapNV :: struct { sType: StructureType, pNext: rawptr, displacementBiasAndScaleFormat: Format, displacementVectorFormat: Format, displacementBiasAndScaleBuffer: DeviceOrHostAddressConstKHR, displacementBiasAndScaleStride: DeviceSize, displacementVectorBuffer: DeviceOrHostAddressConstKHR, displacementVectorStride: DeviceSize, displacedMicromapPrimitiveFlags: DeviceOrHostAddressConstKHR, displacedMicromapPrimitiveFlagsStride: DeviceSize, indexType: IndexType, indexBuffer: DeviceOrHostAddressConstKHR, indexStride: DeviceSize, baseTriangle: u32, usageCountsCount: u32, pUsageCounts: [^]MicromapUsageEXT, ppUsageCounts: ^[^]MicromapUsageEXT, micromap: MicromapEXT, } VideoAV1ColorConfigFlags :: distinct bit_set[VideoAV1ColorConfigFlag; u32] VideoAV1ColorConfigFlag :: enum u32 { mono_chrome, color_range, separate_uv_delta_q, color_description_present_flag, } VideoAV1ColorConfig :: struct { flags: VideoAV1ColorConfigFlags, BitDepth: u8, subsampling_x: u8, subsampling_y: u8, reserved1: u8, color_primaries: VideoAV1ColorPrimaries, transfer_characteristics: VideoAV1TransferCharacteristics, matrix_coefficients: VideoAV1MatrixCoefficients, chroma_sample_position: VideoAV1ChromaSamplePosition, } VideoAV1TimingInfoFlags :: distinct bit_set[VideoAV1TimingInfoFlag; u32] VideoAV1TimingInfoFlag :: enum u32 { equal_picture_interval, } VideoAV1TimingInfo :: struct { flags: VideoAV1TimingInfoFlags, num_units_in_display_tick: u32, time_scale: u32, num_ticks_per_picture_minus_1: u32, } VideoAV1LoopFilterFlags :: distinct bit_set[VideoAV1LoopFilterFlag; u32] VideoAV1LoopFilterFlag :: enum u32 { loop_filter_delta_enabled, loop_filter_delta_update, } VideoAV1LoopFilter :: struct { flags: VideoAV1LoopFilterFlags, loop_filter_level: [VIDEO_AV1_MAX_LOOP_FILTER_STRENGTHS]u8, loop_filter_sharpness: u8, update_ref_delta: u8, loop_filter_ref_deltas: [VIDEO_AV1_TOTAL_REFS_PER_FRAME]i8, update_mode_delta: u8, loop_filter_mode_deltas: [VIDEO_AV1_LOOP_FILTER_ADJUSTMENTS]i8, } VideoAV1QuantizationFlags :: distinct bit_set[VideoAV1QuantizationFlag; u32] VideoAV1QuantizationFlag :: enum u32 { using_qmatrix, diff_uv_delta, } VideoAV1Quantization :: struct { flags: VideoAV1QuantizationFlags, base_q_idx: u8, DeltaQYDc: i8, DeltaQUDc: i8, DeltaQUAc: i8, DeltaQVDc: i8, DeltaQVAc: i8, qm_y: u8, qm_u: u8, qm_v: u8, } VideoAV1Segmentation :: struct { FeatureEnabled: [VIDEO_AV1_MAX_SEGMENTS]u8, FeatureData: [VIDEO_AV1_MAX_SEGMENTS][VIDEO_AV1_SEG_LVL_MAX]i16, } VideoAV1TileInfoFlags :: distinct bit_set[VideoAV1TileInfoFlag; u32] VideoAV1TileInfoFlag :: enum u32 { uniform_tile_spacing_flag, } VideoAV1TileInfo :: struct { flags: VideoAV1TileInfoFlags, TileCols: u8, TileRows: u8, context_update_tile_id: u16, tile_size_bytes_minus_1: u8, reserved1: [7]u8, pMiColStarts: [^]u16, pMiRowStarts: [^]u16, pWidthInSbsMinus1: ^u16, pHeightInSbsMinus1: ^u16, } VideoAV1CDEF :: struct { cdef_damping_minus_3: u8, cdef_bits: u8, cdef_y_pri_strength: [VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS]u8, cdef_y_sec_strength: [VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS]u8, cdef_uv_pri_strength: [VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS]u8, cdef_uv_sec_strength: [VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS]u8, } VideoAV1LoopRestoration :: struct { FrameRestorationType: [VIDEO_AV1_MAX_NUM_PLANES]VideoAV1FrameRestorationType, LoopRestorationSize: [VIDEO_AV1_MAX_NUM_PLANES]u16, } VideoAV1GlobalMotion :: struct { GmType: [VIDEO_AV1_NUM_REF_FRAMES]u8, gm_params: [VIDEO_AV1_NUM_REF_FRAMES][VIDEO_AV1_GLOBAL_MOTION_PARAMS]i32, } VideoAV1FilmGrainFlags :: distinct bit_set[VideoAV1FilmGrainFlag; u32] VideoAV1FilmGrainFlag :: enum u32 { chroma_scaling_from_luma, overlap_flag, clip_to_restricted_range, update_grain, } VideoAV1FilmGrain :: struct { flags: VideoAV1FilmGrainFlags, grain_scaling_minus_8: u8, ar_coeff_lag: u8, ar_coeff_shift_minus_6: u8, grain_scale_shift: u8, grain_seed: u16, film_grain_params_ref_idx: u8, num_y_points: u8, point_y_value: [VIDEO_AV1_MAX_NUM_Y_POINTS]u8, point_y_scaling: [VIDEO_AV1_MAX_NUM_Y_POINTS]u8, num_cb_points: u8, point_cb_value: [VIDEO_AV1_MAX_NUM_CB_POINTS]u8, point_cb_scaling: [VIDEO_AV1_MAX_NUM_CB_POINTS]u8, num_cr_points: u8, point_cr_value: [VIDEO_AV1_MAX_NUM_CR_POINTS]u8, point_cr_scaling: [VIDEO_AV1_MAX_NUM_CR_POINTS]u8, ar_coeffs_y_plus_128: [VIDEO_AV1_MAX_NUM_POS_LUMA]i8, ar_coeffs_cb_plus_128: [VIDEO_AV1_MAX_NUM_POS_CHROMA]i8, ar_coeffs_cr_plus_128: [VIDEO_AV1_MAX_NUM_POS_CHROMA]i8, cb_mult: u8, cb_luma_mult: u8, cb_offset: u16, cr_mult: u8, cr_luma_mult: u8, cr_offset: u16, } VideoAV1SequenceHeaderFlags :: distinct bit_set[VideoAV1SequenceHeaderFlag; u32] VideoAV1SequenceHeaderFlag :: enum u32 { still_picture, reduced_still_picture_header, use_128x128_superblock, enable_filter_intra, enable_intra_edge_filter, enable_interintra_compound, enable_masked_compound, enable_warped_motion, enable_dual_filter, enable_order_hint, enable_jnt_comp, enable_ref_frame_mvs, frame_id_numbers_present_flag, enable_superres, enable_cdef, enable_restoration, film_grain_params_present, timing_info_present_flag, initial_display_delay_present_flag, } VideoAV1SequenceHeader :: struct { flags: VideoAV1SequenceHeaderFlags, seq_profile: VideoAV1Profile, frame_width_bits_minus_1: u8, frame_height_bits_minus_1: u8, max_frame_width_minus_1: u16, max_frame_height_minus_1: u16, delta_frame_id_length_minus_2: u8, additional_frame_id_length_minus_1: u8, order_hint_bits_minus_1: u8, seq_force_integer_mv: u8, seq_force_screen_content_tools: u8, reserved1: [5]u8, pColorConfig: ^VideoAV1ColorConfig, pTimingInfo: ^VideoAV1TimingInfo, } VideoDecodeAV1PictureInfoFlags :: distinct bit_set[VideoDecodeAV1PictureInfoFlag; u32] VideoDecodeAV1PictureInfoFlag :: enum u32 { error_resilient_mode, disable_cdf_update, use_superres, render_and_frame_size_different, allow_screen_content_tools, is_filter_switchable, force_integer_mv, frame_size_override_flag, buffer_removal_time_present_flag, allow_intrabc, frame_refs_short_signaling, allow_high_precision_mv, is_motion_mode_switchable, use_ref_frame_mvs, disable_frame_end_update_cdf, allow_warped_motion, reduced_tx_set, reference_select, skip_mode_present, delta_q_present, delta_lf_present, delta_lf_multi, segmentation_enabled, segmentation_update_map, segmentation_temporal_update, segmentation_update_data, UsesLr, usesChromaLr, apply_grain, } VideoDecodeAV1PictureInfo :: struct { flags: VideoDecodeAV1PictureInfoFlags, frame_type: VideoAV1FrameType, current_frame_id: u32, OrderHint: u8, primary_ref_frame: u8, refresh_frame_flags: u8, reserved1: u8, interpolation_filter: VideoAV1InterpolationFilter, TxMode: VideoAV1TxMode, delta_q_res: u8, delta_lf_res: u8, SkipModeFrame: [VIDEO_AV1_SKIP_MODE_FRAMES]u8, coded_denom: u8, reserved2: [3]u8, OrderHints: [VIDEO_AV1_NUM_REF_FRAMES]u8, expectedFrameId: [VIDEO_AV1_NUM_REF_FRAMES]u32, pTileInfo: ^VideoAV1TileInfo, pQuantization: ^VideoAV1Quantization, pSegmentation: ^VideoAV1Segmentation, pLoopFilter: ^VideoAV1LoopFilter, pCDEF: ^VideoAV1CDEF, pLoopRestoration: ^VideoAV1LoopRestoration, pGlobalMotion: ^VideoAV1GlobalMotion, pFilmGrain: ^VideoAV1FilmGrain, } VideoDecodeAV1ReferenceInfoFlags :: distinct bit_set[VideoDecodeAV1ReferenceInfoFlag; u32] VideoDecodeAV1ReferenceInfoFlag :: enum u32 { disable_frame_end_update_cdf, segmentation_enabled, } VideoDecodeAV1ReferenceInfo :: struct { flags: VideoDecodeAV1ReferenceInfoFlags, frame_type: u8, RefFrameSignBias: u8, OrderHint: u8, SavedOrderHints: [VIDEO_AV1_NUM_REF_FRAMES]u8, } VideoEncodeAV1DecoderModelInfo :: struct { buffer_delay_length_minus_1: u8, buffer_removal_time_length_minus_1: u8, frame_presentation_time_length_minus_1: u8, reserved1: u8, num_units_in_decoding_tick: u32, } VideoEncodeAV1ExtensionHeader :: struct { temporal_id: u8, spatial_id: u8, } VideoEncodeAV1OperatingPointInfoFlags :: distinct bit_set[VideoEncodeAV1OperatingPointInfoFlag; u32] VideoEncodeAV1OperatingPointInfoFlag :: enum u32 { decoder_model_present_for_this_op, low_delay_mode_flag, initial_display_delay_present_for_this_op, } VideoEncodeAV1OperatingPointInfo :: struct { flags: VideoEncodeAV1OperatingPointInfoFlags, operating_point_idc: u16, seq_level_idx: u8, seq_tier: u8, decoder_buffer_delay: u32, encoder_buffer_delay: u32, initial_display_delay_minus_1: u8, } VideoEncodeAV1PictureInfoFlags :: distinct bit_set[VideoEncodeAV1PictureInfoFlag; u32] VideoEncodeAV1PictureInfoFlag :: enum u32 { error_resilient_mode, disable_cdf_update, use_superres, render_and_frame_size_different, allow_screen_content_tools, is_filter_switchable, force_integer_mv, frame_size_override_flag, buffer_removal_time_present_flag, allow_intrabc, frame_refs_short_signaling, allow_high_precision_mv, is_motion_mode_switchable, use_ref_frame_mvs, disable_frame_end_update_cdf, allow_warped_motion, reduced_tx_set, skip_mode_present, delta_q_present, delta_lf_present, delta_lf_multi, segmentation_enabled, segmentation_update_map, segmentation_temporal_update, segmentation_update_data, UsesLr, usesChromaLr, show_frame, showable_frame, } VideoEncodeAV1PictureInfo :: struct { flags: VideoEncodeAV1PictureInfoFlags, frame_type: VideoAV1FrameType, frame_presentation_time: u32, current_frame_id: u32, order_hint: u8, primary_ref_frame: u8, refresh_frame_flags: u8, coded_denom: u8, render_width_minus_1: u16, render_height_minus_1: u16, interpolation_filter: VideoAV1InterpolationFilter, TxMode: VideoAV1TxMode, delta_q_res: u8, delta_lf_res: u8, ref_order_hint: [VIDEO_AV1_NUM_REF_FRAMES]u8, ref_frame_idx: [VIDEO_AV1_REFS_PER_FRAME]i8, reserved1: [3]u8, delta_frame_id_minus_1: [VIDEO_AV1_REFS_PER_FRAME]u32, pTileInfo: ^VideoAV1TileInfo, pQuantization: ^VideoAV1Quantization, pSegmentation: ^VideoAV1Segmentation, pLoopFilter: ^VideoAV1LoopFilter, pCDEF: ^VideoAV1CDEF, pLoopRestoration: ^VideoAV1LoopRestoration, pGlobalMotion: ^VideoAV1GlobalMotion, pExtensionHeader: ^VideoEncodeAV1ExtensionHeader, pBufferRemovalTimes: [^]u32, } VideoEncodeAV1ReferenceInfoFlags :: distinct bit_set[VideoEncodeAV1ReferenceInfoFlag; u32] VideoEncodeAV1ReferenceInfoFlag :: enum u32 { disable_frame_end_update_cdf, segmentation_enabled, } VideoEncodeAV1ReferenceInfo :: struct { flags: VideoEncodeAV1ReferenceInfoFlags, RefFrameId: u32, frame_type: VideoAV1FrameType, OrderHint: u8, reserved1: [3]u8, pExtensionHeader: ^VideoEncodeAV1ExtensionHeader, } VideoH264SpsVuiFlags :: distinct bit_set[VideoH264SpsVuiFlag; u32] VideoH264SpsVuiFlag :: enum u32 { aspect_ratio_info_present_flag, overscan_info_present_flag, overscan_appropriate_flag, video_signal_type_present_flag, video_full_range_flag, color_description_present_flag, chroma_loc_info_present_flag, timing_info_present_flag, fixed_frame_rate_flag, bitstream_restriction_flag, nal_hrd_parameters_present_flag, vcl_hrd_parameters_present_flag, } VideoH264HrdParameters :: struct { cpb_cnt_minus1: u8, bit_rate_scale: u8, cpb_size_scale: u8, reserved1: u8, bit_rate_value_minus1: [VIDEO_H264_CPB_CNT_LIST_SIZE]u32, cpb_size_value_minus1: [VIDEO_H264_CPB_CNT_LIST_SIZE]u32, cbr_flag: [VIDEO_H264_CPB_CNT_LIST_SIZE]u8, initial_cpb_removal_delay_length_minus1: u32, cpb_removal_delay_length_minus1: u32, dpb_output_delay_length_minus1: u32, time_offset_length: u32, } VideoH264SequenceParameterSetVui :: struct { flags: VideoH264SpsVuiFlags, aspect_ratio_idc: VideoH264AspectRatioIdc, sar_width: u16, sar_height: u16, video_format: u8, colour_primaries: u8, transfer_characteristics: u8, matrix_coefficients: u8, num_units_in_tick: u32, time_scale: u32, max_num_reorder_frames: u8, max_dec_frame_buffering: u8, chroma_sample_loc_type_top_field: u8, chroma_sample_loc_type_bottom_field: u8, reserved1: u32, pHrdParameters: [^]VideoH264HrdParameters, } VideoH264SpsFlags :: distinct bit_set[VideoH264SpsFlag; u32] VideoH264SpsFlag :: enum u32 { constraint_set0_flag, constraint_set1_flag, constraint_set2_flag, constraint_set3_flag, constraint_set4_flag, constraint_set5_flag, direct_8x8_inference_flag, mb_adaptive_frame_field_flag, frame_mbs_only_flag, delta_pic_order_always_zero_flag, separate_colour_plane_flag, gaps_in_frame_num_value_allowed_flag, qpprime_y_zero_transform_bypass_flag, frame_cropping_flag, seq_scaling_matrix_present_flag, vui_parameters_present_flag, } VideoH264ScalingLists :: struct { scaling_list_present_mask: u16, use_default_scaling_matrix_mask: u16, ScalingList4x4: [VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS][VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS]u8, ScalingList8x8: [VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS][VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS]u8, } VideoH264SequenceParameterSet :: struct { flags: VideoH264SpsFlags, profile_idc: VideoH264ProfileIdc, level_idc: VideoH264LevelIdc, chroma_format_idc: VideoH264ChromaFormatIdc, seq_parameter_set_id: u8, bit_depth_luma_minus8: u8, bit_depth_chroma_minus8: u8, log2_max_frame_num_minus4: u8, pic_order_cnt_type: VideoH264PocType, offset_for_non_ref_pic: i32, offset_for_top_to_bottom_field: i32, log2_max_pic_order_cnt_lsb_minus4: u8, num_ref_frames_in_pic_order_cnt_cycle: u8, max_num_ref_frames: u8, reserved1: u8, pic_width_in_mbs_minus1: u32, pic_height_in_map_units_minus1: u32, frame_crop_left_offset: u32, frame_crop_right_offset: u32, frame_crop_top_offset: u32, frame_crop_bottom_offset: u32, reserved2: u32, pOffsetForRefFrame: ^i32, pScalingLists: [^]VideoH264ScalingLists, pSequenceParameterSetVui: ^VideoH264SequenceParameterSetVui, } VideoH264PpsFlags :: distinct bit_set[VideoH264PpsFlag; u32] VideoH264PpsFlag :: enum u32 { transform_8x8_mode_flag, redundant_pic_cnt_present_flag, constrained_intra_pred_flag, deblocking_filter_control_present_flag, weighted_pred_flag, bottom_field_pic_order_in_frame_present_flag, entropy_coding_mode_flag, pic_scaling_matrix_present_flag, } VideoH264PictureParameterSet :: struct { flags: VideoH264PpsFlags, seq_parameter_set_id: u8, pic_parameter_set_id: u8, num_ref_idx_l0_default_active_minus1: u8, num_ref_idx_l1_default_active_minus1: u8, weighted_bipred_idc: VideoH264WeightedBipredIdc, pic_init_qp_minus26: i8, pic_init_qs_minus26: i8, chroma_qp_index_offset: i8, second_chroma_qp_index_offset: i8, pScalingLists: [^]VideoH264ScalingLists, } VideoDecodeH264PictureInfoFlags :: distinct bit_set[VideoDecodeH264PictureInfoFlag; u32] VideoDecodeH264PictureInfoFlag :: enum u32 { field_pic_flag, is_intra, IdrPicFlag, bottom_field_flag, is_reference, complementary_field_pair, } VideoDecodeH264PictureInfo :: struct { flags: VideoDecodeH264PictureInfoFlags, seq_parameter_set_id: u8, pic_parameter_set_id: u8, reserved1: u8, reserved2: u8, frame_num: u16, idr_pic_id: u16, PicOrderCnt: [VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE]i32, } VideoDecodeH264ReferenceInfoFlags :: distinct bit_set[VideoDecodeH264ReferenceInfoFlag; u32] VideoDecodeH264ReferenceInfoFlag :: enum u32 { top_field_flag, bottom_field_flag, used_for_long_term_reference, is_non_existing, } VideoDecodeH264ReferenceInfo :: struct { flags: VideoDecodeH264ReferenceInfoFlags, FrameNum: u16, reserved: u16, PicOrderCnt: [VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE]i32, } VideoEncodeH264WeightTableFlags :: struct { luma_weight_l0_flag: u32, chroma_weight_l0_flag: u32, luma_weight_l1_flag: u32, chroma_weight_l1_flag: u32, } VideoEncodeH264WeightTable :: struct { flags: VideoEncodeH264WeightTableFlags, luma_log2_weight_denom: u8, chroma_log2_weight_denom: u8, luma_weight_l0: [VIDEO_H264_MAX_NUM_LIST_REF]i8, luma_offset_l0: [VIDEO_H264_MAX_NUM_LIST_REF]i8, chroma_weight_l0: [VIDEO_H264_MAX_NUM_LIST_REF][VIDEO_H264_MAX_CHROMA_PLANES]i8, chroma_offset_l0: [VIDEO_H264_MAX_NUM_LIST_REF][VIDEO_H264_MAX_CHROMA_PLANES]i8, luma_weight_l1: [VIDEO_H264_MAX_NUM_LIST_REF]i8, luma_offset_l1: [VIDEO_H264_MAX_NUM_LIST_REF]i8, chroma_weight_l1: [VIDEO_H264_MAX_NUM_LIST_REF][VIDEO_H264_MAX_CHROMA_PLANES]i8, chroma_offset_l1: [VIDEO_H264_MAX_NUM_LIST_REF][VIDEO_H264_MAX_CHROMA_PLANES]i8, } VideoEncodeH264SliceHeaderFlags :: distinct bit_set[VideoEncodeH264SliceHeaderFlag; u32] VideoEncodeH264SliceHeaderFlag :: enum u32 { direct_spatial_mv_pred_flag, num_ref_idx_active_override_flag, } VideoEncodeH264PictureInfoFlags :: distinct bit_set[VideoEncodeH264PictureInfoFlag; u32] VideoEncodeH264PictureInfoFlag :: enum u32 { IdrPicFlag, is_reference, no_output_of_prior_pics_flag, long_term_reference_flag, adaptive_ref_pic_marking_mode_flag, } VideoEncodeH264ReferenceInfoFlags :: distinct bit_set[VideoEncodeH264ReferenceInfoFlag; u32] VideoEncodeH264ReferenceInfoFlag :: enum u32 { used_for_long_term_reference, } VideoEncodeH264ReferenceListsInfoFlags :: distinct bit_set[VideoEncodeH264ReferenceListsInfoFlag; u32] VideoEncodeH264ReferenceListsInfoFlag :: enum u32 { ref_pic_list_modification_flag_l0, ref_pic_list_modification_flag_l1, } VideoEncodeH264RefListModEntry :: struct { modification_of_pic_nums_idc: VideoH264ModificationOfPicNumsIdc, abs_diff_pic_num_minus1: u16, long_term_pic_num: u16, } VideoEncodeH264RefPicMarkingEntry :: struct { memory_management_control_operation: VideoH264MemMgmtControlOp, difference_of_pic_nums_minus1: u16, long_term_pic_num: u16, long_term_frame_idx: u16, max_long_term_frame_idx_plus1: u16, } VideoEncodeH264ReferenceListsInfo :: struct { flags: VideoEncodeH264ReferenceListsInfoFlags, num_ref_idx_l0_active_minus1: u8, num_ref_idx_l1_active_minus1: u8, RefPicList0: [VIDEO_H264_MAX_NUM_LIST_REF]u8, RefPicList1: [VIDEO_H264_MAX_NUM_LIST_REF]u8, refList0ModOpCount: u8, refList1ModOpCount: u8, refPicMarkingOpCount: u8, reserved1: [7]u8, pRefList0ModOperations: [^]VideoEncodeH264RefListModEntry, pRefList1ModOperations: [^]VideoEncodeH264RefListModEntry, pRefPicMarkingOperations: [^]VideoEncodeH264RefPicMarkingEntry, } VideoEncodeH264PictureInfo :: struct { flags: VideoEncodeH264PictureInfoFlags, seq_parameter_set_id: u8, pic_parameter_set_id: u8, idr_pic_id: u16, primary_pic_type: VideoH264PictureType, frame_num: u32, PicOrderCnt: i32, temporal_id: u8, reserved1: [3]u8, pRefLists: [^]VideoEncodeH264ReferenceListsInfo, } VideoEncodeH264ReferenceInfo :: struct { flags: VideoEncodeH264ReferenceInfoFlags, primary_pic_type: VideoH264PictureType, FrameNum: u32, PicOrderCnt: i32, long_term_pic_num: u16, long_term_frame_idx: u16, temporal_id: u8, } VideoEncodeH264SliceHeader :: struct { flags: VideoEncodeH264SliceHeaderFlags, first_mb_in_slice: u32, slice_type: VideoH264SliceType, slice_alpha_c0_offset_div2: i8, slice_beta_offset_div2: i8, slice_qp_delta: i8, reserved1: u8, cabac_init_idc: VideoH264CabacInitIdc, disable_deblocking_filter_idc: VideoH264DisableDeblockingFilterIdc, pWeightTable: [^]VideoEncodeH264WeightTable, } VideoH265DecPicBufMgr :: struct { max_latency_increase_plus1: [VIDEO_H265_SUBLAYERS_LIST_SIZE]u32, max_dec_pic_buffering_minus1: [VIDEO_H265_SUBLAYERS_LIST_SIZE]u8, max_num_reorder_pics: [VIDEO_H265_SUBLAYERS_LIST_SIZE]u8, } VideoH265SubLayerHrdParameters :: struct { bit_rate_value_minus1: [VIDEO_H265_CPB_CNT_LIST_SIZE]u32, cpb_size_value_minus1: [VIDEO_H265_CPB_CNT_LIST_SIZE]u32, cpb_size_du_value_minus1: [VIDEO_H265_CPB_CNT_LIST_SIZE]u32, bit_rate_du_value_minus1: [VIDEO_H265_CPB_CNT_LIST_SIZE]u32, cbr_flag: u32, } VideoH265HrdFlags :: bit_field u32 { nal_hrd_parameters_present_flag: u32 | 1, vcl_hrd_parameters_present_flag: u32 | 1, sub_pic_hrd_params_present_flag: u32 | 1, sub_pic_cpb_params_in_pic_timing_sei_flag: u32 | 1, fixed_pic_rate_general_flag: u32 | 8, fixed_pic_rate_within_cvs_flag: u32 | 8, low_delay_hrd_flag: u32 | 8, } VideoH265HrdParameters :: struct { flags: VideoH265HrdFlags, tick_divisor_minus2: u8, du_cpb_removal_delay_increment_length_minus1: u8, dpb_output_delay_du_length_minus1: u8, bit_rate_scale: u8, cpb_size_scale: u8, cpb_size_du_scale: u8, initial_cpb_removal_delay_length_minus1: u8, au_cpb_removal_delay_length_minus1: u8, dpb_output_delay_length_minus1: u8, cpb_cnt_minus1: [VIDEO_H265_SUBLAYERS_LIST_SIZE]u8, elemental_duration_in_tc_minus1: [VIDEO_H265_SUBLAYERS_LIST_SIZE]u16, reserved: [3]u16, pSubLayerHrdParametersNal: ^VideoH265SubLayerHrdParameters, pSubLayerHrdParametersVcl: ^VideoH265SubLayerHrdParameters, } VideoH265VpsFlags :: distinct bit_set[VideoH265VpsFlag; u32] VideoH265VpsFlag :: enum u32 { vps_temporal_id_nesting_flag, vps_sub_layer_ordering_info_present_flag, vps_timing_info_present_flag, vps_poc_proportional_to_timing_flag, } VideoH265ProfileTierLevelFlags :: distinct bit_set[VideoH265ProfileTierLevelFlag; u32] VideoH265ProfileTierLevelFlag :: enum u32 { general_tier_flag, general_progressive_source_flag, general_interlaced_source_flag, general_non_packed_constraint_flag, general_frame_only_constraint_flag, } VideoH265ProfileTierLevel :: struct { flags: VideoH265ProfileTierLevelFlags, general_profile_idc: VideoH265ProfileIdc, general_level_idc: VideoH265LevelIdc, } VideoH265VideoParameterSet :: struct { flags: VideoH265VpsFlags, vps_video_parameter_set_id: u8, vps_max_sub_layers_minus1: u8, reserved1: u8, reserved2: u8, vps_num_units_in_tick: u32, vps_time_scale: u32, vps_num_ticks_poc_diff_one_minus1: u32, reserved3: u32, pDecPicBufMgr: ^VideoH265DecPicBufMgr, pHrdParameters: [^]VideoH265HrdParameters, pProfileTierLevel: ^VideoH265ProfileTierLevel, } VideoH265ScalingLists :: struct { ScalingList4x4: [VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS][VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS]u8, ScalingList8x8: [VIDEO_H265_SCALING_LIST_8X8_NUM_LISTS][VIDEO_H265_SCALING_LIST_8X8_NUM_ELEMENTS]u8, ScalingList16x16: [VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS][VIDEO_H265_SCALING_LIST_16X16_NUM_ELEMENTS]u8, ScalingList32x32: [VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS][VIDEO_H265_SCALING_LIST_32X32_NUM_ELEMENTS]u8, ScalingListDCCoef16x16: [VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS]u8, ScalingListDCCoef32x32: [VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS]u8, } VideoH265SpsVuiFlags :: distinct bit_set[VideoH265SpsVuiFlag; u32] VideoH265SpsVuiFlag :: enum u32 { aspect_ratio_info_present_flag, overscan_info_present_flag, overscan_appropriate_flag, video_signal_type_present_flag, video_full_range_flag, colour_description_present_flag, chroma_loc_info_present_flag, neutral_chroma_indication_flag, field_seq_flag, frame_field_info_present_flag, default_display_window_flag, vui_timing_info_present_flag, vui_poc_proportional_to_timing_flag, vui_hrd_parameters_present_flag, bitstream_restriction_flag, tiles_fixed_structure_flag, motion_vectors_over_pic_boundaries_flag, restricted_ref_pic_lists_flag, } VideoH265SequenceParameterSetVui :: struct { flags: VideoH265SpsVuiFlags, aspect_ratio_idc: VideoH265AspectRatioIdc, sar_width: u16, sar_height: u16, video_format: u8, colour_primaries: u8, transfer_characteristics: u8, matrix_coeffs: u8, chroma_sample_loc_type_top_field: u8, chroma_sample_loc_type_bottom_field: u8, reserved1: u8, reserved2: u8, def_disp_win_left_offset: u16, def_disp_win_right_offset: u16, def_disp_win_top_offset: u16, def_disp_win_bottom_offset: u16, vui_num_units_in_tick: u32, vui_time_scale: u32, vui_num_ticks_poc_diff_one_minus1: u32, min_spatial_segmentation_idc: u16, reserved3: u16, max_bytes_per_pic_denom: u8, max_bits_per_min_cu_denom: u8, log2_max_mv_length_horizontal: u8, log2_max_mv_length_vertical: u8, pHrdParameters: [^]VideoH265HrdParameters, } VideoH265PredictorPaletteEntries :: struct { PredictorPaletteEntries: [VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE][VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE]u16, } VideoH265SpsFlags :: distinct bit_set[VideoH265SpsFlag; u32] VideoH265SpsFlag :: enum u32 { sps_temporal_id_nesting_flag, separate_colour_plane_flag, conformance_window_flag, sps_sub_layer_ordering_info_present_flag, scaling_list_enabled_flag, sps_scaling_list_data_present_flag, amp_enabled_flag, sample_adaptive_offset_enabled_flag, pcm_enabled_flag, pcm_loop_filter_disabled_flag, long_term_ref_pics_present_flag, sps_temporal_mvp_enabled_flag, strong_intra_smoothing_enabled_flag, vui_parameters_present_flag, sps_extension_present_flag, sps_range_extension_flag, transform_skip_rotation_enabled_flag, transform_skip_context_enabled_flag, implicit_rdpcm_enabled_flag, explicit_rdpcm_enabled_flag, extended_precision_processing_flag, intra_smoothing_disabled_flag, high_precision_offsets_enabled_flag, persistent_rice_adaptation_enabled_flag, cabac_bypass_alignment_enabled_flag, sps_scc_extension_flag, sps_curr_pic_ref_enabled_flag, palette_mode_enabled_flag, sps_palette_predictor_initializers_present_flag, intra_boundary_filtering_disabled_flag, } VideoH265ShortTermRefPicSetFlags :: distinct bit_set[VideoH265ShortTermRefPicSetFlag; u32] VideoH265ShortTermRefPicSetFlag :: enum u32 { inter_ref_pic_set_prediction_flag, delta_rps_sign, } VideoH265ShortTermRefPicSet :: struct { flags: VideoH265ShortTermRefPicSetFlags, delta_idx_minus1: u32, use_delta_flag: u16, abs_delta_rps_minus1: u16, used_by_curr_pic_flag: u16, used_by_curr_pic_s0_flag: u16, used_by_curr_pic_s1_flag: u16, reserved1: u16, reserved2: u8, reserved3: u8, num_negative_pics: u8, num_positive_pics: u8, delta_poc_s0_minus1: [VIDEO_H265_MAX_DPB_SIZE]u16, delta_poc_s1_minus1: [VIDEO_H265_MAX_DPB_SIZE]u16, } VideoH265LongTermRefPicsSps :: struct { used_by_curr_pic_lt_sps_flag: u32, lt_ref_pic_poc_lsb_sps: [VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS]u32, } VideoH265SequenceParameterSet :: struct { flags: VideoH265SpsFlags, chroma_format_idc: VideoH265ChromaFormatIdc, pic_width_in_luma_samples: u32, pic_height_in_luma_samples: u32, sps_video_parameter_set_id: u8, sps_max_sub_layers_minus1: u8, sps_seq_parameter_set_id: u8, bit_depth_luma_minus8: u8, bit_depth_chroma_minus8: u8, log2_max_pic_order_cnt_lsb_minus4: u8, log2_min_luma_coding_block_size_minus3: u8, log2_diff_max_min_luma_coding_block_size: u8, log2_min_luma_transform_block_size_minus2: u8, log2_diff_max_min_luma_transform_block_size: u8, max_transform_hierarchy_depth_inter: u8, max_transform_hierarchy_depth_intra: u8, num_short_term_ref_pic_sets: u8, num_long_term_ref_pics_sps: u8, pcm_sample_bit_depth_luma_minus1: u8, pcm_sample_bit_depth_chroma_minus1: u8, log2_min_pcm_luma_coding_block_size_minus3: u8, log2_diff_max_min_pcm_luma_coding_block_size: u8, reserved1: u8, reserved2: u8, palette_max_size: u8, delta_palette_max_predictor_size: u8, motion_vector_resolution_control_idc: u8, sps_num_palette_predictor_initializers_minus1: u8, conf_win_left_offset: u32, conf_win_right_offset: u32, conf_win_top_offset: u32, conf_win_bottom_offset: u32, pProfileTierLevel: ^VideoH265ProfileTierLevel, pDecPicBufMgr: ^VideoH265DecPicBufMgr, pScalingLists: [^]VideoH265ScalingLists, pShortTermRefPicSet: ^VideoH265ShortTermRefPicSet, pLongTermRefPicsSps: [^]VideoH265LongTermRefPicsSps, pSequenceParameterSetVui: ^VideoH265SequenceParameterSetVui, pPredictorPaletteEntries: [^]VideoH265PredictorPaletteEntries, } VideoH265PpsFlags :: distinct bit_set[VideoH265PpsFlag; u32] VideoH265PpsFlag :: enum u32 { dependent_slice_segments_enabled_flag, output_flag_present_flag, sign_data_hiding_enabled_flag, cabac_init_present_flag, constrained_intra_pred_flag, transform_skip_enabled_flag, cu_qp_delta_enabled_flag, pps_slice_chroma_qp_offsets_present_flag, weighted_pred_flag, weighted_bipred_flag, transquant_bypass_enabled_flag, tiles_enabled_flag, entropy_coding_sync_enabled_flag, uniform_spacing_flag, loop_filter_across_tiles_enabled_flag, pps_loop_filter_across_slices_enabled_flag, deblocking_filter_control_present_flag, deblocking_filter_override_enabled_flag, pps_deblocking_filter_disabled_flag, pps_scaling_list_data_present_flag, lists_modification_present_flag, slice_segment_header_extension_present_flag, pps_extension_present_flag, cross_component_prediction_enabled_flag, chroma_qp_offset_list_enabled_flag, pps_curr_pic_ref_enabled_flag, residual_adaptive_colour_transform_enabled_flag, pps_slice_act_qp_offsets_present_flag, pps_palette_predictor_initializers_present_flag, monochrome_palette_flag, pps_range_extension_flag, } VideoH265PictureParameterSet :: struct { flags: VideoH265PpsFlags, pps_pic_parameter_set_id: u8, pps_seq_parameter_set_id: u8, sps_video_parameter_set_id: u8, num_extra_slice_header_bits: u8, num_ref_idx_l0_default_active_minus1: u8, num_ref_idx_l1_default_active_minus1: u8, init_qp_minus26: i8, diff_cu_qp_delta_depth: u8, pps_cb_qp_offset: i8, pps_cr_qp_offset: i8, pps_beta_offset_div2: i8, pps_tc_offset_div2: i8, log2_parallel_merge_level_minus2: u8, log2_max_transform_skip_block_size_minus2: u8, diff_cu_chroma_qp_offset_depth: u8, chroma_qp_offset_list_len_minus1: u8, cb_qp_offset_list: [VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE]i8, cr_qp_offset_list: [VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE]i8, log2_sao_offset_scale_luma: u8, log2_sao_offset_scale_chroma: u8, pps_act_y_qp_offset_plus5: i8, pps_act_cb_qp_offset_plus5: i8, pps_act_cr_qp_offset_plus3: i8, pps_num_palette_predictor_initializers: u8, luma_bit_depth_entry_minus8: u8, chroma_bit_depth_entry_minus8: u8, num_tile_columns_minus1: u8, num_tile_rows_minus1: u8, reserved1: u8, reserved2: u8, column_width_minus1: [VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE]u16, row_height_minus1: [VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE]u16, reserved3: u32, pScalingLists: [^]VideoH265ScalingLists, pPredictorPaletteEntries: [^]VideoH265PredictorPaletteEntries, } VideoDecodeH265PictureInfoFlags :: distinct bit_set[VideoDecodeH265PictureInfoFlag; u32] VideoDecodeH265PictureInfoFlag :: enum u32 { IrapPicFlag, IdrPicFlag, IsReference, short_term_ref_pic_set_sps_flag, } VideoDecodeH265PictureInfo :: struct { flags: VideoDecodeH265PictureInfoFlags, sps_video_parameter_set_id: u8, pps_seq_parameter_set_id: u8, pps_pic_parameter_set_id: u8, NumDeltaPocsOfRefRpsIdx: u8, PicOrderCntVal: i32, NumBitsForSTRefPicSetInSlice: u16, reserved: u16, RefPicSetStCurrBefore: [VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE]u8, RefPicSetStCurrAfter: [VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE]u8, RefPicSetLtCurr: [VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE]u8, } VideoDecodeH265ReferenceInfoFlags :: distinct bit_set[VideoDecodeH265ReferenceInfoFlag; u32] VideoDecodeH265ReferenceInfoFlag :: enum u32 { used_for_long_term_reference, unused_for_reference, } VideoDecodeH265ReferenceInfo :: struct { flags: VideoDecodeH265ReferenceInfoFlags, PicOrderCntVal: i32, } VideoEncodeH265WeightTableFlags :: struct { luma_weight_l0_flag: u16, chroma_weight_l0_flag: u16, luma_weight_l1_flag: u16, chroma_weight_l1_flag: u16, } VideoEncodeH265WeightTable :: struct { flags: VideoEncodeH265WeightTableFlags, luma_log2_weight_denom: u8, delta_chroma_log2_weight_denom: i8, delta_luma_weight_l0: [VIDEO_H265_MAX_NUM_LIST_REF]i8, luma_offset_l0: [VIDEO_H265_MAX_NUM_LIST_REF]i8, delta_chroma_weight_l0: [VIDEO_H265_MAX_NUM_LIST_REF][VIDEO_H265_MAX_CHROMA_PLANES]i8, delta_chroma_offset_l0: [VIDEO_H265_MAX_NUM_LIST_REF][VIDEO_H265_MAX_CHROMA_PLANES]i8, delta_luma_weight_l1: [VIDEO_H265_MAX_NUM_LIST_REF]i8, luma_offset_l1: [VIDEO_H265_MAX_NUM_LIST_REF]i8, delta_chroma_weight_l1: [VIDEO_H265_MAX_NUM_LIST_REF][VIDEO_H265_MAX_CHROMA_PLANES]i8, delta_chroma_offset_l1: [VIDEO_H265_MAX_NUM_LIST_REF][VIDEO_H265_MAX_CHROMA_PLANES]i8, } VideoEncodeH265SliceSegmentHeaderFlags :: distinct bit_set[VideoEncodeH265SliceSegmentHeaderFlag; u32] VideoEncodeH265SliceSegmentHeaderFlag :: enum u32 { first_slice_segment_in_pic_flag, dependent_slice_segment_flag, slice_sao_luma_flag, slice_sao_chroma_flag, num_ref_idx_active_override_flag, mvd_l1_zero_flag, cabac_init_flag, cu_chroma_qp_offset_enabled_flag, deblocking_filter_override_flag, slice_deblocking_filter_disabled_flag, collocated_from_l0_flag, slice_loop_filter_across_slices_enabled_flag, } VideoEncodeH265SliceSegmentHeader :: struct { flags: VideoEncodeH265SliceSegmentHeaderFlags, slice_type: VideoH265SliceType, slice_segment_address: u32, collocated_ref_idx: u8, MaxNumMergeCand: u8, slice_cb_qp_offset: i8, slice_cr_qp_offset: i8, slice_beta_offset_div2: i8, slice_tc_offset_div2: i8, slice_act_y_qp_offset: i8, slice_act_cb_qp_offset: i8, slice_act_cr_qp_offset: i8, slice_qp_delta: i8, reserved1: u16, pWeightTable: [^]VideoEncodeH265WeightTable, } VideoEncodeH265ReferenceListsInfoFlags :: distinct bit_set[VideoEncodeH265ReferenceListsInfoFlag; u32] VideoEncodeH265ReferenceListsInfoFlag :: enum u32 { ref_pic_list_modification_flag_l0, ref_pic_list_modification_flag_l1, } VideoEncodeH265ReferenceListsInfo :: struct { flags: VideoEncodeH265ReferenceListsInfoFlags, num_ref_idx_l0_active_minus1: u8, num_ref_idx_l1_active_minus1: u8, RefPicList0: [VIDEO_H265_MAX_NUM_LIST_REF]u8, RefPicList1: [VIDEO_H265_MAX_NUM_LIST_REF]u8, list_entry_l0: [VIDEO_H265_MAX_NUM_LIST_REF]u8, list_entry_l1: [VIDEO_H265_MAX_NUM_LIST_REF]u8, } VideoEncodeH265PictureInfoFlags :: distinct bit_set[VideoEncodeH265PictureInfoFlag; u32] VideoEncodeH265PictureInfoFlag :: enum u32 { is_reference, IrapPicFlag, used_for_long_term_reference, discardable_flag, cross_layer_bla_flag, pic_output_flag, no_output_of_prior_pics_flag, short_term_ref_pic_set_sps_flag, slice_temporal_mvp_enabled_flag, } VideoEncodeH265LongTermRefPics :: struct { num_long_term_sps: u8, num_long_term_pics: u8, lt_idx_sps: [VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS]u8, poc_lsb_lt: [VIDEO_H265_MAX_LONG_TERM_PICS]u8, used_by_curr_pic_lt_flag: u16, delta_poc_msb_present_flag: [VIDEO_H265_MAX_DELTA_POC]u8, delta_poc_msb_cycle_lt: [VIDEO_H265_MAX_DELTA_POC]u8, } VideoEncodeH265PictureInfo :: struct { flags: VideoEncodeH265PictureInfoFlags, pic_type: VideoH265PictureType, sps_video_parameter_set_id: u8, pps_seq_parameter_set_id: u8, pps_pic_parameter_set_id: u8, short_term_ref_pic_set_idx: u8, PicOrderCntVal: i32, TemporalId: u8, reserved1: [7]u8, pRefLists: [^]VideoEncodeH265ReferenceListsInfo, pShortTermRefPicSet: ^VideoH265ShortTermRefPicSet, pLongTermRefPics: [^]VideoEncodeH265LongTermRefPics, } VideoEncodeH265ReferenceInfoFlags :: distinct bit_set[VideoEncodeH265ReferenceInfoFlag; u32] VideoEncodeH265ReferenceInfoFlag :: enum u32 { used_for_long_term_reference, unused_for_reference, } VideoEncodeH265ReferenceInfo :: struct { flags: VideoEncodeH265ReferenceInfoFlags, pic_type: VideoH265PictureType, PicOrderCntVal: i32, TemporalId: u8, } // Opaque structs wl_surface :: struct {} // Opaque struct defined by Wayland wl_display :: struct {} // Opaque struct defined by Wayland xcb_connection_t :: struct {} // Opaque struct defined by xcb IOSurfaceRef :: struct {} // Opaque struct defined by Apple’s CoreGraphics framework // Aliases PhysicalDeviceVariablePointerFeatures :: PhysicalDeviceVariablePointersFeatures PhysicalDeviceShaderDrawParameterFeatures :: PhysicalDeviceShaderDrawParametersFeatures RenderingFlagsKHR :: RenderingFlags RenderingFlagKHR :: RenderingFlag RenderingInfoKHR :: RenderingInfo RenderingAttachmentInfoKHR :: RenderingAttachmentInfo PipelineRenderingCreateInfoKHR :: PipelineRenderingCreateInfo PhysicalDeviceDynamicRenderingFeaturesKHR :: PhysicalDeviceDynamicRenderingFeatures CommandBufferInheritanceRenderingInfoKHR :: CommandBufferInheritanceRenderingInfo RenderPassMultiviewCreateInfoKHR :: RenderPassMultiviewCreateInfo PhysicalDeviceMultiviewFeaturesKHR :: PhysicalDeviceMultiviewFeatures PhysicalDeviceMultiviewPropertiesKHR :: PhysicalDeviceMultiviewProperties PhysicalDeviceFeatures2KHR :: PhysicalDeviceFeatures2 PhysicalDeviceProperties2KHR :: PhysicalDeviceProperties2 FormatProperties2KHR :: FormatProperties2 ImageFormatProperties2KHR :: ImageFormatProperties2 PhysicalDeviceImageFormatInfo2KHR :: PhysicalDeviceImageFormatInfo2 QueueFamilyProperties2KHR :: QueueFamilyProperties2 PhysicalDeviceMemoryProperties2KHR :: PhysicalDeviceMemoryProperties2 SparseImageFormatProperties2KHR :: SparseImageFormatProperties2 PhysicalDeviceSparseImageFormatInfo2KHR :: PhysicalDeviceSparseImageFormatInfo2 PeerMemoryFeatureFlagsKHR :: PeerMemoryFeatureFlags PeerMemoryFeatureFlagKHR :: PeerMemoryFeatureFlag MemoryAllocateFlagsKHR :: MemoryAllocateFlags MemoryAllocateFlagKHR :: MemoryAllocateFlag MemoryAllocateFlagsInfoKHR :: MemoryAllocateFlagsInfo DeviceGroupRenderPassBeginInfoKHR :: DeviceGroupRenderPassBeginInfo DeviceGroupCommandBufferBeginInfoKHR :: DeviceGroupCommandBufferBeginInfo DeviceGroupSubmitInfoKHR :: DeviceGroupSubmitInfo DeviceGroupBindSparseInfoKHR :: DeviceGroupBindSparseInfo BindBufferMemoryDeviceGroupInfoKHR :: BindBufferMemoryDeviceGroupInfo BindImageMemoryDeviceGroupInfoKHR :: BindImageMemoryDeviceGroupInfo CommandPoolTrimFlagsKHR :: CommandPoolTrimFlags PhysicalDeviceGroupPropertiesKHR :: PhysicalDeviceGroupProperties DeviceGroupDeviceCreateInfoKHR :: DeviceGroupDeviceCreateInfo ExternalMemoryHandleTypeFlagsKHR :: ExternalMemoryHandleTypeFlags ExternalMemoryHandleTypeFlagKHR :: ExternalMemoryHandleTypeFlag ExternalMemoryFeatureFlagsKHR :: ExternalMemoryFeatureFlags ExternalMemoryFeatureFlagKHR :: ExternalMemoryFeatureFlag ExternalMemoryPropertiesKHR :: ExternalMemoryProperties PhysicalDeviceExternalImageFormatInfoKHR :: PhysicalDeviceExternalImageFormatInfo ExternalImageFormatPropertiesKHR :: ExternalImageFormatProperties PhysicalDeviceExternalBufferInfoKHR :: PhysicalDeviceExternalBufferInfo ExternalBufferPropertiesKHR :: ExternalBufferProperties PhysicalDeviceIDPropertiesKHR :: PhysicalDeviceIDProperties ExternalMemoryImageCreateInfoKHR :: ExternalMemoryImageCreateInfo ExternalMemoryBufferCreateInfoKHR :: ExternalMemoryBufferCreateInfo ExportMemoryAllocateInfoKHR :: ExportMemoryAllocateInfo ExternalSemaphoreHandleTypeFlagsKHR :: ExternalSemaphoreHandleTypeFlags ExternalSemaphoreHandleTypeFlagKHR :: ExternalSemaphoreHandleTypeFlag ExternalSemaphoreFeatureFlagsKHR :: ExternalSemaphoreFeatureFlags ExternalSemaphoreFeatureFlagKHR :: ExternalSemaphoreFeatureFlag PhysicalDeviceExternalSemaphoreInfoKHR :: PhysicalDeviceExternalSemaphoreInfo ExternalSemaphorePropertiesKHR :: ExternalSemaphoreProperties SemaphoreImportFlagsKHR :: SemaphoreImportFlags SemaphoreImportFlagKHR :: SemaphoreImportFlag ExportSemaphoreCreateInfoKHR :: ExportSemaphoreCreateInfo PhysicalDevicePushDescriptorPropertiesKHR :: PhysicalDevicePushDescriptorProperties PhysicalDeviceShaderFloat16Int8FeaturesKHR :: PhysicalDeviceShaderFloat16Int8Features PhysicalDeviceFloat16Int8FeaturesKHR :: PhysicalDeviceShaderFloat16Int8Features PhysicalDevice16BitStorageFeaturesKHR :: PhysicalDevice16BitStorageFeatures DescriptorUpdateTemplateKHR :: DescriptorUpdateTemplate DescriptorUpdateTemplateTypeKHR :: DescriptorUpdateTemplateType DescriptorUpdateTemplateCreateFlagsKHR :: DescriptorUpdateTemplateCreateFlags DescriptorUpdateTemplateEntryKHR :: DescriptorUpdateTemplateEntry DescriptorUpdateTemplateCreateInfoKHR :: DescriptorUpdateTemplateCreateInfo PhysicalDeviceImagelessFramebufferFeaturesKHR :: PhysicalDeviceImagelessFramebufferFeatures FramebufferAttachmentsCreateInfoKHR :: FramebufferAttachmentsCreateInfo FramebufferAttachmentImageInfoKHR :: FramebufferAttachmentImageInfo RenderPassAttachmentBeginInfoKHR :: RenderPassAttachmentBeginInfo RenderPassCreateInfo2KHR :: RenderPassCreateInfo2 AttachmentDescription2KHR :: AttachmentDescription2 AttachmentReference2KHR :: AttachmentReference2 SubpassDescription2KHR :: SubpassDescription2 SubpassDependency2KHR :: SubpassDependency2 SubpassBeginInfoKHR :: SubpassBeginInfo SubpassEndInfoKHR :: SubpassEndInfo ExternalFenceHandleTypeFlagsKHR :: ExternalFenceHandleTypeFlags ExternalFenceHandleTypeFlagKHR :: ExternalFenceHandleTypeFlag ExternalFenceFeatureFlagsKHR :: ExternalFenceFeatureFlags ExternalFenceFeatureFlagKHR :: ExternalFenceFeatureFlag PhysicalDeviceExternalFenceInfoKHR :: PhysicalDeviceExternalFenceInfo ExternalFencePropertiesKHR :: ExternalFenceProperties FenceImportFlagsKHR :: FenceImportFlags FenceImportFlagKHR :: FenceImportFlag ExportFenceCreateInfoKHR :: ExportFenceCreateInfo PointClippingBehaviorKHR :: PointClippingBehavior TessellationDomainOriginKHR :: TessellationDomainOrigin PhysicalDevicePointClippingPropertiesKHR :: PhysicalDevicePointClippingProperties RenderPassInputAttachmentAspectCreateInfoKHR :: RenderPassInputAttachmentAspectCreateInfo InputAttachmentAspectReferenceKHR :: InputAttachmentAspectReference ImageViewUsageCreateInfoKHR :: ImageViewUsageCreateInfo PipelineTessellationDomainOriginStateCreateInfoKHR :: PipelineTessellationDomainOriginStateCreateInfo PhysicalDeviceVariablePointerFeaturesKHR :: PhysicalDeviceVariablePointersFeatures PhysicalDeviceVariablePointersFeaturesKHR :: PhysicalDeviceVariablePointersFeatures MemoryDedicatedRequirementsKHR :: MemoryDedicatedRequirements MemoryDedicatedAllocateInfoKHR :: MemoryDedicatedAllocateInfo BufferMemoryRequirementsInfo2KHR :: BufferMemoryRequirementsInfo2 ImageMemoryRequirementsInfo2KHR :: ImageMemoryRequirementsInfo2 ImageSparseMemoryRequirementsInfo2KHR :: ImageSparseMemoryRequirementsInfo2 MemoryRequirements2KHR :: MemoryRequirements2 SparseImageMemoryRequirements2KHR :: SparseImageMemoryRequirements2 ImageFormatListCreateInfoKHR :: ImageFormatListCreateInfo SamplerYcbcrConversionKHR :: SamplerYcbcrConversion SamplerYcbcrModelConversionKHR :: SamplerYcbcrModelConversion SamplerYcbcrRangeKHR :: SamplerYcbcrRange ChromaLocationKHR :: ChromaLocation SamplerYcbcrConversionCreateInfoKHR :: SamplerYcbcrConversionCreateInfo SamplerYcbcrConversionInfoKHR :: SamplerYcbcrConversionInfo BindImagePlaneMemoryInfoKHR :: BindImagePlaneMemoryInfo ImagePlaneMemoryRequirementsInfoKHR :: ImagePlaneMemoryRequirementsInfo PhysicalDeviceSamplerYcbcrConversionFeaturesKHR :: PhysicalDeviceSamplerYcbcrConversionFeatures SamplerYcbcrConversionImageFormatPropertiesKHR :: SamplerYcbcrConversionImageFormatProperties BindBufferMemoryInfoKHR :: BindBufferMemoryInfo BindImageMemoryInfoKHR :: BindImageMemoryInfo PhysicalDeviceMaintenance3PropertiesKHR :: PhysicalDeviceMaintenance3Properties DescriptorSetLayoutSupportKHR :: DescriptorSetLayoutSupport PhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR :: PhysicalDeviceShaderSubgroupExtendedTypesFeatures PhysicalDevice8BitStorageFeaturesKHR :: PhysicalDevice8BitStorageFeatures PhysicalDeviceShaderAtomicInt64FeaturesKHR :: PhysicalDeviceShaderAtomicInt64Features QueueGlobalPriorityKHR :: QueueGlobalPriority DeviceQueueGlobalPriorityCreateInfoKHR :: DeviceQueueGlobalPriorityCreateInfo PhysicalDeviceGlobalPriorityQueryFeaturesKHR :: PhysicalDeviceGlobalPriorityQueryFeatures QueueFamilyGlobalPriorityPropertiesKHR :: QueueFamilyGlobalPriorityProperties DriverIdKHR :: DriverId ConformanceVersionKHR :: ConformanceVersion PhysicalDeviceDriverPropertiesKHR :: PhysicalDeviceDriverProperties ShaderFloatControlsIndependenceKHR :: ShaderFloatControlsIndependence PhysicalDeviceFloatControlsPropertiesKHR :: PhysicalDeviceFloatControlsProperties ResolveModeFlagKHR :: ResolveModeFlag ResolveModeFlagsKHR :: ResolveModeFlags SubpassDescriptionDepthStencilResolveKHR :: SubpassDescriptionDepthStencilResolve PhysicalDeviceDepthStencilResolvePropertiesKHR :: PhysicalDeviceDepthStencilResolveProperties SemaphoreTypeKHR :: SemaphoreType SemaphoreWaitFlagKHR :: SemaphoreWaitFlag SemaphoreWaitFlagsKHR :: SemaphoreWaitFlags PhysicalDeviceTimelineSemaphoreFeaturesKHR :: PhysicalDeviceTimelineSemaphoreFeatures PhysicalDeviceTimelineSemaphorePropertiesKHR :: PhysicalDeviceTimelineSemaphoreProperties SemaphoreTypeCreateInfoKHR :: SemaphoreTypeCreateInfo TimelineSemaphoreSubmitInfoKHR :: TimelineSemaphoreSubmitInfo SemaphoreWaitInfoKHR :: SemaphoreWaitInfo SemaphoreSignalInfoKHR :: SemaphoreSignalInfo PhysicalDeviceVulkanMemoryModelFeaturesKHR :: PhysicalDeviceVulkanMemoryModelFeatures PhysicalDeviceShaderTerminateInvocationFeaturesKHR :: PhysicalDeviceShaderTerminateInvocationFeatures PhysicalDeviceDynamicRenderingLocalReadFeaturesKHR :: PhysicalDeviceDynamicRenderingLocalReadFeatures RenderingAttachmentLocationInfoKHR :: RenderingAttachmentLocationInfo RenderingInputAttachmentIndexInfoKHR :: RenderingInputAttachmentIndexInfo PhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR :: PhysicalDeviceSeparateDepthStencilLayoutsFeatures AttachmentReferenceStencilLayoutKHR :: AttachmentReferenceStencilLayout AttachmentDescriptionStencilLayoutKHR :: AttachmentDescriptionStencilLayout PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR :: PhysicalDeviceUniformBufferStandardLayoutFeatures PhysicalDeviceBufferDeviceAddressFeaturesKHR :: PhysicalDeviceBufferDeviceAddressFeatures BufferDeviceAddressInfoKHR :: BufferDeviceAddressInfo BufferOpaqueCaptureAddressCreateInfoKHR :: BufferOpaqueCaptureAddressCreateInfo MemoryOpaqueCaptureAddressAllocateInfoKHR :: MemoryOpaqueCaptureAddressAllocateInfo DeviceMemoryOpaqueCaptureAddressInfoKHR :: DeviceMemoryOpaqueCaptureAddressInfo MemoryUnmapFlagKHR :: MemoryUnmapFlag MemoryUnmapFlagsKHR :: MemoryUnmapFlags MemoryMapInfoKHR :: MemoryMapInfo MemoryUnmapInfoKHR :: MemoryUnmapInfo PhysicalDeviceShaderIntegerDotProductFeaturesKHR :: PhysicalDeviceShaderIntegerDotProductFeatures PhysicalDeviceShaderIntegerDotProductPropertiesKHR :: PhysicalDeviceShaderIntegerDotProductProperties PipelineStageFlags2KHR :: PipelineStageFlags2 PipelineStageFlag2KHR :: PipelineStageFlag2 AccessFlags2KHR :: AccessFlags2 AccessFlag2KHR :: AccessFlag2 SubmitFlagKHR :: SubmitFlag SubmitFlagsKHR :: SubmitFlags MemoryBarrier2KHR :: MemoryBarrier2 BufferMemoryBarrier2KHR :: BufferMemoryBarrier2 ImageMemoryBarrier2KHR :: ImageMemoryBarrier2 DependencyInfoKHR :: DependencyInfo SubmitInfo2KHR :: SubmitInfo2 SemaphoreSubmitInfoKHR :: SemaphoreSubmitInfo CommandBufferSubmitInfoKHR :: CommandBufferSubmitInfo PhysicalDeviceSynchronization2FeaturesKHR :: PhysicalDeviceSynchronization2Features PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR :: PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures CopyBufferInfo2KHR :: CopyBufferInfo2 CopyImageInfo2KHR :: CopyImageInfo2 CopyBufferToImageInfo2KHR :: CopyBufferToImageInfo2 CopyImageToBufferInfo2KHR :: CopyImageToBufferInfo2 BlitImageInfo2KHR :: BlitImageInfo2 ResolveImageInfo2KHR :: ResolveImageInfo2 BufferCopy2KHR :: BufferCopy2 ImageCopy2KHR :: ImageCopy2 ImageBlit2KHR :: ImageBlit2 BufferImageCopy2KHR :: BufferImageCopy2 ImageResolve2KHR :: ImageResolve2 FormatFeatureFlags2KHR :: FormatFeatureFlags2 FormatFeatureFlag2KHR :: FormatFeatureFlag2 FormatProperties3KHR :: FormatProperties3 PhysicalDeviceMaintenance4FeaturesKHR :: PhysicalDeviceMaintenance4Features PhysicalDeviceMaintenance4PropertiesKHR :: PhysicalDeviceMaintenance4Properties DeviceBufferMemoryRequirementsKHR :: DeviceBufferMemoryRequirements DeviceImageMemoryRequirementsKHR :: DeviceImageMemoryRequirements PhysicalDeviceShaderSubgroupRotateFeaturesKHR :: PhysicalDeviceShaderSubgroupRotateFeatures PipelineCreateFlags2KHR :: PipelineCreateFlags2 PipelineCreateFlag2KHR :: PipelineCreateFlag2 BufferUsageFlags2KHR :: BufferUsageFlags2 BufferUsageFlag2KHR :: BufferUsageFlag2 PhysicalDeviceMaintenance5FeaturesKHR :: PhysicalDeviceMaintenance5Features PhysicalDeviceMaintenance5PropertiesKHR :: PhysicalDeviceMaintenance5Properties RenderingAreaInfoKHR :: RenderingAreaInfo DeviceImageSubresourceInfoKHR :: DeviceImageSubresourceInfo ImageSubresource2KHR :: ImageSubresource2 SubresourceLayout2KHR :: SubresourceLayout2 PipelineCreateFlags2CreateInfoKHR :: PipelineCreateFlags2CreateInfo BufferUsageFlags2CreateInfoKHR :: BufferUsageFlags2CreateInfo PhysicalDeviceVertexAttributeDivisorPropertiesKHR :: PhysicalDeviceVertexAttributeDivisorProperties VertexInputBindingDivisorDescriptionKHR :: VertexInputBindingDivisorDescription PipelineVertexInputDivisorStateCreateInfoKHR :: PipelineVertexInputDivisorStateCreateInfo PhysicalDeviceVertexAttributeDivisorFeaturesKHR :: PhysicalDeviceVertexAttributeDivisorFeatures PhysicalDeviceShaderFloatControls2FeaturesKHR :: PhysicalDeviceShaderFloatControls2Features PhysicalDeviceIndexTypeUint8FeaturesKHR :: PhysicalDeviceIndexTypeUint8Features LineRasterizationModeKHR :: LineRasterizationMode PhysicalDeviceLineRasterizationFeaturesKHR :: PhysicalDeviceLineRasterizationFeatures PhysicalDeviceLineRasterizationPropertiesKHR :: PhysicalDeviceLineRasterizationProperties PipelineRasterizationLineStateCreateInfoKHR :: PipelineRasterizationLineStateCreateInfo PhysicalDeviceShaderExpectAssumeFeaturesKHR :: PhysicalDeviceShaderExpectAssumeFeatures PhysicalDeviceMaintenance6FeaturesKHR :: PhysicalDeviceMaintenance6Features PhysicalDeviceMaintenance6PropertiesKHR :: PhysicalDeviceMaintenance6Properties BindMemoryStatusKHR :: BindMemoryStatus BindDescriptorSetsInfoKHR :: BindDescriptorSetsInfo PushConstantsInfoKHR :: PushConstantsInfo PushDescriptorSetInfoKHR :: PushDescriptorSetInfo PushDescriptorSetWithTemplateInfoKHR :: PushDescriptorSetWithTemplateInfo AccessFlags3KHR :: Flags64 AccessFlag3KHR :: Flags64 PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT :: PhysicalDeviceTextureCompressionASTCHDRFeatures PipelineRobustnessBufferBehaviorEXT :: PipelineRobustnessBufferBehavior PipelineRobustnessImageBehaviorEXT :: PipelineRobustnessImageBehavior PhysicalDevicePipelineRobustnessFeaturesEXT :: PhysicalDevicePipelineRobustnessFeatures PhysicalDevicePipelineRobustnessPropertiesEXT :: PhysicalDevicePipelineRobustnessProperties PipelineRobustnessCreateInfoEXT :: PipelineRobustnessCreateInfo SamplerReductionModeEXT :: SamplerReductionMode SamplerReductionModeCreateInfoEXT :: SamplerReductionModeCreateInfo PhysicalDeviceSamplerFilterMinmaxPropertiesEXT :: PhysicalDeviceSamplerFilterMinmaxProperties PhysicalDeviceInlineUniformBlockFeaturesEXT :: PhysicalDeviceInlineUniformBlockFeatures PhysicalDeviceInlineUniformBlockPropertiesEXT :: PhysicalDeviceInlineUniformBlockProperties WriteDescriptorSetInlineUniformBlockEXT :: WriteDescriptorSetInlineUniformBlock DescriptorPoolInlineUniformBlockCreateInfoEXT :: DescriptorPoolInlineUniformBlockCreateInfo AttachmentSampleCountInfoNV :: AttachmentSampleCountInfoAMD DescriptorBindingFlagEXT :: DescriptorBindingFlag DescriptorBindingFlagsEXT :: DescriptorBindingFlags DescriptorSetLayoutBindingFlagsCreateInfoEXT :: DescriptorSetLayoutBindingFlagsCreateInfo PhysicalDeviceDescriptorIndexingFeaturesEXT :: PhysicalDeviceDescriptorIndexingFeatures PhysicalDeviceDescriptorIndexingPropertiesEXT :: PhysicalDeviceDescriptorIndexingProperties DescriptorSetVariableDescriptorCountAllocateInfoEXT :: DescriptorSetVariableDescriptorCountAllocateInfo DescriptorSetVariableDescriptorCountLayoutSupportEXT :: DescriptorSetVariableDescriptorCountLayoutSupport RayTracingShaderGroupTypeNV :: RayTracingShaderGroupTypeKHR GeometryTypeNV :: GeometryTypeKHR AccelerationStructureTypeNV :: AccelerationStructureTypeKHR CopyAccelerationStructureModeNV :: CopyAccelerationStructureModeKHR GeometryFlagsNV :: GeometryFlagsKHR GeometryFlagNV :: GeometryFlagKHR GeometryInstanceFlagsNV :: GeometryInstanceFlagsKHR GeometryInstanceFlagNV :: GeometryInstanceFlagKHR BuildAccelerationStructureFlagsNV :: BuildAccelerationStructureFlagsKHR BuildAccelerationStructureFlagNV :: BuildAccelerationStructureFlagKHR TransformMatrixNV :: TransformMatrixKHR AabbPositionsNV :: AabbPositionsKHR AccelerationStructureInstanceNV :: AccelerationStructureInstanceKHR QueueGlobalPriorityEXT :: QueueGlobalPriority DeviceQueueGlobalPriorityCreateInfoEXT :: DeviceQueueGlobalPriorityCreateInfo TimeDomainEXT :: TimeDomainKHR CalibratedTimestampInfoEXT :: CalibratedTimestampInfoKHR VertexInputBindingDivisorDescriptionEXT :: VertexInputBindingDivisorDescription PipelineVertexInputDivisorStateCreateInfoEXT :: PipelineVertexInputDivisorStateCreateInfo PhysicalDeviceVertexAttributeDivisorFeaturesEXT :: PhysicalDeviceVertexAttributeDivisorFeatures PipelineCreationFeedbackFlagEXT :: PipelineCreationFeedbackFlag PipelineCreationFeedbackFlagsEXT :: PipelineCreationFeedbackFlags PipelineCreationFeedbackCreateInfoEXT :: PipelineCreationFeedbackCreateInfo PipelineCreationFeedbackEXT :: PipelineCreationFeedback PhysicalDeviceComputeShaderDerivativesFeaturesNV :: PhysicalDeviceComputeShaderDerivativesFeaturesKHR PhysicalDeviceFragmentShaderBarycentricFeaturesNV :: PhysicalDeviceFragmentShaderBarycentricFeaturesKHR QueryPoolCreateInfoINTEL :: QueryPoolPerformanceQueryCreateInfoINTEL PhysicalDeviceScalarBlockLayoutFeaturesEXT :: PhysicalDeviceScalarBlockLayoutFeatures PhysicalDeviceSubgroupSizeControlFeaturesEXT :: PhysicalDeviceSubgroupSizeControlFeatures PhysicalDeviceSubgroupSizeControlPropertiesEXT :: PhysicalDeviceSubgroupSizeControlProperties PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT :: PipelineShaderStageRequiredSubgroupSizeCreateInfo PhysicalDeviceBufferAddressFeaturesEXT :: PhysicalDeviceBufferDeviceAddressFeaturesEXT BufferDeviceAddressInfoEXT :: BufferDeviceAddressInfo ToolPurposeFlagEXT :: ToolPurposeFlag ToolPurposeFlagsEXT :: ToolPurposeFlags PhysicalDeviceToolPropertiesEXT :: PhysicalDeviceToolProperties ImageStencilUsageCreateInfoEXT :: ImageStencilUsageCreateInfo ComponentTypeNV :: ComponentTypeKHR ScopeNV :: ScopeKHR LineRasterizationModeEXT :: LineRasterizationMode PhysicalDeviceLineRasterizationFeaturesEXT :: PhysicalDeviceLineRasterizationFeatures PhysicalDeviceLineRasterizationPropertiesEXT :: PhysicalDeviceLineRasterizationProperties PipelineRasterizationLineStateCreateInfoEXT :: PipelineRasterizationLineStateCreateInfo PhysicalDeviceHostQueryResetFeaturesEXT :: PhysicalDeviceHostQueryResetFeatures PhysicalDeviceIndexTypeUint8FeaturesEXT :: PhysicalDeviceIndexTypeUint8Features HostImageCopyFlagEXT :: HostImageCopyFlag HostImageCopyFlagsEXT :: HostImageCopyFlags PhysicalDeviceHostImageCopyFeaturesEXT :: PhysicalDeviceHostImageCopyFeatures PhysicalDeviceHostImageCopyPropertiesEXT :: PhysicalDeviceHostImageCopyProperties MemoryToImageCopyEXT :: MemoryToImageCopy ImageToMemoryCopyEXT :: ImageToMemoryCopy CopyMemoryToImageInfoEXT :: CopyMemoryToImageInfo CopyImageToMemoryInfoEXT :: CopyImageToMemoryInfo CopyImageToImageInfoEXT :: CopyImageToImageInfo HostImageLayoutTransitionInfoEXT :: HostImageLayoutTransitionInfo SubresourceHostMemcpySizeEXT :: SubresourceHostMemcpySize HostImageCopyDevicePerformanceQueryEXT :: HostImageCopyDevicePerformanceQuery SubresourceLayout2EXT :: SubresourceLayout2 ImageSubresource2EXT :: ImageSubresource2 PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT :: PhysicalDeviceShaderDemoteToHelperInvocationFeatures PhysicalDeviceTexelBufferAlignmentPropertiesEXT :: PhysicalDeviceTexelBufferAlignmentProperties PrivateDataSlotEXT :: PrivateDataSlot PrivateDataSlotCreateFlagsEXT :: PrivateDataSlotCreateFlags PhysicalDevicePrivateDataFeaturesEXT :: PhysicalDevicePrivateDataFeatures DevicePrivateDataCreateInfoEXT :: DevicePrivateDataCreateInfo PrivateDataSlotCreateInfoEXT :: PrivateDataSlotCreateInfo PhysicalDevicePipelineCreationCacheControlFeaturesEXT :: PhysicalDevicePipelineCreationCacheControlFeatures PhysicalDeviceImageRobustnessFeaturesEXT :: PhysicalDeviceImageRobustnessFeatures PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM :: PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT PhysicalDeviceMutableDescriptorTypeFeaturesVALVE :: PhysicalDeviceMutableDescriptorTypeFeaturesEXT MutableDescriptorTypeListVALVE :: MutableDescriptorTypeListEXT MutableDescriptorTypeCreateInfoVALVE :: MutableDescriptorTypeCreateInfoEXT PipelineInfoEXT :: PipelineInfoKHR PhysicalDeviceGlobalPriorityQueryFeaturesEXT :: PhysicalDeviceGlobalPriorityQueryFeatures QueueFamilyGlobalPriorityPropertiesEXT :: QueueFamilyGlobalPriorityProperties PhysicalDeviceSchedulingControlsFlagsARM :: Flags64 PhysicalDeviceSchedulingControlsFlagARM :: Flags64 PhysicalDeviceDepthClampZeroOneFeaturesEXT :: PhysicalDeviceDepthClampZeroOneFeaturesKHR MemoryDecompressionMethodFlagNV :: Flags64 MemoryDecompressionMethodFlagsNV :: Flags64 PhysicalDevicePipelineProtectedAccessFeaturesEXT :: PhysicalDevicePipelineProtectedAccessFeatures ShaderRequiredSubgroupSizeCreateInfoEXT :: PipelineShaderStageRequiredSubgroupSizeCreateInfo