# HG changeset patch # User Sam # Date 1683569511 -25200 # Node ID 7f921d7d0a2b0617e5ebfc9646589ddbb120926a # Parent 24d18cd8be8a62c345b57f199c9b856a91a1f1b9 did: small refactoring of module structure diff -r 24d18cd8be8a -r 7f921d7d0a2b src/semicongine.nim --- a/src/semicongine.nim Mon May 08 21:45:47 2023 +0700 +++ b/src/semicongine.nim Tue May 09 01:11:51 2023 +0700 @@ -1,13 +1,10 @@ -import semicongine/buildconfig -export buildconfig +import semicongine/core +export core import semicongine/audio -import semicongine/color import semicongine/engine import semicongine/entity import semicongine/events -import semicongine/gpu_data -import semicongine/math import semicongine/mesh import semicongine/renderer import semicongine/resources @@ -16,12 +13,9 @@ import semicongine/vulkan export audio -export color export engine export entity export events -export gpu_data -export math export mesh export renderer export resources diff -r 24d18cd8be8a -r 7f921d7d0a2b src/semicongine/audio.nim --- a/src/semicongine/audio.nim Mon May 08 21:45:47 2023 +0700 +++ b/src/semicongine/audio.nim Tue May 09 01:11:51 2023 +0700 @@ -7,7 +7,7 @@ when defined(linux): import std/posix -import ./audiotypes +import ./core import ./platform/audio export audiotypes diff -r 24d18cd8be8a -r 7f921d7d0a2b src/semicongine/audiotypes.nim --- a/src/semicongine/audiotypes.nim Mon May 08 21:45:47 2023 +0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +0,0 @@ -import std/math - -# in order to generate sound files that are directly usable with the engine, -# convert an audio file to a raw PCM signed 16 bit little endian file with 2 channels and 48kHz: -# -# ffmpeg -i -f s16le -ac 2 -ar 48000 -acodec pcm_s16le - -type - Level* = 0'f .. 1'f - Sample* = (int16, int16) - SoundData* = seq[Sample] - Sound* = ref SoundData - -proc sinewave(f: float): proc(x: float): float = - proc ret(x: float): float = - sin(x * 2 * Pi * f) - result = ret - -proc sineSoundData*(f: float, len: float, rate: int): SoundData = - let dt = 1'f / float(rate) - var sine = sinewave(f) - for i in 0 ..< int(float(rate) * len): - let t = dt * float(i) - let value = int16(sine(t) * float(high(int16))) - result.add (value, value) - -proc newSound*(data: SoundData): Sound = - result = new Sound - result[] = data diff -r 24d18cd8be8a -r 7f921d7d0a2b src/semicongine/buildconfig.nim --- a/src/semicongine/buildconfig.nim Mon May 08 21:45:47 2023 +0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,49 +0,0 @@ -import std/compilesettings -import std/strutils -import std/logging -import std/os - -const ENGINENAME = "semicongine" - -# checks required build options: -static: - assert querySetting(gc) == "orc", ENGINENAME & " requires --mm=orc" - assert compileOption("threads"), ENGINENAME & " requires --threads=on" - - if defined(release): - assert compileOption("app", "gui"), ENGINENAME & " requires --app=gui for release builds" - - if defined(linux): - assert defined(VK_USE_PLATFORM_XLIB_KHR), ENGINENAME & " requires --d:VK_USE_PLATFORM_XLIB_KHR for linux builds" - elif defined(windows): - assert defined(VK_USE_PLATFORM_XLIB_KHR), ENGINENAME & " requires --d:VK_USE_PLATFORM_WIN32_KHR for windows builds" - else: - assert false, "trying to build on unsupported platform" - -# build configuration -# ===================== - -# compile-time defines, usefull for build-dependent settings -# can be overriden with compiler flags, e.g. -d:Foo=42 -d:Bar=false -# pramas: {.intdefine.} {.strdefine.} {.booldefine.} - -# root of where settings files will be searched -# must be relative (to the directory of the binary) -const DEBUG* = not defined(release) -const CONFIGROOT* {.strdefine.}: string = "." -assert not isAbsolute(CONFIGROOT) - -const CONFIGEXTENSION* {.strdefine.}: string = "ini" - -# by default enable hot-reload of runtime-configuration only in debug builds -const CONFIGHOTRELOAD* {.booldefine.}: bool = DEBUG - -# milliseconds to wait between checks for settings hotreload -const CONFIGHOTRELOADINTERVAL* {.intdefine.}: int = 1000 - -# log level -const LOGLEVEL {.strdefine.}: string = (when DEBUG: "lvlAll" else: "lvlWarn") -const ENGINE_LOGLEVEL* = parseEnum[Level](LOGLEVEL) - -const MODROOT* {.strdefine.}: string = "mods" -const BUNDLETYPE* {.strdefine.}: string = "Dir" # zip, exe diff -r 24d18cd8be8a -r 7f921d7d0a2b src/semicongine/color.nim --- a/src/semicongine/color.nim Mon May 08 21:45:47 2023 +0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,54 +0,0 @@ -import std/parseutils -import std/strformat - -import ./math/vector - -func hexToColor*(value: string): Vec3f = - assert value != "" - var hex = value - if hex[0] == '#': - hex = hex[1 .. ^0] - assert hex.len == 3 or hex.len == 6 - if hex.len == 3: - hex = hex[0] & hex[0] & hex[1] & hex[1] & hex[2] & hex[2] - var r, g, b: uint8 - assert hex.len == 6 - discard parseHex(hex[0 .. 1], r) == 2 - discard parseHex(hex[2 .. 3], g) == 2 - discard parseHex(hex[4 .. 5], b) == 2 - return Vec3f([float32(r), float32(g), float32(b)]) / 255'f - -func colorToHex*(color: Vec3f): string = - &"{int(color.r * 255):02X}{int(color.g * 255):02X}{int(color.b * 255):02X}" - -func colorToHex*(color: Vec4f): string = - &"{int(color.r * 255):02X}{int(color.g * 255):02X}{int(color.b * 255):02X}{int(color.a * 255):02X}" - -func asPixel*(color: Vec3f): array[4, uint8] = - [uint8(color.r * 255), uint8(color.g * 255), uint8(color.b * 255), 255'u8] -func asPixel*(color: Vec4f): array[4, uint8] = - [uint8(color.r * 255), uint8(color.g * 255), uint8(color.b * 255), uint8(color.a * 255)] - -func hexToColorAlpha*(value: string): Vec4f = - assert value != "" - var hex = value - if hex[0] == '#': - hex = hex[1 .. ^0] - # when 3 or 6 -> set alpha to 1.0 - assert hex.len == 3 or hex.len == 6 or hex.len == 4 or hex.len == 8 - if hex.len == 3: - hex = hex & "f" - if hex.len == 4: - hex = hex[0] & hex[0] & hex[1] & hex[1] & hex[2] & hex[2] & hex[3] & hex[3] - if hex.len == 6: - hex = hex & "ff" - assert hex.len == 8 - var r, g, b, a: uint8 - discard parseHex(hex[0 .. 1], r) - discard parseHex(hex[2 .. 3], g) - discard parseHex(hex[4 .. 5], b) - discard parseHex(hex[6 .. 7], a) - return Vec4f([float32(r), float32(g), float32(b), float32(a)]) / 255'f - -func gamma*[T: Vec3f|Vec4f](color: T, gamma: float32): T = - return pow(color, gamma) diff -r 24d18cd8be8a -r 7f921d7d0a2b src/semicongine/core.nim --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/semicongine/core.nim Tue May 09 01:11:51 2023 +0700 @@ -0,0 +1,18 @@ +import std/math +export math + +import ./core/audiotypes +import ./core/vulkanapi +import ./core/buildconfig +import ./core/color +import ./core/gpu_data +import ./core/matrix +import ./core/vector + +export vulkanapi +export audiotypes +export buildconfig +export color +export gpu_data +export matrix +export vector diff -r 24d18cd8be8a -r 7f921d7d0a2b src/semicongine/core/audiotypes.nim --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/semicongine/core/audiotypes.nim Tue May 09 01:11:51 2023 +0700 @@ -0,0 +1,29 @@ +import std/math + +# in order to generate sound files that are directly usable with the engine, +# convert an audio file to a raw PCM signed 16 bit little endian file with 2 channels and 48kHz: +# +# ffmpeg -i -f s16le -ac 2 -ar 48000 -acodec pcm_s16le + +type + Level* = 0'f .. 1'f + Sample* = (int16, int16) + SoundData* = seq[Sample] + Sound* = ref SoundData + +proc sinewave(f: float): proc(x: float): float = + proc ret(x: float): float = + sin(x * 2 * Pi * f) + result = ret + +proc sineSoundData*(f: float, len: float, rate: int): SoundData = + let dt = 1'f / float(rate) + var sine = sinewave(f) + for i in 0 ..< int(float(rate) * len): + let t = dt * float(i) + let value = int16(sine(t) * float(high(int16))) + result.add (value, value) + +proc newSound*(data: SoundData): Sound = + result = new Sound + result[] = data diff -r 24d18cd8be8a -r 7f921d7d0a2b src/semicongine/core/buildconfig.nim --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/semicongine/core/buildconfig.nim Tue May 09 01:11:51 2023 +0700 @@ -0,0 +1,49 @@ +import std/compilesettings +import std/strutils +import std/logging +import std/os + +const ENGINENAME = "semicongine" + +# checks required build options: +static: + assert querySetting(gc) == "orc", ENGINENAME & " requires --mm=orc" + assert compileOption("threads"), ENGINENAME & " requires --threads=on" + + if defined(release): + assert compileOption("app", "gui"), ENGINENAME & " requires --app=gui for release builds" + + if defined(linux): + assert defined(VK_USE_PLATFORM_XLIB_KHR), ENGINENAME & " requires --d:VK_USE_PLATFORM_XLIB_KHR for linux builds" + elif defined(windows): + assert defined(VK_USE_PLATFORM_XLIB_KHR), ENGINENAME & " requires --d:VK_USE_PLATFORM_WIN32_KHR for windows builds" + else: + assert false, "trying to build on unsupported platform" + +# build configuration +# ===================== + +# compile-time defines, usefull for build-dependent settings +# can be overriden with compiler flags, e.g. -d:Foo=42 -d:Bar=false +# pramas: {.intdefine.} {.strdefine.} {.booldefine.} + +# root of where settings files will be searched +# must be relative (to the directory of the binary) +const DEBUG* = not defined(release) +const CONFIGROOT* {.strdefine.}: string = "." +assert not isAbsolute(CONFIGROOT) + +const CONFIGEXTENSION* {.strdefine.}: string = "ini" + +# by default enable hot-reload of runtime-configuration only in debug builds +const CONFIGHOTRELOAD* {.booldefine.}: bool = DEBUG + +# milliseconds to wait between checks for settings hotreload +const CONFIGHOTRELOADINTERVAL* {.intdefine.}: int = 1000 + +# log level +const LOGLEVEL {.strdefine.}: string = (when DEBUG: "lvlAll" else: "lvlWarn") +const ENGINE_LOGLEVEL* = parseEnum[Level](LOGLEVEL) + +const MODROOT* {.strdefine.}: string = "mods" +const BUNDLETYPE* {.strdefine.}: string = "Dir" # zip, exe diff -r 24d18cd8be8a -r 7f921d7d0a2b src/semicongine/core/color.nim --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/semicongine/core/color.nim Tue May 09 01:11:51 2023 +0700 @@ -0,0 +1,54 @@ +import std/parseutils +import std/strformat + +import ./vector + +func hexToColor*(value: string): Vec3f = + assert value != "" + var hex = value + if hex[0] == '#': + hex = hex[1 .. ^0] + assert hex.len == 3 or hex.len == 6 + if hex.len == 3: + hex = hex[0] & hex[0] & hex[1] & hex[1] & hex[2] & hex[2] + var r, g, b: uint8 + assert hex.len == 6 + discard parseHex(hex[0 .. 1], r) == 2 + discard parseHex(hex[2 .. 3], g) == 2 + discard parseHex(hex[4 .. 5], b) == 2 + return Vec3f([float32(r), float32(g), float32(b)]) / 255'f + +func colorToHex*(color: Vec3f): string = + &"{int(color.r * 255):02X}{int(color.g * 255):02X}{int(color.b * 255):02X}" + +func colorToHex*(color: Vec4f): string = + &"{int(color.r * 255):02X}{int(color.g * 255):02X}{int(color.b * 255):02X}{int(color.a * 255):02X}" + +func asPixel*(color: Vec3f): array[4, uint8] = + [uint8(color.r * 255), uint8(color.g * 255), uint8(color.b * 255), 255'u8] +func asPixel*(color: Vec4f): array[4, uint8] = + [uint8(color.r * 255), uint8(color.g * 255), uint8(color.b * 255), uint8(color.a * 255)] + +func hexToColorAlpha*(value: string): Vec4f = + assert value != "" + var hex = value + if hex[0] == '#': + hex = hex[1 .. ^0] + # when 3 or 6 -> set alpha to 1.0 + assert hex.len == 3 or hex.len == 6 or hex.len == 4 or hex.len == 8 + if hex.len == 3: + hex = hex & "f" + if hex.len == 4: + hex = hex[0] & hex[0] & hex[1] & hex[1] & hex[2] & hex[2] & hex[3] & hex[3] + if hex.len == 6: + hex = hex & "ff" + assert hex.len == 8 + var r, g, b, a: uint8 + discard parseHex(hex[0 .. 1], r) + discard parseHex(hex[2 .. 3], g) + discard parseHex(hex[4 .. 5], b) + discard parseHex(hex[6 .. 7], a) + return Vec4f([float32(r), float32(g), float32(b), float32(a)]) / 255'f + +func gamma*[T: Vec3f|Vec4f](color: T, gamma: float32): T = + return pow(color, gamma) diff -r 24d18cd8be8a -r 7f921d7d0a2b src/semicongine/core/gpu_data.nim --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/semicongine/core/gpu_data.nim Tue May 09 01:11:51 2023 +0700 @@ -0,0 +1,884 @@ +import std/typetraits +import std/strformat +import std/tables + +import ./vulkanapi +import ./vector +import ./matrix + +type + Sampler2DType* = object + GPUType* = float32 | float64 | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | TVec2[int32] | TVec2[int64] | TVec3[int32] | TVec3[int64] | TVec4[int32] | TVec4[int64] | TVec2[uint32] | TVec2[uint64] | TVec3[uint32] | TVec3[uint64] | TVec4[uint32] | TVec4[uint64] | TVec2[float32] | TVec2[float64] | TVec3[float32] | TVec3[float64] | TVec4[float32] | TVec4[float64] | TMat2[float32] | TMat2[float64] | TMat23[float32] | TMat23[float64] | TMat32[float32] | TMat32[float64] | TMat3[float32] | TMat3[float64] | TMat34[float32] | TMat34[float64] | TMat43[float32] | TMat43[float64] | TMat4[float32] | TMat4[float64] | Sampler2DType + DataType* = enum + Float32 + Float64 + Int8 + Int16 + Int32 + Int64 + UInt8 + UInt16 + UInt32 + UInt64 + Vec2I32 + Vec2I64 + Vec3I32 + Vec3I64 + Vec4I32 + Vec4I64 + Vec2U32 + Vec2U64 + Vec3U32 + Vec3U64 + Vec4U32 + Vec4U64 + Vec2F32 + Vec2F64 + Vec3F32 + Vec3F64 + Vec4F32 + Vec4F64 + Mat2F32 + Mat2F64 + Mat23F32 + Mat23F64 + Mat32F32 + Mat32F64 + Mat3F32 + Mat3F64 + Mat34F32 + Mat34F64 + Mat43F32 + Mat43F64 + Mat4F32 + Mat4F64 + Sampler2D + DataValue* = object + case thetype*: DataType + of Float32: float32: float32 + of Float64: float64: float64 + of Int8: int8: int8 + of Int16: int16: int16 + of Int32: int32: int32 + of Int64: int64: int64 + of UInt8: uint8: uint8 + of UInt16: uint16: uint16 + of UInt32: uint32: uint32 + of UInt64: uint64: uint64 + of Vec2I32: vec2i32: TVec2[int32] + of Vec2I64: vec2i64: TVec2[int64] + of Vec3I32: vec3i32: TVec3[int32] + of Vec3I64: vec3i64: TVec3[int64] + of Vec4I32: vec4i32: TVec4[int32] + of Vec4I64: vec4i64: TVec4[int64] + of Vec2U32: vec2u32: TVec2[uint32] + of Vec2U64: vec2u64: TVec2[uint64] + of Vec3U32: vec3u32: TVec3[uint32] + of Vec3U64: vec3u64: TVec3[uint64] + of Vec4U32: vec4u32: TVec4[uint32] + of Vec4U64: vec4u64: TVec4[uint64] + of Vec2F32: vec2f32: TVec2[float32] + of Vec2F64: vec2f64: TVec2[float64] + of Vec3F32: vec3f32: TVec3[float32] + of Vec3F64: vec3f64: TVec3[float64] + of Vec4F32: vec4f32: TVec4[float32] + of Vec4F64: vec4f64: TVec4[float64] + of Mat2F32: mat2f32: TMat2[float32] + of Mat2F64: mat2f64: TMat2[float64] + of Mat23F32: mat23f32: TMat23[float32] + of Mat23F64: mat23f64: TMat23[float64] + of Mat32F32: mat32f32: TMat32[float32] + of Mat32F64: mat32f64: TMat32[float64] + of Mat3F32: mat3f32: TMat3[float32] + of Mat3F64: mat3f64: TMat3[float64] + of Mat34F32: mat34f32: TMat34[float32] + of Mat34F64: mat34f64: TMat34[float64] + of Mat43F32: mat43f32: TMat43[float32] + of Mat43F64: mat43f64: TMat43[float64] + of Mat4F32: mat4f32: TMat4[float32] + of Mat4F64: mat4f64: TMat4[float64] + of Sampler2D: discard + DataList* = object + len*: uint32 + case thetype*: DataType + of Float32: float32: seq[float32] + of Float64: float64: seq[float64] + of Int8: int8: seq[int8] + of Int16: int16: seq[int16] + of Int32: int32: seq[int32] + of Int64: int64: seq[int64] + of UInt8: uint8: seq[uint8] + of UInt16: uint16: seq[uint16] + of UInt32: uint32: seq[uint32] + of UInt64: uint64: seq[uint64] + of Vec2I32: vec2i32: seq[TVec2[int32]] + of Vec2I64: vec2i64: seq[TVec2[int64]] + of Vec3I32: vec3i32: seq[TVec3[int32]] + of Vec3I64: vec3i64: seq[TVec3[int64]] + of Vec4I32: vec4i32: seq[TVec4[int32]] + of Vec4I64: vec4i64: seq[TVec4[int64]] + of Vec2U32: vec2u32: seq[TVec2[uint32]] + of Vec2U64: vec2u64: seq[TVec2[uint64]] + of Vec3U32: vec3u32: seq[TVec3[uint32]] + of Vec3U64: vec3u64: seq[TVec3[uint64]] + of Vec4U32: vec4u32: seq[TVec4[uint32]] + of Vec4U64: vec4u64: seq[TVec4[uint64]] + of Vec2F32: vec2f32: seq[TVec2[float32]] + of Vec2F64: vec2f64: seq[TVec2[float64]] + of Vec3F32: vec3f32: seq[TVec3[float32]] + of Vec3F64: vec3f64: seq[TVec3[float64]] + of Vec4F32: vec4f32: seq[TVec4[float32]] + of Vec4F64: vec4f64: seq[TVec4[float64]] + of Mat2F32: mat2f32: seq[TMat2[float32]] + of Mat2F64: mat2f64: seq[TMat2[float64]] + of Mat23F32: mat23f32: seq[TMat23[float32]] + of Mat23F64: mat23f64: seq[TMat23[float64]] + of Mat32F32: mat32f32: seq[TMat32[float32]] + of Mat32F64: mat32f64: seq[TMat32[float64]] + of Mat3F32: mat3f32: seq[TMat3[float32]] + of Mat3F64: mat3f64: seq[TMat3[float64]] + of Mat34F32: mat34f32: seq[TMat34[float32]] + of Mat34F64: mat34f64: seq[TMat34[float64]] + of Mat43F32: mat43f32: seq[TMat43[float32]] + of Mat43F64: mat43f64: seq[TMat43[float64]] + of Mat4F32: mat4f32*: seq[TMat4[float32]] + of Mat4F64: mat4f64: seq[TMat4[float64]] + of Sampler2D: discard + MemoryPerformanceHint* = enum + PreferFastRead, PreferFastWrite + ShaderAttribute* = object + name*: string + thetype*: DataType + arrayCount*: int + perInstance*: bool + memoryPerformanceHint*: MemoryPerformanceHint + +func vertexInputs*(attributes: seq[ShaderAttribute]): seq[ShaderAttribute] = + for attr in attributes: + if attr.perInstance == false: + result.add attr + +func instanceInputs*(attributes: seq[ShaderAttribute]): seq[ShaderAttribute] = + for attr in attributes: + if attr.perInstance == false: + result.add attr + +func numberOfVertexInputAttributeDescriptors*(thetype: DataType): uint32 = + case thetype: + of Mat2F32, Mat2F64, Mat23F32, Mat23F64: 2 + of Mat32F32, Mat32F64, Mat3F32, Mat3F64, Mat34F32, Mat34F64: 3 + of Mat43F32, Mat43F64, Mat4F32, Mat4F64: 4 + else: 1 + +func size*(thetype: DataType): uint32 = + case thetype: + of Float32: 4 + of Float64: 8 + of Int8: 1 + of Int16: 2 + of Int32: 4 + of Int64: 8 + of UInt8: 1 + of UInt16: 2 + of UInt32: 4 + of UInt64: 8 + of Vec2I32: 8 + of Vec2I64: 16 + of Vec3I32: 12 + of Vec3I64: 24 + of Vec4I32: 16 + of Vec4I64: 32 + of Vec2U32: 8 + of Vec2U64: 16 + of Vec3U32: 12 + of Vec3U64: 24 + of Vec4U32: 16 + of Vec4U64: 32 + of Vec2F32: 8 + of Vec2F64: 16 + of Vec3F32: 12 + of Vec3F64: 24 + of Vec4F32: 16 + of Vec4F64: 32 + of Mat2F32: 16 + of Mat2F64: 32 + of Mat23F32: 24 + of Mat23F64: 48 + of Mat32F32: 24 + of Mat32F64: 48 + of Mat3F32: 36 + of Mat3F64: 72 + of Mat34F32: 48 + of Mat34F64: 92 + of Mat43F32: 48 + of Mat43F64: 92 + of Mat4F32: 64 + of Mat4F64: 128 + of Sampler2D: 0 + +func size*(attribute: ShaderAttribute, perDescriptor=false): uint32 = + if perDescriptor: attribute.thetype.size div attribute.thetype.numberOfVertexInputAttributeDescriptors + else: attribute.thetype.size + +func size*(thetype: seq[ShaderAttribute]): uint32 = + for attribute in thetype: + result += attribute.size + +func size*(value: DataValue): uint32 = + value.thetype.size + +func size*(value: DataList): uint32 = + value.thetype.size * value.len + +func getDataType*[T: GPUType|int|uint|float](): DataType = + when T is float32: Float32 + elif T is float64: Float64 + elif T is int8: Int8 + elif T is int16: Int16 + elif T is int32: Int32 + elif T is int64: Int64 + elif T is uint8: UInt8 + elif T is uint16: UInt16 + elif T is uint32: UInt32 + elif T is uint64: UInt64 + elif T is int and sizeof(int) == sizeof(int64): Int64 + elif T is int and sizeof(int) == sizeof(int32): Int32 + elif T is uint and sizeof(uint) == sizeof(uint64): UInt64 + elif T is uint and sizeof(uint) == sizeof(uint32): UInt32 + elif T is float and sizeof(float) == sizeof(float32): Float32 + elif T is float and sizeof(float) == sizeof(float64): Float64 + elif T is TVec2[int32]: Vec2I32 + elif T is TVec2[int64]: Vec2I64 + elif T is TVec3[int32]: Vec3I32 + elif T is TVec3[int64]: Vec3I64 + elif T is TVec4[int32]: Vec4I32 + elif T is TVec4[int64]: Vec4I64 + elif T is TVec2[uint32]: Vec2U32 + elif T is TVec2[uint64]: Vec2U64 + elif T is TVec3[uint32]: Vec3U32 + elif T is TVec3[uint64]: Vec3U64 + elif T is TVec4[uint32]: Vec4U32 + elif T is TVec4[uint64]: Vec4U64 + elif T is TVec2[float32]: Vec2F32 + elif T is TVec2[float64]: Vec2F64 + elif T is TVec3[float32]: Vec3F32 + elif T is TVec3[float64]: Vec3F64 + elif T is TVec4[float32]: Vec4F32 + elif T is TVec4[float64]: Vec4F64 + elif T is TMat2[float32]: Mat2F32 + elif T is TMat2[float64]: Mat2F64 + elif T is TMat23[float32]: Mat23F32 + elif T is TMat23[float64]: Mat23F64 + elif T is TMat32[float32]: Mat32F32 + elif T is TMat32[float64]: Mat32F64 + elif T is TMat3[float32]: Mat3F32 + elif T is TMat3[float64]: Mat3F64 + elif T is TMat34[float32]: Mat34F32 + elif T is TMat34[float64]: Mat34F64 + elif T is TMat43[float32]: Mat43F32 + elif T is TMat43[float64]: Mat43F64 + elif T is TMat4[float32]: Mat4F32 + elif T is TMat4[float64]: Mat4F64 + elif T is Sampler2DType: Sampler2D + else: + static: + raise newException(Exception, &"Unsupported data type for GPU data: {name(T)}" ) + +func attr*[T: GPUType]( + name: string, + perInstance=false, + arrayCount=0, + memoryPerformanceHint=PreferFastRead, +): auto = + ShaderAttribute( + name: name, + thetype: getDataType[T](), + perInstance: perInstance, + arrayCount: arrayCount, + memoryPerformanceHint: memoryPerformanceHint, + ) + +func getValue*[T: GPUType|int|uint|float](value: DataValue): T = + when T is float32: value.float32 + elif T is float64: value.float64 + elif T is int8: value.int8 + elif T is int16: value.int16 + elif T is int32: value.int32 + elif T is int64: value.int64 + elif T is uint8: value.uint8 + elif T is uint16: value.uint16 + elif T is uint32: value.uint32 + elif T is uint64: value.uint64 + elif T is int and sizeof(int) == sizeof(int32): value.int32 + elif T is int and sizeof(int) == sizeof(int64): value.int64 + elif T is uint and sizeof(uint) == sizeof(uint32): value.uint32 + elif T is uint and sizeof(uint) == sizeof(uint64): value.uint64 + elif T is float and sizeof(float) == sizeof(float32): value.float32 + elif T is float and sizeof(float) == sizeof(float64): value.float64 + elif T is TVec2[int32]: value.vec2i32 + elif T is TVec2[int64]: value.vec2i64 + elif T is TVec3[int32]: value.vec3i32 + elif T is TVec3[int64]: value.vec3i64 + elif T is TVec4[int32]: value.vec4i32 + elif T is TVec4[int64]: value.vec4i64 + elif T is TVec2[uint32]: value.vec2u32 + elif T is TVec2[uint64]: value.vec2u64 + elif T is TVec3[uint32]: value.vec3u32 + elif T is TVec3[uint64]: value.vec3u64 + elif T is TVec4[uint32]: value.vec4u32 + elif T is TVec4[uint64]: value.vec4u64 + elif T is TVec2[float32]: value.vec2f32 + elif T is TVec2[float64]: value.vec2f64 + elif T is TVec3[float32]: value.vec3f32 + elif T is TVec3[float64]: value.vec3f64 + elif T is TVec4[float32]: value.vec4f32 + elif T is TVec4[float64]: value.vec4f64 + elif T is TMat2[float32]: value.mat2f32 + elif T is TMat2[float64]: value.mat2f64 + elif T is TMat23[float32]: value.mat23f + elif T is TMat23[float64]: value.mat23f64 + elif T is TMat32[float32]: value.mat32f32 + elif T is TMat32[float64]: value.mat32f64 + elif T is TMat3[float32]: value.mat3f32 + elif T is TMat3[float64]: value.mat3f64 + elif T is TMat34[float32]: value.mat34f32 + elif T is TMat34[float64]: value.mat34f64 + elif T is TMat43[float32]: value.mat43f32 + elif T is TMat43[float64]: value.mat43f64 + elif T is TMat4[float32]: value.mat4f32 + elif T is TMat4[float64]: value.mat4f64 + else: {.error: "Virtual datatype has no value" .} + +func getValues*[T: GPUType|int|uint|float](value: DataList): seq[T] = + when T is float32: value.float32 + elif T is float64: value.float64 + elif T is int8: value.int8 + elif T is int16: value.int16 + elif T is int32: value.int32 + elif T is int64: value.int64 + elif T is uint8: value.uint8 + elif T is uint16: value.uint16 + elif T is uint32: value.uint32 + elif T is uint64: value.uint64 + elif T is int and sizeof(int) == sizeof(int32): value.int32 + elif T is int and sizeof(int) == sizeof(int64): value.int64 + elif T is uint and sizeof(uint) == sizeof(uint32): value.uint32 + elif T is uint and sizeof(uint) == sizeof(uint64): value.uint64 + elif T is float and sizeof(float) == sizeof(float32): value.float32 + elif T is float and sizeof(float) == sizeof(float64): value.float64 + elif T is TVec2[int32]: value.vec2i32 + elif T is TVec2[int64]: value.vec2i64 + elif T is TVec3[int32]: value.vec3i32 + elif T is TVec3[int64]: value.vec3i64 + elif T is TVec4[int32]: value.vec4i32 + elif T is TVec4[int64]: value.vec4i64 + elif T is TVec2[uint32]: value.vec2u32 + elif T is TVec2[uint64]: value.vec2u64 + elif T is TVec3[uint32]: value.vec3u32 + elif T is TVec3[uint64]: value.vec3u64 + elif T is TVec4[uint32]: value.vec4u32 + elif T is TVec4[uint64]: value.vec4u64 + elif T is TVec2[float32]: value.vec2f32 + elif T is TVec2[float64]: value.vec2f64 + elif T is TVec3[float32]: value.vec3f32 + elif T is TVec3[float64]: value.vec3f64 + elif T is TVec4[float32]: value.vec4f32 + elif T is TVec4[float64]: value.vec4f64 + elif T is TMat2[float32]: value.mat2f32 + elif T is TMat2[float64]: value.mat2f64 + elif T is TMat23[float32]: value.mat23f + elif T is TMat23[float64]: value.mat23f64 + elif T is TMat32[float32]: value.mat32f32 + elif T is TMat32[float64]: value.mat32f64 + elif T is TMat3[float32]: value.mat3f32 + elif T is TMat3[float64]: value.mat3f64 + elif T is TMat34[float32]: value.mat34f32 + elif T is TMat34[float64]: value.mat34f64 + elif T is TMat43[float32]: value.mat43f32 + elif T is TMat43[float64]: value.mat43f64 + elif T is TMat4[float32]: value.mat4f32 + elif T is TMat4[float64]: value.mat4f64 + else: {. error: "Virtual datatype has no values" .} + +func getRawData*(value: var DataValue): (pointer, uint32) = + result[1] = value.thetype.size + case value.thetype + of Float32: result[0] = addr value.float32 + of Float64: result[0] = addr value.float64 + of Int8: result[0] = addr value.int8 + of Int16: result[0] = addr value.int16 + of Int32: result[0] = addr value.int32 + of Int64: result[0] = addr value.int64 + of UInt8: result[0] = addr value.uint8 + of UInt16: result[0] = addr value.uint16 + of UInt32: result[0] = addr value.uint32 + of UInt64: result[0] = addr value.uint64 + of Vec2I32: result[0] = addr value.vec2i32 + of Vec2I64: result[0] = addr value.vec2i64 + of Vec3I32: result[0] = addr value.vec3i32 + of Vec3I64: result[0] = addr value.vec3i64 + of Vec4I32: result[0] = addr value.vec4i32 + of Vec4I64: result[0] = addr value.vec4i64 + of Vec2U32: result[0] = addr value.vec2u32 + of Vec2U64: result[0] = addr value.vec2u64 + of Vec3U32: result[0] = addr value.vec3u32 + of Vec3U64: result[0] = addr value.vec3u64 + of Vec4U32: result[0] = addr value.vec4u32 + of Vec4U64: result[0] = addr value.vec4u64 + of Vec2F32: result[0] = addr value.vec2f32 + of Vec2F64: result[0] = addr value.vec2f64 + of Vec3F32: result[0] = addr value.vec3f32 + of Vec3F64: result[0] = addr value.vec3f64 + of Vec4F32: result[0] = addr value.vec4f32 + of Vec4F64: result[0] = addr value.vec4f64 + of Mat2F32: result[0] = addr value.mat2f32 + of Mat2F64: result[0] = addr value.mat2f64 + of Mat23F32: result[0] = addr value.mat23f32 + of Mat23F64: result[0] = addr value.mat23f64 + of Mat32F32: result[0] = addr value.mat32f32 + of Mat32F64: result[0] = addr value.mat32f64 + of Mat3F32: result[0] = addr value.mat3f32 + of Mat3F64: result[0] = addr value.mat3f64 + of Mat34F32: result[0] = addr value.mat34f32 + of Mat34F64: result[0] = addr value.mat34f64 + of Mat43F32: result[0] = addr value.mat43f32 + of Mat43F64: result[0] = addr value.mat43f64 + of Mat4F32: result[0] = addr value.mat4f32 + of Mat4F64: result[0] = addr value.mat4f64 + of Sampler2D: result[0] = nil + +func getRawData*(value: var DataList): (pointer, uint32) = + result[1] = value.thetype.size * value.len + case value.thetype + of Float32: result[0] = addr value.float32[0] + of Float64: result[0] = addr value.float64[0] + of Int8: result[0] = addr value.int8[0] + of Int16: result[0] = addr value.int16[0] + of Int32: result[0] = addr value.int32[0] + of Int64: result[0] = addr value.int64[0] + of UInt8: result[0] = addr value.uint8[0] + of UInt16: result[0] = addr value.uint16[0] + of UInt32: result[0] = addr value.uint32[0] + of UInt64: result[0] = addr value.uint64[0] + of Vec2I32: result[0] = addr value.vec2i32[0] + of Vec2I64: result[0] = addr value.vec2i64[0] + of Vec3I32: result[0] = addr value.vec3i32[0] + of Vec3I64: result[0] = addr value.vec3i64[0] + of Vec4I32: result[0] = addr value.vec4i32[0] + of Vec4I64: result[0] = addr value.vec4i64[0] + of Vec2U32: result[0] = addr value.vec2u32[0] + of Vec2U64: result[0] = addr value.vec2u64[0] + of Vec3U32: result[0] = addr value.vec3u32[0] + of Vec3U64: result[0] = addr value.vec3u64[0] + of Vec4U32: result[0] = addr value.vec4u32[0] + of Vec4U64: result[0] = addr value.vec4u64[0] + of Vec2F32: result[0] = addr value.vec2f32[0] + of Vec2F64: result[0] = addr value.vec2f64[0] + of Vec3F32: result[0] = addr value.vec3f32[0] + of Vec3F64: result[0] = addr value.vec3f64[0] + of Vec4F32: result[0] = addr value.vec4f32[0] + of Vec4F64: result[0] = addr value.vec4f64[0] + of Mat2F32: result[0] = addr value.mat2f32[0] + of Mat2F64: result[0] = addr value.mat2f64[0] + of Mat23F32: result[0] = addr value.mat23f32[0] + of Mat23F64: result[0] = addr value.mat23f64[0] + of Mat32F32: result[0] = addr value.mat32f32[0] + of Mat32F64: result[0] = addr value.mat32f64[0] + of Mat3F32: result[0] = addr value.mat3f32[0] + of Mat3F64: result[0] = addr value.mat3f64[0] + of Mat34F32: result[0] = addr value.mat34f32[0] + of Mat34F64: result[0] = addr value.mat34f64[0] + of Mat43F32: result[0] = addr value.mat43f32[0] + of Mat43F64: result[0] = addr value.mat43f64[0] + of Mat4F32: result[0] = addr value.mat4f32[0] + of Mat4F64: result[0] = addr value.mat4f64[0] + of Sampler2D: result[0] = nil + +func initData*(value: var DataList, len: uint32) = + value.len = len + case value.thetype + of Float32: value.float32.setLen(len) + of Float64: value.float64.setLen(len) + of Int8: value.int8.setLen(len) + of Int16: value.int16.setLen(len) + of Int32: value.int32.setLen(len) + of Int64: value.int64.setLen(len) + of UInt8: value.uint8.setLen(len) + of UInt16: value.uint16.setLen(len) + of UInt32: value.uint32.setLen(len) + of UInt64: value.uint64.setLen(len) + of Vec2I32: value.vec2i32.setLen(len) + of Vec2I64: value.vec2i64.setLen(len) + of Vec3I32: value.vec3i32.setLen(len) + of Vec3I64: value.vec3i64.setLen(len) + of Vec4I32: value.vec4i32.setLen(len) + of Vec4I64: value.vec4i64.setLen(len) + of Vec2U32: value.vec2u32.setLen(len) + of Vec2U64: value.vec2u64.setLen(len) + of Vec3U32: value.vec3u32.setLen(len) + of Vec3U64: value.vec3u64.setLen(len) + of Vec4U32: value.vec4u32.setLen(len) + of Vec4U64: value.vec4u64.setLen(len) + of Vec2F32: value.vec2f32.setLen(len) + of Vec2F64: value.vec2f64.setLen(len) + of Vec3F32: value.vec3f32.setLen(len) + of Vec3F64: value.vec3f64.setLen(len) + of Vec4F32: value.vec4f32.setLen(len) + of Vec4F64: value.vec4f64.setLen(len) + of Mat2F32: value.mat2f32.setLen(len) + of Mat2F64: value.mat2f64.setLen(len) + of Mat23F32: value.mat23f32.setLen(len) + of Mat23F64: value.mat23f64.setLen(len) + of Mat32F32: value.mat32f32.setLen(len) + of Mat32F64: value.mat32f64.setLen(len) + of Mat3F32: value.mat3f32.setLen(len) + of Mat3F64: value.mat3f64.setLen(len) + of Mat34F32: value.mat34f32.setLen(len) + of Mat34F64: value.mat34f64.setLen(len) + of Mat43F32: value.mat43f32.setLen(len) + of Mat43F64: value.mat43f64.setLen(len) + of Mat4F32: value.mat4f32.setLen(len) + of Mat4F64: value.mat4f64.setLen(len) + of Sampler2D: discard + +func setValue*[T: GPUType|int|uint|float](value: var DataValue, data: T) = + when T is float32: value.float32 = data + elif T is float64: value.float64 = data + elif T is int8: value.int8 = data + elif T is int16: value.int16 = data + elif T is int32: value.int32 = data + elif T is int64: value.int64 = data + elif T is uint8: value.uint8 = data + elif T is uint16: value.uint16 = data + elif T is uint32: value.uint32 = data + elif T is uint64: value.uint64 = data + elif T is int and sizeof(int) == sizeof(int32): value.int32 = data + elif T is int and sizeof(int) == sizeof(int64): value.int64 = data + elif T is uint and sizeof(uint) == sizeof(uint32): value.uint32 = data + elif T is uint and sizeof(uint) == sizeof(uint64): value.uint64 = data + elif T is float and sizeof(float) == sizeof(float32): value.float32 = data + elif T is float and sizeof(float) == sizeof(float64): value.float64 = data + elif T is TVec2[int32]: value.vec2i32 = data + elif T is TVec2[int64]: value.vec2i64 = data + elif T is TVec3[int32]: value.vec3i32 = data + elif T is TVec3[int64]: value.vec3i64 = data + elif T is TVec4[int32]: value.vec4i32 = data + elif T is TVec4[int64]: value.vec4i64 = data + elif T is TVec2[uint32]: value.vec2u32 = data + elif T is TVec2[uint64]: value.vec2u64 = data + elif T is TVec3[uint32]: value.vec3u32 = data + elif T is TVec3[uint64]: value.vec3u64 = data + elif T is TVec4[uint32]: value.vec4u32 = data + elif T is TVec4[uint64]: value.vec4u64 = data + elif T is TVec2[float32]: value.vec2f32 = data + elif T is TVec2[float64]: value.vec2f64 = data + elif T is TVec3[float32]: value.vec3f32 = data + elif T is TVec3[float64]: value.vec3f64 = data + elif T is TVec4[float32]: value.vec4f32 = data + elif T is TVec4[float64]: value.vec4f64 = data + elif T is TMat2[float32]: value.mat2f32 = data + elif T is TMat2[float64]: value.mat2f64 = data + elif T is TMat23[float32]: value.mat23f32 = data + elif T is TMat23[float64]: value.mat23f64 = data + elif T is TMat32[float32]: value.mat32f32 = data + elif T is TMat32[float64]: value.mat32f64 = data + elif T is TMat3[float32]: value.mat3f32 = data + elif T is TMat3[float64]: value.mat3f64 = data + elif T is TMat34[float32]: value.mat34f32 = data + elif T is TMat34[float64]: value.mat34f64 = data + elif T is TMat43[float32]: value.mat43f32 = data + elif T is TMat43[float64]: value.mat43f64 = data + elif T is TMat4[float32]: value.mat4f32 = data + elif T is TMat4[float64]: value.mat4f64 = data + else: {.error: "Virtual datatype has no value" .} + +func setValues*[T: GPUType|int|uint|float](value: var DataList, data: seq[T]) = + value.len = uint32(data.len) + when T is float32: value.float32 = data + elif T is float64: value.float64 = data + elif T is int8: value.int8 = data + elif T is int16: value.int16 = data + elif T is int32: value.int32 = data + elif T is int64: value.int64 = data + elif T is uint8: value.uint8 = data + elif T is uint16: value.uint16 = data + elif T is uint32: value.uint32 = data + elif T is uint64: value.uint64 = data + elif T is int and sizeof(int) == sizeof(int32): value.int32 = data + elif T is int and sizeof(int) == sizeof(int64): value.int64 = data + elif T is uint and sizeof(uint) == sizeof(uint32): value.uint32 = data + elif T is uint and sizeof(uint) == sizeof(uint64): value.uint64 = data + elif T is float and sizeof(float) == sizeof(float32): value.float32 = data + elif T is float and sizeof(float) == sizeof(float64): value.float64 = data + elif T is TVec2[int32]: value.vec2i32 = data + elif T is TVec2[int64]: value.vec2i64 = data + elif T is TVec3[int32]: value.vec3i32 = data + elif T is TVec3[int64]: value.vec3i64 = data + elif T is TVec4[int32]: value.vec4i32 = data + elif T is TVec4[int64]: value.vec4i64 = data + elif T is TVec2[uint32]: value.vec2u32 = data + elif T is TVec2[uint64]: value.vec2u64 = data + elif T is TVec3[uint32]: value.vec3u32 = data + elif T is TVec3[uint64]: value.vec3u64 = data + elif T is TVec4[uint32]: value.vec4u32 = data + elif T is TVec4[uint64]: value.vec4u64 = data + elif T is TVec2[float32]: value.vec2f32 = data + elif T is TVec2[float64]: value.vec2f64 = data + elif T is TVec3[float32]: value.vec3f32 = data + elif T is TVec3[float64]: value.vec3f64 = data + elif T is TVec4[float32]: value.vec4f32 = data + elif T is TVec4[float64]: value.vec4f64 = data + elif T is TMat2[float32]: value.mat2f32 = data + elif T is TMat2[float64]: value.mat2f64 = data + elif T is TMat23[float32]: value.mat23f32 = data + elif T is TMat23[float64]: value.mat23f64 = data + elif T is TMat32[float32]: value.mat32f32 = data + elif T is TMat32[float64]: value.mat32f64 = data + elif T is TMat3[float32]: value.mat3f32 = data + elif T is TMat3[float64]: value.mat3f64 = data + elif T is TMat34[float32]: value.mat34f32 = data + elif T is TMat34[float64]: value.mat34f64 = data + elif T is TMat43[float32]: value.mat43f32 = data + elif T is TMat43[float64]: value.mat43f64 = data + elif T is TMat4[float32]: value.mat4f32 = data + elif T is TMat4[float64]: value.mat4f64 = data + else: {. error: "Virtual datatype has no values" .} + +func setValue*[T: GPUType|int|uint|float](value: var DataList, i: uint32, data: T) = + assert i < value.len + when T is float32: value.float32[i] = data + elif T is float64: value.float64[i] = data + elif T is int8: value.int8[i] = data + elif T is int16: value.int16[i] = data + elif T is int32: value.int32[i] = data + elif T is int64: value.int64[i] = data + elif T is uint8: value.uint8[i] = data + elif T is uint16: value.uint16[i] = data + elif T is uint32: value.uint32[i] = data + elif T is uint64: value.uint64[i] = data + elif T is int and sizeof(int) == sizeof(int32): value.int32[i] = data + elif T is int and sizeof(int) == sizeof(int64): value.int64[i] = data + elif T is uint and sizeof(uint) == sizeof(uint32): value.uint32[i] = data + elif T is uint and sizeof(uint) == sizeof(uint64): value.uint64[i] = data + elif T is float and sizeof(float) == sizeof(float32): value.float32[i] = data + elif T is float and sizeof(float) == sizeof(float64): value.float64[i] = data + elif T is TVec2[int32]: value.vec2i32[i] = data + elif T is TVec2[int64]: value.vec2i64[i] = data + elif T is TVec3[int32]: value.vec3i32[i] = data + elif T is TVec3[int64]: value.vec3i64[i] = data + elif T is TVec4[int32]: value.vec4i32[i] = data + elif T is TVec4[int64]: value.vec4i64[i] = data + elif T is TVec2[uint32]: value.vec2u32[i] = data + elif T is TVec2[uint64]: value.vec2u64[i] = data + elif T is TVec3[uint32]: value.vec3u32[i] = data + elif T is TVec3[uint64]: value.vec3u64[i] = data + elif T is TVec4[uint32]: value.vec4u32[i] = data + elif T is TVec4[uint64]: value.vec4u64[i] = data + elif T is TVec2[float32]: value.vec2f32[i] = data + elif T is TVec2[float64]: value.vec2f64[i] = data + elif T is TVec3[float32]: value.vec3f32[i] = data + elif T is TVec3[float64]: value.vec3f64[i] = data + elif T is TVec4[float32]: value.vec4f32[i] = data + elif T is TVec4[float64]: value.vec4f64[i] = data + elif T is TMat2[float32]: value.mat2f32[i] = data + elif T is TMat2[float64]: value.mat2f64[i] = data + elif T is TMat23[float32]: value.mat23f32[i] = data + elif T is TMat23[float64]: value.mat23f64[i] = data + elif T is TMat32[float32]: value.mat32f32[i] = data + elif T is TMat32[float64]: value.mat32f64[i] = data + elif T is TMat3[float32]: value.mat3f32[i] = data + elif T is TMat3[float64]: value.mat3f64[i] = data + elif T is TMat34[float32]: value.mat34f32[i] = data + elif T is TMat34[float64]: value.mat34f64[i] = data + elif T is TMat43[float32]: value.mat43f32[i] = data + elif T is TMat43[float64]: value.mat43f64[i] = data + elif T is TMat4[float32]: value.mat4f32[i] = data + elif T is TMat4[float64]: value.mat4f64[i] = data + else: {. error: "Virtual datatype has no values" .} + +const TYPEMAP = { + Float32: VK_FORMAT_R32_SFLOAT, + Float64: VK_FORMAT_R64_SFLOAT, + Int8: VK_FORMAT_R8_SINT, + Int16: VK_FORMAT_R16_SINT, + Int32: VK_FORMAT_R32_SINT, + Int64: VK_FORMAT_R64_SINT, + UInt8: VK_FORMAT_R8_UINT, + UInt16: VK_FORMAT_R16_UINT, + UInt32: VK_FORMAT_R32_UINT, + UInt64: VK_FORMAT_R64_UINT, + Vec2I32: VK_FORMAT_R32G32_SINT, + Vec2I64: VK_FORMAT_R64G64_SINT, + Vec3I32: VK_FORMAT_R32G32B32_SINT, + Vec3I64: VK_FORMAT_R64G64B64_SINT, + Vec4I32: VK_FORMAT_R32G32B32A32_SINT, + Vec4I64: VK_FORMAT_R64G64B64A64_SINT, + Vec2U32: VK_FORMAT_R32G32_UINT, + Vec2U64: VK_FORMAT_R64G64_UINT, + Vec3U32: VK_FORMAT_R32G32B32_UINT, + Vec3U64: VK_FORMAT_R64G64B64_UINT, + Vec4U32: VK_FORMAT_R32G32B32A32_UINT, + Vec4U64: VK_FORMAT_R64G64B64A64_UINT, + Vec2F32: VK_FORMAT_R32G32_SFLOAT, + Vec2F64: VK_FORMAT_R64G64_SFLOAT, + Vec3F32: VK_FORMAT_R32G32B32_SFLOAT, + Vec3F64: VK_FORMAT_R64G64B64_SFLOAT, + Vec4F32: VK_FORMAT_R32G32B32A32_SFLOAT, + Vec4F64: VK_FORMAT_R64G64B64A64_SFLOAT, + Mat2F32: VK_FORMAT_R32G32_SFLOAT, + Mat2F64: VK_FORMAT_R64G64_SFLOAT, + Mat23F32: VK_FORMAT_R32G32B32_SFLOAT, + Mat23F64: VK_FORMAT_R64G64B64_SFLOAT, + Mat32F32: VK_FORMAT_R32G32_SFLOAT, + Mat32F64: VK_FORMAT_R64G64_SFLOAT, + Mat3F32: VK_FORMAT_R32G32B32_SFLOAT, + Mat3F64: VK_FORMAT_R64G64B64_SFLOAT, + Mat34F32: VK_FORMAT_R32G32B32A32_SFLOAT, + Mat34F64: VK_FORMAT_R64G64B64A64_SFLOAT, + Mat43F32: VK_FORMAT_R32G32B32_SFLOAT, + Mat43F64: VK_FORMAT_R64G64B64_SFLOAT, + Mat4F32: VK_FORMAT_R32G32B32A32_SFLOAT, + Mat4F64: VK_FORMAT_R64G64B64A64_SFLOAT, +}.toTable + +func getVkFormat*(thetype: DataType): VkFormat = + TYPEMAP[thetype] + +# from https://registry.khronos.org/vulkan/specs/1.3-extensions/html/chap15.html +func nLocationSlots*(thetype: DataType): uint32 = + #[ + single location: + 16-bit scalar and vector types, and + 32-bit scalar and vector types, and + 64-bit scalar and 2-component vector types. + two locations + 64-bit three- and four-component vectors + ]# + case thetype: + of Float32: 1 + of Float64: 1 + of Int8: 1 + of Int16: 1 + of Int32: 1 + of Int64: 1 + of UInt8: 1 + of UInt16: 1 + of UInt32: 1 + of UInt64: 1 + of Vec2I32: 1 + of Vec2I64: 1 + of Vec3I32: 1 + of Vec3I64: 2 + of Vec4I32: 1 + of Vec4I64: 2 + of Vec2U32: 1 + of Vec2U64: 1 + of Vec3U32: 1 + of Vec3U64: 2 + of Vec4U32: 1 + of Vec4U64: 2 + of Vec2F32: 1 + of Vec2F64: 1 + of Vec3F32: 1 + of Vec3F64: 2 + of Vec4F32: 1 + of Vec4F64: 2 + of Mat2F32: 1 + of Mat2F64: 1 + of Mat23F32: 1 + of Mat23F64: 2 + of Mat32F32: 1 + of Mat32F64: 1 + of Mat3F32: 1 + of Mat3F64: 2 + of Mat34F32: 1 + of Mat34F64: 2 + of Mat43F32: 1 + of Mat43F64: 2 + of Mat4F32: 1 + of Mat4F64: 2 + of Sampler2D: 1 + +func glslType*(thetype: DataType): string = + # todo: likely not correct as we would need to enable some + # extensions somewhere (Vulkan/GLSL compiler?) to have + # everything work as intended. Or maybe the GPU driver does + # some automagic conversion stuf.. + case thetype: + of Float32: "float" + of Float64: "double" + of Int8, Int16, Int32, Int64: "int" + of UInt8, UInt16, UInt32, UInt64: "uint" + of Vec2I32: "ivec2" + of Vec2I64: "ivec2" + of Vec3I32: "ivec3" + of Vec3I64: "ivec3" + of Vec4I32: "ivec4" + of Vec4I64: "ivec4" + of Vec2U32: "uvec2" + of Vec2U64: "uvec2" + of Vec3U32: "uvec3" + of Vec3U64: "uvec3" + of Vec4U32: "uvec4" + of Vec4U64: "uvec4" + of Vec2F32: "vec2" + of Vec2F64: "dvec2" + of Vec3F32: "vec3" + of Vec3F64: "dvec3" + of Vec4F32: "vec4" + of Vec4F64: "dvec4" + of Mat2F32: "mat2" + of Mat2F64: "dmat2" + of Mat23F32: "mat23" + of Mat23F64: "dmat23" + of Mat32F32: "mat32" + of Mat32F64: "dmat32" + of Mat3F32: "mat3" + of Mat3F64: "dmat3" + of Mat34F32: "mat34" + of Mat34F64: "dmat34" + of Mat43F32: "mat43" + of Mat43F64: "dmat43" + of Mat4F32: "mat4" + of Mat4F64: "dmat4" + of Sampler2D: "sampler2D" + +func glslInput*(group: seq[ShaderAttribute]): seq[string] = + if group.len == 0: + return @[] + var i = 0'u32 + for attribute in group: + assert attribute.arrayCount == 0, "arrays not yet supported for shader vertex attributes" + result.add &"layout(location = {i}) in {attribute.thetype.glslType} {attribute.name};" + for j in 0 ..< attribute.thetype.numberOfVertexInputAttributeDescriptors: + i += attribute.thetype.nLocationSlots + +func glslUniforms*(group: seq[ShaderAttribute], blockName="Uniforms", binding: int): seq[string] = + if group.len == 0: + return @[] + # currently only a single uniform block supported, therefore binding = 0 + result.add(&"layout(binding = {binding}) uniform T{blockName} {{") + for attribute in group: + assert attribute.arrayCount == 0, "arrays not yet supported for uniforms" + result.add(&" {attribute.thetype.glslType} {attribute.name};") + result.add(&"}} {blockName};") + +func glslSamplers*(group: seq[ShaderAttribute], basebinding: int): seq[string] = + if group.len == 0: + return @[] + var thebinding = basebinding + for attribute in group: + var arrayDecl = "" + if attribute.arrayCount > 0: + arrayDecl = &"[{attribute.arrayCount}]" + result.add(&"layout(binding = {thebinding}) uniform {attribute.thetype.glslType} {attribute.name}{arrayDecl};") + inc thebinding + +func glslOutput*(group: seq[ShaderAttribute]): seq[string] = + if group.len == 0: + return @[] + var i = 0'u32 + for attribute in group: + assert attribute.arrayCount == 0, "arrays not yet supported for outputs" + result.add &"layout(location = {i}) out {attribute.thetype.glslType} {attribute.name};" + i += 1 diff -r 24d18cd8be8a -r 7f921d7d0a2b src/semicongine/core/matrix.nim --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/semicongine/core/matrix.nim Tue May 09 01:11:51 2023 +0700 @@ -0,0 +1,396 @@ +import std/math +import std/macros +import std/random +import std/strutils +import std/typetraits + +import ./vector + +export math + +type + # layout is row-first + # having an object instead of directly aliasing the array seems a bit ugly at + # first, but is necessary to be able to work correctly with distinguished + # types (i.e. TMat23 and TMat32 would be an alias for the same type array[6, T] + # which prevents the type system from identifying the correct type at times) + # + # Though, great news is that objects have zero overhead! + TMat2*[T: SomeNumber] = object + data*: array[4, T] + TMat23*[T: SomeNumber] = object + data*: array[6, T] + TMat32*[T: SomeNumber] = object + data*: array[6, T] + TMat3*[T: SomeNumber] = object + data*: array[9, T] + TMat34*[T: SomeNumber] = object + data*: array[12, T] + TMat43*[T: SomeNumber] = object + data*: array[12, T] + TMat4*[T: SomeNumber] = object + data*: array[16, T] + TMat* = TMat2|TMat3|TMat4|TMat23|TMat32|TMat34|TMat43 + Mat2* = TMat2[float32] + Mat23* = TMat23[float32] + Mat32* = TMat32[float32] + Mat3* = TMat3[float32] + Mat34* = TMat34[float32] + Mat43* = TMat43[float32] + Mat4* = TMat4[float32] + +func unit2[T: SomeNumber](): auto {.compiletime.} = TMat2[T](data:[ + T(1), T(0), + T(0), T(1), +]) +func unit3[T: SomeNumber](): auto {.compiletime.} = TMat3[T](data:[ + T(1), T(0), T(0), + T(0), T(1), T(0), + T(0), T(0), T(1), +]) +func unit4[T: SomeNumber](): auto {.compiletime.} = TMat4[T](data: [ + T(1), T(0), T(0), T(0), + T(0), T(1), T(0), T(0), + T(0), T(0), T(1), T(0), + T(0), T(0), T(0), T(1), +]) + +# generates constants: Unit +# Also for Y, Z, R, G, B +# not sure if this is necessary or even a good idea... +macro generateAllConsts() = + result = newStmtList() + for theType in ["int", "int8", "int16", "int32", "int64", "float", "float32", "float64"]: + var typename = theType[0 .. 0] + if theType[^2].isDigit: + typename = typename & theType[^2] + if theType[^1].isDigit: + typename = typename & theType[^1] + result.add(newConstStmt( + postfix(ident("Unit2" & typename), "*"), + newCall(nnkBracketExpr.newTree(ident("unit2"), ident(theType))) + )) + result.add(newConstStmt( + postfix(ident("Unit3" & typename), "*"), + newCall(nnkBracketExpr.newTree(ident("unit3"), ident(theType))) + )) + result.add(newConstStmt( + postfix(ident("Unit4" & typename), "*"), + newCall(nnkBracketExpr.newTree(ident("unit4"), ident(theType))) + )) + +generateAllConsts() + +const Unit2* = unit2[float32]() +const Unit3* = unit3[float32]() +const Unit4* = unit4[float32]() + +template rowCount*(m: typedesc): int = + when m is TMat2: 2 + elif m is TMat23: 2 + elif m is TMat32: 3 + elif m is TMat3: 3 + elif m is TMat34: 3 + elif m is TMat43: 4 + elif m is TMat4: 4 +template columnCount*(m: typedesc): int = + when m is TMat2: 2 + elif m is TMat23: 3 + elif m is TMat32: 2 + elif m is TMat3: 3 + elif m is TMat34: 4 + elif m is TMat43: 3 + elif m is TMat4: 4 + + +func toString[T](value: T): string = + var + strvalues: seq[string] + maxwidth = 0 + + for n in value.data: + let strval = $n + strvalues.add(strval) + if strval.len > maxwidth: + maxwidth = strval.len + + for i in 0 ..< strvalues.len: + let filler = " ".repeat(maxwidth - strvalues[i].len) + if i mod T.columnCount == T.columnCount - 1: + result &= filler & strvalues[i] & "\n" + else: + if i mod T.columnCount == 0: + result &= " " + result &= filler & strvalues[i] & " " + result = $T & "\n" & result + +func `$`*(v: TMat2[SomeNumber]): string = toString[TMat2[SomeNumber]](v) +func `$`*(v: TMat23[SomeNumber]): string = toString[TMat23[SomeNumber]](v) +func `$`*(v: TMat32[SomeNumber]): string = toString[TMat32[SomeNumber]](v) +func `$`*(v: TMat3[SomeNumber]): string = toString[TMat3[SomeNumber]](v) +func `$`*(v: TMat34[SomeNumber]): string = toString[TMat34[SomeNumber]](v) +func `$`*(v: TMat43[SomeNumber]): string = toString[TMat43[SomeNumber]](v) +func `$`*(v: TMat4[SomeNumber]): string = toString[TMat4[SomeNumber]](v) + +func `[]`*[T: TMat](m: T, row, col: int): auto = m.data[col + row * T.columnCount] +proc `[]=`*[T: TMat, U](m: var T, row, col: int, value: U) = m.data[col + row * T.columnCount] = value + +func row*[T: TMat2](m: T, i: 0..1): auto = TVec2([m[i, 0], m[i, 1]]) +func row*[T: TMat32](m: T, i: 0..2): auto = TVec2([m[i, 0], m[i, 1]]) +func row*[T: TMat23](m: T, i: 0..1): auto = TVec3([m[i, 0], m[i, 1], m[i, 2]]) +func row*[T: TMat3](m: T, i: 0..2): auto = TVec3([m[i, 0], m[i, 1], m[i, 2]]) +func row*[T: TMat43](m: T, i: 0..3): auto = TVec3([m[i, 0], m[i, 1], m[i, 2]]) +func row*[T: TMat34](m: T, i: 0..2): auto = TVec4([m[i, 0], m[i, 1], m[i, 2], m[i, 3]]) +func row*[T: TMat4](m: T, i: 0..3): auto = TVec4([m[i, 0], m[i, 1], m[i, 2], m[i, 3]]) + +func col*[T: TMat2](m: T, i: 0..1): auto = TVec2([m[0, i], m[1, i]]) +func col*[T: TMat23](m: T, i: 0..2): auto = TVec2([m[0, i], m[1, i]]) +func col*[T: TMat32](m: T, i: 0..1): auto = TVec3([m[0, i], m[1, i], m[2, i]]) +func col*[T: TMat3](m: T, i: 0..2): auto = TVec3([m[0, i], m[1, i], m[2, i]]) +func col*[T: TMat34](m: T, i: 0..3): auto = TVec3([m[0, i], m[1, i], m[2, i]]) +func col*[T: TMat43](m: T, i: 0..2): auto = TVec4([m[0, i], m[1, i], m[2, i], m[3, i]]) +func col*[T: TMat4](m: T, i: 0..3): auto = TVec4([m[0, i], m[1, i], m[2, i], m[3, i]]) + +proc createMatMatMultiplicationOperator(leftType: typedesc, rightType: typedesc, outType: typedesc): NimNode = + var data = nnkBracket.newTree() + for i in 0 ..< rowCount(leftType): + for j in 0 ..< rightType.columnCount: + data.add(newCall( + ident("sum"), + infix( + newCall(newDotExpr(ident("a"), ident("row")), newLit(i)), + "*", + newCall(newDotExpr(ident("b"), ident("col")), newLit(j)) + ) + )) + + return newProc( + postfix(nnkAccQuoted.newTree(ident("*")), "*"), + params=[ + ident("auto"), + newIdentDefs(ident("a"), ident(leftType.name)), + newIdentDefs(ident("b"), ident(rightType.name)) + ], + body=nnkObjConstr.newTree(ident(outType.name), nnkExprColonExpr.newTree(ident("data"), data)), + procType=nnkFuncDef, + ) + +proc createVecMatMultiplicationOperator(matType: typedesc, vecType: typedesc): NimNode = + var data = nnkBracket.newTree() + for i in 0 ..< matType.rowCount: + data.add(newCall( + ident("sum"), + infix( + ident("v"), + "*", + newCall(newDotExpr(ident("m"), ident("row")), newLit(i)) + ) + )) + + let resultVec = newCall( + nnkBracketExpr.newTree(ident(vecType.name), ident("T")), + data, + ) + let name = postfix(nnkAccQuoted.newTree(ident("*")), "*") + let genericParams = nnkGenericParams.newTree(nnkIdentDefs.newTree(ident("T"), ident("SomeNumber"), newEmptyNode())) + let formalParams = nnkFormalParams.newTree( + ident("auto"), + newIdentDefs(ident("m"), nnkBracketExpr.newTree(ident(matType.name), ident("T"))), + newIdentDefs(ident("v"), nnkBracketExpr.newTree(ident(vecType.name), ident("T"))), + ) + + return nnkFuncDef.newTree( + name, + newEmptyNode(), + genericParams, + formalParams, + newEmptyNode(), + newEmptyNode(), + resultVec + ) + + +proc createMatScalarOperator(matType: typedesc, op: string): NimNode = + result = newStmtList() + + var data = nnkBracket.newTree() + for i in 0 ..< matType.rowCount * matType.columnCount: + data.add(infix(nnkBracketExpr.newTree(newDotExpr(ident("a"), ident("data")), newLit(i)), op, ident("b"))) + result.add(newProc( + postfix(nnkAccQuoted.newTree(ident(op)), "*"), + params=[ + ident("auto"), + newIdentDefs(ident("a"), ident(matType.name)), + newIdentDefs(ident("b"), ident("SomeNumber")), + ], + body=nnkObjConstr.newTree(ident(matType.name), nnkExprColonExpr.newTree(ident("data"), data)), + procType=nnkFuncDef, + )) + result.add(newProc( + postfix(nnkAccQuoted.newTree(ident(op)), "*"), + params=[ + ident("auto"), + newIdentDefs(ident("b"), ident("SomeNumber")), + newIdentDefs(ident("a"), ident(matType.name)), + ], + body=nnkObjConstr.newTree(ident(matType.name), nnkExprColonExpr.newTree(ident("data"), data)), + procType=nnkFuncDef, + )) + if op == "-": + var data2 = nnkBracket.newTree() + for i in 0 ..< matType.rowCount * matType.columnCount: + data2.add(prefix(nnkBracketExpr.newTree(newDotExpr(ident("a"), ident("data")), newLit(i)), op)) + result.add(newProc( + postfix(nnkAccQuoted.newTree(ident(op)), "*"), + params=[ + ident("auto"), + newIdentDefs(ident("a"), ident(matType.name)), + ], + body=nnkObjConstr.newTree(ident(matType.name), nnkExprColonExpr.newTree(ident("data"), data2)), + procType=nnkFuncDef, + )) + +macro createAllMultiplicationOperators() = + result = newStmtList() + + for op in ["+", "-", "*", "/"]: + result.add(createMatScalarOperator(TMat2, op)) + result.add(createMatScalarOperator(TMat23, op)) + result.add(createMatScalarOperator(TMat32, op)) + result.add(createMatScalarOperator(TMat3, op)) + result.add(createMatScalarOperator(TMat34, op)) + result.add(createMatScalarOperator(TMat43, op)) + result.add(createMatScalarOperator(TMat4, op)) + + result.add(createMatMatMultiplicationOperator(TMat2, TMat2, TMat2)) + result.add(createMatMatMultiplicationOperator(TMat2, TMat23, TMat23)) + result.add(createMatMatMultiplicationOperator(TMat23, TMat32, TMat2)) + result.add(createMatMatMultiplicationOperator(TMat23, TMat3, TMat23)) + result.add(createMatMatMultiplicationOperator(TMat32, TMat2, TMat32)) + result.add(createMatMatMultiplicationOperator(TMat32, TMat23, TMat3)) + result.add(createMatMatMultiplicationOperator(TMat3, TMat32, TMat32)) + result.add(createMatMatMultiplicationOperator(TMat3, TMat3, TMat3)) + result.add(createMatMatMultiplicationOperator(TMat3, TMat34, TMat34)) + result.add(createMatMatMultiplicationOperator(TMat43, TMat3, TMat43)) + result.add(createMatMatMultiplicationOperator(TMat43, TMat34, TMat4)) + result.add(createMatMatMultiplicationOperator(TMat4, TMat43, TMat43)) + result.add(createMatMatMultiplicationOperator(TMat4, TMat4, TMat4)) + + result.add(createVecMatMultiplicationOperator(TMat2, TVec2)) + result.add(createVecMatMultiplicationOperator(TMat3, TVec3)) + result.add(createVecMatMultiplicationOperator(TMat4, TVec4)) + +createAllMultiplicationOperators() + + +func transposed*[T](m: TMat2[T]): TMat2[T] = TMat2[T](data: [ + m[0, 0], m[1, 0], + m[0, 1], m[1, 1], +]) +func transposed*[T](m: TMat23[T]): TMat32[T] = TMat32[T](data: [ + m[0, 0], m[1, 0], + m[0, 1], m[1, 1], + m[0, 2], m[1, 2], +]) +func transposed*[T](m: TMat32[T]): TMat23[T] = TMat23[T](data: [ + m[0, 0], m[1, 0], m[2, 0], + m[0, 1], m[1, 1], m[2, 1], +]) +func transposed*[T](m: TMat3[T]): TMat3[T] = TMat3[T](data: [ + m[0, 0], m[1, 0], m[2, 0], + m[0, 1], m[1, 1], m[2, 1], + m[0, 2], m[1, 2], m[2, 2], +]) +func transposed*[T](m: TMat43[T]): TMat34[T] = TMat34[T](data: [ + m[0, 0], m[1, 0], m[2, 0], m[3, 0], + m[0, 1], m[1, 1], m[2, 1], m[3, 1], + m[0, 2], m[1, 2], m[2, 2], m[3, 2], +]) +func transposed*[T](m: TMat34[T]): TMat43[T] = TMat43[T](data: [ + m[0, 0], m[1, 0], m[2, 0], + m[0, 1], m[1, 1], m[2, 1], + m[0, 2], m[1, 2], m[2, 2], + m[0, 3], m[1, 3], m[2, 3], +]) +func transposed*[T](m: TMat4[T]): TMat4[T] = TMat4[T](data: [ + m[0, 0], m[1, 0], m[2, 0], m[3, 0], + m[0, 1], m[1, 1], m[2, 1], m[3, 1], + m[0, 2], m[1, 2], m[2, 2], m[3, 2], + m[0, 3], m[1, 3], m[2, 3], m[3, 3], +]) + +func translate2d*[T](x, y: T): TMat3[T] = TMat3[T](data: [ + T(1), T(0), x, + T(0), T(1), y, + T(0), T(0), T(1), +]) +func scale2d*[T](sx, sy: T): TMat3[T] = TMat3[T](data: [ + sx, T(0), T(0), + T(0), sy, T(0), + T(0), T(0), T(1), +]) +func rotate2d*[T](angle: T): TMat3[T] = TMat3[T](data: [ + cos(angle), -sin(angle), T(0), + sin(angle), cos(angle), T(0), + T(0), T(0), T(1), +]) +func translate3d*[T](x, y, z: T): TMat4[T] = TMat4[T](data: [ + T(1), T(0), T(0), x, + T(0), T(1), T(0), y, + T(0), T(0), T(1), z, + T(0), T(0), T(0), T(1), +]) +func scale3d*[T](sx, sy, sz: T): TMat4[T] = TMat4[T](data: [ + sx, T(0), T(0), T(0), + T(0), sy, T(0), T(0), + T(0), T(0), sz, T(0), + T(0), T(0), T(0), T(1), +]) +func rotate3d*[T](angle: T, a: TVec3[T]): TMat4[T] = + let + cosa = cos(angle) + sina = sin(angle) + x = a[0] + y = a[1] + z = a[2] + TMat4[T](data: [ + x * x * (1 - cosa) + cosa, y * x * (1 - cosa) - z * sina, z * x * (1 - cosa) + y * sina, T(0), + x * y * (1 - cosa) + z * sina, y * y * (1 - cosa) + cosa, z * y * (1 - cosa) - x * sina, T(0), + x * z * (1 - cosa) - y * sina, y * z * (1 - cosa) + x * sina, z * z * (1 - cosa) + cosa, T(0), + T(0), T(0), T(0), T(1), + ]) + + +# call e.g. TMat32[int]().randomized() to get a random matrix +template makeRandomInit(mattype: typedesc) = + proc randomized*[T: SomeInteger](m: mattype[T]): mattype[T] = + for i in 0 ..< result.data.len: + result.data[i] = rand(low(typeof(m.data[0])) .. high(typeof(m.data[0]))) + proc randomized*[T: SomeFloat](m: mattype[T]): mattype[T] = + for i in 0 ..< result.data.len: + result.data[i] = rand(1.0) + +makeRandomInit(TMat2) +makeRandomInit(TMat23) +makeRandomInit(TMat32) +makeRandomInit(TMat3) +makeRandomInit(TMat34) +makeRandomInit(TMat43) +makeRandomInit(TMat4) + +func perspective*[T: SomeFloat](fovy, aspect, zNear, zFar: T): TMat4[T] = + let tanHalfFovy = tan(fovy / T(2)) + return TMat4[T](data:[ + T(1) / (aspect * tanHalfFovy), T(0), T(0), T(0), + T(0), T(1) / tanHalfFovy, T(0), T(0), + T(0), T(0), T(zFar / (zFar - zNear)), T(-(zFar * zNear) / (zFar - zNear)), + T(0), T(0), T(1), T(1), + ]) + +func ortho*[T: SomeFloat](left, right, top, bottom, zNear, zFar: T): TMat4[T] = + TMat4[T](data:[ + T(2) / (right - left), T(0), T(0), -(right + left) / (right - left), + T(0), T(2) / (bottom - top), T(0), -(bottom + top) / (bottom - top), + T(0), T(0), T(1) / (zFar - zNear), -zNear / (zFar - zNear), + T(0), T(0), T(1), T(1), + ]) diff -r 24d18cd8be8a -r 7f921d7d0a2b src/semicongine/core/vector.nim --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/semicongine/core/vector.nim Tue May 09 01:11:51 2023 +0700 @@ -0,0 +1,285 @@ +import std/random +import std/math +import std/strutils +import std/macros +import std/typetraits +import std/tables + +import ./vulkanapi + +type + TVec2*[T: SomeNumber] = array[2, T] + TVec3*[T: SomeNumber] = array[3, T] + TVec4*[T: SomeNumber] = array[4, T] + TVec* = TVec2|TVec3|TVec4 + Vec2f* = TVec2[float32] + Vec3f* = TVec3[float32] + Vec4f* = TVec4[float32] + Vec2i* = TVec2[uint32] + Vec3i* = TVec3[uint32] + Vec4i* = TVec4[uint32] + +converter toVec2*[T: SomeNumber](orig: TVec3[T]|TVec4[T]): TVec2[T] = + TVec2[T]([orig[0], orig[1]]) +converter toVec3*[T: SomeNumber](orig: TVec4[T]): TVec3[T] = + TVec2[T]([orig[0], orig[1], orig[2]]) + +# define some often used constants +func ConstOne2[T: SomeNumber](): auto {.compiletime.} = TVec2[T]([T(1), T(1)]) +func ConstOne3[T: SomeNumber](): auto {.compiletime.} = TVec3[T]([T(1), T(1), T(1)]) +func ConstOne4[T: SomeNumber](): auto {.compiletime.} = TVec4[T]([T(1), T(1), T( + 1), T(1)]) +func ConstX[T: SomeNumber](): auto {.compiletime.} = TVec3[T]([T(1), T(0), T(0)]) +func ConstY[T: SomeNumber](): auto {.compiletime.} = TVec3[T]([T(0), T(1), T(0)]) +func ConstZ[T: SomeNumber](): auto {.compiletime.} = TVec3[T]([T(0), T(0), T(1)]) +func ConstR[T: SomeNumber](): auto {.compiletime.} = TVec3[T]([T(1), T(0), T(0)]) +func ConstG[T: SomeNumber](): auto {.compiletime.} = TVec3[T]([T(0), T(1), T(0)]) +func ConstB[T: SomeNumber](): auto {.compiletime.} = TVec3[T]([T(0), T(0), T(1)]) + +func newVec2f*(x=0'f32, y=0'f32): auto = + Vec2f([x, y]) +func newVec3f*(x=0'f32, y=0'f32, z=0'f32): auto = + Vec3f([x, y, z]) +func newVec4f*(x=0'f32, y=0'f32, z=0'f32, a=0'f32): auto = + Vec4f([x, y, z, a]) + +# generates constants: Xf, Xf32, Xf64, Xi, Xi8, Xi16, Xi32, Xi64 +# Also for Y, Z, R, G, B and One +# not sure if this is necessary or even a good idea... +macro generateAllConsts() = + result = newStmtList() + for component in ["X", "Y", "Z", "R", "G", "B", "One2", "One3", "One4"]: + for theType in ["int", "int8", "int16", "int32", "int64", "float", + "float32", "float64"]: + var typename = theType[0 .. 0] + if theType[^2].isDigit: + typename = typename & theType[^2] + if theType[^1].isDigit: + typename = typename & theType[^1] + result.add( + newConstStmt( + postfix(ident(component & typename), "*"), + newCall(nnkBracketExpr.newTree(ident("Const" & component), ident(theType))) + ) + ) + +generateAllConsts() + +const X* = ConstX[float32]() +const Y* = ConstY[float32]() +const Z* = ConstZ[float32]() +const One2* = ConstOne2[float32]() +const One3* = ConstOne3[float32]() +const One4* = ConstOne4[float32]() + +func newVec2*[T](x, y: T): auto = TVec2([x, y]) +func newVec3*[T](x, y, z: T): auto = TVec3([x, y, z]) +func newVec4*[T](x, y, z, w: T): auto = TVec4([x, y, z, w]) + +func to*[T](v: TVec2): auto = TVec2([T(v[0]), T(v[1])]) +func to*[T](v: TVec3): auto = TVec3([T(v[0]), T(v[1]), T(v[2])]) +func to*[T](v: TVec4): auto = TVec4([T(v[0]), T(v[1]), T(v[2]), T(v[3])]) + +func toString[T](value: T): string = + var items: seq[string] + for item in value: + items.add($item) + $T & "(" & join(items, " ") & ")" + +func `$`*(v: TVec2[SomeNumber]): string = toString[TVec2[SomeNumber]](v) +func `$`*(v: TVec3[SomeNumber]): string = toString[TVec3[SomeNumber]](v) +func `$`*(v: TVec4[SomeNumber]): string = toString[TVec4[SomeNumber]](v) + +func length*(vec: TVec2[SomeFloat]): auto = sqrt(vec[0] * vec[0] + vec[1] * vec[1]) +func length*(vec: TVec2[SomeInteger]): auto = sqrt(float(vec[0] * vec[0] + vec[ + 1] * vec[1])) +func length*(vec: TVec3[SomeFloat]): auto = sqrt(vec[0] * vec[0] + vec[1] * vec[ + 1] + vec[2] * vec[2]) +func length*(vec: TVec3[SomeInteger]): auto = sqrt(float(vec[0] * vec[0] + vec[ + 1] * vec[1] + vec[2] * vec[2])) +func length*(vec: TVec4[SomeFloat]): auto = sqrt(vec[0] * vec[0] + vec[1] * vec[ + 1] + vec[2] * vec[2] + vec[3] * vec[3]) +func length*(vec: TVec4[SomeInteger]): auto = sqrt(float(vec[0] * vec[0] + vec[ + 1] * vec[1] + vec[2] * vec[2] + vec[3] * vec[3])) + +func normalized*[T](vec: TVec2[T]): auto = + let l = vec.length + when T is SomeFloat: + TVec2[T]([vec[0] / l, vec[1] / l]) + else: + TVec2[float]([float(vec[0]) / l, float(vec[1]) / l]) +func normalized*[T](vec: TVec3[T]): auto = + let l = vec.length + when T is SomeFloat: + TVec3[T]([vec[0] / l, vec[1] / l, vec[2] / l]) + else: + TVec3[float]([float(vec[0]) / l, float(vec[1]) / l, float(vec[2]) / l]) +func normalized*[T](vec: TVec4[T]): auto = + let l = vec.length + when T is SomeFloat: + TVec4[T]([vec[0] / l, vec[1] / l, vec[2] / l, vec[3] / l]) + else: + TVec4[float]([float(vec[0]) / l, float(vec[1]) / l, float(vec[2]) / l, + float(vec[3]) / l]) + +# scalar operations +func `+`*(a: TVec2, b: SomeNumber): auto = TVec2([a[0] + b, a[1] + b]) +func `+`*(a: TVec3, b: SomeNumber): auto = TVec3([a[0] + b, a[1] + b, a[2] + b]) +func `+`*(a: TVec4, b: SomeNumber): auto = TVec4([a[0] + b, a[1] + b, a[2] + b, + a[3] + b]) +func `-`*(a: TVec2, b: SomeNumber): auto = TVec2([a[0] - b, a[1] - b]) +func `-`*(a: TVec3, b: SomeNumber): auto = TVec3([a[0] - b, a[1] - b, a[2] - b]) +func `-`*(a: TVec4, b: SomeNumber): auto = TVec4([a[0] - b, a[1] - b, a[2] - b, + a[3] - b]) +func `*`*(a: TVec2, b: SomeNumber): auto = TVec2([a[0] * b, a[1] * b]) +func `*`*(a: TVec3, b: SomeNumber): auto = TVec3([a[0] * b, a[1] * b, a[2] * b]) +func `*`*(a: TVec4, b: SomeNumber): auto = TVec4([a[0] * b, a[1] * b, a[2] * b, + a[3] * b]) +func `/`*[T: SomeInteger](a: TVec2[T], b: SomeInteger): auto = TVec2([a[ + 0] div b, a[1] div b]) +func `/`*[T: SomeFloat](a: TVec2[T], b: SomeFloat): auto = TVec2([a[0] / b, a[1] / b]) +func `/`*[T: SomeInteger](a: TVec3[T], b: SomeInteger): auto = TVec3([a[ + 0] div b, a[1] div b, a[2] div b]) +func `/`*[T: SomeFloat](a: TVec3[T], b: SomeFloat): auto = TVec3([a[0] / b, a[ + 1] / b, a[2] / b]) +func `/`*[T: SomeInteger](a: TVec4[T], b: SomeInteger): auto = TVec4([a[ + 0] div b, a[1] div b, a[2] div b, a[3] div b]) +func `/`*[T: SomeFloat](a: TVec4[T], b: SomeFloat): auto = TVec4([a[0] / b, a[ + 1] / b, a[2] / b, a[3] / b]) + +func `+`*(a: SomeNumber, b: TVec2): auto = TVec2([a + b[0], a + b[1]]) +func `+`*(a: SomeNumber, b: TVec3): auto = TVec3([a + b[0], a + b[1], a + b[2]]) +func `+`*(a: SomeNumber, b: TVec4): auto = TVec4([a + b[0], a + b[1], a + b[2], + a + b[3]]) +func `-`*(a: SomeNumber, b: TVec2): auto = TVec2([a - b[0], a - b[1]]) +func `-`*(a: SomeNumber, b: TVec3): auto = TVec3([a - b[0], a - b[1], a - b[2]]) +func `-`*(a: SomeNumber, b: TVec4): auto = TVec4([a - b[0], a - b[1], a - b[2], + a - b[3]]) +func `*`*(a: SomeNumber, b: TVec2): auto = TVec2([a * b[0], a * b[1]]) +func `*`*(a: SomeNumber, b: TVec3): auto = TVec3([a * b[0], a * b[1], a * b[2]]) +func `*`*(a: SomeNumber, b: TVec4): auto = TVec4([a * b[0], a * b[1], a * b[2], + a * b[3]]) +func `/`*[T: SomeInteger](a: SomeInteger, b: TVec2[T]): auto = TVec2([a div b[ + 0], a div b[1]]) +func `/`*[T: SomeFloat](a: SomeFloat, b: TVec2[T]): auto = TVec2([a / b[0], a / b[1]]) +func `/`*[T: SomeInteger](a: SomeInteger, b: TVec3[T]): auto = TVec3([a div b[ + 0], a div b[1], a div b[2]]) +func `/`*[T: SomeFloat](a: SomeFloat, b: TVec3[T]): auto = TVec3([a / b[0], a / + b[1], a / b[2]]) +func `/`*[T: SomeInteger](a: SomeInteger, b: TVec4[T]): auto = TVec4([a div b[ + 0], a div b[1], a div b[2], a div b[3]]) +func `/`*[T: SomeFloat](a: SomeFloat, b: TVec4[T]): auto = TVec4([a / b[0], a / + b[1], a / b[2], a / b[3]]) + +# compontent-wise operations +func `+`*(a, b: TVec2): auto = TVec2([a[0] + b[0], a[1] + b[1]]) +func `+`*(a, b: TVec3): auto = TVec3([a[0] + b[0], a[1] + b[1], a[2] + b[2]]) +func `+`*(a, b: TVec4): auto = TVec4([a[0] + b[0], a[1] + b[1], a[2] + b[2], a[ + 3] + b[3]]) +func `-`*(a: TVec2): auto = TVec2([-a[0], -a[1]]) +func `-`*(a: TVec3): auto = TVec3([-a[0], -a[1], -a[2]]) +func `-`*(a: TVec4): auto = TVec4([-a[0], -a[1], -a[2], -a[3]]) +func `-`*(a, b: TVec2): auto = TVec2([a[0] - b[0], a[1] - b[1]]) +func `-`*(a, b: TVec3): auto = TVec3([a[0] - b[0], a[1] - b[1], a[2] - b[2]]) +func `-`*(a, b: TVec4): auto = TVec4([a[0] - b[0], a[1] - b[1], a[2] - b[2], a[ + 3] - b[3]]) +func `*`*(a, b: TVec2): auto = TVec2([a[0] * b[0], a[1] * b[1]]) +func `*`*(a, b: TVec3): auto = TVec3([a[0] * b[0], a[1] * b[1], a[2] * b[2]]) +func `*`*(a, b: TVec4): auto = TVec4([a[0] * b[0], a[1] * b[1], a[2] * b[2], a[ + 3] * b[3]]) +func `/`*[T: SomeInteger](a, b: TVec2[T]): auto = TVec2([a[0] div b[0], a[ + 1] div b[1]]) +func `/`*[T: SomeFloat](a, b: TVec2[T]): auto = TVec2([a[0] / b[0], a[1] / b[1]]) +func `/`*[T: SomeInteger](a, b: TVec3[T]): auto = TVec3([a[0] div b[0], a[ + 1] div b[1], a[2] div b[2]]) +func `/`*[T: SomeFloat](a, b: TVec3[T]): auto = TVec3([a[0] / b[0], a[1] / b[1], + a[2] / b[2]]) +func `/`*[T: SomeInteger](a, b: TVec4[T]): auto = TVec4([a[0] div b[0], a[ + 1] div b[1], a[2] div b[2], a[3] div b[3]]) +func `/`*[T: SomeFloat](a, b: TVec4[T]): auto = TVec4([a[0] / b[0], a[1] / b[1], + a[2] / b[2], a[3] / b[3]]) + +# special operations +func pow*(a: TVec2, b: SomeNumber): auto = + TVec2([pow(a[0], b), pow(a[1], b)]) +func pow*(a: TVec3, b: SomeNumber): auto = + TVec3([pow(a[0], b), pow(a[1], b), pow(a[2], b)]) +func pow*(a: TVec4, b: SomeNumber): auto = + TVec4([pow(a[0], b), pow(a[1], b), pow(a[2], b), pow(a[3], b)]) +func dot*(a, b: TVec2): auto = a[0] * b[0] + a[1] * b[1] +func dot*(a, b: TVec3): auto = a[0] * b[0] + a[1] * b[1] + a[2] * b[2] +func dot*(a, b: TVec4): auto = a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3] +func cross*(a, b: TVec3): auto = TVec3([ + a[1] * b[2] - a[2] * b[1], + a[2] * b[0] - a[0] * b[2], + a[0] * b[1] - a[1] * b[0], +]) + + +# macro to allow creation of new vectors by specifying vector components as attributes +# e.g. myVec.xxy will return a new Vec3 that contains the components x, x an y of the original vector +# (instead of x, y, z for a simple copy) +proc vectorAttributeAccessor(accessor: string): NimNode = + const ACCESSOR_INDICES = { + 'x': 0, + 'y': 1, + 'z': 2, + 'w': 3, + 'r': 0, + 'g': 1, + 'b': 2, + 'a': 3, + }.toTable + var ret: NimNode + let accessorvalue = accessor + + if accessorvalue.len == 0: + raise newException(Exception, "empty attribute") + elif accessorvalue.len == 1: + ret = nnkBracketExpr.newTree(ident("value"), newLit(ACCESSOR_INDICES[ + accessorvalue[0]])) + if accessorvalue.len > 1: + var attrs = nnkBracket.newTree() + for attrname in accessorvalue: + attrs.add(nnkBracketExpr.newTree(ident("value"), newLit(ACCESSOR_INDICES[attrname]))) + ret = nnkCall.newTree(ident("TVec" & $accessorvalue.len), attrs) + + newProc( + name = nnkPostfix.newTree(ident("*"), ident(accessor)), + params = [ident("auto"), nnkIdentDefs.newTree(ident("value"), ident("TVec"), + newEmptyNode())], + body = newStmtList(ret), + procType = nnkFuncDef, + ) + +macro createVectorAttribAccessorFuncs() = + const COORD_ATTRS = ["x", "y", "z", "w"] + const COLOR_ATTRS = ["r", "g", "b", "a"] + result = nnkStmtList.newTree() + for attlist in [COORD_ATTRS, COLOR_ATTRS]: + for i in attlist: + result.add(vectorAttributeAccessor(i)) + for j in attlist: + result.add(vectorAttributeAccessor(i & j)) + for k in attlist: + result.add(vectorAttributeAccessor(i & j & k)) + for l in attlist: + result.add(vectorAttributeAccessor(i & j & k & l)) + +createVectorAttribAccessorFuncs() + +# call e.g. Vec2[int]().randomized() to get a random matrix +template makeRandomInit(mattype: typedesc) = + proc randomized*[T: SomeInteger](m: mattype[T]): mattype[T] = + for i in 0 ..< result.len: + result[i] = rand(low(typeof(m[0])) .. high(typeof(m[0]))) + proc randomized*[T: SomeFloat](m: mattype[T]): mattype[T] = + for i in 0 ..< result.len: + result[i] = rand(1.0) + +makeRandomInit(TVec2) +makeRandomInit(TVec3) +makeRandomInit(TVec4) + +converter Vec2VkExtent*(vec: TVec2[uint32]): VkExtent2D = VkExtent2D(width: vec[0], height: vec[1]) +converter Vec3VkExtent*(vec: TVec2[uint32]): VkExtent3D = VkExtent3D(width: vec[0], height: vec[1], depth: vec[2]) diff -r 24d18cd8be8a -r 7f921d7d0a2b src/semicongine/core/vulkanapi.nim --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/semicongine/core/vulkanapi.nim Tue May 09 01:11:51 2023 +0700 @@ -0,0 +1,12068 @@ +import std/dynlib +import std/tables +import std/strutils +import std/logging +import std/typetraits +import std/macros +import std/private/digitsutils +type + VkHandle* = distinct uint + VkNonDispatchableHandle* = distinct uint +when defined(linux): + let vulkanLib* = loadLib("libvulkan.so.1") +when defined(windows): + let vulkanLib* = loadLib("vulkan-1.dll") +if vulkanLib == nil: + raise newException(Exception, "Unable to load vulkan library") +func VK_MAKE_API_VERSION*(variant: uint32, major: uint32, minor: uint32, patch: uint32): uint32 {.compileTime.} = + (variant shl 29) or (major shl 22) or (minor shl 12) or patch + +template checkVkResult*(call: untyped) = + when defined(release): + discard call + else: + # yes, a bit cheap, but this is only for nice debug output + var callstr = astToStr(call).replace("\n", "") + while callstr.find(" ") >= 0: + callstr = callstr.replace(" ", " ") + debug "Calling vulkan: ", callstr + let value = call + if value != VK_SUCCESS: + error "Vulkan error: ", astToStr(call), " returned ", $value + raise newException(Exception, "Vulkan error: " & astToStr(call) & + " returned " & $value) +# custom enum iteration (for enum values > 2^16) +macro enumFullRange(a: typed): untyped = + newNimNode(nnkBracket).add(a.getType[1][1..^1]) + +iterator items*[T: HoleyEnum](E: typedesc[T]): T = + for a in enumFullRange(E): yield a +const + VK_MAX_PHYSICAL_DEVICE_NAME_SIZE*: uint32 = 256 + VK_UUID_SIZE*: uint32 = 16 + VK_LUID_SIZE*: uint32 = 8 + VK_LUID_SIZE_KHR* = VK_LUID_SIZE + VK_MAX_EXTENSION_NAME_SIZE*: uint32 = 256 + VK_MAX_DESCRIPTION_SIZE*: uint32 = 256 + VK_MAX_MEMORY_TYPES*: uint32 = 32 + VK_MAX_MEMORY_HEAPS*: uint32 = 16 + VK_LOD_CLAMP_NONE*: float32 = 1000.0F + VK_REMAINING_MIP_LEVELS*: uint32 = not 0'u32 + VK_REMAINING_ARRAY_LAYERS*: uint32 = not 0'u32 + VK_REMAINING_3D_SLICES_EXT*: uint32 = not 0'u32 + VK_WHOLE_SIZE*: uint64 = not 0'u64 + VK_ATTACHMENT_UNUSED*: uint32 = not 0'u32 + VK_TRUE*: uint32 = 1 + VK_FALSE*: uint32 = 0 + VK_QUEUE_FAMILY_IGNORED*: uint32 = not 0'u32 + VK_QUEUE_FAMILY_EXTERNAL*: uint32 = not 1'u32 + VK_QUEUE_FAMILY_EXTERNAL_KHR* = VK_QUEUE_FAMILY_EXTERNAL + VK_QUEUE_FAMILY_FOREIGN_EXT*: uint32 = not 2'u32 + VK_SUBPASS_EXTERNAL*: uint32 = not 0'u32 + VK_MAX_DEVICE_GROUP_SIZE*: uint32 = 32 + VK_MAX_DEVICE_GROUP_SIZE_KHR* = VK_MAX_DEVICE_GROUP_SIZE + VK_MAX_DRIVER_NAME_SIZE*: uint32 = 256 + VK_MAX_DRIVER_NAME_SIZE_KHR* = VK_MAX_DRIVER_NAME_SIZE + VK_MAX_DRIVER_INFO_SIZE*: uint32 = 256 + VK_MAX_DRIVER_INFO_SIZE_KHR* = VK_MAX_DRIVER_INFO_SIZE + VK_SHADER_UNUSED_KHR*: uint32 = not 0'u32 + VK_SHADER_UNUSED_NV* = VK_SHADER_UNUSED_KHR + VK_MAX_GLOBAL_PRIORITY_SIZE_KHR*: uint32 = 16 + VK_MAX_GLOBAL_PRIORITY_SIZE_EXT* = VK_MAX_GLOBAL_PRIORITY_SIZE_KHR + VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT*: uint32 = 32 +type + ANativeWindow* = object + AHardwareBuffer* = object + CAMetalLayer* = object + MTLDevice_id* = object + MTLCommandQueue_id* = object + MTLBuffer_id* = object + MTLTexture_id* = object + MTLSharedEvent_id* = object + IOSurfaceRef* = object + VkSampleMask* = uint32 + VkBool32* = uint32 + VkFlags* = uint32 + VkFlags64* = uint64 + VkDeviceSize* = uint64 + VkDeviceAddress* = uint64 + VkInstance* = distinct VkHandle + VkPhysicalDevice* = distinct VkHandle + VkDevice* = distinct VkHandle + VkQueue* = distinct VkHandle + VkCommandBuffer* = distinct VkHandle + VkDeviceMemory* = distinct VkNonDispatchableHandle + VkCommandPool* = distinct VkNonDispatchableHandle + VkBuffer* = distinct VkNonDispatchableHandle + VkBufferView* = distinct VkNonDispatchableHandle + VkImage* = distinct VkNonDispatchableHandle + VkImageView* = distinct VkNonDispatchableHandle + VkShaderModule* = distinct VkNonDispatchableHandle + VkPipeline* = distinct VkNonDispatchableHandle + VkPipelineLayout* = distinct VkNonDispatchableHandle + VkSampler* = distinct VkNonDispatchableHandle + VkDescriptorSet* = distinct VkNonDispatchableHandle + VkDescriptorSetLayout* = distinct VkNonDispatchableHandle + VkDescriptorPool* = distinct VkNonDispatchableHandle + VkFence* = distinct VkNonDispatchableHandle + VkSemaphore* = distinct VkNonDispatchableHandle + VkEvent* = distinct VkNonDispatchableHandle + VkQueryPool* = distinct VkNonDispatchableHandle + VkFramebuffer* = distinct VkNonDispatchableHandle + VkRenderPass* = distinct VkNonDispatchableHandle + VkPipelineCache* = distinct VkNonDispatchableHandle + VkIndirectCommandsLayoutNV* = distinct VkNonDispatchableHandle + VkDescriptorUpdateTemplate* = distinct VkNonDispatchableHandle + VkSamplerYcbcrConversion* = distinct VkNonDispatchableHandle + VkValidationCacheEXT* = distinct VkNonDispatchableHandle + VkAccelerationStructureKHR* = distinct VkNonDispatchableHandle + VkAccelerationStructureNV* = distinct VkNonDispatchableHandle + VkPerformanceConfigurationINTEL* = distinct VkNonDispatchableHandle + VkBufferCollectionFUCHSIA* = distinct VkNonDispatchableHandle + VkDeferredOperationKHR* = distinct VkNonDispatchableHandle + VkPrivateDataSlot* = distinct VkNonDispatchableHandle + VkCuModuleNVX* = distinct VkNonDispatchableHandle + VkCuFunctionNVX* = distinct VkNonDispatchableHandle + VkOpticalFlowSessionNV* = distinct VkNonDispatchableHandle + VkMicromapEXT* = distinct VkNonDispatchableHandle + VkDisplayKHR* = distinct VkNonDispatchableHandle + VkDisplayModeKHR* = distinct VkNonDispatchableHandle + VkSurfaceKHR* = distinct VkNonDispatchableHandle + VkSwapchainKHR* = distinct VkNonDispatchableHandle + VkDebugReportCallbackEXT* = distinct VkNonDispatchableHandle + VkDebugUtilsMessengerEXT* = distinct VkNonDispatchableHandle + VkVideoSessionKHR* = distinct VkNonDispatchableHandle + VkVideoSessionParametersKHR* = distinct VkNonDispatchableHandle + VkSemaphoreSciSyncPoolNV* = distinct VkNonDispatchableHandle + VkRemoteAddressNV* = pointer +proc `$`*(handle: VkInstance): string = "VkInstance(" & $(uint(handle)) & ")" +proc valid*(handle: VkInstance): bool = uint(handle) != 0 +proc reset*(handle: var VkInstance) = handle = VkInstance(0) +proc `==`*(a, b: VkInstance): bool = uint(a) == uint(b) +proc `$`*(handle: VkPhysicalDevice): string = "VkPhysicalDevice(" & $(uint(handle)) & ")" +proc valid*(handle: VkPhysicalDevice): bool = uint(handle) != 0 +proc reset*(handle: var VkPhysicalDevice) = handle = VkPhysicalDevice(0) +proc `==`*(a, b: VkPhysicalDevice): bool = uint(a) == uint(b) +proc `$`*(handle: VkDevice): string = "VkDevice(" & $(uint(handle)) & ")" +proc valid*(handle: VkDevice): bool = uint(handle) != 0 +proc reset*(handle: var VkDevice) = handle = VkDevice(0) +proc `==`*(a, b: VkDevice): bool = uint(a) == uint(b) +proc `$`*(handle: VkQueue): string = "VkQueue(" & $(uint(handle)) & ")" +proc valid*(handle: VkQueue): bool = uint(handle) != 0 +proc reset*(handle: var VkQueue) = handle = VkQueue(0) +proc `==`*(a, b: VkQueue): bool = uint(a) == uint(b) +proc `$`*(handle: VkCommandBuffer): string = "VkCommandBuffer(" & $(uint(handle)) & ")" +proc valid*(handle: VkCommandBuffer): bool = uint(handle) != 0 +proc reset*(handle: var VkCommandBuffer) = handle = VkCommandBuffer(0) +proc `==`*(a, b: VkCommandBuffer): bool = uint(a) == uint(b) +proc `$`*(handle: VkDeviceMemory): string = "VkDeviceMemory(" & $(uint(handle)) & ")" +proc valid*(handle: VkDeviceMemory): bool = uint(handle) != 0 +proc reset*(handle: var VkDeviceMemory) = handle = VkDeviceMemory(0) +proc `==`*(a, b: VkDeviceMemory): bool = uint(a) == uint(b) +proc `$`*(handle: VkCommandPool): string = "VkCommandPool(" & $(uint(handle)) & ")" +proc valid*(handle: VkCommandPool): bool = uint(handle) != 0 +proc reset*(handle: var VkCommandPool) = handle = VkCommandPool(0) +proc `==`*(a, b: VkCommandPool): bool = uint(a) == uint(b) +proc `$`*(handle: VkBuffer): string = "VkBuffer(" & $(uint(handle)) & ")" +proc valid*(handle: VkBuffer): bool = uint(handle) != 0 +proc reset*(handle: var VkBuffer) = handle = VkBuffer(0) +proc `==`*(a, b: VkBuffer): bool = uint(a) == uint(b) +proc `$`*(handle: VkBufferView): string = "VkBufferView(" & $(uint(handle)) & ")" +proc valid*(handle: VkBufferView): bool = uint(handle) != 0 +proc reset*(handle: var VkBufferView) = handle = VkBufferView(0) +proc `==`*(a, b: VkBufferView): bool = uint(a) == uint(b) +proc `$`*(handle: VkImage): string = "VkImage(" & $(uint(handle)) & ")" +proc valid*(handle: VkImage): bool = uint(handle) != 0 +proc reset*(handle: var VkImage) = handle = VkImage(0) +proc `==`*(a, b: VkImage): bool = uint(a) == uint(b) +proc `$`*(handle: VkImageView): string = "VkImageView(" & $(uint(handle)) & ")" +proc valid*(handle: VkImageView): bool = uint(handle) != 0 +proc reset*(handle: var VkImageView) = handle = VkImageView(0) +proc `==`*(a, b: VkImageView): bool = uint(a) == uint(b) +proc `$`*(handle: VkShaderModule): string = "VkShaderModule(" & $(uint(handle)) & ")" +proc valid*(handle: VkShaderModule): bool = uint(handle) != 0 +proc reset*(handle: var VkShaderModule) = handle = VkShaderModule(0) +proc `==`*(a, b: VkShaderModule): bool = uint(a) == uint(b) +proc `$`*(handle: VkPipeline): string = "VkPipeline(" & $(uint(handle)) & ")" +proc valid*(handle: VkPipeline): bool = uint(handle) != 0 +proc reset*(handle: var VkPipeline) = handle = VkPipeline(0) +proc `==`*(a, b: VkPipeline): bool = uint(a) == uint(b) +proc `$`*(handle: VkPipelineLayout): string = "VkPipelineLayout(" & $(uint(handle)) & ")" +proc valid*(handle: VkPipelineLayout): bool = uint(handle) != 0 +proc reset*(handle: var VkPipelineLayout) = handle = VkPipelineLayout(0) +proc `==`*(a, b: VkPipelineLayout): bool = uint(a) == uint(b) +proc `$`*(handle: VkSampler): string = "VkSampler(" & $(uint(handle)) & ")" +proc valid*(handle: VkSampler): bool = uint(handle) != 0 +proc reset*(handle: var VkSampler) = handle = VkSampler(0) +proc `==`*(a, b: VkSampler): bool = uint(a) == uint(b) +proc `$`*(handle: VkDescriptorSet): string = "VkDescriptorSet(" & $(uint(handle)) & ")" +proc valid*(handle: VkDescriptorSet): bool = uint(handle) != 0 +proc reset*(handle: var VkDescriptorSet) = handle = VkDescriptorSet(0) +proc `==`*(a, b: VkDescriptorSet): bool = uint(a) == uint(b) +proc `$`*(handle: VkDescriptorSetLayout): string = "VkDescriptorSetLayout(" & $(uint(handle)) & ")" +proc valid*(handle: VkDescriptorSetLayout): bool = uint(handle) != 0 +proc reset*(handle: var VkDescriptorSetLayout) = handle = VkDescriptorSetLayout(0) +proc `==`*(a, b: VkDescriptorSetLayout): bool = uint(a) == uint(b) +proc `$`*(handle: VkDescriptorPool): string = "VkDescriptorPool(" & $(uint(handle)) & ")" +proc valid*(handle: VkDescriptorPool): bool = uint(handle) != 0 +proc reset*(handle: var VkDescriptorPool) = handle = VkDescriptorPool(0) +proc `==`*(a, b: VkDescriptorPool): bool = uint(a) == uint(b) +proc `$`*(handle: VkFence): string = "VkFence(" & $(uint(handle)) & ")" +proc valid*(handle: VkFence): bool = uint(handle) != 0 +proc reset*(handle: var VkFence) = handle = VkFence(0) +proc `==`*(a, b: VkFence): bool = uint(a) == uint(b) +proc `$`*(handle: VkSemaphore): string = "VkSemaphore(" & $(uint(handle)) & ")" +proc valid*(handle: VkSemaphore): bool = uint(handle) != 0 +proc reset*(handle: var VkSemaphore) = handle = VkSemaphore(0) +proc `==`*(a, b: VkSemaphore): bool = uint(a) == uint(b) +proc `$`*(handle: VkEvent): string = "VkEvent(" & $(uint(handle)) & ")" +proc valid*(handle: VkEvent): bool = uint(handle) != 0 +proc reset*(handle: var VkEvent) = handle = VkEvent(0) +proc `==`*(a, b: VkEvent): bool = uint(a) == uint(b) +proc `$`*(handle: VkQueryPool): string = "VkQueryPool(" & $(uint(handle)) & ")" +proc valid*(handle: VkQueryPool): bool = uint(handle) != 0 +proc reset*(handle: var VkQueryPool) = handle = VkQueryPool(0) +proc `==`*(a, b: VkQueryPool): bool = uint(a) == uint(b) +proc `$`*(handle: VkFramebuffer): string = "VkFramebuffer(" & $(uint(handle)) & ")" +proc valid*(handle: VkFramebuffer): bool = uint(handle) != 0 +proc reset*(handle: var VkFramebuffer) = handle = VkFramebuffer(0) +proc `==`*(a, b: VkFramebuffer): bool = uint(a) == uint(b) +proc `$`*(handle: VkRenderPass): string = "VkRenderPass(" & $(uint(handle)) & ")" +proc valid*(handle: VkRenderPass): bool = uint(handle) != 0 +proc reset*(handle: var VkRenderPass) = handle = VkRenderPass(0) +proc `==`*(a, b: VkRenderPass): bool = uint(a) == uint(b) +proc `$`*(handle: VkPipelineCache): string = "VkPipelineCache(" & $(uint(handle)) & ")" +proc valid*(handle: VkPipelineCache): bool = uint(handle) != 0 +proc reset*(handle: var VkPipelineCache) = handle = VkPipelineCache(0) +proc `==`*(a, b: VkPipelineCache): bool = uint(a) == uint(b) +proc `$`*(handle: VkIndirectCommandsLayoutNV): string = "VkIndirectCommandsLayoutNV(" & $(uint(handle)) & ")" +proc valid*(handle: VkIndirectCommandsLayoutNV): bool = uint(handle) != 0 +proc reset*(handle: var VkIndirectCommandsLayoutNV) = handle = VkIndirectCommandsLayoutNV(0) +proc `==`*(a, b: VkIndirectCommandsLayoutNV): bool = uint(a) == uint(b) +proc `$`*(handle: VkDescriptorUpdateTemplate): string = "VkDescriptorUpdateTemplate(" & $(uint(handle)) & ")" +proc valid*(handle: VkDescriptorUpdateTemplate): bool = uint(handle) != 0 +proc reset*(handle: var VkDescriptorUpdateTemplate) = handle = VkDescriptorUpdateTemplate(0) +proc `==`*(a, b: VkDescriptorUpdateTemplate): bool = uint(a) == uint(b) +proc `$`*(handle: VkSamplerYcbcrConversion): string = "VkSamplerYcbcrConversion(" & $(uint(handle)) & ")" +proc valid*(handle: VkSamplerYcbcrConversion): bool = uint(handle) != 0 +proc reset*(handle: var VkSamplerYcbcrConversion) = handle = VkSamplerYcbcrConversion(0) +proc `==`*(a, b: VkSamplerYcbcrConversion): bool = uint(a) == uint(b) +proc `$`*(handle: VkValidationCacheEXT): string = "VkValidationCacheEXT(" & $(uint(handle)) & ")" +proc valid*(handle: VkValidationCacheEXT): bool = uint(handle) != 0 +proc reset*(handle: var VkValidationCacheEXT) = handle = VkValidationCacheEXT(0) +proc `==`*(a, b: VkValidationCacheEXT): bool = uint(a) == uint(b) +proc `$`*(handle: VkAccelerationStructureKHR): string = "VkAccelerationStructureKHR(" & $(uint(handle)) & ")" +proc valid*(handle: VkAccelerationStructureKHR): bool = uint(handle) != 0 +proc reset*(handle: var VkAccelerationStructureKHR) = handle = VkAccelerationStructureKHR(0) +proc `==`*(a, b: VkAccelerationStructureKHR): bool = uint(a) == uint(b) +proc `$`*(handle: VkAccelerationStructureNV): string = "VkAccelerationStructureNV(" & $(uint(handle)) & ")" +proc valid*(handle: VkAccelerationStructureNV): bool = uint(handle) != 0 +proc reset*(handle: var VkAccelerationStructureNV) = handle = VkAccelerationStructureNV(0) +proc `==`*(a, b: VkAccelerationStructureNV): bool = uint(a) == uint(b) +proc `$`*(handle: VkPerformanceConfigurationINTEL): string = "VkPerformanceConfigurationINTEL(" & $(uint(handle)) & ")" +proc valid*(handle: VkPerformanceConfigurationINTEL): bool = uint(handle) != 0 +proc reset*(handle: var VkPerformanceConfigurationINTEL) = handle = VkPerformanceConfigurationINTEL(0) +proc `==`*(a, b: VkPerformanceConfigurationINTEL): bool = uint(a) == uint(b) +proc `$`*(handle: VkBufferCollectionFUCHSIA): string = "VkBufferCollectionFUCHSIA(" & $(uint(handle)) & ")" +proc valid*(handle: VkBufferCollectionFUCHSIA): bool = uint(handle) != 0 +proc reset*(handle: var VkBufferCollectionFUCHSIA) = handle = VkBufferCollectionFUCHSIA(0) +proc `==`*(a, b: VkBufferCollectionFUCHSIA): bool = uint(a) == uint(b) +proc `$`*(handle: VkDeferredOperationKHR): string = "VkDeferredOperationKHR(" & $(uint(handle)) & ")" +proc valid*(handle: VkDeferredOperationKHR): bool = uint(handle) != 0 +proc reset*(handle: var VkDeferredOperationKHR) = handle = VkDeferredOperationKHR(0) +proc `==`*(a, b: VkDeferredOperationKHR): bool = uint(a) == uint(b) +proc `$`*(handle: VkPrivateDataSlot): string = "VkPrivateDataSlot(" & $(uint(handle)) & ")" +proc valid*(handle: VkPrivateDataSlot): bool = uint(handle) != 0 +proc reset*(handle: var VkPrivateDataSlot) = handle = VkPrivateDataSlot(0) +proc `==`*(a, b: VkPrivateDataSlot): bool = uint(a) == uint(b) +proc `$`*(handle: VkCuModuleNVX): string = "VkCuModuleNVX(" & $(uint(handle)) & ")" +proc valid*(handle: VkCuModuleNVX): bool = uint(handle) != 0 +proc reset*(handle: var VkCuModuleNVX) = handle = VkCuModuleNVX(0) +proc `==`*(a, b: VkCuModuleNVX): bool = uint(a) == uint(b) +proc `$`*(handle: VkCuFunctionNVX): string = "VkCuFunctionNVX(" & $(uint(handle)) & ")" +proc valid*(handle: VkCuFunctionNVX): bool = uint(handle) != 0 +proc reset*(handle: var VkCuFunctionNVX) = handle = VkCuFunctionNVX(0) +proc `==`*(a, b: VkCuFunctionNVX): bool = uint(a) == uint(b) +proc `$`*(handle: VkOpticalFlowSessionNV): string = "VkOpticalFlowSessionNV(" & $(uint(handle)) & ")" +proc valid*(handle: VkOpticalFlowSessionNV): bool = uint(handle) != 0 +proc reset*(handle: var VkOpticalFlowSessionNV) = handle = VkOpticalFlowSessionNV(0) +proc `==`*(a, b: VkOpticalFlowSessionNV): bool = uint(a) == uint(b) +proc `$`*(handle: VkMicromapEXT): string = "VkMicromapEXT(" & $(uint(handle)) & ")" +proc valid*(handle: VkMicromapEXT): bool = uint(handle) != 0 +proc reset*(handle: var VkMicromapEXT) = handle = VkMicromapEXT(0) +proc `==`*(a, b: VkMicromapEXT): bool = uint(a) == uint(b) +proc `$`*(handle: VkDisplayKHR): string = "VkDisplayKHR(" & $(uint(handle)) & ")" +proc valid*(handle: VkDisplayKHR): bool = uint(handle) != 0 +proc reset*(handle: var VkDisplayKHR) = handle = VkDisplayKHR(0) +proc `==`*(a, b: VkDisplayKHR): bool = uint(a) == uint(b) +proc `$`*(handle: VkDisplayModeKHR): string = "VkDisplayModeKHR(" & $(uint(handle)) & ")" +proc valid*(handle: VkDisplayModeKHR): bool = uint(handle) != 0 +proc reset*(handle: var VkDisplayModeKHR) = handle = VkDisplayModeKHR(0) +proc `==`*(a, b: VkDisplayModeKHR): bool = uint(a) == uint(b) +proc `$`*(handle: VkSurfaceKHR): string = "VkSurfaceKHR(" & $(uint(handle)) & ")" +proc valid*(handle: VkSurfaceKHR): bool = uint(handle) != 0 +proc reset*(handle: var VkSurfaceKHR) = handle = VkSurfaceKHR(0) +proc `==`*(a, b: VkSurfaceKHR): bool = uint(a) == uint(b) +proc `$`*(handle: VkSwapchainKHR): string = "VkSwapchainKHR(" & $(uint(handle)) & ")" +proc valid*(handle: VkSwapchainKHR): bool = uint(handle) != 0 +proc reset*(handle: var VkSwapchainKHR) = handle = VkSwapchainKHR(0) +proc `==`*(a, b: VkSwapchainKHR): bool = uint(a) == uint(b) +proc `$`*(handle: VkDebugReportCallbackEXT): string = "VkDebugReportCallbackEXT(" & $(uint(handle)) & ")" +proc valid*(handle: VkDebugReportCallbackEXT): bool = uint(handle) != 0 +proc reset*(handle: var VkDebugReportCallbackEXT) = handle = VkDebugReportCallbackEXT(0) +proc `==`*(a, b: VkDebugReportCallbackEXT): bool = uint(a) == uint(b) +proc `$`*(handle: VkDebugUtilsMessengerEXT): string = "VkDebugUtilsMessengerEXT(" & $(uint(handle)) & ")" +proc valid*(handle: VkDebugUtilsMessengerEXT): bool = uint(handle) != 0 +proc reset*(handle: var VkDebugUtilsMessengerEXT) = handle = VkDebugUtilsMessengerEXT(0) +proc `==`*(a, b: VkDebugUtilsMessengerEXT): bool = uint(a) == uint(b) +proc `$`*(handle: VkVideoSessionKHR): string = "VkVideoSessionKHR(" & $(uint(handle)) & ")" +proc valid*(handle: VkVideoSessionKHR): bool = uint(handle) != 0 +proc reset*(handle: var VkVideoSessionKHR) = handle = VkVideoSessionKHR(0) +proc `==`*(a, b: VkVideoSessionKHR): bool = uint(a) == uint(b) +proc `$`*(handle: VkVideoSessionParametersKHR): string = "VkVideoSessionParametersKHR(" & $(uint(handle)) & ")" +proc valid*(handle: VkVideoSessionParametersKHR): bool = uint(handle) != 0 +proc reset*(handle: var VkVideoSessionParametersKHR) = handle = VkVideoSessionParametersKHR(0) +proc `==`*(a, b: VkVideoSessionParametersKHR): bool = uint(a) == uint(b) +proc `$`*(handle: VkSemaphoreSciSyncPoolNV): string = "VkSemaphoreSciSyncPoolNV(" & $(uint(handle)) & ")" +proc valid*(handle: VkSemaphoreSciSyncPoolNV): bool = uint(handle) != 0 +proc reset*(handle: var VkSemaphoreSciSyncPoolNV) = handle = VkSemaphoreSciSyncPoolNV(0) +proc `==`*(a, b: VkSemaphoreSciSyncPoolNV): bool = uint(a) == uint(b) +type + VkFramebufferCreateFlags* = distinct VkFlags + VkQueryPoolCreateFlags* = distinct VkFlags + VkRenderPassCreateFlags* = distinct VkFlags + VkSamplerCreateFlags* = distinct VkFlags + VkPipelineLayoutCreateFlags* = distinct VkFlags + VkPipelineCacheCreateFlags* = distinct VkFlags + VkPipelineDepthStencilStateCreateFlags* = distinct VkFlags + VkPipelineDynamicStateCreateFlags* = distinct VkFlags + VkPipelineColorBlendStateCreateFlags* = distinct VkFlags + VkPipelineMultisampleStateCreateFlags* = distinct VkFlags + VkPipelineRasterizationStateCreateFlags* = distinct VkFlags + VkPipelineViewportStateCreateFlags* = distinct VkFlags + VkPipelineTessellationStateCreateFlags* = distinct VkFlags + VkPipelineInputAssemblyStateCreateFlags* = distinct VkFlags + VkPipelineVertexInputStateCreateFlags* = distinct VkFlags + VkPipelineShaderStageCreateFlags* = distinct VkFlags + VkDescriptorSetLayoutCreateFlags* = distinct VkFlags + VkBufferViewCreateFlags* = distinct VkFlags + VkInstanceCreateFlags* = distinct VkFlags + VkDeviceCreateFlags* = distinct VkFlags + VkDeviceQueueCreateFlags* = distinct VkFlags + VkQueueFlags* = distinct VkFlags + VkMemoryPropertyFlags* = distinct VkFlags + VkMemoryHeapFlags* = distinct VkFlags + VkAccessFlags* = distinct VkFlags + VkBufferUsageFlags* = distinct VkFlags + VkBufferCreateFlags* = distinct VkFlags + VkShaderStageFlags* = distinct VkFlags + VkImageUsageFlags* = distinct VkFlags + VkImageCreateFlags* = distinct VkFlags + VkImageViewCreateFlags* = distinct VkFlags + VkPipelineCreateFlags* = distinct VkFlags + VkColorComponentFlags* = distinct VkFlags + VkFenceCreateFlags* = distinct VkFlags + VkSemaphoreCreateFlags* = distinct VkFlags + VkFormatFeatureFlags* = distinct VkFlags + VkQueryControlFlags* = distinct VkFlags + VkQueryResultFlags* = distinct VkFlags + VkShaderModuleCreateFlags* = distinct VkFlags + VkEventCreateFlags* = distinct VkFlags + VkCommandPoolCreateFlags* = distinct VkFlags + VkCommandPoolResetFlags* = distinct VkFlags + VkCommandBufferResetFlags* = distinct VkFlags + VkCommandBufferUsageFlags* = distinct VkFlags + VkQueryPipelineStatisticFlags* = distinct VkFlags + VkMemoryMapFlags* = distinct VkFlags + VkImageAspectFlags* = distinct VkFlags + VkSparseMemoryBindFlags* = distinct VkFlags + VkSparseImageFormatFlags* = distinct VkFlags + VkSubpassDescriptionFlags* = distinct VkFlags + VkPipelineStageFlags* = distinct VkFlags + VkSampleCountFlags* = distinct VkFlags + VkAttachmentDescriptionFlags* = distinct VkFlags + VkStencilFaceFlags* = distinct VkFlags + VkCullModeFlags* = distinct VkFlags + VkDescriptorPoolCreateFlags* = distinct VkFlags + VkDescriptorPoolResetFlags* = distinct VkFlags + VkDependencyFlags* = distinct VkFlags + VkSubgroupFeatureFlags* = distinct VkFlags + VkIndirectCommandsLayoutUsageFlagsNV* = distinct VkFlags + VkIndirectStateFlagsNV* = distinct VkFlags + VkGeometryFlagsKHR* = distinct VkFlags + VkGeometryInstanceFlagsKHR* = distinct VkFlags + VkBuildAccelerationStructureFlagsKHR* = distinct VkFlags + VkPrivateDataSlotCreateFlags* = distinct VkFlags + VkAccelerationStructureCreateFlagsKHR* = distinct VkFlags + VkDescriptorUpdateTemplateCreateFlags* = distinct VkFlags + VkPipelineCreationFeedbackFlags* = distinct VkFlags + VkPerformanceCounterDescriptionFlagsKHR* = distinct VkFlags + VkAcquireProfilingLockFlagsKHR* = distinct VkFlags + VkSemaphoreWaitFlags* = distinct VkFlags + VkPipelineCompilerControlFlagsAMD* = distinct VkFlags + VkShaderCorePropertiesFlagsAMD* = distinct VkFlags + VkDeviceDiagnosticsConfigFlagsNV* = distinct VkFlags + VkRefreshObjectFlagsKHR* = distinct VkFlags + VkAccessFlags2* = distinct VkFlags + VkPipelineStageFlags2* = distinct VkFlags + VkAccelerationStructureMotionInfoFlagsNV* = distinct VkFlags + VkAccelerationStructureMotionInstanceFlagsNV* = distinct VkFlags + VkFormatFeatureFlags2* = distinct VkFlags + VkRenderingFlags* = distinct VkFlags + VkMemoryDecompressionMethodFlagsNV* = distinct VkFlags + VkBuildMicromapFlagsEXT* = distinct VkFlags + VkMicromapCreateFlagsEXT* = distinct VkFlags + VkDirectDriverLoadingFlagsLUNARG* = distinct VkFlags + VkCompositeAlphaFlagsKHR* = distinct VkFlags + VkDisplayPlaneAlphaFlagsKHR* = distinct VkFlags + VkSurfaceTransformFlagsKHR* = distinct VkFlags + VkSwapchainCreateFlagsKHR* = distinct VkFlags + VkDisplayModeCreateFlagsKHR* = distinct VkFlags + VkDisplaySurfaceCreateFlagsKHR* = distinct VkFlags + VkAndroidSurfaceCreateFlagsKHR* = distinct VkFlags + VkViSurfaceCreateFlagsNN* = distinct VkFlags + VkWaylandSurfaceCreateFlagsKHR* = distinct VkFlags + VkWin32SurfaceCreateFlagsKHR* = distinct VkFlags + VkXlibSurfaceCreateFlagsKHR* = distinct VkFlags + VkXcbSurfaceCreateFlagsKHR* = distinct VkFlags + VkDirectFBSurfaceCreateFlagsEXT* = distinct VkFlags + VkIOSSurfaceCreateFlagsMVK* = distinct VkFlags + VkMacOSSurfaceCreateFlagsMVK* = distinct VkFlags + VkMetalSurfaceCreateFlagsEXT* = distinct VkFlags + VkImagePipeSurfaceCreateFlagsFUCHSIA* = distinct VkFlags + VkStreamDescriptorSurfaceCreateFlagsGGP* = distinct VkFlags + VkHeadlessSurfaceCreateFlagsEXT* = distinct VkFlags + VkScreenSurfaceCreateFlagsQNX* = distinct VkFlags + VkPeerMemoryFeatureFlags* = distinct VkFlags + VkMemoryAllocateFlags* = distinct VkFlags + VkDeviceGroupPresentModeFlagsKHR* = distinct VkFlags + VkDebugReportFlagsEXT* = distinct VkFlags + VkCommandPoolTrimFlags* = distinct VkFlags + VkExternalMemoryHandleTypeFlagsNV* = distinct VkFlags + VkExternalMemoryFeatureFlagsNV* = distinct VkFlags + VkExternalMemoryHandleTypeFlags* = distinct VkFlags + VkExternalMemoryFeatureFlags* = distinct VkFlags + VkExternalSemaphoreHandleTypeFlags* = distinct VkFlags + VkExternalSemaphoreFeatureFlags* = distinct VkFlags + VkSemaphoreImportFlags* = distinct VkFlags + VkExternalFenceHandleTypeFlags* = distinct VkFlags + VkExternalFenceFeatureFlags* = distinct VkFlags + VkFenceImportFlags* = distinct VkFlags + VkSurfaceCounterFlagsEXT* = distinct VkFlags + VkPipelineViewportSwizzleStateCreateFlagsNV* = distinct VkFlags + VkPipelineDiscardRectangleStateCreateFlagsEXT* = distinct VkFlags + VkPipelineCoverageToColorStateCreateFlagsNV* = distinct VkFlags + VkPipelineCoverageModulationStateCreateFlagsNV* = distinct VkFlags + VkPipelineCoverageReductionStateCreateFlagsNV* = distinct VkFlags + VkValidationCacheCreateFlagsEXT* = distinct VkFlags + VkDebugUtilsMessageSeverityFlagsEXT* = distinct VkFlags + VkDebugUtilsMessageTypeFlagsEXT* = distinct VkFlags + VkDebugUtilsMessengerCreateFlagsEXT* = distinct VkFlags + VkDebugUtilsMessengerCallbackDataFlagsEXT* = distinct VkFlags + VkDeviceMemoryReportFlagsEXT* = distinct VkFlags + VkPipelineRasterizationConservativeStateCreateFlagsEXT* = distinct VkFlags + VkDescriptorBindingFlags* = distinct VkFlags + VkConditionalRenderingFlagsEXT* = distinct VkFlags + VkResolveModeFlags* = distinct VkFlags + VkPipelineRasterizationStateStreamCreateFlagsEXT* = distinct VkFlags + VkPipelineRasterizationDepthClipStateCreateFlagsEXT* = distinct VkFlags + VkSwapchainImageUsageFlagsANDROID* = distinct VkFlags + VkToolPurposeFlags* = distinct VkFlags + VkSubmitFlags* = distinct VkFlags + VkImageFormatConstraintsFlagsFUCHSIA* = distinct VkFlags + VkImageConstraintsInfoFlagsFUCHSIA* = distinct VkFlags + VkGraphicsPipelineLibraryFlagsEXT* = distinct VkFlags + VkImageCompressionFlagsEXT* = distinct VkFlags + VkImageCompressionFixedRateFlagsEXT* = distinct VkFlags + VkExportMetalObjectTypeFlagsEXT* = distinct VkFlags + VkDeviceAddressBindingFlagsEXT* = distinct VkFlags + VkOpticalFlowGridSizeFlagsNV* = distinct VkFlags + VkOpticalFlowUsageFlagsNV* = distinct VkFlags + VkOpticalFlowSessionCreateFlagsNV* = distinct VkFlags + VkOpticalFlowExecuteFlagsNV* = distinct VkFlags + VkPresentScalingFlagsEXT* = distinct VkFlags + VkPresentGravityFlagsEXT* = distinct VkFlags + VkVideoCodecOperationFlagsKHR* = distinct VkFlags + VkVideoCapabilityFlagsKHR* = distinct VkFlags + VkVideoSessionCreateFlagsKHR* = distinct VkFlags + VkVideoSessionParametersCreateFlagsKHR* = distinct VkFlags + VkVideoBeginCodingFlagsKHR* = distinct VkFlags + VkVideoEndCodingFlagsKHR* = distinct VkFlags + VkVideoCodingControlFlagsKHR* = distinct VkFlags + VkVideoDecodeUsageFlagsKHR* = distinct VkFlags + VkVideoDecodeCapabilityFlagsKHR* = distinct VkFlags + VkVideoDecodeFlagsKHR* = distinct VkFlags + VkVideoDecodeH264PictureLayoutFlagsKHR* = distinct VkFlags + VkVideoEncodeFlagsKHR* = distinct VkFlags + VkVideoEncodeUsageFlagsKHR* = distinct VkFlags + VkVideoEncodeContentFlagsKHR* = distinct VkFlags + VkVideoEncodeCapabilityFlagsKHR* = distinct VkFlags + VkVideoEncodeRateControlFlagsKHR* = distinct VkFlags + VkVideoEncodeRateControlModeFlagsKHR* = distinct VkFlags + VkVideoChromaSubsamplingFlagsKHR* = distinct VkFlags + VkVideoComponentBitDepthFlagsKHR* = distinct VkFlags + VkVideoEncodeH264CapabilityFlagsEXT* = distinct VkFlags + VkVideoEncodeH264InputModeFlagsEXT* = distinct VkFlags + VkVideoEncodeH264OutputModeFlagsEXT* = distinct VkFlags + VkVideoEncodeH265CapabilityFlagsEXT* = distinct VkFlags + VkVideoEncodeH265InputModeFlagsEXT* = distinct VkFlags + VkVideoEncodeH265OutputModeFlagsEXT* = distinct VkFlags + VkVideoEncodeH265CtbSizeFlagsEXT* = distinct VkFlags + VkVideoEncodeH265TransformBlockSizeFlagsEXT* = distinct VkFlags +let vkGetInstanceProcAddr = cast[proc(instance: VkInstance, name: cstring): pointer {.stdcall.}](checkedSymAddr(vulkanLib, "vkGetInstanceProcAddr")) +type + VkImageLayout* {.size: sizeof(cint).} = enum + VK_IMAGE_LAYOUT_UNDEFINED = 0 + VK_IMAGE_LAYOUT_GENERAL = 1 + VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2 + VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3 + VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4 + VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5 + VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6 + VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7 + VK_IMAGE_LAYOUT_PREINITIALIZED = 8 + VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002 + VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR = 1000024000 + VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR = 1000024001 + VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR = 1000024002 + VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000 + VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000 + VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001 + VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = 1000164003 + VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000 + VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL = 1000241000 + VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL = 1000241001 + VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL = 1000241002 + VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL = 1000241003 + VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR = 1000299000 + VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR = 1000299001 + VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR = 1000299002 + VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL = 1000314000 + VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL = 1000314001 + VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT = 1000339000 + VkAttachmentLoadOp* {.size: sizeof(cint).} = enum + VK_ATTACHMENT_LOAD_OP_LOAD = 0 + VK_ATTACHMENT_LOAD_OP_CLEAR = 1 + VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2 + VK_ATTACHMENT_LOAD_OP_NONE_EXT = 1000400000 + VkAttachmentStoreOp* {.size: sizeof(cint).} = enum + VK_ATTACHMENT_STORE_OP_STORE = 0 + VK_ATTACHMENT_STORE_OP_DONT_CARE = 1 + VK_ATTACHMENT_STORE_OP_NONE = 1000301000 + VkImageType* {.size: sizeof(cint).} = enum + VK_IMAGE_TYPE_1D = 0 + VK_IMAGE_TYPE_2D = 1 + VK_IMAGE_TYPE_3D = 2 + VkImageTiling* {.size: sizeof(cint).} = enum + VK_IMAGE_TILING_OPTIMAL = 0 + VK_IMAGE_TILING_LINEAR = 1 + VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000 + VkImageViewType* {.size: sizeof(cint).} = enum + VK_IMAGE_VIEW_TYPE_1D = 0 + VK_IMAGE_VIEW_TYPE_2D = 1 + VK_IMAGE_VIEW_TYPE_3D = 2 + VK_IMAGE_VIEW_TYPE_CUBE = 3 + VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4 + VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5 + VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6 + VkCommandBufferLevel* {.size: sizeof(cint).} = enum + VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0 + VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1 + VkComponentSwizzle* {.size: sizeof(cint).} = enum + VK_COMPONENT_SWIZZLE_IDENTITY = 0 + VK_COMPONENT_SWIZZLE_ZERO = 1 + VK_COMPONENT_SWIZZLE_ONE = 2 + VK_COMPONENT_SWIZZLE_R = 3 + VK_COMPONENT_SWIZZLE_G = 4 + VK_COMPONENT_SWIZZLE_B = 5 + VK_COMPONENT_SWIZZLE_A = 6 + VkDescriptorType* {.size: sizeof(cint).} = enum + VK_DESCRIPTOR_TYPE_SAMPLER = 0 + VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1 + VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2 + VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3 + VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4 + VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5 + VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6 + VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7 + VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8 + VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9 + VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10 + VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK = 1000138000 + VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000 + VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000 + VK_DESCRIPTOR_TYPE_MUTABLE_EXT = 1000351000 + VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM = 1000440000 + VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM = 1000440001 + VkQueryType* {.size: sizeof(cint).} = enum + VK_QUERY_TYPE_OCCLUSION = 0 + VK_QUERY_TYPE_PIPELINE_STATISTICS = 1 + VK_QUERY_TYPE_TIMESTAMP = 2 + VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR = 1000023000 + VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004 + VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000 + VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = 1000150000 + VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR = 1000150001 + VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000 + VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000 + VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR = 1000299000 + VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT = 1000328000 + VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT = 1000382000 + VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR = 1000386000 + VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR = 1000386001 + VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT = 1000396000 + VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT = 1000396001 + VkBorderColor* {.size: sizeof(cint).} = enum + VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0 + VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1 + VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2 + VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3 + VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4 + VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5 + VK_BORDER_COLOR_FLOAT_CUSTOM_EXT = 1000287003 + VK_BORDER_COLOR_INT_CUSTOM_EXT = 1000287004 + VkPipelineBindPoint* {.size: sizeof(cint).} = enum + VK_PIPELINE_BIND_POINT_GRAPHICS = 0 + VK_PIPELINE_BIND_POINT_COMPUTE = 1 + VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR = 1000165000 + VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI = 1000369003 + VkPipelineCacheHeaderVersion* {.size: sizeof(cint).} = enum + VK_PIPELINE_CACHE_HEADER_VERSION_ONE_ENUM = 1 + VK_PIPELINE_CACHE_HEADER_VERSION_SAFETY_CRITICAL_ONE_ENUM = 1000298001 + VkPipelineCacheCreateFlagBits* {.size: sizeof(cint).} = enum + VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT = 0b00000000000000000000000000000001 + VK_PIPELINE_CACHE_CREATE_RESERVED_1_BIT_EXT = 0b00000000000000000000000000000010 + VK_PIPELINE_CACHE_CREATE_USE_APPLICATION_STORAGE_BIT = 0b00000000000000000000000000000100 +func toBits*(flags: openArray[VkPipelineCacheCreateFlagBits]): VkPipelineCacheCreateFlags = + for flag in flags: + result = VkPipelineCacheCreateFlags(uint(result) or uint(flag)) +func toEnums*(number: VkPipelineCacheCreateFlags): seq[VkPipelineCacheCreateFlagBits] = + for value in VkPipelineCacheCreateFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkPipelineCacheCreateFlags): bool = cint(a) == cint(b) +type + VkPrimitiveTopology* {.size: sizeof(cint).} = enum + VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0 + VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1 + VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2 + VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3 + VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4 + VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5 + VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6 + VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7 + VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8 + VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9 + VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10 + VkSharingMode* {.size: sizeof(cint).} = enum + VK_SHARING_MODE_EXCLUSIVE = 0 + VK_SHARING_MODE_CONCURRENT = 1 + VkIndexType* {.size: sizeof(cint).} = enum + VK_INDEX_TYPE_UINT16 = 0 + VK_INDEX_TYPE_UINT32 = 1 + VK_INDEX_TYPE_NONE_KHR = 1000165000 + VK_INDEX_TYPE_UINT8_EXT = 1000265000 + VkFilter* {.size: sizeof(cint).} = enum + VK_FILTER_NEAREST = 0 + VK_FILTER_LINEAR = 1 + VK_FILTER_CUBIC_EXT = 1000015000 + VkSamplerMipmapMode* {.size: sizeof(cint).} = enum + VK_SAMPLER_MIPMAP_MODE_NEAREST = 0 + VK_SAMPLER_MIPMAP_MODE_LINEAR = 1 + VkSamplerAddressMode* {.size: sizeof(cint).} = enum + VK_SAMPLER_ADDRESS_MODE_REPEAT = 0 + VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1 + VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2 + VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3 + VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4 + VkCompareOp* {.size: sizeof(cint).} = enum + VK_COMPARE_OP_NEVER = 0 + VK_COMPARE_OP_LESS = 1 + VK_COMPARE_OP_EQUAL = 2 + VK_COMPARE_OP_LESS_OR_EQUAL = 3 + VK_COMPARE_OP_GREATER = 4 + VK_COMPARE_OP_NOT_EQUAL = 5 + VK_COMPARE_OP_GREATER_OR_EQUAL = 6 + VK_COMPARE_OP_ALWAYS = 7 + VkPolygonMode* {.size: sizeof(cint).} = enum + VK_POLYGON_MODE_FILL = 0 + VK_POLYGON_MODE_LINE = 1 + VK_POLYGON_MODE_POINT = 2 + VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000 + VkFrontFace* {.size: sizeof(cint).} = enum + VK_FRONT_FACE_COUNTER_CLOCKWISE = 0 + VK_FRONT_FACE_CLOCKWISE = 1 + VkBlendFactor* {.size: sizeof(cint).} = enum + VK_BLEND_FACTOR_ZERO = 0 + VK_BLEND_FACTOR_ONE = 1 + VK_BLEND_FACTOR_SRC_COLOR = 2 + VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3 + VK_BLEND_FACTOR_DST_COLOR = 4 + VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5 + VK_BLEND_FACTOR_SRC_ALPHA = 6 + VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7 + VK_BLEND_FACTOR_DST_ALPHA = 8 + VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9 + VK_BLEND_FACTOR_CONSTANT_COLOR = 10 + VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11 + VK_BLEND_FACTOR_CONSTANT_ALPHA = 12 + VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13 + VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14 + VK_BLEND_FACTOR_SRC1_COLOR = 15 + VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16 + VK_BLEND_FACTOR_SRC1_ALPHA = 17 + VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18 + VkBlendOp* {.size: sizeof(cint).} = enum + VK_BLEND_OP_ADD = 0 + VK_BLEND_OP_SUBTRACT = 1 + VK_BLEND_OP_REVERSE_SUBTRACT = 2 + VK_BLEND_OP_MIN = 3 + VK_BLEND_OP_MAX = 4 + VK_BLEND_OP_ZERO_EXT = 1000148000 + VK_BLEND_OP_SRC_EXT = 1000148001 + VK_BLEND_OP_DST_EXT = 1000148002 + VK_BLEND_OP_SRC_OVER_EXT = 1000148003 + VK_BLEND_OP_DST_OVER_EXT = 1000148004 + VK_BLEND_OP_SRC_IN_EXT = 1000148005 + VK_BLEND_OP_DST_IN_EXT = 1000148006 + VK_BLEND_OP_SRC_OUT_EXT = 1000148007 + VK_BLEND_OP_DST_OUT_EXT = 1000148008 + VK_BLEND_OP_SRC_ATOP_EXT = 1000148009 + VK_BLEND_OP_DST_ATOP_EXT = 1000148010 + VK_BLEND_OP_XOR_EXT = 1000148011 + VK_BLEND_OP_MULTIPLY_EXT = 1000148012 + VK_BLEND_OP_SCREEN_EXT = 1000148013 + VK_BLEND_OP_OVERLAY_EXT = 1000148014 + VK_BLEND_OP_DARKEN_EXT = 1000148015 + VK_BLEND_OP_LIGHTEN_EXT = 1000148016 + VK_BLEND_OP_COLORDODGE_EXT = 1000148017 + VK_BLEND_OP_COLORBURN_EXT = 1000148018 + VK_BLEND_OP_HARDLIGHT_EXT = 1000148019 + VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020 + VK_BLEND_OP_DIFFERENCE_EXT = 1000148021 + VK_BLEND_OP_EXCLUSION_EXT = 1000148022 + VK_BLEND_OP_INVERT_EXT = 1000148023 + VK_BLEND_OP_INVERT_RGB_EXT = 1000148024 + VK_BLEND_OP_LINEARDODGE_EXT = 1000148025 + VK_BLEND_OP_LINEARBURN_EXT = 1000148026 + VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027 + VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028 + VK_BLEND_OP_PINLIGHT_EXT = 1000148029 + VK_BLEND_OP_HARDMIX_EXT = 1000148030 + VK_BLEND_OP_HSL_HUE_EXT = 1000148031 + VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032 + VK_BLEND_OP_HSL_COLOR_EXT = 1000148033 + VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034 + VK_BLEND_OP_PLUS_EXT = 1000148035 + VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036 + VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037 + VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038 + VK_BLEND_OP_MINUS_EXT = 1000148039 + VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040 + VK_BLEND_OP_CONTRAST_EXT = 1000148041 + VK_BLEND_OP_INVERT_OVG_EXT = 1000148042 + VK_BLEND_OP_RED_EXT = 1000148043 + VK_BLEND_OP_GREEN_EXT = 1000148044 + VK_BLEND_OP_BLUE_EXT = 1000148045 + VkStencilOp* {.size: sizeof(cint).} = enum + VK_STENCIL_OP_KEEP = 0 + VK_STENCIL_OP_ZERO = 1 + VK_STENCIL_OP_REPLACE = 2 + VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3 + VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4 + VK_STENCIL_OP_INVERT = 5 + VK_STENCIL_OP_INCREMENT_AND_WRAP = 6 + VK_STENCIL_OP_DECREMENT_AND_WRAP = 7 + VkLogicOp* {.size: sizeof(cint).} = enum + VK_LOGIC_OP_CLEAR = 0 + VK_LOGIC_OP_AND = 1 + VK_LOGIC_OP_AND_REVERSE = 2 + VK_LOGIC_OP_COPY = 3 + VK_LOGIC_OP_AND_INVERTED = 4 + VK_LOGIC_OP_NO_OP = 5 + VK_LOGIC_OP_XOR = 6 + VK_LOGIC_OP_OR = 7 + VK_LOGIC_OP_NOR = 8 + VK_LOGIC_OP_EQUIVALENT = 9 + VK_LOGIC_OP_INVERT = 10 + VK_LOGIC_OP_OR_REVERSE = 11 + VK_LOGIC_OP_COPY_INVERTED = 12 + VK_LOGIC_OP_OR_INVERTED = 13 + VK_LOGIC_OP_NAND = 14 + VK_LOGIC_OP_SET = 15 + VkInternalAllocationType* {.size: sizeof(cint).} = enum + VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0 + VkSystemAllocationScope* {.size: sizeof(cint).} = enum + VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0 + VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1 + VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2 + VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3 + VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4 + VkPhysicalDeviceType* {.size: sizeof(cint).} = enum + VK_PHYSICAL_DEVICE_TYPE_OTHER = 0 + VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1 + VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2 + VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3 + VK_PHYSICAL_DEVICE_TYPE_CPU = 4 + VkVertexInputRate* {.size: sizeof(cint).} = enum + VK_VERTEX_INPUT_RATE_VERTEX = 0 + VK_VERTEX_INPUT_RATE_INSTANCE = 1 + VkFormat* {.size: sizeof(cint).} = enum + VK_FORMAT_UNDEFINED = 0 + VK_FORMAT_R4G4_UNORM_PACK8 = 1 + VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2 + VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3 + VK_FORMAT_R5G6B5_UNORM_PACK16 = 4 + VK_FORMAT_B5G6R5_UNORM_PACK16 = 5 + VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6 + VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7 + VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8 + VK_FORMAT_R8_UNORM = 9 + VK_FORMAT_R8_SNORM = 10 + VK_FORMAT_R8_USCALED = 11 + VK_FORMAT_R8_SSCALED = 12 + VK_FORMAT_R8_UINT = 13 + VK_FORMAT_R8_SINT = 14 + VK_FORMAT_R8_SRGB = 15 + VK_FORMAT_R8G8_UNORM = 16 + VK_FORMAT_R8G8_SNORM = 17 + VK_FORMAT_R8G8_USCALED = 18 + VK_FORMAT_R8G8_SSCALED = 19 + VK_FORMAT_R8G8_UINT = 20 + VK_FORMAT_R8G8_SINT = 21 + VK_FORMAT_R8G8_SRGB = 22 + VK_FORMAT_R8G8B8_UNORM = 23 + VK_FORMAT_R8G8B8_SNORM = 24 + VK_FORMAT_R8G8B8_USCALED = 25 + VK_FORMAT_R8G8B8_SSCALED = 26 + VK_FORMAT_R8G8B8_UINT = 27 + VK_FORMAT_R8G8B8_SINT = 28 + VK_FORMAT_R8G8B8_SRGB = 29 + VK_FORMAT_B8G8R8_UNORM = 30 + VK_FORMAT_B8G8R8_SNORM = 31 + VK_FORMAT_B8G8R8_USCALED = 32 + VK_FORMAT_B8G8R8_SSCALED = 33 + VK_FORMAT_B8G8R8_UINT = 34 + VK_FORMAT_B8G8R8_SINT = 35 + VK_FORMAT_B8G8R8_SRGB = 36 + VK_FORMAT_R8G8B8A8_UNORM = 37 + VK_FORMAT_R8G8B8A8_SNORM = 38 + VK_FORMAT_R8G8B8A8_USCALED = 39 + VK_FORMAT_R8G8B8A8_SSCALED = 40 + VK_FORMAT_R8G8B8A8_UINT = 41 + VK_FORMAT_R8G8B8A8_SINT = 42 + VK_FORMAT_R8G8B8A8_SRGB = 43 + VK_FORMAT_B8G8R8A8_UNORM = 44 + VK_FORMAT_B8G8R8A8_SNORM = 45 + VK_FORMAT_B8G8R8A8_USCALED = 46 + VK_FORMAT_B8G8R8A8_SSCALED = 47 + VK_FORMAT_B8G8R8A8_UINT = 48 + VK_FORMAT_B8G8R8A8_SINT = 49 + VK_FORMAT_B8G8R8A8_SRGB = 50 + VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51 + VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52 + VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53 + VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54 + VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55 + VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56 + VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57 + VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58 + VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59 + VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60 + VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61 + VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62 + VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63 + VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64 + VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65 + VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66 + VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67 + VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68 + VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69 + VK_FORMAT_R16_UNORM = 70 + VK_FORMAT_R16_SNORM = 71 + VK_FORMAT_R16_USCALED = 72 + VK_FORMAT_R16_SSCALED = 73 + VK_FORMAT_R16_UINT = 74 + VK_FORMAT_R16_SINT = 75 + VK_FORMAT_R16_SFLOAT = 76 + VK_FORMAT_R16G16_UNORM = 77 + VK_FORMAT_R16G16_SNORM = 78 + VK_FORMAT_R16G16_USCALED = 79 + VK_FORMAT_R16G16_SSCALED = 80 + VK_FORMAT_R16G16_UINT = 81 + VK_FORMAT_R16G16_SINT = 82 + VK_FORMAT_R16G16_SFLOAT = 83 + VK_FORMAT_R16G16B16_UNORM = 84 + VK_FORMAT_R16G16B16_SNORM = 85 + VK_FORMAT_R16G16B16_USCALED = 86 + VK_FORMAT_R16G16B16_SSCALED = 87 + VK_FORMAT_R16G16B16_UINT = 88 + VK_FORMAT_R16G16B16_SINT = 89 + VK_FORMAT_R16G16B16_SFLOAT = 90 + VK_FORMAT_R16G16B16A16_UNORM = 91 + VK_FORMAT_R16G16B16A16_SNORM = 92 + VK_FORMAT_R16G16B16A16_USCALED = 93 + VK_FORMAT_R16G16B16A16_SSCALED = 94 + VK_FORMAT_R16G16B16A16_UINT = 95 + VK_FORMAT_R16G16B16A16_SINT = 96 + VK_FORMAT_R16G16B16A16_SFLOAT = 97 + VK_FORMAT_R32_UINT = 98 + VK_FORMAT_R32_SINT = 99 + VK_FORMAT_R32_SFLOAT = 100 + VK_FORMAT_R32G32_UINT = 101 + VK_FORMAT_R32G32_SINT = 102 + VK_FORMAT_R32G32_SFLOAT = 103 + VK_FORMAT_R32G32B32_UINT = 104 + VK_FORMAT_R32G32B32_SINT = 105 + VK_FORMAT_R32G32B32_SFLOAT = 106 + VK_FORMAT_R32G32B32A32_UINT = 107 + VK_FORMAT_R32G32B32A32_SINT = 108 + VK_FORMAT_R32G32B32A32_SFLOAT = 109 + VK_FORMAT_R64_UINT = 110 + VK_FORMAT_R64_SINT = 111 + VK_FORMAT_R64_SFLOAT = 112 + VK_FORMAT_R64G64_UINT = 113 + VK_FORMAT_R64G64_SINT = 114 + VK_FORMAT_R64G64_SFLOAT = 115 + VK_FORMAT_R64G64B64_UINT = 116 + VK_FORMAT_R64G64B64_SINT = 117 + VK_FORMAT_R64G64B64_SFLOAT = 118 + VK_FORMAT_R64G64B64A64_UINT = 119 + VK_FORMAT_R64G64B64A64_SINT = 120 + VK_FORMAT_R64G64B64A64_SFLOAT = 121 + VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122 + VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123 + VK_FORMAT_D16_UNORM = 124 + VK_FORMAT_X8_D24_UNORM_PACK32 = 125 + VK_FORMAT_D32_SFLOAT = 126 + VK_FORMAT_S8_UINT = 127 + VK_FORMAT_D16_UNORM_S8_UINT = 128 + VK_FORMAT_D24_UNORM_S8_UINT = 129 + VK_FORMAT_D32_SFLOAT_S8_UINT = 130 + VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131 + VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132 + VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133 + VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134 + VK_FORMAT_BC2_UNORM_BLOCK = 135 + VK_FORMAT_BC2_SRGB_BLOCK = 136 + VK_FORMAT_BC3_UNORM_BLOCK = 137 + VK_FORMAT_BC3_SRGB_BLOCK = 138 + VK_FORMAT_BC4_UNORM_BLOCK = 139 + VK_FORMAT_BC4_SNORM_BLOCK = 140 + VK_FORMAT_BC5_UNORM_BLOCK = 141 + VK_FORMAT_BC5_SNORM_BLOCK = 142 + VK_FORMAT_BC6H_UFLOAT_BLOCK = 143 + VK_FORMAT_BC6H_SFLOAT_BLOCK = 144 + VK_FORMAT_BC7_UNORM_BLOCK = 145 + VK_FORMAT_BC7_SRGB_BLOCK = 146 + VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147 + VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148 + VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149 + VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150 + VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151 + VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152 + VK_FORMAT_EAC_R11_UNORM_BLOCK = 153 + VK_FORMAT_EAC_R11_SNORM_BLOCK = 154 + VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155 + VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156 + VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157 + VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158 + VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159 + VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160 + VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161 + VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162 + VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163 + VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164 + VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165 + VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166 + VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167 + VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168 + VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169 + VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170 + VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171 + VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172 + VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173 + VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174 + VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175 + VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176 + VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177 + VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178 + VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179 + VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180 + VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181 + VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182 + VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183 + VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184 + VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000 + VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001 + VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002 + VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003 + VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004 + VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005 + VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006 + VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007 + VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK = 1000066000 + VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK = 1000066001 + VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK = 1000066002 + VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK = 1000066003 + VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK = 1000066004 + VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK = 1000066005 + VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK = 1000066006 + VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK = 1000066007 + VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK = 1000066008 + VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK = 1000066009 + VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK = 1000066010 + VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK = 1000066011 + VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK = 1000066012 + VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK = 1000066013 + VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000 + VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001 + VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002 + VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003 + VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004 + VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005 + VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006 + VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007 + VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008 + VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009 + VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010 + VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011 + VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012 + VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013 + VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014 + VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015 + VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016 + VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017 + VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018 + VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019 + VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020 + VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021 + VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022 + VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023 + VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024 + VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025 + VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026 + VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027 + VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028 + VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029 + VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030 + VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031 + VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032 + VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033 + VK_FORMAT_ASTC_3x3x3_UNORM_BLOCK_EXT = 1000288000 + VK_FORMAT_ASTC_3x3x3_SRGB_BLOCK_EXT = 1000288001 + VK_FORMAT_ASTC_3x3x3_SFLOAT_BLOCK_EXT = 1000288002 + VK_FORMAT_ASTC_4x3x3_UNORM_BLOCK_EXT = 1000288003 + VK_FORMAT_ASTC_4x3x3_SRGB_BLOCK_EXT = 1000288004 + VK_FORMAT_ASTC_4x3x3_SFLOAT_BLOCK_EXT = 1000288005 + VK_FORMAT_ASTC_4x4x3_UNORM_BLOCK_EXT = 1000288006 + VK_FORMAT_ASTC_4x4x3_SRGB_BLOCK_EXT = 1000288007 + VK_FORMAT_ASTC_4x4x3_SFLOAT_BLOCK_EXT = 1000288008 + VK_FORMAT_ASTC_4x4x4_UNORM_BLOCK_EXT = 1000288009 + VK_FORMAT_ASTC_4x4x4_SRGB_BLOCK_EXT = 1000288010 + VK_FORMAT_ASTC_4x4x4_SFLOAT_BLOCK_EXT = 1000288011 + VK_FORMAT_ASTC_5x4x4_UNORM_BLOCK_EXT = 1000288012 + VK_FORMAT_ASTC_5x4x4_SRGB_BLOCK_EXT = 1000288013 + VK_FORMAT_ASTC_5x4x4_SFLOAT_BLOCK_EXT = 1000288014 + VK_FORMAT_ASTC_5x5x4_UNORM_BLOCK_EXT = 1000288015 + VK_FORMAT_ASTC_5x5x4_SRGB_BLOCK_EXT = 1000288016 + VK_FORMAT_ASTC_5x5x4_SFLOAT_BLOCK_EXT = 1000288017 + VK_FORMAT_ASTC_5x5x5_UNORM_BLOCK_EXT = 1000288018 + VK_FORMAT_ASTC_5x5x5_SRGB_BLOCK_EXT = 1000288019 + VK_FORMAT_ASTC_5x5x5_SFLOAT_BLOCK_EXT = 1000288020 + VK_FORMAT_ASTC_6x5x5_UNORM_BLOCK_EXT = 1000288021 + VK_FORMAT_ASTC_6x5x5_SRGB_BLOCK_EXT = 1000288022 + VK_FORMAT_ASTC_6x5x5_SFLOAT_BLOCK_EXT = 1000288023 + VK_FORMAT_ASTC_6x6x5_UNORM_BLOCK_EXT = 1000288024 + VK_FORMAT_ASTC_6x6x5_SRGB_BLOCK_EXT = 1000288025 + VK_FORMAT_ASTC_6x6x5_SFLOAT_BLOCK_EXT = 1000288026 + VK_FORMAT_ASTC_6x6x6_UNORM_BLOCK_EXT = 1000288027 + VK_FORMAT_ASTC_6x6x6_SRGB_BLOCK_EXT = 1000288028 + VK_FORMAT_ASTC_6x6x6_SFLOAT_BLOCK_EXT = 1000288029 + VK_FORMAT_G8_B8R8_2PLANE_444_UNORM = 1000330000 + VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16 = 1000330001 + VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16 = 1000330002 + VK_FORMAT_G16_B16R16_2PLANE_444_UNORM = 1000330003 + VK_FORMAT_A4R4G4B4_UNORM_PACK16 = 1000340000 + VK_FORMAT_A4B4G4R4_UNORM_PACK16 = 1000340001 + VK_FORMAT_R16G16_S10_5_NV = 1000464000 + VkStructureType* {.size: sizeof(cint).} = enum + VK_STRUCTURE_TYPE_APPLICATION_INFO = 0 + VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1 + VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2 + VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3 + VK_STRUCTURE_TYPE_SUBMIT_INFO = 4 + VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5 + VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6 + VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7 + VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8 + VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9 + VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10 + VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11 + VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12 + VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13 + VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14 + VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15 + VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16 + VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17 + VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18 + VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19 + VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20 + VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21 + VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22 + VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23 + VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24 + VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25 + VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26 + VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27 + VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28 + VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29 + VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30 + VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31 + VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32 + VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33 + VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34 + VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35 + VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36 + VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37 + VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38 + VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39 + VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40 + VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41 + VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42 + VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43 + VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44 + VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45 + VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46 + VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47 + VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES = 49 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES = 50 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES = 51 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES = 52 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES = 53 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES = 54 + VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000 + VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001 + VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000 + VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001 + VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR = 1000003000 + VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000 + VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000 + VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000 + VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000 + VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000 + VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID = 1000010000 + VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID = 1000010001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID = 1000010002 + VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000 + VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000 + VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000 + VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001 + VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002 + VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR = 1000023000 + VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR = 1000023001 + VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR = 1000023002 + VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR = 1000023003 + VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR = 1000023004 + VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR = 1000023005 + VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000023006 + VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR = 1000023007 + VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR = 1000023008 + VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR = 1000023009 + VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR = 1000023010 + VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR = 1000023011 + VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR = 1000023012 + VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR = 1000023013 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR = 1000023014 + VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR = 1000023015 + VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR = 1000023016 + VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR = 1000024000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR = 1000024001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR = 1000024002 + VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000 + VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001 + VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT = 1000028000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = 1000028001 + VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = 1000028002 + VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX = 1000029000 + VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX = 1000029001 + VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX = 1000029002 + VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000 + VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX = 1000030001 + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT = 1000038000 + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000038001 + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT = 1000038002 + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT = 1000038003 + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT = 1000038004 + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_EXT = 1000038005 + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_INFO_EXT = 1000038006 + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_EXT = 1000038007 + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT = 1000038008 + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT = 1000038009 + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_REFERENCE_LISTS_INFO_EXT = 1000038010 + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT = 1000039000 + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000039001 + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT = 1000039002 + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT = 1000039003 + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT = 1000039004 + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_EXT = 1000039005 + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_INFO_EXT = 1000039006 + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_EXT = 1000039007 + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_INFO_EXT = 1000039008 + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT = 1000039009 + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT = 1000039010 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR = 1000040000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR = 1000040001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR = 1000040003 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000040004 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR = 1000040005 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR = 1000040006 + VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000 + VK_STRUCTURE_TYPE_RENDERING_INFO = 1000044000 + VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO = 1000044001 + VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO = 1000044002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES = 1000044003 + VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO = 1000044004 + VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000044006 + VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT = 1000044007 + VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD = 1000044008 + VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX = 1000044009 + VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP = 1000049000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000 + VK_STRUCTURE_TYPE_PRIVATE_VENDOR_INFO_RESERVED_OFFSET_0_NV = 1000051000 + VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002 + VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000 + VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001 + VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000 + VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001 + VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001 + VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002 + VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004 + VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006 + VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008 + VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000 + VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003 + VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004 + VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005 + VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006 + VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007 + VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008 + VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009 + VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010 + VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011 + VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012 + VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013 + VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014 + VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000 + VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES = 1000063000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES = 1000066000 + VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001 + VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT = 1000068000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT = 1000068001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT = 1000068002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000 + VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000 + VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002 + VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004 + VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000 + VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001 + VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002 + VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000 + VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001 + VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002 + VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR = 1000073003 + VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000 + VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001 + VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR = 1000074002 + VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000 + VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001 + VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000 + VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000 + VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001 + VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002 + VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR = 1000078003 + VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000 + VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000 + VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = 1000081000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001 + VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES = 1000082000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000 + VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000 + VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000 + VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000 + VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000 + VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000 + VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001 + VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002 + VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003 + VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000 + VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000 + VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000 + VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT = 1000102000 + VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT = 1000102001 + VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES = 1000108000 + VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO = 1000108001 + VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO = 1000108002 + VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO = 1000108003 + VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2 = 1000109000 + VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2 = 1000109001 + VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2 = 1000109002 + VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2 = 1000109003 + VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2 = 1000109004 + VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO = 1000109005 + VK_STRUCTURE_TYPE_SUBPASS_END_INFO = 1000109006 + VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000 + VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001 + VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000 + VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000 + VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001 + VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002 + VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000 + VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR = 1000116000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR = 1000116001 + VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR = 1000116002 + VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR = 1000116003 + VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR = 1000116004 + VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR = 1000116005 + VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR = 1000116006 + VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_RESERVATION_INFO_KHR = 1000116007 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000 + VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001 + VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002 + VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000 + VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001 + VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES = 1000120000 + VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR = 1000121000 + VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR = 1000121001 + VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR = 1000121002 + VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR = 1000121003 + VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = 1000121004 + VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000 + VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000 + VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000 + VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001 + VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000 + VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001 + VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002 + VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003 + VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004 + VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129000 + VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001 + VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002 + VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003 + VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004 + VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005 + VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID = 1000129006 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES = 1000130000 + VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO = 1000130001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES = 1000138000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES = 1000138001 + VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK = 1000138002 + VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO = 1000138003 + VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000 + VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001 + VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003 + VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004 + VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002 + VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003 + VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000 + VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001 + VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002 + VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003 + VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004 + VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO = 1000147000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001 + VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002 + VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000 + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR = 1000150000 + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR = 1000150002 + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR = 1000150003 + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR = 1000150004 + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR = 1000150005 + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR = 1000150006 + VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR = 1000150007 + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR = 1000150009 + VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR = 1000150010 + VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR = 1000150011 + VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR = 1000150012 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR = 1000150013 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR = 1000150014 + VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR = 1000150015 + VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR = 1000150016 + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR = 1000150017 + VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR = 1000150018 + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR = 1000150020 + VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV = 1000154000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV = 1000154001 + VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000 + VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001 + VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002 + VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004 + VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005 + VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000 + VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001 + VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = 1000158000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = 1000158002 + VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = 1000158003 + VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = 1000158004 + VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158005 + VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT = 1000158006 + VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000 + VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001 + VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO = 1000161000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES = 1000161001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES = 1000161002 + VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO = 1000161003 + VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT = 1000161004 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR = 1000163000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR = 1000163001 + VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = 1000164000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = 1000164001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = 1000164002 + VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = 1000164005 + VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV = 1000165000 + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV = 1000165001 + VK_STRUCTURE_TYPE_GEOMETRY_NV = 1000165003 + VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV = 1000165004 + VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV = 1000165005 + VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV = 1000165006 + VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV = 1000165007 + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV = 1000165008 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV = 1000165009 + VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV = 1000165011 + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV = 1000165012 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = 1000166000 + VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = 1000166001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000 + VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT = 1000170000 + VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT = 1000170001 + VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR = 1000174000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES = 1000175000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES = 1000177000 + VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000 + VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES = 1000180000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR = 1000181000 + VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = 1000183000 + VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = 1000184000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR = 1000187000 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000187001 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR = 1000187002 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR = 1000187003 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR = 1000187004 + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR = 1000187005 + VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = 1000189000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000 + VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = 1000190001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = 1000190002 + VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP = 1000191000 + VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO = 1000192000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES = 1000196000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES = 1000197000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES = 1000199000 + VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE = 1000199001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = 1000201000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR = 1000203000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000 + VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002 + VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000 + VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES = 1000207000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES = 1000207001 + VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO = 1000207002 + VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO = 1000207003 + VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO = 1000207004 + VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO = 1000207005 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL = 1000209000 + VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL = 1000210000 + VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL = 1000210001 + VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL = 1000210002 + VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL = 1000210003 + VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL = 1000210004 + VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL = 1000210005 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES = 1000211000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT = 1000212000 + VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD = 1000213000 + VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD = 1000213001 + VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = 1000214000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES = 1000215000 + VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT = 1000217000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT = 1000218000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT = 1000218001 + VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT = 1000218002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES = 1000221000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES = 1000225000 + VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO = 1000225001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES = 1000225002 + VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000226000 + VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR = 1000226001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR = 1000226002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR = 1000226003 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR = 1000226004 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD = 1000227000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD = 1000229000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT = 1000234000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT = 1000237000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT = 1000238000 + VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT = 1000238001 + VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR = 1000239000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV = 1000240000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES = 1000241000 + VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT = 1000241001 + VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT = 1000241002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT = 1000244000 + VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO = 1000244001 + VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT = 1000244002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES = 1000245000 + VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO = 1000246000 + VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT = 1000247000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR = 1000248000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV = 1000249000 + VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV = 1000250000 + VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV = 1000250001 + VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV = 1000250002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT = 1000251000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT = 1000252000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES = 1000253000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT = 1000254000 + VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT = 1000254001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT = 1000254002 + VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT = 1000255000 + VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT = 1000255001 + VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT = 1000255002 + VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT = 1000256000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES = 1000257000 + VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO = 1000257002 + VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO = 1000257003 + VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO = 1000257004 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT = 1000259000 + VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT = 1000259001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT = 1000259002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT = 1000260000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES = 1000261000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT = 1000265000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT = 1000267000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR = 1000269000 + VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR = 1000269001 + VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR = 1000269002 + VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR = 1000269003 + VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004 + VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT = 1000273000 + VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT = 1000274000 + VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT = 1000274001 + VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT = 1000274002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT = 1000275000 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT = 1000275001 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT = 1000275002 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT = 1000275003 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT = 1000275004 + VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT = 1000275005 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES = 1000276000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = 1000277000 + VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV = 1000277001 + VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV = 1000277002 + VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV = 1000277003 + VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV = 1000277004 + VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV = 1000277005 + VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV = 1000277006 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV = 1000277007 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV = 1000278000 + VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV = 1000278001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES = 1000280000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES = 1000280001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = 1000281000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES = 1000281001 + VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM = 1000282000 + VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM = 1000282001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT = 1000284000 + VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT = 1000284001 + VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT = 1000284002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT = 1000286000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT = 1000286001 + VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT = 1000287000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT = 1000287001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT = 1000287002 + VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR = 1000290000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV = 1000292000 + VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV = 1000292001 + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV = 1000292002 + VK_STRUCTURE_TYPE_PRESENT_ID_KHR = 1000294000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR = 1000294001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES = 1000295000 + VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO = 1000295001 + VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO = 1000295002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES = 1000297000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_SC_1_0_FEATURES = 1000298000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_SC_1_0_PROPERTIES = 1000298001 + VK_STRUCTURE_TYPE_DEVICE_OBJECT_RESERVATION_CREATE_INFO = 1000298002 + VK_STRUCTURE_TYPE_COMMAND_POOL_MEMORY_RESERVATION_CREATE_INFO = 1000298003 + VK_STRUCTURE_TYPE_COMMAND_POOL_MEMORY_CONSUMPTION = 1000298004 + VK_STRUCTURE_TYPE_PIPELINE_POOL_SIZE = 1000298005 + VK_STRUCTURE_TYPE_FAULT_DATA = 1000298007 + VK_STRUCTURE_TYPE_FAULT_CALLBACK_INFO = 1000298008 + VK_STRUCTURE_TYPE_PIPELINE_OFFLINE_CREATE_INFO = 1000298010 + VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR = 1000299000 + VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR = 1000299001 + VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR = 1000299002 + VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR = 1000299003 + VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR = 1000299004 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000 + VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001 + VK_STRUCTURE_TYPE_REFRESH_OBJECT_LIST_KHR = 1000308000 + VK_STRUCTURE_TYPE_RESERVED_QCOM = 1000309000 + VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT = 1000311000 + VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT = 1000311001 + VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT = 1000311002 + VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT = 1000311003 + VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT = 1000311004 + VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT = 1000311005 + VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT = 1000311006 + VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT = 1000311007 + VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT = 1000311008 + VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT = 1000311009 + VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311010 + VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311011 + VK_STRUCTURE_TYPE_MEMORY_BARRIER_2 = 1000314000 + VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2 = 1000314001 + VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2 = 1000314002 + VK_STRUCTURE_TYPE_DEPENDENCY_INFO = 1000314003 + VK_STRUCTURE_TYPE_SUBMIT_INFO_2 = 1000314004 + VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO = 1000314005 + VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO = 1000314006 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES = 1000314007 + VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV = 1000314008 + VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV = 1000314009 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT = 1000316000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT = 1000316001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT = 1000316002 + VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT = 1000316003 + VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT = 1000316004 + VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316005 + VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316006 + VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316007 + VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316008 + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316009 + VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT = 1000316010 + VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT = 1000316011 + VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT = 1000316012 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT = 1000320000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT = 1000320001 + VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT = 1000320002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD = 1000321000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR = 1000322000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR = 1000323000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES = 1000325000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = 1000326000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV = 1000326001 + VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV = 1000326002 + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV = 1000327000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV = 1000327001 + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV = 1000327002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT = 1000328000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT = 1000328001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT = 1000330000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = 1000332000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = 1000332001 + VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM = 1000333000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES = 1000335000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR = 1000336000 + VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2 = 1000337000 + VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2 = 1000337001 + VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2 = 1000337002 + VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2 = 1000337003 + VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2 = 1000337004 + VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2 = 1000337005 + VK_STRUCTURE_TYPE_BUFFER_COPY_2 = 1000337006 + VK_STRUCTURE_TYPE_IMAGE_COPY_2 = 1000337007 + VK_STRUCTURE_TYPE_IMAGE_BLIT_2 = 1000337008 + VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2 = 1000337009 + VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2 = 1000337010 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT = 1000338000 + VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT = 1000338001 + VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT = 1000338002 + VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT = 1000338003 + VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT = 1000338004 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT = 1000339000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = 1000340000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT = 1000341000 + VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT = 1000341001 + VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT = 1000341002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT = 1000342000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT = 1000344000 + VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = 1000346000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR = 1000347000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR = 1000347001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR = 1000348013 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT = 1000351000 + VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT = 1000351002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT = 1000352000 + VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT = 1000352001 + VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT = 1000352002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT = 1000353000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT = 1000354000 + VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT = 1000354001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT = 1000355000 + VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT = 1000355001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT = 1000356000 + VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3 = 1000360000 + VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364000 + VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA = 1000364001 + VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364002 + VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365000 + VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365001 + VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA = 1000366000 + VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA = 1000366001 + VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA = 1000366002 + VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA = 1000366003 + VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA = 1000366004 + VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA = 1000366005 + VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA = 1000366006 + VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA = 1000366007 + VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA = 1000366008 + VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA = 1000366009 + VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI = 1000369000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI = 1000369001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI = 1000369002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI = 1000370000 + VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV = 1000371000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = 1000371001 + VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT = 1000372000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT = 1000372001 + VK_STRUCTURE_TYPE_IMPORT_FENCE_SCI_SYNC_INFO_NV = 1000373000 + VK_STRUCTURE_TYPE_EXPORT_FENCE_SCI_SYNC_INFO_NV = 1000373001 + VK_STRUCTURE_TYPE_FENCE_GET_SCI_SYNC_INFO_NV = 1000373002 + VK_STRUCTURE_TYPE_SCI_SYNC_ATTRIBUTES_INFO_NV = 1000373003 + VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_SCI_SYNC_INFO_NV = 1000373004 + VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_SCI_SYNC_INFO_NV = 1000373005 + VK_STRUCTURE_TYPE_SEMAPHORE_GET_SCI_SYNC_INFO_NV = 1000373006 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SCI_SYNC_FEATURES_NV = 1000373007 + VK_STRUCTURE_TYPE_IMPORT_MEMORY_SCI_BUF_INFO_NV = 1000374000 + VK_STRUCTURE_TYPE_EXPORT_MEMORY_SCI_BUF_INFO_NV = 1000374001 + VK_STRUCTURE_TYPE_MEMORY_GET_SCI_BUF_INFO_NV = 1000374002 + VK_STRUCTURE_TYPE_MEMORY_SCI_BUF_PROPERTIES_NV = 1000374003 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCI_BUF_FEATURES_NV = 1000374004 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT = 1000376000 + VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT = 1000376001 + VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT = 1000376002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = 1000377000 + VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = 1000378000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = 1000381000 + VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT = 1000381001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT = 1000382000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR = 1000386000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR = 1000388000 + VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR = 1000388001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT = 1000391000 + VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT = 1000391001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT = 1000392000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT = 1000392001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT = 1000393000 + VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT = 1000396000 + VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT = 1000396001 + VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT = 1000396002 + VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT = 1000396003 + VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT = 1000396004 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT = 1000396005 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT = 1000396006 + VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT = 1000396007 + VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT = 1000396008 + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT = 1000396009 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI = 1000404000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI = 1000404001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT = 1000411000 + VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT = 1000411001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT = 1000412000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES = 1000413000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES = 1000413001 + VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS = 1000413002 + VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS = 1000413003 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM = 1000415000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT = 1000418000 + VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT = 1000418001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE = 1000420000 + VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE = 1000420001 + VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE = 1000420002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT = 1000421000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT = 1000422000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM = 1000425000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM = 1000425001 + VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM = 1000425002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV = 1000426000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV = 1000426001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV = 1000427000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV = 1000427001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV = 1000430000 + VK_STRUCTURE_TYPE_APPLICATION_PARAMETERS_EXT = 1000435000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT = 1000437000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM = 1000440000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM = 1000440001 + VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM = 1000440002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT = 1000455000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT = 1000455001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT = 1000458000 + VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT = 1000458001 + VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT = 1000458002 + VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT = 1000458003 + VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG = 1000459000 + VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG = 1000459001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT = 1000462000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT = 1000462001 + VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT = 1000462002 + VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT = 1000462003 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV = 1000464000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV = 1000464001 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV = 1000464002 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV = 1000464003 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV = 1000464004 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV = 1000464005 + VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV = 1000464010 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT = 1000465000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT = 1000466000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM = 1000484000 + VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM = 1000484001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC = 1000485000 + VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC = 1000485001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM = 1000488000 + VK_STRUCTURE_TYPE_SEMAPHORE_SCI_SYNC_POOL_CREATE_INFO_NV = 1000489000 + VK_STRUCTURE_TYPE_SEMAPHORE_SCI_SYNC_CREATE_INFO_NV = 1000489001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SCI_SYNC_2_FEATURES_NV = 1000489002 + VK_STRUCTURE_TYPE_DEVICE_SEMAPHORE_SCI_SYNC_POOL_RESERVATION_CREATE_INFO_NV = 1000489003 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV = 1000490000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV = 1000490001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM = 1000497000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM = 1000497001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT = 1000498000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM = 1000510000 + VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM = 1000510001 + VkSubpassContents* {.size: sizeof(cint).} = enum + VK_SUBPASS_CONTENTS_INLINE = 0 + VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1 + VkResult* {.size: sizeof(cint).} = enum + VK_ERROR_COMPRESSION_EXHAUSTED_EXT = -1000338000 + VK_ERROR_NO_PIPELINE_MATCH = -1000298001 + VK_ERROR_INVALID_PIPELINE_CACHE_DATA = -1000298000 + VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS = -1000257000 + VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000 + VK_ERROR_NOT_PERMITTED_KHR = -1000174001 + VK_ERROR_FRAGMENTATION = -1000161000 + VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000 + VK_ERROR_INVALID_EXTERNAL_HANDLE = -1000072003 + VK_ERROR_OUT_OF_POOL_MEMORY = -1000069000 + VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR = -1000023005 + VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR = -1000023004 + VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR = -1000023003 + VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR = -1000023002 + VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR = -1000023001 + VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR = -1000023000 + VK_ERROR_INVALID_SHADER_NV = -1000012000 + VK_ERROR_VALIDATION_FAILED_EXT = -1000011001 + VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001 + VK_ERROR_OUT_OF_DATE_KHR = -1000001004 + VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = -1000000001 + VK_ERROR_SURFACE_LOST_KHR = -1000000000 + VK_ERROR_UNKNOWN = -13 + VK_ERROR_FRAGMENTED_POOL = -12 + VK_ERROR_FORMAT_NOT_SUPPORTED = -11 + VK_ERROR_TOO_MANY_OBJECTS = -10 + VK_ERROR_INCOMPATIBLE_DRIVER = -9 + VK_ERROR_FEATURE_NOT_PRESENT = -8 + VK_ERROR_EXTENSION_NOT_PRESENT = -7 + VK_ERROR_LAYER_NOT_PRESENT = -6 + VK_ERROR_MEMORY_MAP_FAILED = -5 + VK_ERROR_DEVICE_LOST = -4 + VK_ERROR_INITIALIZATION_FAILED = -3 + VK_ERROR_OUT_OF_DEVICE_MEMORY = -2 + VK_ERROR_OUT_OF_HOST_MEMORY = -1 + VK_SUCCESS = 0 + VK_NOT_READY = 1 + VK_TIMEOUT = 2 + VK_EVENT_SET = 3 + VK_EVENT_RESET = 4 + VK_INCOMPLETE = 5 + VK_SUBOPTIMAL_KHR = 1000001003 + VK_THREAD_IDLE_KHR = 1000268000 + VK_THREAD_DONE_KHR = 1000268001 + VK_OPERATION_DEFERRED_KHR = 1000268002 + VK_OPERATION_NOT_DEFERRED_KHR = 1000268003 + VK_PIPELINE_COMPILE_REQUIRED = 1000297000 + VkDynamicState* {.size: sizeof(cint).} = enum + VK_DYNAMIC_STATE_VIEWPORT = 0 + VK_DYNAMIC_STATE_SCISSOR = 1 + VK_DYNAMIC_STATE_LINE_WIDTH = 2 + VK_DYNAMIC_STATE_DEPTH_BIAS = 3 + VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4 + VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5 + VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6 + VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7 + VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8 + VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000 + VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000 + VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT = 1000099001 + VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT = 1000099002 + VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000 + VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004 + VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006 + VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV = 1000205000 + VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001 + VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR = 1000226000 + VK_DYNAMIC_STATE_LINE_STIPPLE_EXT = 1000259000 + VK_DYNAMIC_STATE_CULL_MODE = 1000267000 + VK_DYNAMIC_STATE_FRONT_FACE = 1000267001 + VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY = 1000267002 + VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT = 1000267003 + VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT = 1000267004 + VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE = 1000267005 + VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE = 1000267006 + VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE = 1000267007 + VK_DYNAMIC_STATE_DEPTH_COMPARE_OP = 1000267008 + VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE = 1000267009 + VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE = 1000267010 + VK_DYNAMIC_STATE_STENCIL_OP = 1000267011 + VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR = 1000347000 + VK_DYNAMIC_STATE_VERTEX_INPUT_EXT = 1000352000 + VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT = 1000377000 + VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE = 1000377001 + VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE = 1000377002 + VK_DYNAMIC_STATE_LOGIC_OP_EXT = 1000377003 + VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE = 1000377004 + VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT = 1000381000 + VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT = 1000455002 + VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT = 1000455003 + VK_DYNAMIC_STATE_POLYGON_MODE_EXT = 1000455004 + VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT = 1000455005 + VK_DYNAMIC_STATE_SAMPLE_MASK_EXT = 1000455006 + VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT = 1000455007 + VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT = 1000455008 + VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT = 1000455009 + VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT = 1000455010 + VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT = 1000455011 + VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT = 1000455012 + VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT = 1000455013 + VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT = 1000455014 + VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT = 1000455015 + VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT = 1000455016 + VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT = 1000455017 + VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT = 1000455018 + VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT = 1000455019 + VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT = 1000455020 + VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT = 1000455021 + VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT = 1000455022 + VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV = 1000455023 + VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV = 1000455024 + VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV = 1000455025 + VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV = 1000455026 + VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV = 1000455027 + VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV = 1000455028 + VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV = 1000455029 + VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV = 1000455030 + VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV = 1000455031 + VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV = 1000455032 + VkDescriptorUpdateTemplateType* {.size: sizeof(cint).} = enum + VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0 + VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1 + VkObjectType* {.size: sizeof(cint).} = enum + VK_OBJECT_TYPE_UNKNOWN = 0 + VK_OBJECT_TYPE_INSTANCE = 1 + VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2 + VK_OBJECT_TYPE_DEVICE = 3 + VK_OBJECT_TYPE_QUEUE = 4 + VK_OBJECT_TYPE_SEMAPHORE = 5 + VK_OBJECT_TYPE_COMMAND_BUFFER = 6 + VK_OBJECT_TYPE_FENCE = 7 + VK_OBJECT_TYPE_DEVICE_MEMORY = 8 + VK_OBJECT_TYPE_BUFFER = 9 + VK_OBJECT_TYPE_IMAGE = 10 + VK_OBJECT_TYPE_EVENT = 11 + VK_OBJECT_TYPE_QUERY_POOL = 12 + VK_OBJECT_TYPE_BUFFER_VIEW = 13 + VK_OBJECT_TYPE_IMAGE_VIEW = 14 + VK_OBJECT_TYPE_SHADER_MODULE = 15 + VK_OBJECT_TYPE_PIPELINE_CACHE = 16 + VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17 + VK_OBJECT_TYPE_RENDER_PASS = 18 + VK_OBJECT_TYPE_PIPELINE = 19 + VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20 + VK_OBJECT_TYPE_SAMPLER = 21 + VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22 + VK_OBJECT_TYPE_DESCRIPTOR_SET = 23 + VK_OBJECT_TYPE_FRAMEBUFFER = 24 + VK_OBJECT_TYPE_COMMAND_POOL = 25 + VK_OBJECT_TYPE_SURFACE_KHR = 1000000000 + VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000 + VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000 + VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001 + VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000 + VK_OBJECT_TYPE_VIDEO_SESSION_KHR = 1000023000 + VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR = 1000023001 + VK_OBJECT_TYPE_CU_MODULE_NVX = 1000029000 + VK_OBJECT_TYPE_CU_FUNCTION_NVX = 1000029001 + VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000 + VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000 + VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000 + VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000 + VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000 + VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000 + VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL = 1000210000 + VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR = 1000268000 + VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV = 1000277000 + VK_OBJECT_TYPE_PRIVATE_DATA_SLOT = 1000295000 + VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA = 1000366000 + VK_OBJECT_TYPE_MICROMAP_EXT = 1000396000 + VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV = 1000464000 + VK_OBJECT_TYPE_SEMAPHORE_SCI_SYNC_POOL_NV = 1000489000 + VkRayTracingInvocationReorderModeNV* {.size: sizeof(cint).} = enum + VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV = 0 + VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV = 1 + VkDirectDriverLoadingModeLUNARG* {.size: sizeof(cint).} = enum + VK_DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG = 0 + VK_DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG = 1 + VkQueueFlagBits* {.size: sizeof(cint).} = enum + VK_QUEUE_GRAPHICS_BIT = 0b00000000000000000000000000000001 + VK_QUEUE_COMPUTE_BIT = 0b00000000000000000000000000000010 + VK_QUEUE_TRANSFER_BIT = 0b00000000000000000000000000000100 + VK_QUEUE_SPARSE_BINDING_BIT = 0b00000000000000000000000000001000 + VK_QUEUE_PROTECTED_BIT = 0b00000000000000000000000000010000 + VK_QUEUE_VIDEO_DECODE_BIT_KHR = 0b00000000000000000000000000100000 + VK_QUEUE_VIDEO_ENCODE_BIT_KHR = 0b00000000000000000000000001000000 + VK_QUEUE_RESERVED_7_BIT_QCOM = 0b00000000000000000000000010000000 + VK_QUEUE_OPTICAL_FLOW_BIT_NV = 0b00000000000000000000000100000000 + VK_QUEUE_RESERVED_9_BIT_EXT = 0b00000000000000000000001000000000 +func toBits*(flags: openArray[VkQueueFlagBits]): VkQueueFlags = + for flag in flags: + result = VkQueueFlags(uint(result) or uint(flag)) +func toEnums*(number: VkQueueFlags): seq[VkQueueFlagBits] = + for value in VkQueueFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkQueueFlags): bool = cint(a) == cint(b) +type + VkCullModeFlagBits* {.size: sizeof(cint).} = enum + VK_CULL_MODE_FRONT_BIT = 0b00000000000000000000000000000001 + VK_CULL_MODE_BACK_BIT = 0b00000000000000000000000000000010 +func toBits*(flags: openArray[VkCullModeFlagBits]): VkCullModeFlags = + for flag in flags: + result = VkCullModeFlags(uint(result) or uint(flag)) +func toEnums*(number: VkCullModeFlags): seq[VkCullModeFlagBits] = + for value in VkCullModeFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkCullModeFlags): bool = cint(a) == cint(b) +const + VK_CULL_MODE_NONE* = 0 + VK_CULL_MODE_FRONT_AND_BACK* = 0x00000003 +type + VkRenderPassCreateFlagBits* {.size: sizeof(cint).} = enum + VK_RENDER_PASS_CREATE_RESERVED_0_BIT_KHR = 0b00000000000000000000000000000001 + VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM = 0b00000000000000000000000000000010 +func toBits*(flags: openArray[VkRenderPassCreateFlagBits]): VkRenderPassCreateFlags = + for flag in flags: + result = VkRenderPassCreateFlags(uint(result) or uint(flag)) +func toEnums*(number: VkRenderPassCreateFlags): seq[VkRenderPassCreateFlagBits] = + for value in VkRenderPassCreateFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkRenderPassCreateFlags): bool = cint(a) == cint(b) +type + VkDeviceQueueCreateFlagBits* {.size: sizeof(cint).} = enum + VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0b00000000000000000000000000000001 + VK_DEVICE_QUEUE_CREATE_RESERVED_1_BIT_QCOM = 0b00000000000000000000000000000010 +func toBits*(flags: openArray[VkDeviceQueueCreateFlagBits]): VkDeviceQueueCreateFlags = + for flag in flags: + result = VkDeviceQueueCreateFlags(uint(result) or uint(flag)) +func toEnums*(number: VkDeviceQueueCreateFlags): seq[VkDeviceQueueCreateFlagBits] = + for value in VkDeviceQueueCreateFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkDeviceQueueCreateFlags): bool = cint(a) == cint(b) +type + VkMemoryPropertyFlagBits* {.size: sizeof(cint).} = enum + VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0b00000000000000000000000000000001 + VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0b00000000000000000000000000000010 + VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0b00000000000000000000000000000100 + VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0b00000000000000000000000000001000 + VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0b00000000000000000000000000010000 + VK_MEMORY_PROPERTY_PROTECTED_BIT = 0b00000000000000000000000000100000 + VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD = 0b00000000000000000000000001000000 + VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD = 0b00000000000000000000000010000000 + VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV = 0b00000000000000000000000100000000 +func toBits*(flags: openArray[VkMemoryPropertyFlagBits]): VkMemoryPropertyFlags = + for flag in flags: + result = VkMemoryPropertyFlags(uint(result) or uint(flag)) +func toEnums*(number: VkMemoryPropertyFlags): seq[VkMemoryPropertyFlagBits] = + for value in VkMemoryPropertyFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkMemoryPropertyFlags): bool = cint(a) == cint(b) +type + VkMemoryHeapFlagBits* {.size: sizeof(cint).} = enum + VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0b00000000000000000000000000000001 + VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0b00000000000000000000000000000010 + VK_MEMORY_HEAP_SEU_SAFE_BIT = 0b00000000000000000000000000000100 +func toBits*(flags: openArray[VkMemoryHeapFlagBits]): VkMemoryHeapFlags = + for flag in flags: + result = VkMemoryHeapFlags(uint(result) or uint(flag)) +func toEnums*(number: VkMemoryHeapFlags): seq[VkMemoryHeapFlagBits] = + for value in VkMemoryHeapFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkMemoryHeapFlags): bool = cint(a) == cint(b) +type + VkAccessFlagBits* {.size: sizeof(cint).} = enum + VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0b00000000000000000000000000000001 + VK_ACCESS_INDEX_READ_BIT = 0b00000000000000000000000000000010 + VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0b00000000000000000000000000000100 + VK_ACCESS_UNIFORM_READ_BIT = 0b00000000000000000000000000001000 + VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0b00000000000000000000000000010000 + VK_ACCESS_SHADER_READ_BIT = 0b00000000000000000000000000100000 + VK_ACCESS_SHADER_WRITE_BIT = 0b00000000000000000000000001000000 + VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0b00000000000000000000000010000000 + VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0b00000000000000000000000100000000 + VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0b00000000000000000000001000000000 + VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0b00000000000000000000010000000000 + VK_ACCESS_TRANSFER_READ_BIT = 0b00000000000000000000100000000000 + VK_ACCESS_TRANSFER_WRITE_BIT = 0b00000000000000000001000000000000 + VK_ACCESS_HOST_READ_BIT = 0b00000000000000000010000000000000 + VK_ACCESS_HOST_WRITE_BIT = 0b00000000000000000100000000000000 + VK_ACCESS_MEMORY_READ_BIT = 0b00000000000000001000000000000000 + VK_ACCESS_MEMORY_WRITE_BIT = 0b00000000000000010000000000000000 + VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV = 0b00000000000000100000000000000000 + VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV = 0b00000000000001000000000000000000 + VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0b00000000000010000000000000000000 + VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0b00000000000100000000000000000000 + VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0b00000000001000000000000000000000 + VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0b00000000010000000000000000000000 + VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0b00000000100000000000000000000000 + VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0b00000001000000000000000000000000 + VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0b00000010000000000000000000000000 + VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0b00000100000000000000000000000000 + VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0b00001000000000000000000000000000 +func toBits*(flags: openArray[VkAccessFlagBits]): VkAccessFlags = + for flag in flags: + result = VkAccessFlags(uint(result) or uint(flag)) +func toEnums*(number: VkAccessFlags): seq[VkAccessFlagBits] = + for value in VkAccessFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkAccessFlags): bool = cint(a) == cint(b) +type + VkBufferUsageFlagBits* {.size: sizeof(cint).} = enum + VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0b00000000000000000000000000000001 + VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0b00000000000000000000000000000010 + VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0b00000000000000000000000000000100 + VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0b00000000000000000000000000001000 + VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0b00000000000000000000000000010000 + VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0b00000000000000000000000000100000 + VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0b00000000000000000000000001000000 + VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0b00000000000000000000000010000000 + VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0b00000000000000000000000100000000 + VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0b00000000000000000000001000000000 + VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR = 0b00000000000000000000010000000000 + VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0b00000000000000000000100000000000 + VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0b00000000000000000001000000000000 + VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0b00000000000000000010000000000000 + VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0b00000000000000000100000000000000 + VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0b00000000000000001000000000000000 + VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0b00000000000000010000000000000000 + VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 0b00000000000000100000000000000000 + VK_BUFFER_USAGE_RESERVED_18_BIT_QCOM = 0b00000000000001000000000000000000 + VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 0b00000000000010000000000000000000 + VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 0b00000000000100000000000000000000 + VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 0b00000000001000000000000000000000 + VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 0b00000000010000000000000000000000 + VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 0b00000000100000000000000000000000 + VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT = 0b00000001000000000000000000000000 + VK_BUFFER_USAGE_RESERVED_25_BIT_AMD = 0b00000010000000000000000000000000 + VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 0b00000100000000000000000000000000 +func toBits*(flags: openArray[VkBufferUsageFlagBits]): VkBufferUsageFlags = + for flag in flags: + result = VkBufferUsageFlags(uint(result) or uint(flag)) +func toEnums*(number: VkBufferUsageFlags): seq[VkBufferUsageFlagBits] = + for value in VkBufferUsageFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkBufferUsageFlags): bool = cint(a) == cint(b) +type + VkBufferCreateFlagBits* {.size: sizeof(cint).} = enum + VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0b00000000000000000000000000000001 + VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0b00000000000000000000000000000010 + VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0b00000000000000000000000000000100 + VK_BUFFER_CREATE_PROTECTED_BIT = 0b00000000000000000000000000001000 + VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0b00000000000000000000000000010000 + VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0b00000000000000000000000000100000 +func toBits*(flags: openArray[VkBufferCreateFlagBits]): VkBufferCreateFlags = + for flag in flags: + result = VkBufferCreateFlags(uint(result) or uint(flag)) +func toEnums*(number: VkBufferCreateFlags): seq[VkBufferCreateFlagBits] = + for value in VkBufferCreateFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkBufferCreateFlags): bool = cint(a) == cint(b) +type + VkShaderStageFlagBits* {.size: sizeof(cint).} = enum + VK_SHADER_STAGE_VERTEX_BIT = 0b00000000000000000000000000000001 + VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0b00000000000000000000000000000010 + VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0b00000000000000000000000000000100 + VK_SHADER_STAGE_GEOMETRY_BIT = 0b00000000000000000000000000001000 + VK_SHADER_STAGE_FRAGMENT_BIT = 0b00000000000000000000000000010000 + VK_SHADER_STAGE_COMPUTE_BIT = 0b00000000000000000000000000100000 + VK_SHADER_STAGE_TASK_BIT_EXT = 0b00000000000000000000000001000000 + VK_SHADER_STAGE_MESH_BIT_EXT = 0b00000000000000000000000010000000 + VK_SHADER_STAGE_RAYGEN_BIT_KHR = 0b00000000000000000000000100000000 + VK_SHADER_STAGE_ANY_HIT_BIT_KHR = 0b00000000000000000000001000000000 + VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR = 0b00000000000000000000010000000000 + VK_SHADER_STAGE_MISS_BIT_KHR = 0b00000000000000000000100000000000 + VK_SHADER_STAGE_INTERSECTION_BIT_KHR = 0b00000000000000000001000000000000 + VK_SHADER_STAGE_CALLABLE_BIT_KHR = 0b00000000000000000010000000000000 + VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI = 0b00000000000000000100000000000000 + VK_SHADER_STAGE_EXT_483_RESERVE_15 = 0b00000000000000001000000000000000 + VK_SHADER_STAGE_EXT_483_RESERVE_16 = 0b00000000000000010000000000000000 + VK_SHADER_STAGE_EXT_483_RESERVE_17 = 0b00000000000000100000000000000000 + VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI = 0b00000000000010000000000000000000 +func toBits*(flags: openArray[VkShaderStageFlagBits]): VkShaderStageFlags = + for flag in flags: + result = VkShaderStageFlags(uint(result) or uint(flag)) +func toEnums*(number: VkShaderStageFlags): seq[VkShaderStageFlagBits] = + for value in VkShaderStageFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkShaderStageFlags): bool = cint(a) == cint(b) +const + VK_SHADER_STAGE_ALL_GRAPHICS* = 0x0000001F + VK_SHADER_STAGE_ALL* = 0x7FFFFFFF +type + VkImageUsageFlagBits* {.size: sizeof(cint).} = enum + VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0b00000000000000000000000000000001 + VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0b00000000000000000000000000000010 + VK_IMAGE_USAGE_SAMPLED_BIT = 0b00000000000000000000000000000100 + VK_IMAGE_USAGE_STORAGE_BIT = 0b00000000000000000000000000001000 + VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0b00000000000000000000000000010000 + VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0b00000000000000000000000000100000 + VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0b00000000000000000000000001000000 + VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0b00000000000000000000000010000000 + VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0b00000000000000000000000100000000 + VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0b00000000000000000000001000000000 + VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0b00000000000000000000010000000000 + VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0b00000000000000000000100000000000 + VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR = 0b00000000000000000001000000000000 + VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0b00000000000000000010000000000000 + VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0b00000000000000000100000000000000 + VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR = 0b00000000000000001000000000000000 + VK_IMAGE_USAGE_RESERVED_16_BIT_QCOM = 0b00000000000000010000000000000000 + VK_IMAGE_USAGE_RESERVED_17_BIT_QCOM = 0b00000000000000100000000000000000 + VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI = 0b00000000000001000000000000000000 + VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0b00000000000010000000000000000000 + VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM = 0b00000000000100000000000000000000 + VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM = 0b00000000001000000000000000000000 + VK_IMAGE_USAGE_RESERVED_22_BIT_EXT = 0b00000000010000000000000000000000 +func toBits*(flags: openArray[VkImageUsageFlagBits]): VkImageUsageFlags = + for flag in flags: + result = VkImageUsageFlags(uint(result) or uint(flag)) +func toEnums*(number: VkImageUsageFlags): seq[VkImageUsageFlagBits] = + for value in VkImageUsageFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkImageUsageFlags): bool = cint(a) == cint(b) +type + VkImageCreateFlagBits* {.size: sizeof(cint).} = enum + VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0b00000000000000000000000000000001 + VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0b00000000000000000000000000000010 + VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0b00000000000000000000000000000100 + VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0b00000000000000000000000000001000 + VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0b00000000000000000000000000010000 + VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0b00000000000000000000000000100000 + VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0b00000000000000000000000001000000 + VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0b00000000000000000000000010000000 + VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0b00000000000000000000000100000000 + VK_IMAGE_CREATE_DISJOINT_BIT = 0b00000000000000000000001000000000 + VK_IMAGE_CREATE_ALIAS_BIT = 0b00000000000000000000010000000000 + VK_IMAGE_CREATE_PROTECTED_BIT = 0b00000000000000000000100000000000 + VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0b00000000000000000001000000000000 + VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 0b00000000000000000010000000000000 + VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 0b00000000000000000100000000000000 + VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM = 0b00000000000000001000000000000000 + VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0b00000000000000010000000000000000 + VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT = 0b00000000000000100000000000000000 + VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT = 0b00000000000001000000000000000000 + VK_IMAGE_CREATE_RESERVED_19_BIT_EXT = 0b00000000000010000000000000000000 +func toBits*(flags: openArray[VkImageCreateFlagBits]): VkImageCreateFlags = + for flag in flags: + result = VkImageCreateFlags(uint(result) or uint(flag)) +func toEnums*(number: VkImageCreateFlags): seq[VkImageCreateFlagBits] = + for value in VkImageCreateFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkImageCreateFlags): bool = cint(a) == cint(b) +type + VkImageViewCreateFlagBits* {.size: sizeof(cint).} = enum + VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 0b00000000000000000000000000000001 + VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = 0b00000000000000000000000000000010 + VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0b00000000000000000000000000000100 +func toBits*(flags: openArray[VkImageViewCreateFlagBits]): VkImageViewCreateFlags = + for flag in flags: + result = VkImageViewCreateFlags(uint(result) or uint(flag)) +func toEnums*(number: VkImageViewCreateFlags): seq[VkImageViewCreateFlagBits] = + for value in VkImageViewCreateFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkImageViewCreateFlags): bool = cint(a) == cint(b) +type + VkSamplerCreateFlagBits* {.size: sizeof(cint).} = enum + VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 0b00000000000000000000000000000001 + VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 0b00000000000000000000000000000010 + VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT = 0b00000000000000000000000000000100 + VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0b00000000000000000000000000001000 + VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM = 0b00000000000000000000000000010000 +func toBits*(flags: openArray[VkSamplerCreateFlagBits]): VkSamplerCreateFlags = + for flag in flags: + result = VkSamplerCreateFlags(uint(result) or uint(flag)) +func toEnums*(number: VkSamplerCreateFlags): seq[VkSamplerCreateFlagBits] = + for value in VkSamplerCreateFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkSamplerCreateFlags): bool = cint(a) == cint(b) +type + VkPipelineCreateFlagBits* {.size: sizeof(cint).} = enum + VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0b00000000000000000000000000000001 + VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0b00000000000000000000000000000010 + VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0b00000000000000000000000000000100 + VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0b00000000000000000000000000001000 + VK_PIPELINE_CREATE_DISPATCH_BASE_BIT = 0b00000000000000000000000000010000 + VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV = 0b00000000000000000000000000100000 + VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR = 0b00000000000000000000000001000000 + VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0b00000000000000000000000010000000 + VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT = 0b00000000000000000000000100000000 + VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT = 0b00000000000000000000001000000000 + VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT = 0b00000000000000000000010000000000 + VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 0b00000000000000000000100000000000 + VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 0b00000000000000000001000000000000 + VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR = 0b00000000000000000010000000000000 + VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0b00000000000000000100000000000000 + VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0b00000000000000001000000000000000 + VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0b00000000000000010000000000000000 + VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 0b00000000000000100000000000000000 + VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 0b00000000000001000000000000000000 + VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = 0b00000000000010000000000000000000 + VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV = 0b00000000000100000000000000000000 + VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0b00000000001000000000000000000000 + VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0b00000000010000000000000000000000 + VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 0b00000000100000000000000000000000 + VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 0b00000001000000000000000000000000 + VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0b00000010000000000000000000000000 + VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0b00000100000000000000000000000000 + VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT = 0b00001000000000000000000000000000 + VK_PIPELINE_CREATE_RESERVED_BIT_28_NV = 0b00010000000000000000000000000000 + VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 0b00100000000000000000000000000000 + VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT = 0b01000000000000000000000000000000 +func toBits*(flags: openArray[VkPipelineCreateFlagBits]): VkPipelineCreateFlags = + for flag in flags: + result = VkPipelineCreateFlags(uint(result) or uint(flag)) +func toEnums*(number: VkPipelineCreateFlags): seq[VkPipelineCreateFlagBits] = + for value in VkPipelineCreateFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkPipelineCreateFlags): bool = cint(a) == cint(b) +type + VkPipelineShaderStageCreateFlagBits* {.size: sizeof(cint).} = enum + VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT = 0b00000000000000000000000000000001 + VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT = 0b00000000000000000000000000000010 + VK_PIPELINE_SHADER_STAGE_CREATE_RESERVED_3_BIT_KHR = 0b00000000000000000000000000001000 +func toBits*(flags: openArray[VkPipelineShaderStageCreateFlagBits]): VkPipelineShaderStageCreateFlags = + for flag in flags: + result = VkPipelineShaderStageCreateFlags(uint(result) or uint(flag)) +func toEnums*(number: VkPipelineShaderStageCreateFlags): seq[VkPipelineShaderStageCreateFlagBits] = + for value in VkPipelineShaderStageCreateFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkPipelineShaderStageCreateFlags): bool = cint(a) == cint(b) +type + VkColorComponentFlagBits* {.size: sizeof(cint).} = enum + VK_COLOR_COMPONENT_R_BIT = 0b00000000000000000000000000000001 + VK_COLOR_COMPONENT_G_BIT = 0b00000000000000000000000000000010 + VK_COLOR_COMPONENT_B_BIT = 0b00000000000000000000000000000100 + VK_COLOR_COMPONENT_A_BIT = 0b00000000000000000000000000001000 +func toBits*(flags: openArray[VkColorComponentFlagBits]): VkColorComponentFlags = + for flag in flags: + result = VkColorComponentFlags(uint(result) or uint(flag)) +func toEnums*(number: VkColorComponentFlags): seq[VkColorComponentFlagBits] = + for value in VkColorComponentFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkColorComponentFlags): bool = cint(a) == cint(b) +type + VkFenceCreateFlagBits* {.size: sizeof(cint).} = enum + VK_FENCE_CREATE_SIGNALED_BIT = 0b00000000000000000000000000000001 +func toBits*(flags: openArray[VkFenceCreateFlagBits]): VkFenceCreateFlags = + for flag in flags: + result = VkFenceCreateFlags(uint(result) or uint(flag)) +func toEnums*(number: VkFenceCreateFlags): seq[VkFenceCreateFlagBits] = + for value in VkFenceCreateFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkFenceCreateFlags): bool = cint(a) == cint(b) +type + VkFormatFeatureFlagBits* {.size: sizeof(cint).} = enum + VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0b00000000000000000000000000000001 + VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0b00000000000000000000000000000010 + VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0b00000000000000000000000000000100 + VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0b00000000000000000000000000001000 + VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0b00000000000000000000000000010000 + VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0b00000000000000000000000000100000 + VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0b00000000000000000000000001000000 + VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0b00000000000000000000000010000000 + VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0b00000000000000000000000100000000 + VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0b00000000000000000000001000000000 + VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0b00000000000000000000010000000000 + VK_FORMAT_FEATURE_BLIT_DST_BIT = 0b00000000000000000000100000000000 + VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0b00000000000000000001000000000000 + VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 0b00000000000000000010000000000000 + VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0b00000000000000000100000000000000 + VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0b00000000000000001000000000000000 + VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0b00000000000000010000000000000000 + VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0b00000000000000100000000000000000 + VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0b00000000000001000000000000000000 + VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0b00000000000010000000000000000000 + VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0b00000000000100000000000000000000 + VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0b00000000001000000000000000000000 + VK_FORMAT_FEATURE_DISJOINT_BIT = 0b00000000010000000000000000000000 + VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0b00000000100000000000000000000000 + VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0b00000001000000000000000000000000 + VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR = 0b00000010000000000000000000000000 + VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR = 0b00000100000000000000000000000000 + VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR = 0b00001000000000000000000000000000 + VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR = 0b00010000000000000000000000000000 + VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0b00100000000000000000000000000000 + VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0b01000000000000000000000000000000 +func toBits*(flags: openArray[VkFormatFeatureFlagBits]): VkFormatFeatureFlags = + for flag in flags: + result = VkFormatFeatureFlags(uint(result) or uint(flag)) +func toEnums*(number: VkFormatFeatureFlags): seq[VkFormatFeatureFlagBits] = + for value in VkFormatFeatureFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkFormatFeatureFlags): bool = cint(a) == cint(b) +type + VkQueryControlFlagBits* {.size: sizeof(cint).} = enum + VK_QUERY_CONTROL_PRECISE_BIT = 0b00000000000000000000000000000001 +func toBits*(flags: openArray[VkQueryControlFlagBits]): VkQueryControlFlags = + for flag in flags: + result = VkQueryControlFlags(uint(result) or uint(flag)) +func toEnums*(number: VkQueryControlFlags): seq[VkQueryControlFlagBits] = + for value in VkQueryControlFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkQueryControlFlags): bool = cint(a) == cint(b) +type + VkQueryResultFlagBits* {.size: sizeof(cint).} = enum + VK_QUERY_RESULT_64_BIT = 0b00000000000000000000000000000001 + VK_QUERY_RESULT_WAIT_BIT = 0b00000000000000000000000000000010 + VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0b00000000000000000000000000000100 + VK_QUERY_RESULT_PARTIAL_BIT = 0b00000000000000000000000000001000 + VK_QUERY_RESULT_WITH_STATUS_BIT_KHR = 0b00000000000000000000000000010000 +func toBits*(flags: openArray[VkQueryResultFlagBits]): VkQueryResultFlags = + for flag in flags: + result = VkQueryResultFlags(uint(result) or uint(flag)) +func toEnums*(number: VkQueryResultFlags): seq[VkQueryResultFlagBits] = + for value in VkQueryResultFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkQueryResultFlags): bool = cint(a) == cint(b) +type + VkCommandBufferUsageFlagBits* {.size: sizeof(cint).} = enum + VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0b00000000000000000000000000000001 + VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0b00000000000000000000000000000010 + VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0b00000000000000000000000000000100 +func toBits*(flags: openArray[VkCommandBufferUsageFlagBits]): VkCommandBufferUsageFlags = + for flag in flags: + result = VkCommandBufferUsageFlags(uint(result) or uint(flag)) +func toEnums*(number: VkCommandBufferUsageFlags): seq[VkCommandBufferUsageFlagBits] = + for value in VkCommandBufferUsageFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkCommandBufferUsageFlags): bool = cint(a) == cint(b) +type + VkQueryPipelineStatisticFlagBits* {.size: sizeof(cint).} = enum + VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0b00000000000000000000000000000001 + VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0b00000000000000000000000000000010 + VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0b00000000000000000000000000000100 + VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0b00000000000000000000000000001000 + VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0b00000000000000000000000000010000 + VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0b00000000000000000000000000100000 + VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0b00000000000000000000000001000000 + VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0b00000000000000000000000010000000 + VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0b00000000000000000000000100000000 + VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0b00000000000000000000001000000000 + VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0b00000000000000000000010000000000 + VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT = 0b00000000000000000000100000000000 + VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT = 0b00000000000000000001000000000000 + VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI = 0b00000000000000000010000000000000 +func toBits*(flags: openArray[VkQueryPipelineStatisticFlagBits]): VkQueryPipelineStatisticFlags = + for flag in flags: + result = VkQueryPipelineStatisticFlags(uint(result) or uint(flag)) +func toEnums*(number: VkQueryPipelineStatisticFlags): seq[VkQueryPipelineStatisticFlagBits] = + for value in VkQueryPipelineStatisticFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkQueryPipelineStatisticFlags): bool = cint(a) == cint(b) +type + VkImageAspectFlagBits* {.size: sizeof(cint).} = enum + VK_IMAGE_ASPECT_COLOR_BIT = 0b00000000000000000000000000000001 + VK_IMAGE_ASPECT_DEPTH_BIT = 0b00000000000000000000000000000010 + VK_IMAGE_ASPECT_STENCIL_BIT = 0b00000000000000000000000000000100 + VK_IMAGE_ASPECT_METADATA_BIT = 0b00000000000000000000000000001000 + VK_IMAGE_ASPECT_PLANE_0_BIT = 0b00000000000000000000000000010000 + VK_IMAGE_ASPECT_PLANE_1_BIT = 0b00000000000000000000000000100000 + VK_IMAGE_ASPECT_PLANE_2_BIT = 0b00000000000000000000000001000000 + VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0b00000000000000000000000010000000 + VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0b00000000000000000000000100000000 + VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0b00000000000000000000001000000000 + VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0b00000000000000000000010000000000 +func toBits*(flags: openArray[VkImageAspectFlagBits]): VkImageAspectFlags = + for flag in flags: + result = VkImageAspectFlags(uint(result) or uint(flag)) +func toEnums*(number: VkImageAspectFlags): seq[VkImageAspectFlagBits] = + for value in VkImageAspectFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkImageAspectFlags): bool = cint(a) == cint(b) +type + VkSparseImageFormatFlagBits* {.size: sizeof(cint).} = enum + VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0b00000000000000000000000000000001 + VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0b00000000000000000000000000000010 + VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0b00000000000000000000000000000100 +func toBits*(flags: openArray[VkSparseImageFormatFlagBits]): VkSparseImageFormatFlags = + for flag in flags: + result = VkSparseImageFormatFlags(uint(result) or uint(flag)) +func toEnums*(number: VkSparseImageFormatFlags): seq[VkSparseImageFormatFlagBits] = + for value in VkSparseImageFormatFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkSparseImageFormatFlags): bool = cint(a) == cint(b) +type + VkSparseMemoryBindFlagBits* {.size: sizeof(cint).} = enum + VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0b00000000000000000000000000000001 +func toBits*(flags: openArray[VkSparseMemoryBindFlagBits]): VkSparseMemoryBindFlags = + for flag in flags: + result = VkSparseMemoryBindFlags(uint(result) or uint(flag)) +func toEnums*(number: VkSparseMemoryBindFlags): seq[VkSparseMemoryBindFlagBits] = + for value in VkSparseMemoryBindFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkSparseMemoryBindFlags): bool = cint(a) == cint(b) +type + VkPipelineStageFlagBits* {.size: sizeof(cint).} = enum + VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0b00000000000000000000000000000001 + VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0b00000000000000000000000000000010 + VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0b00000000000000000000000000000100 + VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0b00000000000000000000000000001000 + VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0b00000000000000000000000000010000 + VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0b00000000000000000000000000100000 + VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0b00000000000000000000000001000000 + VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0b00000000000000000000000010000000 + VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0b00000000000000000000000100000000 + VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0b00000000000000000000001000000000 + VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0b00000000000000000000010000000000 + VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0b00000000000000000000100000000000 + VK_PIPELINE_STAGE_TRANSFER_BIT = 0b00000000000000000001000000000000 + VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0b00000000000000000010000000000000 + VK_PIPELINE_STAGE_HOST_BIT = 0b00000000000000000100000000000000 + VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0b00000000000000001000000000000000 + VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0b00000000000000010000000000000000 + VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = 0b00000000000000100000000000000000 + VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0b00000000000001000000000000000000 + VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT = 0b00000000000010000000000000000000 + VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT = 0b00000000000100000000000000000000 + VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 0b00000000001000000000000000000000 + VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0b00000000010000000000000000000000 + VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0b00000000100000000000000000000000 + VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0b00000001000000000000000000000000 + VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0b00000010000000000000000000000000 +func toBits*(flags: openArray[VkPipelineStageFlagBits]): VkPipelineStageFlags = + for flag in flags: + result = VkPipelineStageFlags(uint(result) or uint(flag)) +func toEnums*(number: VkPipelineStageFlags): seq[VkPipelineStageFlagBits] = + for value in VkPipelineStageFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkPipelineStageFlags): bool = cint(a) == cint(b) +type + VkCommandPoolCreateFlagBits* {.size: sizeof(cint).} = enum + VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0b00000000000000000000000000000001 + VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0b00000000000000000000000000000010 + VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0b00000000000000000000000000000100 +func toBits*(flags: openArray[VkCommandPoolCreateFlagBits]): VkCommandPoolCreateFlags = + for flag in flags: + result = VkCommandPoolCreateFlags(uint(result) or uint(flag)) +func toEnums*(number: VkCommandPoolCreateFlags): seq[VkCommandPoolCreateFlagBits] = + for value in VkCommandPoolCreateFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkCommandPoolCreateFlags): bool = cint(a) == cint(b) +type + VkCommandPoolResetFlagBits* {.size: sizeof(cint).} = enum + VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0b00000000000000000000000000000001 + VK_COMMAND_POOL_RESET_RESERVED_1_BIT_COREAVI = 0b00000000000000000000000000000010 +func toBits*(flags: openArray[VkCommandPoolResetFlagBits]): VkCommandPoolResetFlags = + for flag in flags: + result = VkCommandPoolResetFlags(uint(result) or uint(flag)) +func toEnums*(number: VkCommandPoolResetFlags): seq[VkCommandPoolResetFlagBits] = + for value in VkCommandPoolResetFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkCommandPoolResetFlags): bool = cint(a) == cint(b) +type + VkCommandBufferResetFlagBits* {.size: sizeof(cint).} = enum + VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0b00000000000000000000000000000001 +func toBits*(flags: openArray[VkCommandBufferResetFlagBits]): VkCommandBufferResetFlags = + for flag in flags: + result = VkCommandBufferResetFlags(uint(result) or uint(flag)) +func toEnums*(number: VkCommandBufferResetFlags): seq[VkCommandBufferResetFlagBits] = + for value in VkCommandBufferResetFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkCommandBufferResetFlags): bool = cint(a) == cint(b) +type + VkSampleCountFlagBits* {.size: sizeof(cint).} = enum + VK_SAMPLE_COUNT_1_BIT = 0b00000000000000000000000000000001 + VK_SAMPLE_COUNT_2_BIT = 0b00000000000000000000000000000010 + VK_SAMPLE_COUNT_4_BIT = 0b00000000000000000000000000000100 + VK_SAMPLE_COUNT_8_BIT = 0b00000000000000000000000000001000 + VK_SAMPLE_COUNT_16_BIT = 0b00000000000000000000000000010000 + VK_SAMPLE_COUNT_32_BIT = 0b00000000000000000000000000100000 + VK_SAMPLE_COUNT_64_BIT = 0b00000000000000000000000001000000 +func toBits*(flags: openArray[VkSampleCountFlagBits]): VkSampleCountFlags = + for flag in flags: + result = VkSampleCountFlags(uint(result) or uint(flag)) +func toEnums*(number: VkSampleCountFlags): seq[VkSampleCountFlagBits] = + for value in VkSampleCountFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkSampleCountFlags): bool = cint(a) == cint(b) +type + VkAttachmentDescriptionFlagBits* {.size: sizeof(cint).} = enum + VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0b00000000000000000000000000000001 +func toBits*(flags: openArray[VkAttachmentDescriptionFlagBits]): VkAttachmentDescriptionFlags = + for flag in flags: + result = VkAttachmentDescriptionFlags(uint(result) or uint(flag)) +func toEnums*(number: VkAttachmentDescriptionFlags): seq[VkAttachmentDescriptionFlagBits] = + for value in VkAttachmentDescriptionFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkAttachmentDescriptionFlags): bool = cint(a) == cint(b) +type + VkStencilFaceFlagBits* {.size: sizeof(cint).} = enum + VK_STENCIL_FACE_FRONT_BIT = 0b00000000000000000000000000000001 + VK_STENCIL_FACE_BACK_BIT = 0b00000000000000000000000000000010 +func toBits*(flags: openArray[VkStencilFaceFlagBits]): VkStencilFaceFlags = + for flag in flags: + result = VkStencilFaceFlags(uint(result) or uint(flag)) +func toEnums*(number: VkStencilFaceFlags): seq[VkStencilFaceFlagBits] = + for value in VkStencilFaceFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkStencilFaceFlags): bool = cint(a) == cint(b) +const + VK_STENCIL_FACE_FRONT_AND_BACK* = 0x00000003 +type + VkDescriptorPoolCreateFlagBits* {.size: sizeof(cint).} = enum + VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0b00000000000000000000000000000001 + VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 0b00000000000000000000000000000010 + VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT = 0b00000000000000000000000000000100 +func toBits*(flags: openArray[VkDescriptorPoolCreateFlagBits]): VkDescriptorPoolCreateFlags = + for flag in flags: + result = VkDescriptorPoolCreateFlags(uint(result) or uint(flag)) +func toEnums*(number: VkDescriptorPoolCreateFlags): seq[VkDescriptorPoolCreateFlagBits] = + for value in VkDescriptorPoolCreateFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkDescriptorPoolCreateFlags): bool = cint(a) == cint(b) +type + VkDependencyFlagBits* {.size: sizeof(cint).} = enum + VK_DEPENDENCY_BY_REGION_BIT = 0b00000000000000000000000000000001 + VK_DEPENDENCY_VIEW_LOCAL_BIT = 0b00000000000000000000000000000010 + VK_DEPENDENCY_DEVICE_GROUP_BIT = 0b00000000000000000000000000000100 + VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT = 0b00000000000000000000000000001000 +func toBits*(flags: openArray[VkDependencyFlagBits]): VkDependencyFlags = + for flag in flags: + result = VkDependencyFlags(uint(result) or uint(flag)) +func toEnums*(number: VkDependencyFlags): seq[VkDependencyFlagBits] = + for value in VkDependencyFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkDependencyFlags): bool = cint(a) == cint(b) +type + VkSemaphoreType* {.size: sizeof(cint).} = enum + VK_SEMAPHORE_TYPE_BINARY = 0 + VK_SEMAPHORE_TYPE_TIMELINE = 1 + VkSemaphoreWaitFlagBits* {.size: sizeof(cint).} = enum + VK_SEMAPHORE_WAIT_ANY_BIT = 0b00000000000000000000000000000001 +func toBits*(flags: openArray[VkSemaphoreWaitFlagBits]): VkSemaphoreWaitFlags = + for flag in flags: + result = VkSemaphoreWaitFlags(uint(result) or uint(flag)) +func toEnums*(number: VkSemaphoreWaitFlags): seq[VkSemaphoreWaitFlagBits] = + for value in VkSemaphoreWaitFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkSemaphoreWaitFlags): bool = cint(a) == cint(b) +type + VkPresentModeKHR* {.size: sizeof(cint).} = enum + VK_PRESENT_MODE_IMMEDIATE_KHR = 0 + VK_PRESENT_MODE_MAILBOX_KHR = 1 + VK_PRESENT_MODE_FIFO_KHR = 2 + VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3 + VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000 + VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001 + VkColorSpaceKHR* {.size: sizeof(cint).} = enum + VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0 + VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001 + VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002 + VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT = 1000104003 + VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004 + VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005 + VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006 + VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007 + VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008 + VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009 + VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010 + VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011 + VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012 + VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013 + VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014 + VK_COLOR_SPACE_DISPLAY_NATIVE_AMD = 1000213000 + VkDisplayPlaneAlphaFlagBitsKHR* {.size: sizeof(cint).} = enum + VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0b00000000000000000000000000000001 + VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0b00000000000000000000000000000010 + VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0b00000000000000000000000000000100 + VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0b00000000000000000000000000001000 +func toBits*(flags: openArray[VkDisplayPlaneAlphaFlagBitsKHR]): VkDisplayPlaneAlphaFlagsKHR = + for flag in flags: + result = VkDisplayPlaneAlphaFlagsKHR(uint(result) or uint(flag)) +func toEnums*(number: VkDisplayPlaneAlphaFlagsKHR): seq[VkDisplayPlaneAlphaFlagBitsKHR] = + for value in VkDisplayPlaneAlphaFlagBitsKHR.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkDisplayPlaneAlphaFlagsKHR): bool = cint(a) == cint(b) +type + VkCompositeAlphaFlagBitsKHR* {.size: sizeof(cint).} = enum + VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0b00000000000000000000000000000001 + VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0b00000000000000000000000000000010 + VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0b00000000000000000000000000000100 + VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0b00000000000000000000000000001000 +func toBits*(flags: openArray[VkCompositeAlphaFlagBitsKHR]): VkCompositeAlphaFlagsKHR = + for flag in flags: + result = VkCompositeAlphaFlagsKHR(uint(result) or uint(flag)) +func toEnums*(number: VkCompositeAlphaFlagsKHR): seq[VkCompositeAlphaFlagBitsKHR] = + for value in VkCompositeAlphaFlagBitsKHR.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkCompositeAlphaFlagsKHR): bool = cint(a) == cint(b) +type + VkSurfaceTransformFlagBitsKHR* {.size: sizeof(cint).} = enum + VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0b00000000000000000000000000000001 + VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0b00000000000000000000000000000010 + VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0b00000000000000000000000000000100 + VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0b00000000000000000000000000001000 + VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0b00000000000000000000000000010000 + VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0b00000000000000000000000000100000 + VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0b00000000000000000000000001000000 + VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0b00000000000000000000000010000000 + VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0b00000000000000000000000100000000 +func toBits*(flags: openArray[VkSurfaceTransformFlagBitsKHR]): VkSurfaceTransformFlagsKHR = + for flag in flags: + result = VkSurfaceTransformFlagsKHR(uint(result) or uint(flag)) +func toEnums*(number: VkSurfaceTransformFlagsKHR): seq[VkSurfaceTransformFlagBitsKHR] = + for value in VkSurfaceTransformFlagBitsKHR.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkSurfaceTransformFlagsKHR): bool = cint(a) == cint(b) +type + VkSwapchainImageUsageFlagBitsANDROID* {.size: sizeof(cint).} = enum + VK_SWAPCHAIN_IMAGE_USAGE_SHARED_BIT_ANDROID = 0b00000000000000000000000000000001 +func toBits*(flags: openArray[VkSwapchainImageUsageFlagBitsANDROID]): VkSwapchainImageUsageFlagsANDROID = + for flag in flags: + result = VkSwapchainImageUsageFlagsANDROID(uint(result) or uint(flag)) +func toEnums*(number: VkSwapchainImageUsageFlagsANDROID): seq[VkSwapchainImageUsageFlagBitsANDROID] = + for value in VkSwapchainImageUsageFlagBitsANDROID.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkSwapchainImageUsageFlagsANDROID): bool = cint(a) == cint(b) +type + VkTimeDomainEXT* {.size: sizeof(cint).} = enum + VK_TIME_DOMAIN_DEVICE_EXT = 0 + VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1 + VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2 + VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3 + VkDebugReportFlagBitsEXT* {.size: sizeof(cint).} = enum + VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0b00000000000000000000000000000001 + VK_DEBUG_REPORT_WARNING_BIT_EXT = 0b00000000000000000000000000000010 + VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0b00000000000000000000000000000100 + VK_DEBUG_REPORT_ERROR_BIT_EXT = 0b00000000000000000000000000001000 + VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0b00000000000000000000000000010000 +func toBits*(flags: openArray[VkDebugReportFlagBitsEXT]): VkDebugReportFlagsEXT = + for flag in flags: + result = VkDebugReportFlagsEXT(uint(result) or uint(flag)) +func toEnums*(number: VkDebugReportFlagsEXT): seq[VkDebugReportFlagBitsEXT] = + for value in VkDebugReportFlagBitsEXT.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkDebugReportFlagsEXT): bool = cint(a) == cint(b) +type + VkDebugReportObjectTypeEXT* {.size: sizeof(cint).} = enum + VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0 + VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1 + VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2 + VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3 + VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4 + VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5 + VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6 + VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7 + VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8 + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9 + VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10 + VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11 + VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12 + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13 + VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14 + VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15 + VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16 + VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17 + VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18 + VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20 + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23 + VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24 + VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25 + VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26 + VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27 + VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28 + VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29 + VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30 + VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33 + VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000 + VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001 + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000 + VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000 + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000 + VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000 + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000 + VkDeviceMemoryReportEventTypeEXT* {.size: sizeof(cint).} = enum + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3 + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4 + VkRasterizationOrderAMD* {.size: sizeof(cint).} = enum + VK_RASTERIZATION_ORDER_STRICT_AMD = 0 + VK_RASTERIZATION_ORDER_RELAXED_AMD = 1 + VkExternalMemoryHandleTypeFlagBitsNV* {.size: sizeof(cint).} = enum + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0b00000000000000000000000000000001 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0b00000000000000000000000000000010 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0b00000000000000000000000000000100 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0b00000000000000000000000000001000 +func toBits*(flags: openArray[VkExternalMemoryHandleTypeFlagBitsNV]): VkExternalMemoryHandleTypeFlagsNV = + for flag in flags: + result = VkExternalMemoryHandleTypeFlagsNV(uint(result) or uint(flag)) +func toEnums*(number: VkExternalMemoryHandleTypeFlagsNV): seq[VkExternalMemoryHandleTypeFlagBitsNV] = + for value in VkExternalMemoryHandleTypeFlagBitsNV.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkExternalMemoryHandleTypeFlagsNV): bool = cint(a) == cint(b) +type + VkExternalMemoryFeatureFlagBitsNV* {.size: sizeof(cint).} = enum + VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0b00000000000000000000000000000001 + VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0b00000000000000000000000000000010 + VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0b00000000000000000000000000000100 +func toBits*(flags: openArray[VkExternalMemoryFeatureFlagBitsNV]): VkExternalMemoryFeatureFlagsNV = + for flag in flags: + result = VkExternalMemoryFeatureFlagsNV(uint(result) or uint(flag)) +func toEnums*(number: VkExternalMemoryFeatureFlagsNV): seq[VkExternalMemoryFeatureFlagBitsNV] = + for value in VkExternalMemoryFeatureFlagBitsNV.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkExternalMemoryFeatureFlagsNV): bool = cint(a) == cint(b) +type + VkValidationCheckEXT* {.size: sizeof(cint).} = enum + VK_VALIDATION_CHECK_ALL_EXT = 0 + VK_VALIDATION_CHECK_SHADERS_EXT = 1 + VkValidationFeatureEnableEXT* {.size: sizeof(cint).} = enum + VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0 + VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1 + VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2 + VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3 + VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4 + VkValidationFeatureDisableEXT* {.size: sizeof(cint).} = enum + VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0 + VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1 + VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2 + VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3 + VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4 + VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5 + VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6 + VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7 + VkSubgroupFeatureFlagBits* {.size: sizeof(cint).} = enum + VK_SUBGROUP_FEATURE_BASIC_BIT = 0b00000000000000000000000000000001 + VK_SUBGROUP_FEATURE_VOTE_BIT = 0b00000000000000000000000000000010 + VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0b00000000000000000000000000000100 + VK_SUBGROUP_FEATURE_BALLOT_BIT = 0b00000000000000000000000000001000 + VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0b00000000000000000000000000010000 + VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0b00000000000000000000000000100000 + VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0b00000000000000000000000001000000 + VK_SUBGROUP_FEATURE_QUAD_BIT = 0b00000000000000000000000010000000 + VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0b00000000000000000000000100000000 +func toBits*(flags: openArray[VkSubgroupFeatureFlagBits]): VkSubgroupFeatureFlags = + for flag in flags: + result = VkSubgroupFeatureFlags(uint(result) or uint(flag)) +func toEnums*(number: VkSubgroupFeatureFlags): seq[VkSubgroupFeatureFlagBits] = + for value in VkSubgroupFeatureFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkSubgroupFeatureFlags): bool = cint(a) == cint(b) +type + VkIndirectCommandsLayoutUsageFlagBitsNV* {.size: sizeof(cint).} = enum + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 0b00000000000000000000000000000001 + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 0b00000000000000000000000000000010 + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 0b00000000000000000000000000000100 +func toBits*(flags: openArray[VkIndirectCommandsLayoutUsageFlagBitsNV]): VkIndirectCommandsLayoutUsageFlagsNV = + for flag in flags: + result = VkIndirectCommandsLayoutUsageFlagsNV(uint(result) or uint(flag)) +func toEnums*(number: VkIndirectCommandsLayoutUsageFlagsNV): seq[VkIndirectCommandsLayoutUsageFlagBitsNV] = + for value in VkIndirectCommandsLayoutUsageFlagBitsNV.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkIndirectCommandsLayoutUsageFlagsNV): bool = cint(a) == cint(b) +type + VkIndirectStateFlagBitsNV* {.size: sizeof(cint).} = enum + VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 0b00000000000000000000000000000001 +func toBits*(flags: openArray[VkIndirectStateFlagBitsNV]): VkIndirectStateFlagsNV = + for flag in flags: + result = VkIndirectStateFlagsNV(uint(result) or uint(flag)) +func toEnums*(number: VkIndirectStateFlagsNV): seq[VkIndirectStateFlagBitsNV] = + for value in VkIndirectStateFlagBitsNV.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkIndirectStateFlagsNV): bool = cint(a) == cint(b) +type + VkIndirectCommandsTokenTypeNV* {.size: sizeof(cint).} = enum + VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7 + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV = 1000328000 + VkPrivateDataSlotCreateFlagBits* {.size: sizeof(cint).} = enum + VK_PRIVATE_DATA_SLOT_CREATE_RESERVED_0_BIT_NV = 0b00000000000000000000000000000001 +func toBits*(flags: openArray[VkPrivateDataSlotCreateFlagBits]): VkPrivateDataSlotCreateFlags = + for flag in flags: + result = VkPrivateDataSlotCreateFlags(uint(result) or uint(flag)) +func toEnums*(number: VkPrivateDataSlotCreateFlags): seq[VkPrivateDataSlotCreateFlagBits] = + for value in VkPrivateDataSlotCreateFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkPrivateDataSlotCreateFlags): bool = cint(a) == cint(b) +type + VkDescriptorSetLayoutCreateFlagBits* {.size: sizeof(cint).} = enum + VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0b00000000000000000000000000000001 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 0b00000000000000000000000000000010 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT = 0b00000000000000000000000000000100 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_RESERVED_3_BIT_AMD = 0b00000000000000000000000000001000 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 0b00000000000000000000000000010000 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT = 0b00000000000000000000000000100000 +func toBits*(flags: openArray[VkDescriptorSetLayoutCreateFlagBits]): VkDescriptorSetLayoutCreateFlags = + for flag in flags: + result = VkDescriptorSetLayoutCreateFlags(uint(result) or uint(flag)) +func toEnums*(number: VkDescriptorSetLayoutCreateFlags): seq[VkDescriptorSetLayoutCreateFlagBits] = + for value in VkDescriptorSetLayoutCreateFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkDescriptorSetLayoutCreateFlags): bool = cint(a) == cint(b) +type + VkExternalMemoryHandleTypeFlagBits* {.size: sizeof(cint).} = enum + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0b00000000000000000000000000000001 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0b00000000000000000000000000000010 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0b00000000000000000000000000000100 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0b00000000000000000000000000001000 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0b00000000000000000000000000010000 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0b00000000000000000000000000100000 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0b00000000000000000000000001000000 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0b00000000000000000000000010000000 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0b00000000000000000000000100000000 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0b00000000000000000000001000000000 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0b00000000000000000000010000000000 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA = 0b00000000000000000000100000000000 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV = 0b00000000000000000001000000000000 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCI_BUF_BIT_NV = 0b00000000000000000010000000000000 +func toBits*(flags: openArray[VkExternalMemoryHandleTypeFlagBits]): VkExternalMemoryHandleTypeFlags = + for flag in flags: + result = VkExternalMemoryHandleTypeFlags(uint(result) or uint(flag)) +func toEnums*(number: VkExternalMemoryHandleTypeFlags): seq[VkExternalMemoryHandleTypeFlagBits] = + for value in VkExternalMemoryHandleTypeFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkExternalMemoryHandleTypeFlags): bool = cint(a) == cint(b) +type + VkExternalMemoryFeatureFlagBits* {.size: sizeof(cint).} = enum + VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0b00000000000000000000000000000001 + VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0b00000000000000000000000000000010 + VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0b00000000000000000000000000000100 +func toBits*(flags: openArray[VkExternalMemoryFeatureFlagBits]): VkExternalMemoryFeatureFlags = + for flag in flags: + result = VkExternalMemoryFeatureFlags(uint(result) or uint(flag)) +func toEnums*(number: VkExternalMemoryFeatureFlags): seq[VkExternalMemoryFeatureFlagBits] = + for value in VkExternalMemoryFeatureFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkExternalMemoryFeatureFlags): bool = cint(a) == cint(b) +type + VkExternalSemaphoreHandleTypeFlagBits* {.size: sizeof(cint).} = enum + VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0b00000000000000000000000000000001 + VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0b00000000000000000000000000000010 + VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0b00000000000000000000000000000100 + VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0b00000000000000000000000000001000 + VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0b00000000000000000000000000010000 + VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SCI_SYNC_OBJ_BIT_NV = 0b00000000000000000000000000100000 + VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA = 0b00000000000000000000000010000000 +func toBits*(flags: openArray[VkExternalSemaphoreHandleTypeFlagBits]): VkExternalSemaphoreHandleTypeFlags = + for flag in flags: + result = VkExternalSemaphoreHandleTypeFlags(uint(result) or uint(flag)) +func toEnums*(number: VkExternalSemaphoreHandleTypeFlags): seq[VkExternalSemaphoreHandleTypeFlagBits] = + for value in VkExternalSemaphoreHandleTypeFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkExternalSemaphoreHandleTypeFlags): bool = cint(a) == cint(b) +type + VkExternalSemaphoreFeatureFlagBits* {.size: sizeof(cint).} = enum + VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0b00000000000000000000000000000001 + VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0b00000000000000000000000000000010 +func toBits*(flags: openArray[VkExternalSemaphoreFeatureFlagBits]): VkExternalSemaphoreFeatureFlags = + for flag in flags: + result = VkExternalSemaphoreFeatureFlags(uint(result) or uint(flag)) +func toEnums*(number: VkExternalSemaphoreFeatureFlags): seq[VkExternalSemaphoreFeatureFlagBits] = + for value in VkExternalSemaphoreFeatureFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkExternalSemaphoreFeatureFlags): bool = cint(a) == cint(b) +type + VkSemaphoreImportFlagBits* {.size: sizeof(cint).} = enum + VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0b00000000000000000000000000000001 +func toBits*(flags: openArray[VkSemaphoreImportFlagBits]): VkSemaphoreImportFlags = + for flag in flags: + result = VkSemaphoreImportFlags(uint(result) or uint(flag)) +func toEnums*(number: VkSemaphoreImportFlags): seq[VkSemaphoreImportFlagBits] = + for value in VkSemaphoreImportFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkSemaphoreImportFlags): bool = cint(a) == cint(b) +type + VkExternalFenceHandleTypeFlagBits* {.size: sizeof(cint).} = enum + VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0b00000000000000000000000000000001 + VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0b00000000000000000000000000000010 + VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0b00000000000000000000000000000100 + VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0b00000000000000000000000000001000 + VK_EXTERNAL_FENCE_HANDLE_TYPE_SCI_SYNC_OBJ_BIT_NV = 0b00000000000000000000000000010000 + VK_EXTERNAL_FENCE_HANDLE_TYPE_SCI_SYNC_FENCE_BIT_NV = 0b00000000000000000000000000100000 +func toBits*(flags: openArray[VkExternalFenceHandleTypeFlagBits]): VkExternalFenceHandleTypeFlags = + for flag in flags: + result = VkExternalFenceHandleTypeFlags(uint(result) or uint(flag)) +func toEnums*(number: VkExternalFenceHandleTypeFlags): seq[VkExternalFenceHandleTypeFlagBits] = + for value in VkExternalFenceHandleTypeFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkExternalFenceHandleTypeFlags): bool = cint(a) == cint(b) +type + VkExternalFenceFeatureFlagBits* {.size: sizeof(cint).} = enum + VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0b00000000000000000000000000000001 + VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0b00000000000000000000000000000010 +func toBits*(flags: openArray[VkExternalFenceFeatureFlagBits]): VkExternalFenceFeatureFlags = + for flag in flags: + result = VkExternalFenceFeatureFlags(uint(result) or uint(flag)) +func toEnums*(number: VkExternalFenceFeatureFlags): seq[VkExternalFenceFeatureFlagBits] = + for value in VkExternalFenceFeatureFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkExternalFenceFeatureFlags): bool = cint(a) == cint(b) +type + VkFenceImportFlagBits* {.size: sizeof(cint).} = enum + VK_FENCE_IMPORT_TEMPORARY_BIT = 0b00000000000000000000000000000001 +func toBits*(flags: openArray[VkFenceImportFlagBits]): VkFenceImportFlags = + for flag in flags: + result = VkFenceImportFlags(uint(result) or uint(flag)) +func toEnums*(number: VkFenceImportFlags): seq[VkFenceImportFlagBits] = + for value in VkFenceImportFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkFenceImportFlags): bool = cint(a) == cint(b) +type + VkSurfaceCounterFlagBitsEXT* {.size: sizeof(cint).} = enum + VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 0b00000000000000000000000000000001 +func toBits*(flags: openArray[VkSurfaceCounterFlagBitsEXT]): VkSurfaceCounterFlagsEXT = + for flag in flags: + result = VkSurfaceCounterFlagsEXT(uint(result) or uint(flag)) +func toEnums*(number: VkSurfaceCounterFlagsEXT): seq[VkSurfaceCounterFlagBitsEXT] = + for value in VkSurfaceCounterFlagBitsEXT.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkSurfaceCounterFlagsEXT): bool = cint(a) == cint(b) +type + VkDisplayPowerStateEXT* {.size: sizeof(cint).} = enum + VK_DISPLAY_POWER_STATE_OFF_EXT = 0 + VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1 + VK_DISPLAY_POWER_STATE_ON_EXT = 2 + VkDeviceEventTypeEXT* {.size: sizeof(cint).} = enum + VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0 + VkDisplayEventTypeEXT* {.size: sizeof(cint).} = enum + VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0 + VkPeerMemoryFeatureFlagBits* {.size: sizeof(cint).} = enum + VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0b00000000000000000000000000000001 + VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 0b00000000000000000000000000000010 + VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 0b00000000000000000000000000000100 + VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0b00000000000000000000000000001000 +func toBits*(flags: openArray[VkPeerMemoryFeatureFlagBits]): VkPeerMemoryFeatureFlags = + for flag in flags: + result = VkPeerMemoryFeatureFlags(uint(result) or uint(flag)) +func toEnums*(number: VkPeerMemoryFeatureFlags): seq[VkPeerMemoryFeatureFlagBits] = + for value in VkPeerMemoryFeatureFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkPeerMemoryFeatureFlags): bool = cint(a) == cint(b) +type + VkMemoryAllocateFlagBits* {.size: sizeof(cint).} = enum + VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0b00000000000000000000000000000001 + VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT = 0b00000000000000000000000000000010 + VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0b00000000000000000000000000000100 +func toBits*(flags: openArray[VkMemoryAllocateFlagBits]): VkMemoryAllocateFlags = + for flag in flags: + result = VkMemoryAllocateFlags(uint(result) or uint(flag)) +func toEnums*(number: VkMemoryAllocateFlags): seq[VkMemoryAllocateFlagBits] = + for value in VkMemoryAllocateFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkMemoryAllocateFlags): bool = cint(a) == cint(b) +type + VkDeviceGroupPresentModeFlagBitsKHR* {.size: sizeof(cint).} = enum + VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0b00000000000000000000000000000001 + VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0b00000000000000000000000000000010 + VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0b00000000000000000000000000000100 + VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0b00000000000000000000000000001000 +func toBits*(flags: openArray[VkDeviceGroupPresentModeFlagBitsKHR]): VkDeviceGroupPresentModeFlagsKHR = + for flag in flags: + result = VkDeviceGroupPresentModeFlagsKHR(uint(result) or uint(flag)) +func toEnums*(number: VkDeviceGroupPresentModeFlagsKHR): seq[VkDeviceGroupPresentModeFlagBitsKHR] = + for value in VkDeviceGroupPresentModeFlagBitsKHR.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkDeviceGroupPresentModeFlagsKHR): bool = cint(a) == cint(b) +type + VkSwapchainCreateFlagBitsKHR* {.size: sizeof(cint).} = enum + VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0b00000000000000000000000000000001 + VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0b00000000000000000000000000000010 + VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 0b00000000000000000000000000000100 + VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT = 0b00000000000000000000000000001000 + VK_SWAPCHAIN_CREATE_RESERVED_4_BIT_EXT = 0b00000000000000000000000000010000 +func toBits*(flags: openArray[VkSwapchainCreateFlagBitsKHR]): VkSwapchainCreateFlagsKHR = + for flag in flags: + result = VkSwapchainCreateFlagsKHR(uint(result) or uint(flag)) +func toEnums*(number: VkSwapchainCreateFlagsKHR): seq[VkSwapchainCreateFlagBitsKHR] = + for value in VkSwapchainCreateFlagBitsKHR.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkSwapchainCreateFlagsKHR): bool = cint(a) == cint(b) +type + VkViewportCoordinateSwizzleNV* {.size: sizeof(cint).} = enum + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1 + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3 + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5 + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6 + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7 + VkDiscardRectangleModeEXT* {.size: sizeof(cint).} = enum + VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0 + VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1 + VkSubpassDescriptionFlagBits* {.size: sizeof(cint).} = enum + VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0b00000000000000000000000000000001 + VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0b00000000000000000000000000000010 + VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = 0b00000000000000000000000000000100 + VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = 0b00000000000000000000000000001000 + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT = 0b00000000000000000000000000010000 + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 0b00000000000000000000000000100000 + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 0b00000000000000000000000001000000 + VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT = 0b00000000000000000000000010000000 +func toBits*(flags: openArray[VkSubpassDescriptionFlagBits]): VkSubpassDescriptionFlags = + for flag in flags: + result = VkSubpassDescriptionFlags(uint(result) or uint(flag)) +func toEnums*(number: VkSubpassDescriptionFlags): seq[VkSubpassDescriptionFlagBits] = + for value in VkSubpassDescriptionFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkSubpassDescriptionFlags): bool = cint(a) == cint(b) +type + VkPointClippingBehavior* {.size: sizeof(cint).} = enum + VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0 + VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1 + VkSamplerReductionMode* {.size: sizeof(cint).} = enum + VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE = 0 + VK_SAMPLER_REDUCTION_MODE_MIN = 1 + VK_SAMPLER_REDUCTION_MODE_MAX = 2 + VkTessellationDomainOrigin* {.size: sizeof(cint).} = enum + VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0 + VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1 + VkSamplerYcbcrModelConversion* {.size: sizeof(cint).} = enum + VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0 + VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1 + VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2 + VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3 + VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4 + VkSamplerYcbcrRange* {.size: sizeof(cint).} = enum + VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0 + VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1 + VkChromaLocation* {.size: sizeof(cint).} = enum + VK_CHROMA_LOCATION_COSITED_EVEN = 0 + VK_CHROMA_LOCATION_MIDPOINT = 1 + VkBlendOverlapEXT* {.size: sizeof(cint).} = enum + VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0 + VK_BLEND_OVERLAP_DISJOINT_EXT = 1 + VK_BLEND_OVERLAP_CONJOINT_EXT = 2 + VkCoverageModulationModeNV* {.size: sizeof(cint).} = enum + VK_COVERAGE_MODULATION_MODE_NONE_NV = 0 + VK_COVERAGE_MODULATION_MODE_RGB_NV = 1 + VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2 + VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3 + VkCoverageReductionModeNV* {.size: sizeof(cint).} = enum + VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0 + VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1 + VkValidationCacheHeaderVersionEXT* {.size: sizeof(cint).} = enum + VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1 + VkShaderInfoTypeAMD* {.size: sizeof(cint).} = enum + VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0 + VK_SHADER_INFO_TYPE_BINARY_AMD = 1 + VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2 + VkQueueGlobalPriorityKHR* {.size: sizeof(cint).} = enum + VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = 128 + VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = 256 + VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = 512 + VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = 1024 + VkDebugUtilsMessageSeverityFlagBitsEXT* {.size: sizeof(cint).} = enum + VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0b00000000000000000000000000000001 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0b00000000000000000000000000010000 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0b00000000000000000000000100000000 + VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0b00000000000000000001000000000000 +func toBits*(flags: openArray[VkDebugUtilsMessageSeverityFlagBitsEXT]): VkDebugUtilsMessageSeverityFlagsEXT = + for flag in flags: + result = VkDebugUtilsMessageSeverityFlagsEXT(uint(result) or uint(flag)) +func toEnums*(number: VkDebugUtilsMessageSeverityFlagsEXT): seq[VkDebugUtilsMessageSeverityFlagBitsEXT] = + for value in VkDebugUtilsMessageSeverityFlagBitsEXT.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkDebugUtilsMessageSeverityFlagsEXT): bool = cint(a) == cint(b) +type + VkDebugUtilsMessageTypeFlagBitsEXT* {.size: sizeof(cint).} = enum + VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0b00000000000000000000000000000001 + VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0b00000000000000000000000000000010 + VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0b00000000000000000000000000000100 + VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT = 0b00000000000000000000000000001000 +func toBits*(flags: openArray[VkDebugUtilsMessageTypeFlagBitsEXT]): VkDebugUtilsMessageTypeFlagsEXT = + for flag in flags: + result = VkDebugUtilsMessageTypeFlagsEXT(uint(result) or uint(flag)) +func toEnums*(number: VkDebugUtilsMessageTypeFlagsEXT): seq[VkDebugUtilsMessageTypeFlagBitsEXT] = + for value in VkDebugUtilsMessageTypeFlagBitsEXT.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkDebugUtilsMessageTypeFlagsEXT): bool = cint(a) == cint(b) +type + VkConservativeRasterizationModeEXT* {.size: sizeof(cint).} = enum + VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0 + VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1 + VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2 + VkDescriptorBindingFlagBits* {.size: sizeof(cint).} = enum + VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT = 0b00000000000000000000000000000001 + VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT = 0b00000000000000000000000000000010 + VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT = 0b00000000000000000000000000000100 + VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT = 0b00000000000000000000000000001000 + VK_DESCRIPTOR_BINDING_RESERVED_4_BIT_QCOM = 0b00000000000000000000000000010000 +func toBits*(flags: openArray[VkDescriptorBindingFlagBits]): VkDescriptorBindingFlags = + for flag in flags: + result = VkDescriptorBindingFlags(uint(result) or uint(flag)) +func toEnums*(number: VkDescriptorBindingFlags): seq[VkDescriptorBindingFlagBits] = + for value in VkDescriptorBindingFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkDescriptorBindingFlags): bool = cint(a) == cint(b) +type + VkVendorId* {.size: sizeof(cint).} = enum + VK_VENDOR_ID_VIV = 65537 + VK_VENDOR_ID_VSI = 65538 + VK_VENDOR_ID_KAZAN = 65539 + VK_VENDOR_ID_CODEPLAY = 65540 + VK_VENDOR_ID_MESA = 65541 + VK_VENDOR_ID_POCL = 65542 + VkDriverId* {.size: sizeof(cint).} = enum + VK_DRIVER_ID_AMD_PROPRIETARY = 1 + VK_DRIVER_ID_AMD_OPEN_SOURCE = 2 + VK_DRIVER_ID_MESA_RADV = 3 + VK_DRIVER_ID_NVIDIA_PROPRIETARY = 4 + VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS = 5 + VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA = 6 + VK_DRIVER_ID_IMAGINATION_PROPRIETARY = 7 + VK_DRIVER_ID_QUALCOMM_PROPRIETARY = 8 + VK_DRIVER_ID_ARM_PROPRIETARY = 9 + VK_DRIVER_ID_GOOGLE_SWIFTSHADER = 10 + VK_DRIVER_ID_GGP_PROPRIETARY = 11 + VK_DRIVER_ID_BROADCOM_PROPRIETARY = 12 + VK_DRIVER_ID_MESA_LLVMPIPE = 13 + VK_DRIVER_ID_MOLTENVK = 14 + VK_DRIVER_ID_COREAVI_PROPRIETARY = 15 + VK_DRIVER_ID_JUICE_PROPRIETARY = 16 + VK_DRIVER_ID_VERISILICON_PROPRIETARY = 17 + VK_DRIVER_ID_MESA_TURNIP = 18 + VK_DRIVER_ID_MESA_V3DV = 19 + VK_DRIVER_ID_MESA_PANVK = 20 + VK_DRIVER_ID_SAMSUNG_PROPRIETARY = 21 + VK_DRIVER_ID_MESA_VENUS = 22 + VK_DRIVER_ID_MESA_DOZEN = 23 + VK_DRIVER_ID_MESA_NVK = 24 + VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA = 25 + VkConditionalRenderingFlagBitsEXT* {.size: sizeof(cint).} = enum + VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 0b00000000000000000000000000000001 +func toBits*(flags: openArray[VkConditionalRenderingFlagBitsEXT]): VkConditionalRenderingFlagsEXT = + for flag in flags: + result = VkConditionalRenderingFlagsEXT(uint(result) or uint(flag)) +func toEnums*(number: VkConditionalRenderingFlagsEXT): seq[VkConditionalRenderingFlagBitsEXT] = + for value in VkConditionalRenderingFlagBitsEXT.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkConditionalRenderingFlagsEXT): bool = cint(a) == cint(b) +type + VkResolveModeFlagBits* {.size: sizeof(cint).} = enum + VK_RESOLVE_MODE_SAMPLE_ZERO_BIT = 0b00000000000000000000000000000001 + VK_RESOLVE_MODE_AVERAGE_BIT = 0b00000000000000000000000000000010 + VK_RESOLVE_MODE_MIN_BIT = 0b00000000000000000000000000000100 + VK_RESOLVE_MODE_MAX_BIT = 0b00000000000000000000000000001000 +func toBits*(flags: openArray[VkResolveModeFlagBits]): VkResolveModeFlags = + for flag in flags: + result = VkResolveModeFlags(uint(result) or uint(flag)) +func toEnums*(number: VkResolveModeFlags): seq[VkResolveModeFlagBits] = + for value in VkResolveModeFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkResolveModeFlags): bool = cint(a) == cint(b) +const + VK_RESOLVE_MODE_NONE* = 0 +type + VkShadingRatePaletteEntryNV* {.size: sizeof(cint).} = enum + VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0 + VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1 + VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2 + VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3 + VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10 + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11 + VkCoarseSampleOrderTypeNV* {.size: sizeof(cint).} = enum + VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0 + VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1 + VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2 + VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3 + VkGeometryInstanceFlagBitsKHR* {.size: sizeof(cint).} = enum + VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 0b00000000000000000000000000000001 + VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 0b00000000000000000000000000000010 + VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 0b00000000000000000000000000000100 + VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 0b00000000000000000000000000001000 + VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT = 0b00000000000000000000000000010000 + VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT = 0b00000000000000000000000000100000 +func toBits*(flags: openArray[VkGeometryInstanceFlagBitsKHR]): VkGeometryInstanceFlagsKHR = + for flag in flags: + result = VkGeometryInstanceFlagsKHR(uint(result) or uint(flag)) +func toEnums*(number: VkGeometryInstanceFlagsKHR): seq[VkGeometryInstanceFlagBitsKHR] = + for value in VkGeometryInstanceFlagBitsKHR.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkGeometryInstanceFlagsKHR): bool = cint(a) == cint(b) +type + VkGeometryFlagBitsKHR* {.size: sizeof(cint).} = enum + VK_GEOMETRY_OPAQUE_BIT_KHR = 0b00000000000000000000000000000001 + VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 0b00000000000000000000000000000010 +func toBits*(flags: openArray[VkGeometryFlagBitsKHR]): VkGeometryFlagsKHR = + for flag in flags: + result = VkGeometryFlagsKHR(uint(result) or uint(flag)) +func toEnums*(number: VkGeometryFlagsKHR): seq[VkGeometryFlagBitsKHR] = + for value in VkGeometryFlagBitsKHR.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkGeometryFlagsKHR): bool = cint(a) == cint(b) +type + VkBuildAccelerationStructureFlagBitsKHR* {.size: sizeof(cint).} = enum + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 0b00000000000000000000000000000001 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 0b00000000000000000000000000000010 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 0b00000000000000000000000000000100 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 0b00000000000000000000000000001000 + VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 0b00000000000000000000000000010000 + VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 0b00000000000000000000000000100000 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT = 0b00000000000000000000000001000000 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT = 0b00000000000000000000000010000000 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT = 0b00000000000000000000000100000000 + VK_BUILD_ACCELERATION_STRUCTURE_RESERVED_BIT_9_NV = 0b00000000000000000000001000000000 + VK_BUILD_ACCELERATION_STRUCTURE_RESERVED_BIT_10_NV = 0b00000000000000000000010000000000 +func toBits*(flags: openArray[VkBuildAccelerationStructureFlagBitsKHR]): VkBuildAccelerationStructureFlagsKHR = + for flag in flags: + result = VkBuildAccelerationStructureFlagsKHR(uint(result) or uint(flag)) +func toEnums*(number: VkBuildAccelerationStructureFlagsKHR): seq[VkBuildAccelerationStructureFlagBitsKHR] = + for value in VkBuildAccelerationStructureFlagBitsKHR.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkBuildAccelerationStructureFlagsKHR): bool = cint(a) == cint(b) +type + VkAccelerationStructureCreateFlagBitsKHR* {.size: sizeof(cint).} = enum + VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 0b00000000000000000000000000000001 + VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 0b00000000000000000000000000000100 + VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0b00000000000000000000000000001000 +func toBits*(flags: openArray[VkAccelerationStructureCreateFlagBitsKHR]): VkAccelerationStructureCreateFlagsKHR = + for flag in flags: + result = VkAccelerationStructureCreateFlagsKHR(uint(result) or uint(flag)) +func toEnums*(number: VkAccelerationStructureCreateFlagsKHR): seq[VkAccelerationStructureCreateFlagBitsKHR] = + for value in VkAccelerationStructureCreateFlagBitsKHR.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkAccelerationStructureCreateFlagsKHR): bool = cint(a) == cint(b) +type + VkCopyAccelerationStructureModeKHR* {.size: sizeof(cint).} = enum + VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0 + VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1 + VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2 + VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3 + VkBuildAccelerationStructureModeKHR* {.size: sizeof(cint).} = enum + VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0 + VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1 + VkAccelerationStructureTypeKHR* {.size: sizeof(cint).} = enum + VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0 + VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1 + VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2 + VkGeometryTypeKHR* {.size: sizeof(cint).} = enum + VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0 + VK_GEOMETRY_TYPE_AABBS_KHR = 1 + VK_GEOMETRY_TYPE_INSTANCES_KHR = 2 + VkAccelerationStructureMemoryRequirementsTypeNV* {.size: sizeof(cint).} = enum + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0 + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1 + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2 + VkAccelerationStructureBuildTypeKHR* {.size: sizeof(cint).} = enum + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0 + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1 + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2 + VkRayTracingShaderGroupTypeKHR* {.size: sizeof(cint).} = enum + VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0 + VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1 + VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2 + VkAccelerationStructureCompatibilityKHR* {.size: sizeof(cint).} = enum + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0 + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1 + VkShaderGroupShaderKHR* {.size: sizeof(cint).} = enum + VK_SHADER_GROUP_SHADER_GENERAL_KHR = 0 + VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR = 1 + VK_SHADER_GROUP_SHADER_ANY_HIT_KHR = 2 + VK_SHADER_GROUP_SHADER_INTERSECTION_KHR = 3 + VkMemoryOverallocationBehaviorAMD* {.size: sizeof(cint).} = enum + VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0 + VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1 + VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2 + VkFramebufferCreateFlagBits* {.size: sizeof(cint).} = enum + VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT = 0b00000000000000000000000000000001 +func toBits*(flags: openArray[VkFramebufferCreateFlagBits]): VkFramebufferCreateFlags = + for flag in flags: + result = VkFramebufferCreateFlags(uint(result) or uint(flag)) +func toEnums*(number: VkFramebufferCreateFlags): seq[VkFramebufferCreateFlagBits] = + for value in VkFramebufferCreateFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkFramebufferCreateFlags): bool = cint(a) == cint(b) +type + VkScopeNV* {.size: sizeof(cint).} = enum + VK_SCOPE_DEVICE_NV = 1 + VK_SCOPE_WORKGROUP_NV = 2 + VK_SCOPE_SUBGROUP_NV = 3 + VK_SCOPE_QUEUE_FAMILY_NV = 5 + VkComponentTypeNV* {.size: sizeof(cint).} = enum + VK_COMPONENT_TYPE_FLOAT16_NV = 0 + VK_COMPONENT_TYPE_FLOAT32_NV = 1 + VK_COMPONENT_TYPE_FLOAT64_NV = 2 + VK_COMPONENT_TYPE_SINT8_NV = 3 + VK_COMPONENT_TYPE_SINT16_NV = 4 + VK_COMPONENT_TYPE_SINT32_NV = 5 + VK_COMPONENT_TYPE_SINT64_NV = 6 + VK_COMPONENT_TYPE_UINT8_NV = 7 + VK_COMPONENT_TYPE_UINT16_NV = 8 + VK_COMPONENT_TYPE_UINT32_NV = 9 + VK_COMPONENT_TYPE_UINT64_NV = 10 + VkDeviceDiagnosticsConfigFlagBitsNV* {.size: sizeof(cint).} = enum + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 0b00000000000000000000000000000001 + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 0b00000000000000000000000000000010 + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 0b00000000000000000000000000000100 + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV = 0b00000000000000000000000000001000 +func toBits*(flags: openArray[VkDeviceDiagnosticsConfigFlagBitsNV]): VkDeviceDiagnosticsConfigFlagsNV = + for flag in flags: + result = VkDeviceDiagnosticsConfigFlagsNV(uint(result) or uint(flag)) +func toEnums*(number: VkDeviceDiagnosticsConfigFlagsNV): seq[VkDeviceDiagnosticsConfigFlagBitsNV] = + for value in VkDeviceDiagnosticsConfigFlagBitsNV.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkDeviceDiagnosticsConfigFlagsNV): bool = cint(a) == cint(b) +type + VkPipelineCreationFeedbackFlagBits* {.size: sizeof(cint).} = enum + VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT = 0b00000000000000000000000000000001 + VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT = 0b00000000000000000000000000000010 + VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT = 0b00000000000000000000000000000100 +func toBits*(flags: openArray[VkPipelineCreationFeedbackFlagBits]): VkPipelineCreationFeedbackFlags = + for flag in flags: + result = VkPipelineCreationFeedbackFlags(uint(result) or uint(flag)) +func toEnums*(number: VkPipelineCreationFeedbackFlags): seq[VkPipelineCreationFeedbackFlagBits] = + for value in VkPipelineCreationFeedbackFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkPipelineCreationFeedbackFlags): bool = cint(a) == cint(b) +type + VkFullScreenExclusiveEXT* {.size: sizeof(cint).} = enum + VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT = 0 + VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT = 1 + VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT = 2 + VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT = 3 + VkPerformanceCounterScopeKHR* {.size: sizeof(cint).} = enum + VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0 + VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1 + VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2 + VkMemoryDecompressionMethodFlagBitsNV* {.size: 8.} = enum + VK_MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV = 0b0000000000000000000000000000000000000000000000000000000000000001 +func toBits*(flags: openArray[VkMemoryDecompressionMethodFlagBitsNV]): VkMemoryDecompressionMethodFlagsNV = + for flag in flags: + result = VkMemoryDecompressionMethodFlagsNV(uint64(result) or uint64(flag)) +func toEnums*(number: VkMemoryDecompressionMethodFlagsNV): seq[VkMemoryDecompressionMethodFlagBitsNV] = + for value in VkMemoryDecompressionMethodFlagBitsNV.items: + if (cast[uint64](value) and uint64(number)) > 0: + result.add value +proc `==`*(a, b: VkMemoryDecompressionMethodFlagsNV): bool = uint64(a) == uint64(b) +type + VkPerformanceCounterUnitKHR* {.size: sizeof(cint).} = enum + VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0 + VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1 + VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2 + VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3 + VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4 + VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5 + VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6 + VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7 + VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8 + VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9 + VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10 + VkPerformanceCounterStorageKHR* {.size: sizeof(cint).} = enum + VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0 + VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1 + VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2 + VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3 + VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4 + VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5 + VkPerformanceCounterDescriptionFlagBitsKHR* {.size: sizeof(cint).} = enum + VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 0b00000000000000000000000000000001 + VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 0b00000000000000000000000000000010 +func toBits*(flags: openArray[VkPerformanceCounterDescriptionFlagBitsKHR]): VkPerformanceCounterDescriptionFlagsKHR = + for flag in flags: + result = VkPerformanceCounterDescriptionFlagsKHR(uint(result) or uint(flag)) +func toEnums*(number: VkPerformanceCounterDescriptionFlagsKHR): seq[VkPerformanceCounterDescriptionFlagBitsKHR] = + for value in VkPerformanceCounterDescriptionFlagBitsKHR.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkPerformanceCounterDescriptionFlagsKHR): bool = cint(a) == cint(b) +type + VkPerformanceConfigurationTypeINTEL* {.size: sizeof(cint).} = enum + VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0 + VkQueryPoolSamplingModeINTEL* {.size: sizeof(cint).} = enum + VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0 + VkPerformanceOverrideTypeINTEL* {.size: sizeof(cint).} = enum + VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0 + VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1 + VkPerformanceParameterTypeINTEL* {.size: sizeof(cint).} = enum + VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0 + VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1 + VkPerformanceValueTypeINTEL* {.size: sizeof(cint).} = enum + VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0 + VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1 + VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2 + VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3 + VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4 + VkShaderFloatControlsIndependence* {.size: sizeof(cint).} = enum + VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY = 0 + VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL = 1 + VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE = 2 + VkPipelineExecutableStatisticFormatKHR* {.size: sizeof(cint).} = enum + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2 + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3 + VkLineRasterizationModeEXT* {.size: sizeof(cint).} = enum + VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = 0 + VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = 1 + VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = 2 + VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = 3 + VkFaultLevel* {.size: sizeof(cint).} = enum + VK_FAULT_LEVEL_UNASSIGNED = 0 + VK_FAULT_LEVEL_CRITICAL = 1 + VK_FAULT_LEVEL_RECOVERABLE = 2 + VK_FAULT_LEVEL_WARNING = 3 + VkFaultType* {.size: sizeof(cint).} = enum + VK_FAULT_TYPE_INVALID = 0 + VK_FAULT_TYPE_UNASSIGNED = 1 + VK_FAULT_TYPE_IMPLEMENTATION = 2 + VK_FAULT_TYPE_SYSTEM = 3 + VK_FAULT_TYPE_PHYSICAL_DEVICE = 4 + VK_FAULT_TYPE_COMMAND_BUFFER_FULL = 5 + VK_FAULT_TYPE_INVALID_API_USAGE = 6 + VkFaultQueryBehavior* {.size: sizeof(cint).} = enum + VK_FAULT_QUERY_BEHAVIOR_GET_AND_CLEAR_ALL_FAULTS = 0 + VkToolPurposeFlagBits* {.size: sizeof(cint).} = enum + VK_TOOL_PURPOSE_VALIDATION_BIT = 0b00000000000000000000000000000001 + VK_TOOL_PURPOSE_PROFILING_BIT = 0b00000000000000000000000000000010 + VK_TOOL_PURPOSE_TRACING_BIT = 0b00000000000000000000000000000100 + VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT = 0b00000000000000000000000000001000 + VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT = 0b00000000000000000000000000010000 + VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT = 0b00000000000000000000000000100000 + VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT = 0b00000000000000000000000001000000 +func toBits*(flags: openArray[VkToolPurposeFlagBits]): VkToolPurposeFlags = + for flag in flags: + result = VkToolPurposeFlags(uint(result) or uint(flag)) +func toEnums*(number: VkToolPurposeFlags): seq[VkToolPurposeFlagBits] = + for value in VkToolPurposeFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkToolPurposeFlags): bool = cint(a) == cint(b) +type + VkPipelineMatchControl* {.size: sizeof(cint).} = enum + VK_PIPELINE_MATCH_CONTROL_APPLICATION_UUID_EXACT_MATCH = 0 + VkFragmentShadingRateCombinerOpKHR* {.size: sizeof(cint).} = enum + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3 + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4 + VkFragmentShadingRateNV* {.size: sizeof(cint).} = enum + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9 + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10 + VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11 + VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12 + VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13 + VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14 + VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15 + VkFragmentShadingRateTypeNV* {.size: sizeof(cint).} = enum + VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0 + VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1 + VkSubpassMergeStatusEXT* {.size: sizeof(cint).} = enum + VK_SUBPASS_MERGE_STATUS_MERGED_EXT = 0 + VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT = 1 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT = 2 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT = 3 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT = 4 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT = 5 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT = 6 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT = 7 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT = 8 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT = 9 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT = 10 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT = 11 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT = 12 + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT = 13 + VkAccessFlagBits2* {.size: 8.} = enum + VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT = 0b0000000000000000000000000000000000000000000000000000000000000001 + VK_ACCESS_2_INDEX_READ_BIT = 0b0000000000000000000000000000000000000000000000000000000000000010 + VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT = 0b0000000000000000000000000000000000000000000000000000000000000100 + VK_ACCESS_2_UNIFORM_READ_BIT = 0b0000000000000000000000000000000000000000000000000000000000001000 + VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT = 0b0000000000000000000000000000000000000000000000000000000000010000 + VK_ACCESS_2_SHADER_READ_BIT = 0b0000000000000000000000000000000000000000000000000000000000100000 + VK_ACCESS_2_SHADER_WRITE_BIT = 0b0000000000000000000000000000000000000000000000000000000001000000 + VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT = 0b0000000000000000000000000000000000000000000000000000000010000000 + VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT = 0b0000000000000000000000000000000000000000000000000000000100000000 + VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0b0000000000000000000000000000000000000000000000000000001000000000 + VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0b0000000000000000000000000000000000000000000000000000010000000000 + VK_ACCESS_2_TRANSFER_READ_BIT = 0b0000000000000000000000000000000000000000000000000000100000000000 + VK_ACCESS_2_TRANSFER_WRITE_BIT = 0b0000000000000000000000000000000000000000000000000001000000000000 + VK_ACCESS_2_HOST_READ_BIT = 0b0000000000000000000000000000000000000000000000000010000000000000 + VK_ACCESS_2_HOST_WRITE_BIT = 0b0000000000000000000000000000000000000000000000000100000000000000 + VK_ACCESS_2_MEMORY_READ_BIT = 0b0000000000000000000000000000000000000000000000001000000000000000 + VK_ACCESS_2_MEMORY_WRITE_BIT = 0b0000000000000000000000000000000000000000000000010000000000000000 + VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV = 0b0000000000000000000000000000000000000000000000100000000000000000 + VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV = 0b0000000000000000000000000000000000000000000001000000000000000000 + VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0b0000000000000000000000000000000000000000000010000000000000000000 + VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT = 0b0000000000000000000000000000000000000000000100000000000000000000 + VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0b0000000000000000000000000000000000000000001000000000000000000000 + VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0b0000000000000000000000000000000000000000010000000000000000000000 + VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0b0000000000000000000000000000000000000000100000000000000000000000 + VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0b0000000000000000000000000000000000000001000000000000000000000000 + VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0b0000000000000000000000000000000000000010000000000000000000000000 + VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0b0000000000000000000000000000000000000100000000000000000000000000 + VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0b0000000000000000000000000000000000001000000000000000000000000000 + VK_ACCESS_2_SHADER_SAMPLED_READ_BIT = 0b0000000000000000000000000000000100000000000000000000000000000000 + VK_ACCESS_2_SHADER_STORAGE_READ_BIT = 0b0000000000000000000000000000001000000000000000000000000000000000 + VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT = 0b0000000000000000000000000000010000000000000000000000000000000000 + VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR = 0b0000000000000000000000000000100000000000000000000000000000000000 + VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR = 0b0000000000000000000000000001000000000000000000000000000000000000 + VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR = 0b0000000000000000000000000010000000000000000000000000000000000000 + VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR = 0b0000000000000000000000000100000000000000000000000000000000000000 + VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI = 0b0000000000000000000000001000000000000000000000000000000000000000 + VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR = 0b0000000000000000000000010000000000000000000000000000000000000000 + VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT = 0b0000000000000000000000100000000000000000000000000000000000000000 + VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV = 0b0000000000000000000001000000000000000000000000000000000000000000 + VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV = 0b0000000000000000000010000000000000000000000000000000000000000000 + VK_ACCESS_2_MICROMAP_READ_BIT_EXT = 0b0000000000000000000100000000000000000000000000000000000000000000 + VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT = 0b0000000000000000001000000000000000000000000000000000000000000000 + VK_ACCESS_2_RESERVED_46_BIT_EXT = 0b0000000000000000010000000000000000000000000000000000000000000000 +func toBits*(flags: openArray[VkAccessFlagBits2]): VkAccessFlags2 = + for flag in flags: + result = VkAccessFlags2(uint64(result) or uint64(flag)) +func toEnums*(number: VkAccessFlags2): seq[VkAccessFlagBits2] = + for value in VkAccessFlagBits2.items: + if (cast[uint64](value) and uint64(number)) > 0: + result.add value +proc `==`*(a, b: VkAccessFlags2): bool = uint64(a) == uint64(b) +const + VK_ACCESS_2_NONE* = 0 +type + VkPipelineStageFlagBits2* {.size: 8.} = enum + VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT = 0b0000000000000000000000000000000000000000000000000000000000000001 + VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT = 0b0000000000000000000000000000000000000000000000000000000000000010 + VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT = 0b0000000000000000000000000000000000000000000000000000000000000100 + VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT = 0b0000000000000000000000000000000000000000000000000000000000001000 + VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT = 0b0000000000000000000000000000000000000000000000000000000000010000 + VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT = 0b0000000000000000000000000000000000000000000000000000000000100000 + VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT = 0b0000000000000000000000000000000000000000000000000000000001000000 + VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT = 0b0000000000000000000000000000000000000000000000000000000010000000 + VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT = 0b0000000000000000000000000000000000000000000000000000000100000000 + VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT = 0b0000000000000000000000000000000000000000000000000000001000000000 + VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT = 0b0000000000000000000000000000000000000000000000000000010000000000 + VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT = 0b0000000000000000000000000000000000000000000000000000100000000000 + VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT = 0b0000000000000000000000000000000000000000000000000001000000000000 + VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT = 0b0000000000000000000000000000000000000000000000000010000000000000 + VK_PIPELINE_STAGE_2_HOST_BIT = 0b0000000000000000000000000000000000000000000000000100000000000000 + VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT = 0b0000000000000000000000000000000000000000000000001000000000000000 + VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT = 0b0000000000000000000000000000000000000000000000010000000000000000 + VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV = 0b0000000000000000000000000000000000000000000000100000000000000000 + VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0b0000000000000000000000000000000000000000000001000000000000000000 + VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT = 0b0000000000000000000000000000000000000000000010000000000000000000 + VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT = 0b0000000000000000000000000000000000000000000100000000000000000000 + VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR = 0b0000000000000000000000000000000000000000001000000000000000000000 + VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0b0000000000000000000000000000000000000000010000000000000000000000 + VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0b0000000000000000000000000000000000000000100000000000000000000000 + VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT = 0b0000000000000000000000000000000000000001000000000000000000000000 + VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0b0000000000000000000000000000000000000010000000000000000000000000 + VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR = 0b0000000000000000000000000000000000000100000000000000000000000000 + VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR = 0b0000000000000000000000000000000000001000000000000000000000000000 + VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR = 0b0000000000000000000000000000000000010000000000000000000000000000 + VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV = 0b0000000000000000000000000000000000100000000000000000000000000000 + VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT = 0b0000000000000000000000000000000001000000000000000000000000000000 + VK_PIPELINE_STAGE_2_COPY_BIT = 0b0000000000000000000000000000000100000000000000000000000000000000 + VK_PIPELINE_STAGE_2_RESOLVE_BIT = 0b0000000000000000000000000000001000000000000000000000000000000000 + VK_PIPELINE_STAGE_2_BLIT_BIT = 0b0000000000000000000000000000010000000000000000000000000000000000 + VK_PIPELINE_STAGE_2_CLEAR_BIT = 0b0000000000000000000000000000100000000000000000000000000000000000 + VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT = 0b0000000000000000000000000001000000000000000000000000000000000000 + VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT = 0b0000000000000000000000000010000000000000000000000000000000000000 + VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT = 0b0000000000000000000000000100000000000000000000000000000000000000 + VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI = 0b0000000000000000000000001000000000000000000000000000000000000000 + VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI = 0b0000000000000000000000010000000000000000000000000000000000000000 + VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI = 0b0000000000000000000000100000000000000000000000000000000000000000 +func toBits*(flags: openArray[VkPipelineStageFlagBits2]): VkPipelineStageFlags2 = + for flag in flags: + result = VkPipelineStageFlags2(uint64(result) or uint64(flag)) +func toEnums*(number: VkPipelineStageFlags2): seq[VkPipelineStageFlagBits2] = + for value in VkPipelineStageFlagBits2.items: + if (cast[uint64](value) and uint64(number)) > 0: + result.add value +proc `==`*(a, b: VkPipelineStageFlags2): bool = uint64(a) == uint64(b) +const + VK_PIPELINE_STAGE_2_NONE* = 0 +type + VkSubmitFlagBits* {.size: sizeof(cint).} = enum + VK_SUBMIT_PROTECTED_BIT = 0b00000000000000000000000000000001 +func toBits*(flags: openArray[VkSubmitFlagBits]): VkSubmitFlags = + for flag in flags: + result = VkSubmitFlags(uint(result) or uint(flag)) +func toEnums*(number: VkSubmitFlags): seq[VkSubmitFlagBits] = + for value in VkSubmitFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkSubmitFlags): bool = cint(a) == cint(b) +type + VkEventCreateFlagBits* {.size: sizeof(cint).} = enum + VK_EVENT_CREATE_DEVICE_ONLY_BIT = 0b00000000000000000000000000000001 +func toBits*(flags: openArray[VkEventCreateFlagBits]): VkEventCreateFlags = + for flag in flags: + result = VkEventCreateFlags(uint(result) or uint(flag)) +func toEnums*(number: VkEventCreateFlags): seq[VkEventCreateFlagBits] = + for value in VkEventCreateFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkEventCreateFlags): bool = cint(a) == cint(b) +type + VkPipelineLayoutCreateFlagBits* {.size: sizeof(cint).} = enum + VK_PIPELINE_LAYOUT_CREATE_RESERVED_0_BIT_AMD = 0b00000000000000000000000000000001 + VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT = 0b00000000000000000000000000000010 +func toBits*(flags: openArray[VkPipelineLayoutCreateFlagBits]): VkPipelineLayoutCreateFlags = + for flag in flags: + result = VkPipelineLayoutCreateFlags(uint(result) or uint(flag)) +func toEnums*(number: VkPipelineLayoutCreateFlags): seq[VkPipelineLayoutCreateFlagBits] = + for value in VkPipelineLayoutCreateFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkPipelineLayoutCreateFlags): bool = cint(a) == cint(b) +type + VkSciSyncClientTypeNV* {.size: sizeof(cint).} = enum + VK_SCI_SYNC_CLIENT_TYPE_SIGNALER_NV = 0 + VK_SCI_SYNC_CLIENT_TYPE_WAITER_NV = 1 + VK_SCI_SYNC_CLIENT_TYPE_SIGNALER_WAITER_NV = 2 + VkSciSyncPrimitiveTypeNV* {.size: sizeof(cint).} = enum + VK_SCI_SYNC_PRIMITIVE_TYPE_FENCE_NV = 0 + VK_SCI_SYNC_PRIMITIVE_TYPE_SEMAPHORE_NV = 1 + VkProvokingVertexModeEXT* {.size: sizeof(cint).} = enum + VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0 + VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1 + VkPipelineCacheValidationVersion* {.size: sizeof(cint).} = enum + VK_PIPELINE_CACHE_VALIDATION_VERSION_SAFETY_CRITICAL_ONE = 1 + VkAccelerationStructureMotionInstanceTypeNV* {.size: sizeof(cint).} = enum + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0 + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1 + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2 + VkPipelineColorBlendStateCreateFlagBits* {.size: sizeof(cint).} = enum + VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT = 0b00000000000000000000000000000001 +func toBits*(flags: openArray[VkPipelineColorBlendStateCreateFlagBits]): VkPipelineColorBlendStateCreateFlags = + for flag in flags: + result = VkPipelineColorBlendStateCreateFlags(uint(result) or uint(flag)) +func toEnums*(number: VkPipelineColorBlendStateCreateFlags): seq[VkPipelineColorBlendStateCreateFlagBits] = + for value in VkPipelineColorBlendStateCreateFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkPipelineColorBlendStateCreateFlags): bool = cint(a) == cint(b) +type + VkPipelineDepthStencilStateCreateFlagBits* {.size: sizeof(cint).} = enum + VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 0b00000000000000000000000000000001 + VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 0b00000000000000000000000000000010 +func toBits*(flags: openArray[VkPipelineDepthStencilStateCreateFlagBits]): VkPipelineDepthStencilStateCreateFlags = + for flag in flags: + result = VkPipelineDepthStencilStateCreateFlags(uint(result) or uint(flag)) +func toEnums*(number: VkPipelineDepthStencilStateCreateFlags): seq[VkPipelineDepthStencilStateCreateFlagBits] = + for value in VkPipelineDepthStencilStateCreateFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkPipelineDepthStencilStateCreateFlags): bool = cint(a) == cint(b) +type + VkGraphicsPipelineLibraryFlagBitsEXT* {.size: sizeof(cint).} = enum + VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT = 0b00000000000000000000000000000001 + VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT = 0b00000000000000000000000000000010 + VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT = 0b00000000000000000000000000000100 + VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT = 0b00000000000000000000000000001000 +func toBits*(flags: openArray[VkGraphicsPipelineLibraryFlagBitsEXT]): VkGraphicsPipelineLibraryFlagsEXT = + for flag in flags: + result = VkGraphicsPipelineLibraryFlagsEXT(uint(result) or uint(flag)) +func toEnums*(number: VkGraphicsPipelineLibraryFlagsEXT): seq[VkGraphicsPipelineLibraryFlagBitsEXT] = + for value in VkGraphicsPipelineLibraryFlagBitsEXT.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkGraphicsPipelineLibraryFlagsEXT): bool = cint(a) == cint(b) +type + VkDeviceAddressBindingFlagBitsEXT* {.size: sizeof(cint).} = enum + VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT = 0b00000000000000000000000000000001 +func toBits*(flags: openArray[VkDeviceAddressBindingFlagBitsEXT]): VkDeviceAddressBindingFlagsEXT = + for flag in flags: + result = VkDeviceAddressBindingFlagsEXT(uint(result) or uint(flag)) +func toEnums*(number: VkDeviceAddressBindingFlagsEXT): seq[VkDeviceAddressBindingFlagBitsEXT] = + for value in VkDeviceAddressBindingFlagBitsEXT.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkDeviceAddressBindingFlagsEXT): bool = cint(a) == cint(b) +type + VkDeviceAddressBindingTypeEXT* {.size: sizeof(cint).} = enum + VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT = 0 + VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT = 1 + VkPresentScalingFlagBitsEXT* {.size: sizeof(cint).} = enum + VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT = 0b00000000000000000000000000000001 + VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT = 0b00000000000000000000000000000010 + VK_PRESENT_SCALING_STRETCH_BIT_EXT = 0b00000000000000000000000000000100 +func toBits*(flags: openArray[VkPresentScalingFlagBitsEXT]): VkPresentScalingFlagsEXT = + for flag in flags: + result = VkPresentScalingFlagsEXT(uint(result) or uint(flag)) +func toEnums*(number: VkPresentScalingFlagsEXT): seq[VkPresentScalingFlagBitsEXT] = + for value in VkPresentScalingFlagBitsEXT.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkPresentScalingFlagsEXT): bool = cint(a) == cint(b) +type + VkPresentGravityFlagBitsEXT* {.size: sizeof(cint).} = enum + VK_PRESENT_GRAVITY_MIN_BIT_EXT = 0b00000000000000000000000000000001 + VK_PRESENT_GRAVITY_MAX_BIT_EXT = 0b00000000000000000000000000000010 + VK_PRESENT_GRAVITY_CENTERED_BIT_EXT = 0b00000000000000000000000000000100 +func toBits*(flags: openArray[VkPresentGravityFlagBitsEXT]): VkPresentGravityFlagsEXT = + for flag in flags: + result = VkPresentGravityFlagsEXT(uint(result) or uint(flag)) +func toEnums*(number: VkPresentGravityFlagsEXT): seq[VkPresentGravityFlagBitsEXT] = + for value in VkPresentGravityFlagBitsEXT.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkPresentGravityFlagsEXT): bool = cint(a) == cint(b) +type + VkVideoCodecOperationFlagBitsKHR* {.size: sizeof(cint).} = enum + VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR = 0b00000000000000000000000000000001 + VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR = 0b00000000000000000000000000000010 + VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT = 0b00000000000000010000000000000000 + VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT = 0b00000000000000100000000000000000 +func toBits*(flags: openArray[VkVideoCodecOperationFlagBitsKHR]): VkVideoCodecOperationFlagsKHR = + for flag in flags: + result = VkVideoCodecOperationFlagsKHR(uint(result) or uint(flag)) +func toEnums*(number: VkVideoCodecOperationFlagsKHR): seq[VkVideoCodecOperationFlagBitsKHR] = + for value in VkVideoCodecOperationFlagBitsKHR.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkVideoCodecOperationFlagsKHR): bool = cint(a) == cint(b) +const + VK_VIDEO_CODEC_OPERATION_NONE_KHR* = 0 +type + VkVideoChromaSubsamplingFlagBitsKHR* {.size: sizeof(cint).} = enum + VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR = 0b00000000000000000000000000000001 + VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR = 0b00000000000000000000000000000010 + VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR = 0b00000000000000000000000000000100 + VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR = 0b00000000000000000000000000001000 +func toBits*(flags: openArray[VkVideoChromaSubsamplingFlagBitsKHR]): VkVideoChromaSubsamplingFlagsKHR = + for flag in flags: + result = VkVideoChromaSubsamplingFlagsKHR(uint(result) or uint(flag)) +func toEnums*(number: VkVideoChromaSubsamplingFlagsKHR): seq[VkVideoChromaSubsamplingFlagBitsKHR] = + for value in VkVideoChromaSubsamplingFlagBitsKHR.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkVideoChromaSubsamplingFlagsKHR): bool = cint(a) == cint(b) +const + VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR* = 0 +type + VkVideoComponentBitDepthFlagBitsKHR* {.size: sizeof(cint).} = enum + VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR = 0b00000000000000000000000000000001 + VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR = 0b00000000000000000000000000000100 + VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR = 0b00000000000000000000000000010000 +func toBits*(flags: openArray[VkVideoComponentBitDepthFlagBitsKHR]): VkVideoComponentBitDepthFlagsKHR = + for flag in flags: + result = VkVideoComponentBitDepthFlagsKHR(uint(result) or uint(flag)) +func toEnums*(number: VkVideoComponentBitDepthFlagsKHR): seq[VkVideoComponentBitDepthFlagBitsKHR] = + for value in VkVideoComponentBitDepthFlagBitsKHR.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkVideoComponentBitDepthFlagsKHR): bool = cint(a) == cint(b) +const + VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR* = 0 +type + VkVideoCapabilityFlagBitsKHR* {.size: sizeof(cint).} = enum + VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR = 0b00000000000000000000000000000001 + VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR = 0b00000000000000000000000000000010 +func toBits*(flags: openArray[VkVideoCapabilityFlagBitsKHR]): VkVideoCapabilityFlagsKHR = + for flag in flags: + result = VkVideoCapabilityFlagsKHR(uint(result) or uint(flag)) +func toEnums*(number: VkVideoCapabilityFlagsKHR): seq[VkVideoCapabilityFlagBitsKHR] = + for value in VkVideoCapabilityFlagBitsKHR.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkVideoCapabilityFlagsKHR): bool = cint(a) == cint(b) +type + VkVideoSessionCreateFlagBitsKHR* {.size: sizeof(cint).} = enum + VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR = 0b00000000000000000000000000000001 +func toBits*(flags: openArray[VkVideoSessionCreateFlagBitsKHR]): VkVideoSessionCreateFlagsKHR = + for flag in flags: + result = VkVideoSessionCreateFlagsKHR(uint(result) or uint(flag)) +func toEnums*(number: VkVideoSessionCreateFlagsKHR): seq[VkVideoSessionCreateFlagBitsKHR] = + for value in VkVideoSessionCreateFlagBitsKHR.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkVideoSessionCreateFlagsKHR): bool = cint(a) == cint(b) +type + VkVideoDecodeH264PictureLayoutFlagBitsKHR* {.size: sizeof(cint).} = enum + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR = 0b00000000000000000000000000000001 + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR = 0b00000000000000000000000000000010 +func toBits*(flags: openArray[VkVideoDecodeH264PictureLayoutFlagBitsKHR]): VkVideoDecodeH264PictureLayoutFlagsKHR = + for flag in flags: + result = VkVideoDecodeH264PictureLayoutFlagsKHR(uint(result) or uint(flag)) +func toEnums*(number: VkVideoDecodeH264PictureLayoutFlagsKHR): seq[VkVideoDecodeH264PictureLayoutFlagBitsKHR] = + for value in VkVideoDecodeH264PictureLayoutFlagBitsKHR.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkVideoDecodeH264PictureLayoutFlagsKHR): bool = cint(a) == cint(b) +const + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR* = 0 +type + VkVideoCodingControlFlagBitsKHR* {.size: sizeof(cint).} = enum + VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR = 0b00000000000000000000000000000001 + VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR = 0b00000000000000000000000000000010 + VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_LAYER_BIT_KHR = 0b00000000000000000000000000000100 +func toBits*(flags: openArray[VkVideoCodingControlFlagBitsKHR]): VkVideoCodingControlFlagsKHR = + for flag in flags: + result = VkVideoCodingControlFlagsKHR(uint(result) or uint(flag)) +func toEnums*(number: VkVideoCodingControlFlagsKHR): seq[VkVideoCodingControlFlagBitsKHR] = + for value in VkVideoCodingControlFlagBitsKHR.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkVideoCodingControlFlagsKHR): bool = cint(a) == cint(b) +type + VkQueryResultStatusKHR* {.size: sizeof(cint).} = enum + VK_QUERY_RESULT_STATUS_ERROR_KHR = -1 + VK_QUERY_RESULT_STATUS_NOT_READY_KHR = 0 + VK_QUERY_RESULT_STATUS_COMPLETE_KHR = 1 + VkVideoDecodeUsageFlagBitsKHR* {.size: sizeof(cint).} = enum + VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR = 0b00000000000000000000000000000001 + VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR = 0b00000000000000000000000000000010 + VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR = 0b00000000000000000000000000000100 +func toBits*(flags: openArray[VkVideoDecodeUsageFlagBitsKHR]): VkVideoDecodeUsageFlagsKHR = + for flag in flags: + result = VkVideoDecodeUsageFlagsKHR(uint(result) or uint(flag)) +func toEnums*(number: VkVideoDecodeUsageFlagsKHR): seq[VkVideoDecodeUsageFlagBitsKHR] = + for value in VkVideoDecodeUsageFlagBitsKHR.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkVideoDecodeUsageFlagsKHR): bool = cint(a) == cint(b) +const + VK_VIDEO_DECODE_USAGE_DEFAULT_KHR* = 0 +type + VkVideoDecodeCapabilityFlagBitsKHR* {.size: sizeof(cint).} = enum + VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR = 0b00000000000000000000000000000001 + VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR = 0b00000000000000000000000000000010 +func toBits*(flags: openArray[VkVideoDecodeCapabilityFlagBitsKHR]): VkVideoDecodeCapabilityFlagsKHR = + for flag in flags: + result = VkVideoDecodeCapabilityFlagsKHR(uint(result) or uint(flag)) +func toEnums*(number: VkVideoDecodeCapabilityFlagsKHR): seq[VkVideoDecodeCapabilityFlagBitsKHR] = + for value in VkVideoDecodeCapabilityFlagBitsKHR.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkVideoDecodeCapabilityFlagsKHR): bool = cint(a) == cint(b) +type + VkVideoEncodeUsageFlagBitsKHR* {.size: sizeof(cint).} = enum + VK_VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHR = 0b00000000000000000000000000000001 + VK_VIDEO_ENCODE_USAGE_STREAMING_BIT_KHR = 0b00000000000000000000000000000010 + VK_VIDEO_ENCODE_USAGE_RECORDING_BIT_KHR = 0b00000000000000000000000000000100 + VK_VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHR = 0b00000000000000000000000000001000 +func toBits*(flags: openArray[VkVideoEncodeUsageFlagBitsKHR]): VkVideoEncodeUsageFlagsKHR = + for flag in flags: + result = VkVideoEncodeUsageFlagsKHR(uint(result) or uint(flag)) +func toEnums*(number: VkVideoEncodeUsageFlagsKHR): seq[VkVideoEncodeUsageFlagBitsKHR] = + for value in VkVideoEncodeUsageFlagBitsKHR.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkVideoEncodeUsageFlagsKHR): bool = cint(a) == cint(b) +const + VK_VIDEO_ENCODE_USAGE_DEFAULT_KHR* = 0 +type + VkVideoEncodeContentFlagBitsKHR* {.size: sizeof(cint).} = enum + VK_VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHR = 0b00000000000000000000000000000001 + VK_VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHR = 0b00000000000000000000000000000010 + VK_VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHR = 0b00000000000000000000000000000100 +func toBits*(flags: openArray[VkVideoEncodeContentFlagBitsKHR]): VkVideoEncodeContentFlagsKHR = + for flag in flags: + result = VkVideoEncodeContentFlagsKHR(uint(result) or uint(flag)) +func toEnums*(number: VkVideoEncodeContentFlagsKHR): seq[VkVideoEncodeContentFlagBitsKHR] = + for value in VkVideoEncodeContentFlagBitsKHR.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkVideoEncodeContentFlagsKHR): bool = cint(a) == cint(b) +const + VK_VIDEO_ENCODE_CONTENT_DEFAULT_KHR* = 0 +type + VkVideoEncodeTuningModeKHR* {.size: sizeof(cint).} = enum + VK_VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHR = 0 + VK_VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHR = 1 + VK_VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHR = 2 + VK_VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHR = 3 + VK_VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHR = 4 + VkVideoEncodeCapabilityFlagBitsKHR* {.size: sizeof(cint).} = enum + VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR = 0b00000000000000000000000000000001 +func toBits*(flags: openArray[VkVideoEncodeCapabilityFlagBitsKHR]): VkVideoEncodeCapabilityFlagsKHR = + for flag in flags: + result = VkVideoEncodeCapabilityFlagsKHR(uint(result) or uint(flag)) +func toEnums*(number: VkVideoEncodeCapabilityFlagsKHR): seq[VkVideoEncodeCapabilityFlagBitsKHR] = + for value in VkVideoEncodeCapabilityFlagBitsKHR.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkVideoEncodeCapabilityFlagsKHR): bool = cint(a) == cint(b) +type + VkVideoEncodeRateControlModeFlagBitsKHR* {.size: sizeof(cint).} = enum + VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR = 0b00000000000000000000000000000001 + VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR = 0b00000000000000000000000000000010 + VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR = 0b00000000000000000000000000000100 +func toBits*(flags: openArray[VkVideoEncodeRateControlModeFlagBitsKHR]): VkVideoEncodeRateControlModeFlagsKHR = + for flag in flags: + result = VkVideoEncodeRateControlModeFlagsKHR(uint(result) or uint(flag)) +func toEnums*(number: VkVideoEncodeRateControlModeFlagsKHR): seq[VkVideoEncodeRateControlModeFlagBitsKHR] = + for value in VkVideoEncodeRateControlModeFlagBitsKHR.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkVideoEncodeRateControlModeFlagsKHR): bool = cint(a) == cint(b) +type + VkVideoEncodeH264CapabilityFlagBitsEXT* {.size: sizeof(cint).} = enum + VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_ENABLED_BIT_EXT = 0b00000000000000000000000000000001 + VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_DISABLED_BIT_EXT = 0b00000000000000000000000000000010 + VK_VIDEO_ENCODE_H264_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT = 0b00000000000000000000000000000100 + VK_VIDEO_ENCODE_H264_CAPABILITY_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_BIT_EXT = 0b00000000000000000000000000001000 + VK_VIDEO_ENCODE_H264_CAPABILITY_SCALING_LISTS_BIT_EXT = 0b00000000000000000000000000010000 + VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_EXT = 0b00000000000000000000000000100000 + VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT = 0b00000000000000000000000001000000 + VK_VIDEO_ENCODE_H264_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT = 0b00000000000000000000000010000000 + VK_VIDEO_ENCODE_H264_CAPABILITY_PIC_INIT_QP_MINUS26_BIT_EXT = 0b00000000000000000000000100000000 + VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_BIT_EXT = 0b00000000000000000000001000000000 + VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_EXPLICIT_BIT_EXT = 0b00000000000000000000010000000000 + VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_IMPLICIT_BIT_EXT = 0b00000000000000000000100000000000 + VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT = 0b00000000000000000001000000000000 + VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT = 0b00000000000000000010000000000000 + VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT = 0b00000000000000000100000000000000 + VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT = 0b00000000000000001000000000000000 + VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT = 0b00000000000000010000000000000000 + VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT = 0b00000000000000100000000000000000 + VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT = 0b00000000000001000000000000000000 + VK_VIDEO_ENCODE_H264_CAPABILITY_DISABLE_DIRECT_SPATIAL_MV_PRED_BIT_EXT = 0b00000000000010000000000000000000 + VK_VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT = 0b00000000000100000000000000000000 + VK_VIDEO_ENCODE_H264_CAPABILITY_SLICE_MB_COUNT_BIT_EXT = 0b00000000001000000000000000000000 + VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_EXT = 0b00000000010000000000000000000000 + VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT = 0b00000000100000000000000000000000 + VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT = 0b00000001000000000000000000000000 +func toBits*(flags: openArray[VkVideoEncodeH264CapabilityFlagBitsEXT]): VkVideoEncodeH264CapabilityFlagsEXT = + for flag in flags: + result = VkVideoEncodeH264CapabilityFlagsEXT(uint(result) or uint(flag)) +func toEnums*(number: VkVideoEncodeH264CapabilityFlagsEXT): seq[VkVideoEncodeH264CapabilityFlagBitsEXT] = + for value in VkVideoEncodeH264CapabilityFlagBitsEXT.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkVideoEncodeH264CapabilityFlagsEXT): bool = cint(a) == cint(b) +type + VkVideoEncodeH264InputModeFlagBitsEXT* {.size: sizeof(cint).} = enum + VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT = 0b00000000000000000000000000000001 + VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT = 0b00000000000000000000000000000010 + VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT = 0b00000000000000000000000000000100 +func toBits*(flags: openArray[VkVideoEncodeH264InputModeFlagBitsEXT]): VkVideoEncodeH264InputModeFlagsEXT = + for flag in flags: + result = VkVideoEncodeH264InputModeFlagsEXT(uint(result) or uint(flag)) +func toEnums*(number: VkVideoEncodeH264InputModeFlagsEXT): seq[VkVideoEncodeH264InputModeFlagBitsEXT] = + for value in VkVideoEncodeH264InputModeFlagBitsEXT.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkVideoEncodeH264InputModeFlagsEXT): bool = cint(a) == cint(b) +type + VkVideoEncodeH264OutputModeFlagBitsEXT* {.size: sizeof(cint).} = enum + VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT = 0b00000000000000000000000000000001 + VK_VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT = 0b00000000000000000000000000000010 + VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT = 0b00000000000000000000000000000100 +func toBits*(flags: openArray[VkVideoEncodeH264OutputModeFlagBitsEXT]): VkVideoEncodeH264OutputModeFlagsEXT = + for flag in flags: + result = VkVideoEncodeH264OutputModeFlagsEXT(uint(result) or uint(flag)) +func toEnums*(number: VkVideoEncodeH264OutputModeFlagsEXT): seq[VkVideoEncodeH264OutputModeFlagBitsEXT] = + for value in VkVideoEncodeH264OutputModeFlagBitsEXT.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkVideoEncodeH264OutputModeFlagsEXT): bool = cint(a) == cint(b) +type + VkVideoEncodeH264RateControlStructureEXT* {.size: sizeof(cint).} = enum + VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT = 0 + VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAT_EXT = 1 + VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_DYADIC_EXT = 2 + VkImageConstraintsInfoFlagBitsFUCHSIA* {.size: sizeof(cint).} = enum + VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA = 0b00000000000000000000000000000001 + VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA = 0b00000000000000000000000000000010 + VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA = 0b00000000000000000000000000000100 + VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA = 0b00000000000000000000000000001000 + VK_IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA = 0b00000000000000000000000000010000 +func toBits*(flags: openArray[VkImageConstraintsInfoFlagBitsFUCHSIA]): VkImageConstraintsInfoFlagsFUCHSIA = + for flag in flags: + result = VkImageConstraintsInfoFlagsFUCHSIA(uint(result) or uint(flag)) +func toEnums*(number: VkImageConstraintsInfoFlagsFUCHSIA): seq[VkImageConstraintsInfoFlagBitsFUCHSIA] = + for value in VkImageConstraintsInfoFlagBitsFUCHSIA.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkImageConstraintsInfoFlagsFUCHSIA): bool = cint(a) == cint(b) +type + VkFormatFeatureFlagBits2* {.size: 8.} = enum + VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT = 0b0000000000000000000000000000000000000000000000000000000000000001 + VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT = 0b0000000000000000000000000000000000000000000000000000000000000010 + VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT = 0b0000000000000000000000000000000000000000000000000000000000000100 + VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT = 0b0000000000000000000000000000000000000000000000000000000000001000 + VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT = 0b0000000000000000000000000000000000000000000000000000000000010000 + VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0b0000000000000000000000000000000000000000000000000000000000100000 + VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT = 0b0000000000000000000000000000000000000000000000000000000001000000 + VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT = 0b0000000000000000000000000000000000000000000000000000000010000000 + VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT = 0b0000000000000000000000000000000000000000000000000000000100000000 + VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT = 0b0000000000000000000000000000000000000000000000000000001000000000 + VK_FORMAT_FEATURE_2_BLIT_SRC_BIT = 0b0000000000000000000000000000000000000000000000000000010000000000 + VK_FORMAT_FEATURE_2_BLIT_DST_BIT = 0b0000000000000000000000000000000000000000000000000000100000000000 + VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0b0000000000000000000000000000000000000000000000000001000000000000 + VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT = 0b0000000000000000000000000000000000000000000000000010000000000000 + VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT = 0b0000000000000000000000000000000000000000000000000100000000000000 + VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT = 0b0000000000000000000000000000000000000000000000001000000000000000 + VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0b0000000000000000000000000000000000000000000000010000000000000000 + VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT = 0b0000000000000000000000000000000000000000000000100000000000000000 + VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0b0000000000000000000000000000000000000000000001000000000000000000 + VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0b0000000000000000000000000000000000000000000010000000000000000000 + VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0b0000000000000000000000000000000000000000000100000000000000000000 + VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0b0000000000000000000000000000000000000000001000000000000000000000 + VK_FORMAT_FEATURE_2_DISJOINT_BIT = 0b0000000000000000000000000000000000000000010000000000000000000000 + VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT = 0b0000000000000000000000000000000000000000100000000000000000000000 + VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT = 0b0000000000000000000000000000000000000001000000000000000000000000 + VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR = 0b0000000000000000000000000000000000000010000000000000000000000000 + VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR = 0b0000000000000000000000000000000000000100000000000000000000000000 + VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR = 0b0000000000000000000000000000000000001000000000000000000000000000 + VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR = 0b0000000000000000000000000000000000010000000000000000000000000000 + VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0b0000000000000000000000000000000000100000000000000000000000000000 + VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0b0000000000000000000000000000000001000000000000000000000000000000 + VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT = 0b0000000000000000000000000000000010000000000000000000000000000000 + VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT = 0b0000000000000000000000000000000100000000000000000000000000000000 + VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT = 0b0000000000000000000000000000001000000000000000000000000000000000 + VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM = 0b0000000000000000000000000000010000000000000000000000000000000000 + VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM = 0b0000000000000000000000000000100000000000000000000000000000000000 + VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM = 0b0000000000000000000000000001000000000000000000000000000000000000 + VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM = 0b0000000000000000000000000010000000000000000000000000000000000000 + VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV = 0b0000000000000000000000000100000000000000000000000000000000000000 + VK_FORMAT_FEATURE_2_RESERVED_39_BIT_EXT = 0b0000000000000000000000001000000000000000000000000000000000000000 + VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV = 0b0000000000000000000000010000000000000000000000000000000000000000 + VK_FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV = 0b0000000000000000000000100000000000000000000000000000000000000000 + VK_FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV = 0b0000000000000000000001000000000000000000000000000000000000000000 + VK_FORMAT_FEATURE_2_RESERVED_44_BIT_EXT = 0b0000000000000000000100000000000000000000000000000000000000000000 + VK_FORMAT_FEATURE_2_RESERVED_45_BIT_EXT = 0b0000000000000000001000000000000000000000000000000000000000000000 +func toBits*(flags: openArray[VkFormatFeatureFlagBits2]): VkFormatFeatureFlags2 = + for flag in flags: + result = VkFormatFeatureFlags2(uint64(result) or uint64(flag)) +func toEnums*(number: VkFormatFeatureFlags2): seq[VkFormatFeatureFlagBits2] = + for value in VkFormatFeatureFlagBits2.items: + if (cast[uint64](value) and uint64(number)) > 0: + result.add value +proc `==`*(a, b: VkFormatFeatureFlags2): bool = uint64(a) == uint64(b) +type + VkRenderingFlagBits* {.size: sizeof(cint).} = enum + VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT = 0b00000000000000000000000000000001 + VK_RENDERING_SUSPENDING_BIT = 0b00000000000000000000000000000010 + VK_RENDERING_RESUMING_BIT = 0b00000000000000000000000000000100 + VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT = 0b00000000000000000000000000001000 +func toBits*(flags: openArray[VkRenderingFlagBits]): VkRenderingFlags = + for flag in flags: + result = VkRenderingFlags(uint(result) or uint(flag)) +func toEnums*(number: VkRenderingFlags): seq[VkRenderingFlagBits] = + for value in VkRenderingFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkRenderingFlags): bool = cint(a) == cint(b) +type + VkVideoEncodeH265CapabilityFlagBitsEXT* {.size: sizeof(cint).} = enum + VK_VIDEO_ENCODE_H265_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT = 0b00000000000000000000000000000001 + VK_VIDEO_ENCODE_H265_CAPABILITY_SCALING_LISTS_BIT_EXT = 0b00000000000000000000000000000010 + VK_VIDEO_ENCODE_H265_CAPABILITY_SAMPLE_ADAPTIVE_OFFSET_ENABLED_BIT_EXT = 0b00000000000000000000000000000100 + VK_VIDEO_ENCODE_H265_CAPABILITY_PCM_ENABLE_BIT_EXT = 0b00000000000000000000000000001000 + VK_VIDEO_ENCODE_H265_CAPABILITY_SPS_TEMPORAL_MVP_ENABLED_BIT_EXT = 0b00000000000000000000000000010000 + VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_EXT = 0b00000000000000000000000000100000 + VK_VIDEO_ENCODE_H265_CAPABILITY_INIT_QP_MINUS26_BIT_EXT = 0b00000000000000000000000001000000 + VK_VIDEO_ENCODE_H265_CAPABILITY_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_EXT = 0b00000000000000000000000010000000 + VK_VIDEO_ENCODE_H265_CAPABILITY_SIGN_DATA_HIDING_ENABLED_BIT_EXT = 0b00000000000000000000000100000000 + VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_ENABLED_BIT_EXT = 0b00000000000000000000001000000000 + VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_DISABLED_BIT_EXT = 0b00000000000000000000010000000000 + VK_VIDEO_ENCODE_H265_CAPABILITY_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_BIT_EXT = 0b00000000000000000000100000000000 + VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_BIT_EXT = 0b00000000000000000001000000000000 + VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_BIPRED_BIT_EXT = 0b00000000000000000010000000000000 + VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT = 0b00000000000000000100000000000000 + VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSQUANT_BYPASS_ENABLED_BIT_EXT = 0b00000000000000001000000000000000 + VK_VIDEO_ENCODE_H265_CAPABILITY_ENTROPY_CODING_SYNC_ENABLED_BIT_EXT = 0b00000000000000010000000000000000 + VK_VIDEO_ENCODE_H265_CAPABILITY_DEBLOCKING_FILTER_OVERRIDE_ENABLED_BIT_EXT = 0b00000000000000100000000000000000 + VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_FRAME_BIT_EXT = 0b00000000000001000000000000000000 + VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_PER_TILE_BIT_EXT = 0b00000000000010000000000000000000 + VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_SLICE_BIT_EXT = 0b00000000000100000000000000000000 + VK_VIDEO_ENCODE_H265_CAPABILITY_SLICE_SEGMENT_CTB_COUNT_BIT_EXT = 0b00000000001000000000000000000000 + VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_EXT = 0b00000000010000000000000000000000 + VK_VIDEO_ENCODE_H265_CAPABILITY_DEPENDENT_SLICE_SEGMENT_BIT_EXT = 0b00000000100000000000000000000000 + VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT = 0b00000001000000000000000000000000 + VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT = 0b00000010000000000000000000000000 +func toBits*(flags: openArray[VkVideoEncodeH265CapabilityFlagBitsEXT]): VkVideoEncodeH265CapabilityFlagsEXT = + for flag in flags: + result = VkVideoEncodeH265CapabilityFlagsEXT(uint(result) or uint(flag)) +func toEnums*(number: VkVideoEncodeH265CapabilityFlagsEXT): seq[VkVideoEncodeH265CapabilityFlagBitsEXT] = + for value in VkVideoEncodeH265CapabilityFlagBitsEXT.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkVideoEncodeH265CapabilityFlagsEXT): bool = cint(a) == cint(b) +type + VkVideoEncodeH265InputModeFlagBitsEXT* {.size: sizeof(cint).} = enum + VK_VIDEO_ENCODE_H265_INPUT_MODE_FRAME_BIT_EXT = 0b00000000000000000000000000000001 + VK_VIDEO_ENCODE_H265_INPUT_MODE_SLICE_SEGMENT_BIT_EXT = 0b00000000000000000000000000000010 + VK_VIDEO_ENCODE_H265_INPUT_MODE_NON_VCL_BIT_EXT = 0b00000000000000000000000000000100 +func toBits*(flags: openArray[VkVideoEncodeH265InputModeFlagBitsEXT]): VkVideoEncodeH265InputModeFlagsEXT = + for flag in flags: + result = VkVideoEncodeH265InputModeFlagsEXT(uint(result) or uint(flag)) +func toEnums*(number: VkVideoEncodeH265InputModeFlagsEXT): seq[VkVideoEncodeH265InputModeFlagBitsEXT] = + for value in VkVideoEncodeH265InputModeFlagBitsEXT.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkVideoEncodeH265InputModeFlagsEXT): bool = cint(a) == cint(b) +type + VkVideoEncodeH265OutputModeFlagBitsEXT* {.size: sizeof(cint).} = enum + VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FRAME_BIT_EXT = 0b00000000000000000000000000000001 + VK_VIDEO_ENCODE_H265_OUTPUT_MODE_SLICE_SEGMENT_BIT_EXT = 0b00000000000000000000000000000010 + VK_VIDEO_ENCODE_H265_OUTPUT_MODE_NON_VCL_BIT_EXT = 0b00000000000000000000000000000100 +func toBits*(flags: openArray[VkVideoEncodeH265OutputModeFlagBitsEXT]): VkVideoEncodeH265OutputModeFlagsEXT = + for flag in flags: + result = VkVideoEncodeH265OutputModeFlagsEXT(uint(result) or uint(flag)) +func toEnums*(number: VkVideoEncodeH265OutputModeFlagsEXT): seq[VkVideoEncodeH265OutputModeFlagBitsEXT] = + for value in VkVideoEncodeH265OutputModeFlagBitsEXT.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkVideoEncodeH265OutputModeFlagsEXT): bool = cint(a) == cint(b) +type + VkVideoEncodeH265RateControlStructureEXT* {.size: sizeof(cint).} = enum + VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT = 0 + VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAT_EXT = 1 + VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_DYADIC_EXT = 2 + VkVideoEncodeH265CtbSizeFlagBitsEXT* {.size: sizeof(cint).} = enum + VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_EXT = 0b00000000000000000000000000000001 + VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_EXT = 0b00000000000000000000000000000010 + VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_EXT = 0b00000000000000000000000000000100 +func toBits*(flags: openArray[VkVideoEncodeH265CtbSizeFlagBitsEXT]): VkVideoEncodeH265CtbSizeFlagsEXT = + for flag in flags: + result = VkVideoEncodeH265CtbSizeFlagsEXT(uint(result) or uint(flag)) +func toEnums*(number: VkVideoEncodeH265CtbSizeFlagsEXT): seq[VkVideoEncodeH265CtbSizeFlagBitsEXT] = + for value in VkVideoEncodeH265CtbSizeFlagBitsEXT.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkVideoEncodeH265CtbSizeFlagsEXT): bool = cint(a) == cint(b) +type + VkVideoEncodeH265TransformBlockSizeFlagBitsEXT* {.size: sizeof(cint).} = enum + VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_EXT = 0b00000000000000000000000000000001 + VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_EXT = 0b00000000000000000000000000000010 + VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_EXT = 0b00000000000000000000000000000100 + VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_EXT = 0b00000000000000000000000000001000 +func toBits*(flags: openArray[VkVideoEncodeH265TransformBlockSizeFlagBitsEXT]): VkVideoEncodeH265TransformBlockSizeFlagsEXT = + for flag in flags: + result = VkVideoEncodeH265TransformBlockSizeFlagsEXT(uint(result) or uint(flag)) +func toEnums*(number: VkVideoEncodeH265TransformBlockSizeFlagsEXT): seq[VkVideoEncodeH265TransformBlockSizeFlagBitsEXT] = + for value in VkVideoEncodeH265TransformBlockSizeFlagBitsEXT.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkVideoEncodeH265TransformBlockSizeFlagsEXT): bool = cint(a) == cint(b) +type + VkExportMetalObjectTypeFlagBitsEXT* {.size: sizeof(cint).} = enum + VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT = 0b00000000000000000000000000000001 + VK_EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT = 0b00000000000000000000000000000010 + VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT = 0b00000000000000000000000000000100 + VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT = 0b00000000000000000000000000001000 + VK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT = 0b00000000000000000000000000010000 + VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT = 0b00000000000000000000000000100000 +func toBits*(flags: openArray[VkExportMetalObjectTypeFlagBitsEXT]): VkExportMetalObjectTypeFlagsEXT = + for flag in flags: + result = VkExportMetalObjectTypeFlagsEXT(uint(result) or uint(flag)) +func toEnums*(number: VkExportMetalObjectTypeFlagsEXT): seq[VkExportMetalObjectTypeFlagBitsEXT] = + for value in VkExportMetalObjectTypeFlagBitsEXT.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkExportMetalObjectTypeFlagsEXT): bool = cint(a) == cint(b) +type + VkInstanceCreateFlagBits* {.size: sizeof(cint).} = enum + VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR = 0b00000000000000000000000000000001 +func toBits*(flags: openArray[VkInstanceCreateFlagBits]): VkInstanceCreateFlags = + for flag in flags: + result = VkInstanceCreateFlags(uint(result) or uint(flag)) +func toEnums*(number: VkInstanceCreateFlags): seq[VkInstanceCreateFlagBits] = + for value in VkInstanceCreateFlagBits.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkInstanceCreateFlags): bool = cint(a) == cint(b) +type + VkImageCompressionFlagBitsEXT* {.size: sizeof(cint).} = enum + VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT = 0b00000000000000000000000000000001 + VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT = 0b00000000000000000000000000000010 + VK_IMAGE_COMPRESSION_DISABLED_EXT = 0b00000000000000000000000000000100 +func toBits*(flags: openArray[VkImageCompressionFlagBitsEXT]): VkImageCompressionFlagsEXT = + for flag in flags: + result = VkImageCompressionFlagsEXT(uint(result) or uint(flag)) +func toEnums*(number: VkImageCompressionFlagsEXT): seq[VkImageCompressionFlagBitsEXT] = + for value in VkImageCompressionFlagBitsEXT.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkImageCompressionFlagsEXT): bool = cint(a) == cint(b) +const + VK_IMAGE_COMPRESSION_DEFAULT_EXT* = 0 +type + VkImageCompressionFixedRateFlagBitsEXT* {.size: sizeof(cint).} = enum + VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT = 0b00000000000000000000000000000001 + VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT = 0b00000000000000000000000000000010 + VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT = 0b00000000000000000000000000000100 + VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT = 0b00000000000000000000000000001000 + VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT = 0b00000000000000000000000000010000 + VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT = 0b00000000000000000000000000100000 + VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT = 0b00000000000000000000000001000000 + VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT = 0b00000000000000000000000010000000 + VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT = 0b00000000000000000000000100000000 + VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT = 0b00000000000000000000001000000000 + VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT = 0b00000000000000000000010000000000 + VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT = 0b00000000000000000000100000000000 + VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT = 0b00000000000000000001000000000000 + VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT = 0b00000000000000000010000000000000 + VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT = 0b00000000000000000100000000000000 + VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT = 0b00000000000000001000000000000000 + VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT = 0b00000000000000010000000000000000 + VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT = 0b00000000000000100000000000000000 + VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT = 0b00000000000001000000000000000000 + VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT = 0b00000000000010000000000000000000 + VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT = 0b00000000000100000000000000000000 + VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT = 0b00000000001000000000000000000000 + VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT = 0b00000000010000000000000000000000 + VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT = 0b00000000100000000000000000000000 +func toBits*(flags: openArray[VkImageCompressionFixedRateFlagBitsEXT]): VkImageCompressionFixedRateFlagsEXT = + for flag in flags: + result = VkImageCompressionFixedRateFlagsEXT(uint(result) or uint(flag)) +func toEnums*(number: VkImageCompressionFixedRateFlagsEXT): seq[VkImageCompressionFixedRateFlagBitsEXT] = + for value in VkImageCompressionFixedRateFlagBitsEXT.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkImageCompressionFixedRateFlagsEXT): bool = cint(a) == cint(b) +const + VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT* = 0 +type + VkPipelineRobustnessBufferBehaviorEXT* {.size: sizeof(cint).} = enum + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT = 0 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT = 1 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT = 2 + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT = 3 + VkPipelineRobustnessImageBehaviorEXT* {.size: sizeof(cint).} = enum + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT = 0 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT = 1 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT = 2 + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT = 3 + VkOpticalFlowGridSizeFlagBitsNV* {.size: sizeof(cint).} = enum + VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV = 0b00000000000000000000000000000001 + VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV = 0b00000000000000000000000000000010 + VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV = 0b00000000000000000000000000000100 + VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV = 0b00000000000000000000000000001000 +func toBits*(flags: openArray[VkOpticalFlowGridSizeFlagBitsNV]): VkOpticalFlowGridSizeFlagsNV = + for flag in flags: + result = VkOpticalFlowGridSizeFlagsNV(uint(result) or uint(flag)) +func toEnums*(number: VkOpticalFlowGridSizeFlagsNV): seq[VkOpticalFlowGridSizeFlagBitsNV] = + for value in VkOpticalFlowGridSizeFlagBitsNV.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkOpticalFlowGridSizeFlagsNV): bool = cint(a) == cint(b) +const + VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV* = 0 +type + VkOpticalFlowUsageFlagBitsNV* {.size: sizeof(cint).} = enum + VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV = 0b00000000000000000000000000000001 + VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV = 0b00000000000000000000000000000010 + VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV = 0b00000000000000000000000000000100 + VK_OPTICAL_FLOW_USAGE_COST_BIT_NV = 0b00000000000000000000000000001000 + VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV = 0b00000000000000000000000000010000 +func toBits*(flags: openArray[VkOpticalFlowUsageFlagBitsNV]): VkOpticalFlowUsageFlagsNV = + for flag in flags: + result = VkOpticalFlowUsageFlagsNV(uint(result) or uint(flag)) +func toEnums*(number: VkOpticalFlowUsageFlagsNV): seq[VkOpticalFlowUsageFlagBitsNV] = + for value in VkOpticalFlowUsageFlagBitsNV.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkOpticalFlowUsageFlagsNV): bool = cint(a) == cint(b) +const + VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV* = 0 +type + VkOpticalFlowPerformanceLevelNV* {.size: sizeof(cint).} = enum + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV = 1 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV = 2 + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV = 3 + VkOpticalFlowSessionBindingPointNV* {.size: sizeof(cint).} = enum + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV = 0 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV = 1 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV = 2 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV = 3 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV = 4 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV = 5 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV = 6 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV = 7 + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV = 8 + VkOpticalFlowSessionCreateFlagBitsNV* {.size: sizeof(cint).} = enum + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV = 0b00000000000000000000000000000001 + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV = 0b00000000000000000000000000000010 + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV = 0b00000000000000000000000000000100 + VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV = 0b00000000000000000000000000001000 + VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV = 0b00000000000000000000000000010000 +func toBits*(flags: openArray[VkOpticalFlowSessionCreateFlagBitsNV]): VkOpticalFlowSessionCreateFlagsNV = + for flag in flags: + result = VkOpticalFlowSessionCreateFlagsNV(uint(result) or uint(flag)) +func toEnums*(number: VkOpticalFlowSessionCreateFlagsNV): seq[VkOpticalFlowSessionCreateFlagBitsNV] = + for value in VkOpticalFlowSessionCreateFlagBitsNV.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkOpticalFlowSessionCreateFlagsNV): bool = cint(a) == cint(b) +type + VkOpticalFlowExecuteFlagBitsNV* {.size: sizeof(cint).} = enum + VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV = 0b00000000000000000000000000000001 +func toBits*(flags: openArray[VkOpticalFlowExecuteFlagBitsNV]): VkOpticalFlowExecuteFlagsNV = + for flag in flags: + result = VkOpticalFlowExecuteFlagsNV(uint(result) or uint(flag)) +func toEnums*(number: VkOpticalFlowExecuteFlagsNV): seq[VkOpticalFlowExecuteFlagBitsNV] = + for value in VkOpticalFlowExecuteFlagBitsNV.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkOpticalFlowExecuteFlagsNV): bool = cint(a) == cint(b) +type + VkMicromapTypeEXT* {.size: sizeof(cint).} = enum + VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT = 0 + VkBuildMicromapFlagBitsEXT* {.size: sizeof(cint).} = enum + VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT = 0b00000000000000000000000000000001 + VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT = 0b00000000000000000000000000000010 + VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT = 0b00000000000000000000000000000100 +func toBits*(flags: openArray[VkBuildMicromapFlagBitsEXT]): VkBuildMicromapFlagsEXT = + for flag in flags: + result = VkBuildMicromapFlagsEXT(uint(result) or uint(flag)) +func toEnums*(number: VkBuildMicromapFlagsEXT): seq[VkBuildMicromapFlagBitsEXT] = + for value in VkBuildMicromapFlagBitsEXT.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkBuildMicromapFlagsEXT): bool = cint(a) == cint(b) +type + VkMicromapCreateFlagBitsEXT* {.size: sizeof(cint).} = enum + VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 0b00000000000000000000000000000001 +func toBits*(flags: openArray[VkMicromapCreateFlagBitsEXT]): VkMicromapCreateFlagsEXT = + for flag in flags: + result = VkMicromapCreateFlagsEXT(uint(result) or uint(flag)) +func toEnums*(number: VkMicromapCreateFlagsEXT): seq[VkMicromapCreateFlagBitsEXT] = + for value in VkMicromapCreateFlagBitsEXT.items: + if (value.ord and cint(number)) > 0: + result.add value +proc `==`*(a, b: VkMicromapCreateFlagsEXT): bool = cint(a) == cint(b) +type + VkCopyMicromapModeEXT* {.size: sizeof(cint).} = enum + VK_COPY_MICROMAP_MODE_CLONE_EXT = 0 + VK_COPY_MICROMAP_MODE_SERIALIZE_EXT = 1 + VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT = 2 + VK_COPY_MICROMAP_MODE_COMPACT_EXT = 3 + VkBuildMicromapModeEXT* {.size: sizeof(cint).} = enum + VK_BUILD_MICROMAP_MODE_BUILD_EXT = 0 + VkOpacityMicromapFormatEXT* {.size: sizeof(cint).} = enum + VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT = 1 + VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT = 2 + VkOpacityMicromapSpecialIndexEXT* {.size: sizeof(cint).} = enum + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT = -4 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT = -3 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT = -2 + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT = -1 + VkDeviceFaultAddressTypeEXT* {.size: sizeof(cint).} = enum + VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT = 0 + VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT = 1 + VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT = 2 + VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT = 3 + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT = 4 + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT = 5 + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT = 6 + VkDeviceFaultVendorBinaryHeaderVersionEXT* {.size: sizeof(cint).} = enum + VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT_ENUM = 1 +proc `$`*(bitset: VkFramebufferCreateFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkRenderPassCreateFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkSamplerCreateFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkPipelineCacheCreateFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkPipelineShaderStageCreateFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkDescriptorSetLayoutCreateFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkInstanceCreateFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkDeviceQueueCreateFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkBufferCreateFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkBufferUsageFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkColorComponentFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkCommandPoolCreateFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkCommandPoolResetFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkCommandBufferResetFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkCommandBufferUsageFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkCullModeFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkFenceCreateFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkFormatFeatureFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkImageAspectFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkImageCreateFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkImageUsageFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkImageViewCreateFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkMemoryHeapFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkAccessFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkMemoryPropertyFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkPipelineCreateFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkQueryControlFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkQueryPipelineStatisticFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkQueryResultFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkQueueFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkShaderStageFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkSparseMemoryBindFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkStencilFaceFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkPipelineStageFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkSparseImageFormatFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkSampleCountFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkAttachmentDescriptionFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkDescriptorPoolCreateFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkDependencyFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkEventCreateFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkPipelineLayoutCreateFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkIndirectCommandsLayoutUsageFlagsNV): string = $toEnums(bitset) +proc `$`*(bitset: VkIndirectStateFlagsNV): string = $toEnums(bitset) +proc `$`*(bitset: VkPrivateDataSlotCreateFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkSubpassDescriptionFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkResolveModeFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkDescriptorBindingFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkConditionalRenderingFlagsEXT): string = $toEnums(bitset) +proc `$`*(bitset: VkGeometryFlagsKHR): string = $toEnums(bitset) +proc `$`*(bitset: VkGeometryInstanceFlagsKHR): string = $toEnums(bitset) +proc `$`*(bitset: VkBuildAccelerationStructureFlagsKHR): string = $toEnums(bitset) +proc `$`*(bitset: VkAccelerationStructureCreateFlagsKHR): string = $toEnums(bitset) +proc `$`*(bitset: VkDeviceDiagnosticsConfigFlagsNV): string = $toEnums(bitset) +proc `$`*(bitset: VkPipelineCreationFeedbackFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkPerformanceCounterDescriptionFlagsKHR): string = $toEnums(bitset) +proc `$`*(bitset: VkSemaphoreWaitFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkToolPurposeFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkAccessFlags2): string = $toEnums(bitset) +proc `$`*(bitset: VkPipelineStageFlags2): string = $toEnums(bitset) +proc `$`*(bitset: VkImageConstraintsInfoFlagsFUCHSIA): string = $toEnums(bitset) +proc `$`*(bitset: VkFormatFeatureFlags2): string = $toEnums(bitset) +proc `$`*(bitset: VkRenderingFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkPipelineDepthStencilStateCreateFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkPipelineColorBlendStateCreateFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkImageCompressionFlagsEXT): string = $toEnums(bitset) +proc `$`*(bitset: VkImageCompressionFixedRateFlagsEXT): string = $toEnums(bitset) +proc `$`*(bitset: VkExportMetalObjectTypeFlagsEXT): string = $toEnums(bitset) +proc `$`*(bitset: VkDeviceAddressBindingFlagsEXT): string = $toEnums(bitset) +proc `$`*(bitset: VkBuildMicromapFlagsEXT): string = $toEnums(bitset) +proc `$`*(bitset: VkMicromapCreateFlagsEXT): string = $toEnums(bitset) +proc `$`*(bitset: VkMemoryDecompressionMethodFlagsNV): string = $toEnums(bitset) +proc `$`*(bitset: VkCompositeAlphaFlagsKHR): string = $toEnums(bitset) +proc `$`*(bitset: VkDisplayPlaneAlphaFlagsKHR): string = $toEnums(bitset) +proc `$`*(bitset: VkSurfaceTransformFlagsKHR): string = $toEnums(bitset) +proc `$`*(bitset: VkDebugReportFlagsEXT): string = $toEnums(bitset) +proc `$`*(bitset: VkExternalMemoryHandleTypeFlagsNV): string = $toEnums(bitset) +proc `$`*(bitset: VkExternalMemoryFeatureFlagsNV): string = $toEnums(bitset) +proc `$`*(bitset: VkExternalMemoryHandleTypeFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkExternalMemoryFeatureFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkExternalSemaphoreHandleTypeFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkExternalSemaphoreFeatureFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkSemaphoreImportFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkExternalFenceHandleTypeFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkExternalFenceFeatureFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkFenceImportFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkSurfaceCounterFlagsEXT): string = $toEnums(bitset) +proc `$`*(bitset: VkPeerMemoryFeatureFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkMemoryAllocateFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkDeviceGroupPresentModeFlagsKHR): string = $toEnums(bitset) +proc `$`*(bitset: VkSwapchainCreateFlagsKHR): string = $toEnums(bitset) +proc `$`*(bitset: VkSubgroupFeatureFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkDebugUtilsMessageSeverityFlagsEXT): string = $toEnums(bitset) +proc `$`*(bitset: VkDebugUtilsMessageTypeFlagsEXT): string = $toEnums(bitset) +proc `$`*(bitset: VkSwapchainImageUsageFlagsANDROID): string = $toEnums(bitset) +proc `$`*(bitset: VkSubmitFlags): string = $toEnums(bitset) +proc `$`*(bitset: VkGraphicsPipelineLibraryFlagsEXT): string = $toEnums(bitset) +proc `$`*(bitset: VkOpticalFlowGridSizeFlagsNV): string = $toEnums(bitset) +proc `$`*(bitset: VkOpticalFlowUsageFlagsNV): string = $toEnums(bitset) +proc `$`*(bitset: VkOpticalFlowSessionCreateFlagsNV): string = $toEnums(bitset) +proc `$`*(bitset: VkOpticalFlowExecuteFlagsNV): string = $toEnums(bitset) +proc `$`*(bitset: VkPresentScalingFlagsEXT): string = $toEnums(bitset) +proc `$`*(bitset: VkPresentGravityFlagsEXT): string = $toEnums(bitset) +proc `$`*(bitset: VkVideoCodecOperationFlagsKHR): string = $toEnums(bitset) +proc `$`*(bitset: VkVideoChromaSubsamplingFlagsKHR): string = $toEnums(bitset) +proc `$`*(bitset: VkVideoComponentBitDepthFlagsKHR): string = $toEnums(bitset) +proc `$`*(bitset: VkVideoCapabilityFlagsKHR): string = $toEnums(bitset) +proc `$`*(bitset: VkVideoSessionCreateFlagsKHR): string = $toEnums(bitset) +proc `$`*(bitset: VkVideoCodingControlFlagsKHR): string = $toEnums(bitset) +proc `$`*(bitset: VkVideoDecodeUsageFlagsKHR): string = $toEnums(bitset) +proc `$`*(bitset: VkVideoDecodeCapabilityFlagsKHR): string = $toEnums(bitset) +proc `$`*(bitset: VkVideoDecodeH264PictureLayoutFlagsKHR): string = $toEnums(bitset) +proc `$`*(bitset: VkVideoEncodeUsageFlagsKHR): string = $toEnums(bitset) +proc `$`*(bitset: VkVideoEncodeContentFlagsKHR): string = $toEnums(bitset) +proc `$`*(bitset: VkVideoEncodeCapabilityFlagsKHR): string = $toEnums(bitset) +proc `$`*(bitset: VkVideoEncodeRateControlModeFlagsKHR): string = $toEnums(bitset) +proc `$`*(bitset: VkVideoEncodeH264CapabilityFlagsEXT): string = $toEnums(bitset) +proc `$`*(bitset: VkVideoEncodeH264InputModeFlagsEXT): string = $toEnums(bitset) +proc `$`*(bitset: VkVideoEncodeH264OutputModeFlagsEXT): string = $toEnums(bitset) +proc `$`*(bitset: VkVideoEncodeH265CapabilityFlagsEXT): string = $toEnums(bitset) +proc `$`*(bitset: VkVideoEncodeH265InputModeFlagsEXT): string = $toEnums(bitset) +proc `$`*(bitset: VkVideoEncodeH265OutputModeFlagsEXT): string = $toEnums(bitset) +proc `$`*(bitset: VkVideoEncodeH265CtbSizeFlagsEXT): string = $toEnums(bitset) +proc `$`*(bitset: VkVideoEncodeH265TransformBlockSizeFlagsEXT): string = $toEnums(bitset) +type + VkGeometryFlagsNV* = VkGeometryFlagsKHR + VkGeometryInstanceFlagsNV* = VkGeometryInstanceFlagsKHR + VkBuildAccelerationStructureFlagsNV* = VkBuildAccelerationStructureFlagsKHR + VkPrivateDataSlotCreateFlagsEXT* = VkPrivateDataSlotCreateFlags + VkDescriptorUpdateTemplateCreateFlagsKHR* = VkDescriptorUpdateTemplateCreateFlags + VkPipelineCreationFeedbackFlagsEXT* = VkPipelineCreationFeedbackFlags + VkSemaphoreWaitFlagsKHR* = VkSemaphoreWaitFlags + VkAccessFlags2KHR* = VkAccessFlags2 + VkPipelineStageFlags2KHR* = VkPipelineStageFlags2 + VkFormatFeatureFlags2KHR* = VkFormatFeatureFlags2 + VkRenderingFlagsKHR* = VkRenderingFlags + VkPeerMemoryFeatureFlagsKHR* = VkPeerMemoryFeatureFlags + VkMemoryAllocateFlagsKHR* = VkMemoryAllocateFlags + VkCommandPoolTrimFlagsKHR* = VkCommandPoolTrimFlags + VkExternalMemoryHandleTypeFlagsKHR* = VkExternalMemoryHandleTypeFlags + VkExternalMemoryFeatureFlagsKHR* = VkExternalMemoryFeatureFlags + VkExternalSemaphoreHandleTypeFlagsKHR* = VkExternalSemaphoreHandleTypeFlags + VkExternalSemaphoreFeatureFlagsKHR* = VkExternalSemaphoreFeatureFlags + VkSemaphoreImportFlagsKHR* = VkSemaphoreImportFlags + VkExternalFenceHandleTypeFlagsKHR* = VkExternalFenceHandleTypeFlags + VkExternalFenceFeatureFlagsKHR* = VkExternalFenceFeatureFlags + VkFenceImportFlagsKHR* = VkFenceImportFlags + VkDescriptorBindingFlagsEXT* = VkDescriptorBindingFlags + VkResolveModeFlagsKHR* = VkResolveModeFlags + VkToolPurposeFlagsEXT* = VkToolPurposeFlags + VkSubmitFlagsKHR* = VkSubmitFlags + VkPrivateDataSlotCreateFlagBitsEXT* = VkPrivateDataSlotCreateFlagBits + VkDescriptorUpdateTemplateTypeKHR* = VkDescriptorUpdateTemplateType + VkPointClippingBehaviorKHR* = VkPointClippingBehavior + VkQueueGlobalPriorityEXT* = VkQueueGlobalPriorityKHR + VkResolveModeFlagBitsKHR* = VkResolveModeFlagBits + VkDescriptorBindingFlagBitsEXT* = VkDescriptorBindingFlagBits + VkSemaphoreTypeKHR* = VkSemaphoreType + VkGeometryFlagBitsNV* = VkGeometryFlagBitsKHR + VkGeometryInstanceFlagBitsNV* = VkGeometryInstanceFlagBitsKHR + VkBuildAccelerationStructureFlagBitsNV* = VkBuildAccelerationStructureFlagBitsKHR + VkCopyAccelerationStructureModeNV* = VkCopyAccelerationStructureModeKHR + VkAccelerationStructureTypeNV* = VkAccelerationStructureTypeKHR + VkGeometryTypeNV* = VkGeometryTypeKHR + VkRayTracingShaderGroupTypeNV* = VkRayTracingShaderGroupTypeKHR + VkPipelineCreationFeedbackFlagBitsEXT* = VkPipelineCreationFeedbackFlagBits + VkSemaphoreWaitFlagBitsKHR* = VkSemaphoreWaitFlagBits + VkToolPurposeFlagBitsEXT* = VkToolPurposeFlagBits + VkAccessFlagBits2KHR* = VkAccessFlagBits2 + VkPipelineStageFlagBits2KHR* = VkPipelineStageFlagBits2 + VkFormatFeatureFlagBits2KHR* = VkFormatFeatureFlagBits2 + VkRenderingFlagBitsKHR* = VkRenderingFlagBits + VkExternalMemoryHandleTypeFlagBitsKHR* = VkExternalMemoryHandleTypeFlagBits + VkExternalMemoryFeatureFlagBitsKHR* = VkExternalMemoryFeatureFlagBits + VkExternalSemaphoreHandleTypeFlagBitsKHR* = VkExternalSemaphoreHandleTypeFlagBits + VkExternalSemaphoreFeatureFlagBitsKHR* = VkExternalSemaphoreFeatureFlagBits + VkSemaphoreImportFlagBitsKHR* = VkSemaphoreImportFlagBits + VkExternalFenceHandleTypeFlagBitsKHR* = VkExternalFenceHandleTypeFlagBits + VkExternalFenceFeatureFlagBitsKHR* = VkExternalFenceFeatureFlagBits + VkFenceImportFlagBitsKHR* = VkFenceImportFlagBits + VkPeerMemoryFeatureFlagBitsKHR* = VkPeerMemoryFeatureFlagBits + VkMemoryAllocateFlagBitsKHR* = VkMemoryAllocateFlagBits + VkTessellationDomainOriginKHR* = VkTessellationDomainOrigin + VkSamplerYcbcrModelConversionKHR* = VkSamplerYcbcrModelConversion + VkSamplerYcbcrRangeKHR* = VkSamplerYcbcrRange + VkChromaLocationKHR* = VkChromaLocation + VkSamplerReductionModeEXT* = VkSamplerReductionMode + VkShaderFloatControlsIndependenceKHR* = VkShaderFloatControlsIndependence + VkSubmitFlagBitsKHR* = VkSubmitFlagBits + VkDriverIdKHR* = VkDriverId +type + PFN_vkInternalAllocationNotification* = proc(pUserData: pointer, size: csize_t, allocationType: VkInternalAllocationType, allocationScope: VkSystemAllocationScope): void {.cdecl.} + PFN_vkInternalFreeNotification* = proc(pUserData: pointer, size: csize_t, allocationType: VkInternalAllocationType, allocationScope: VkSystemAllocationScope): void {.cdecl.} + PFN_vkReallocationFunction* = proc(pUserData: pointer, pOriginal: pointer, size: csize_t, alignment: csize_t, allocationScope: VkSystemAllocationScope): pointer {.cdecl.} + PFN_vkAllocationFunction* = proc(pUserData: pointer, size: csize_t, alignment: csize_t, allocationScope: VkSystemAllocationScope): pointer {.cdecl.} + PFN_vkFreeFunction* = proc(pUserData: pointer, pMemory: pointer): void {.cdecl.} + PFN_vkVoidFunction* = proc(): void {.cdecl.} + PFN_vkDebugReportCallbackEXT* = proc(flags: VkDebugReportFlagsEXT, objectType: VkDebugReportObjectTypeEXT, theobject: uint64, location: csize_t, messageCode: int32, pLayerPrefix: cstring, pMessage: cstring, pUserData: pointer): VkBool32 {.cdecl.} + PFN_vkDebugUtilsMessengerCallbackEXT* = proc(messageSeverity: VkDebugUtilsMessageSeverityFlagBitsEXT, messageTypes: VkDebugUtilsMessageTypeFlagsEXT, pCallbackData: ptr VkDebugUtilsMessengerCallbackDataEXT, pUserData: pointer): VkBool32 {.cdecl.} + PFN_vkFaultCallbackFunction* = proc(unrecordedFaults: VkBool32, faultCount: uint32, pFaults: ptr VkFaultData): void {.cdecl.} + PFN_vkDeviceMemoryReportCallbackEXT* = proc(pCallbackData: ptr VkDeviceMemoryReportCallbackDataEXT, pUserData: pointer): void {.cdecl.} + PFN_vkGetInstanceProcAddrLUNARG* = proc(instance: VkInstance, pName: cstring): PFN_vkVoidFunction {.cdecl.} + VkBaseOutStructure* = object + sType*: VkStructureType + pNext*: ptr VkBaseOutStructure + VkBaseInStructure* = object + sType*: VkStructureType + pNext*: ptr VkBaseInStructure + VkOffset2D* = object + x*: int32 + y*: int32 + VkOffset3D* = object + x*: int32 + y*: int32 + z*: int32 + VkExtent2D* = object + width*: uint32 + height*: uint32 + VkExtent3D* = object + width*: uint32 + height*: uint32 + depth*: uint32 + VkViewport* = object + x*: float32 + y*: float32 + width*: float32 + height*: float32 + minDepth*: float32 + maxDepth*: float32 + VkRect2D* = object + offset*: VkOffset2D + extent*: VkExtent2D + VkClearRect* = object + rect*: VkRect2D + baseArrayLayer*: uint32 + layerCount*: uint32 + VkComponentMapping* = object + r*: VkComponentSwizzle + g*: VkComponentSwizzle + b*: VkComponentSwizzle + a*: VkComponentSwizzle + VkPhysicalDeviceProperties* = object + apiVersion*: uint32 + driverVersion*: uint32 + vendorID*: uint32 + deviceID*: uint32 + deviceType*: VkPhysicalDeviceType + deviceName*: array[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE, char] + pipelineCacheUUID*: array[VK_UUID_SIZE, uint8] + limits*: VkPhysicalDeviceLimits + sparseProperties*: VkPhysicalDeviceSparseProperties + VkExtensionProperties* = object + extensionName*: array[VK_MAX_EXTENSION_NAME_SIZE, char] + specVersion*: uint32 + VkLayerProperties* = object + layerName*: array[VK_MAX_EXTENSION_NAME_SIZE, char] + specVersion*: uint32 + implementationVersion*: uint32 + description*: array[VK_MAX_DESCRIPTION_SIZE, char] + VkApplicationInfo* = object + sType*: VkStructureType + pNext*: pointer + pApplicationName*: cstring + applicationVersion*: uint32 + pEngineName*: cstring + engineVersion*: uint32 + apiVersion*: uint32 + VkAllocationCallbacks* = object + pUserData*: pointer + pfnAllocation*: PFN_vkAllocationFunction + pfnReallocation*: PFN_vkReallocationFunction + pfnFree*: PFN_vkFreeFunction + pfnInternalAllocation*: PFN_vkInternalAllocationNotification + pfnInternalFree*: PFN_vkInternalFreeNotification + VkDeviceQueueCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkDeviceQueueCreateFlags + queueFamilyIndex*: uint32 + queueCount*: uint32 + pQueuePriorities*: ptr float32 + VkDeviceCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkDeviceCreateFlags + queueCreateInfoCount*: uint32 + pQueueCreateInfos*: ptr VkDeviceQueueCreateInfo + enabledLayerCount*: uint32 + ppEnabledLayerNames*: cstringArray + enabledExtensionCount*: uint32 + ppEnabledExtensionNames*: cstringArray + pEnabledFeatures*: ptr VkPhysicalDeviceFeatures + VkInstanceCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkInstanceCreateFlags + pApplicationInfo*: ptr VkApplicationInfo + enabledLayerCount*: uint32 + ppEnabledLayerNames*: cstringArray + enabledExtensionCount*: uint32 + ppEnabledExtensionNames*: cstringArray + VkQueueFamilyProperties* = object + queueFlags*: VkQueueFlags + queueCount*: uint32 + timestampValidBits*: uint32 + minImageTransferGranularity*: VkExtent3D + VkPhysicalDeviceMemoryProperties* = object + memoryTypeCount*: uint32 + memoryTypes*: array[VK_MAX_MEMORY_TYPES, VkMemoryType] + memoryHeapCount*: uint32 + memoryHeaps*: array[VK_MAX_MEMORY_HEAPS, VkMemoryHeap] + VkMemoryAllocateInfo* = object + sType*: VkStructureType + pNext*: pointer + allocationSize*: VkDeviceSize + memoryTypeIndex*: uint32 + VkMemoryRequirements* = object + size*: VkDeviceSize + alignment*: VkDeviceSize + memoryTypeBits*: uint32 + VkSparseImageFormatProperties* = object + aspectMask*: VkImageAspectFlags + imageGranularity*: VkExtent3D + flags*: VkSparseImageFormatFlags + VkSparseImageMemoryRequirements* = object + formatProperties*: VkSparseImageFormatProperties + imageMipTailFirstLod*: uint32 + imageMipTailSize*: VkDeviceSize + imageMipTailOffset*: VkDeviceSize + imageMipTailStride*: VkDeviceSize + VkMemoryType* = object + propertyFlags*: VkMemoryPropertyFlags + heapIndex*: uint32 + VkMemoryHeap* = object + size*: VkDeviceSize + flags*: VkMemoryHeapFlags + VkMappedMemoryRange* = object + sType*: VkStructureType + pNext*: pointer + memory*: VkDeviceMemory + offset*: VkDeviceSize + size*: VkDeviceSize + VkFormatProperties* = object + linearTilingFeatures*: VkFormatFeatureFlags + optimalTilingFeatures*: VkFormatFeatureFlags + bufferFeatures*: VkFormatFeatureFlags + VkImageFormatProperties* = object + maxExtent*: VkExtent3D + maxMipLevels*: uint32 + maxArrayLayers*: uint32 + sampleCounts*: VkSampleCountFlags + maxResourceSize*: VkDeviceSize + VkDescriptorBufferInfo* = object + buffer*: VkBuffer + offset*: VkDeviceSize + range*: VkDeviceSize + VkDescriptorImageInfo* = object + sampler*: VkSampler + imageView*: VkImageView + imageLayout*: VkImageLayout + VkWriteDescriptorSet* = object + sType*: VkStructureType + pNext*: pointer + dstSet*: VkDescriptorSet + dstBinding*: uint32 + dstArrayElement*: uint32 + descriptorCount*: uint32 + descriptorType*: VkDescriptorType + pImageInfo*: ptr VkDescriptorImageInfo + pBufferInfo*: ptr VkDescriptorBufferInfo + pTexelBufferView*: ptr VkBufferView + VkCopyDescriptorSet* = object + sType*: VkStructureType + pNext*: pointer + srcSet*: VkDescriptorSet + srcBinding*: uint32 + srcArrayElement*: uint32 + dstSet*: VkDescriptorSet + dstBinding*: uint32 + dstArrayElement*: uint32 + descriptorCount*: uint32 + VkBufferCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkBufferCreateFlags + size*: VkDeviceSize + usage*: VkBufferUsageFlags + sharingMode*: VkSharingMode + queueFamilyIndexCount*: uint32 + pQueueFamilyIndices*: ptr uint32 + VkBufferViewCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkBufferViewCreateFlags + buffer*: VkBuffer + format*: VkFormat + offset*: VkDeviceSize + range*: VkDeviceSize + VkImageSubresource* = object + aspectMask*: VkImageAspectFlags + mipLevel*: uint32 + arrayLayer*: uint32 + VkImageSubresourceLayers* = object + aspectMask*: VkImageAspectFlags + mipLevel*: uint32 + baseArrayLayer*: uint32 + layerCount*: uint32 + VkImageSubresourceRange* = object + aspectMask*: VkImageAspectFlags + baseMipLevel*: uint32 + levelCount*: uint32 + baseArrayLayer*: uint32 + layerCount*: uint32 + VkMemoryBarrier* = object + sType*: VkStructureType + pNext*: pointer + srcAccessMask*: VkAccessFlags + dstAccessMask*: VkAccessFlags + VkBufferMemoryBarrier* = object + sType*: VkStructureType + pNext*: pointer + srcAccessMask*: VkAccessFlags + dstAccessMask*: VkAccessFlags + srcQueueFamilyIndex*: uint32 + dstQueueFamilyIndex*: uint32 + buffer*: VkBuffer + offset*: VkDeviceSize + size*: VkDeviceSize + VkImageMemoryBarrier* = object + sType*: VkStructureType + pNext*: pointer + srcAccessMask*: VkAccessFlags + dstAccessMask*: VkAccessFlags + oldLayout*: VkImageLayout + newLayout*: VkImageLayout + srcQueueFamilyIndex*: uint32 + dstQueueFamilyIndex*: uint32 + image*: VkImage + subresourceRange*: VkImageSubresourceRange + VkImageCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkImageCreateFlags + imageType*: VkImageType + format*: VkFormat + extent*: VkExtent3D + mipLevels*: uint32 + arrayLayers*: uint32 + samples*: VkSampleCountFlagBits + tiling*: VkImageTiling + usage*: VkImageUsageFlags + sharingMode*: VkSharingMode + queueFamilyIndexCount*: uint32 + pQueueFamilyIndices*: ptr uint32 + initialLayout*: VkImageLayout + VkSubresourceLayout* = object + offset*: VkDeviceSize + size*: VkDeviceSize + rowPitch*: VkDeviceSize + arrayPitch*: VkDeviceSize + depthPitch*: VkDeviceSize + VkImageViewCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkImageViewCreateFlags + image*: VkImage + viewType*: VkImageViewType + format*: VkFormat + components*: VkComponentMapping + subresourceRange*: VkImageSubresourceRange + VkBufferCopy* = object + srcOffset*: VkDeviceSize + dstOffset*: VkDeviceSize + size*: VkDeviceSize + VkSparseMemoryBind* = object + resourceOffset*: VkDeviceSize + size*: VkDeviceSize + memory*: VkDeviceMemory + memoryOffset*: VkDeviceSize + flags*: VkSparseMemoryBindFlags + VkSparseImageMemoryBind* = object + subresource*: VkImageSubresource + offset*: VkOffset3D + extent*: VkExtent3D + memory*: VkDeviceMemory + memoryOffset*: VkDeviceSize + flags*: VkSparseMemoryBindFlags + VkSparseBufferMemoryBindInfo* = object + buffer*: VkBuffer + bindCount*: uint32 + pBinds*: ptr VkSparseMemoryBind + VkSparseImageOpaqueMemoryBindInfo* = object + image*: VkImage + bindCount*: uint32 + pBinds*: ptr VkSparseMemoryBind + VkSparseImageMemoryBindInfo* = object + image*: VkImage + bindCount*: uint32 + pBinds*: ptr VkSparseImageMemoryBind + VkBindSparseInfo* = object + sType*: VkStructureType + pNext*: pointer + waitSemaphoreCount*: uint32 + pWaitSemaphores*: ptr VkSemaphore + bufferBindCount*: uint32 + pBufferBinds*: ptr VkSparseBufferMemoryBindInfo + imageOpaqueBindCount*: uint32 + pImageOpaqueBinds*: ptr VkSparseImageOpaqueMemoryBindInfo + imageBindCount*: uint32 + pImageBinds*: ptr VkSparseImageMemoryBindInfo + signalSemaphoreCount*: uint32 + pSignalSemaphores*: ptr VkSemaphore + VkImageCopy* = object + srcSubresource*: VkImageSubresourceLayers + srcOffset*: VkOffset3D + dstSubresource*: VkImageSubresourceLayers + dstOffset*: VkOffset3D + extent*: VkExtent3D + VkImageBlit* = object + srcSubresource*: VkImageSubresourceLayers + srcOffsets*: array[2, VkOffset3D] + dstSubresource*: VkImageSubresourceLayers + dstOffsets*: array[2, VkOffset3D] + VkBufferImageCopy* = object + bufferOffset*: VkDeviceSize + bufferRowLength*: uint32 + bufferImageHeight*: uint32 + imageSubresource*: VkImageSubresourceLayers + imageOffset*: VkOffset3D + imageExtent*: VkExtent3D + VkCopyMemoryIndirectCommandNV* = object + srcAddress*: VkDeviceAddress + dstAddress*: VkDeviceAddress + size*: VkDeviceSize + VkCopyMemoryToImageIndirectCommandNV* = object + srcAddress*: VkDeviceAddress + bufferRowLength*: uint32 + bufferImageHeight*: uint32 + imageSubresource*: VkImageSubresourceLayers + imageOffset*: VkOffset3D + imageExtent*: VkExtent3D + VkImageResolve* = object + srcSubresource*: VkImageSubresourceLayers + srcOffset*: VkOffset3D + dstSubresource*: VkImageSubresourceLayers + dstOffset*: VkOffset3D + extent*: VkExtent3D + VkShaderModuleCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkShaderModuleCreateFlags + codeSize*: csize_t + pCode*: ptr uint32 + VkDescriptorSetLayoutBinding* = object + binding*: uint32 + descriptorType*: VkDescriptorType + descriptorCount*: uint32 + stageFlags*: VkShaderStageFlags + pImmutableSamplers*: ptr VkSampler + VkDescriptorSetLayoutCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkDescriptorSetLayoutCreateFlags + bindingCount*: uint32 + pBindings*: ptr VkDescriptorSetLayoutBinding + VkDescriptorPoolSize* = object + thetype*: VkDescriptorType + descriptorCount*: uint32 + VkDescriptorPoolCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkDescriptorPoolCreateFlags + maxSets*: uint32 + poolSizeCount*: uint32 + pPoolSizes*: ptr VkDescriptorPoolSize + VkDescriptorSetAllocateInfo* = object + sType*: VkStructureType + pNext*: pointer + descriptorPool*: VkDescriptorPool + descriptorSetCount*: uint32 + pSetLayouts*: ptr VkDescriptorSetLayout + VkSpecializationMapEntry* = object + constantID*: uint32 + offset*: uint32 + size*: csize_t + VkSpecializationInfo* = object + mapEntryCount*: uint32 + pMapEntries*: ptr VkSpecializationMapEntry + dataSize*: csize_t + pData*: pointer + VkPipelineShaderStageCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkPipelineShaderStageCreateFlags + stage*: VkShaderStageFlagBits + module*: VkShaderModule + pName*: cstring + pSpecializationInfo*: ptr VkSpecializationInfo + VkComputePipelineCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkPipelineCreateFlags + stage*: VkPipelineShaderStageCreateInfo + layout*: VkPipelineLayout + basePipelineHandle*: VkPipeline + basePipelineIndex*: int32 + VkVertexInputBindingDescription* = object + binding*: uint32 + stride*: uint32 + inputRate*: VkVertexInputRate + VkVertexInputAttributeDescription* = object + location*: uint32 + binding*: uint32 + format*: VkFormat + offset*: uint32 + VkPipelineVertexInputStateCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkPipelineVertexInputStateCreateFlags + vertexBindingDescriptionCount*: uint32 + pVertexBindingDescriptions*: ptr VkVertexInputBindingDescription + vertexAttributeDescriptionCount*: uint32 + pVertexAttributeDescriptions*: ptr VkVertexInputAttributeDescription + VkPipelineInputAssemblyStateCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkPipelineInputAssemblyStateCreateFlags + topology*: VkPrimitiveTopology + primitiveRestartEnable*: VkBool32 + VkPipelineTessellationStateCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkPipelineTessellationStateCreateFlags + patchControlPoints*: uint32 + VkPipelineViewportStateCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkPipelineViewportStateCreateFlags + viewportCount*: uint32 + pViewports*: ptr VkViewport + scissorCount*: uint32 + pScissors*: ptr VkRect2D + VkPipelineRasterizationStateCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkPipelineRasterizationStateCreateFlags + depthClampEnable*: VkBool32 + rasterizerDiscardEnable*: VkBool32 + polygonMode*: VkPolygonMode + cullMode*: VkCullModeFlags + frontFace*: VkFrontFace + depthBiasEnable*: VkBool32 + depthBiasConstantFactor*: float32 + depthBiasClamp*: float32 + depthBiasSlopeFactor*: float32 + lineWidth*: float32 + VkPipelineMultisampleStateCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkPipelineMultisampleStateCreateFlags + rasterizationSamples*: VkSampleCountFlagBits + sampleShadingEnable*: VkBool32 + minSampleShading*: float32 + pSampleMask*: ptr VkSampleMask + alphaToCoverageEnable*: VkBool32 + alphaToOneEnable*: VkBool32 + VkPipelineColorBlendAttachmentState* = object + blendEnable*: VkBool32 + srcColorBlendFactor*: VkBlendFactor + dstColorBlendFactor*: VkBlendFactor + colorBlendOp*: VkBlendOp + srcAlphaBlendFactor*: VkBlendFactor + dstAlphaBlendFactor*: VkBlendFactor + alphaBlendOp*: VkBlendOp + colorWriteMask*: VkColorComponentFlags + VkPipelineColorBlendStateCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkPipelineColorBlendStateCreateFlags + logicOpEnable*: VkBool32 + logicOp*: VkLogicOp + attachmentCount*: uint32 + pAttachments*: ptr VkPipelineColorBlendAttachmentState + blendConstants*: array[4, float32] + VkPipelineDynamicStateCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkPipelineDynamicStateCreateFlags + dynamicStateCount*: uint32 + pDynamicStates*: ptr VkDynamicState + VkStencilOpState* = object + failOp*: VkStencilOp + passOp*: VkStencilOp + depthFailOp*: VkStencilOp + compareOp*: VkCompareOp + compareMask*: uint32 + writeMask*: uint32 + reference*: uint32 + VkPipelineDepthStencilStateCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkPipelineDepthStencilStateCreateFlags + depthTestEnable*: VkBool32 + depthWriteEnable*: VkBool32 + depthCompareOp*: VkCompareOp + depthBoundsTestEnable*: VkBool32 + stencilTestEnable*: VkBool32 + front*: VkStencilOpState + back*: VkStencilOpState + minDepthBounds*: float32 + maxDepthBounds*: float32 + VkGraphicsPipelineCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkPipelineCreateFlags + stageCount*: uint32 + pStages*: ptr VkPipelineShaderStageCreateInfo + pVertexInputState*: ptr VkPipelineVertexInputStateCreateInfo + pInputAssemblyState*: ptr VkPipelineInputAssemblyStateCreateInfo + pTessellationState*: ptr VkPipelineTessellationStateCreateInfo + pViewportState*: ptr VkPipelineViewportStateCreateInfo + pRasterizationState*: ptr VkPipelineRasterizationStateCreateInfo + pMultisampleState*: ptr VkPipelineMultisampleStateCreateInfo + pDepthStencilState*: ptr VkPipelineDepthStencilStateCreateInfo + pColorBlendState*: ptr VkPipelineColorBlendStateCreateInfo + pDynamicState*: ptr VkPipelineDynamicStateCreateInfo + layout*: VkPipelineLayout + renderPass*: VkRenderPass + subpass*: uint32 + basePipelineHandle*: VkPipeline + basePipelineIndex*: int32 + VkPipelineCacheCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkPipelineCacheCreateFlags + initialDataSize*: csize_t + pInitialData*: pointer + VkPipelineCacheHeaderVersionOne* = object + headerSize*: uint32 + headerVersion*: VkPipelineCacheHeaderVersion + vendorID*: uint32 + deviceID*: uint32 + pipelineCacheUUID*: array[VK_UUID_SIZE, uint8] + VkPipelineCacheStageValidationIndexEntry* = object + codeSize*: uint64 + codeOffset*: uint64 + VkPipelineCacheSafetyCriticalIndexEntry* = object + pipelineIdentifier*: array[VK_UUID_SIZE, uint8] + pipelineMemorySize*: uint64 + jsonSize*: uint64 + jsonOffset*: uint64 + stageIndexCount*: uint32 + stageIndexStride*: uint32 + stageIndexOffset*: uint64 + VkPipelineCacheHeaderVersionSafetyCriticalOne* = object + headerVersionOne*: VkPipelineCacheHeaderVersionOne + validationVersion*: VkPipelineCacheValidationVersion + implementationData*: uint32 + pipelineIndexCount*: uint32 + pipelineIndexStride*: uint32 + pipelineIndexOffset*: uint64 + VkPushConstantRange* = object + stageFlags*: VkShaderStageFlags + offset*: uint32 + size*: uint32 + VkPipelineLayoutCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkPipelineLayoutCreateFlags + setLayoutCount*: uint32 + pSetLayouts*: ptr VkDescriptorSetLayout + pushConstantRangeCount*: uint32 + pPushConstantRanges*: ptr VkPushConstantRange + VkSamplerCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkSamplerCreateFlags + magFilter*: VkFilter + minFilter*: VkFilter + mipmapMode*: VkSamplerMipmapMode + addressModeU*: VkSamplerAddressMode + addressModeV*: VkSamplerAddressMode + addressModeW*: VkSamplerAddressMode + mipLodBias*: float32 + anisotropyEnable*: VkBool32 + maxAnisotropy*: float32 + compareEnable*: VkBool32 + compareOp*: VkCompareOp + minLod*: float32 + maxLod*: float32 + borderColor*: VkBorderColor + unnormalizedCoordinates*: VkBool32 + VkCommandPoolCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkCommandPoolCreateFlags + queueFamilyIndex*: uint32 + VkCommandBufferAllocateInfo* = object + sType*: VkStructureType + pNext*: pointer + commandPool*: VkCommandPool + level*: VkCommandBufferLevel + commandBufferCount*: uint32 + VkCommandBufferInheritanceInfo* = object + sType*: VkStructureType + pNext*: pointer + renderPass*: VkRenderPass + subpass*: uint32 + framebuffer*: VkFramebuffer + occlusionQueryEnable*: VkBool32 + queryFlags*: VkQueryControlFlags + pipelineStatistics*: VkQueryPipelineStatisticFlags + VkCommandBufferBeginInfo* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkCommandBufferUsageFlags + pInheritanceInfo*: ptr VkCommandBufferInheritanceInfo + VkRenderPassBeginInfo* = object + sType*: VkStructureType + pNext*: pointer + renderPass*: VkRenderPass + framebuffer*: VkFramebuffer + renderArea*: VkRect2D + clearValueCount*: uint32 + pClearValues*: ptr VkClearValue + VkClearColorValue* {.union.} = object + float32*: array[4, float32] + int32*: array[4, int32] + uint32*: array[4, uint32] + VkClearDepthStencilValue* = object + depth*: float32 + stencil*: uint32 + VkClearValue* {.union.} = object + color*: VkClearColorValue + depthStencil*: VkClearDepthStencilValue + VkClearAttachment* = object + aspectMask*: VkImageAspectFlags + colorAttachment*: uint32 + clearValue*: VkClearValue + VkAttachmentDescription* = object + flags*: VkAttachmentDescriptionFlags + format*: VkFormat + samples*: VkSampleCountFlagBits + loadOp*: VkAttachmentLoadOp + storeOp*: VkAttachmentStoreOp + stencilLoadOp*: VkAttachmentLoadOp + stencilStoreOp*: VkAttachmentStoreOp + initialLayout*: VkImageLayout + finalLayout*: VkImageLayout + VkAttachmentReference* = object + attachment*: uint32 + layout*: VkImageLayout + VkSubpassDescription* = object + flags*: VkSubpassDescriptionFlags + pipelineBindPoint*: VkPipelineBindPoint + inputAttachmentCount*: uint32 + pInputAttachments*: ptr VkAttachmentReference + colorAttachmentCount*: uint32 + pColorAttachments*: ptr VkAttachmentReference + pResolveAttachments*: ptr VkAttachmentReference + pDepthStencilAttachment*: ptr VkAttachmentReference + preserveAttachmentCount*: uint32 + pPreserveAttachments*: ptr uint32 + VkSubpassDependency* = object + srcSubpass*: uint32 + dstSubpass*: uint32 + srcStageMask*: VkPipelineStageFlags + dstStageMask*: VkPipelineStageFlags + srcAccessMask*: VkAccessFlags + dstAccessMask*: VkAccessFlags + dependencyFlags*: VkDependencyFlags + VkRenderPassCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkRenderPassCreateFlags + attachmentCount*: uint32 + pAttachments*: ptr VkAttachmentDescription + subpassCount*: uint32 + pSubpasses*: ptr VkSubpassDescription + dependencyCount*: uint32 + pDependencies*: ptr VkSubpassDependency + VkEventCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkEventCreateFlags + VkFenceCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkFenceCreateFlags + VkPhysicalDeviceFeatures* = object + robustBufferAccess*: VkBool32 + fullDrawIndexUint32*: VkBool32 + imageCubeArray*: VkBool32 + independentBlend*: VkBool32 + geometryShader*: VkBool32 + tessellationShader*: VkBool32 + sampleRateShading*: VkBool32 + dualSrcBlend*: VkBool32 + logicOp*: VkBool32 + multiDrawIndirect*: VkBool32 + drawIndirectFirstInstance*: VkBool32 + depthClamp*: VkBool32 + depthBiasClamp*: VkBool32 + fillModeNonSolid*: VkBool32 + depthBounds*: VkBool32 + wideLines*: VkBool32 + largePoints*: VkBool32 + alphaToOne*: VkBool32 + multiViewport*: VkBool32 + samplerAnisotropy*: VkBool32 + textureCompressionETC2*: VkBool32 + textureCompressionASTC_LDR*: VkBool32 + textureCompressionBC*: VkBool32 + occlusionQueryPrecise*: VkBool32 + pipelineStatisticsQuery*: VkBool32 + vertexPipelineStoresAndAtomics*: VkBool32 + fragmentStoresAndAtomics*: VkBool32 + shaderTessellationAndGeometryPointSize*: VkBool32 + shaderImageGatherExtended*: VkBool32 + shaderStorageImageExtendedFormats*: VkBool32 + shaderStorageImageMultisample*: VkBool32 + shaderStorageImageReadWithoutFormat*: VkBool32 + shaderStorageImageWriteWithoutFormat*: VkBool32 + shaderUniformBufferArrayDynamicIndexing*: VkBool32 + shaderSampledImageArrayDynamicIndexing*: VkBool32 + shaderStorageBufferArrayDynamicIndexing*: VkBool32 + shaderStorageImageArrayDynamicIndexing*: VkBool32 + shaderClipDistance*: VkBool32 + shaderCullDistance*: VkBool32 + shaderFloat64*: VkBool32 + shaderInt64*: VkBool32 + shaderInt16*: VkBool32 + shaderResourceResidency*: VkBool32 + shaderResourceMinLod*: VkBool32 + sparseBinding*: VkBool32 + sparseResidencyBuffer*: VkBool32 + sparseResidencyImage2D*: VkBool32 + sparseResidencyImage3D*: VkBool32 + sparseResidency2Samples*: VkBool32 + sparseResidency4Samples*: VkBool32 + sparseResidency8Samples*: VkBool32 + sparseResidency16Samples*: VkBool32 + sparseResidencyAliased*: VkBool32 + variableMultisampleRate*: VkBool32 + inheritedQueries*: VkBool32 + VkPhysicalDeviceSparseProperties* = object + residencyStandard2DBlockShape*: VkBool32 + residencyStandard2DMultisampleBlockShape*: VkBool32 + residencyStandard3DBlockShape*: VkBool32 + residencyAlignedMipSize*: VkBool32 + residencyNonResidentStrict*: VkBool32 + VkPhysicalDeviceLimits* = object + maxImageDimension1D*: uint32 + maxImageDimension2D*: uint32 + maxImageDimension3D*: uint32 + maxImageDimensionCube*: uint32 + maxImageArrayLayers*: uint32 + maxTexelBufferElements*: uint32 + maxUniformBufferRange*: uint32 + maxStorageBufferRange*: uint32 + maxPushConstantsSize*: uint32 + maxMemoryAllocationCount*: uint32 + maxSamplerAllocationCount*: uint32 + bufferImageGranularity*: VkDeviceSize + sparseAddressSpaceSize*: VkDeviceSize + maxBoundDescriptorSets*: uint32 + maxPerStageDescriptorSamplers*: uint32 + maxPerStageDescriptorUniformBuffers*: uint32 + maxPerStageDescriptorStorageBuffers*: uint32 + maxPerStageDescriptorSampledImages*: uint32 + maxPerStageDescriptorStorageImages*: uint32 + maxPerStageDescriptorInputAttachments*: uint32 + maxPerStageResources*: uint32 + maxDescriptorSetSamplers*: uint32 + maxDescriptorSetUniformBuffers*: uint32 + maxDescriptorSetUniformBuffersDynamic*: uint32 + maxDescriptorSetStorageBuffers*: uint32 + maxDescriptorSetStorageBuffersDynamic*: uint32 + maxDescriptorSetSampledImages*: uint32 + maxDescriptorSetStorageImages*: uint32 + maxDescriptorSetInputAttachments*: uint32 + maxVertexInputAttributes*: uint32 + maxVertexInputBindings*: uint32 + maxVertexInputAttributeOffset*: uint32 + maxVertexInputBindingStride*: uint32 + maxVertexOutputComponents*: uint32 + maxTessellationGenerationLevel*: uint32 + maxTessellationPatchSize*: uint32 + maxTessellationControlPerVertexInputComponents*: uint32 + maxTessellationControlPerVertexOutputComponents*: uint32 + maxTessellationControlPerPatchOutputComponents*: uint32 + maxTessellationControlTotalOutputComponents*: uint32 + maxTessellationEvaluationInputComponents*: uint32 + maxTessellationEvaluationOutputComponents*: uint32 + maxGeometryShaderInvocations*: uint32 + maxGeometryInputComponents*: uint32 + maxGeometryOutputComponents*: uint32 + maxGeometryOutputVertices*: uint32 + maxGeometryTotalOutputComponents*: uint32 + maxFragmentInputComponents*: uint32 + maxFragmentOutputAttachments*: uint32 + maxFragmentDualSrcAttachments*: uint32 + maxFragmentCombinedOutputResources*: uint32 + maxComputeSharedMemorySize*: uint32 + maxComputeWorkGroupCount*: array[3, uint32] + maxComputeWorkGroupInvocations*: uint32 + maxComputeWorkGroupSize*: array[3, uint32] + subPixelPrecisionBits*: uint32 + subTexelPrecisionBits*: uint32 + mipmapPrecisionBits*: uint32 + maxDrawIndexedIndexValue*: uint32 + maxDrawIndirectCount*: uint32 + maxSamplerLodBias*: float32 + maxSamplerAnisotropy*: float32 + maxViewports*: uint32 + maxViewportDimensions*: array[2, uint32] + viewportBoundsRange*: array[2, float32] + viewportSubPixelBits*: uint32 + minMemoryMapAlignment*: csize_t + minTexelBufferOffsetAlignment*: VkDeviceSize + minUniformBufferOffsetAlignment*: VkDeviceSize + minStorageBufferOffsetAlignment*: VkDeviceSize + minTexelOffset*: int32 + maxTexelOffset*: uint32 + minTexelGatherOffset*: int32 + maxTexelGatherOffset*: uint32 + minInterpolationOffset*: float32 + maxInterpolationOffset*: float32 + subPixelInterpolationOffsetBits*: uint32 + maxFramebufferWidth*: uint32 + maxFramebufferHeight*: uint32 + maxFramebufferLayers*: uint32 + framebufferColorSampleCounts*: VkSampleCountFlags + framebufferDepthSampleCounts*: VkSampleCountFlags + framebufferStencilSampleCounts*: VkSampleCountFlags + framebufferNoAttachmentsSampleCounts*: VkSampleCountFlags + maxColorAttachments*: uint32 + sampledImageColorSampleCounts*: VkSampleCountFlags + sampledImageIntegerSampleCounts*: VkSampleCountFlags + sampledImageDepthSampleCounts*: VkSampleCountFlags + sampledImageStencilSampleCounts*: VkSampleCountFlags + storageImageSampleCounts*: VkSampleCountFlags + maxSampleMaskWords*: uint32 + timestampComputeAndGraphics*: VkBool32 + timestampPeriod*: float32 + maxClipDistances*: uint32 + maxCullDistances*: uint32 + maxCombinedClipAndCullDistances*: uint32 + discreteQueuePriorities*: uint32 + pointSizeRange*: array[2, float32] + lineWidthRange*: array[2, float32] + pointSizeGranularity*: float32 + lineWidthGranularity*: float32 + strictLines*: VkBool32 + standardSampleLocations*: VkBool32 + optimalBufferCopyOffsetAlignment*: VkDeviceSize + optimalBufferCopyRowPitchAlignment*: VkDeviceSize + nonCoherentAtomSize*: VkDeviceSize + VkSemaphoreCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkSemaphoreCreateFlags + VkQueryPoolCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkQueryPoolCreateFlags + queryType*: VkQueryType + queryCount*: uint32 + pipelineStatistics*: VkQueryPipelineStatisticFlags + VkFramebufferCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkFramebufferCreateFlags + renderPass*: VkRenderPass + attachmentCount*: uint32 + pAttachments*: ptr VkImageView + width*: uint32 + height*: uint32 + layers*: uint32 + VkDrawIndirectCommand* = object + vertexCount*: uint32 + instanceCount*: uint32 + firstVertex*: uint32 + firstInstance*: uint32 + VkDrawIndexedIndirectCommand* = object + indexCount*: uint32 + instanceCount*: uint32 + firstIndex*: uint32 + vertexOffset*: int32 + firstInstance*: uint32 + VkDispatchIndirectCommand* = object + x*: uint32 + y*: uint32 + z*: uint32 + VkMultiDrawInfoEXT* = object + firstVertex*: uint32 + vertexCount*: uint32 + VkMultiDrawIndexedInfoEXT* = object + firstIndex*: uint32 + indexCount*: uint32 + vertexOffset*: int32 + VkSubmitInfo* = object + sType*: VkStructureType + pNext*: pointer + waitSemaphoreCount*: uint32 + pWaitSemaphores*: ptr VkSemaphore + pWaitDstStageMask*: ptr VkPipelineStageFlags + commandBufferCount*: uint32 + pCommandBuffers*: ptr VkCommandBuffer + signalSemaphoreCount*: uint32 + pSignalSemaphores*: ptr VkSemaphore + VkDisplayPropertiesKHR* = object + display*: VkDisplayKHR + displayName*: cstring + physicalDimensions*: VkExtent2D + physicalResolution*: VkExtent2D + supportedTransforms*: VkSurfaceTransformFlagsKHR + planeReorderPossible*: VkBool32 + persistentContent*: VkBool32 + VkDisplayPlanePropertiesKHR* = object + currentDisplay*: VkDisplayKHR + currentStackIndex*: uint32 + VkDisplayModeParametersKHR* = object + visibleRegion*: VkExtent2D + refreshRate*: uint32 + VkDisplayModePropertiesKHR* = object + displayMode*: VkDisplayModeKHR + parameters*: VkDisplayModeParametersKHR + VkDisplayModeCreateInfoKHR* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkDisplayModeCreateFlagsKHR + parameters*: VkDisplayModeParametersKHR + VkDisplayPlaneCapabilitiesKHR* = object + supportedAlpha*: VkDisplayPlaneAlphaFlagsKHR + minSrcPosition*: VkOffset2D + maxSrcPosition*: VkOffset2D + minSrcExtent*: VkExtent2D + maxSrcExtent*: VkExtent2D + minDstPosition*: VkOffset2D + maxDstPosition*: VkOffset2D + minDstExtent*: VkExtent2D + maxDstExtent*: VkExtent2D + VkDisplaySurfaceCreateInfoKHR* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkDisplaySurfaceCreateFlagsKHR + displayMode*: VkDisplayModeKHR + planeIndex*: uint32 + planeStackIndex*: uint32 + transform*: VkSurfaceTransformFlagBitsKHR + globalAlpha*: float32 + alphaMode*: VkDisplayPlaneAlphaFlagBitsKHR + imageExtent*: VkExtent2D + VkDisplayPresentInfoKHR* = object + sType*: VkStructureType + pNext*: pointer + srcRect*: VkRect2D + dstRect*: VkRect2D + persistent*: VkBool32 + VkSurfaceCapabilitiesKHR* = object + minImageCount*: uint32 + maxImageCount*: uint32 + currentExtent*: VkExtent2D + minImageExtent*: VkExtent2D + maxImageExtent*: VkExtent2D + maxImageArrayLayers*: uint32 + supportedTransforms*: VkSurfaceTransformFlagsKHR + currentTransform*: VkSurfaceTransformFlagBitsKHR + supportedCompositeAlpha*: VkCompositeAlphaFlagsKHR + supportedUsageFlags*: VkImageUsageFlags + VkSurfaceFormatKHR* = object + format*: VkFormat + colorSpace*: VkColorSpaceKHR + VkSwapchainCreateInfoKHR* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkSwapchainCreateFlagsKHR + surface*: VkSurfaceKHR + minImageCount*: uint32 + imageFormat*: VkFormat + imageColorSpace*: VkColorSpaceKHR + imageExtent*: VkExtent2D + imageArrayLayers*: uint32 + imageUsage*: VkImageUsageFlags + imageSharingMode*: VkSharingMode + queueFamilyIndexCount*: uint32 + pQueueFamilyIndices*: ptr uint32 + preTransform*: VkSurfaceTransformFlagBitsKHR + compositeAlpha*: VkCompositeAlphaFlagBitsKHR + presentMode*: VkPresentModeKHR + clipped*: VkBool32 + oldSwapchain*: VkSwapchainKHR + VkPresentInfoKHR* = object + sType*: VkStructureType + pNext*: pointer + waitSemaphoreCount*: uint32 + pWaitSemaphores*: ptr VkSemaphore + swapchainCount*: uint32 + pSwapchains*: ptr VkSwapchainKHR + pImageIndices*: ptr uint32 + pResults*: ptr VkResult + VkDebugReportCallbackCreateInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkDebugReportFlagsEXT + pfnCallback*: PFN_vkDebugReportCallbackEXT + pUserData*: pointer + VkValidationFlagsEXT* = object + sType*: VkStructureType + pNext*: pointer + disabledValidationCheckCount*: uint32 + pDisabledValidationChecks*: ptr VkValidationCheckEXT + VkValidationFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + enabledValidationFeatureCount*: uint32 + pEnabledValidationFeatures*: ptr VkValidationFeatureEnableEXT + disabledValidationFeatureCount*: uint32 + pDisabledValidationFeatures*: ptr VkValidationFeatureDisableEXT + VkApplicationParametersEXT* = object + sType*: VkStructureType + pNext*: pointer + vendorID*: uint32 + deviceID*: uint32 + key*: uint32 + value*: uint64 + VkPipelineRasterizationStateRasterizationOrderAMD* = object + sType*: VkStructureType + pNext*: pointer + rasterizationOrder*: VkRasterizationOrderAMD + VkDebugMarkerObjectNameInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + objectType*: VkDebugReportObjectTypeEXT + theobject*: uint64 + pObjectName*: cstring + VkDebugMarkerObjectTagInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + objectType*: VkDebugReportObjectTypeEXT + theobject*: uint64 + tagName*: uint64 + tagSize*: csize_t + pTag*: pointer + VkDebugMarkerMarkerInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + pMarkerName*: cstring + color*: array[4, float32] + VkDedicatedAllocationImageCreateInfoNV* = object + sType*: VkStructureType + pNext*: pointer + dedicatedAllocation*: VkBool32 + VkDedicatedAllocationBufferCreateInfoNV* = object + sType*: VkStructureType + pNext*: pointer + dedicatedAllocation*: VkBool32 + VkDedicatedAllocationMemoryAllocateInfoNV* = object + sType*: VkStructureType + pNext*: pointer + image*: VkImage + buffer*: VkBuffer + VkExternalImageFormatPropertiesNV* = object + imageFormatProperties*: VkImageFormatProperties + externalMemoryFeatures*: VkExternalMemoryFeatureFlagsNV + exportFromImportedHandleTypes*: VkExternalMemoryHandleTypeFlagsNV + compatibleHandleTypes*: VkExternalMemoryHandleTypeFlagsNV + VkExternalMemoryImageCreateInfoNV* = object + sType*: VkStructureType + pNext*: pointer + handleTypes*: VkExternalMemoryHandleTypeFlagsNV + VkExportMemoryAllocateInfoNV* = object + sType*: VkStructureType + pNext*: pointer + handleTypes*: VkExternalMemoryHandleTypeFlagsNV + VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV* = object + sType*: VkStructureType + pNext*: pointer + deviceGeneratedCommands*: VkBool32 + VkDevicePrivateDataCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + privateDataSlotRequestCount*: uint32 + VkDevicePrivateDataCreateInfoEXT* = object + VkPrivateDataSlotCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkPrivateDataSlotCreateFlags + VkPrivateDataSlotCreateInfoEXT* = object + VkPhysicalDevicePrivateDataFeatures* = object + sType*: VkStructureType + pNext*: pointer + privateData*: VkBool32 + VkPhysicalDevicePrivateDataFeaturesEXT* = object + VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV* = object + sType*: VkStructureType + pNext*: pointer + maxGraphicsShaderGroupCount*: uint32 + maxIndirectSequenceCount*: uint32 + maxIndirectCommandsTokenCount*: uint32 + maxIndirectCommandsStreamCount*: uint32 + maxIndirectCommandsTokenOffset*: uint32 + maxIndirectCommandsStreamStride*: uint32 + minSequencesCountBufferOffsetAlignment*: uint32 + minSequencesIndexBufferOffsetAlignment*: uint32 + minIndirectCommandsBufferOffsetAlignment*: uint32 + VkPhysicalDeviceMultiDrawPropertiesEXT* = object + sType*: VkStructureType + pNext*: pointer + maxMultiDrawCount*: uint32 + VkGraphicsShaderGroupCreateInfoNV* = object + sType*: VkStructureType + pNext*: pointer + stageCount*: uint32 + pStages*: ptr VkPipelineShaderStageCreateInfo + pVertexInputState*: ptr VkPipelineVertexInputStateCreateInfo + pTessellationState*: ptr VkPipelineTessellationStateCreateInfo + VkGraphicsPipelineShaderGroupsCreateInfoNV* = object + sType*: VkStructureType + pNext*: pointer + groupCount*: uint32 + pGroups*: ptr VkGraphicsShaderGroupCreateInfoNV + pipelineCount*: uint32 + pPipelines*: ptr VkPipeline + VkBindShaderGroupIndirectCommandNV* = object + groupIndex*: uint32 + VkBindIndexBufferIndirectCommandNV* = object + bufferAddress*: VkDeviceAddress + size*: uint32 + indexType*: VkIndexType + VkBindVertexBufferIndirectCommandNV* = object + bufferAddress*: VkDeviceAddress + size*: uint32 + stride*: uint32 + VkSetStateFlagsIndirectCommandNV* = object + data*: uint32 + VkIndirectCommandsStreamNV* = object + buffer*: VkBuffer + offset*: VkDeviceSize + VkIndirectCommandsLayoutTokenNV* = object + sType*: VkStructureType + pNext*: pointer + tokenType*: VkIndirectCommandsTokenTypeNV + stream*: uint32 + offset*: uint32 + vertexBindingUnit*: uint32 + vertexDynamicStride*: VkBool32 + pushconstantPipelineLayout*: VkPipelineLayout + pushconstantShaderStageFlags*: VkShaderStageFlags + pushconstantOffset*: uint32 + pushconstantSize*: uint32 + indirectStateFlags*: VkIndirectStateFlagsNV + indexTypeCount*: uint32 + pIndexTypes*: ptr VkIndexType + pIndexTypeValues*: ptr uint32 + VkIndirectCommandsLayoutCreateInfoNV* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkIndirectCommandsLayoutUsageFlagsNV + pipelineBindPoint*: VkPipelineBindPoint + tokenCount*: uint32 + pTokens*: ptr VkIndirectCommandsLayoutTokenNV + streamCount*: uint32 + pStreamStrides*: ptr uint32 + VkGeneratedCommandsInfoNV* = object + sType*: VkStructureType + pNext*: pointer + pipelineBindPoint*: VkPipelineBindPoint + pipeline*: VkPipeline + indirectCommandsLayout*: VkIndirectCommandsLayoutNV + streamCount*: uint32 + pStreams*: ptr VkIndirectCommandsStreamNV + sequencesCount*: uint32 + preprocessBuffer*: VkBuffer + preprocessOffset*: VkDeviceSize + preprocessSize*: VkDeviceSize + sequencesCountBuffer*: VkBuffer + sequencesCountOffset*: VkDeviceSize + sequencesIndexBuffer*: VkBuffer + sequencesIndexOffset*: VkDeviceSize + VkGeneratedCommandsMemoryRequirementsInfoNV* = object + sType*: VkStructureType + pNext*: pointer + pipelineBindPoint*: VkPipelineBindPoint + pipeline*: VkPipeline + indirectCommandsLayout*: VkIndirectCommandsLayoutNV + maxSequencesCount*: uint32 + VkPhysicalDeviceFeatures2* = object + sType*: VkStructureType + pNext*: pointer + features*: VkPhysicalDeviceFeatures + VkPhysicalDeviceFeatures2KHR* = object + VkPhysicalDeviceProperties2* = object + sType*: VkStructureType + pNext*: pointer + properties*: VkPhysicalDeviceProperties + VkPhysicalDeviceProperties2KHR* = object + VkFormatProperties2* = object + sType*: VkStructureType + pNext*: pointer + formatProperties*: VkFormatProperties + VkFormatProperties2KHR* = object + VkImageFormatProperties2* = object + sType*: VkStructureType + pNext*: pointer + imageFormatProperties*: VkImageFormatProperties + VkImageFormatProperties2KHR* = object + VkPhysicalDeviceImageFormatInfo2* = object + sType*: VkStructureType + pNext*: pointer + format*: VkFormat + thetype*: VkImageType + tiling*: VkImageTiling + usage*: VkImageUsageFlags + flags*: VkImageCreateFlags + VkPhysicalDeviceImageFormatInfo2KHR* = object + VkQueueFamilyProperties2* = object + sType*: VkStructureType + pNext*: pointer + queueFamilyProperties*: VkQueueFamilyProperties + VkQueueFamilyProperties2KHR* = object + VkPhysicalDeviceMemoryProperties2* = object + sType*: VkStructureType + pNext*: pointer + memoryProperties*: VkPhysicalDeviceMemoryProperties + VkPhysicalDeviceMemoryProperties2KHR* = object + VkSparseImageFormatProperties2* = object + sType*: VkStructureType + pNext*: pointer + properties*: VkSparseImageFormatProperties + VkSparseImageFormatProperties2KHR* = object + VkPhysicalDeviceSparseImageFormatInfo2* = object + sType*: VkStructureType + pNext*: pointer + format*: VkFormat + thetype*: VkImageType + samples*: VkSampleCountFlagBits + usage*: VkImageUsageFlags + tiling*: VkImageTiling + VkPhysicalDeviceSparseImageFormatInfo2KHR* = object + VkPhysicalDevicePushDescriptorPropertiesKHR* = object + sType*: VkStructureType + pNext*: pointer + maxPushDescriptors*: uint32 + VkConformanceVersion* = object + major*: uint8 + minor*: uint8 + subminor*: uint8 + patch*: uint8 + VkConformanceVersionKHR* = object + VkPhysicalDeviceDriverProperties* = object + sType*: VkStructureType + pNext*: pointer + driverID*: VkDriverId + driverName*: array[VK_MAX_DRIVER_NAME_SIZE, char] + driverInfo*: array[VK_MAX_DRIVER_INFO_SIZE, char] + conformanceVersion*: VkConformanceVersion + VkPhysicalDeviceDriverPropertiesKHR* = object + VkPresentRegionsKHR* = object + sType*: VkStructureType + pNext*: pointer + swapchainCount*: uint32 + pRegions*: ptr VkPresentRegionKHR + VkPresentRegionKHR* = object + rectangleCount*: uint32 + pRectangles*: ptr VkRectLayerKHR + VkRectLayerKHR* = object + offset*: VkOffset2D + extent*: VkExtent2D + layer*: uint32 + VkPhysicalDeviceVariablePointersFeatures* = object + sType*: VkStructureType + pNext*: pointer + variablePointersStorageBuffer*: VkBool32 + variablePointers*: VkBool32 + VkPhysicalDeviceVariablePointersFeaturesKHR* = object + VkPhysicalDeviceVariablePointerFeaturesKHR* = object + VkPhysicalDeviceVariablePointerFeatures* = object + VkExternalMemoryProperties* = object + externalMemoryFeatures*: VkExternalMemoryFeatureFlags + exportFromImportedHandleTypes*: VkExternalMemoryHandleTypeFlags + compatibleHandleTypes*: VkExternalMemoryHandleTypeFlags + VkExternalMemoryPropertiesKHR* = object + VkPhysicalDeviceExternalImageFormatInfo* = object + sType*: VkStructureType + pNext*: pointer + handleType*: VkExternalMemoryHandleTypeFlagBits + VkPhysicalDeviceExternalImageFormatInfoKHR* = object + VkExternalImageFormatProperties* = object + sType*: VkStructureType + pNext*: pointer + externalMemoryProperties*: VkExternalMemoryProperties + VkExternalImageFormatPropertiesKHR* = object + VkPhysicalDeviceExternalBufferInfo* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkBufferCreateFlags + usage*: VkBufferUsageFlags + handleType*: VkExternalMemoryHandleTypeFlagBits + VkPhysicalDeviceExternalBufferInfoKHR* = object + VkExternalBufferProperties* = object + sType*: VkStructureType + pNext*: pointer + externalMemoryProperties*: VkExternalMemoryProperties + VkExternalBufferPropertiesKHR* = object + VkPhysicalDeviceIDProperties* = object + sType*: VkStructureType + pNext*: pointer + deviceUUID*: array[VK_UUID_SIZE, uint8] + driverUUID*: array[VK_UUID_SIZE, uint8] + deviceLUID*: array[VK_LUID_SIZE, uint8] + deviceNodeMask*: uint32 + deviceLUIDValid*: VkBool32 + VkPhysicalDeviceIDPropertiesKHR* = object + VkExternalMemoryImageCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + handleTypes*: VkExternalMemoryHandleTypeFlags + VkExternalMemoryImageCreateInfoKHR* = object + VkExternalMemoryBufferCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + handleTypes*: VkExternalMemoryHandleTypeFlags + VkExternalMemoryBufferCreateInfoKHR* = object + VkExportMemoryAllocateInfo* = object + sType*: VkStructureType + pNext*: pointer + handleTypes*: VkExternalMemoryHandleTypeFlags + VkExportMemoryAllocateInfoKHR* = object + VkImportMemoryFdInfoKHR* = object + sType*: VkStructureType + pNext*: pointer + handleType*: VkExternalMemoryHandleTypeFlagBits + fd*: cint + VkMemoryFdPropertiesKHR* = object + sType*: VkStructureType + pNext*: pointer + memoryTypeBits*: uint32 + VkMemoryGetFdInfoKHR* = object + sType*: VkStructureType + pNext*: pointer + memory*: VkDeviceMemory + handleType*: VkExternalMemoryHandleTypeFlagBits + VkPhysicalDeviceExternalSemaphoreInfo* = object + sType*: VkStructureType + pNext*: pointer + handleType*: VkExternalSemaphoreHandleTypeFlagBits + VkPhysicalDeviceExternalSemaphoreInfoKHR* = object + VkExternalSemaphoreProperties* = object + sType*: VkStructureType + pNext*: pointer + exportFromImportedHandleTypes*: VkExternalSemaphoreHandleTypeFlags + compatibleHandleTypes*: VkExternalSemaphoreHandleTypeFlags + externalSemaphoreFeatures*: VkExternalSemaphoreFeatureFlags + VkExternalSemaphorePropertiesKHR* = object + VkExportSemaphoreCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + handleTypes*: VkExternalSemaphoreHandleTypeFlags + VkExportSemaphoreCreateInfoKHR* = object + VkImportSemaphoreFdInfoKHR* = object + sType*: VkStructureType + pNext*: pointer + semaphore*: VkSemaphore + flags*: VkSemaphoreImportFlags + handleType*: VkExternalSemaphoreHandleTypeFlagBits + fd*: cint + VkSemaphoreGetFdInfoKHR* = object + sType*: VkStructureType + pNext*: pointer + semaphore*: VkSemaphore + handleType*: VkExternalSemaphoreHandleTypeFlagBits + VkPhysicalDeviceExternalFenceInfo* = object + sType*: VkStructureType + pNext*: pointer + handleType*: VkExternalFenceHandleTypeFlagBits + VkPhysicalDeviceExternalFenceInfoKHR* = object + VkExternalFenceProperties* = object + sType*: VkStructureType + pNext*: pointer + exportFromImportedHandleTypes*: VkExternalFenceHandleTypeFlags + compatibleHandleTypes*: VkExternalFenceHandleTypeFlags + externalFenceFeatures*: VkExternalFenceFeatureFlags + VkExternalFencePropertiesKHR* = object + VkExportFenceCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + handleTypes*: VkExternalFenceHandleTypeFlags + VkExportFenceCreateInfoKHR* = object + VkImportFenceFdInfoKHR* = object + sType*: VkStructureType + pNext*: pointer + fence*: VkFence + flags*: VkFenceImportFlags + handleType*: VkExternalFenceHandleTypeFlagBits + fd*: cint + VkFenceGetFdInfoKHR* = object + sType*: VkStructureType + pNext*: pointer + fence*: VkFence + handleType*: VkExternalFenceHandleTypeFlagBits + VkPhysicalDeviceMultiviewFeatures* = object + sType*: VkStructureType + pNext*: pointer + multiview*: VkBool32 + multiviewGeometryShader*: VkBool32 + multiviewTessellationShader*: VkBool32 + VkPhysicalDeviceMultiviewFeaturesKHR* = object + VkPhysicalDeviceMultiviewProperties* = object + sType*: VkStructureType + pNext*: pointer + maxMultiviewViewCount*: uint32 + maxMultiviewInstanceIndex*: uint32 + VkPhysicalDeviceMultiviewPropertiesKHR* = object + VkRenderPassMultiviewCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + subpassCount*: uint32 + pViewMasks*: ptr uint32 + dependencyCount*: uint32 + pViewOffsets*: ptr int32 + correlationMaskCount*: uint32 + pCorrelationMasks*: ptr uint32 + VkRenderPassMultiviewCreateInfoKHR* = object + VkSurfaceCapabilities2EXT* = object + sType*: VkStructureType + pNext*: pointer + minImageCount*: uint32 + maxImageCount*: uint32 + currentExtent*: VkExtent2D + minImageExtent*: VkExtent2D + maxImageExtent*: VkExtent2D + maxImageArrayLayers*: uint32 + supportedTransforms*: VkSurfaceTransformFlagsKHR + currentTransform*: VkSurfaceTransformFlagBitsKHR + supportedCompositeAlpha*: VkCompositeAlphaFlagsKHR + supportedUsageFlags*: VkImageUsageFlags + supportedSurfaceCounters*: VkSurfaceCounterFlagsEXT + VkDisplayPowerInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + powerState*: VkDisplayPowerStateEXT + VkDeviceEventInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + deviceEvent*: VkDeviceEventTypeEXT + VkDisplayEventInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + displayEvent*: VkDisplayEventTypeEXT + VkSwapchainCounterCreateInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + surfaceCounters*: VkSurfaceCounterFlagsEXT + VkPhysicalDeviceGroupProperties* = object + sType*: VkStructureType + pNext*: pointer + physicalDeviceCount*: uint32 + physicalDevices*: array[VK_MAX_DEVICE_GROUP_SIZE, VkPhysicalDevice] + subsetAllocation*: VkBool32 + VkPhysicalDeviceGroupPropertiesKHR* = object + VkMemoryAllocateFlagsInfo* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkMemoryAllocateFlags + deviceMask*: uint32 + VkMemoryAllocateFlagsInfoKHR* = object + VkBindBufferMemoryInfo* = object + sType*: VkStructureType + pNext*: pointer + buffer*: VkBuffer + memory*: VkDeviceMemory + memoryOffset*: VkDeviceSize + VkBindBufferMemoryInfoKHR* = object + VkBindBufferMemoryDeviceGroupInfo* = object + sType*: VkStructureType + pNext*: pointer + deviceIndexCount*: uint32 + pDeviceIndices*: ptr uint32 + VkBindBufferMemoryDeviceGroupInfoKHR* = object + VkBindImageMemoryInfo* = object + sType*: VkStructureType + pNext*: pointer + image*: VkImage + memory*: VkDeviceMemory + memoryOffset*: VkDeviceSize + VkBindImageMemoryInfoKHR* = object + VkBindImageMemoryDeviceGroupInfo* = object + sType*: VkStructureType + pNext*: pointer + deviceIndexCount*: uint32 + pDeviceIndices*: ptr uint32 + splitInstanceBindRegionCount*: uint32 + pSplitInstanceBindRegions*: ptr VkRect2D + VkBindImageMemoryDeviceGroupInfoKHR* = object + VkDeviceGroupRenderPassBeginInfo* = object + sType*: VkStructureType + pNext*: pointer + deviceMask*: uint32 + deviceRenderAreaCount*: uint32 + pDeviceRenderAreas*: ptr VkRect2D + VkDeviceGroupRenderPassBeginInfoKHR* = object + VkDeviceGroupCommandBufferBeginInfo* = object + sType*: VkStructureType + pNext*: pointer + deviceMask*: uint32 + VkDeviceGroupCommandBufferBeginInfoKHR* = object + VkDeviceGroupSubmitInfo* = object + sType*: VkStructureType + pNext*: pointer + waitSemaphoreCount*: uint32 + pWaitSemaphoreDeviceIndices*: ptr uint32 + commandBufferCount*: uint32 + pCommandBufferDeviceMasks*: ptr uint32 + signalSemaphoreCount*: uint32 + pSignalSemaphoreDeviceIndices*: ptr uint32 + VkDeviceGroupSubmitInfoKHR* = object + VkDeviceGroupBindSparseInfo* = object + sType*: VkStructureType + pNext*: pointer + resourceDeviceIndex*: uint32 + memoryDeviceIndex*: uint32 + VkDeviceGroupBindSparseInfoKHR* = object + VkDeviceGroupPresentCapabilitiesKHR* = object + sType*: VkStructureType + pNext*: pointer + presentMask*: array[VK_MAX_DEVICE_GROUP_SIZE, uint32] + modes*: VkDeviceGroupPresentModeFlagsKHR + VkImageSwapchainCreateInfoKHR* = object + sType*: VkStructureType + pNext*: pointer + swapchain*: VkSwapchainKHR + VkBindImageMemorySwapchainInfoKHR* = object + sType*: VkStructureType + pNext*: pointer + swapchain*: VkSwapchainKHR + imageIndex*: uint32 + VkAcquireNextImageInfoKHR* = object + sType*: VkStructureType + pNext*: pointer + swapchain*: VkSwapchainKHR + timeout*: uint64 + semaphore*: VkSemaphore + fence*: VkFence + deviceMask*: uint32 + VkDeviceGroupPresentInfoKHR* = object + sType*: VkStructureType + pNext*: pointer + swapchainCount*: uint32 + pDeviceMasks*: ptr uint32 + mode*: VkDeviceGroupPresentModeFlagBitsKHR + VkDeviceGroupDeviceCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + physicalDeviceCount*: uint32 + pPhysicalDevices*: ptr VkPhysicalDevice + VkDeviceGroupDeviceCreateInfoKHR* = object + VkDeviceGroupSwapchainCreateInfoKHR* = object + sType*: VkStructureType + pNext*: pointer + modes*: VkDeviceGroupPresentModeFlagsKHR + VkDescriptorUpdateTemplateEntry* = object + dstBinding*: uint32 + dstArrayElement*: uint32 + descriptorCount*: uint32 + descriptorType*: VkDescriptorType + offset*: csize_t + stride*: csize_t + VkDescriptorUpdateTemplateEntryKHR* = object + VkDescriptorUpdateTemplateCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkDescriptorUpdateTemplateCreateFlags + descriptorUpdateEntryCount*: uint32 + pDescriptorUpdateEntries*: ptr VkDescriptorUpdateTemplateEntry + templateType*: VkDescriptorUpdateTemplateType + descriptorSetLayout*: VkDescriptorSetLayout + pipelineBindPoint*: VkPipelineBindPoint + pipelineLayout*: VkPipelineLayout + set*: uint32 + VkDescriptorUpdateTemplateCreateInfoKHR* = object + VkXYColorEXT* = object + x*: float32 + y*: float32 + VkPhysicalDevicePresentIdFeaturesKHR* = object + sType*: VkStructureType + pNext*: pointer + presentId*: VkBool32 + VkPresentIdKHR* = object + sType*: VkStructureType + pNext*: pointer + swapchainCount*: uint32 + pPresentIds*: ptr uint64 + VkPhysicalDevicePresentWaitFeaturesKHR* = object + sType*: VkStructureType + pNext*: pointer + presentWait*: VkBool32 + VkHdrMetadataEXT* = object + sType*: VkStructureType + pNext*: pointer + displayPrimaryRed*: VkXYColorEXT + displayPrimaryGreen*: VkXYColorEXT + displayPrimaryBlue*: VkXYColorEXT + whitePoint*: VkXYColorEXT + maxLuminance*: float32 + minLuminance*: float32 + maxContentLightLevel*: float32 + maxFrameAverageLightLevel*: float32 + VkDisplayNativeHdrSurfaceCapabilitiesAMD* = object + sType*: VkStructureType + pNext*: pointer + localDimmingSupport*: VkBool32 + VkSwapchainDisplayNativeHdrCreateInfoAMD* = object + sType*: VkStructureType + pNext*: pointer + localDimmingEnable*: VkBool32 + VkRefreshCycleDurationGOOGLE* = object + refreshDuration*: uint64 + VkPastPresentationTimingGOOGLE* = object + presentID*: uint32 + desiredPresentTime*: uint64 + actualPresentTime*: uint64 + earliestPresentTime*: uint64 + presentMargin*: uint64 + VkPresentTimesInfoGOOGLE* = object + sType*: VkStructureType + pNext*: pointer + swapchainCount*: uint32 + pTimes*: ptr VkPresentTimeGOOGLE + VkPresentTimeGOOGLE* = object + presentID*: uint32 + desiredPresentTime*: uint64 + VkViewportWScalingNV* = object + xcoeff*: float32 + ycoeff*: float32 + VkPipelineViewportWScalingStateCreateInfoNV* = object + sType*: VkStructureType + pNext*: pointer + viewportWScalingEnable*: VkBool32 + viewportCount*: uint32 + pViewportWScalings*: ptr VkViewportWScalingNV + VkViewportSwizzleNV* = object + x*: VkViewportCoordinateSwizzleNV + y*: VkViewportCoordinateSwizzleNV + z*: VkViewportCoordinateSwizzleNV + w*: VkViewportCoordinateSwizzleNV + VkPipelineViewportSwizzleStateCreateInfoNV* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkPipelineViewportSwizzleStateCreateFlagsNV + viewportCount*: uint32 + pViewportSwizzles*: ptr VkViewportSwizzleNV + VkPhysicalDeviceDiscardRectanglePropertiesEXT* = object + sType*: VkStructureType + pNext*: pointer + maxDiscardRectangles*: uint32 + VkPipelineDiscardRectangleStateCreateInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkPipelineDiscardRectangleStateCreateFlagsEXT + discardRectangleMode*: VkDiscardRectangleModeEXT + discardRectangleCount*: uint32 + pDiscardRectangles*: ptr VkRect2D + VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX* = object + sType*: VkStructureType + pNext*: pointer + perViewPositionAllComponents*: VkBool32 + VkInputAttachmentAspectReference* = object + subpass*: uint32 + inputAttachmentIndex*: uint32 + aspectMask*: VkImageAspectFlags + VkInputAttachmentAspectReferenceKHR* = object + VkRenderPassInputAttachmentAspectCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + aspectReferenceCount*: uint32 + pAspectReferences*: ptr VkInputAttachmentAspectReference + VkRenderPassInputAttachmentAspectCreateInfoKHR* = object + VkPhysicalDeviceSurfaceInfo2KHR* = object + sType*: VkStructureType + pNext*: pointer + surface*: VkSurfaceKHR + VkSurfaceCapabilities2KHR* = object + sType*: VkStructureType + pNext*: pointer + surfaceCapabilities*: VkSurfaceCapabilitiesKHR + VkSurfaceFormat2KHR* = object + sType*: VkStructureType + pNext*: pointer + surfaceFormat*: VkSurfaceFormatKHR + VkDisplayProperties2KHR* = object + sType*: VkStructureType + pNext*: pointer + displayProperties*: VkDisplayPropertiesKHR + VkDisplayPlaneProperties2KHR* = object + sType*: VkStructureType + pNext*: pointer + displayPlaneProperties*: VkDisplayPlanePropertiesKHR + VkDisplayModeProperties2KHR* = object + sType*: VkStructureType + pNext*: pointer + displayModeProperties*: VkDisplayModePropertiesKHR + VkDisplayPlaneInfo2KHR* = object + sType*: VkStructureType + pNext*: pointer + mode*: VkDisplayModeKHR + planeIndex*: uint32 + VkDisplayPlaneCapabilities2KHR* = object + sType*: VkStructureType + pNext*: pointer + capabilities*: VkDisplayPlaneCapabilitiesKHR + VkSharedPresentSurfaceCapabilitiesKHR* = object + sType*: VkStructureType + pNext*: pointer + sharedPresentSupportedUsageFlags*: VkImageUsageFlags + VkPhysicalDevice16BitStorageFeatures* = object + sType*: VkStructureType + pNext*: pointer + storageBuffer16BitAccess*: VkBool32 + uniformAndStorageBuffer16BitAccess*: VkBool32 + storagePushConstant16*: VkBool32 + storageInputOutput16*: VkBool32 + VkPhysicalDevice16BitStorageFeaturesKHR* = object + VkPhysicalDeviceSubgroupProperties* = object + sType*: VkStructureType + pNext*: pointer + subgroupSize*: uint32 + supportedStages*: VkShaderStageFlags + supportedOperations*: VkSubgroupFeatureFlags + quadOperationsInAllStages*: VkBool32 + VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures* = object + sType*: VkStructureType + pNext*: pointer + shaderSubgroupExtendedTypes*: VkBool32 + VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR* = object + VkBufferMemoryRequirementsInfo2* = object + sType*: VkStructureType + pNext*: pointer + buffer*: VkBuffer + VkBufferMemoryRequirementsInfo2KHR* = object + VkDeviceBufferMemoryRequirements* = object + sType*: VkStructureType + pNext*: pointer + pCreateInfo*: ptr VkBufferCreateInfo + VkDeviceBufferMemoryRequirementsKHR* = object + VkImageMemoryRequirementsInfo2* = object + sType*: VkStructureType + pNext*: pointer + image*: VkImage + VkImageMemoryRequirementsInfo2KHR* = object + VkImageSparseMemoryRequirementsInfo2* = object + sType*: VkStructureType + pNext*: pointer + image*: VkImage + VkImageSparseMemoryRequirementsInfo2KHR* = object + VkDeviceImageMemoryRequirements* = object + sType*: VkStructureType + pNext*: pointer + pCreateInfo*: ptr VkImageCreateInfo + planeAspect*: VkImageAspectFlagBits + VkDeviceImageMemoryRequirementsKHR* = object + VkMemoryRequirements2* = object + sType*: VkStructureType + pNext*: pointer + memoryRequirements*: VkMemoryRequirements + VkMemoryRequirements2KHR* = object + VkSparseImageMemoryRequirements2* = object + sType*: VkStructureType + pNext*: pointer + memoryRequirements*: VkSparseImageMemoryRequirements + VkSparseImageMemoryRequirements2KHR* = object + VkPhysicalDevicePointClippingProperties* = object + sType*: VkStructureType + pNext*: pointer + pointClippingBehavior*: VkPointClippingBehavior + VkPhysicalDevicePointClippingPropertiesKHR* = object + VkMemoryDedicatedRequirements* = object + sType*: VkStructureType + pNext*: pointer + prefersDedicatedAllocation*: VkBool32 + requiresDedicatedAllocation*: VkBool32 + VkMemoryDedicatedRequirementsKHR* = object + VkMemoryDedicatedAllocateInfo* = object + sType*: VkStructureType + pNext*: pointer + image*: VkImage + buffer*: VkBuffer + VkMemoryDedicatedAllocateInfoKHR* = object + VkImageViewUsageCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + usage*: VkImageUsageFlags + VkImageViewSlicedCreateInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + sliceOffset*: uint32 + sliceCount*: uint32 + VkImageViewUsageCreateInfoKHR* = object + VkPipelineTessellationDomainOriginStateCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + domainOrigin*: VkTessellationDomainOrigin + VkPipelineTessellationDomainOriginStateCreateInfoKHR* = object + VkSamplerYcbcrConversionInfo* = object + sType*: VkStructureType + pNext*: pointer + conversion*: VkSamplerYcbcrConversion + VkSamplerYcbcrConversionInfoKHR* = object + VkSamplerYcbcrConversionCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + format*: VkFormat + ycbcrModel*: VkSamplerYcbcrModelConversion + ycbcrRange*: VkSamplerYcbcrRange + components*: VkComponentMapping + xChromaOffset*: VkChromaLocation + yChromaOffset*: VkChromaLocation + chromaFilter*: VkFilter + forceExplicitReconstruction*: VkBool32 + VkSamplerYcbcrConversionCreateInfoKHR* = object + VkBindImagePlaneMemoryInfo* = object + sType*: VkStructureType + pNext*: pointer + planeAspect*: VkImageAspectFlagBits + VkBindImagePlaneMemoryInfoKHR* = object + VkImagePlaneMemoryRequirementsInfo* = object + sType*: VkStructureType + pNext*: pointer + planeAspect*: VkImageAspectFlagBits + VkImagePlaneMemoryRequirementsInfoKHR* = object + VkPhysicalDeviceSamplerYcbcrConversionFeatures* = object + sType*: VkStructureType + pNext*: pointer + samplerYcbcrConversion*: VkBool32 + VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR* = object + VkSamplerYcbcrConversionImageFormatProperties* = object + sType*: VkStructureType + pNext*: pointer + combinedImageSamplerDescriptorCount*: uint32 + VkSamplerYcbcrConversionImageFormatPropertiesKHR* = object + VkTextureLODGatherFormatPropertiesAMD* = object + sType*: VkStructureType + pNext*: pointer + supportsTextureGatherLODBiasAMD*: VkBool32 + VkConditionalRenderingBeginInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + buffer*: VkBuffer + offset*: VkDeviceSize + flags*: VkConditionalRenderingFlagsEXT + VkProtectedSubmitInfo* = object + sType*: VkStructureType + pNext*: pointer + protectedSubmit*: VkBool32 + VkPhysicalDeviceProtectedMemoryFeatures* = object + sType*: VkStructureType + pNext*: pointer + protectedMemory*: VkBool32 + VkPhysicalDeviceProtectedMemoryProperties* = object + sType*: VkStructureType + pNext*: pointer + protectedNoFault*: VkBool32 + VkDeviceQueueInfo2* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkDeviceQueueCreateFlags + queueFamilyIndex*: uint32 + queueIndex*: uint32 + VkPipelineCoverageToColorStateCreateInfoNV* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkPipelineCoverageToColorStateCreateFlagsNV + coverageToColorEnable*: VkBool32 + coverageToColorLocation*: uint32 + VkPhysicalDeviceSamplerFilterMinmaxProperties* = object + sType*: VkStructureType + pNext*: pointer + filterMinmaxSingleComponentFormats*: VkBool32 + filterMinmaxImageComponentMapping*: VkBool32 + VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT* = object + VkSampleLocationEXT* = object + x*: float32 + y*: float32 + VkSampleLocationsInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + sampleLocationsPerPixel*: VkSampleCountFlagBits + sampleLocationGridSize*: VkExtent2D + sampleLocationsCount*: uint32 + pSampleLocations*: ptr VkSampleLocationEXT + VkAttachmentSampleLocationsEXT* = object + attachmentIndex*: uint32 + sampleLocationsInfo*: VkSampleLocationsInfoEXT + VkSubpassSampleLocationsEXT* = object + subpassIndex*: uint32 + sampleLocationsInfo*: VkSampleLocationsInfoEXT + VkRenderPassSampleLocationsBeginInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + attachmentInitialSampleLocationsCount*: uint32 + pAttachmentInitialSampleLocations*: ptr VkAttachmentSampleLocationsEXT + postSubpassSampleLocationsCount*: uint32 + pPostSubpassSampleLocations*: ptr VkSubpassSampleLocationsEXT + VkPipelineSampleLocationsStateCreateInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + sampleLocationsEnable*: VkBool32 + sampleLocationsInfo*: VkSampleLocationsInfoEXT + VkPhysicalDeviceSampleLocationsPropertiesEXT* = object + sType*: VkStructureType + pNext*: pointer + sampleLocationSampleCounts*: VkSampleCountFlags + maxSampleLocationGridSize*: VkExtent2D + sampleLocationCoordinateRange*: array[2, float32] + sampleLocationSubPixelBits*: uint32 + variableSampleLocations*: VkBool32 + VkMultisamplePropertiesEXT* = object + sType*: VkStructureType + pNext*: pointer + maxSampleLocationGridSize*: VkExtent2D + VkSamplerReductionModeCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + reductionMode*: VkSamplerReductionMode + VkSamplerReductionModeCreateInfoEXT* = object + VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + advancedBlendCoherentOperations*: VkBool32 + VkPhysicalDeviceMultiDrawFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + multiDraw*: VkBool32 + VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT* = object + sType*: VkStructureType + pNext*: pointer + advancedBlendMaxColorAttachments*: uint32 + advancedBlendIndependentBlend*: VkBool32 + advancedBlendNonPremultipliedSrcColor*: VkBool32 + advancedBlendNonPremultipliedDstColor*: VkBool32 + advancedBlendCorrelatedOverlap*: VkBool32 + advancedBlendAllOperations*: VkBool32 + VkPipelineColorBlendAdvancedStateCreateInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + srcPremultiplied*: VkBool32 + dstPremultiplied*: VkBool32 + blendOverlap*: VkBlendOverlapEXT + VkPhysicalDeviceInlineUniformBlockFeatures* = object + sType*: VkStructureType + pNext*: pointer + inlineUniformBlock*: VkBool32 + descriptorBindingInlineUniformBlockUpdateAfterBind*: VkBool32 + VkPhysicalDeviceInlineUniformBlockFeaturesEXT* = object + VkPhysicalDeviceInlineUniformBlockProperties* = object + sType*: VkStructureType + pNext*: pointer + maxInlineUniformBlockSize*: uint32 + maxPerStageDescriptorInlineUniformBlocks*: uint32 + maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks*: uint32 + maxDescriptorSetInlineUniformBlocks*: uint32 + maxDescriptorSetUpdateAfterBindInlineUniformBlocks*: uint32 + VkPhysicalDeviceInlineUniformBlockPropertiesEXT* = object + VkWriteDescriptorSetInlineUniformBlock* = object + sType*: VkStructureType + pNext*: pointer + dataSize*: uint32 + pData*: pointer + VkWriteDescriptorSetInlineUniformBlockEXT* = object + VkDescriptorPoolInlineUniformBlockCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + maxInlineUniformBlockBindings*: uint32 + VkDescriptorPoolInlineUniformBlockCreateInfoEXT* = object + VkPipelineCoverageModulationStateCreateInfoNV* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkPipelineCoverageModulationStateCreateFlagsNV + coverageModulationMode*: VkCoverageModulationModeNV + coverageModulationTableEnable*: VkBool32 + coverageModulationTableCount*: uint32 + pCoverageModulationTable*: ptr float32 + VkImageFormatListCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + viewFormatCount*: uint32 + pViewFormats*: ptr VkFormat + VkImageFormatListCreateInfoKHR* = object + VkValidationCacheCreateInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkValidationCacheCreateFlagsEXT + initialDataSize*: csize_t + pInitialData*: pointer + VkShaderModuleValidationCacheCreateInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + validationCache*: VkValidationCacheEXT + VkPhysicalDeviceMaintenance3Properties* = object + sType*: VkStructureType + pNext*: pointer + maxPerSetDescriptors*: uint32 + maxMemoryAllocationSize*: VkDeviceSize + VkPhysicalDeviceMaintenance3PropertiesKHR* = object + VkPhysicalDeviceMaintenance4Features* = object + sType*: VkStructureType + pNext*: pointer + maintenance4*: VkBool32 + VkPhysicalDeviceMaintenance4FeaturesKHR* = object + VkPhysicalDeviceMaintenance4Properties* = object + sType*: VkStructureType + pNext*: pointer + maxBufferSize*: VkDeviceSize + VkPhysicalDeviceMaintenance4PropertiesKHR* = object + VkDescriptorSetLayoutSupport* = object + sType*: VkStructureType + pNext*: pointer + supported*: VkBool32 + VkDescriptorSetLayoutSupportKHR* = object + VkPhysicalDeviceShaderDrawParametersFeatures* = object + sType*: VkStructureType + pNext*: pointer + shaderDrawParameters*: VkBool32 + VkPhysicalDeviceShaderDrawParameterFeatures* = object + VkPhysicalDeviceShaderFloat16Int8Features* = object + sType*: VkStructureType + pNext*: pointer + shaderFloat16*: VkBool32 + shaderInt8*: VkBool32 + VkPhysicalDeviceShaderFloat16Int8FeaturesKHR* = object + VkPhysicalDeviceFloat16Int8FeaturesKHR* = object + VkPhysicalDeviceFloatControlsProperties* = object + sType*: VkStructureType + pNext*: pointer + denormBehaviorIndependence*: VkShaderFloatControlsIndependence + roundingModeIndependence*: VkShaderFloatControlsIndependence + shaderSignedZeroInfNanPreserveFloat16*: VkBool32 + shaderSignedZeroInfNanPreserveFloat32*: VkBool32 + shaderSignedZeroInfNanPreserveFloat64*: VkBool32 + shaderDenormPreserveFloat16*: VkBool32 + shaderDenormPreserveFloat32*: VkBool32 + shaderDenormPreserveFloat64*: VkBool32 + shaderDenormFlushToZeroFloat16*: VkBool32 + shaderDenormFlushToZeroFloat32*: VkBool32 + shaderDenormFlushToZeroFloat64*: VkBool32 + shaderRoundingModeRTEFloat16*: VkBool32 + shaderRoundingModeRTEFloat32*: VkBool32 + shaderRoundingModeRTEFloat64*: VkBool32 + shaderRoundingModeRTZFloat16*: VkBool32 + shaderRoundingModeRTZFloat32*: VkBool32 + shaderRoundingModeRTZFloat64*: VkBool32 + VkPhysicalDeviceFloatControlsPropertiesKHR* = object + VkPhysicalDeviceHostQueryResetFeatures* = object + sType*: VkStructureType + pNext*: pointer + hostQueryReset*: VkBool32 + VkPhysicalDeviceHostQueryResetFeaturesEXT* = object + VkShaderResourceUsageAMD* = object + numUsedVgprs*: uint32 + numUsedSgprs*: uint32 + ldsSizePerLocalWorkGroup*: uint32 + ldsUsageSizeInBytes*: csize_t + scratchMemUsageInBytes*: csize_t + VkShaderStatisticsInfoAMD* = object + shaderStageMask*: VkShaderStageFlags + resourceUsage*: VkShaderResourceUsageAMD + numPhysicalVgprs*: uint32 + numPhysicalSgprs*: uint32 + numAvailableVgprs*: uint32 + numAvailableSgprs*: uint32 + computeWorkGroupSize*: array[3, uint32] + VkDeviceQueueGlobalPriorityCreateInfoKHR* = object + sType*: VkStructureType + pNext*: pointer + globalPriority*: VkQueueGlobalPriorityKHR + VkDeviceQueueGlobalPriorityCreateInfoEXT* = object + VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR* = object + sType*: VkStructureType + pNext*: pointer + globalPriorityQuery*: VkBool32 + VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT* = object + VkQueueFamilyGlobalPriorityPropertiesKHR* = object + sType*: VkStructureType + pNext*: pointer + priorityCount*: uint32 + priorities*: array[VK_MAX_GLOBAL_PRIORITY_SIZE_KHR, VkQueueGlobalPriorityKHR] + VkQueueFamilyGlobalPriorityPropertiesEXT* = object + VkDebugUtilsObjectNameInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + objectType*: VkObjectType + objectHandle*: uint64 + pObjectName*: cstring + VkDebugUtilsObjectTagInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + objectType*: VkObjectType + objectHandle*: uint64 + tagName*: uint64 + tagSize*: csize_t + pTag*: pointer + VkDebugUtilsLabelEXT* = object + sType*: VkStructureType + pNext*: pointer + pLabelName*: cstring + color*: array[4, float32] + VkDebugUtilsMessengerCreateInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkDebugUtilsMessengerCreateFlagsEXT + messageSeverity*: VkDebugUtilsMessageSeverityFlagsEXT + messageType*: VkDebugUtilsMessageTypeFlagsEXT + pfnUserCallback*: PFN_vkDebugUtilsMessengerCallbackEXT + pUserData*: pointer + VkDebugUtilsMessengerCallbackDataEXT* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkDebugUtilsMessengerCallbackDataFlagsEXT + pMessageIdName*: cstring + messageIdNumber*: int32 + pMessage*: cstring + queueLabelCount*: uint32 + pQueueLabels*: ptr VkDebugUtilsLabelEXT + cmdBufLabelCount*: uint32 + pCmdBufLabels*: ptr VkDebugUtilsLabelEXT + objectCount*: uint32 + pObjects*: ptr VkDebugUtilsObjectNameInfoEXT + VkPhysicalDeviceDeviceMemoryReportFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + deviceMemoryReport*: VkBool32 + VkDeviceDeviceMemoryReportCreateInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkDeviceMemoryReportFlagsEXT + pfnUserCallback*: PFN_vkDeviceMemoryReportCallbackEXT + pUserData*: pointer + VkDeviceMemoryReportCallbackDataEXT* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkDeviceMemoryReportFlagsEXT + thetype*: VkDeviceMemoryReportEventTypeEXT + memoryObjectId*: uint64 + size*: VkDeviceSize + objectType*: VkObjectType + objectHandle*: uint64 + heapIndex*: uint32 + VkImportMemoryHostPointerInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + handleType*: VkExternalMemoryHandleTypeFlagBits + pHostPointer*: pointer + VkMemoryHostPointerPropertiesEXT* = object + sType*: VkStructureType + pNext*: pointer + memoryTypeBits*: uint32 + VkPhysicalDeviceExternalMemoryHostPropertiesEXT* = object + sType*: VkStructureType + pNext*: pointer + minImportedHostPointerAlignment*: VkDeviceSize + VkPhysicalDeviceConservativeRasterizationPropertiesEXT* = object + sType*: VkStructureType + pNext*: pointer + primitiveOverestimationSize*: float32 + maxExtraPrimitiveOverestimationSize*: float32 + extraPrimitiveOverestimationSizeGranularity*: float32 + primitiveUnderestimation*: VkBool32 + conservativePointAndLineRasterization*: VkBool32 + degenerateTrianglesRasterized*: VkBool32 + degenerateLinesRasterized*: VkBool32 + fullyCoveredFragmentShaderInputVariable*: VkBool32 + conservativeRasterizationPostDepthCoverage*: VkBool32 + VkCalibratedTimestampInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + timeDomain*: VkTimeDomainEXT + VkPhysicalDeviceShaderCorePropertiesAMD* = object + sType*: VkStructureType + pNext*: pointer + shaderEngineCount*: uint32 + shaderArraysPerEngineCount*: uint32 + computeUnitsPerShaderArray*: uint32 + simdPerComputeUnit*: uint32 + wavefrontsPerSimd*: uint32 + wavefrontSize*: uint32 + sgprsPerSimd*: uint32 + minSgprAllocation*: uint32 + maxSgprAllocation*: uint32 + sgprAllocationGranularity*: uint32 + vgprsPerSimd*: uint32 + minVgprAllocation*: uint32 + maxVgprAllocation*: uint32 + vgprAllocationGranularity*: uint32 + VkPhysicalDeviceShaderCoreProperties2AMD* = object + sType*: VkStructureType + pNext*: pointer + shaderCoreFeatures*: VkShaderCorePropertiesFlagsAMD + activeComputeUnitCount*: uint32 + VkPipelineRasterizationConservativeStateCreateInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkPipelineRasterizationConservativeStateCreateFlagsEXT + conservativeRasterizationMode*: VkConservativeRasterizationModeEXT + extraPrimitiveOverestimationSize*: float32 + VkPhysicalDeviceDescriptorIndexingFeatures* = object + sType*: VkStructureType + pNext*: pointer + shaderInputAttachmentArrayDynamicIndexing*: VkBool32 + shaderUniformTexelBufferArrayDynamicIndexing*: VkBool32 + shaderStorageTexelBufferArrayDynamicIndexing*: VkBool32 + shaderUniformBufferArrayNonUniformIndexing*: VkBool32 + shaderSampledImageArrayNonUniformIndexing*: VkBool32 + shaderStorageBufferArrayNonUniformIndexing*: VkBool32 + shaderStorageImageArrayNonUniformIndexing*: VkBool32 + shaderInputAttachmentArrayNonUniformIndexing*: VkBool32 + shaderUniformTexelBufferArrayNonUniformIndexing*: VkBool32 + shaderStorageTexelBufferArrayNonUniformIndexing*: VkBool32 + descriptorBindingUniformBufferUpdateAfterBind*: VkBool32 + descriptorBindingSampledImageUpdateAfterBind*: VkBool32 + descriptorBindingStorageImageUpdateAfterBind*: VkBool32 + descriptorBindingStorageBufferUpdateAfterBind*: VkBool32 + descriptorBindingUniformTexelBufferUpdateAfterBind*: VkBool32 + descriptorBindingStorageTexelBufferUpdateAfterBind*: VkBool32 + descriptorBindingUpdateUnusedWhilePending*: VkBool32 + descriptorBindingPartiallyBound*: VkBool32 + descriptorBindingVariableDescriptorCount*: VkBool32 + runtimeDescriptorArray*: VkBool32 + VkPhysicalDeviceDescriptorIndexingFeaturesEXT* = object + VkPhysicalDeviceDescriptorIndexingProperties* = object + sType*: VkStructureType + pNext*: pointer + maxUpdateAfterBindDescriptorsInAllPools*: uint32 + shaderUniformBufferArrayNonUniformIndexingNative*: VkBool32 + shaderSampledImageArrayNonUniformIndexingNative*: VkBool32 + shaderStorageBufferArrayNonUniformIndexingNative*: VkBool32 + shaderStorageImageArrayNonUniformIndexingNative*: VkBool32 + shaderInputAttachmentArrayNonUniformIndexingNative*: VkBool32 + robustBufferAccessUpdateAfterBind*: VkBool32 + quadDivergentImplicitLod*: VkBool32 + maxPerStageDescriptorUpdateAfterBindSamplers*: uint32 + maxPerStageDescriptorUpdateAfterBindUniformBuffers*: uint32 + maxPerStageDescriptorUpdateAfterBindStorageBuffers*: uint32 + maxPerStageDescriptorUpdateAfterBindSampledImages*: uint32 + maxPerStageDescriptorUpdateAfterBindStorageImages*: uint32 + maxPerStageDescriptorUpdateAfterBindInputAttachments*: uint32 + maxPerStageUpdateAfterBindResources*: uint32 + maxDescriptorSetUpdateAfterBindSamplers*: uint32 + maxDescriptorSetUpdateAfterBindUniformBuffers*: uint32 + maxDescriptorSetUpdateAfterBindUniformBuffersDynamic*: uint32 + maxDescriptorSetUpdateAfterBindStorageBuffers*: uint32 + maxDescriptorSetUpdateAfterBindStorageBuffersDynamic*: uint32 + maxDescriptorSetUpdateAfterBindSampledImages*: uint32 + maxDescriptorSetUpdateAfterBindStorageImages*: uint32 + maxDescriptorSetUpdateAfterBindInputAttachments*: uint32 + VkPhysicalDeviceDescriptorIndexingPropertiesEXT* = object + VkDescriptorSetLayoutBindingFlagsCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + bindingCount*: uint32 + pBindingFlags*: ptr VkDescriptorBindingFlags + VkDescriptorSetLayoutBindingFlagsCreateInfoEXT* = object + VkDescriptorSetVariableDescriptorCountAllocateInfo* = object + sType*: VkStructureType + pNext*: pointer + descriptorSetCount*: uint32 + pDescriptorCounts*: ptr uint32 + VkDescriptorSetVariableDescriptorCountAllocateInfoEXT* = object + VkDescriptorSetVariableDescriptorCountLayoutSupport* = object + sType*: VkStructureType + pNext*: pointer + maxVariableDescriptorCount*: uint32 + VkDescriptorSetVariableDescriptorCountLayoutSupportEXT* = object + VkAttachmentDescription2* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkAttachmentDescriptionFlags + format*: VkFormat + samples*: VkSampleCountFlagBits + loadOp*: VkAttachmentLoadOp + storeOp*: VkAttachmentStoreOp + stencilLoadOp*: VkAttachmentLoadOp + stencilStoreOp*: VkAttachmentStoreOp + initialLayout*: VkImageLayout + finalLayout*: VkImageLayout + VkAttachmentDescription2KHR* = object + VkAttachmentReference2* = object + sType*: VkStructureType + pNext*: pointer + attachment*: uint32 + layout*: VkImageLayout + aspectMask*: VkImageAspectFlags + VkAttachmentReference2KHR* = object + VkSubpassDescription2* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkSubpassDescriptionFlags + pipelineBindPoint*: VkPipelineBindPoint + viewMask*: uint32 + inputAttachmentCount*: uint32 + pInputAttachments*: ptr VkAttachmentReference2 + colorAttachmentCount*: uint32 + pColorAttachments*: ptr VkAttachmentReference2 + pResolveAttachments*: ptr VkAttachmentReference2 + pDepthStencilAttachment*: ptr VkAttachmentReference2 + preserveAttachmentCount*: uint32 + pPreserveAttachments*: ptr uint32 + VkSubpassDescription2KHR* = object + VkSubpassDependency2* = object + sType*: VkStructureType + pNext*: pointer + srcSubpass*: uint32 + dstSubpass*: uint32 + srcStageMask*: VkPipelineStageFlags + dstStageMask*: VkPipelineStageFlags + srcAccessMask*: VkAccessFlags + dstAccessMask*: VkAccessFlags + dependencyFlags*: VkDependencyFlags + viewOffset*: int32 + VkSubpassDependency2KHR* = object + VkRenderPassCreateInfo2* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkRenderPassCreateFlags + attachmentCount*: uint32 + pAttachments*: ptr VkAttachmentDescription2 + subpassCount*: uint32 + pSubpasses*: ptr VkSubpassDescription2 + dependencyCount*: uint32 + pDependencies*: ptr VkSubpassDependency2 + correlatedViewMaskCount*: uint32 + pCorrelatedViewMasks*: ptr uint32 + VkRenderPassCreateInfo2KHR* = object + VkSubpassBeginInfo* = object + sType*: VkStructureType + pNext*: pointer + contents*: VkSubpassContents + VkSubpassBeginInfoKHR* = object + VkSubpassEndInfo* = object + sType*: VkStructureType + pNext*: pointer + VkSubpassEndInfoKHR* = object + VkPhysicalDeviceTimelineSemaphoreFeatures* = object + sType*: VkStructureType + pNext*: pointer + timelineSemaphore*: VkBool32 + VkPhysicalDeviceTimelineSemaphoreFeaturesKHR* = object + VkPhysicalDeviceTimelineSemaphoreProperties* = object + sType*: VkStructureType + pNext*: pointer + maxTimelineSemaphoreValueDifference*: uint64 + VkPhysicalDeviceTimelineSemaphorePropertiesKHR* = object + VkSemaphoreTypeCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + semaphoreType*: VkSemaphoreType + initialValue*: uint64 + VkSemaphoreTypeCreateInfoKHR* = object + VkTimelineSemaphoreSubmitInfo* = object + sType*: VkStructureType + pNext*: pointer + waitSemaphoreValueCount*: uint32 + pWaitSemaphoreValues*: ptr uint64 + signalSemaphoreValueCount*: uint32 + pSignalSemaphoreValues*: ptr uint64 + VkTimelineSemaphoreSubmitInfoKHR* = object + VkSemaphoreWaitInfo* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkSemaphoreWaitFlags + semaphoreCount*: uint32 + pSemaphores*: ptr VkSemaphore + pValues*: ptr uint64 + VkSemaphoreWaitInfoKHR* = object + VkSemaphoreSignalInfo* = object + sType*: VkStructureType + pNext*: pointer + semaphore*: VkSemaphore + value*: uint64 + VkSemaphoreSignalInfoKHR* = object + VkVertexInputBindingDivisorDescriptionEXT* = object + binding*: uint32 + divisor*: uint32 + VkPipelineVertexInputDivisorStateCreateInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + vertexBindingDivisorCount*: uint32 + pVertexBindingDivisors*: ptr VkVertexInputBindingDivisorDescriptionEXT + VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT* = object + sType*: VkStructureType + pNext*: pointer + maxVertexAttribDivisor*: uint32 + VkPhysicalDevicePCIBusInfoPropertiesEXT* = object + sType*: VkStructureType + pNext*: pointer + pciDomain*: uint32 + pciBus*: uint32 + pciDevice*: uint32 + pciFunction*: uint32 + VkCommandBufferInheritanceConditionalRenderingInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + conditionalRenderingEnable*: VkBool32 + VkPhysicalDevice8BitStorageFeatures* = object + sType*: VkStructureType + pNext*: pointer + storageBuffer8BitAccess*: VkBool32 + uniformAndStorageBuffer8BitAccess*: VkBool32 + storagePushConstant8*: VkBool32 + VkPhysicalDevice8BitStorageFeaturesKHR* = object + VkPhysicalDeviceConditionalRenderingFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + conditionalRendering*: VkBool32 + inheritedConditionalRendering*: VkBool32 + VkPhysicalDeviceVulkanMemoryModelFeatures* = object + sType*: VkStructureType + pNext*: pointer + vulkanMemoryModel*: VkBool32 + vulkanMemoryModelDeviceScope*: VkBool32 + vulkanMemoryModelAvailabilityVisibilityChains*: VkBool32 + VkPhysicalDeviceVulkanMemoryModelFeaturesKHR* = object + VkPhysicalDeviceShaderAtomicInt64Features* = object + sType*: VkStructureType + pNext*: pointer + shaderBufferInt64Atomics*: VkBool32 + shaderSharedInt64Atomics*: VkBool32 + VkPhysicalDeviceShaderAtomicInt64FeaturesKHR* = object + VkPhysicalDeviceShaderAtomicFloatFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + shaderBufferFloat32Atomics*: VkBool32 + shaderBufferFloat32AtomicAdd*: VkBool32 + shaderBufferFloat64Atomics*: VkBool32 + shaderBufferFloat64AtomicAdd*: VkBool32 + shaderSharedFloat32Atomics*: VkBool32 + shaderSharedFloat32AtomicAdd*: VkBool32 + shaderSharedFloat64Atomics*: VkBool32 + shaderSharedFloat64AtomicAdd*: VkBool32 + shaderImageFloat32Atomics*: VkBool32 + shaderImageFloat32AtomicAdd*: VkBool32 + sparseImageFloat32Atomics*: VkBool32 + sparseImageFloat32AtomicAdd*: VkBool32 + VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + shaderBufferFloat16Atomics*: VkBool32 + shaderBufferFloat16AtomicAdd*: VkBool32 + shaderBufferFloat16AtomicMinMax*: VkBool32 + shaderBufferFloat32AtomicMinMax*: VkBool32 + shaderBufferFloat64AtomicMinMax*: VkBool32 + shaderSharedFloat16Atomics*: VkBool32 + shaderSharedFloat16AtomicAdd*: VkBool32 + shaderSharedFloat16AtomicMinMax*: VkBool32 + shaderSharedFloat32AtomicMinMax*: VkBool32 + shaderSharedFloat64AtomicMinMax*: VkBool32 + shaderImageFloat32AtomicMinMax*: VkBool32 + sparseImageFloat32AtomicMinMax*: VkBool32 + VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + vertexAttributeInstanceRateDivisor*: VkBool32 + vertexAttributeInstanceRateZeroDivisor*: VkBool32 + VkQueueFamilyCheckpointPropertiesNV* = object + sType*: VkStructureType + pNext*: pointer + checkpointExecutionStageMask*: VkPipelineStageFlags + VkCheckpointDataNV* = object + sType*: VkStructureType + pNext*: pointer + stage*: VkPipelineStageFlagBits + pCheckpointMarker*: pointer + VkPhysicalDeviceDepthStencilResolveProperties* = object + sType*: VkStructureType + pNext*: pointer + supportedDepthResolveModes*: VkResolveModeFlags + supportedStencilResolveModes*: VkResolveModeFlags + independentResolveNone*: VkBool32 + independentResolve*: VkBool32 + VkPhysicalDeviceDepthStencilResolvePropertiesKHR* = object + VkSubpassDescriptionDepthStencilResolve* = object + sType*: VkStructureType + pNext*: pointer + depthResolveMode*: VkResolveModeFlagBits + stencilResolveMode*: VkResolveModeFlagBits + pDepthStencilResolveAttachment*: ptr VkAttachmentReference2 + VkSubpassDescriptionDepthStencilResolveKHR* = object + VkImageViewASTCDecodeModeEXT* = object + sType*: VkStructureType + pNext*: pointer + decodeMode*: VkFormat + VkPhysicalDeviceASTCDecodeFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + decodeModeSharedExponent*: VkBool32 + VkPhysicalDeviceTransformFeedbackFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + transformFeedback*: VkBool32 + geometryStreams*: VkBool32 + VkPhysicalDeviceTransformFeedbackPropertiesEXT* = object + sType*: VkStructureType + pNext*: pointer + maxTransformFeedbackStreams*: uint32 + maxTransformFeedbackBuffers*: uint32 + maxTransformFeedbackBufferSize*: VkDeviceSize + maxTransformFeedbackStreamDataSize*: uint32 + maxTransformFeedbackBufferDataSize*: uint32 + maxTransformFeedbackBufferDataStride*: uint32 + transformFeedbackQueries*: VkBool32 + transformFeedbackStreamsLinesTriangles*: VkBool32 + transformFeedbackRasterizationStreamSelect*: VkBool32 + transformFeedbackDraw*: VkBool32 + VkPipelineRasterizationStateStreamCreateInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkPipelineRasterizationStateStreamCreateFlagsEXT + rasterizationStream*: uint32 + VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV* = object + sType*: VkStructureType + pNext*: pointer + representativeFragmentTest*: VkBool32 + VkPipelineRepresentativeFragmentTestStateCreateInfoNV* = object + sType*: VkStructureType + pNext*: pointer + representativeFragmentTestEnable*: VkBool32 + VkPhysicalDeviceExclusiveScissorFeaturesNV* = object + sType*: VkStructureType + pNext*: pointer + exclusiveScissor*: VkBool32 + VkPipelineViewportExclusiveScissorStateCreateInfoNV* = object + sType*: VkStructureType + pNext*: pointer + exclusiveScissorCount*: uint32 + pExclusiveScissors*: ptr VkRect2D + VkPhysicalDeviceCornerSampledImageFeaturesNV* = object + sType*: VkStructureType + pNext*: pointer + cornerSampledImage*: VkBool32 + VkPhysicalDeviceComputeShaderDerivativesFeaturesNV* = object + sType*: VkStructureType + pNext*: pointer + computeDerivativeGroupQuads*: VkBool32 + computeDerivativeGroupLinear*: VkBool32 + VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV* = object + VkPhysicalDeviceShaderImageFootprintFeaturesNV* = object + sType*: VkStructureType + pNext*: pointer + imageFootprint*: VkBool32 + VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV* = object + sType*: VkStructureType + pNext*: pointer + dedicatedAllocationImageAliasing*: VkBool32 + VkPhysicalDeviceCopyMemoryIndirectFeaturesNV* = object + sType*: VkStructureType + pNext*: pointer + indirectCopy*: VkBool32 + VkPhysicalDeviceCopyMemoryIndirectPropertiesNV* = object + sType*: VkStructureType + pNext*: pointer + supportedQueues*: VkQueueFlags + VkPhysicalDeviceMemoryDecompressionFeaturesNV* = object + sType*: VkStructureType + pNext*: pointer + memoryDecompression*: VkBool32 + VkPhysicalDeviceMemoryDecompressionPropertiesNV* = object + sType*: VkStructureType + pNext*: pointer + decompressionMethods*: VkMemoryDecompressionMethodFlagsNV + maxDecompressionIndirectCount*: uint64 + VkShadingRatePaletteNV* = object + shadingRatePaletteEntryCount*: uint32 + pShadingRatePaletteEntries*: ptr VkShadingRatePaletteEntryNV + VkPipelineViewportShadingRateImageStateCreateInfoNV* = object + sType*: VkStructureType + pNext*: pointer + shadingRateImageEnable*: VkBool32 + viewportCount*: uint32 + pShadingRatePalettes*: ptr VkShadingRatePaletteNV + VkPhysicalDeviceShadingRateImageFeaturesNV* = object + sType*: VkStructureType + pNext*: pointer + shadingRateImage*: VkBool32 + shadingRateCoarseSampleOrder*: VkBool32 + VkPhysicalDeviceShadingRateImagePropertiesNV* = object + sType*: VkStructureType + pNext*: pointer + shadingRateTexelSize*: VkExtent2D + shadingRatePaletteSize*: uint32 + shadingRateMaxCoarseSamples*: uint32 + VkPhysicalDeviceInvocationMaskFeaturesHUAWEI* = object + sType*: VkStructureType + pNext*: pointer + invocationMask*: VkBool32 + VkCoarseSampleLocationNV* = object + pixelX*: uint32 + pixelY*: uint32 + sample*: uint32 + VkCoarseSampleOrderCustomNV* = object + shadingRate*: VkShadingRatePaletteEntryNV + sampleCount*: uint32 + sampleLocationCount*: uint32 + pSampleLocations*: ptr VkCoarseSampleLocationNV + VkPipelineViewportCoarseSampleOrderStateCreateInfoNV* = object + sType*: VkStructureType + pNext*: pointer + sampleOrderType*: VkCoarseSampleOrderTypeNV + customSampleOrderCount*: uint32 + pCustomSampleOrders*: ptr VkCoarseSampleOrderCustomNV + VkPhysicalDeviceMeshShaderFeaturesNV* = object + sType*: VkStructureType + pNext*: pointer + taskShader*: VkBool32 + meshShader*: VkBool32 + VkPhysicalDeviceMeshShaderPropertiesNV* = object + sType*: VkStructureType + pNext*: pointer + maxDrawMeshTasksCount*: uint32 + maxTaskWorkGroupInvocations*: uint32 + maxTaskWorkGroupSize*: array[3, uint32] + maxTaskTotalMemorySize*: uint32 + maxTaskOutputCount*: uint32 + maxMeshWorkGroupInvocations*: uint32 + maxMeshWorkGroupSize*: array[3, uint32] + maxMeshTotalMemorySize*: uint32 + maxMeshOutputVertices*: uint32 + maxMeshOutputPrimitives*: uint32 + maxMeshMultiviewViewCount*: uint32 + meshOutputPerVertexGranularity*: uint32 + meshOutputPerPrimitiveGranularity*: uint32 + VkDrawMeshTasksIndirectCommandNV* = object + taskCount*: uint32 + firstTask*: uint32 + VkPhysicalDeviceMeshShaderFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + taskShader*: VkBool32 + meshShader*: VkBool32 + multiviewMeshShader*: VkBool32 + primitiveFragmentShadingRateMeshShader*: VkBool32 + meshShaderQueries*: VkBool32 + VkPhysicalDeviceMeshShaderPropertiesEXT* = object + sType*: VkStructureType + pNext*: pointer + maxTaskWorkGroupTotalCount*: uint32 + maxTaskWorkGroupCount*: array[3, uint32] + maxTaskWorkGroupInvocations*: uint32 + maxTaskWorkGroupSize*: array[3, uint32] + maxTaskPayloadSize*: uint32 + maxTaskSharedMemorySize*: uint32 + maxTaskPayloadAndSharedMemorySize*: uint32 + maxMeshWorkGroupTotalCount*: uint32 + maxMeshWorkGroupCount*: array[3, uint32] + maxMeshWorkGroupInvocations*: uint32 + maxMeshWorkGroupSize*: array[3, uint32] + maxMeshSharedMemorySize*: uint32 + maxMeshPayloadAndSharedMemorySize*: uint32 + maxMeshOutputMemorySize*: uint32 + maxMeshPayloadAndOutputMemorySize*: uint32 + maxMeshOutputComponents*: uint32 + maxMeshOutputVertices*: uint32 + maxMeshOutputPrimitives*: uint32 + maxMeshOutputLayers*: uint32 + maxMeshMultiviewViewCount*: uint32 + meshOutputPerVertexGranularity*: uint32 + meshOutputPerPrimitiveGranularity*: uint32 + maxPreferredTaskWorkGroupInvocations*: uint32 + maxPreferredMeshWorkGroupInvocations*: uint32 + prefersLocalInvocationVertexOutput*: VkBool32 + prefersLocalInvocationPrimitiveOutput*: VkBool32 + prefersCompactVertexOutput*: VkBool32 + prefersCompactPrimitiveOutput*: VkBool32 + VkDrawMeshTasksIndirectCommandEXT* = object + groupCountX*: uint32 + groupCountY*: uint32 + groupCountZ*: uint32 + VkRayTracingShaderGroupCreateInfoNV* = object + sType*: VkStructureType + pNext*: pointer + thetype*: VkRayTracingShaderGroupTypeKHR + generalShader*: uint32 + closestHitShader*: uint32 + anyHitShader*: uint32 + intersectionShader*: uint32 + VkRayTracingShaderGroupCreateInfoKHR* = object + sType*: VkStructureType + pNext*: pointer + thetype*: VkRayTracingShaderGroupTypeKHR + generalShader*: uint32 + closestHitShader*: uint32 + anyHitShader*: uint32 + intersectionShader*: uint32 + pShaderGroupCaptureReplayHandle*: pointer + VkRayTracingPipelineCreateInfoNV* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkPipelineCreateFlags + stageCount*: uint32 + pStages*: ptr VkPipelineShaderStageCreateInfo + groupCount*: uint32 + pGroups*: ptr VkRayTracingShaderGroupCreateInfoNV + maxRecursionDepth*: uint32 + layout*: VkPipelineLayout + basePipelineHandle*: VkPipeline + basePipelineIndex*: int32 + VkRayTracingPipelineCreateInfoKHR* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkPipelineCreateFlags + stageCount*: uint32 + pStages*: ptr VkPipelineShaderStageCreateInfo + groupCount*: uint32 + pGroups*: ptr VkRayTracingShaderGroupCreateInfoKHR + maxPipelineRayRecursionDepth*: uint32 + pLibraryInfo*: ptr VkPipelineLibraryCreateInfoKHR + pLibraryInterface*: ptr VkRayTracingPipelineInterfaceCreateInfoKHR + pDynamicState*: ptr VkPipelineDynamicStateCreateInfo + layout*: VkPipelineLayout + basePipelineHandle*: VkPipeline + basePipelineIndex*: int32 + VkGeometryTrianglesNV* = object + sType*: VkStructureType + pNext*: pointer + vertexData*: VkBuffer + vertexOffset*: VkDeviceSize + vertexCount*: uint32 + vertexStride*: VkDeviceSize + vertexFormat*: VkFormat + indexData*: VkBuffer + indexOffset*: VkDeviceSize + indexCount*: uint32 + indexType*: VkIndexType + transformData*: VkBuffer + transformOffset*: VkDeviceSize + VkGeometryAABBNV* = object + sType*: VkStructureType + pNext*: pointer + aabbData*: VkBuffer + numAABBs*: uint32 + stride*: uint32 + offset*: VkDeviceSize + VkGeometryDataNV* = object + triangles*: VkGeometryTrianglesNV + aabbs*: VkGeometryAABBNV + VkGeometryNV* = object + sType*: VkStructureType + pNext*: pointer + geometryType*: VkGeometryTypeKHR + geometry*: VkGeometryDataNV + flags*: VkGeometryFlagsKHR + VkAccelerationStructureInfoNV* = object + sType*: VkStructureType + pNext*: pointer + thetype*: VkAccelerationStructureTypeNV + flags*: VkBuildAccelerationStructureFlagsNV + instanceCount*: uint32 + geometryCount*: uint32 + pGeometries*: ptr VkGeometryNV + VkAccelerationStructureCreateInfoNV* = object + sType*: VkStructureType + pNext*: pointer + compactedSize*: VkDeviceSize + info*: VkAccelerationStructureInfoNV + VkBindAccelerationStructureMemoryInfoNV* = object + sType*: VkStructureType + pNext*: pointer + accelerationStructure*: VkAccelerationStructureNV + memory*: VkDeviceMemory + memoryOffset*: VkDeviceSize + deviceIndexCount*: uint32 + pDeviceIndices*: ptr uint32 + VkWriteDescriptorSetAccelerationStructureKHR* = object + sType*: VkStructureType + pNext*: pointer + accelerationStructureCount*: uint32 + pAccelerationStructures*: ptr VkAccelerationStructureKHR + VkWriteDescriptorSetAccelerationStructureNV* = object + sType*: VkStructureType + pNext*: pointer + accelerationStructureCount*: uint32 + pAccelerationStructures*: ptr VkAccelerationStructureNV + VkAccelerationStructureMemoryRequirementsInfoNV* = object + sType*: VkStructureType + pNext*: pointer + thetype*: VkAccelerationStructureMemoryRequirementsTypeNV + accelerationStructure*: VkAccelerationStructureNV + VkPhysicalDeviceAccelerationStructureFeaturesKHR* = object + sType*: VkStructureType + pNext*: pointer + accelerationStructure*: VkBool32 + accelerationStructureCaptureReplay*: VkBool32 + accelerationStructureIndirectBuild*: VkBool32 + accelerationStructureHostCommands*: VkBool32 + descriptorBindingAccelerationStructureUpdateAfterBind*: VkBool32 + VkPhysicalDeviceRayTracingPipelineFeaturesKHR* = object + sType*: VkStructureType + pNext*: pointer + rayTracingPipeline*: VkBool32 + rayTracingPipelineShaderGroupHandleCaptureReplay*: VkBool32 + rayTracingPipelineShaderGroupHandleCaptureReplayMixed*: VkBool32 + rayTracingPipelineTraceRaysIndirect*: VkBool32 + rayTraversalPrimitiveCulling*: VkBool32 + VkPhysicalDeviceRayQueryFeaturesKHR* = object + sType*: VkStructureType + pNext*: pointer + rayQuery*: VkBool32 + VkPhysicalDeviceAccelerationStructurePropertiesKHR* = object + sType*: VkStructureType + pNext*: pointer + maxGeometryCount*: uint64 + maxInstanceCount*: uint64 + maxPrimitiveCount*: uint64 + maxPerStageDescriptorAccelerationStructures*: uint32 + maxPerStageDescriptorUpdateAfterBindAccelerationStructures*: uint32 + maxDescriptorSetAccelerationStructures*: uint32 + maxDescriptorSetUpdateAfterBindAccelerationStructures*: uint32 + minAccelerationStructureScratchOffsetAlignment*: uint32 + VkPhysicalDeviceRayTracingPipelinePropertiesKHR* = object + sType*: VkStructureType + pNext*: pointer + shaderGroupHandleSize*: uint32 + maxRayRecursionDepth*: uint32 + maxShaderGroupStride*: uint32 + shaderGroupBaseAlignment*: uint32 + shaderGroupHandleCaptureReplaySize*: uint32 + maxRayDispatchInvocationCount*: uint32 + shaderGroupHandleAlignment*: uint32 + maxRayHitAttributeSize*: uint32 + VkPhysicalDeviceRayTracingPropertiesNV* = object + sType*: VkStructureType + pNext*: pointer + shaderGroupHandleSize*: uint32 + maxRecursionDepth*: uint32 + maxShaderGroupStride*: uint32 + shaderGroupBaseAlignment*: uint32 + maxGeometryCount*: uint64 + maxInstanceCount*: uint64 + maxTriangleCount*: uint64 + maxDescriptorSetAccelerationStructures*: uint32 + VkStridedDeviceAddressRegionKHR* = object + deviceAddress*: VkDeviceAddress + stride*: VkDeviceSize + size*: VkDeviceSize + VkTraceRaysIndirectCommandKHR* = object + width*: uint32 + height*: uint32 + depth*: uint32 + VkTraceRaysIndirectCommand2KHR* = object + raygenShaderRecordAddress*: VkDeviceAddress + raygenShaderRecordSize*: VkDeviceSize + missShaderBindingTableAddress*: VkDeviceAddress + missShaderBindingTableSize*: VkDeviceSize + missShaderBindingTableStride*: VkDeviceSize + hitShaderBindingTableAddress*: VkDeviceAddress + hitShaderBindingTableSize*: VkDeviceSize + hitShaderBindingTableStride*: VkDeviceSize + callableShaderBindingTableAddress*: VkDeviceAddress + callableShaderBindingTableSize*: VkDeviceSize + callableShaderBindingTableStride*: VkDeviceSize + width*: uint32 + height*: uint32 + depth*: uint32 + VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR* = object + sType*: VkStructureType + pNext*: pointer + rayTracingMaintenance1*: VkBool32 + rayTracingPipelineTraceRaysIndirect2*: VkBool32 + VkDrmFormatModifierPropertiesListEXT* = object + sType*: VkStructureType + pNext*: pointer + drmFormatModifierCount*: uint32 + pDrmFormatModifierProperties*: ptr VkDrmFormatModifierPropertiesEXT + VkDrmFormatModifierPropertiesEXT* = object + drmFormatModifier*: uint64 + drmFormatModifierPlaneCount*: uint32 + drmFormatModifierTilingFeatures*: VkFormatFeatureFlags + VkPhysicalDeviceImageDrmFormatModifierInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + drmFormatModifier*: uint64 + sharingMode*: VkSharingMode + queueFamilyIndexCount*: uint32 + pQueueFamilyIndices*: ptr uint32 + VkImageDrmFormatModifierListCreateInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + drmFormatModifierCount*: uint32 + pDrmFormatModifiers*: ptr uint64 + VkImageDrmFormatModifierExplicitCreateInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + drmFormatModifier*: uint64 + drmFormatModifierPlaneCount*: uint32 + pPlaneLayouts*: ptr VkSubresourceLayout + VkImageDrmFormatModifierPropertiesEXT* = object + sType*: VkStructureType + pNext*: pointer + drmFormatModifier*: uint64 + VkImageStencilUsageCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + stencilUsage*: VkImageUsageFlags + VkImageStencilUsageCreateInfoEXT* = object + VkDeviceMemoryOverallocationCreateInfoAMD* = object + sType*: VkStructureType + pNext*: pointer + overallocationBehavior*: VkMemoryOverallocationBehaviorAMD + VkPhysicalDeviceFragmentDensityMapFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + fragmentDensityMap*: VkBool32 + fragmentDensityMapDynamic*: VkBool32 + fragmentDensityMapNonSubsampledImages*: VkBool32 + VkPhysicalDeviceFragmentDensityMap2FeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + fragmentDensityMapDeferred*: VkBool32 + VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM* = object + sType*: VkStructureType + pNext*: pointer + fragmentDensityMapOffset*: VkBool32 + VkPhysicalDeviceFragmentDensityMapPropertiesEXT* = object + sType*: VkStructureType + pNext*: pointer + minFragmentDensityTexelSize*: VkExtent2D + maxFragmentDensityTexelSize*: VkExtent2D + fragmentDensityInvocations*: VkBool32 + VkPhysicalDeviceFragmentDensityMap2PropertiesEXT* = object + sType*: VkStructureType + pNext*: pointer + subsampledLoads*: VkBool32 + subsampledCoarseReconstructionEarlyAccess*: VkBool32 + maxSubsampledArrayLayers*: uint32 + maxDescriptorSetSubsampledSamplers*: uint32 + VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM* = object + sType*: VkStructureType + pNext*: pointer + fragmentDensityOffsetGranularity*: VkExtent2D + VkRenderPassFragmentDensityMapCreateInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + fragmentDensityMapAttachment*: VkAttachmentReference + VkSubpassFragmentDensityMapOffsetEndInfoQCOM* = object + sType*: VkStructureType + pNext*: pointer + fragmentDensityOffsetCount*: uint32 + pFragmentDensityOffsets*: ptr VkOffset2D + VkPhysicalDeviceScalarBlockLayoutFeatures* = object + sType*: VkStructureType + pNext*: pointer + scalarBlockLayout*: VkBool32 + VkPhysicalDeviceScalarBlockLayoutFeaturesEXT* = object + VkSurfaceProtectedCapabilitiesKHR* = object + sType*: VkStructureType + pNext*: pointer + supportsProtected*: VkBool32 + VkPhysicalDeviceUniformBufferStandardLayoutFeatures* = object + sType*: VkStructureType + pNext*: pointer + uniformBufferStandardLayout*: VkBool32 + VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR* = object + VkPhysicalDeviceDepthClipEnableFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + depthClipEnable*: VkBool32 + VkPipelineRasterizationDepthClipStateCreateInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkPipelineRasterizationDepthClipStateCreateFlagsEXT + depthClipEnable*: VkBool32 + VkPhysicalDeviceMemoryBudgetPropertiesEXT* = object + sType*: VkStructureType + pNext*: pointer + heapBudget*: array[VK_MAX_MEMORY_HEAPS, VkDeviceSize] + heapUsage*: array[VK_MAX_MEMORY_HEAPS, VkDeviceSize] + VkPhysicalDeviceMemoryPriorityFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + memoryPriority*: VkBool32 + VkMemoryPriorityAllocateInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + priority*: float32 + VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + pageableDeviceLocalMemory*: VkBool32 + VkPhysicalDeviceBufferDeviceAddressFeatures* = object + sType*: VkStructureType + pNext*: pointer + bufferDeviceAddress*: VkBool32 + bufferDeviceAddressCaptureReplay*: VkBool32 + bufferDeviceAddressMultiDevice*: VkBool32 + VkPhysicalDeviceBufferDeviceAddressFeaturesKHR* = object + VkPhysicalDeviceBufferDeviceAddressFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + bufferDeviceAddress*: VkBool32 + bufferDeviceAddressCaptureReplay*: VkBool32 + bufferDeviceAddressMultiDevice*: VkBool32 + VkPhysicalDeviceBufferAddressFeaturesEXT* = object + VkBufferDeviceAddressInfo* = object + sType*: VkStructureType + pNext*: pointer + buffer*: VkBuffer + VkBufferDeviceAddressInfoKHR* = object + VkBufferDeviceAddressInfoEXT* = object + VkBufferOpaqueCaptureAddressCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + opaqueCaptureAddress*: uint64 + VkBufferOpaqueCaptureAddressCreateInfoKHR* = object + VkBufferDeviceAddressCreateInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + deviceAddress*: VkDeviceAddress + VkPhysicalDeviceImageViewImageFormatInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + imageViewType*: VkImageViewType + VkFilterCubicImageViewImageFormatPropertiesEXT* = object + sType*: VkStructureType + pNext*: pointer + filterCubic*: VkBool32 + filterCubicMinmax*: VkBool32 + VkPhysicalDeviceImagelessFramebufferFeatures* = object + sType*: VkStructureType + pNext*: pointer + imagelessFramebuffer*: VkBool32 + VkPhysicalDeviceImagelessFramebufferFeaturesKHR* = object + VkFramebufferAttachmentsCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + attachmentImageInfoCount*: uint32 + pAttachmentImageInfos*: ptr VkFramebufferAttachmentImageInfo + VkFramebufferAttachmentsCreateInfoKHR* = object + VkFramebufferAttachmentImageInfo* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkImageCreateFlags + usage*: VkImageUsageFlags + width*: uint32 + height*: uint32 + layerCount*: uint32 + viewFormatCount*: uint32 + pViewFormats*: ptr VkFormat + VkFramebufferAttachmentImageInfoKHR* = object + VkRenderPassAttachmentBeginInfo* = object + sType*: VkStructureType + pNext*: pointer + attachmentCount*: uint32 + pAttachments*: ptr VkImageView + VkRenderPassAttachmentBeginInfoKHR* = object + VkPhysicalDeviceTextureCompressionASTCHDRFeatures* = object + sType*: VkStructureType + pNext*: pointer + textureCompressionASTC_HDR*: VkBool32 + VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT* = object + VkPhysicalDeviceCooperativeMatrixFeaturesNV* = object + sType*: VkStructureType + pNext*: pointer + cooperativeMatrix*: VkBool32 + cooperativeMatrixRobustBufferAccess*: VkBool32 + VkPhysicalDeviceCooperativeMatrixPropertiesNV* = object + sType*: VkStructureType + pNext*: pointer + cooperativeMatrixSupportedStages*: VkShaderStageFlags + VkCooperativeMatrixPropertiesNV* = object + sType*: VkStructureType + pNext*: pointer + MSize*: uint32 + NSize*: uint32 + KSize*: uint32 + AType*: VkComponentTypeNV + BType*: VkComponentTypeNV + CType*: VkComponentTypeNV + DType*: VkComponentTypeNV + scope*: VkScopeNV + VkPhysicalDeviceYcbcrImageArraysFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + ycbcrImageArrays*: VkBool32 + VkImageViewHandleInfoNVX* = object + sType*: VkStructureType + pNext*: pointer + imageView*: VkImageView + descriptorType*: VkDescriptorType + sampler*: VkSampler + VkImageViewAddressPropertiesNVX* = object + sType*: VkStructureType + pNext*: pointer + deviceAddress*: VkDeviceAddress + size*: VkDeviceSize + VkPipelineCreationFeedback* = object + flags*: VkPipelineCreationFeedbackFlags + duration*: uint64 + VkPipelineCreationFeedbackEXT* = object + VkPipelineCreationFeedbackCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + pPipelineCreationFeedback*: ptr VkPipelineCreationFeedback + pipelineStageCreationFeedbackCount*: uint32 + pPipelineStageCreationFeedbacks*: ptr VkPipelineCreationFeedback + VkPipelineCreationFeedbackCreateInfoEXT* = object + VkPhysicalDevicePresentBarrierFeaturesNV* = object + sType*: VkStructureType + pNext*: pointer + presentBarrier*: VkBool32 + VkSurfaceCapabilitiesPresentBarrierNV* = object + sType*: VkStructureType + pNext*: pointer + presentBarrierSupported*: VkBool32 + VkSwapchainPresentBarrierCreateInfoNV* = object + sType*: VkStructureType + pNext*: pointer + presentBarrierEnable*: VkBool32 + VkPhysicalDevicePerformanceQueryFeaturesKHR* = object + sType*: VkStructureType + pNext*: pointer + performanceCounterQueryPools*: VkBool32 + performanceCounterMultipleQueryPools*: VkBool32 + VkPhysicalDevicePerformanceQueryPropertiesKHR* = object + sType*: VkStructureType + pNext*: pointer + allowCommandBufferQueryCopies*: VkBool32 + VkPerformanceCounterKHR* = object + sType*: VkStructureType + pNext*: pointer + unit*: VkPerformanceCounterUnitKHR + scope*: VkPerformanceCounterScopeKHR + storage*: VkPerformanceCounterStorageKHR + uuid*: array[VK_UUID_SIZE, uint8] + VkPerformanceCounterDescriptionKHR* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkPerformanceCounterDescriptionFlagsKHR + name*: array[VK_MAX_DESCRIPTION_SIZE, char] + category*: array[VK_MAX_DESCRIPTION_SIZE, char] + description*: array[VK_MAX_DESCRIPTION_SIZE, char] + VkQueryPoolPerformanceCreateInfoKHR* = object + sType*: VkStructureType + pNext*: pointer + queueFamilyIndex*: uint32 + counterIndexCount*: uint32 + pCounterIndices*: ptr uint32 + VkPerformanceCounterResultKHR* {.union.} = object + int32*: int32 + int64*: int64 + uint32*: uint32 + uint64*: uint64 + float32*: float32 + float64*: float64 + VkAcquireProfilingLockInfoKHR* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkAcquireProfilingLockFlagsKHR + timeout*: uint64 + VkPerformanceQuerySubmitInfoKHR* = object + sType*: VkStructureType + pNext*: pointer + counterPassIndex*: uint32 + VkPerformanceQueryReservationInfoKHR* = object + sType*: VkStructureType + pNext*: pointer + maxPerformanceQueriesPerPool*: uint32 + VkHeadlessSurfaceCreateInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkHeadlessSurfaceCreateFlagsEXT + VkPhysicalDeviceCoverageReductionModeFeaturesNV* = object + sType*: VkStructureType + pNext*: pointer + coverageReductionMode*: VkBool32 + VkPipelineCoverageReductionStateCreateInfoNV* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkPipelineCoverageReductionStateCreateFlagsNV + coverageReductionMode*: VkCoverageReductionModeNV + VkFramebufferMixedSamplesCombinationNV* = object + sType*: VkStructureType + pNext*: pointer + coverageReductionMode*: VkCoverageReductionModeNV + rasterizationSamples*: VkSampleCountFlagBits + depthStencilSamples*: VkSampleCountFlags + colorSamples*: VkSampleCountFlags + VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL* = object + sType*: VkStructureType + pNext*: pointer + shaderIntegerFunctions2*: VkBool32 + VkPerformanceValueDataINTEL* {.union.} = object + value32*: uint32 + value64*: uint64 + valueFloat*: float32 + valueBool*: VkBool32 + valueString*: cstring + VkPerformanceValueINTEL* = object + thetype*: VkPerformanceValueTypeINTEL + data*: VkPerformanceValueDataINTEL + VkInitializePerformanceApiInfoINTEL* = object + sType*: VkStructureType + pNext*: pointer + pUserData*: pointer + VkQueryPoolPerformanceQueryCreateInfoINTEL* = object + sType*: VkStructureType + pNext*: pointer + performanceCountersSampling*: VkQueryPoolSamplingModeINTEL + VkQueryPoolCreateInfoINTEL* = object + VkPerformanceMarkerInfoINTEL* = object + sType*: VkStructureType + pNext*: pointer + marker*: uint64 + VkPerformanceStreamMarkerInfoINTEL* = object + sType*: VkStructureType + pNext*: pointer + marker*: uint32 + VkPerformanceOverrideInfoINTEL* = object + sType*: VkStructureType + pNext*: pointer + thetype*: VkPerformanceOverrideTypeINTEL + enable*: VkBool32 + parameter*: uint64 + VkPerformanceConfigurationAcquireInfoINTEL* = object + sType*: VkStructureType + pNext*: pointer + thetype*: VkPerformanceConfigurationTypeINTEL + VkPhysicalDeviceShaderClockFeaturesKHR* = object + sType*: VkStructureType + pNext*: pointer + shaderSubgroupClock*: VkBool32 + shaderDeviceClock*: VkBool32 + VkPhysicalDeviceIndexTypeUint8FeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + indexTypeUint8*: VkBool32 + VkPhysicalDeviceShaderSMBuiltinsPropertiesNV* = object + sType*: VkStructureType + pNext*: pointer + shaderSMCount*: uint32 + shaderWarpsPerSM*: uint32 + VkPhysicalDeviceShaderSMBuiltinsFeaturesNV* = object + sType*: VkStructureType + pNext*: pointer + shaderSMBuiltins*: VkBool32 + VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + fragmentShaderSampleInterlock*: VkBool32 + fragmentShaderPixelInterlock*: VkBool32 + fragmentShaderShadingRateInterlock*: VkBool32 + VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures* = object + sType*: VkStructureType + pNext*: pointer + separateDepthStencilLayouts*: VkBool32 + VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR* = object + VkAttachmentReferenceStencilLayout* = object + sType*: VkStructureType + pNext*: pointer + stencilLayout*: VkImageLayout + VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + primitiveTopologyListRestart*: VkBool32 + primitiveTopologyPatchListRestart*: VkBool32 + VkAttachmentReferenceStencilLayoutKHR* = object + VkAttachmentDescriptionStencilLayout* = object + sType*: VkStructureType + pNext*: pointer + stencilInitialLayout*: VkImageLayout + stencilFinalLayout*: VkImageLayout + VkAttachmentDescriptionStencilLayoutKHR* = object + VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR* = object + sType*: VkStructureType + pNext*: pointer + pipelineExecutableInfo*: VkBool32 + VkPipelineInfoKHR* = object + sType*: VkStructureType + pNext*: pointer + pipeline*: VkPipeline + VkPipelineInfoEXT* = object + VkPipelineExecutablePropertiesKHR* = object + sType*: VkStructureType + pNext*: pointer + stages*: VkShaderStageFlags + name*: array[VK_MAX_DESCRIPTION_SIZE, char] + description*: array[VK_MAX_DESCRIPTION_SIZE, char] + subgroupSize*: uint32 + VkPipelineExecutableInfoKHR* = object + sType*: VkStructureType + pNext*: pointer + pipeline*: VkPipeline + executableIndex*: uint32 + VkPipelineExecutableStatisticValueKHR* {.union.} = object + b32*: VkBool32 + i64*: int64 + u64*: uint64 + f64*: float64 + VkPipelineExecutableStatisticKHR* = object + sType*: VkStructureType + pNext*: pointer + name*: array[VK_MAX_DESCRIPTION_SIZE, char] + description*: array[VK_MAX_DESCRIPTION_SIZE, char] + format*: VkPipelineExecutableStatisticFormatKHR + value*: VkPipelineExecutableStatisticValueKHR + VkPipelineExecutableInternalRepresentationKHR* = object + sType*: VkStructureType + pNext*: pointer + name*: array[VK_MAX_DESCRIPTION_SIZE, char] + description*: array[VK_MAX_DESCRIPTION_SIZE, char] + isText*: VkBool32 + dataSize*: csize_t + pData*: pointer + VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures* = object + sType*: VkStructureType + pNext*: pointer + shaderDemoteToHelperInvocation*: VkBool32 + VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT* = object + VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + texelBufferAlignment*: VkBool32 + VkPhysicalDeviceTexelBufferAlignmentProperties* = object + sType*: VkStructureType + pNext*: pointer + storageTexelBufferOffsetAlignmentBytes*: VkDeviceSize + storageTexelBufferOffsetSingleTexelAlignment*: VkBool32 + uniformTexelBufferOffsetAlignmentBytes*: VkDeviceSize + uniformTexelBufferOffsetSingleTexelAlignment*: VkBool32 + VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT* = object + VkPhysicalDeviceSubgroupSizeControlFeatures* = object + sType*: VkStructureType + pNext*: pointer + subgroupSizeControl*: VkBool32 + computeFullSubgroups*: VkBool32 + VkPhysicalDeviceSubgroupSizeControlFeaturesEXT* = object + VkPhysicalDeviceSubgroupSizeControlProperties* = object + sType*: VkStructureType + pNext*: pointer + minSubgroupSize*: uint32 + maxSubgroupSize*: uint32 + maxComputeWorkgroupSubgroups*: uint32 + requiredSubgroupSizeStages*: VkShaderStageFlags + VkPhysicalDeviceSubgroupSizeControlPropertiesEXT* = object + VkPipelineShaderStageRequiredSubgroupSizeCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + requiredSubgroupSize*: uint32 + VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT* = object + VkSubpassShadingPipelineCreateInfoHUAWEI* = object + sType*: VkStructureType + pNext*: pointer + renderPass*: VkRenderPass + subpass*: uint32 + VkPhysicalDeviceSubpassShadingPropertiesHUAWEI* = object + sType*: VkStructureType + pNext*: pointer + maxSubpassShadingWorkgroupSizeAspectRatio*: uint32 + VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI* = object + sType*: VkStructureType + pNext*: pointer + maxWorkGroupCount*: array[3, uint32] + maxWorkGroupSize*: array[3, uint32] + maxOutputClusterCount*: uint32 + VkMemoryOpaqueCaptureAddressAllocateInfo* = object + sType*: VkStructureType + pNext*: pointer + opaqueCaptureAddress*: uint64 + VkMemoryOpaqueCaptureAddressAllocateInfoKHR* = object + VkDeviceMemoryOpaqueCaptureAddressInfo* = object + sType*: VkStructureType + pNext*: pointer + memory*: VkDeviceMemory + VkDeviceMemoryOpaqueCaptureAddressInfoKHR* = object + VkPhysicalDeviceLineRasterizationFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + rectangularLines*: VkBool32 + bresenhamLines*: VkBool32 + smoothLines*: VkBool32 + stippledRectangularLines*: VkBool32 + stippledBresenhamLines*: VkBool32 + stippledSmoothLines*: VkBool32 + VkPhysicalDeviceLineRasterizationPropertiesEXT* = object + sType*: VkStructureType + pNext*: pointer + lineSubPixelPrecisionBits*: uint32 + VkPipelineRasterizationLineStateCreateInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + lineRasterizationMode*: VkLineRasterizationModeEXT + stippledLineEnable*: VkBool32 + lineStippleFactor*: uint32 + lineStipplePattern*: uint16 + VkPhysicalDevicePipelineCreationCacheControlFeatures* = object + sType*: VkStructureType + pNext*: pointer + pipelineCreationCacheControl*: VkBool32 + VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT* = object + VkPhysicalDeviceVulkan11Features* = object + sType*: VkStructureType + pNext*: pointer + storageBuffer16BitAccess*: VkBool32 + uniformAndStorageBuffer16BitAccess*: VkBool32 + storagePushConstant16*: VkBool32 + storageInputOutput16*: VkBool32 + multiview*: VkBool32 + multiviewGeometryShader*: VkBool32 + multiviewTessellationShader*: VkBool32 + variablePointersStorageBuffer*: VkBool32 + variablePointers*: VkBool32 + protectedMemory*: VkBool32 + samplerYcbcrConversion*: VkBool32 + shaderDrawParameters*: VkBool32 + VkPhysicalDeviceVulkan11Properties* = object + sType*: VkStructureType + pNext*: pointer + deviceUUID*: array[VK_UUID_SIZE, uint8] + driverUUID*: array[VK_UUID_SIZE, uint8] + deviceLUID*: array[VK_LUID_SIZE, uint8] + deviceNodeMask*: uint32 + deviceLUIDValid*: VkBool32 + subgroupSize*: uint32 + subgroupSupportedStages*: VkShaderStageFlags + subgroupSupportedOperations*: VkSubgroupFeatureFlags + subgroupQuadOperationsInAllStages*: VkBool32 + pointClippingBehavior*: VkPointClippingBehavior + maxMultiviewViewCount*: uint32 + maxMultiviewInstanceIndex*: uint32 + protectedNoFault*: VkBool32 + maxPerSetDescriptors*: uint32 + maxMemoryAllocationSize*: VkDeviceSize + VkPhysicalDeviceVulkan12Features* = object + sType*: VkStructureType + pNext*: pointer + samplerMirrorClampToEdge*: VkBool32 + drawIndirectCount*: VkBool32 + storageBuffer8BitAccess*: VkBool32 + uniformAndStorageBuffer8BitAccess*: VkBool32 + storagePushConstant8*: VkBool32 + shaderBufferInt64Atomics*: VkBool32 + shaderSharedInt64Atomics*: VkBool32 + shaderFloat16*: VkBool32 + shaderInt8*: VkBool32 + descriptorIndexing*: VkBool32 + shaderInputAttachmentArrayDynamicIndexing*: VkBool32 + shaderUniformTexelBufferArrayDynamicIndexing*: VkBool32 + shaderStorageTexelBufferArrayDynamicIndexing*: VkBool32 + shaderUniformBufferArrayNonUniformIndexing*: VkBool32 + shaderSampledImageArrayNonUniformIndexing*: VkBool32 + shaderStorageBufferArrayNonUniformIndexing*: VkBool32 + shaderStorageImageArrayNonUniformIndexing*: VkBool32 + shaderInputAttachmentArrayNonUniformIndexing*: VkBool32 + shaderUniformTexelBufferArrayNonUniformIndexing*: VkBool32 + shaderStorageTexelBufferArrayNonUniformIndexing*: VkBool32 + descriptorBindingUniformBufferUpdateAfterBind*: VkBool32 + descriptorBindingSampledImageUpdateAfterBind*: VkBool32 + descriptorBindingStorageImageUpdateAfterBind*: VkBool32 + descriptorBindingStorageBufferUpdateAfterBind*: VkBool32 + descriptorBindingUniformTexelBufferUpdateAfterBind*: VkBool32 + descriptorBindingStorageTexelBufferUpdateAfterBind*: VkBool32 + descriptorBindingUpdateUnusedWhilePending*: VkBool32 + descriptorBindingPartiallyBound*: VkBool32 + descriptorBindingVariableDescriptorCount*: VkBool32 + runtimeDescriptorArray*: VkBool32 + samplerFilterMinmax*: VkBool32 + scalarBlockLayout*: VkBool32 + imagelessFramebuffer*: VkBool32 + uniformBufferStandardLayout*: VkBool32 + shaderSubgroupExtendedTypes*: VkBool32 + separateDepthStencilLayouts*: VkBool32 + hostQueryReset*: VkBool32 + timelineSemaphore*: VkBool32 + bufferDeviceAddress*: VkBool32 + bufferDeviceAddressCaptureReplay*: VkBool32 + bufferDeviceAddressMultiDevice*: VkBool32 + vulkanMemoryModel*: VkBool32 + vulkanMemoryModelDeviceScope*: VkBool32 + vulkanMemoryModelAvailabilityVisibilityChains*: VkBool32 + shaderOutputViewportIndex*: VkBool32 + shaderOutputLayer*: VkBool32 + subgroupBroadcastDynamicId*: VkBool32 + VkPhysicalDeviceVulkan12Properties* = object + sType*: VkStructureType + pNext*: pointer + driverID*: VkDriverId + driverName*: array[VK_MAX_DRIVER_NAME_SIZE, char] + driverInfo*: array[VK_MAX_DRIVER_INFO_SIZE, char] + conformanceVersion*: VkConformanceVersion + denormBehaviorIndependence*: VkShaderFloatControlsIndependence + roundingModeIndependence*: VkShaderFloatControlsIndependence + shaderSignedZeroInfNanPreserveFloat16*: VkBool32 + shaderSignedZeroInfNanPreserveFloat32*: VkBool32 + shaderSignedZeroInfNanPreserveFloat64*: VkBool32 + shaderDenormPreserveFloat16*: VkBool32 + shaderDenormPreserveFloat32*: VkBool32 + shaderDenormPreserveFloat64*: VkBool32 + shaderDenormFlushToZeroFloat16*: VkBool32 + shaderDenormFlushToZeroFloat32*: VkBool32 + shaderDenormFlushToZeroFloat64*: VkBool32 + shaderRoundingModeRTEFloat16*: VkBool32 + shaderRoundingModeRTEFloat32*: VkBool32 + shaderRoundingModeRTEFloat64*: VkBool32 + shaderRoundingModeRTZFloat16*: VkBool32 + shaderRoundingModeRTZFloat32*: VkBool32 + shaderRoundingModeRTZFloat64*: VkBool32 + maxUpdateAfterBindDescriptorsInAllPools*: uint32 + shaderUniformBufferArrayNonUniformIndexingNative*: VkBool32 + shaderSampledImageArrayNonUniformIndexingNative*: VkBool32 + shaderStorageBufferArrayNonUniformIndexingNative*: VkBool32 + shaderStorageImageArrayNonUniformIndexingNative*: VkBool32 + shaderInputAttachmentArrayNonUniformIndexingNative*: VkBool32 + robustBufferAccessUpdateAfterBind*: VkBool32 + quadDivergentImplicitLod*: VkBool32 + maxPerStageDescriptorUpdateAfterBindSamplers*: uint32 + maxPerStageDescriptorUpdateAfterBindUniformBuffers*: uint32 + maxPerStageDescriptorUpdateAfterBindStorageBuffers*: uint32 + maxPerStageDescriptorUpdateAfterBindSampledImages*: uint32 + maxPerStageDescriptorUpdateAfterBindStorageImages*: uint32 + maxPerStageDescriptorUpdateAfterBindInputAttachments*: uint32 + maxPerStageUpdateAfterBindResources*: uint32 + maxDescriptorSetUpdateAfterBindSamplers*: uint32 + maxDescriptorSetUpdateAfterBindUniformBuffers*: uint32 + maxDescriptorSetUpdateAfterBindUniformBuffersDynamic*: uint32 + maxDescriptorSetUpdateAfterBindStorageBuffers*: uint32 + maxDescriptorSetUpdateAfterBindStorageBuffersDynamic*: uint32 + maxDescriptorSetUpdateAfterBindSampledImages*: uint32 + maxDescriptorSetUpdateAfterBindStorageImages*: uint32 + maxDescriptorSetUpdateAfterBindInputAttachments*: uint32 + supportedDepthResolveModes*: VkResolveModeFlags + supportedStencilResolveModes*: VkResolveModeFlags + independentResolveNone*: VkBool32 + independentResolve*: VkBool32 + filterMinmaxSingleComponentFormats*: VkBool32 + filterMinmaxImageComponentMapping*: VkBool32 + maxTimelineSemaphoreValueDifference*: uint64 + framebufferIntegerColorSampleCounts*: VkSampleCountFlags + VkPhysicalDeviceVulkan13Features* = object + sType*: VkStructureType + pNext*: pointer + robustImageAccess*: VkBool32 + inlineUniformBlock*: VkBool32 + descriptorBindingInlineUniformBlockUpdateAfterBind*: VkBool32 + pipelineCreationCacheControl*: VkBool32 + privateData*: VkBool32 + shaderDemoteToHelperInvocation*: VkBool32 + shaderTerminateInvocation*: VkBool32 + subgroupSizeControl*: VkBool32 + computeFullSubgroups*: VkBool32 + synchronization2*: VkBool32 + textureCompressionASTC_HDR*: VkBool32 + shaderZeroInitializeWorkgroupMemory*: VkBool32 + dynamicRendering*: VkBool32 + shaderIntegerDotProduct*: VkBool32 + maintenance4*: VkBool32 + VkPhysicalDeviceVulkan13Properties* = object + sType*: VkStructureType + pNext*: pointer + minSubgroupSize*: uint32 + maxSubgroupSize*: uint32 + maxComputeWorkgroupSubgroups*: uint32 + requiredSubgroupSizeStages*: VkShaderStageFlags + maxInlineUniformBlockSize*: uint32 + maxPerStageDescriptorInlineUniformBlocks*: uint32 + maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks*: uint32 + maxDescriptorSetInlineUniformBlocks*: uint32 + maxDescriptorSetUpdateAfterBindInlineUniformBlocks*: uint32 + maxInlineUniformTotalSize*: uint32 + integerDotProduct8BitUnsignedAccelerated*: VkBool32 + integerDotProduct8BitSignedAccelerated*: VkBool32 + integerDotProduct8BitMixedSignednessAccelerated*: VkBool32 + integerDotProduct4x8BitPackedUnsignedAccelerated*: VkBool32 + integerDotProduct4x8BitPackedSignedAccelerated*: VkBool32 + integerDotProduct4x8BitPackedMixedSignednessAccelerated*: VkBool32 + integerDotProduct16BitUnsignedAccelerated*: VkBool32 + integerDotProduct16BitSignedAccelerated*: VkBool32 + integerDotProduct16BitMixedSignednessAccelerated*: VkBool32 + integerDotProduct32BitUnsignedAccelerated*: VkBool32 + integerDotProduct32BitSignedAccelerated*: VkBool32 + integerDotProduct32BitMixedSignednessAccelerated*: VkBool32 + integerDotProduct64BitUnsignedAccelerated*: VkBool32 + integerDotProduct64BitSignedAccelerated*: VkBool32 + integerDotProduct64BitMixedSignednessAccelerated*: VkBool32 + integerDotProductAccumulatingSaturating8BitUnsignedAccelerated*: VkBool32 + integerDotProductAccumulatingSaturating8BitSignedAccelerated*: VkBool32 + integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated*: VkBool32 + integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated*: VkBool32 + integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated*: VkBool32 + integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated*: VkBool32 + integerDotProductAccumulatingSaturating16BitUnsignedAccelerated*: VkBool32 + integerDotProductAccumulatingSaturating16BitSignedAccelerated*: VkBool32 + integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated*: VkBool32 + integerDotProductAccumulatingSaturating32BitUnsignedAccelerated*: VkBool32 + integerDotProductAccumulatingSaturating32BitSignedAccelerated*: VkBool32 + integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated*: VkBool32 + integerDotProductAccumulatingSaturating64BitUnsignedAccelerated*: VkBool32 + integerDotProductAccumulatingSaturating64BitSignedAccelerated*: VkBool32 + integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated*: VkBool32 + storageTexelBufferOffsetAlignmentBytes*: VkDeviceSize + storageTexelBufferOffsetSingleTexelAlignment*: VkBool32 + uniformTexelBufferOffsetAlignmentBytes*: VkDeviceSize + uniformTexelBufferOffsetSingleTexelAlignment*: VkBool32 + maxBufferSize*: VkDeviceSize + VkPipelineCompilerControlCreateInfoAMD* = object + sType*: VkStructureType + pNext*: pointer + compilerControlFlags*: VkPipelineCompilerControlFlagsAMD + VkPhysicalDeviceCoherentMemoryFeaturesAMD* = object + sType*: VkStructureType + pNext*: pointer + deviceCoherentMemory*: VkBool32 + VkFaultData* = object + sType*: VkStructureType + pNext*: pointer + faultLevel*: VkFaultLevel + faultType*: VkFaultType + VkFaultCallbackInfo* = object + sType*: VkStructureType + pNext*: pointer + faultCount*: uint32 + pFaults*: ptr VkFaultData + pfnFaultCallback*: PFN_vkFaultCallbackFunction + VkPhysicalDeviceToolProperties* = object + sType*: VkStructureType + pNext*: pointer + name*: array[VK_MAX_EXTENSION_NAME_SIZE, char] + version*: array[VK_MAX_EXTENSION_NAME_SIZE, char] + purposes*: VkToolPurposeFlags + description*: array[VK_MAX_DESCRIPTION_SIZE, char] + layer*: array[VK_MAX_EXTENSION_NAME_SIZE, char] + VkPhysicalDeviceToolPropertiesEXT* = object + VkSamplerCustomBorderColorCreateInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + customBorderColor*: VkClearColorValue + format*: VkFormat + VkPhysicalDeviceCustomBorderColorPropertiesEXT* = object + sType*: VkStructureType + pNext*: pointer + maxCustomBorderColorSamplers*: uint32 + VkPhysicalDeviceCustomBorderColorFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + customBorderColors*: VkBool32 + customBorderColorWithoutFormat*: VkBool32 + VkSamplerBorderColorComponentMappingCreateInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + components*: VkComponentMapping + srgb*: VkBool32 + VkPhysicalDeviceBorderColorSwizzleFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + borderColorSwizzle*: VkBool32 + borderColorSwizzleFromImage*: VkBool32 + VkDeviceOrHostAddressKHR* {.union.} = object + deviceAddress*: VkDeviceAddress + hostAddress*: pointer + VkDeviceOrHostAddressConstKHR* {.union.} = object + deviceAddress*: VkDeviceAddress + hostAddress*: pointer + VkAccelerationStructureGeometryTrianglesDataKHR* = object + sType*: VkStructureType + pNext*: pointer + vertexFormat*: VkFormat + vertexData*: VkDeviceOrHostAddressConstKHR + vertexStride*: VkDeviceSize + maxVertex*: uint32 + indexType*: VkIndexType + indexData*: VkDeviceOrHostAddressConstKHR + transformData*: VkDeviceOrHostAddressConstKHR + VkAccelerationStructureGeometryAabbsDataKHR* = object + sType*: VkStructureType + pNext*: pointer + data*: VkDeviceOrHostAddressConstKHR + stride*: VkDeviceSize + VkAccelerationStructureGeometryInstancesDataKHR* = object + sType*: VkStructureType + pNext*: pointer + arrayOfPointers*: VkBool32 + data*: VkDeviceOrHostAddressConstKHR + VkAccelerationStructureGeometryDataKHR* {.union.} = object + triangles*: VkAccelerationStructureGeometryTrianglesDataKHR + aabbs*: VkAccelerationStructureGeometryAabbsDataKHR + instances*: VkAccelerationStructureGeometryInstancesDataKHR + VkAccelerationStructureGeometryKHR* = object + sType*: VkStructureType + pNext*: pointer + geometryType*: VkGeometryTypeKHR + geometry*: VkAccelerationStructureGeometryDataKHR + flags*: VkGeometryFlagsKHR + VkAccelerationStructureBuildGeometryInfoKHR* = object + sType*: VkStructureType + pNext*: pointer + thetype*: VkAccelerationStructureTypeKHR + flags*: VkBuildAccelerationStructureFlagsKHR + mode*: VkBuildAccelerationStructureModeKHR + srcAccelerationStructure*: VkAccelerationStructureKHR + dstAccelerationStructure*: VkAccelerationStructureKHR + geometryCount*: uint32 + pGeometries*: ptr VkAccelerationStructureGeometryKHR + ppGeometries*: ptr ptr VkAccelerationStructureGeometryKHR + scratchData*: VkDeviceOrHostAddressKHR + VkAccelerationStructureBuildRangeInfoKHR* = object + primitiveCount*: uint32 + primitiveOffset*: uint32 + firstVertex*: uint32 + transformOffset*: uint32 + VkAccelerationStructureCreateInfoKHR* = object + sType*: VkStructureType + pNext*: pointer + createFlags*: VkAccelerationStructureCreateFlagsKHR + buffer*: VkBuffer + offset*: VkDeviceSize + size*: VkDeviceSize + thetype*: VkAccelerationStructureTypeKHR + deviceAddress*: VkDeviceAddress + VkAabbPositionsKHR* = object + minX*: float32 + minY*: float32 + minZ*: float32 + maxX*: float32 + maxY*: float32 + maxZ*: float32 + VkAabbPositionsNV* = object + VkTransformMatrixKHR* = object + matrix*: array[3*4, float32] + VkTransformMatrixNV* = object + VkAccelerationStructureInstanceKHR* = object + transform*: VkTransformMatrixKHR + instanceCustomIndex*: uint32 + mask*: uint32 + instanceShaderBindingTableRecordOffset*: uint32 + flags*: VkGeometryInstanceFlagsKHR + accelerationStructureReference*: uint64 + VkAccelerationStructureInstanceNV* = object + VkAccelerationStructureDeviceAddressInfoKHR* = object + sType*: VkStructureType + pNext*: pointer + accelerationStructure*: VkAccelerationStructureKHR + VkAccelerationStructureVersionInfoKHR* = object + sType*: VkStructureType + pNext*: pointer + pVersionData*: ptr uint8 + VkCopyAccelerationStructureInfoKHR* = object + sType*: VkStructureType + pNext*: pointer + src*: VkAccelerationStructureKHR + dst*: VkAccelerationStructureKHR + mode*: VkCopyAccelerationStructureModeKHR + VkCopyAccelerationStructureToMemoryInfoKHR* = object + sType*: VkStructureType + pNext*: pointer + src*: VkAccelerationStructureKHR + dst*: VkDeviceOrHostAddressKHR + mode*: VkCopyAccelerationStructureModeKHR + VkCopyMemoryToAccelerationStructureInfoKHR* = object + sType*: VkStructureType + pNext*: pointer + src*: VkDeviceOrHostAddressConstKHR + dst*: VkAccelerationStructureKHR + mode*: VkCopyAccelerationStructureModeKHR + VkRayTracingPipelineInterfaceCreateInfoKHR* = object + sType*: VkStructureType + pNext*: pointer + maxPipelineRayPayloadSize*: uint32 + maxPipelineRayHitAttributeSize*: uint32 + VkPipelineLibraryCreateInfoKHR* = object + sType*: VkStructureType + pNext*: pointer + libraryCount*: uint32 + pLibraries*: ptr VkPipeline + VkRefreshObjectKHR* = object + objectType*: VkObjectType + objectHandle*: uint64 + flags*: VkRefreshObjectFlagsKHR + VkRefreshObjectListKHR* = object + sType*: VkStructureType + pNext*: pointer + objectCount*: uint32 + pObjects*: ptr VkRefreshObjectKHR + VkPhysicalDeviceExtendedDynamicStateFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + extendedDynamicState*: VkBool32 + VkPhysicalDeviceExtendedDynamicState2FeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + extendedDynamicState2*: VkBool32 + extendedDynamicState2LogicOp*: VkBool32 + extendedDynamicState2PatchControlPoints*: VkBool32 + VkPhysicalDeviceExtendedDynamicState3FeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + extendedDynamicState3TessellationDomainOrigin*: VkBool32 + extendedDynamicState3DepthClampEnable*: VkBool32 + extendedDynamicState3PolygonMode*: VkBool32 + extendedDynamicState3RasterizationSamples*: VkBool32 + extendedDynamicState3SampleMask*: VkBool32 + extendedDynamicState3AlphaToCoverageEnable*: VkBool32 + extendedDynamicState3AlphaToOneEnable*: VkBool32 + extendedDynamicState3LogicOpEnable*: VkBool32 + extendedDynamicState3ColorBlendEnable*: VkBool32 + extendedDynamicState3ColorBlendEquation*: VkBool32 + extendedDynamicState3ColorWriteMask*: VkBool32 + extendedDynamicState3RasterizationStream*: VkBool32 + extendedDynamicState3ConservativeRasterizationMode*: VkBool32 + extendedDynamicState3ExtraPrimitiveOverestimationSize*: VkBool32 + extendedDynamicState3DepthClipEnable*: VkBool32 + extendedDynamicState3SampleLocationsEnable*: VkBool32 + extendedDynamicState3ColorBlendAdvanced*: VkBool32 + extendedDynamicState3ProvokingVertexMode*: VkBool32 + extendedDynamicState3LineRasterizationMode*: VkBool32 + extendedDynamicState3LineStippleEnable*: VkBool32 + extendedDynamicState3DepthClipNegativeOneToOne*: VkBool32 + extendedDynamicState3ViewportWScalingEnable*: VkBool32 + extendedDynamicState3ViewportSwizzle*: VkBool32 + extendedDynamicState3CoverageToColorEnable*: VkBool32 + extendedDynamicState3CoverageToColorLocation*: VkBool32 + extendedDynamicState3CoverageModulationMode*: VkBool32 + extendedDynamicState3CoverageModulationTableEnable*: VkBool32 + extendedDynamicState3CoverageModulationTable*: VkBool32 + extendedDynamicState3CoverageReductionMode*: VkBool32 + extendedDynamicState3RepresentativeFragmentTestEnable*: VkBool32 + extendedDynamicState3ShadingRateImageEnable*: VkBool32 + VkPhysicalDeviceExtendedDynamicState3PropertiesEXT* = object + sType*: VkStructureType + pNext*: pointer + dynamicPrimitiveTopologyUnrestricted*: VkBool32 + VkColorBlendEquationEXT* = object + srcColorBlendFactor*: VkBlendFactor + dstColorBlendFactor*: VkBlendFactor + colorBlendOp*: VkBlendOp + srcAlphaBlendFactor*: VkBlendFactor + dstAlphaBlendFactor*: VkBlendFactor + alphaBlendOp*: VkBlendOp + VkColorBlendAdvancedEXT* = object + advancedBlendOp*: VkBlendOp + srcPremultiplied*: VkBool32 + dstPremultiplied*: VkBool32 + blendOverlap*: VkBlendOverlapEXT + clampResults*: VkBool32 + VkRenderPassTransformBeginInfoQCOM* = object + sType*: VkStructureType + pNext*: pointer + transform*: VkSurfaceTransformFlagBitsKHR + VkCopyCommandTransformInfoQCOM* = object + sType*: VkStructureType + pNext*: pointer + transform*: VkSurfaceTransformFlagBitsKHR + VkCommandBufferInheritanceRenderPassTransformInfoQCOM* = object + sType*: VkStructureType + pNext*: pointer + transform*: VkSurfaceTransformFlagBitsKHR + renderArea*: VkRect2D + VkPhysicalDeviceDiagnosticsConfigFeaturesNV* = object + sType*: VkStructureType + pNext*: pointer + diagnosticsConfig*: VkBool32 + VkDeviceDiagnosticsConfigCreateInfoNV* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkDeviceDiagnosticsConfigFlagsNV + VkPipelineOfflineCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + pipelineIdentifier*: array[VK_UUID_SIZE, uint8] + matchControl*: VkPipelineMatchControl + poolEntrySize*: VkDeviceSize + VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures* = object + sType*: VkStructureType + pNext*: pointer + shaderZeroInitializeWorkgroupMemory*: VkBool32 + VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR* = object + VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR* = object + sType*: VkStructureType + pNext*: pointer + shaderSubgroupUniformControlFlow*: VkBool32 + VkPhysicalDeviceRobustness2FeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + robustBufferAccess2*: VkBool32 + robustImageAccess2*: VkBool32 + nullDescriptor*: VkBool32 + VkPhysicalDeviceRobustness2PropertiesEXT* = object + sType*: VkStructureType + pNext*: pointer + robustStorageBufferAccessSizeAlignment*: VkDeviceSize + robustUniformBufferAccessSizeAlignment*: VkDeviceSize + VkPhysicalDeviceImageRobustnessFeatures* = object + sType*: VkStructureType + pNext*: pointer + robustImageAccess*: VkBool32 + VkPhysicalDeviceImageRobustnessFeaturesEXT* = object + VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR* = object + sType*: VkStructureType + pNext*: pointer + workgroupMemoryExplicitLayout*: VkBool32 + workgroupMemoryExplicitLayoutScalarBlockLayout*: VkBool32 + workgroupMemoryExplicitLayout8BitAccess*: VkBool32 + workgroupMemoryExplicitLayout16BitAccess*: VkBool32 + VkPhysicalDevice4444FormatsFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + formatA4R4G4B4*: VkBool32 + formatA4B4G4R4*: VkBool32 + VkPhysicalDeviceSubpassShadingFeaturesHUAWEI* = object + sType*: VkStructureType + pNext*: pointer + subpassShading*: VkBool32 + VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI* = object + sType*: VkStructureType + pNext*: pointer + clustercullingShader*: VkBool32 + multiviewClusterCullingShader*: VkBool32 + VkBufferCopy2* = object + sType*: VkStructureType + pNext*: pointer + srcOffset*: VkDeviceSize + dstOffset*: VkDeviceSize + size*: VkDeviceSize + VkBufferCopy2KHR* = object + VkImageCopy2* = object + sType*: VkStructureType + pNext*: pointer + srcSubresource*: VkImageSubresourceLayers + srcOffset*: VkOffset3D + dstSubresource*: VkImageSubresourceLayers + dstOffset*: VkOffset3D + extent*: VkExtent3D + VkImageCopy2KHR* = object + VkImageBlit2* = object + sType*: VkStructureType + pNext*: pointer + srcSubresource*: VkImageSubresourceLayers + srcOffsets*: array[2, VkOffset3D] + dstSubresource*: VkImageSubresourceLayers + dstOffsets*: array[2, VkOffset3D] + VkImageBlit2KHR* = object + VkBufferImageCopy2* = object + sType*: VkStructureType + pNext*: pointer + bufferOffset*: VkDeviceSize + bufferRowLength*: uint32 + bufferImageHeight*: uint32 + imageSubresource*: VkImageSubresourceLayers + imageOffset*: VkOffset3D + imageExtent*: VkExtent3D + VkBufferImageCopy2KHR* = object + VkImageResolve2* = object + sType*: VkStructureType + pNext*: pointer + srcSubresource*: VkImageSubresourceLayers + srcOffset*: VkOffset3D + dstSubresource*: VkImageSubresourceLayers + dstOffset*: VkOffset3D + extent*: VkExtent3D + VkImageResolve2KHR* = object + VkCopyBufferInfo2* = object + sType*: VkStructureType + pNext*: pointer + srcBuffer*: VkBuffer + dstBuffer*: VkBuffer + regionCount*: uint32 + pRegions*: ptr VkBufferCopy2 + VkCopyBufferInfo2KHR* = object + VkCopyImageInfo2* = object + sType*: VkStructureType + pNext*: pointer + srcImage*: VkImage + srcImageLayout*: VkImageLayout + dstImage*: VkImage + dstImageLayout*: VkImageLayout + regionCount*: uint32 + pRegions*: ptr VkImageCopy2 + VkCopyImageInfo2KHR* = object + VkBlitImageInfo2* = object + sType*: VkStructureType + pNext*: pointer + srcImage*: VkImage + srcImageLayout*: VkImageLayout + dstImage*: VkImage + dstImageLayout*: VkImageLayout + regionCount*: uint32 + pRegions*: ptr VkImageBlit2 + filter*: VkFilter + VkBlitImageInfo2KHR* = object + VkCopyBufferToImageInfo2* = object + sType*: VkStructureType + pNext*: pointer + srcBuffer*: VkBuffer + dstImage*: VkImage + dstImageLayout*: VkImageLayout + regionCount*: uint32 + pRegions*: ptr VkBufferImageCopy2 + VkCopyBufferToImageInfo2KHR* = object + VkCopyImageToBufferInfo2* = object + sType*: VkStructureType + pNext*: pointer + srcImage*: VkImage + srcImageLayout*: VkImageLayout + dstBuffer*: VkBuffer + regionCount*: uint32 + pRegions*: ptr VkBufferImageCopy2 + VkCopyImageToBufferInfo2KHR* = object + VkResolveImageInfo2* = object + sType*: VkStructureType + pNext*: pointer + srcImage*: VkImage + srcImageLayout*: VkImageLayout + dstImage*: VkImage + dstImageLayout*: VkImageLayout + regionCount*: uint32 + pRegions*: ptr VkImageResolve2 + VkResolveImageInfo2KHR* = object + VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + shaderImageInt64Atomics*: VkBool32 + sparseImageInt64Atomics*: VkBool32 + VkFragmentShadingRateAttachmentInfoKHR* = object + sType*: VkStructureType + pNext*: pointer + pFragmentShadingRateAttachment*: ptr VkAttachmentReference2 + shadingRateAttachmentTexelSize*: VkExtent2D + VkPipelineFragmentShadingRateStateCreateInfoKHR* = object + sType*: VkStructureType + pNext*: pointer + fragmentSize*: VkExtent2D + combinerOps*: array[2, VkFragmentShadingRateCombinerOpKHR] + VkPhysicalDeviceFragmentShadingRateFeaturesKHR* = object + sType*: VkStructureType + pNext*: pointer + pipelineFragmentShadingRate*: VkBool32 + primitiveFragmentShadingRate*: VkBool32 + attachmentFragmentShadingRate*: VkBool32 + VkPhysicalDeviceFragmentShadingRatePropertiesKHR* = object + sType*: VkStructureType + pNext*: pointer + minFragmentShadingRateAttachmentTexelSize*: VkExtent2D + maxFragmentShadingRateAttachmentTexelSize*: VkExtent2D + maxFragmentShadingRateAttachmentTexelSizeAspectRatio*: uint32 + primitiveFragmentShadingRateWithMultipleViewports*: VkBool32 + layeredShadingRateAttachments*: VkBool32 + fragmentShadingRateNonTrivialCombinerOps*: VkBool32 + maxFragmentSize*: VkExtent2D + maxFragmentSizeAspectRatio*: uint32 + maxFragmentShadingRateCoverageSamples*: uint32 + maxFragmentShadingRateRasterizationSamples*: VkSampleCountFlagBits + fragmentShadingRateWithShaderDepthStencilWrites*: VkBool32 + fragmentShadingRateWithSampleMask*: VkBool32 + fragmentShadingRateWithShaderSampleMask*: VkBool32 + fragmentShadingRateWithConservativeRasterization*: VkBool32 + fragmentShadingRateWithFragmentShaderInterlock*: VkBool32 + fragmentShadingRateWithCustomSampleLocations*: VkBool32 + fragmentShadingRateStrictMultiplyCombiner*: VkBool32 + VkPhysicalDeviceFragmentShadingRateKHR* = object + sType*: VkStructureType + pNext*: pointer + sampleCounts*: VkSampleCountFlags + fragmentSize*: VkExtent2D + VkPhysicalDeviceShaderTerminateInvocationFeatures* = object + sType*: VkStructureType + pNext*: pointer + shaderTerminateInvocation*: VkBool32 + VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR* = object + VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV* = object + sType*: VkStructureType + pNext*: pointer + fragmentShadingRateEnums*: VkBool32 + supersampleFragmentShadingRates*: VkBool32 + noInvocationFragmentShadingRates*: VkBool32 + VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV* = object + sType*: VkStructureType + pNext*: pointer + maxFragmentShadingRateInvocationCount*: VkSampleCountFlagBits + VkPipelineFragmentShadingRateEnumStateCreateInfoNV* = object + sType*: VkStructureType + pNext*: pointer + shadingRateType*: VkFragmentShadingRateTypeNV + shadingRate*: VkFragmentShadingRateNV + combinerOps*: array[2, VkFragmentShadingRateCombinerOpKHR] + VkAccelerationStructureBuildSizesInfoKHR* = object + sType*: VkStructureType + pNext*: pointer + accelerationStructureSize*: VkDeviceSize + updateScratchSize*: VkDeviceSize + buildScratchSize*: VkDeviceSize + VkPhysicalDeviceImage2DViewOf3DFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + image2DViewOf3D*: VkBool32 + sampler2DViewOf3D*: VkBool32 + VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + imageSlicedViewOf3D*: VkBool32 + VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + mutableDescriptorType*: VkBool32 + VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE* = object + VkMutableDescriptorTypeListEXT* = object + descriptorTypeCount*: uint32 + pDescriptorTypes*: ptr VkDescriptorType + VkMutableDescriptorTypeListVALVE* = object + VkMutableDescriptorTypeCreateInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + mutableDescriptorTypeListCount*: uint32 + pMutableDescriptorTypeLists*: ptr VkMutableDescriptorTypeListEXT + VkMutableDescriptorTypeCreateInfoVALVE* = object + VkPhysicalDeviceDepthClipControlFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + depthClipControl*: VkBool32 + VkPipelineViewportDepthClipControlCreateInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + negativeOneToOne*: VkBool32 + VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + vertexInputDynamicState*: VkBool32 + VkPhysicalDeviceExternalMemoryRDMAFeaturesNV* = object + sType*: VkStructureType + pNext*: pointer + externalMemoryRDMA*: VkBool32 + VkVertexInputBindingDescription2EXT* = object + sType*: VkStructureType + pNext*: pointer + binding*: uint32 + stride*: uint32 + inputRate*: VkVertexInputRate + divisor*: uint32 + VkVertexInputAttributeDescription2EXT* = object + sType*: VkStructureType + pNext*: pointer + location*: uint32 + binding*: uint32 + format*: VkFormat + offset*: uint32 + VkPhysicalDeviceColorWriteEnableFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + colorWriteEnable*: VkBool32 + VkPipelineColorWriteCreateInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + attachmentCount*: uint32 + pColorWriteEnables*: ptr VkBool32 + VkMemoryBarrier2* = object + sType*: VkStructureType + pNext*: pointer + srcStageMask*: VkPipelineStageFlags2 + srcAccessMask*: VkAccessFlags2 + dstStageMask*: VkPipelineStageFlags2 + dstAccessMask*: VkAccessFlags2 + VkMemoryBarrier2KHR* = object + VkImageMemoryBarrier2* = object + sType*: VkStructureType + pNext*: pointer + srcStageMask*: VkPipelineStageFlags2 + srcAccessMask*: VkAccessFlags2 + dstStageMask*: VkPipelineStageFlags2 + dstAccessMask*: VkAccessFlags2 + oldLayout*: VkImageLayout + newLayout*: VkImageLayout + srcQueueFamilyIndex*: uint32 + dstQueueFamilyIndex*: uint32 + image*: VkImage + subresourceRange*: VkImageSubresourceRange + VkImageMemoryBarrier2KHR* = object + VkBufferMemoryBarrier2* = object + sType*: VkStructureType + pNext*: pointer + srcStageMask*: VkPipelineStageFlags2 + srcAccessMask*: VkAccessFlags2 + dstStageMask*: VkPipelineStageFlags2 + dstAccessMask*: VkAccessFlags2 + srcQueueFamilyIndex*: uint32 + dstQueueFamilyIndex*: uint32 + buffer*: VkBuffer + offset*: VkDeviceSize + size*: VkDeviceSize + VkBufferMemoryBarrier2KHR* = object + VkDependencyInfo* = object + sType*: VkStructureType + pNext*: pointer + dependencyFlags*: VkDependencyFlags + memoryBarrierCount*: uint32 + pMemoryBarriers*: ptr VkMemoryBarrier2 + bufferMemoryBarrierCount*: uint32 + pBufferMemoryBarriers*: ptr VkBufferMemoryBarrier2 + imageMemoryBarrierCount*: uint32 + pImageMemoryBarriers*: ptr VkImageMemoryBarrier2 + VkDependencyInfoKHR* = object + VkSemaphoreSubmitInfo* = object + sType*: VkStructureType + pNext*: pointer + semaphore*: VkSemaphore + value*: uint64 + stageMask*: VkPipelineStageFlags2 + deviceIndex*: uint32 + VkSemaphoreSubmitInfoKHR* = object + VkCommandBufferSubmitInfo* = object + sType*: VkStructureType + pNext*: pointer + commandBuffer*: VkCommandBuffer + deviceMask*: uint32 + VkCommandBufferSubmitInfoKHR* = object + VkSubmitInfo2* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkSubmitFlags + waitSemaphoreInfoCount*: uint32 + pWaitSemaphoreInfos*: ptr VkSemaphoreSubmitInfo + commandBufferInfoCount*: uint32 + pCommandBufferInfos*: ptr VkCommandBufferSubmitInfo + signalSemaphoreInfoCount*: uint32 + pSignalSemaphoreInfos*: ptr VkSemaphoreSubmitInfo + VkSubmitInfo2KHR* = object + VkQueueFamilyCheckpointProperties2NV* = object + sType*: VkStructureType + pNext*: pointer + checkpointExecutionStageMask*: VkPipelineStageFlags2 + VkCheckpointData2NV* = object + sType*: VkStructureType + pNext*: pointer + stage*: VkPipelineStageFlags2 + pCheckpointMarker*: pointer + VkPhysicalDeviceSynchronization2Features* = object + sType*: VkStructureType + pNext*: pointer + synchronization2*: VkBool32 + VkPhysicalDeviceSynchronization2FeaturesKHR* = object + VkPhysicalDeviceVulkanSC10Properties* = object + sType*: VkStructureType + pNext*: pointer + deviceNoDynamicHostAllocations*: VkBool32 + deviceDestroyFreesMemory*: VkBool32 + commandPoolMultipleCommandBuffersRecording*: VkBool32 + commandPoolResetCommandBuffer*: VkBool32 + commandBufferSimultaneousUse*: VkBool32 + secondaryCommandBufferNullOrImagelessFramebuffer*: VkBool32 + recycleDescriptorSetMemory*: VkBool32 + recyclePipelineMemory*: VkBool32 + maxRenderPassSubpasses*: uint32 + maxRenderPassDependencies*: uint32 + maxSubpassInputAttachments*: uint32 + maxSubpassPreserveAttachments*: uint32 + maxFramebufferAttachments*: uint32 + maxDescriptorSetLayoutBindings*: uint32 + maxQueryFaultCount*: uint32 + maxCallbackFaultCount*: uint32 + maxCommandPoolCommandBuffers*: uint32 + maxCommandBufferSize*: VkDeviceSize + VkPipelinePoolSize* = object + sType*: VkStructureType + pNext*: pointer + poolEntrySize*: VkDeviceSize + poolEntryCount*: uint32 + VkDeviceObjectReservationCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + pipelineCacheCreateInfoCount*: uint32 + pPipelineCacheCreateInfos*: ptr VkPipelineCacheCreateInfo + pipelinePoolSizeCount*: uint32 + pPipelinePoolSizes*: ptr VkPipelinePoolSize + semaphoreRequestCount*: uint32 + commandBufferRequestCount*: uint32 + fenceRequestCount*: uint32 + deviceMemoryRequestCount*: uint32 + bufferRequestCount*: uint32 + imageRequestCount*: uint32 + eventRequestCount*: uint32 + queryPoolRequestCount*: uint32 + bufferViewRequestCount*: uint32 + imageViewRequestCount*: uint32 + layeredImageViewRequestCount*: uint32 + pipelineCacheRequestCount*: uint32 + pipelineLayoutRequestCount*: uint32 + renderPassRequestCount*: uint32 + graphicsPipelineRequestCount*: uint32 + computePipelineRequestCount*: uint32 + descriptorSetLayoutRequestCount*: uint32 + samplerRequestCount*: uint32 + descriptorPoolRequestCount*: uint32 + descriptorSetRequestCount*: uint32 + framebufferRequestCount*: uint32 + commandPoolRequestCount*: uint32 + samplerYcbcrConversionRequestCount*: uint32 + surfaceRequestCount*: uint32 + swapchainRequestCount*: uint32 + displayModeRequestCount*: uint32 + subpassDescriptionRequestCount*: uint32 + attachmentDescriptionRequestCount*: uint32 + descriptorSetLayoutBindingRequestCount*: uint32 + descriptorSetLayoutBindingLimit*: uint32 + maxImageViewMipLevels*: uint32 + maxImageViewArrayLayers*: uint32 + maxLayeredImageViewMipLevels*: uint32 + maxOcclusionQueriesPerPool*: uint32 + maxPipelineStatisticsQueriesPerPool*: uint32 + maxTimestampQueriesPerPool*: uint32 + maxImmutableSamplersPerDescriptorSetLayout*: uint32 + VkCommandPoolMemoryReservationCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + commandPoolReservedSize*: VkDeviceSize + commandPoolMaxCommandBuffers*: uint32 + VkCommandPoolMemoryConsumption* = object + sType*: VkStructureType + pNext*: pointer + commandPoolAllocated*: VkDeviceSize + commandPoolReservedSize*: VkDeviceSize + commandBufferAllocated*: VkDeviceSize + VkPhysicalDeviceVulkanSC10Features* = object + sType*: VkStructureType + pNext*: pointer + shaderAtomicInstructions*: VkBool32 + VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + primitivesGeneratedQuery*: VkBool32 + primitivesGeneratedQueryWithRasterizerDiscard*: VkBool32 + primitivesGeneratedQueryWithNonZeroStreams*: VkBool32 + VkPhysicalDeviceLegacyDitheringFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + legacyDithering*: VkBool32 + VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + multisampledRenderToSingleSampled*: VkBool32 + VkSubpassResolvePerformanceQueryEXT* = object + sType*: VkStructureType + pNext*: pointer + optimal*: VkBool32 + VkMultisampledRenderToSingleSampledInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + multisampledRenderToSingleSampledEnable*: VkBool32 + rasterizationSamples*: VkSampleCountFlagBits + VkPhysicalDevicePipelineProtectedAccessFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + pipelineProtectedAccess*: VkBool32 + VkPhysicalDeviceInheritedViewportScissorFeaturesNV* = object + sType*: VkStructureType + pNext*: pointer + inheritedViewportScissor2D*: VkBool32 + VkCommandBufferInheritanceViewportScissorInfoNV* = object + sType*: VkStructureType + pNext*: pointer + viewportScissor2D*: VkBool32 + viewportDepthCount*: uint32 + pViewportDepths*: ptr VkViewport + VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + ycbcr2plane444Formats*: VkBool32 + VkPhysicalDeviceProvokingVertexFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + provokingVertexLast*: VkBool32 + transformFeedbackPreservesProvokingVertex*: VkBool32 + VkPhysicalDeviceProvokingVertexPropertiesEXT* = object + sType*: VkStructureType + pNext*: pointer + provokingVertexModePerPipeline*: VkBool32 + transformFeedbackPreservesTriangleFanProvokingVertex*: VkBool32 + VkPipelineRasterizationProvokingVertexStateCreateInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + provokingVertexMode*: VkProvokingVertexModeEXT + VkCuModuleCreateInfoNVX* = object + sType*: VkStructureType + pNext*: pointer + dataSize*: csize_t + pData*: pointer + VkCuFunctionCreateInfoNVX* = object + sType*: VkStructureType + pNext*: pointer + module*: VkCuModuleNVX + pName*: cstring + VkCuLaunchInfoNVX* = object + sType*: VkStructureType + pNext*: pointer + function*: VkCuFunctionNVX + gridDimX*: uint32 + gridDimY*: uint32 + gridDimZ*: uint32 + blockDimX*: uint32 + blockDimY*: uint32 + blockDimZ*: uint32 + sharedMemBytes*: uint32 + paramCount*: csize_t + pParams*: ptr pointer + extraCount*: csize_t + pExtras*: ptr pointer + VkPhysicalDeviceDescriptorBufferFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + descriptorBuffer*: VkBool32 + descriptorBufferCaptureReplay*: VkBool32 + descriptorBufferImageLayoutIgnored*: VkBool32 + descriptorBufferPushDescriptors*: VkBool32 + VkPhysicalDeviceDescriptorBufferPropertiesEXT* = object + sType*: VkStructureType + pNext*: pointer + combinedImageSamplerDescriptorSingleArray*: VkBool32 + bufferlessPushDescriptors*: VkBool32 + allowSamplerImageViewPostSubmitCreation*: VkBool32 + descriptorBufferOffsetAlignment*: VkDeviceSize + maxDescriptorBufferBindings*: uint32 + maxResourceDescriptorBufferBindings*: uint32 + maxSamplerDescriptorBufferBindings*: uint32 + maxEmbeddedImmutableSamplerBindings*: uint32 + maxEmbeddedImmutableSamplers*: uint32 + bufferCaptureReplayDescriptorDataSize*: csize_t + imageCaptureReplayDescriptorDataSize*: csize_t + imageViewCaptureReplayDescriptorDataSize*: csize_t + samplerCaptureReplayDescriptorDataSize*: csize_t + accelerationStructureCaptureReplayDescriptorDataSize*: csize_t + samplerDescriptorSize*: csize_t + combinedImageSamplerDescriptorSize*: csize_t + sampledImageDescriptorSize*: csize_t + storageImageDescriptorSize*: csize_t + uniformTexelBufferDescriptorSize*: csize_t + robustUniformTexelBufferDescriptorSize*: csize_t + storageTexelBufferDescriptorSize*: csize_t + robustStorageTexelBufferDescriptorSize*: csize_t + uniformBufferDescriptorSize*: csize_t + robustUniformBufferDescriptorSize*: csize_t + storageBufferDescriptorSize*: csize_t + robustStorageBufferDescriptorSize*: csize_t + inputAttachmentDescriptorSize*: csize_t + accelerationStructureDescriptorSize*: csize_t + maxSamplerDescriptorBufferRange*: VkDeviceSize + maxResourceDescriptorBufferRange*: VkDeviceSize + samplerDescriptorBufferAddressSpaceSize*: VkDeviceSize + resourceDescriptorBufferAddressSpaceSize*: VkDeviceSize + descriptorBufferAddressSpaceSize*: VkDeviceSize + VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT* = object + sType*: VkStructureType + pNext*: pointer + combinedImageSamplerDensityMapDescriptorSize*: csize_t + VkDescriptorAddressInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + address*: VkDeviceAddress + range*: VkDeviceSize + format*: VkFormat + VkDescriptorBufferBindingInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + address*: VkDeviceAddress + usage*: VkBufferUsageFlags + VkDescriptorBufferBindingPushDescriptorBufferHandleEXT* = object + sType*: VkStructureType + pNext*: pointer + buffer*: VkBuffer + VkDescriptorDataEXT* {.union.} = object + pSampler*: ptr VkSampler + pCombinedImageSampler*: ptr VkDescriptorImageInfo + pInputAttachmentImage*: ptr VkDescriptorImageInfo + pSampledImage*: ptr VkDescriptorImageInfo + pStorageImage*: ptr VkDescriptorImageInfo + pUniformTexelBuffer*: ptr VkDescriptorAddressInfoEXT + pStorageTexelBuffer*: ptr VkDescriptorAddressInfoEXT + pUniformBuffer*: ptr VkDescriptorAddressInfoEXT + pStorageBuffer*: ptr VkDescriptorAddressInfoEXT + accelerationStructure*: VkDeviceAddress + VkDescriptorGetInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + thetype*: VkDescriptorType + data*: VkDescriptorDataEXT + VkBufferCaptureDescriptorDataInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + buffer*: VkBuffer + VkImageCaptureDescriptorDataInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + image*: VkImage + VkImageViewCaptureDescriptorDataInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + imageView*: VkImageView + VkSamplerCaptureDescriptorDataInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + sampler*: VkSampler + VkAccelerationStructureCaptureDescriptorDataInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + accelerationStructure*: VkAccelerationStructureKHR + accelerationStructureNV*: VkAccelerationStructureNV + VkOpaqueCaptureDescriptorDataCreateInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + opaqueCaptureDescriptorData*: pointer + VkPhysicalDeviceShaderIntegerDotProductFeatures* = object + sType*: VkStructureType + pNext*: pointer + shaderIntegerDotProduct*: VkBool32 + VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR* = object + VkPhysicalDeviceShaderIntegerDotProductProperties* = object + sType*: VkStructureType + pNext*: pointer + integerDotProduct8BitUnsignedAccelerated*: VkBool32 + integerDotProduct8BitSignedAccelerated*: VkBool32 + integerDotProduct8BitMixedSignednessAccelerated*: VkBool32 + integerDotProduct4x8BitPackedUnsignedAccelerated*: VkBool32 + integerDotProduct4x8BitPackedSignedAccelerated*: VkBool32 + integerDotProduct4x8BitPackedMixedSignednessAccelerated*: VkBool32 + integerDotProduct16BitUnsignedAccelerated*: VkBool32 + integerDotProduct16BitSignedAccelerated*: VkBool32 + integerDotProduct16BitMixedSignednessAccelerated*: VkBool32 + integerDotProduct32BitUnsignedAccelerated*: VkBool32 + integerDotProduct32BitSignedAccelerated*: VkBool32 + integerDotProduct32BitMixedSignednessAccelerated*: VkBool32 + integerDotProduct64BitUnsignedAccelerated*: VkBool32 + integerDotProduct64BitSignedAccelerated*: VkBool32 + integerDotProduct64BitMixedSignednessAccelerated*: VkBool32 + integerDotProductAccumulatingSaturating8BitUnsignedAccelerated*: VkBool32 + integerDotProductAccumulatingSaturating8BitSignedAccelerated*: VkBool32 + integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated*: VkBool32 + integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated*: VkBool32 + integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated*: VkBool32 + integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated*: VkBool32 + integerDotProductAccumulatingSaturating16BitUnsignedAccelerated*: VkBool32 + integerDotProductAccumulatingSaturating16BitSignedAccelerated*: VkBool32 + integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated*: VkBool32 + integerDotProductAccumulatingSaturating32BitUnsignedAccelerated*: VkBool32 + integerDotProductAccumulatingSaturating32BitSignedAccelerated*: VkBool32 + integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated*: VkBool32 + integerDotProductAccumulatingSaturating64BitUnsignedAccelerated*: VkBool32 + integerDotProductAccumulatingSaturating64BitSignedAccelerated*: VkBool32 + integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated*: VkBool32 + VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR* = object + VkPhysicalDeviceDrmPropertiesEXT* = object + sType*: VkStructureType + pNext*: pointer + hasPrimary*: VkBool32 + hasRender*: VkBool32 + primaryMajor*: int64 + primaryMinor*: int64 + renderMajor*: int64 + renderMinor*: int64 + VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR* = object + sType*: VkStructureType + pNext*: pointer + fragmentShaderBarycentric*: VkBool32 + VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR* = object + sType*: VkStructureType + pNext*: pointer + triStripVertexOrderIndependentOfProvokingVertex*: VkBool32 + VkPhysicalDeviceRayTracingMotionBlurFeaturesNV* = object + sType*: VkStructureType + pNext*: pointer + rayTracingMotionBlur*: VkBool32 + rayTracingMotionBlurPipelineTraceRaysIndirect*: VkBool32 + VkAccelerationStructureGeometryMotionTrianglesDataNV* = object + sType*: VkStructureType + pNext*: pointer + vertexData*: VkDeviceOrHostAddressConstKHR + VkAccelerationStructureMotionInfoNV* = object + sType*: VkStructureType + pNext*: pointer + maxInstances*: uint32 + flags*: VkAccelerationStructureMotionInfoFlagsNV + VkSRTDataNV* = object + sx*: float32 + a*: float32 + b*: float32 + pvx*: float32 + sy*: float32 + c*: float32 + pvy*: float32 + sz*: float32 + pvz*: float32 + qx*: float32 + qy*: float32 + qz*: float32 + qw*: float32 + tx*: float32 + ty*: float32 + tz*: float32 + VkAccelerationStructureSRTMotionInstanceNV* = object + transformT0*: VkSRTDataNV + transformT1*: VkSRTDataNV + instanceCustomIndex*: uint32 + mask*: uint32 + instanceShaderBindingTableRecordOffset*: uint32 + flags*: VkGeometryInstanceFlagsKHR + accelerationStructureReference*: uint64 + VkAccelerationStructureMatrixMotionInstanceNV* = object + transformT0*: VkTransformMatrixKHR + transformT1*: VkTransformMatrixKHR + instanceCustomIndex*: uint32 + mask*: uint32 + instanceShaderBindingTableRecordOffset*: uint32 + flags*: VkGeometryInstanceFlagsKHR + accelerationStructureReference*: uint64 + VkAccelerationStructureMotionInstanceDataNV* {.union.} = object + staticInstance*: VkAccelerationStructureInstanceKHR + matrixMotionInstance*: VkAccelerationStructureMatrixMotionInstanceNV + srtMotionInstance*: VkAccelerationStructureSRTMotionInstanceNV + VkAccelerationStructureMotionInstanceNV* = object + thetype*: VkAccelerationStructureMotionInstanceTypeNV + flags*: VkAccelerationStructureMotionInstanceFlagsNV + data*: VkAccelerationStructureMotionInstanceDataNV + VkMemoryGetRemoteAddressInfoNV* = object + sType*: VkStructureType + pNext*: pointer + memory*: VkDeviceMemory + handleType*: VkExternalMemoryHandleTypeFlagBits + VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + formatRgba10x6WithoutYCbCrSampler*: VkBool32 + VkFormatProperties3* = object + sType*: VkStructureType + pNext*: pointer + linearTilingFeatures*: VkFormatFeatureFlags2 + optimalTilingFeatures*: VkFormatFeatureFlags2 + bufferFeatures*: VkFormatFeatureFlags2 + VkFormatProperties3KHR* = object + VkDrmFormatModifierPropertiesList2EXT* = object + sType*: VkStructureType + pNext*: pointer + drmFormatModifierCount*: uint32 + pDrmFormatModifierProperties*: ptr VkDrmFormatModifierProperties2EXT + VkDrmFormatModifierProperties2EXT* = object + drmFormatModifier*: uint64 + drmFormatModifierPlaneCount*: uint32 + drmFormatModifierTilingFeatures*: VkFormatFeatureFlags2 + VkPipelineRenderingCreateInfo* = object + sType*: VkStructureType + pNext*: pointer + viewMask*: uint32 + colorAttachmentCount*: uint32 + pColorAttachmentFormats*: ptr VkFormat + depthAttachmentFormat*: VkFormat + stencilAttachmentFormat*: VkFormat + VkPipelineRenderingCreateInfoKHR* = object + VkRenderingInfo* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkRenderingFlags + renderArea*: VkRect2D + layerCount*: uint32 + viewMask*: uint32 + colorAttachmentCount*: uint32 + pColorAttachments*: ptr VkRenderingAttachmentInfo + pDepthAttachment*: ptr VkRenderingAttachmentInfo + pStencilAttachment*: ptr VkRenderingAttachmentInfo + VkRenderingInfoKHR* = object + VkRenderingAttachmentInfo* = object + sType*: VkStructureType + pNext*: pointer + imageView*: VkImageView + imageLayout*: VkImageLayout + resolveMode*: VkResolveModeFlagBits + resolveImageView*: VkImageView + resolveImageLayout*: VkImageLayout + loadOp*: VkAttachmentLoadOp + storeOp*: VkAttachmentStoreOp + clearValue*: VkClearValue + VkRenderingAttachmentInfoKHR* = object + VkRenderingFragmentShadingRateAttachmentInfoKHR* = object + sType*: VkStructureType + pNext*: pointer + imageView*: VkImageView + imageLayout*: VkImageLayout + shadingRateAttachmentTexelSize*: VkExtent2D + VkRenderingFragmentDensityMapAttachmentInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + imageView*: VkImageView + imageLayout*: VkImageLayout + VkPhysicalDeviceDynamicRenderingFeatures* = object + sType*: VkStructureType + pNext*: pointer + dynamicRendering*: VkBool32 + VkPhysicalDeviceDynamicRenderingFeaturesKHR* = object + VkCommandBufferInheritanceRenderingInfo* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkRenderingFlags + viewMask*: uint32 + colorAttachmentCount*: uint32 + pColorAttachmentFormats*: ptr VkFormat + depthAttachmentFormat*: VkFormat + stencilAttachmentFormat*: VkFormat + rasterizationSamples*: VkSampleCountFlagBits + VkCommandBufferInheritanceRenderingInfoKHR* = object + VkAttachmentSampleCountInfoAMD* = object + sType*: VkStructureType + pNext*: pointer + colorAttachmentCount*: uint32 + pColorAttachmentSamples*: ptr VkSampleCountFlagBits + depthStencilAttachmentSamples*: VkSampleCountFlagBits + VkAttachmentSampleCountInfoNV* = object + VkMultiviewPerViewAttributesInfoNVX* = object + sType*: VkStructureType + pNext*: pointer + perViewAttributes*: VkBool32 + perViewAttributesPositionXOnly*: VkBool32 + VkPhysicalDeviceImageViewMinLodFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + minLod*: VkBool32 + VkImageViewMinLodCreateInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + minLod*: float32 + VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + rasterizationOrderColorAttachmentAccess*: VkBool32 + rasterizationOrderDepthAttachmentAccess*: VkBool32 + rasterizationOrderStencilAttachmentAccess*: VkBool32 + VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM* = object + VkPhysicalDeviceLinearColorAttachmentFeaturesNV* = object + sType*: VkStructureType + pNext*: pointer + linearColorAttachment*: VkBool32 + VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + graphicsPipelineLibrary*: VkBool32 + VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT* = object + sType*: VkStructureType + pNext*: pointer + graphicsPipelineLibraryFastLinking*: VkBool32 + graphicsPipelineLibraryIndependentInterpolationDecoration*: VkBool32 + VkGraphicsPipelineLibraryCreateInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkGraphicsPipelineLibraryFlagsEXT + VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE* = object + sType*: VkStructureType + pNext*: pointer + descriptorSetHostMapping*: VkBool32 + VkDescriptorSetBindingReferenceVALVE* = object + sType*: VkStructureType + pNext*: pointer + descriptorSetLayout*: VkDescriptorSetLayout + binding*: uint32 + VkDescriptorSetLayoutHostMappingInfoVALVE* = object + sType*: VkStructureType + pNext*: pointer + descriptorOffset*: csize_t + descriptorSize*: uint32 + VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + shaderModuleIdentifier*: VkBool32 + VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT* = object + sType*: VkStructureType + pNext*: pointer + shaderModuleIdentifierAlgorithmUUID*: array[VK_UUID_SIZE, uint8] + VkPipelineShaderStageModuleIdentifierCreateInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + identifierSize*: uint32 + pIdentifier*: ptr uint8 + VkShaderModuleIdentifierEXT* = object + sType*: VkStructureType + pNext*: pointer + identifierSize*: uint32 + identifier*: array[VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT, uint8] + VkImageCompressionControlEXT* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkImageCompressionFlagsEXT + compressionControlPlaneCount*: uint32 + pFixedRateFlags*: ptr VkImageCompressionFixedRateFlagsEXT + VkPhysicalDeviceImageCompressionControlFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + imageCompressionControl*: VkBool32 + VkImageCompressionPropertiesEXT* = object + sType*: VkStructureType + pNext*: pointer + imageCompressionFlags*: VkImageCompressionFlagsEXT + imageCompressionFixedRateFlags*: VkImageCompressionFixedRateFlagsEXT + VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + imageCompressionControlSwapchain*: VkBool32 + VkImageSubresource2EXT* = object + sType*: VkStructureType + pNext*: pointer + imageSubresource*: VkImageSubresource + VkSubresourceLayout2EXT* = object + sType*: VkStructureType + pNext*: pointer + subresourceLayout*: VkSubresourceLayout + VkRenderPassCreationControlEXT* = object + sType*: VkStructureType + pNext*: pointer + disallowMerging*: VkBool32 + VkRenderPassCreationFeedbackInfoEXT* = object + postMergeSubpassCount*: uint32 + VkRenderPassCreationFeedbackCreateInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + pRenderPassFeedback*: ptr VkRenderPassCreationFeedbackInfoEXT + VkRenderPassSubpassFeedbackInfoEXT* = object + subpassMergeStatus*: VkSubpassMergeStatusEXT + description*: array[VK_MAX_DESCRIPTION_SIZE, char] + postMergeIndex*: uint32 + VkRenderPassSubpassFeedbackCreateInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + pSubpassFeedback*: ptr VkRenderPassSubpassFeedbackInfoEXT + VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + subpassMergeFeedback*: VkBool32 + VkMicromapBuildInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + thetype*: VkMicromapTypeEXT + flags*: VkBuildMicromapFlagsEXT + mode*: VkBuildMicromapModeEXT + dstMicromap*: VkMicromapEXT + usageCountsCount*: uint32 + pUsageCounts*: ptr VkMicromapUsageEXT + ppUsageCounts*: ptr ptr VkMicromapUsageEXT + data*: VkDeviceOrHostAddressConstKHR + scratchData*: VkDeviceOrHostAddressKHR + triangleArray*: VkDeviceOrHostAddressConstKHR + triangleArrayStride*: VkDeviceSize + VkMicromapCreateInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + createFlags*: VkMicromapCreateFlagsEXT + buffer*: VkBuffer + offset*: VkDeviceSize + size*: VkDeviceSize + thetype*: VkMicromapTypeEXT + deviceAddress*: VkDeviceAddress + VkMicromapVersionInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + pVersionData*: ptr uint8 + VkCopyMicromapInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + src*: VkMicromapEXT + dst*: VkMicromapEXT + mode*: VkCopyMicromapModeEXT + VkCopyMicromapToMemoryInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + src*: VkMicromapEXT + dst*: VkDeviceOrHostAddressKHR + mode*: VkCopyMicromapModeEXT + VkCopyMemoryToMicromapInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + src*: VkDeviceOrHostAddressConstKHR + dst*: VkMicromapEXT + mode*: VkCopyMicromapModeEXT + VkMicromapBuildSizesInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + micromapSize*: VkDeviceSize + buildScratchSize*: VkDeviceSize + discardable*: VkBool32 + VkMicromapUsageEXT* = object + count*: uint32 + subdivisionLevel*: uint32 + format*: uint32 + VkMicromapTriangleEXT* = object + dataOffset*: uint32 + subdivisionLevel*: uint16 + format*: uint16 + VkPhysicalDeviceOpacityMicromapFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + micromap*: VkBool32 + micromapCaptureReplay*: VkBool32 + micromapHostCommands*: VkBool32 + VkPhysicalDeviceOpacityMicromapPropertiesEXT* = object + sType*: VkStructureType + pNext*: pointer + maxOpacity2StateSubdivisionLevel*: uint32 + maxOpacity4StateSubdivisionLevel*: uint32 + VkAccelerationStructureTrianglesOpacityMicromapEXT* = object + sType*: VkStructureType + pNext*: pointer + indexType*: VkIndexType + indexBuffer*: VkDeviceOrHostAddressConstKHR + indexStride*: VkDeviceSize + baseTriangle*: uint32 + usageCountsCount*: uint32 + pUsageCounts*: ptr VkMicromapUsageEXT + ppUsageCounts*: ptr ptr VkMicromapUsageEXT + micromap*: VkMicromapEXT + VkPipelinePropertiesIdentifierEXT* = object + sType*: VkStructureType + pNext*: pointer + pipelineIdentifier*: array[VK_UUID_SIZE, uint8] + VkPhysicalDevicePipelinePropertiesFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + pipelinePropertiesIdentifier*: VkBool32 + VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD* = object + sType*: VkStructureType + pNext*: pointer + shaderEarlyAndLateFragmentTests*: VkBool32 + VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + nonSeamlessCubeMap*: VkBool32 + VkPhysicalDevicePipelineRobustnessFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + pipelineRobustness*: VkBool32 + VkPipelineRobustnessCreateInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + storageBuffers*: VkPipelineRobustnessBufferBehaviorEXT + uniformBuffers*: VkPipelineRobustnessBufferBehaviorEXT + vertexInputs*: VkPipelineRobustnessBufferBehaviorEXT + images*: VkPipelineRobustnessImageBehaviorEXT + VkPhysicalDevicePipelineRobustnessPropertiesEXT* = object + sType*: VkStructureType + pNext*: pointer + defaultRobustnessStorageBuffers*: VkPipelineRobustnessBufferBehaviorEXT + defaultRobustnessUniformBuffers*: VkPipelineRobustnessBufferBehaviorEXT + defaultRobustnessVertexInputs*: VkPipelineRobustnessBufferBehaviorEXT + defaultRobustnessImages*: VkPipelineRobustnessImageBehaviorEXT + VkImageViewSampleWeightCreateInfoQCOM* = object + sType*: VkStructureType + pNext*: pointer + filterCenter*: VkOffset2D + filterSize*: VkExtent2D + numPhases*: uint32 + VkPhysicalDeviceImageProcessingFeaturesQCOM* = object + sType*: VkStructureType + pNext*: pointer + textureSampleWeighted*: VkBool32 + textureBoxFilter*: VkBool32 + textureBlockMatch*: VkBool32 + VkPhysicalDeviceImageProcessingPropertiesQCOM* = object + sType*: VkStructureType + pNext*: pointer + maxWeightFilterPhases*: uint32 + maxWeightFilterDimension*: VkExtent2D + maxBlockMatchRegion*: VkExtent2D + maxBoxFilterBlockSize*: VkExtent2D + VkPhysicalDeviceTilePropertiesFeaturesQCOM* = object + sType*: VkStructureType + pNext*: pointer + tileProperties*: VkBool32 + VkTilePropertiesQCOM* = object + sType*: VkStructureType + pNext*: pointer + tileSize*: VkExtent3D + apronSize*: VkExtent2D + origin*: VkOffset2D + VkPhysicalDeviceAmigoProfilingFeaturesSEC* = object + sType*: VkStructureType + pNext*: pointer + amigoProfiling*: VkBool32 + VkAmigoProfilingSubmitInfoSEC* = object + sType*: VkStructureType + pNext*: pointer + firstDrawTimestamp*: uint64 + swapBufferTimestamp*: uint64 + VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + attachmentFeedbackLoopLayout*: VkBool32 + VkPhysicalDeviceDepthClampZeroOneFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + depthClampZeroOne*: VkBool32 + VkPhysicalDeviceAddressBindingReportFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + reportAddressBinding*: VkBool32 + VkDeviceAddressBindingCallbackDataEXT* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkDeviceAddressBindingFlagsEXT + baseAddress*: VkDeviceAddress + size*: VkDeviceSize + bindingType*: VkDeviceAddressBindingTypeEXT + VkPhysicalDeviceOpticalFlowFeaturesNV* = object + sType*: VkStructureType + pNext*: pointer + opticalFlow*: VkBool32 + VkPhysicalDeviceOpticalFlowPropertiesNV* = object + sType*: VkStructureType + pNext*: pointer + supportedOutputGridSizes*: VkOpticalFlowGridSizeFlagsNV + supportedHintGridSizes*: VkOpticalFlowGridSizeFlagsNV + hintSupported*: VkBool32 + costSupported*: VkBool32 + bidirectionalFlowSupported*: VkBool32 + globalFlowSupported*: VkBool32 + minWidth*: uint32 + minHeight*: uint32 + maxWidth*: uint32 + maxHeight*: uint32 + maxNumRegionsOfInterest*: uint32 + VkOpticalFlowImageFormatInfoNV* = object + sType*: VkStructureType + pNext*: pointer + usage*: VkOpticalFlowUsageFlagsNV + VkOpticalFlowImageFormatPropertiesNV* = object + sType*: VkStructureType + pNext*: pointer + format*: VkFormat + VkOpticalFlowSessionCreateInfoNV* = object + sType*: VkStructureType + pNext*: pointer + width*: uint32 + height*: uint32 + imageFormat*: VkFormat + flowVectorFormat*: VkFormat + costFormat*: VkFormat + outputGridSize*: VkOpticalFlowGridSizeFlagsNV + hintGridSize*: VkOpticalFlowGridSizeFlagsNV + performanceLevel*: VkOpticalFlowPerformanceLevelNV + flags*: VkOpticalFlowSessionCreateFlagsNV + VkOpticalFlowSessionCreatePrivateDataInfoNV* = object + sType*: VkStructureType + pNext*: pointer + id*: uint32 + size*: uint32 + pPrivateData*: pointer + VkOpticalFlowExecuteInfoNV* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkOpticalFlowExecuteFlagsNV + regionCount*: uint32 + pRegions*: ptr VkRect2D + VkPhysicalDeviceFaultFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + deviceFault*: VkBool32 + deviceFaultVendorBinary*: VkBool32 + VkDeviceFaultAddressInfoEXT* = object + addressType*: VkDeviceFaultAddressTypeEXT + reportedAddress*: VkDeviceAddress + addressPrecision*: VkDeviceSize + VkDeviceFaultVendorInfoEXT* = object + description*: array[VK_MAX_DESCRIPTION_SIZE, char] + vendorFaultCode*: uint64 + vendorFaultData*: uint64 + VkDeviceFaultCountsEXT* = object + sType*: VkStructureType + pNext*: pointer + addressInfoCount*: uint32 + vendorInfoCount*: uint32 + vendorBinarySize*: VkDeviceSize + VkDeviceFaultInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + description*: array[VK_MAX_DESCRIPTION_SIZE, char] + pAddressInfos*: ptr VkDeviceFaultAddressInfoEXT + pVendorInfos*: ptr VkDeviceFaultVendorInfoEXT + pVendorBinaryData*: pointer + VkDeviceFaultVendorBinaryHeaderVersionOneEXT* = object + headerSize*: uint32 + headerVersion*: VkDeviceFaultVendorBinaryHeaderVersionEXT + vendorID*: uint32 + deviceID*: uint32 + driverVersion*: uint32 + pipelineCacheUUID*: array[VK_UUID_SIZE, uint8] + applicationNameOffset*: uint32 + applicationVersion*: uint32 + engineNameOffset*: uint32 + VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + pipelineLibraryGroupHandles*: VkBool32 + VkDecompressMemoryRegionNV* = object + srcAddress*: VkDeviceAddress + dstAddress*: VkDeviceAddress + compressedSize*: VkDeviceSize + decompressedSize*: VkDeviceSize + decompressionMethod*: VkMemoryDecompressionMethodFlagsNV + VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM* = object + sType*: VkStructureType + pNext*: pointer + shaderCoreMask*: uint64 + shaderCoreCount*: uint32 + shaderWarpsPerCore*: uint32 + VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM* = object + sType*: VkStructureType + pNext*: pointer + shaderCoreBuiltins*: VkBool32 + VkSurfacePresentModeEXT* = object + sType*: VkStructureType + pNext*: pointer + presentMode*: VkPresentModeKHR + VkSurfacePresentScalingCapabilitiesEXT* = object + sType*: VkStructureType + pNext*: pointer + supportedPresentScaling*: VkPresentScalingFlagsEXT + supportedPresentGravityX*: VkPresentGravityFlagsEXT + supportedPresentGravityY*: VkPresentGravityFlagsEXT + minScaledImageExtent*: VkExtent2D + maxScaledImageExtent*: VkExtent2D + VkSurfacePresentModeCompatibilityEXT* = object + sType*: VkStructureType + pNext*: pointer + presentModeCount*: uint32 + pPresentModes*: ptr VkPresentModeKHR + VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT* = object + sType*: VkStructureType + pNext*: pointer + swapchainMaintenance1*: VkBool32 + VkSwapchainPresentFenceInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + swapchainCount*: uint32 + pFences*: ptr VkFence + VkSwapchainPresentModesCreateInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + presentModeCount*: uint32 + pPresentModes*: ptr VkPresentModeKHR + VkSwapchainPresentModeInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + swapchainCount*: uint32 + pPresentModes*: ptr VkPresentModeKHR + VkSwapchainPresentScalingCreateInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + scalingBehavior*: VkPresentScalingFlagsEXT + presentGravityX*: VkPresentGravityFlagsEXT + presentGravityY*: VkPresentGravityFlagsEXT + VkReleaseSwapchainImagesInfoEXT* = object + sType*: VkStructureType + pNext*: pointer + swapchain*: VkSwapchainKHR + imageIndexCount*: uint32 + pImageIndices*: ptr uint32 + VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV* = object + sType*: VkStructureType + pNext*: pointer + rayTracingInvocationReorder*: VkBool32 + VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV* = object + sType*: VkStructureType + pNext*: pointer + rayTracingInvocationReorderReorderingHint*: VkRayTracingInvocationReorderModeNV + VkDirectDriverLoadingInfoLUNARG* = object + sType*: VkStructureType + pNext*: pointer + flags*: VkDirectDriverLoadingFlagsLUNARG + pfnGetInstanceProcAddr*: PFN_vkGetInstanceProcAddrLUNARG + VkDirectDriverLoadingListLUNARG* = object + sType*: VkStructureType + pNext*: pointer + mode*: VkDirectDriverLoadingModeLUNARG + driverCount*: uint32 + pDrivers*: ptr VkDirectDriverLoadingInfoLUNARG + VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM* = object + sType*: VkStructureType + pNext*: pointer + multiviewPerViewViewports*: VkBool32 + VkPhysicalDeviceShaderCorePropertiesARM* = object + sType*: VkStructureType + pNext*: pointer + pixelRate*: uint32 + texelRate*: uint32 + fmaRate*: uint32 + VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM* = object + sType*: VkStructureType + pNext*: pointer + multiviewPerViewRenderAreas*: VkBool32 + VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM* = object + sType*: VkStructureType + pNext*: pointer + perViewRenderAreaCount*: uint32 + pPerViewRenderAreas*: ptr VkRect2D +# feature VK_VERSION_1_0 +var + vkCreateInstance*: proc(pCreateInfo: ptr VkInstanceCreateInfo, pAllocator: ptr VkAllocationCallbacks, pInstance: ptr VkInstance): VkResult {.stdcall.} + vkDestroyInstance*: proc(instance: VkInstance, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} + vkEnumeratePhysicalDevices*: proc(instance: VkInstance, pPhysicalDeviceCount: ptr uint32, pPhysicalDevices: ptr VkPhysicalDevice): VkResult {.stdcall.} + vkGetPhysicalDeviceFeatures*: proc(physicalDevice: VkPhysicalDevice, pFeatures: ptr VkPhysicalDeviceFeatures): void {.stdcall.} + vkGetPhysicalDeviceFormatProperties*: proc(physicalDevice: VkPhysicalDevice, format: VkFormat, pFormatProperties: ptr VkFormatProperties): void {.stdcall.} + vkGetPhysicalDeviceImageFormatProperties*: proc(physicalDevice: VkPhysicalDevice, format: VkFormat, thetype: VkImageType, tiling: VkImageTiling, usage: VkImageUsageFlags, flags: VkImageCreateFlags, pImageFormatProperties: ptr VkImageFormatProperties): VkResult {.stdcall.} + vkGetPhysicalDeviceProperties*: proc(physicalDevice: VkPhysicalDevice, pProperties: ptr VkPhysicalDeviceProperties): void {.stdcall.} + vkGetPhysicalDeviceQueueFamilyProperties*: proc(physicalDevice: VkPhysicalDevice, pQueueFamilyPropertyCount: ptr uint32, pQueueFamilyProperties: ptr VkQueueFamilyProperties): void {.stdcall.} + vkGetPhysicalDeviceMemoryProperties*: proc(physicalDevice: VkPhysicalDevice, pMemoryProperties: ptr VkPhysicalDeviceMemoryProperties): void {.stdcall.} + vkGetDeviceProcAddr*: proc(device: VkDevice, pName: cstring): PFN_vkVoidFunction {.stdcall.} + vkCreateDevice*: proc(physicalDevice: VkPhysicalDevice, pCreateInfo: ptr VkDeviceCreateInfo, pAllocator: ptr VkAllocationCallbacks, pDevice: ptr VkDevice): VkResult {.stdcall.} + vkDestroyDevice*: proc(device: VkDevice, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} + vkEnumerateInstanceExtensionProperties*: proc(pLayerName: cstring, pPropertyCount: ptr uint32, pProperties: ptr VkExtensionProperties): VkResult {.stdcall.} + vkEnumerateDeviceExtensionProperties*: proc(physicalDevice: VkPhysicalDevice, pLayerName: cstring, pPropertyCount: ptr uint32, pProperties: ptr VkExtensionProperties): VkResult {.stdcall.} + vkEnumerateInstanceLayerProperties*: proc(pPropertyCount: ptr uint32, pProperties: ptr VkLayerProperties): VkResult {.stdcall.} + vkEnumerateDeviceLayerProperties*: proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32, pProperties: ptr VkLayerProperties): VkResult {.stdcall.} + vkGetDeviceQueue*: proc(device: VkDevice, queueFamilyIndex: uint32, queueIndex: uint32, pQueue: ptr VkQueue): void {.stdcall.} + vkQueueSubmit*: proc(queue: VkQueue, submitCount: uint32, pSubmits: ptr VkSubmitInfo, fence: VkFence): VkResult {.stdcall.} + vkQueueWaitIdle*: proc(queue: VkQueue): VkResult {.stdcall.} + vkDeviceWaitIdle*: proc(device: VkDevice): VkResult {.stdcall.} + vkAllocateMemory*: proc(device: VkDevice, pAllocateInfo: ptr VkMemoryAllocateInfo, pAllocator: ptr VkAllocationCallbacks, pMemory: ptr VkDeviceMemory): VkResult {.stdcall.} + vkFreeMemory*: proc(device: VkDevice, memory: VkDeviceMemory, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} + vkMapMemory*: proc(device: VkDevice, memory: VkDeviceMemory, offset: VkDeviceSize, size: VkDeviceSize, flags: VkMemoryMapFlags, ppData: ptr pointer): VkResult {.stdcall.} + vkUnmapMemory*: proc(device: VkDevice, memory: VkDeviceMemory): void {.stdcall.} + vkFlushMappedMemoryRanges*: proc(device: VkDevice, memoryRangeCount: uint32, pMemoryRanges: ptr VkMappedMemoryRange): VkResult {.stdcall.} + vkInvalidateMappedMemoryRanges*: proc(device: VkDevice, memoryRangeCount: uint32, pMemoryRanges: ptr VkMappedMemoryRange): VkResult {.stdcall.} + vkGetDeviceMemoryCommitment*: proc(device: VkDevice, memory: VkDeviceMemory, pCommittedMemoryInBytes: ptr VkDeviceSize): void {.stdcall.} + vkBindBufferMemory*: proc(device: VkDevice, buffer: VkBuffer, memory: VkDeviceMemory, memoryOffset: VkDeviceSize): VkResult {.stdcall.} + vkBindImageMemory*: proc(device: VkDevice, image: VkImage, memory: VkDeviceMemory, memoryOffset: VkDeviceSize): VkResult {.stdcall.} + vkGetBufferMemoryRequirements*: proc(device: VkDevice, buffer: VkBuffer, pMemoryRequirements: ptr VkMemoryRequirements): void {.stdcall.} + vkGetImageMemoryRequirements*: proc(device: VkDevice, image: VkImage, pMemoryRequirements: ptr VkMemoryRequirements): void {.stdcall.} + vkGetImageSparseMemoryRequirements*: proc(device: VkDevice, image: VkImage, pSparseMemoryRequirementCount: ptr uint32, pSparseMemoryRequirements: ptr VkSparseImageMemoryRequirements): void {.stdcall.} + vkGetPhysicalDeviceSparseImageFormatProperties*: proc(physicalDevice: VkPhysicalDevice, format: VkFormat, thetype: VkImageType, samples: VkSampleCountFlagBits, usage: VkImageUsageFlags, tiling: VkImageTiling, pPropertyCount: ptr uint32, pProperties: ptr VkSparseImageFormatProperties): void {.stdcall.} + vkQueueBindSparse*: proc(queue: VkQueue, bindInfoCount: uint32, pBindInfo: ptr VkBindSparseInfo, fence: VkFence): VkResult {.stdcall.} + vkCreateFence*: proc(device: VkDevice, pCreateInfo: ptr VkFenceCreateInfo, pAllocator: ptr VkAllocationCallbacks, pFence: ptr VkFence): VkResult {.stdcall.} + vkDestroyFence*: proc(device: VkDevice, fence: VkFence, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} + vkResetFences*: proc(device: VkDevice, fenceCount: uint32, pFences: ptr VkFence): VkResult {.stdcall.} + vkGetFenceStatus*: proc(device: VkDevice, fence: VkFence): VkResult {.stdcall.} + vkWaitForFences*: proc(device: VkDevice, fenceCount: uint32, pFences: ptr VkFence, waitAll: VkBool32, timeout: uint64): VkResult {.stdcall.} + vkCreateSemaphore*: proc(device: VkDevice, pCreateInfo: ptr VkSemaphoreCreateInfo, pAllocator: ptr VkAllocationCallbacks, pSemaphore: ptr VkSemaphore): VkResult {.stdcall.} + vkDestroySemaphore*: proc(device: VkDevice, semaphore: VkSemaphore, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} + vkCreateEvent*: proc(device: VkDevice, pCreateInfo: ptr VkEventCreateInfo, pAllocator: ptr VkAllocationCallbacks, pEvent: ptr VkEvent): VkResult {.stdcall.} + vkDestroyEvent*: proc(device: VkDevice, event: VkEvent, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} + vkGetEventStatus*: proc(device: VkDevice, event: VkEvent): VkResult {.stdcall.} + vkSetEvent*: proc(device: VkDevice, event: VkEvent): VkResult {.stdcall.} + vkResetEvent*: proc(device: VkDevice, event: VkEvent): VkResult {.stdcall.} + vkCreateQueryPool*: proc(device: VkDevice, pCreateInfo: ptr VkQueryPoolCreateInfo, pAllocator: ptr VkAllocationCallbacks, pQueryPool: ptr VkQueryPool): VkResult {.stdcall.} + vkDestroyQueryPool*: proc(device: VkDevice, queryPool: VkQueryPool, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} + vkGetQueryPoolResults*: proc(device: VkDevice, queryPool: VkQueryPool, firstQuery: uint32, queryCount: uint32, dataSize: csize_t, pData: pointer, stride: VkDeviceSize, flags: VkQueryResultFlags): VkResult {.stdcall.} + vkCreateBuffer*: proc(device: VkDevice, pCreateInfo: ptr VkBufferCreateInfo, pAllocator: ptr VkAllocationCallbacks, pBuffer: ptr VkBuffer): VkResult {.stdcall.} + vkDestroyBuffer*: proc(device: VkDevice, buffer: VkBuffer, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} + vkCreateBufferView*: proc(device: VkDevice, pCreateInfo: ptr VkBufferViewCreateInfo, pAllocator: ptr VkAllocationCallbacks, pView: ptr VkBufferView): VkResult {.stdcall.} + vkDestroyBufferView*: proc(device: VkDevice, bufferView: VkBufferView, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} + vkCreateImage*: proc(device: VkDevice, pCreateInfo: ptr VkImageCreateInfo, pAllocator: ptr VkAllocationCallbacks, pImage: ptr VkImage): VkResult {.stdcall.} + vkDestroyImage*: proc(device: VkDevice, image: VkImage, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} + vkGetImageSubresourceLayout*: proc(device: VkDevice, image: VkImage, pSubresource: ptr VkImageSubresource, pLayout: ptr VkSubresourceLayout): void {.stdcall.} + vkCreateImageView*: proc(device: VkDevice, pCreateInfo: ptr VkImageViewCreateInfo, pAllocator: ptr VkAllocationCallbacks, pView: ptr VkImageView): VkResult {.stdcall.} + vkDestroyImageView*: proc(device: VkDevice, imageView: VkImageView, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} + vkCreateShaderModule*: proc(device: VkDevice, pCreateInfo: ptr VkShaderModuleCreateInfo, pAllocator: ptr VkAllocationCallbacks, pShaderModule: ptr VkShaderModule): VkResult {.stdcall.} + vkDestroyShaderModule*: proc(device: VkDevice, shaderModule: VkShaderModule, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} + vkCreatePipelineCache*: proc(device: VkDevice, pCreateInfo: ptr VkPipelineCacheCreateInfo, pAllocator: ptr VkAllocationCallbacks, pPipelineCache: ptr VkPipelineCache): VkResult {.stdcall.} + vkDestroyPipelineCache*: proc(device: VkDevice, pipelineCache: VkPipelineCache, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} + vkGetPipelineCacheData*: proc(device: VkDevice, pipelineCache: VkPipelineCache, pDataSize: ptr csize_t, pData: pointer): VkResult {.stdcall.} + vkMergePipelineCaches*: proc(device: VkDevice, dstCache: VkPipelineCache, srcCacheCount: uint32, pSrcCaches: ptr VkPipelineCache): VkResult {.stdcall.} + vkCreateGraphicsPipelines*: proc(device: VkDevice, pipelineCache: VkPipelineCache, createInfoCount: uint32, pCreateInfos: ptr VkGraphicsPipelineCreateInfo, pAllocator: ptr VkAllocationCallbacks, pPipelines: ptr VkPipeline): VkResult {.stdcall.} + vkCreateComputePipelines*: proc(device: VkDevice, pipelineCache: VkPipelineCache, createInfoCount: uint32, pCreateInfos: ptr VkComputePipelineCreateInfo, pAllocator: ptr VkAllocationCallbacks, pPipelines: ptr VkPipeline): VkResult {.stdcall.} + vkDestroyPipeline*: proc(device: VkDevice, pipeline: VkPipeline, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} + vkCreatePipelineLayout*: proc(device: VkDevice, pCreateInfo: ptr VkPipelineLayoutCreateInfo, pAllocator: ptr VkAllocationCallbacks, pPipelineLayout: ptr VkPipelineLayout): VkResult {.stdcall.} + vkDestroyPipelineLayout*: proc(device: VkDevice, pipelineLayout: VkPipelineLayout, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} + vkCreateSampler*: proc(device: VkDevice, pCreateInfo: ptr VkSamplerCreateInfo, pAllocator: ptr VkAllocationCallbacks, pSampler: ptr VkSampler): VkResult {.stdcall.} + vkDestroySampler*: proc(device: VkDevice, sampler: VkSampler, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} + vkCreateDescriptorSetLayout*: proc(device: VkDevice, pCreateInfo: ptr VkDescriptorSetLayoutCreateInfo, pAllocator: ptr VkAllocationCallbacks, pSetLayout: ptr VkDescriptorSetLayout): VkResult {.stdcall.} + vkDestroyDescriptorSetLayout*: proc(device: VkDevice, descriptorSetLayout: VkDescriptorSetLayout, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} + vkCreateDescriptorPool*: proc(device: VkDevice, pCreateInfo: ptr VkDescriptorPoolCreateInfo, pAllocator: ptr VkAllocationCallbacks, pDescriptorPool: ptr VkDescriptorPool): VkResult {.stdcall.} + vkDestroyDescriptorPool*: proc(device: VkDevice, descriptorPool: VkDescriptorPool, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} + vkResetDescriptorPool*: proc(device: VkDevice, descriptorPool: VkDescriptorPool, flags: VkDescriptorPoolResetFlags): VkResult {.stdcall.} + vkAllocateDescriptorSets*: proc(device: VkDevice, pAllocateInfo: ptr VkDescriptorSetAllocateInfo, pDescriptorSets: ptr VkDescriptorSet): VkResult {.stdcall.} + vkFreeDescriptorSets*: proc(device: VkDevice, descriptorPool: VkDescriptorPool, descriptorSetCount: uint32, pDescriptorSets: ptr VkDescriptorSet): VkResult {.stdcall.} + vkUpdateDescriptorSets*: proc(device: VkDevice, descriptorWriteCount: uint32, pDescriptorWrites: ptr VkWriteDescriptorSet, descriptorCopyCount: uint32, pDescriptorCopies: ptr VkCopyDescriptorSet): void {.stdcall.} + vkCreateFramebuffer*: proc(device: VkDevice, pCreateInfo: ptr VkFramebufferCreateInfo, pAllocator: ptr VkAllocationCallbacks, pFramebuffer: ptr VkFramebuffer): VkResult {.stdcall.} + vkDestroyFramebuffer*: proc(device: VkDevice, framebuffer: VkFramebuffer, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} + vkCreateRenderPass*: proc(device: VkDevice, pCreateInfo: ptr VkRenderPassCreateInfo, pAllocator: ptr VkAllocationCallbacks, pRenderPass: ptr VkRenderPass): VkResult {.stdcall.} + vkDestroyRenderPass*: proc(device: VkDevice, renderPass: VkRenderPass, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} + vkGetRenderAreaGranularity*: proc(device: VkDevice, renderPass: VkRenderPass, pGranularity: ptr VkExtent2D): void {.stdcall.} + vkCreateCommandPool*: proc(device: VkDevice, pCreateInfo: ptr VkCommandPoolCreateInfo, pAllocator: ptr VkAllocationCallbacks, pCommandPool: ptr VkCommandPool): VkResult {.stdcall.} + vkDestroyCommandPool*: proc(device: VkDevice, commandPool: VkCommandPool, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} + vkResetCommandPool*: proc(device: VkDevice, commandPool: VkCommandPool, flags: VkCommandPoolResetFlags): VkResult {.stdcall.} + vkAllocateCommandBuffers*: proc(device: VkDevice, pAllocateInfo: ptr VkCommandBufferAllocateInfo, pCommandBuffers: ptr VkCommandBuffer): VkResult {.stdcall.} + vkFreeCommandBuffers*: proc(device: VkDevice, commandPool: VkCommandPool, commandBufferCount: uint32, pCommandBuffers: ptr VkCommandBuffer): void {.stdcall.} + vkBeginCommandBuffer*: proc(commandBuffer: VkCommandBuffer, pBeginInfo: ptr VkCommandBufferBeginInfo): VkResult {.stdcall.} + vkEndCommandBuffer*: proc(commandBuffer: VkCommandBuffer): VkResult {.stdcall.} + vkResetCommandBuffer*: proc(commandBuffer: VkCommandBuffer, flags: VkCommandBufferResetFlags): VkResult {.stdcall.} + vkCmdBindPipeline*: proc(commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, pipeline: VkPipeline): void {.stdcall.} + vkCmdSetViewport*: proc(commandBuffer: VkCommandBuffer, firstViewport: uint32, viewportCount: uint32, pViewports: ptr VkViewport): void {.stdcall.} + vkCmdSetScissor*: proc(commandBuffer: VkCommandBuffer, firstScissor: uint32, scissorCount: uint32, pScissors: ptr VkRect2D): void {.stdcall.} + vkCmdSetLineWidth*: proc(commandBuffer: VkCommandBuffer, lineWidth: float32): void {.stdcall.} + vkCmdSetDepthBias*: proc(commandBuffer: VkCommandBuffer, depthBiasConstantFactor: float32, depthBiasClamp: float32, depthBiasSlopeFactor: float32): void {.stdcall.} + vkCmdSetBlendConstants*: proc(commandBuffer: VkCommandBuffer, blendConstants: array[4, float32]): void {.stdcall.} + vkCmdSetDepthBounds*: proc(commandBuffer: VkCommandBuffer, minDepthBounds: float32, maxDepthBounds: float32): void {.stdcall.} + vkCmdSetStencilCompareMask*: proc(commandBuffer: VkCommandBuffer, faceMask: VkStencilFaceFlags, compareMask: uint32): void {.stdcall.} + vkCmdSetStencilWriteMask*: proc(commandBuffer: VkCommandBuffer, faceMask: VkStencilFaceFlags, writeMask: uint32): void {.stdcall.} + vkCmdSetStencilReference*: proc(commandBuffer: VkCommandBuffer, faceMask: VkStencilFaceFlags, reference: uint32): void {.stdcall.} + vkCmdBindDescriptorSets*: proc(commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, layout: VkPipelineLayout, firstSet: uint32, descriptorSetCount: uint32, pDescriptorSets: ptr VkDescriptorSet, dynamicOffsetCount: uint32, pDynamicOffsets: ptr uint32): void {.stdcall.} + vkCmdBindIndexBuffer*: proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, indexType: VkIndexType): void {.stdcall.} + vkCmdBindVertexBuffers*: proc(commandBuffer: VkCommandBuffer, firstBinding: uint32, bindingCount: uint32, pBuffers: ptr VkBuffer, pOffsets: ptr VkDeviceSize): void {.stdcall.} + vkCmdDraw*: proc(commandBuffer: VkCommandBuffer, vertexCount: uint32, instanceCount: uint32, firstVertex: uint32, firstInstance: uint32): void {.stdcall.} + vkCmdDrawIndexed*: proc(commandBuffer: VkCommandBuffer, indexCount: uint32, instanceCount: uint32, firstIndex: uint32, vertexOffset: int32, firstInstance: uint32): void {.stdcall.} + vkCmdDrawIndirect*: proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, drawCount: uint32, stride: uint32): void {.stdcall.} + vkCmdDrawIndexedIndirect*: proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, drawCount: uint32, stride: uint32): void {.stdcall.} + vkCmdDispatch*: proc(commandBuffer: VkCommandBuffer, groupCountX: uint32, groupCountY: uint32, groupCountZ: uint32): void {.stdcall.} + vkCmdDispatchIndirect*: proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize): void {.stdcall.} + vkCmdCopyBuffer*: proc(commandBuffer: VkCommandBuffer, srcBuffer: VkBuffer, dstBuffer: VkBuffer, regionCount: uint32, pRegions: ptr VkBufferCopy): void {.stdcall.} + vkCmdCopyImage*: proc(commandBuffer: VkCommandBuffer, srcImage: VkImage, srcImageLayout: VkImageLayout, dstImage: VkImage, dstImageLayout: VkImageLayout, regionCount: uint32, pRegions: ptr VkImageCopy): void {.stdcall.} + vkCmdBlitImage*: proc(commandBuffer: VkCommandBuffer, srcImage: VkImage, srcImageLayout: VkImageLayout, dstImage: VkImage, dstImageLayout: VkImageLayout, regionCount: uint32, pRegions: ptr VkImageBlit, filter: VkFilter): void {.stdcall.} + vkCmdCopyBufferToImage*: proc(commandBuffer: VkCommandBuffer, srcBuffer: VkBuffer, dstImage: VkImage, dstImageLayout: VkImageLayout, regionCount: uint32, pRegions: ptr VkBufferImageCopy): void {.stdcall.} + vkCmdCopyImageToBuffer*: proc(commandBuffer: VkCommandBuffer, srcImage: VkImage, srcImageLayout: VkImageLayout, dstBuffer: VkBuffer, regionCount: uint32, pRegions: ptr VkBufferImageCopy): void {.stdcall.} + vkCmdUpdateBuffer*: proc(commandBuffer: VkCommandBuffer, dstBuffer: VkBuffer, dstOffset: VkDeviceSize, dataSize: VkDeviceSize, pData: pointer): void {.stdcall.} + vkCmdFillBuffer*: proc(commandBuffer: VkCommandBuffer, dstBuffer: VkBuffer, dstOffset: VkDeviceSize, size: VkDeviceSize, data: uint32): void {.stdcall.} + vkCmdClearColorImage*: proc(commandBuffer: VkCommandBuffer, image: VkImage, imageLayout: VkImageLayout, pColor: ptr VkClearColorValue, rangeCount: uint32, pRanges: ptr VkImageSubresourceRange): void {.stdcall.} + vkCmdClearDepthStencilImage*: proc(commandBuffer: VkCommandBuffer, image: VkImage, imageLayout: VkImageLayout, pDepthStencil: ptr VkClearDepthStencilValue, rangeCount: uint32, pRanges: ptr VkImageSubresourceRange): void {.stdcall.} + vkCmdClearAttachments*: proc(commandBuffer: VkCommandBuffer, attachmentCount: uint32, pAttachments: ptr VkClearAttachment, rectCount: uint32, pRects: ptr VkClearRect): void {.stdcall.} + vkCmdResolveImage*: proc(commandBuffer: VkCommandBuffer, srcImage: VkImage, srcImageLayout: VkImageLayout, dstImage: VkImage, dstImageLayout: VkImageLayout, regionCount: uint32, pRegions: ptr VkImageResolve): void {.stdcall.} + vkCmdSetEvent*: proc(commandBuffer: VkCommandBuffer, event: VkEvent, stageMask: VkPipelineStageFlags): void {.stdcall.} + vkCmdResetEvent*: proc(commandBuffer: VkCommandBuffer, event: VkEvent, stageMask: VkPipelineStageFlags): void {.stdcall.} + vkCmdWaitEvents*: proc(commandBuffer: VkCommandBuffer, eventCount: uint32, pEvents: ptr VkEvent, srcStageMask: VkPipelineStageFlags, dstStageMask: VkPipelineStageFlags, memoryBarrierCount: uint32, pMemoryBarriers: ptr VkMemoryBarrier, bufferMemoryBarrierCount: uint32, pBufferMemoryBarriers: ptr VkBufferMemoryBarrier, imageMemoryBarrierCount: uint32, pImageMemoryBarriers: ptr VkImageMemoryBarrier): void {.stdcall.} + vkCmdPipelineBarrier*: proc(commandBuffer: VkCommandBuffer, srcStageMask: VkPipelineStageFlags, dstStageMask: VkPipelineStageFlags, dependencyFlags: VkDependencyFlags, memoryBarrierCount: uint32, pMemoryBarriers: ptr VkMemoryBarrier, bufferMemoryBarrierCount: uint32, pBufferMemoryBarriers: ptr VkBufferMemoryBarrier, imageMemoryBarrierCount: uint32, pImageMemoryBarriers: ptr VkImageMemoryBarrier): void {.stdcall.} + vkCmdBeginQuery*: proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, query: uint32, flags: VkQueryControlFlags): void {.stdcall.} + vkCmdEndQuery*: proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, query: uint32): void {.stdcall.} + vkCmdResetQueryPool*: proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, firstQuery: uint32, queryCount: uint32): void {.stdcall.} + vkCmdWriteTimestamp*: proc(commandBuffer: VkCommandBuffer, pipelineStage: VkPipelineStageFlagBits, queryPool: VkQueryPool, query: uint32): void {.stdcall.} + vkCmdCopyQueryPoolResults*: proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, firstQuery: uint32, queryCount: uint32, dstBuffer: VkBuffer, dstOffset: VkDeviceSize, stride: VkDeviceSize, flags: VkQueryResultFlags): void {.stdcall.} + vkCmdPushConstants*: proc(commandBuffer: VkCommandBuffer, layout: VkPipelineLayout, stageFlags: VkShaderStageFlags, offset: uint32, size: uint32, pValues: pointer): void {.stdcall.} + vkCmdBeginRenderPass*: proc(commandBuffer: VkCommandBuffer, pRenderPassBegin: ptr VkRenderPassBeginInfo, contents: VkSubpassContents): void {.stdcall.} + vkCmdNextSubpass*: proc(commandBuffer: VkCommandBuffer, contents: VkSubpassContents): void {.stdcall.} + vkCmdEndRenderPass*: proc(commandBuffer: VkCommandBuffer): void {.stdcall.} + vkCmdExecuteCommands*: proc(commandBuffer: VkCommandBuffer, commandBufferCount: uint32, pCommandBuffers: ptr VkCommandBuffer): void {.stdcall.} +proc loadVK_VERSION_1_0*(instance: VkInstance) = + vkDestroyInstance = cast[proc(instance: VkInstance, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyInstance")) + vkEnumeratePhysicalDevices = cast[proc(instance: VkInstance, pPhysicalDeviceCount: ptr uint32, pPhysicalDevices: ptr VkPhysicalDevice): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkEnumeratePhysicalDevices")) + vkGetPhysicalDeviceFeatures = cast[proc(physicalDevice: VkPhysicalDevice, pFeatures: ptr VkPhysicalDeviceFeatures): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceFeatures")) + vkGetPhysicalDeviceFormatProperties = cast[proc(physicalDevice: VkPhysicalDevice, format: VkFormat, pFormatProperties: ptr VkFormatProperties): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceFormatProperties")) + vkGetPhysicalDeviceImageFormatProperties = cast[proc(physicalDevice: VkPhysicalDevice, format: VkFormat, thetype: VkImageType, tiling: VkImageTiling, usage: VkImageUsageFlags, flags: VkImageCreateFlags, pImageFormatProperties: ptr VkImageFormatProperties): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceImageFormatProperties")) + vkGetPhysicalDeviceProperties = cast[proc(physicalDevice: VkPhysicalDevice, pProperties: ptr VkPhysicalDeviceProperties): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceProperties")) + vkGetPhysicalDeviceQueueFamilyProperties = cast[proc(physicalDevice: VkPhysicalDevice, pQueueFamilyPropertyCount: ptr uint32, pQueueFamilyProperties: ptr VkQueueFamilyProperties): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceQueueFamilyProperties")) + vkGetPhysicalDeviceMemoryProperties = cast[proc(physicalDevice: VkPhysicalDevice, pMemoryProperties: ptr VkPhysicalDeviceMemoryProperties): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceMemoryProperties")) + vkGetDeviceProcAddr = cast[proc(device: VkDevice, pName: cstring): PFN_vkVoidFunction {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceProcAddr")) + vkCreateDevice = cast[proc(physicalDevice: VkPhysicalDevice, pCreateInfo: ptr VkDeviceCreateInfo, pAllocator: ptr VkAllocationCallbacks, pDevice: ptr VkDevice): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateDevice")) + vkDestroyDevice = cast[proc(device: VkDevice, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyDevice")) + vkEnumerateDeviceExtensionProperties = cast[proc(physicalDevice: VkPhysicalDevice, pLayerName: cstring, pPropertyCount: ptr uint32, pProperties: ptr VkExtensionProperties): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkEnumerateDeviceExtensionProperties")) + vkEnumerateDeviceLayerProperties = cast[proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32, pProperties: ptr VkLayerProperties): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkEnumerateDeviceLayerProperties")) + vkGetDeviceQueue = cast[proc(device: VkDevice, queueFamilyIndex: uint32, queueIndex: uint32, pQueue: ptr VkQueue): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceQueue")) + vkQueueSubmit = cast[proc(queue: VkQueue, submitCount: uint32, pSubmits: ptr VkSubmitInfo, fence: VkFence): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkQueueSubmit")) + vkQueueWaitIdle = cast[proc(queue: VkQueue): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkQueueWaitIdle")) + vkDeviceWaitIdle = cast[proc(device: VkDevice): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDeviceWaitIdle")) + vkAllocateMemory = cast[proc(device: VkDevice, pAllocateInfo: ptr VkMemoryAllocateInfo, pAllocator: ptr VkAllocationCallbacks, pMemory: ptr VkDeviceMemory): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkAllocateMemory")) + vkFreeMemory = cast[proc(device: VkDevice, memory: VkDeviceMemory, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkFreeMemory")) + vkMapMemory = cast[proc(device: VkDevice, memory: VkDeviceMemory, offset: VkDeviceSize, size: VkDeviceSize, flags: VkMemoryMapFlags, ppData: ptr pointer): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkMapMemory")) + vkUnmapMemory = cast[proc(device: VkDevice, memory: VkDeviceMemory): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkUnmapMemory")) + vkFlushMappedMemoryRanges = cast[proc(device: VkDevice, memoryRangeCount: uint32, pMemoryRanges: ptr VkMappedMemoryRange): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkFlushMappedMemoryRanges")) + vkInvalidateMappedMemoryRanges = cast[proc(device: VkDevice, memoryRangeCount: uint32, pMemoryRanges: ptr VkMappedMemoryRange): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkInvalidateMappedMemoryRanges")) + vkGetDeviceMemoryCommitment = cast[proc(device: VkDevice, memory: VkDeviceMemory, pCommittedMemoryInBytes: ptr VkDeviceSize): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceMemoryCommitment")) + vkBindBufferMemory = cast[proc(device: VkDevice, buffer: VkBuffer, memory: VkDeviceMemory, memoryOffset: VkDeviceSize): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkBindBufferMemory")) + vkBindImageMemory = cast[proc(device: VkDevice, image: VkImage, memory: VkDeviceMemory, memoryOffset: VkDeviceSize): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkBindImageMemory")) + vkGetBufferMemoryRequirements = cast[proc(device: VkDevice, buffer: VkBuffer, pMemoryRequirements: ptr VkMemoryRequirements): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetBufferMemoryRequirements")) + vkGetImageMemoryRequirements = cast[proc(device: VkDevice, image: VkImage, pMemoryRequirements: ptr VkMemoryRequirements): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetImageMemoryRequirements")) + vkGetImageSparseMemoryRequirements = cast[proc(device: VkDevice, image: VkImage, pSparseMemoryRequirementCount: ptr uint32, pSparseMemoryRequirements: ptr VkSparseImageMemoryRequirements): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetImageSparseMemoryRequirements")) + vkGetPhysicalDeviceSparseImageFormatProperties = cast[proc(physicalDevice: VkPhysicalDevice, format: VkFormat, thetype: VkImageType, samples: VkSampleCountFlagBits, usage: VkImageUsageFlags, tiling: VkImageTiling, pPropertyCount: ptr uint32, pProperties: ptr VkSparseImageFormatProperties): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSparseImageFormatProperties")) + vkQueueBindSparse = cast[proc(queue: VkQueue, bindInfoCount: uint32, pBindInfo: ptr VkBindSparseInfo, fence: VkFence): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkQueueBindSparse")) + vkCreateFence = cast[proc(device: VkDevice, pCreateInfo: ptr VkFenceCreateInfo, pAllocator: ptr VkAllocationCallbacks, pFence: ptr VkFence): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateFence")) + vkDestroyFence = cast[proc(device: VkDevice, fence: VkFence, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyFence")) + vkResetFences = cast[proc(device: VkDevice, fenceCount: uint32, pFences: ptr VkFence): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkResetFences")) + vkGetFenceStatus = cast[proc(device: VkDevice, fence: VkFence): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetFenceStatus")) + vkWaitForFences = cast[proc(device: VkDevice, fenceCount: uint32, pFences: ptr VkFence, waitAll: VkBool32, timeout: uint64): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkWaitForFences")) + vkCreateSemaphore = cast[proc(device: VkDevice, pCreateInfo: ptr VkSemaphoreCreateInfo, pAllocator: ptr VkAllocationCallbacks, pSemaphore: ptr VkSemaphore): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateSemaphore")) + vkDestroySemaphore = cast[proc(device: VkDevice, semaphore: VkSemaphore, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroySemaphore")) + vkCreateEvent = cast[proc(device: VkDevice, pCreateInfo: ptr VkEventCreateInfo, pAllocator: ptr VkAllocationCallbacks, pEvent: ptr VkEvent): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateEvent")) + vkDestroyEvent = cast[proc(device: VkDevice, event: VkEvent, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyEvent")) + vkGetEventStatus = cast[proc(device: VkDevice, event: VkEvent): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetEventStatus")) + vkSetEvent = cast[proc(device: VkDevice, event: VkEvent): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkSetEvent")) + vkResetEvent = cast[proc(device: VkDevice, event: VkEvent): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkResetEvent")) + vkCreateQueryPool = cast[proc(device: VkDevice, pCreateInfo: ptr VkQueryPoolCreateInfo, pAllocator: ptr VkAllocationCallbacks, pQueryPool: ptr VkQueryPool): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateQueryPool")) + vkDestroyQueryPool = cast[proc(device: VkDevice, queryPool: VkQueryPool, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyQueryPool")) + vkGetQueryPoolResults = cast[proc(device: VkDevice, queryPool: VkQueryPool, firstQuery: uint32, queryCount: uint32, dataSize: csize_t, pData: pointer, stride: VkDeviceSize, flags: VkQueryResultFlags): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetQueryPoolResults")) + vkCreateBuffer = cast[proc(device: VkDevice, pCreateInfo: ptr VkBufferCreateInfo, pAllocator: ptr VkAllocationCallbacks, pBuffer: ptr VkBuffer): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateBuffer")) + vkDestroyBuffer = cast[proc(device: VkDevice, buffer: VkBuffer, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyBuffer")) + vkCreateBufferView = cast[proc(device: VkDevice, pCreateInfo: ptr VkBufferViewCreateInfo, pAllocator: ptr VkAllocationCallbacks, pView: ptr VkBufferView): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateBufferView")) + vkDestroyBufferView = cast[proc(device: VkDevice, bufferView: VkBufferView, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyBufferView")) + vkCreateImage = cast[proc(device: VkDevice, pCreateInfo: ptr VkImageCreateInfo, pAllocator: ptr VkAllocationCallbacks, pImage: ptr VkImage): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateImage")) + vkDestroyImage = cast[proc(device: VkDevice, image: VkImage, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyImage")) + vkGetImageSubresourceLayout = cast[proc(device: VkDevice, image: VkImage, pSubresource: ptr VkImageSubresource, pLayout: ptr VkSubresourceLayout): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetImageSubresourceLayout")) + vkCreateImageView = cast[proc(device: VkDevice, pCreateInfo: ptr VkImageViewCreateInfo, pAllocator: ptr VkAllocationCallbacks, pView: ptr VkImageView): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateImageView")) + vkDestroyImageView = cast[proc(device: VkDevice, imageView: VkImageView, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyImageView")) + vkCreateShaderModule = cast[proc(device: VkDevice, pCreateInfo: ptr VkShaderModuleCreateInfo, pAllocator: ptr VkAllocationCallbacks, pShaderModule: ptr VkShaderModule): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateShaderModule")) + vkDestroyShaderModule = cast[proc(device: VkDevice, shaderModule: VkShaderModule, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyShaderModule")) + vkCreatePipelineCache = cast[proc(device: VkDevice, pCreateInfo: ptr VkPipelineCacheCreateInfo, pAllocator: ptr VkAllocationCallbacks, pPipelineCache: ptr VkPipelineCache): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreatePipelineCache")) + vkDestroyPipelineCache = cast[proc(device: VkDevice, pipelineCache: VkPipelineCache, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyPipelineCache")) + vkGetPipelineCacheData = cast[proc(device: VkDevice, pipelineCache: VkPipelineCache, pDataSize: ptr csize_t, pData: pointer): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPipelineCacheData")) + vkMergePipelineCaches = cast[proc(device: VkDevice, dstCache: VkPipelineCache, srcCacheCount: uint32, pSrcCaches: ptr VkPipelineCache): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkMergePipelineCaches")) + vkCreateGraphicsPipelines = cast[proc(device: VkDevice, pipelineCache: VkPipelineCache, createInfoCount: uint32, pCreateInfos: ptr VkGraphicsPipelineCreateInfo, pAllocator: ptr VkAllocationCallbacks, pPipelines: ptr VkPipeline): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateGraphicsPipelines")) + vkCreateComputePipelines = cast[proc(device: VkDevice, pipelineCache: VkPipelineCache, createInfoCount: uint32, pCreateInfos: ptr VkComputePipelineCreateInfo, pAllocator: ptr VkAllocationCallbacks, pPipelines: ptr VkPipeline): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateComputePipelines")) + vkDestroyPipeline = cast[proc(device: VkDevice, pipeline: VkPipeline, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyPipeline")) + vkCreatePipelineLayout = cast[proc(device: VkDevice, pCreateInfo: ptr VkPipelineLayoutCreateInfo, pAllocator: ptr VkAllocationCallbacks, pPipelineLayout: ptr VkPipelineLayout): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreatePipelineLayout")) + vkDestroyPipelineLayout = cast[proc(device: VkDevice, pipelineLayout: VkPipelineLayout, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyPipelineLayout")) + vkCreateSampler = cast[proc(device: VkDevice, pCreateInfo: ptr VkSamplerCreateInfo, pAllocator: ptr VkAllocationCallbacks, pSampler: ptr VkSampler): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateSampler")) + vkDestroySampler = cast[proc(device: VkDevice, sampler: VkSampler, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroySampler")) + vkCreateDescriptorSetLayout = cast[proc(device: VkDevice, pCreateInfo: ptr VkDescriptorSetLayoutCreateInfo, pAllocator: ptr VkAllocationCallbacks, pSetLayout: ptr VkDescriptorSetLayout): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateDescriptorSetLayout")) + vkDestroyDescriptorSetLayout = cast[proc(device: VkDevice, descriptorSetLayout: VkDescriptorSetLayout, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyDescriptorSetLayout")) + vkCreateDescriptorPool = cast[proc(device: VkDevice, pCreateInfo: ptr VkDescriptorPoolCreateInfo, pAllocator: ptr VkAllocationCallbacks, pDescriptorPool: ptr VkDescriptorPool): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateDescriptorPool")) + vkDestroyDescriptorPool = cast[proc(device: VkDevice, descriptorPool: VkDescriptorPool, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyDescriptorPool")) + vkResetDescriptorPool = cast[proc(device: VkDevice, descriptorPool: VkDescriptorPool, flags: VkDescriptorPoolResetFlags): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkResetDescriptorPool")) + vkAllocateDescriptorSets = cast[proc(device: VkDevice, pAllocateInfo: ptr VkDescriptorSetAllocateInfo, pDescriptorSets: ptr VkDescriptorSet): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkAllocateDescriptorSets")) + vkFreeDescriptorSets = cast[proc(device: VkDevice, descriptorPool: VkDescriptorPool, descriptorSetCount: uint32, pDescriptorSets: ptr VkDescriptorSet): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkFreeDescriptorSets")) + vkUpdateDescriptorSets = cast[proc(device: VkDevice, descriptorWriteCount: uint32, pDescriptorWrites: ptr VkWriteDescriptorSet, descriptorCopyCount: uint32, pDescriptorCopies: ptr VkCopyDescriptorSet): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkUpdateDescriptorSets")) + vkCreateFramebuffer = cast[proc(device: VkDevice, pCreateInfo: ptr VkFramebufferCreateInfo, pAllocator: ptr VkAllocationCallbacks, pFramebuffer: ptr VkFramebuffer): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateFramebuffer")) + vkDestroyFramebuffer = cast[proc(device: VkDevice, framebuffer: VkFramebuffer, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyFramebuffer")) + vkCreateRenderPass = cast[proc(device: VkDevice, pCreateInfo: ptr VkRenderPassCreateInfo, pAllocator: ptr VkAllocationCallbacks, pRenderPass: ptr VkRenderPass): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateRenderPass")) + vkDestroyRenderPass = cast[proc(device: VkDevice, renderPass: VkRenderPass, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyRenderPass")) + vkGetRenderAreaGranularity = cast[proc(device: VkDevice, renderPass: VkRenderPass, pGranularity: ptr VkExtent2D): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetRenderAreaGranularity")) + vkCreateCommandPool = cast[proc(device: VkDevice, pCreateInfo: ptr VkCommandPoolCreateInfo, pAllocator: ptr VkAllocationCallbacks, pCommandPool: ptr VkCommandPool): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateCommandPool")) + vkDestroyCommandPool = cast[proc(device: VkDevice, commandPool: VkCommandPool, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyCommandPool")) + vkResetCommandPool = cast[proc(device: VkDevice, commandPool: VkCommandPool, flags: VkCommandPoolResetFlags): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkResetCommandPool")) + vkAllocateCommandBuffers = cast[proc(device: VkDevice, pAllocateInfo: ptr VkCommandBufferAllocateInfo, pCommandBuffers: ptr VkCommandBuffer): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkAllocateCommandBuffers")) + vkFreeCommandBuffers = cast[proc(device: VkDevice, commandPool: VkCommandPool, commandBufferCount: uint32, pCommandBuffers: ptr VkCommandBuffer): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkFreeCommandBuffers")) + vkBeginCommandBuffer = cast[proc(commandBuffer: VkCommandBuffer, pBeginInfo: ptr VkCommandBufferBeginInfo): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkBeginCommandBuffer")) + vkEndCommandBuffer = cast[proc(commandBuffer: VkCommandBuffer): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkEndCommandBuffer")) + vkResetCommandBuffer = cast[proc(commandBuffer: VkCommandBuffer, flags: VkCommandBufferResetFlags): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkResetCommandBuffer")) + vkCmdBindPipeline = cast[proc(commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, pipeline: VkPipeline): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBindPipeline")) + vkCmdSetViewport = cast[proc(commandBuffer: VkCommandBuffer, firstViewport: uint32, viewportCount: uint32, pViewports: ptr VkViewport): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetViewport")) + vkCmdSetScissor = cast[proc(commandBuffer: VkCommandBuffer, firstScissor: uint32, scissorCount: uint32, pScissors: ptr VkRect2D): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetScissor")) + vkCmdSetLineWidth = cast[proc(commandBuffer: VkCommandBuffer, lineWidth: float32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetLineWidth")) + vkCmdSetDepthBias = cast[proc(commandBuffer: VkCommandBuffer, depthBiasConstantFactor: float32, depthBiasClamp: float32, depthBiasSlopeFactor: float32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDepthBias")) + vkCmdSetBlendConstants = cast[proc(commandBuffer: VkCommandBuffer, blendConstants: array[4, float32]): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetBlendConstants")) + vkCmdSetDepthBounds = cast[proc(commandBuffer: VkCommandBuffer, minDepthBounds: float32, maxDepthBounds: float32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDepthBounds")) + vkCmdSetStencilCompareMask = cast[proc(commandBuffer: VkCommandBuffer, faceMask: VkStencilFaceFlags, compareMask: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetStencilCompareMask")) + vkCmdSetStencilWriteMask = cast[proc(commandBuffer: VkCommandBuffer, faceMask: VkStencilFaceFlags, writeMask: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetStencilWriteMask")) + vkCmdSetStencilReference = cast[proc(commandBuffer: VkCommandBuffer, faceMask: VkStencilFaceFlags, reference: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetStencilReference")) + vkCmdBindDescriptorSets = cast[proc(commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, layout: VkPipelineLayout, firstSet: uint32, descriptorSetCount: uint32, pDescriptorSets: ptr VkDescriptorSet, dynamicOffsetCount: uint32, pDynamicOffsets: ptr uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBindDescriptorSets")) + vkCmdBindIndexBuffer = cast[proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, indexType: VkIndexType): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBindIndexBuffer")) + vkCmdBindVertexBuffers = cast[proc(commandBuffer: VkCommandBuffer, firstBinding: uint32, bindingCount: uint32, pBuffers: ptr VkBuffer, pOffsets: ptr VkDeviceSize): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBindVertexBuffers")) + vkCmdDraw = cast[proc(commandBuffer: VkCommandBuffer, vertexCount: uint32, instanceCount: uint32, firstVertex: uint32, firstInstance: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDraw")) + vkCmdDrawIndexed = cast[proc(commandBuffer: VkCommandBuffer, indexCount: uint32, instanceCount: uint32, firstIndex: uint32, vertexOffset: int32, firstInstance: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawIndexed")) + vkCmdDrawIndirect = cast[proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, drawCount: uint32, stride: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawIndirect")) + vkCmdDrawIndexedIndirect = cast[proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, drawCount: uint32, stride: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawIndexedIndirect")) + vkCmdDispatch = cast[proc(commandBuffer: VkCommandBuffer, groupCountX: uint32, groupCountY: uint32, groupCountZ: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDispatch")) + vkCmdDispatchIndirect = cast[proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDispatchIndirect")) + vkCmdCopyBuffer = cast[proc(commandBuffer: VkCommandBuffer, srcBuffer: VkBuffer, dstBuffer: VkBuffer, regionCount: uint32, pRegions: ptr VkBufferCopy): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyBuffer")) + vkCmdCopyImage = cast[proc(commandBuffer: VkCommandBuffer, srcImage: VkImage, srcImageLayout: VkImageLayout, dstImage: VkImage, dstImageLayout: VkImageLayout, regionCount: uint32, pRegions: ptr VkImageCopy): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyImage")) + vkCmdBlitImage = cast[proc(commandBuffer: VkCommandBuffer, srcImage: VkImage, srcImageLayout: VkImageLayout, dstImage: VkImage, dstImageLayout: VkImageLayout, regionCount: uint32, pRegions: ptr VkImageBlit, filter: VkFilter): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBlitImage")) + vkCmdCopyBufferToImage = cast[proc(commandBuffer: VkCommandBuffer, srcBuffer: VkBuffer, dstImage: VkImage, dstImageLayout: VkImageLayout, regionCount: uint32, pRegions: ptr VkBufferImageCopy): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyBufferToImage")) + vkCmdCopyImageToBuffer = cast[proc(commandBuffer: VkCommandBuffer, srcImage: VkImage, srcImageLayout: VkImageLayout, dstBuffer: VkBuffer, regionCount: uint32, pRegions: ptr VkBufferImageCopy): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyImageToBuffer")) + vkCmdUpdateBuffer = cast[proc(commandBuffer: VkCommandBuffer, dstBuffer: VkBuffer, dstOffset: VkDeviceSize, dataSize: VkDeviceSize, pData: pointer): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdUpdateBuffer")) + vkCmdFillBuffer = cast[proc(commandBuffer: VkCommandBuffer, dstBuffer: VkBuffer, dstOffset: VkDeviceSize, size: VkDeviceSize, data: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdFillBuffer")) + vkCmdClearColorImage = cast[proc(commandBuffer: VkCommandBuffer, image: VkImage, imageLayout: VkImageLayout, pColor: ptr VkClearColorValue, rangeCount: uint32, pRanges: ptr VkImageSubresourceRange): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdClearColorImage")) + vkCmdClearDepthStencilImage = cast[proc(commandBuffer: VkCommandBuffer, image: VkImage, imageLayout: VkImageLayout, pDepthStencil: ptr VkClearDepthStencilValue, rangeCount: uint32, pRanges: ptr VkImageSubresourceRange): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdClearDepthStencilImage")) + vkCmdClearAttachments = cast[proc(commandBuffer: VkCommandBuffer, attachmentCount: uint32, pAttachments: ptr VkClearAttachment, rectCount: uint32, pRects: ptr VkClearRect): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdClearAttachments")) + vkCmdResolveImage = cast[proc(commandBuffer: VkCommandBuffer, srcImage: VkImage, srcImageLayout: VkImageLayout, dstImage: VkImage, dstImageLayout: VkImageLayout, regionCount: uint32, pRegions: ptr VkImageResolve): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdResolveImage")) + vkCmdSetEvent = cast[proc(commandBuffer: VkCommandBuffer, event: VkEvent, stageMask: VkPipelineStageFlags): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetEvent")) + vkCmdResetEvent = cast[proc(commandBuffer: VkCommandBuffer, event: VkEvent, stageMask: VkPipelineStageFlags): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdResetEvent")) + vkCmdWaitEvents = cast[proc(commandBuffer: VkCommandBuffer, eventCount: uint32, pEvents: ptr VkEvent, srcStageMask: VkPipelineStageFlags, dstStageMask: VkPipelineStageFlags, memoryBarrierCount: uint32, pMemoryBarriers: ptr VkMemoryBarrier, bufferMemoryBarrierCount: uint32, pBufferMemoryBarriers: ptr VkBufferMemoryBarrier, imageMemoryBarrierCount: uint32, pImageMemoryBarriers: ptr VkImageMemoryBarrier): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdWaitEvents")) + vkCmdPipelineBarrier = cast[proc(commandBuffer: VkCommandBuffer, srcStageMask: VkPipelineStageFlags, dstStageMask: VkPipelineStageFlags, dependencyFlags: VkDependencyFlags, memoryBarrierCount: uint32, pMemoryBarriers: ptr VkMemoryBarrier, bufferMemoryBarrierCount: uint32, pBufferMemoryBarriers: ptr VkBufferMemoryBarrier, imageMemoryBarrierCount: uint32, pImageMemoryBarriers: ptr VkImageMemoryBarrier): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdPipelineBarrier")) + vkCmdBeginQuery = cast[proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, query: uint32, flags: VkQueryControlFlags): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBeginQuery")) + vkCmdEndQuery = cast[proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, query: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdEndQuery")) + vkCmdResetQueryPool = cast[proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, firstQuery: uint32, queryCount: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdResetQueryPool")) + vkCmdWriteTimestamp = cast[proc(commandBuffer: VkCommandBuffer, pipelineStage: VkPipelineStageFlagBits, queryPool: VkQueryPool, query: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdWriteTimestamp")) + vkCmdCopyQueryPoolResults = cast[proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, firstQuery: uint32, queryCount: uint32, dstBuffer: VkBuffer, dstOffset: VkDeviceSize, stride: VkDeviceSize, flags: VkQueryResultFlags): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyQueryPoolResults")) + vkCmdPushConstants = cast[proc(commandBuffer: VkCommandBuffer, layout: VkPipelineLayout, stageFlags: VkShaderStageFlags, offset: uint32, size: uint32, pValues: pointer): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdPushConstants")) + vkCmdBeginRenderPass = cast[proc(commandBuffer: VkCommandBuffer, pRenderPassBegin: ptr VkRenderPassBeginInfo, contents: VkSubpassContents): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBeginRenderPass")) + vkCmdNextSubpass = cast[proc(commandBuffer: VkCommandBuffer, contents: VkSubpassContents): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdNextSubpass")) + vkCmdEndRenderPass = cast[proc(commandBuffer: VkCommandBuffer): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdEndRenderPass")) + vkCmdExecuteCommands = cast[proc(commandBuffer: VkCommandBuffer, commandBufferCount: uint32, pCommandBuffers: ptr VkCommandBuffer): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdExecuteCommands")) + +# feature VK_VERSION_1_1 +var + vkEnumerateInstanceVersion*: proc(pApiVersion: ptr uint32): VkResult {.stdcall.} + vkBindBufferMemory2*: proc(device: VkDevice, bindInfoCount: uint32, pBindInfos: ptr VkBindBufferMemoryInfo): VkResult {.stdcall.} + vkBindImageMemory2*: proc(device: VkDevice, bindInfoCount: uint32, pBindInfos: ptr VkBindImageMemoryInfo): VkResult {.stdcall.} + vkGetDeviceGroupPeerMemoryFeatures*: proc(device: VkDevice, heapIndex: uint32, localDeviceIndex: uint32, remoteDeviceIndex: uint32, pPeerMemoryFeatures: ptr VkPeerMemoryFeatureFlags): void {.stdcall.} + vkCmdSetDeviceMask*: proc(commandBuffer: VkCommandBuffer, deviceMask: uint32): void {.stdcall.} + vkCmdDispatchBase*: proc(commandBuffer: VkCommandBuffer, baseGroupX: uint32, baseGroupY: uint32, baseGroupZ: uint32, groupCountX: uint32, groupCountY: uint32, groupCountZ: uint32): void {.stdcall.} + vkEnumeratePhysicalDeviceGroups*: proc(instance: VkInstance, pPhysicalDeviceGroupCount: ptr uint32, pPhysicalDeviceGroupProperties: ptr VkPhysicalDeviceGroupProperties): VkResult {.stdcall.} + vkGetImageMemoryRequirements2*: proc(device: VkDevice, pInfo: ptr VkImageMemoryRequirementsInfo2, pMemoryRequirements: ptr VkMemoryRequirements2): void {.stdcall.} + vkGetBufferMemoryRequirements2*: proc(device: VkDevice, pInfo: ptr VkBufferMemoryRequirementsInfo2, pMemoryRequirements: ptr VkMemoryRequirements2): void {.stdcall.} + vkGetImageSparseMemoryRequirements2*: proc(device: VkDevice, pInfo: ptr VkImageSparseMemoryRequirementsInfo2, pSparseMemoryRequirementCount: ptr uint32, pSparseMemoryRequirements: ptr VkSparseImageMemoryRequirements2): void {.stdcall.} + vkGetPhysicalDeviceFeatures2*: proc(physicalDevice: VkPhysicalDevice, pFeatures: ptr VkPhysicalDeviceFeatures2): void {.stdcall.} + vkGetPhysicalDeviceProperties2*: proc(physicalDevice: VkPhysicalDevice, pProperties: ptr VkPhysicalDeviceProperties2): void {.stdcall.} + vkGetPhysicalDeviceFormatProperties2*: proc(physicalDevice: VkPhysicalDevice, format: VkFormat, pFormatProperties: ptr VkFormatProperties2): void {.stdcall.} + vkGetPhysicalDeviceImageFormatProperties2*: proc(physicalDevice: VkPhysicalDevice, pImageFormatInfo: ptr VkPhysicalDeviceImageFormatInfo2, pImageFormatProperties: ptr VkImageFormatProperties2): VkResult {.stdcall.} + vkGetPhysicalDeviceQueueFamilyProperties2*: proc(physicalDevice: VkPhysicalDevice, pQueueFamilyPropertyCount: ptr uint32, pQueueFamilyProperties: ptr VkQueueFamilyProperties2): void {.stdcall.} + vkGetPhysicalDeviceMemoryProperties2*: proc(physicalDevice: VkPhysicalDevice, pMemoryProperties: ptr VkPhysicalDeviceMemoryProperties2): void {.stdcall.} + vkGetPhysicalDeviceSparseImageFormatProperties2*: proc(physicalDevice: VkPhysicalDevice, pFormatInfo: ptr VkPhysicalDeviceSparseImageFormatInfo2, pPropertyCount: ptr uint32, pProperties: ptr VkSparseImageFormatProperties2): void {.stdcall.} + vkTrimCommandPool*: proc(device: VkDevice, commandPool: VkCommandPool, flags: VkCommandPoolTrimFlags): void {.stdcall.} + vkGetDeviceQueue2*: proc(device: VkDevice, pQueueInfo: ptr VkDeviceQueueInfo2, pQueue: ptr VkQueue): void {.stdcall.} + vkCreateSamplerYcbcrConversion*: proc(device: VkDevice, pCreateInfo: ptr VkSamplerYcbcrConversionCreateInfo, pAllocator: ptr VkAllocationCallbacks, pYcbcrConversion: ptr VkSamplerYcbcrConversion): VkResult {.stdcall.} + vkDestroySamplerYcbcrConversion*: proc(device: VkDevice, ycbcrConversion: VkSamplerYcbcrConversion, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} + vkCreateDescriptorUpdateTemplate*: proc(device: VkDevice, pCreateInfo: ptr VkDescriptorUpdateTemplateCreateInfo, pAllocator: ptr VkAllocationCallbacks, pDescriptorUpdateTemplate: ptr VkDescriptorUpdateTemplate): VkResult {.stdcall.} + vkDestroyDescriptorUpdateTemplate*: proc(device: VkDevice, descriptorUpdateTemplate: VkDescriptorUpdateTemplate, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} + vkUpdateDescriptorSetWithTemplate*: proc(device: VkDevice, descriptorSet: VkDescriptorSet, descriptorUpdateTemplate: VkDescriptorUpdateTemplate, pData: pointer): void {.stdcall.} + vkGetPhysicalDeviceExternalBufferProperties*: proc(physicalDevice: VkPhysicalDevice, pExternalBufferInfo: ptr VkPhysicalDeviceExternalBufferInfo, pExternalBufferProperties: ptr VkExternalBufferProperties): void {.stdcall.} + vkGetPhysicalDeviceExternalFenceProperties*: proc(physicalDevice: VkPhysicalDevice, pExternalFenceInfo: ptr VkPhysicalDeviceExternalFenceInfo, pExternalFenceProperties: ptr VkExternalFenceProperties): void {.stdcall.} + vkGetPhysicalDeviceExternalSemaphoreProperties*: proc(physicalDevice: VkPhysicalDevice, pExternalSemaphoreInfo: ptr VkPhysicalDeviceExternalSemaphoreInfo, pExternalSemaphoreProperties: ptr VkExternalSemaphoreProperties): void {.stdcall.} + vkGetDescriptorSetLayoutSupport*: proc(device: VkDevice, pCreateInfo: ptr VkDescriptorSetLayoutCreateInfo, pSupport: ptr VkDescriptorSetLayoutSupport): void {.stdcall.} +proc loadVK_VERSION_1_1*(instance: VkInstance) = + vkBindBufferMemory2 = cast[proc(device: VkDevice, bindInfoCount: uint32, pBindInfos: ptr VkBindBufferMemoryInfo): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkBindBufferMemory2")) + vkBindImageMemory2 = cast[proc(device: VkDevice, bindInfoCount: uint32, pBindInfos: ptr VkBindImageMemoryInfo): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkBindImageMemory2")) + vkGetDeviceGroupPeerMemoryFeatures = cast[proc(device: VkDevice, heapIndex: uint32, localDeviceIndex: uint32, remoteDeviceIndex: uint32, pPeerMemoryFeatures: ptr VkPeerMemoryFeatureFlags): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceGroupPeerMemoryFeatures")) + vkCmdSetDeviceMask = cast[proc(commandBuffer: VkCommandBuffer, deviceMask: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDeviceMask")) + vkCmdDispatchBase = cast[proc(commandBuffer: VkCommandBuffer, baseGroupX: uint32, baseGroupY: uint32, baseGroupZ: uint32, groupCountX: uint32, groupCountY: uint32, groupCountZ: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDispatchBase")) + vkEnumeratePhysicalDeviceGroups = cast[proc(instance: VkInstance, pPhysicalDeviceGroupCount: ptr uint32, pPhysicalDeviceGroupProperties: ptr VkPhysicalDeviceGroupProperties): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkEnumeratePhysicalDeviceGroups")) + vkGetImageMemoryRequirements2 = cast[proc(device: VkDevice, pInfo: ptr VkImageMemoryRequirementsInfo2, pMemoryRequirements: ptr VkMemoryRequirements2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetImageMemoryRequirements2")) + vkGetBufferMemoryRequirements2 = cast[proc(device: VkDevice, pInfo: ptr VkBufferMemoryRequirementsInfo2, pMemoryRequirements: ptr VkMemoryRequirements2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetBufferMemoryRequirements2")) + vkGetImageSparseMemoryRequirements2 = cast[proc(device: VkDevice, pInfo: ptr VkImageSparseMemoryRequirementsInfo2, pSparseMemoryRequirementCount: ptr uint32, pSparseMemoryRequirements: ptr VkSparseImageMemoryRequirements2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetImageSparseMemoryRequirements2")) + vkGetPhysicalDeviceFeatures2 = cast[proc(physicalDevice: VkPhysicalDevice, pFeatures: ptr VkPhysicalDeviceFeatures2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceFeatures2")) + vkGetPhysicalDeviceProperties2 = cast[proc(physicalDevice: VkPhysicalDevice, pProperties: ptr VkPhysicalDeviceProperties2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceProperties2")) + vkGetPhysicalDeviceFormatProperties2 = cast[proc(physicalDevice: VkPhysicalDevice, format: VkFormat, pFormatProperties: ptr VkFormatProperties2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceFormatProperties2")) + vkGetPhysicalDeviceImageFormatProperties2 = cast[proc(physicalDevice: VkPhysicalDevice, pImageFormatInfo: ptr VkPhysicalDeviceImageFormatInfo2, pImageFormatProperties: ptr VkImageFormatProperties2): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceImageFormatProperties2")) + vkGetPhysicalDeviceQueueFamilyProperties2 = cast[proc(physicalDevice: VkPhysicalDevice, pQueueFamilyPropertyCount: ptr uint32, pQueueFamilyProperties: ptr VkQueueFamilyProperties2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceQueueFamilyProperties2")) + vkGetPhysicalDeviceMemoryProperties2 = cast[proc(physicalDevice: VkPhysicalDevice, pMemoryProperties: ptr VkPhysicalDeviceMemoryProperties2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceMemoryProperties2")) + vkGetPhysicalDeviceSparseImageFormatProperties2 = cast[proc(physicalDevice: VkPhysicalDevice, pFormatInfo: ptr VkPhysicalDeviceSparseImageFormatInfo2, pPropertyCount: ptr uint32, pProperties: ptr VkSparseImageFormatProperties2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSparseImageFormatProperties2")) + vkTrimCommandPool = cast[proc(device: VkDevice, commandPool: VkCommandPool, flags: VkCommandPoolTrimFlags): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkTrimCommandPool")) + vkGetDeviceQueue2 = cast[proc(device: VkDevice, pQueueInfo: ptr VkDeviceQueueInfo2, pQueue: ptr VkQueue): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceQueue2")) + vkCreateSamplerYcbcrConversion = cast[proc(device: VkDevice, pCreateInfo: ptr VkSamplerYcbcrConversionCreateInfo, pAllocator: ptr VkAllocationCallbacks, pYcbcrConversion: ptr VkSamplerYcbcrConversion): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateSamplerYcbcrConversion")) + vkDestroySamplerYcbcrConversion = cast[proc(device: VkDevice, ycbcrConversion: VkSamplerYcbcrConversion, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroySamplerYcbcrConversion")) + vkCreateDescriptorUpdateTemplate = cast[proc(device: VkDevice, pCreateInfo: ptr VkDescriptorUpdateTemplateCreateInfo, pAllocator: ptr VkAllocationCallbacks, pDescriptorUpdateTemplate: ptr VkDescriptorUpdateTemplate): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateDescriptorUpdateTemplate")) + vkDestroyDescriptorUpdateTemplate = cast[proc(device: VkDevice, descriptorUpdateTemplate: VkDescriptorUpdateTemplate, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyDescriptorUpdateTemplate")) + vkUpdateDescriptorSetWithTemplate = cast[proc(device: VkDevice, descriptorSet: VkDescriptorSet, descriptorUpdateTemplate: VkDescriptorUpdateTemplate, pData: pointer): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkUpdateDescriptorSetWithTemplate")) + vkGetPhysicalDeviceExternalBufferProperties = cast[proc(physicalDevice: VkPhysicalDevice, pExternalBufferInfo: ptr VkPhysicalDeviceExternalBufferInfo, pExternalBufferProperties: ptr VkExternalBufferProperties): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceExternalBufferProperties")) + vkGetPhysicalDeviceExternalFenceProperties = cast[proc(physicalDevice: VkPhysicalDevice, pExternalFenceInfo: ptr VkPhysicalDeviceExternalFenceInfo, pExternalFenceProperties: ptr VkExternalFenceProperties): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceExternalFenceProperties")) + vkGetPhysicalDeviceExternalSemaphoreProperties = cast[proc(physicalDevice: VkPhysicalDevice, pExternalSemaphoreInfo: ptr VkPhysicalDeviceExternalSemaphoreInfo, pExternalSemaphoreProperties: ptr VkExternalSemaphoreProperties): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceExternalSemaphoreProperties")) + vkGetDescriptorSetLayoutSupport = cast[proc(device: VkDevice, pCreateInfo: ptr VkDescriptorSetLayoutCreateInfo, pSupport: ptr VkDescriptorSetLayoutSupport): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDescriptorSetLayoutSupport")) + +# feature VK_VERSION_1_2 +var + vkCmdDrawIndirectCount*: proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, countBuffer: VkBuffer, countBufferOffset: VkDeviceSize, maxDrawCount: uint32, stride: uint32): void {.stdcall.} + vkCmdDrawIndexedIndirectCount*: proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, countBuffer: VkBuffer, countBufferOffset: VkDeviceSize, maxDrawCount: uint32, stride: uint32): void {.stdcall.} + vkCreateRenderPass2*: proc(device: VkDevice, pCreateInfo: ptr VkRenderPassCreateInfo2, pAllocator: ptr VkAllocationCallbacks, pRenderPass: ptr VkRenderPass): VkResult {.stdcall.} + vkCmdBeginRenderPass2*: proc(commandBuffer: VkCommandBuffer, pRenderPassBegin: ptr VkRenderPassBeginInfo, pSubpassBeginInfo: ptr VkSubpassBeginInfo): void {.stdcall.} + vkCmdNextSubpass2*: proc(commandBuffer: VkCommandBuffer, pSubpassBeginInfo: ptr VkSubpassBeginInfo, pSubpassEndInfo: ptr VkSubpassEndInfo): void {.stdcall.} + vkCmdEndRenderPass2*: proc(commandBuffer: VkCommandBuffer, pSubpassEndInfo: ptr VkSubpassEndInfo): void {.stdcall.} + vkResetQueryPool*: proc(device: VkDevice, queryPool: VkQueryPool, firstQuery: uint32, queryCount: uint32): void {.stdcall.} + vkGetSemaphoreCounterValue*: proc(device: VkDevice, semaphore: VkSemaphore, pValue: ptr uint64): VkResult {.stdcall.} + vkWaitSemaphores*: proc(device: VkDevice, pWaitInfo: ptr VkSemaphoreWaitInfo, timeout: uint64): VkResult {.stdcall.} + vkSignalSemaphore*: proc(device: VkDevice, pSignalInfo: ptr VkSemaphoreSignalInfo): VkResult {.stdcall.} + vkGetBufferDeviceAddress*: proc(device: VkDevice, pInfo: ptr VkBufferDeviceAddressInfo): VkDeviceAddress {.stdcall.} + vkGetBufferOpaqueCaptureAddress*: proc(device: VkDevice, pInfo: ptr VkBufferDeviceAddressInfo): uint64 {.stdcall.} + vkGetDeviceMemoryOpaqueCaptureAddress*: proc(device: VkDevice, pInfo: ptr VkDeviceMemoryOpaqueCaptureAddressInfo): uint64 {.stdcall.} +proc loadVK_VERSION_1_2*(instance: VkInstance) = + vkCmdDrawIndirectCount = cast[proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, countBuffer: VkBuffer, countBufferOffset: VkDeviceSize, maxDrawCount: uint32, stride: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawIndirectCount")) + vkCmdDrawIndexedIndirectCount = cast[proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, countBuffer: VkBuffer, countBufferOffset: VkDeviceSize, maxDrawCount: uint32, stride: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawIndexedIndirectCount")) + vkCreateRenderPass2 = cast[proc(device: VkDevice, pCreateInfo: ptr VkRenderPassCreateInfo2, pAllocator: ptr VkAllocationCallbacks, pRenderPass: ptr VkRenderPass): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateRenderPass2")) + vkCmdBeginRenderPass2 = cast[proc(commandBuffer: VkCommandBuffer, pRenderPassBegin: ptr VkRenderPassBeginInfo, pSubpassBeginInfo: ptr VkSubpassBeginInfo): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBeginRenderPass2")) + vkCmdNextSubpass2 = cast[proc(commandBuffer: VkCommandBuffer, pSubpassBeginInfo: ptr VkSubpassBeginInfo, pSubpassEndInfo: ptr VkSubpassEndInfo): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdNextSubpass2")) + vkCmdEndRenderPass2 = cast[proc(commandBuffer: VkCommandBuffer, pSubpassEndInfo: ptr VkSubpassEndInfo): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdEndRenderPass2")) + vkResetQueryPool = cast[proc(device: VkDevice, queryPool: VkQueryPool, firstQuery: uint32, queryCount: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkResetQueryPool")) + vkGetSemaphoreCounterValue = cast[proc(device: VkDevice, semaphore: VkSemaphore, pValue: ptr uint64): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetSemaphoreCounterValue")) + vkWaitSemaphores = cast[proc(device: VkDevice, pWaitInfo: ptr VkSemaphoreWaitInfo, timeout: uint64): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkWaitSemaphores")) + vkSignalSemaphore = cast[proc(device: VkDevice, pSignalInfo: ptr VkSemaphoreSignalInfo): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkSignalSemaphore")) + vkGetBufferDeviceAddress = cast[proc(device: VkDevice, pInfo: ptr VkBufferDeviceAddressInfo): VkDeviceAddress {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetBufferDeviceAddress")) + vkGetBufferOpaqueCaptureAddress = cast[proc(device: VkDevice, pInfo: ptr VkBufferDeviceAddressInfo): uint64 {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetBufferOpaqueCaptureAddress")) + vkGetDeviceMemoryOpaqueCaptureAddress = cast[proc(device: VkDevice, pInfo: ptr VkDeviceMemoryOpaqueCaptureAddressInfo): uint64 {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceMemoryOpaqueCaptureAddress")) + +# feature VK_VERSION_1_3 +var + vkGetPhysicalDeviceToolProperties*: proc(physicalDevice: VkPhysicalDevice, pToolCount: ptr uint32, pToolProperties: ptr VkPhysicalDeviceToolProperties): VkResult {.stdcall.} + vkCreatePrivateDataSlot*: proc(device: VkDevice, pCreateInfo: ptr VkPrivateDataSlotCreateInfo, pAllocator: ptr VkAllocationCallbacks, pPrivateDataSlot: ptr VkPrivateDataSlot): VkResult {.stdcall.} + vkDestroyPrivateDataSlot*: proc(device: VkDevice, privateDataSlot: VkPrivateDataSlot, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} + vkSetPrivateData*: proc(device: VkDevice, objectType: VkObjectType, objectHandle: uint64, privateDataSlot: VkPrivateDataSlot, data: uint64): VkResult {.stdcall.} + vkGetPrivateData*: proc(device: VkDevice, objectType: VkObjectType, objectHandle: uint64, privateDataSlot: VkPrivateDataSlot, pData: ptr uint64): void {.stdcall.} + vkCmdSetEvent2*: proc(commandBuffer: VkCommandBuffer, event: VkEvent, pDependencyInfo: ptr VkDependencyInfo): void {.stdcall.} + vkCmdResetEvent2*: proc(commandBuffer: VkCommandBuffer, event: VkEvent, stageMask: VkPipelineStageFlags2): void {.stdcall.} + vkCmdWaitEvents2*: proc(commandBuffer: VkCommandBuffer, eventCount: uint32, pEvents: ptr VkEvent, pDependencyInfos: ptr VkDependencyInfo): void {.stdcall.} + vkCmdPipelineBarrier2*: proc(commandBuffer: VkCommandBuffer, pDependencyInfo: ptr VkDependencyInfo): void {.stdcall.} + vkCmdWriteTimestamp2*: proc(commandBuffer: VkCommandBuffer, stage: VkPipelineStageFlags2, queryPool: VkQueryPool, query: uint32): void {.stdcall.} + vkQueueSubmit2*: proc(queue: VkQueue, submitCount: uint32, pSubmits: ptr VkSubmitInfo2, fence: VkFence): VkResult {.stdcall.} + vkCmdCopyBuffer2*: proc(commandBuffer: VkCommandBuffer, pCopyBufferInfo: ptr VkCopyBufferInfo2): void {.stdcall.} + vkCmdCopyImage2*: proc(commandBuffer: VkCommandBuffer, pCopyImageInfo: ptr VkCopyImageInfo2): void {.stdcall.} + vkCmdCopyBufferToImage2*: proc(commandBuffer: VkCommandBuffer, pCopyBufferToImageInfo: ptr VkCopyBufferToImageInfo2): void {.stdcall.} + vkCmdCopyImageToBuffer2*: proc(commandBuffer: VkCommandBuffer, pCopyImageToBufferInfo: ptr VkCopyImageToBufferInfo2): void {.stdcall.} + vkCmdBlitImage2*: proc(commandBuffer: VkCommandBuffer, pBlitImageInfo: ptr VkBlitImageInfo2): void {.stdcall.} + vkCmdResolveImage2*: proc(commandBuffer: VkCommandBuffer, pResolveImageInfo: ptr VkResolveImageInfo2): void {.stdcall.} + vkCmdBeginRendering*: proc(commandBuffer: VkCommandBuffer, pRenderingInfo: ptr VkRenderingInfo): void {.stdcall.} + vkCmdEndRendering*: proc(commandBuffer: VkCommandBuffer): void {.stdcall.} + vkCmdSetCullMode*: proc(commandBuffer: VkCommandBuffer, cullMode: VkCullModeFlags): void {.stdcall.} + vkCmdSetFrontFace*: proc(commandBuffer: VkCommandBuffer, frontFace: VkFrontFace): void {.stdcall.} + vkCmdSetPrimitiveTopology*: proc(commandBuffer: VkCommandBuffer, primitiveTopology: VkPrimitiveTopology): void {.stdcall.} + vkCmdSetViewportWithCount*: proc(commandBuffer: VkCommandBuffer, viewportCount: uint32, pViewports: ptr VkViewport): void {.stdcall.} + vkCmdSetScissorWithCount*: proc(commandBuffer: VkCommandBuffer, scissorCount: uint32, pScissors: ptr VkRect2D): void {.stdcall.} + vkCmdBindVertexBuffers2*: proc(commandBuffer: VkCommandBuffer, firstBinding: uint32, bindingCount: uint32, pBuffers: ptr VkBuffer, pOffsets: ptr VkDeviceSize, pSizes: ptr VkDeviceSize, pStrides: ptr VkDeviceSize): void {.stdcall.} + vkCmdSetDepthTestEnable*: proc(commandBuffer: VkCommandBuffer, depthTestEnable: VkBool32): void {.stdcall.} + vkCmdSetDepthWriteEnable*: proc(commandBuffer: VkCommandBuffer, depthWriteEnable: VkBool32): void {.stdcall.} + vkCmdSetDepthCompareOp*: proc(commandBuffer: VkCommandBuffer, depthCompareOp: VkCompareOp): void {.stdcall.} + vkCmdSetDepthBoundsTestEnable*: proc(commandBuffer: VkCommandBuffer, depthBoundsTestEnable: VkBool32): void {.stdcall.} + vkCmdSetStencilTestEnable*: proc(commandBuffer: VkCommandBuffer, stencilTestEnable: VkBool32): void {.stdcall.} + vkCmdSetStencilOp*: proc(commandBuffer: VkCommandBuffer, faceMask: VkStencilFaceFlags, failOp: VkStencilOp, passOp: VkStencilOp, depthFailOp: VkStencilOp, compareOp: VkCompareOp): void {.stdcall.} + vkCmdSetRasterizerDiscardEnable*: proc(commandBuffer: VkCommandBuffer, rasterizerDiscardEnable: VkBool32): void {.stdcall.} + vkCmdSetDepthBiasEnable*: proc(commandBuffer: VkCommandBuffer, depthBiasEnable: VkBool32): void {.stdcall.} + vkCmdSetPrimitiveRestartEnable*: proc(commandBuffer: VkCommandBuffer, primitiveRestartEnable: VkBool32): void {.stdcall.} + vkGetDeviceBufferMemoryRequirements*: proc(device: VkDevice, pInfo: ptr VkDeviceBufferMemoryRequirements, pMemoryRequirements: ptr VkMemoryRequirements2): void {.stdcall.} + vkGetDeviceImageMemoryRequirements*: proc(device: VkDevice, pInfo: ptr VkDeviceImageMemoryRequirements, pMemoryRequirements: ptr VkMemoryRequirements2): void {.stdcall.} + vkGetDeviceImageSparseMemoryRequirements*: proc(device: VkDevice, pInfo: ptr VkDeviceImageMemoryRequirements, pSparseMemoryRequirementCount: ptr uint32, pSparseMemoryRequirements: ptr VkSparseImageMemoryRequirements2): void {.stdcall.} +proc loadVK_VERSION_1_3*(instance: VkInstance) = + vkGetPhysicalDeviceToolProperties = cast[proc(physicalDevice: VkPhysicalDevice, pToolCount: ptr uint32, pToolProperties: ptr VkPhysicalDeviceToolProperties): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceToolProperties")) + vkCreatePrivateDataSlot = cast[proc(device: VkDevice, pCreateInfo: ptr VkPrivateDataSlotCreateInfo, pAllocator: ptr VkAllocationCallbacks, pPrivateDataSlot: ptr VkPrivateDataSlot): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreatePrivateDataSlot")) + vkDestroyPrivateDataSlot = cast[proc(device: VkDevice, privateDataSlot: VkPrivateDataSlot, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyPrivateDataSlot")) + vkSetPrivateData = cast[proc(device: VkDevice, objectType: VkObjectType, objectHandle: uint64, privateDataSlot: VkPrivateDataSlot, data: uint64): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkSetPrivateData")) + vkGetPrivateData = cast[proc(device: VkDevice, objectType: VkObjectType, objectHandle: uint64, privateDataSlot: VkPrivateDataSlot, pData: ptr uint64): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPrivateData")) + vkCmdSetEvent2 = cast[proc(commandBuffer: VkCommandBuffer, event: VkEvent, pDependencyInfo: ptr VkDependencyInfo): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetEvent2")) + vkCmdResetEvent2 = cast[proc(commandBuffer: VkCommandBuffer, event: VkEvent, stageMask: VkPipelineStageFlags2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdResetEvent2")) + vkCmdWaitEvents2 = cast[proc(commandBuffer: VkCommandBuffer, eventCount: uint32, pEvents: ptr VkEvent, pDependencyInfos: ptr VkDependencyInfo): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdWaitEvents2")) + vkCmdPipelineBarrier2 = cast[proc(commandBuffer: VkCommandBuffer, pDependencyInfo: ptr VkDependencyInfo): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdPipelineBarrier2")) + vkCmdWriteTimestamp2 = cast[proc(commandBuffer: VkCommandBuffer, stage: VkPipelineStageFlags2, queryPool: VkQueryPool, query: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdWriteTimestamp2")) + vkQueueSubmit2 = cast[proc(queue: VkQueue, submitCount: uint32, pSubmits: ptr VkSubmitInfo2, fence: VkFence): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkQueueSubmit2")) + vkCmdCopyBuffer2 = cast[proc(commandBuffer: VkCommandBuffer, pCopyBufferInfo: ptr VkCopyBufferInfo2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyBuffer2")) + vkCmdCopyImage2 = cast[proc(commandBuffer: VkCommandBuffer, pCopyImageInfo: ptr VkCopyImageInfo2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyImage2")) + vkCmdCopyBufferToImage2 = cast[proc(commandBuffer: VkCommandBuffer, pCopyBufferToImageInfo: ptr VkCopyBufferToImageInfo2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyBufferToImage2")) + vkCmdCopyImageToBuffer2 = cast[proc(commandBuffer: VkCommandBuffer, pCopyImageToBufferInfo: ptr VkCopyImageToBufferInfo2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyImageToBuffer2")) + vkCmdBlitImage2 = cast[proc(commandBuffer: VkCommandBuffer, pBlitImageInfo: ptr VkBlitImageInfo2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBlitImage2")) + vkCmdResolveImage2 = cast[proc(commandBuffer: VkCommandBuffer, pResolveImageInfo: ptr VkResolveImageInfo2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdResolveImage2")) + vkCmdBeginRendering = cast[proc(commandBuffer: VkCommandBuffer, pRenderingInfo: ptr VkRenderingInfo): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBeginRendering")) + vkCmdEndRendering = cast[proc(commandBuffer: VkCommandBuffer): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdEndRendering")) + vkCmdSetCullMode = cast[proc(commandBuffer: VkCommandBuffer, cullMode: VkCullModeFlags): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetCullMode")) + vkCmdSetFrontFace = cast[proc(commandBuffer: VkCommandBuffer, frontFace: VkFrontFace): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetFrontFace")) + vkCmdSetPrimitiveTopology = cast[proc(commandBuffer: VkCommandBuffer, primitiveTopology: VkPrimitiveTopology): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetPrimitiveTopology")) + vkCmdSetViewportWithCount = cast[proc(commandBuffer: VkCommandBuffer, viewportCount: uint32, pViewports: ptr VkViewport): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetViewportWithCount")) + vkCmdSetScissorWithCount = cast[proc(commandBuffer: VkCommandBuffer, scissorCount: uint32, pScissors: ptr VkRect2D): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetScissorWithCount")) + vkCmdBindVertexBuffers2 = cast[proc(commandBuffer: VkCommandBuffer, firstBinding: uint32, bindingCount: uint32, pBuffers: ptr VkBuffer, pOffsets: ptr VkDeviceSize, pSizes: ptr VkDeviceSize, pStrides: ptr VkDeviceSize): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBindVertexBuffers2")) + vkCmdSetDepthTestEnable = cast[proc(commandBuffer: VkCommandBuffer, depthTestEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDepthTestEnable")) + vkCmdSetDepthWriteEnable = cast[proc(commandBuffer: VkCommandBuffer, depthWriteEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDepthWriteEnable")) + vkCmdSetDepthCompareOp = cast[proc(commandBuffer: VkCommandBuffer, depthCompareOp: VkCompareOp): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDepthCompareOp")) + vkCmdSetDepthBoundsTestEnable = cast[proc(commandBuffer: VkCommandBuffer, depthBoundsTestEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDepthBoundsTestEnable")) + vkCmdSetStencilTestEnable = cast[proc(commandBuffer: VkCommandBuffer, stencilTestEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetStencilTestEnable")) + vkCmdSetStencilOp = cast[proc(commandBuffer: VkCommandBuffer, faceMask: VkStencilFaceFlags, failOp: VkStencilOp, passOp: VkStencilOp, depthFailOp: VkStencilOp, compareOp: VkCompareOp): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetStencilOp")) + vkCmdSetRasterizerDiscardEnable = cast[proc(commandBuffer: VkCommandBuffer, rasterizerDiscardEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetRasterizerDiscardEnable")) + vkCmdSetDepthBiasEnable = cast[proc(commandBuffer: VkCommandBuffer, depthBiasEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDepthBiasEnable")) + vkCmdSetPrimitiveRestartEnable = cast[proc(commandBuffer: VkCommandBuffer, primitiveRestartEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetPrimitiveRestartEnable")) + vkGetDeviceBufferMemoryRequirements = cast[proc(device: VkDevice, pInfo: ptr VkDeviceBufferMemoryRequirements, pMemoryRequirements: ptr VkMemoryRequirements2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceBufferMemoryRequirements")) + vkGetDeviceImageMemoryRequirements = cast[proc(device: VkDevice, pInfo: ptr VkDeviceImageMemoryRequirements, pMemoryRequirements: ptr VkMemoryRequirements2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceImageMemoryRequirements")) + vkGetDeviceImageSparseMemoryRequirements = cast[proc(device: VkDevice, pInfo: ptr VkDeviceImageMemoryRequirements, pSparseMemoryRequirementCount: ptr uint32, pSparseMemoryRequirements: ptr VkSparseImageMemoryRequirements2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceImageSparseMemoryRequirements")) + + +proc loadVulkan*(instance: VkInstance) = + loadVK_VERSION_1_0(instance) + loadVK_VERSION_1_1(instance) + loadVK_VERSION_1_2(instance) + loadVK_VERSION_1_3(instance) + +proc loadVK_NV_geometry_shader_passthrough*(instance: VkInstance) = + discard + +proc loadVK_EXT_rasterization_order_attachment_access*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +proc loadVK_IMG_format_pvrtc*(instance: VkInstance) = + discard + +proc loadVK_AMD_shader_fragment_mask*(instance: VkInstance) = + discard + +proc loadVK_EXT_primitive_topology_list_restart*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +proc loadVK_KHR_global_priority*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +proc loadVK_QCOM_image_processing*(instance: VkInstance) = + loadVK_VERSION_1_3(instance) + +# extension VK_AMD_shader_info +var + vkGetShaderInfoAMD*: proc(device: VkDevice, pipeline: VkPipeline, shaderStage: VkShaderStageFlagBits, infoType: VkShaderInfoTypeAMD, pInfoSize: ptr csize_t, pInfo: pointer): VkResult {.stdcall.} +proc loadVK_AMD_shader_info*(instance: VkInstance) = + vkGetShaderInfoAMD = cast[proc(device: VkDevice, pipeline: VkPipeline, shaderStage: VkShaderStageFlagBits, infoType: VkShaderInfoTypeAMD, pInfoSize: ptr csize_t, pInfo: pointer): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetShaderInfoAMD")) + +proc loadVK_AMD_gpu_shader_int16*(instance: VkInstance) = + discard + +proc loadVK_EXT_pipeline_robustness*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +# extension VK_EXT_sample_locations +var + vkCmdSetSampleLocationsEXT*: proc(commandBuffer: VkCommandBuffer, pSampleLocationsInfo: ptr VkSampleLocationsInfoEXT): void {.stdcall.} + vkGetPhysicalDeviceMultisamplePropertiesEXT*: proc(physicalDevice: VkPhysicalDevice, samples: VkSampleCountFlagBits, pMultisampleProperties: ptr VkMultisamplePropertiesEXT): void {.stdcall.} +proc loadVK_EXT_sample_locations*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + vkCmdSetSampleLocationsEXT = cast[proc(commandBuffer: VkCommandBuffer, pSampleLocationsInfo: ptr VkSampleLocationsInfoEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetSampleLocationsEXT")) + vkGetPhysicalDeviceMultisamplePropertiesEXT = cast[proc(physicalDevice: VkPhysicalDevice, samples: VkSampleCountFlagBits, pMultisampleProperties: ptr VkMultisamplePropertiesEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceMultisamplePropertiesEXT")) + +# extension VK_EXT_descriptor_buffer +var + vkGetDescriptorSetLayoutSizeEXT*: proc(device: VkDevice, layout: VkDescriptorSetLayout, pLayoutSizeInBytes: ptr VkDeviceSize): void {.stdcall.} + vkGetDescriptorSetLayoutBindingOffsetEXT*: proc(device: VkDevice, layout: VkDescriptorSetLayout, binding: uint32, pOffset: ptr VkDeviceSize): void {.stdcall.} + vkGetDescriptorEXT*: proc(device: VkDevice, pDescriptorInfo: ptr VkDescriptorGetInfoEXT, dataSize: csize_t, pDescriptor: pointer): void {.stdcall.} + vkCmdBindDescriptorBuffersEXT*: proc(commandBuffer: VkCommandBuffer, bufferCount: uint32, pBindingInfos: ptr VkDescriptorBufferBindingInfoEXT): void {.stdcall.} + vkCmdSetDescriptorBufferOffsetsEXT*: proc(commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, layout: VkPipelineLayout, firstSet: uint32, setCount: uint32, pBufferIndices: ptr uint32, pOffsets: ptr VkDeviceSize): void {.stdcall.} + vkCmdBindDescriptorBufferEmbeddedSamplersEXT*: proc(commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, layout: VkPipelineLayout, set: uint32): void {.stdcall.} + vkGetBufferOpaqueCaptureDescriptorDataEXT*: proc(device: VkDevice, pInfo: ptr VkBufferCaptureDescriptorDataInfoEXT, pData: pointer): VkResult {.stdcall.} + vkGetImageOpaqueCaptureDescriptorDataEXT*: proc(device: VkDevice, pInfo: ptr VkImageCaptureDescriptorDataInfoEXT, pData: pointer): VkResult {.stdcall.} + vkGetImageViewOpaqueCaptureDescriptorDataEXT*: proc(device: VkDevice, pInfo: ptr VkImageViewCaptureDescriptorDataInfoEXT, pData: pointer): VkResult {.stdcall.} + vkGetSamplerOpaqueCaptureDescriptorDataEXT*: proc(device: VkDevice, pInfo: ptr VkSamplerCaptureDescriptorDataInfoEXT, pData: pointer): VkResult {.stdcall.} + vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT*: proc(device: VkDevice, pInfo: ptr VkAccelerationStructureCaptureDescriptorDataInfoEXT, pData: pointer): VkResult {.stdcall.} +proc loadVK_EXT_descriptor_buffer*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + loadVK_VERSION_1_2(instance) + loadVK_VERSION_1_3(instance) + loadVK_VERSION_1_2(instance) + vkGetDescriptorSetLayoutSizeEXT = cast[proc(device: VkDevice, layout: VkDescriptorSetLayout, pLayoutSizeInBytes: ptr VkDeviceSize): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDescriptorSetLayoutSizeEXT")) + vkGetDescriptorSetLayoutBindingOffsetEXT = cast[proc(device: VkDevice, layout: VkDescriptorSetLayout, binding: uint32, pOffset: ptr VkDeviceSize): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDescriptorSetLayoutBindingOffsetEXT")) + vkGetDescriptorEXT = cast[proc(device: VkDevice, pDescriptorInfo: ptr VkDescriptorGetInfoEXT, dataSize: csize_t, pDescriptor: pointer): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDescriptorEXT")) + vkCmdBindDescriptorBuffersEXT = cast[proc(commandBuffer: VkCommandBuffer, bufferCount: uint32, pBindingInfos: ptr VkDescriptorBufferBindingInfoEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBindDescriptorBuffersEXT")) + vkCmdSetDescriptorBufferOffsetsEXT = cast[proc(commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, layout: VkPipelineLayout, firstSet: uint32, setCount: uint32, pBufferIndices: ptr uint32, pOffsets: ptr VkDeviceSize): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDescriptorBufferOffsetsEXT")) + vkCmdBindDescriptorBufferEmbeddedSamplersEXT = cast[proc(commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, layout: VkPipelineLayout, set: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBindDescriptorBufferEmbeddedSamplersEXT")) + vkGetBufferOpaqueCaptureDescriptorDataEXT = cast[proc(device: VkDevice, pInfo: ptr VkBufferCaptureDescriptorDataInfoEXT, pData: pointer): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetBufferOpaqueCaptureDescriptorDataEXT")) + vkGetImageOpaqueCaptureDescriptorDataEXT = cast[proc(device: VkDevice, pInfo: ptr VkImageCaptureDescriptorDataInfoEXT, pData: pointer): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetImageOpaqueCaptureDescriptorDataEXT")) + vkGetImageViewOpaqueCaptureDescriptorDataEXT = cast[proc(device: VkDevice, pInfo: ptr VkImageViewCaptureDescriptorDataInfoEXT, pData: pointer): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetImageViewOpaqueCaptureDescriptorDataEXT")) + vkGetSamplerOpaqueCaptureDescriptorDataEXT = cast[proc(device: VkDevice, pInfo: ptr VkSamplerCaptureDescriptorDataInfoEXT, pData: pointer): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetSamplerOpaqueCaptureDescriptorDataEXT")) + vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT = cast[proc(device: VkDevice, pInfo: ptr VkAccelerationStructureCaptureDescriptorDataInfoEXT, pData: pointer): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT")) + +# extension VK_KHR_performance_query +var + vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR*: proc(physicalDevice: VkPhysicalDevice, queueFamilyIndex: uint32, pCounterCount: ptr uint32, pCounters: ptr VkPerformanceCounterKHR, pCounterDescriptions: ptr VkPerformanceCounterDescriptionKHR): VkResult {.stdcall.} + vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR*: proc(physicalDevice: VkPhysicalDevice, pPerformanceQueryCreateInfo: ptr VkQueryPoolPerformanceCreateInfoKHR, pNumPasses: ptr uint32): void {.stdcall.} + vkAcquireProfilingLockKHR*: proc(device: VkDevice, pInfo: ptr VkAcquireProfilingLockInfoKHR): VkResult {.stdcall.} + vkReleaseProfilingLockKHR*: proc(device: VkDevice): void {.stdcall.} +proc loadVK_KHR_performance_query*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = cast[proc(physicalDevice: VkPhysicalDevice, queueFamilyIndex: uint32, pCounterCount: ptr uint32, pCounters: ptr VkPerformanceCounterKHR, pCounterDescriptions: ptr VkPerformanceCounterDescriptionKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR")) + vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = cast[proc(physicalDevice: VkPhysicalDevice, pPerformanceQueryCreateInfo: ptr VkQueryPoolPerformanceCreateInfoKHR, pNumPasses: ptr uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR")) + vkAcquireProfilingLockKHR = cast[proc(device: VkDevice, pInfo: ptr VkAcquireProfilingLockInfoKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkAcquireProfilingLockKHR")) + vkReleaseProfilingLockKHR = cast[proc(device: VkDevice): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkReleaseProfilingLockKHR")) + +proc loadVK_GOOGLE_user_type*(instance: VkInstance) = + discard + +# extension VK_EXT_debug_report +var + vkCreateDebugReportCallbackEXT*: proc(instance: VkInstance, pCreateInfo: ptr VkDebugReportCallbackCreateInfoEXT, pAllocator: ptr VkAllocationCallbacks, pCallback: ptr VkDebugReportCallbackEXT): VkResult {.stdcall.} + vkDestroyDebugReportCallbackEXT*: proc(instance: VkInstance, callback: VkDebugReportCallbackEXT, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} + vkDebugReportMessageEXT*: proc(instance: VkInstance, flags: VkDebugReportFlagsEXT, objectType: VkDebugReportObjectTypeEXT, theobject: uint64, location: csize_t, messageCode: int32, pLayerPrefix: cstring, pMessage: cstring): void {.stdcall.} +proc loadVK_EXT_debug_report*(instance: VkInstance) = + vkCreateDebugReportCallbackEXT = cast[proc(instance: VkInstance, pCreateInfo: ptr VkDebugReportCallbackCreateInfoEXT, pAllocator: ptr VkAllocationCallbacks, pCallback: ptr VkDebugReportCallbackEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateDebugReportCallbackEXT")) + vkDestroyDebugReportCallbackEXT = cast[proc(instance: VkInstance, callback: VkDebugReportCallbackEXT, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyDebugReportCallbackEXT")) + vkDebugReportMessageEXT = cast[proc(instance: VkInstance, flags: VkDebugReportFlagsEXT, objectType: VkDebugReportObjectTypeEXT, theobject: uint64, location: csize_t, messageCode: int32, pLayerPrefix: cstring, pMessage: cstring): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDebugReportMessageEXT")) + +proc loadVK_EXT_multisampled_render_to_single_sampled*(instance: VkInstance) = + loadVK_VERSION_1_2(instance) + loadVK_VERSION_1_2(instance) + +proc loadVK_AMD_negative_viewport_height*(instance: VkInstance) = + discard + +proc loadVK_EXT_provoking_vertex*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +proc loadVK_NV_device_diagnostics_config*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +proc loadVK_NV_shader_subgroup_partitioned*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +proc loadVK_EXT_image_sliced_view_of_3d*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + loadVK_VERSION_1_1(instance) + +proc loadVK_AMD_shader_image_load_store_lod*(instance: VkInstance) = + discard + +proc loadVK_INTEL_shader_integer_functions2*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +proc loadVK_EXT_image_2d_view_of_3d*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + loadVK_VERSION_1_1(instance) + +# extension VK_NV_shading_rate_image +var + vkCmdBindShadingRateImageNV*: proc(commandBuffer: VkCommandBuffer, imageView: VkImageView, imageLayout: VkImageLayout): void {.stdcall.} + vkCmdSetViewportShadingRatePaletteNV*: proc(commandBuffer: VkCommandBuffer, firstViewport: uint32, viewportCount: uint32, pShadingRatePalettes: ptr VkShadingRatePaletteNV): void {.stdcall.} + vkCmdSetCoarseSampleOrderNV*: proc(commandBuffer: VkCommandBuffer, sampleOrderType: VkCoarseSampleOrderTypeNV, customSampleOrderCount: uint32, pCustomSampleOrders: ptr VkCoarseSampleOrderCustomNV): void {.stdcall.} +proc loadVK_NV_shading_rate_image*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + vkCmdBindShadingRateImageNV = cast[proc(commandBuffer: VkCommandBuffer, imageView: VkImageView, imageLayout: VkImageLayout): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBindShadingRateImageNV")) + vkCmdSetViewportShadingRatePaletteNV = cast[proc(commandBuffer: VkCommandBuffer, firstViewport: uint32, viewportCount: uint32, pShadingRatePalettes: ptr VkShadingRatePaletteNV): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetViewportShadingRatePaletteNV")) + vkCmdSetCoarseSampleOrderNV = cast[proc(commandBuffer: VkCommandBuffer, sampleOrderType: VkCoarseSampleOrderTypeNV, customSampleOrderCount: uint32, pCustomSampleOrders: ptr VkCoarseSampleOrderCustomNV): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetCoarseSampleOrderNV")) + +proc loadVK_EXT_fragment_density_map*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +# extension VK_NV_device_diagnostic_checkpoints +var + vkCmdSetCheckpointNV*: proc(commandBuffer: VkCommandBuffer, pCheckpointMarker: pointer): void {.stdcall.} + vkGetQueueCheckpointDataNV*: proc(queue: VkQueue, pCheckpointDataCount: ptr uint32, pCheckpointData: ptr VkCheckpointDataNV): void {.stdcall.} +proc loadVK_NV_device_diagnostic_checkpoints*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + vkCmdSetCheckpointNV = cast[proc(commandBuffer: VkCommandBuffer, pCheckpointMarker: pointer): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetCheckpointNV")) + vkGetQueueCheckpointDataNV = cast[proc(queue: VkQueue, pCheckpointDataCount: ptr uint32, pCheckpointData: ptr VkCheckpointDataNV): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetQueueCheckpointDataNV")) + +proc loadVK_EXT_pci_bus_info*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +proc loadVK_EXT_queue_family_foreign*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +# extension VK_EXT_debug_utils +var + vkSetDebugUtilsObjectNameEXT*: proc(device: VkDevice, pNameInfo: ptr VkDebugUtilsObjectNameInfoEXT): VkResult {.stdcall.} + vkSetDebugUtilsObjectTagEXT*: proc(device: VkDevice, pTagInfo: ptr VkDebugUtilsObjectTagInfoEXT): VkResult {.stdcall.} + vkQueueBeginDebugUtilsLabelEXT*: proc(queue: VkQueue, pLabelInfo: ptr VkDebugUtilsLabelEXT): void {.stdcall.} + vkQueueEndDebugUtilsLabelEXT*: proc(queue: VkQueue): void {.stdcall.} + vkQueueInsertDebugUtilsLabelEXT*: proc(queue: VkQueue, pLabelInfo: ptr VkDebugUtilsLabelEXT): void {.stdcall.} + vkCmdBeginDebugUtilsLabelEXT*: proc(commandBuffer: VkCommandBuffer, pLabelInfo: ptr VkDebugUtilsLabelEXT): void {.stdcall.} + vkCmdEndDebugUtilsLabelEXT*: proc(commandBuffer: VkCommandBuffer): void {.stdcall.} + vkCmdInsertDebugUtilsLabelEXT*: proc(commandBuffer: VkCommandBuffer, pLabelInfo: ptr VkDebugUtilsLabelEXT): void {.stdcall.} + vkCreateDebugUtilsMessengerEXT*: proc(instance: VkInstance, pCreateInfo: ptr VkDebugUtilsMessengerCreateInfoEXT, pAllocator: ptr VkAllocationCallbacks, pMessenger: ptr VkDebugUtilsMessengerEXT): VkResult {.stdcall.} + vkDestroyDebugUtilsMessengerEXT*: proc(instance: VkInstance, messenger: VkDebugUtilsMessengerEXT, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} + vkSubmitDebugUtilsMessageEXT*: proc(instance: VkInstance, messageSeverity: VkDebugUtilsMessageSeverityFlagBitsEXT, messageTypes: VkDebugUtilsMessageTypeFlagsEXT, pCallbackData: ptr VkDebugUtilsMessengerCallbackDataEXT): void {.stdcall.} +proc loadVK_EXT_debug_utils*(instance: VkInstance) = + vkSetDebugUtilsObjectNameEXT = cast[proc(device: VkDevice, pNameInfo: ptr VkDebugUtilsObjectNameInfoEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkSetDebugUtilsObjectNameEXT")) + vkSetDebugUtilsObjectTagEXT = cast[proc(device: VkDevice, pTagInfo: ptr VkDebugUtilsObjectTagInfoEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkSetDebugUtilsObjectTagEXT")) + vkQueueBeginDebugUtilsLabelEXT = cast[proc(queue: VkQueue, pLabelInfo: ptr VkDebugUtilsLabelEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkQueueBeginDebugUtilsLabelEXT")) + vkQueueEndDebugUtilsLabelEXT = cast[proc(queue: VkQueue): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkQueueEndDebugUtilsLabelEXT")) + vkQueueInsertDebugUtilsLabelEXT = cast[proc(queue: VkQueue, pLabelInfo: ptr VkDebugUtilsLabelEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkQueueInsertDebugUtilsLabelEXT")) + vkCmdBeginDebugUtilsLabelEXT = cast[proc(commandBuffer: VkCommandBuffer, pLabelInfo: ptr VkDebugUtilsLabelEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBeginDebugUtilsLabelEXT")) + vkCmdEndDebugUtilsLabelEXT = cast[proc(commandBuffer: VkCommandBuffer): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdEndDebugUtilsLabelEXT")) + vkCmdInsertDebugUtilsLabelEXT = cast[proc(commandBuffer: VkCommandBuffer, pLabelInfo: ptr VkDebugUtilsLabelEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdInsertDebugUtilsLabelEXT")) + vkCreateDebugUtilsMessengerEXT = cast[proc(instance: VkInstance, pCreateInfo: ptr VkDebugUtilsMessengerCreateInfoEXT, pAllocator: ptr VkAllocationCallbacks, pMessenger: ptr VkDebugUtilsMessengerEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateDebugUtilsMessengerEXT")) + vkDestroyDebugUtilsMessengerEXT = cast[proc(instance: VkInstance, messenger: VkDebugUtilsMessengerEXT, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyDebugUtilsMessengerEXT")) + vkSubmitDebugUtilsMessageEXT = cast[proc(instance: VkInstance, messageSeverity: VkDebugUtilsMessageSeverityFlagBitsEXT, messageTypes: VkDebugUtilsMessageTypeFlagsEXT, pCallbackData: ptr VkDebugUtilsMessengerCallbackDataEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkSubmitDebugUtilsMessageEXT")) + +proc loadVK_KHR_portability_enumeration*(instance: VkInstance) = + discard + +proc loadVK_EXT_memory_priority*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +proc loadVK_AMD_shader_core_properties*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +# extension VK_KHR_external_fence_fd +var + vkImportFenceFdKHR*: proc(device: VkDevice, pImportFenceFdInfo: ptr VkImportFenceFdInfoKHR): VkResult {.stdcall.} + vkGetFenceFdKHR*: proc(device: VkDevice, pGetFdInfo: ptr VkFenceGetFdInfoKHR, pFd: ptr cint): VkResult {.stdcall.} +proc loadVK_KHR_external_fence_fd*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + vkImportFenceFdKHR = cast[proc(device: VkDevice, pImportFenceFdInfo: ptr VkImportFenceFdInfoKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkImportFenceFdKHR")) + vkGetFenceFdKHR = cast[proc(device: VkDevice, pGetFdInfo: ptr VkFenceGetFdInfoKHR, pFd: ptr cint): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetFenceFdKHR")) + +# extension VK_NV_device_generated_commands +var + vkGetGeneratedCommandsMemoryRequirementsNV*: proc(device: VkDevice, pInfo: ptr VkGeneratedCommandsMemoryRequirementsInfoNV, pMemoryRequirements: ptr VkMemoryRequirements2): void {.stdcall.} + vkCmdPreprocessGeneratedCommandsNV*: proc(commandBuffer: VkCommandBuffer, pGeneratedCommandsInfo: ptr VkGeneratedCommandsInfoNV): void {.stdcall.} + vkCmdExecuteGeneratedCommandsNV*: proc(commandBuffer: VkCommandBuffer, isPreprocessed: VkBool32, pGeneratedCommandsInfo: ptr VkGeneratedCommandsInfoNV): void {.stdcall.} + vkCmdBindPipelineShaderGroupNV*: proc(commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, pipeline: VkPipeline, groupIndex: uint32): void {.stdcall.} + vkCreateIndirectCommandsLayoutNV*: proc(device: VkDevice, pCreateInfo: ptr VkIndirectCommandsLayoutCreateInfoNV, pAllocator: ptr VkAllocationCallbacks, pIndirectCommandsLayout: ptr VkIndirectCommandsLayoutNV): VkResult {.stdcall.} + vkDestroyIndirectCommandsLayoutNV*: proc(device: VkDevice, indirectCommandsLayout: VkIndirectCommandsLayoutNV, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} +proc loadVK_NV_device_generated_commands*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + loadVK_VERSION_1_2(instance) + vkGetGeneratedCommandsMemoryRequirementsNV = cast[proc(device: VkDevice, pInfo: ptr VkGeneratedCommandsMemoryRequirementsInfoNV, pMemoryRequirements: ptr VkMemoryRequirements2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetGeneratedCommandsMemoryRequirementsNV")) + vkCmdPreprocessGeneratedCommandsNV = cast[proc(commandBuffer: VkCommandBuffer, pGeneratedCommandsInfo: ptr VkGeneratedCommandsInfoNV): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdPreprocessGeneratedCommandsNV")) + vkCmdExecuteGeneratedCommandsNV = cast[proc(commandBuffer: VkCommandBuffer, isPreprocessed: VkBool32, pGeneratedCommandsInfo: ptr VkGeneratedCommandsInfoNV): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdExecuteGeneratedCommandsNV")) + vkCmdBindPipelineShaderGroupNV = cast[proc(commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, pipeline: VkPipeline, groupIndex: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBindPipelineShaderGroupNV")) + vkCreateIndirectCommandsLayoutNV = cast[proc(device: VkDevice, pCreateInfo: ptr VkIndirectCommandsLayoutCreateInfoNV, pAllocator: ptr VkAllocationCallbacks, pIndirectCommandsLayout: ptr VkIndirectCommandsLayoutNV): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateIndirectCommandsLayoutNV")) + vkDestroyIndirectCommandsLayoutNV = cast[proc(device: VkDevice, indirectCommandsLayout: VkIndirectCommandsLayoutNV, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyIndirectCommandsLayoutNV")) + +proc loadVK_NV_viewport_array2*(instance: VkInstance) = + discard + +proc loadVK_NVX_multiview_per_view_attributes*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +# extension VK_KHR_external_memory_fd +var + vkGetMemoryFdKHR*: proc(device: VkDevice, pGetFdInfo: ptr VkMemoryGetFdInfoKHR, pFd: ptr cint): VkResult {.stdcall.} + vkGetMemoryFdPropertiesKHR*: proc(device: VkDevice, handleType: VkExternalMemoryHandleTypeFlagBits, fd: cint, pMemoryFdProperties: ptr VkMemoryFdPropertiesKHR): VkResult {.stdcall.} +proc loadVK_KHR_external_memory_fd*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + vkGetMemoryFdKHR = cast[proc(device: VkDevice, pGetFdInfo: ptr VkMemoryGetFdInfoKHR, pFd: ptr cint): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetMemoryFdKHR")) + vkGetMemoryFdPropertiesKHR = cast[proc(device: VkDevice, handleType: VkExternalMemoryHandleTypeFlagBits, fd: cint, pMemoryFdProperties: ptr VkMemoryFdPropertiesKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetMemoryFdPropertiesKHR")) + +proc loadVK_EXT_rgba10x6_formats*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +proc loadVK_NV_dedicated_allocation_image_aliasing*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + loadVK_VERSION_1_1(instance) + +# extension VK_NV_cooperative_matrix +var + vkGetPhysicalDeviceCooperativeMatrixPropertiesNV*: proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32, pProperties: ptr VkCooperativeMatrixPropertiesNV): VkResult {.stdcall.} +proc loadVK_NV_cooperative_matrix*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = cast[proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32, pProperties: ptr VkCooperativeMatrixPropertiesNV): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV")) + +proc loadVK_EXT_depth_clamp_zero_one*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +proc loadVK_NV_linear_color_attachment*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +proc loadVK_EXT_shader_subgroup_ballot*(instance: VkInstance) = + discard + +# extension VK_EXT_image_drm_format_modifier +var + vkGetImageDrmFormatModifierPropertiesEXT*: proc(device: VkDevice, image: VkImage, pProperties: ptr VkImageDrmFormatModifierPropertiesEXT): VkResult {.stdcall.} +proc loadVK_EXT_image_drm_format_modifier*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + loadVK_VERSION_1_1(instance) + loadVK_VERSION_1_2(instance) + loadVK_VERSION_1_1(instance) + vkGetImageDrmFormatModifierPropertiesEXT = cast[proc(device: VkDevice, image: VkImage, pProperties: ptr VkImageDrmFormatModifierPropertiesEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetImageDrmFormatModifierPropertiesEXT")) + +# extension VK_EXT_mesh_shader +var + vkCmdDrawMeshTasksEXT*: proc(commandBuffer: VkCommandBuffer, groupCountX: uint32, groupCountY: uint32, groupCountZ: uint32): void {.stdcall.} + vkCmdDrawMeshTasksIndirectEXT*: proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, drawCount: uint32, stride: uint32): void {.stdcall.} + vkCmdDrawMeshTasksIndirectCountEXT*: proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, countBuffer: VkBuffer, countBufferOffset: VkDeviceSize, maxDrawCount: uint32, stride: uint32): void {.stdcall.} +proc loadVK_EXT_mesh_shader*(instance: VkInstance) = + loadVK_VERSION_1_2(instance) + vkCmdDrawMeshTasksEXT = cast[proc(commandBuffer: VkCommandBuffer, groupCountX: uint32, groupCountY: uint32, groupCountZ: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawMeshTasksEXT")) + vkCmdDrawMeshTasksIndirectEXT = cast[proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, drawCount: uint32, stride: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawMeshTasksIndirectEXT")) + vkCmdDrawMeshTasksIndirectCountEXT = cast[proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, countBuffer: VkBuffer, countBufferOffset: VkDeviceSize, maxDrawCount: uint32, stride: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawMeshTasksIndirectCountEXT")) + +# extension VK_EXT_transform_feedback +var + vkCmdBindTransformFeedbackBuffersEXT*: proc(commandBuffer: VkCommandBuffer, firstBinding: uint32, bindingCount: uint32, pBuffers: ptr VkBuffer, pOffsets: ptr VkDeviceSize, pSizes: ptr VkDeviceSize): void {.stdcall.} + vkCmdBeginTransformFeedbackEXT*: proc(commandBuffer: VkCommandBuffer, firstCounterBuffer: uint32, counterBufferCount: uint32, pCounterBuffers: ptr VkBuffer, pCounterBufferOffsets: ptr VkDeviceSize): void {.stdcall.} + vkCmdEndTransformFeedbackEXT*: proc(commandBuffer: VkCommandBuffer, firstCounterBuffer: uint32, counterBufferCount: uint32, pCounterBuffers: ptr VkBuffer, pCounterBufferOffsets: ptr VkDeviceSize): void {.stdcall.} + vkCmdBeginQueryIndexedEXT*: proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, query: uint32, flags: VkQueryControlFlags, index: uint32): void {.stdcall.} + vkCmdEndQueryIndexedEXT*: proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, query: uint32, index: uint32): void {.stdcall.} + vkCmdDrawIndirectByteCountEXT*: proc(commandBuffer: VkCommandBuffer, instanceCount: uint32, firstInstance: uint32, counterBuffer: VkBuffer, counterBufferOffset: VkDeviceSize, counterOffset: uint32, vertexStride: uint32): void {.stdcall.} +proc loadVK_EXT_transform_feedback*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + vkCmdBindTransformFeedbackBuffersEXT = cast[proc(commandBuffer: VkCommandBuffer, firstBinding: uint32, bindingCount: uint32, pBuffers: ptr VkBuffer, pOffsets: ptr VkDeviceSize, pSizes: ptr VkDeviceSize): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBindTransformFeedbackBuffersEXT")) + vkCmdBeginTransformFeedbackEXT = cast[proc(commandBuffer: VkCommandBuffer, firstCounterBuffer: uint32, counterBufferCount: uint32, pCounterBuffers: ptr VkBuffer, pCounterBufferOffsets: ptr VkDeviceSize): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBeginTransformFeedbackEXT")) + vkCmdEndTransformFeedbackEXT = cast[proc(commandBuffer: VkCommandBuffer, firstCounterBuffer: uint32, counterBufferCount: uint32, pCounterBuffers: ptr VkBuffer, pCounterBufferOffsets: ptr VkDeviceSize): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdEndTransformFeedbackEXT")) + vkCmdBeginQueryIndexedEXT = cast[proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, query: uint32, flags: VkQueryControlFlags, index: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBeginQueryIndexedEXT")) + vkCmdEndQueryIndexedEXT = cast[proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, query: uint32, index: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdEndQueryIndexedEXT")) + vkCmdDrawIndirectByteCountEXT = cast[proc(commandBuffer: VkCommandBuffer, instanceCount: uint32, firstInstance: uint32, counterBuffer: VkBuffer, counterBufferOffset: VkDeviceSize, counterOffset: uint32, vertexStride: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawIndirectByteCountEXT")) + +proc loadVK_AMD_shader_early_and_late_fragment_tests*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +proc loadVK_AMD_shader_core_properties2*(instance: VkInstance) = + loadVK_AMD_shader_core_properties(instance) + +proc loadVK_GOOGLE_hlsl_functionality1*(instance: VkInstance) = + discard + +proc loadVK_EXT_robustness2*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +proc loadVK_EXT_image_view_min_lod*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +proc loadVK_AMD_shader_trinary_minmax*(instance: VkInstance) = + discard + +proc loadVK_EXT_custom_border_color*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +proc loadVK_AMD_rasterization_order*(instance: VkInstance) = + discard + +# extension VK_EXT_vertex_input_dynamic_state +var + vkCmdSetVertexInputEXT*: proc(commandBuffer: VkCommandBuffer, vertexBindingDescriptionCount: uint32, pVertexBindingDescriptions: ptr VkVertexInputBindingDescription2EXT, vertexAttributeDescriptionCount: uint32, pVertexAttributeDescriptions: ptr VkVertexInputAttributeDescription2EXT): void {.stdcall.} +proc loadVK_EXT_vertex_input_dynamic_state*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + vkCmdSetVertexInputEXT = cast[proc(commandBuffer: VkCommandBuffer, vertexBindingDescriptionCount: uint32, pVertexBindingDescriptions: ptr VkVertexInputBindingDescription2EXT, vertexAttributeDescriptionCount: uint32, pVertexAttributeDescriptions: ptr VkVertexInputAttributeDescription2EXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetVertexInputEXT")) + +# extension VK_KHR_fragment_shading_rate +var + vkGetPhysicalDeviceFragmentShadingRatesKHR*: proc(physicalDevice: VkPhysicalDevice, pFragmentShadingRateCount: ptr uint32, pFragmentShadingRates: ptr VkPhysicalDeviceFragmentShadingRateKHR): VkResult {.stdcall.} + vkCmdSetFragmentShadingRateKHR*: proc(commandBuffer: VkCommandBuffer, pFragmentSize: ptr VkExtent2D, combinerOps: array[2, VkFragmentShadingRateCombinerOpKHR]): void {.stdcall.} +proc loadVK_KHR_fragment_shading_rate*(instance: VkInstance) = + loadVK_VERSION_1_2(instance) + loadVK_VERSION_1_1(instance) + vkGetPhysicalDeviceFragmentShadingRatesKHR = cast[proc(physicalDevice: VkPhysicalDevice, pFragmentShadingRateCount: ptr uint32, pFragmentShadingRates: ptr VkPhysicalDeviceFragmentShadingRateKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceFragmentShadingRatesKHR")) + vkCmdSetFragmentShadingRateKHR = cast[proc(commandBuffer: VkCommandBuffer, pFragmentSize: ptr VkExtent2D, combinerOps: array[2, VkFragmentShadingRateCombinerOpKHR]): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetFragmentShadingRateKHR")) + +proc loadVK_EXT_depth_clip_enable*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +proc loadVK_EXT_subpass_merge_feedback*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +# extension VK_KHR_external_semaphore_fd +var + vkImportSemaphoreFdKHR*: proc(device: VkDevice, pImportSemaphoreFdInfo: ptr VkImportSemaphoreFdInfoKHR): VkResult {.stdcall.} + vkGetSemaphoreFdKHR*: proc(device: VkDevice, pGetFdInfo: ptr VkSemaphoreGetFdInfoKHR, pFd: ptr cint): VkResult {.stdcall.} +proc loadVK_KHR_external_semaphore_fd*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + vkImportSemaphoreFdKHR = cast[proc(device: VkDevice, pImportSemaphoreFdInfo: ptr VkImportSemaphoreFdInfoKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkImportSemaphoreFdKHR")) + vkGetSemaphoreFdKHR = cast[proc(device: VkDevice, pGetFdInfo: ptr VkSemaphoreGetFdInfoKHR, pFd: ptr cint): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetSemaphoreFdKHR")) + +proc loadVK_KHR_fragment_shader_barycentric*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +proc loadVK_EXT_memory_budget*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +proc loadVK_AMD_device_coherent_memory*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +proc loadVK_EXT_device_memory_report*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +proc loadVK_AMD_memory_overallocation_behavior*(instance: VkInstance) = + discard + +# extension VK_NV_mesh_shader +var + vkCmdDrawMeshTasksNV*: proc(commandBuffer: VkCommandBuffer, taskCount: uint32, firstTask: uint32): void {.stdcall.} + vkCmdDrawMeshTasksIndirectNV*: proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, drawCount: uint32, stride: uint32): void {.stdcall.} + vkCmdDrawMeshTasksIndirectCountNV*: proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, countBuffer: VkBuffer, countBufferOffset: VkDeviceSize, maxDrawCount: uint32, stride: uint32): void {.stdcall.} +proc loadVK_NV_mesh_shader*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + vkCmdDrawMeshTasksNV = cast[proc(commandBuffer: VkCommandBuffer, taskCount: uint32, firstTask: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawMeshTasksNV")) + vkCmdDrawMeshTasksIndirectNV = cast[proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, drawCount: uint32, stride: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawMeshTasksIndirectNV")) + vkCmdDrawMeshTasksIndirectCountNV = cast[proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, countBuffer: VkBuffer, countBufferOffset: VkDeviceSize, maxDrawCount: uint32, stride: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawMeshTasksIndirectCountNV")) + +# extension VK_EXT_image_compression_control +var + vkGetImageSubresourceLayout2EXT*: proc(device: VkDevice, image: VkImage, pSubresource: ptr VkImageSubresource2EXT, pLayout: ptr VkSubresourceLayout2EXT): void {.stdcall.} +proc loadVK_EXT_image_compression_control*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + vkGetImageSubresourceLayout2EXT = cast[proc(device: VkDevice, image: VkImage, pSubresource: ptr VkImageSubresource2EXT, pLayout: ptr VkSubresourceLayout2EXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetImageSubresourceLayout2EXT")) + +# extension VK_EXT_buffer_device_address +var + vkGetBufferDeviceAddressEXT*: proc(device: VkDevice, pInfo: ptr VkBufferDeviceAddressInfo): VkDeviceAddress {.stdcall.} +proc loadVK_EXT_buffer_device_address*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + vkGetBufferDeviceAddressEXT = vkGetBufferDeviceAddress + +proc loadVK_QCOM_render_pass_shader_resolve*(instance: VkInstance) = + discard + +proc loadVK_EXT_depth_range_unrestricted*(instance: VkInstance) = + discard + +# extension VK_HUAWEI_subpass_shading +var + vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI*: proc(device: VkDevice, renderpass: VkRenderPass, pMaxWorkgroupSize: ptr VkExtent2D): VkResult {.stdcall.} + vkCmdSubpassShadingHUAWEI*: proc(commandBuffer: VkCommandBuffer): void {.stdcall.} +proc loadVK_HUAWEI_subpass_shading*(instance: VkInstance) = + loadVK_VERSION_1_2(instance) + loadVK_VERSION_1_3(instance) + vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = cast[proc(device: VkDevice, renderpass: VkRenderPass, pMaxWorkgroupSize: ptr VkExtent2D): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI")) + vkCmdSubpassShadingHUAWEI = cast[proc(commandBuffer: VkCommandBuffer): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSubpassShadingHUAWEI")) + +# extension VK_VALVE_descriptor_set_host_mapping +var + vkGetDescriptorSetLayoutHostMappingInfoVALVE*: proc(device: VkDevice, pBindingReference: ptr VkDescriptorSetBindingReferenceVALVE, pHostMapping: ptr VkDescriptorSetLayoutHostMappingInfoVALVE): void {.stdcall.} + vkGetDescriptorSetHostMappingVALVE*: proc(device: VkDevice, descriptorSet: VkDescriptorSet, ppData: ptr pointer): void {.stdcall.} +proc loadVK_VALVE_descriptor_set_host_mapping*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + vkGetDescriptorSetLayoutHostMappingInfoVALVE = cast[proc(device: VkDevice, pBindingReference: ptr VkDescriptorSetBindingReferenceVALVE, pHostMapping: ptr VkDescriptorSetLayoutHostMappingInfoVALVE): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDescriptorSetLayoutHostMappingInfoVALVE")) + vkGetDescriptorSetHostMappingVALVE = cast[proc(device: VkDevice, descriptorSet: VkDescriptorSet, ppData: ptr pointer): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDescriptorSetHostMappingVALVE")) + +# extension VK_NV_external_memory_capabilities +var + vkGetPhysicalDeviceExternalImageFormatPropertiesNV*: proc(physicalDevice: VkPhysicalDevice, format: VkFormat, thetype: VkImageType, tiling: VkImageTiling, usage: VkImageUsageFlags, flags: VkImageCreateFlags, externalHandleType: VkExternalMemoryHandleTypeFlagsNV, pExternalImageFormatProperties: ptr VkExternalImageFormatPropertiesNV): VkResult {.stdcall.} +proc loadVK_NV_external_memory_capabilities*(instance: VkInstance) = + vkGetPhysicalDeviceExternalImageFormatPropertiesNV = cast[proc(physicalDevice: VkPhysicalDevice, format: VkFormat, thetype: VkImageType, tiling: VkImageTiling, usage: VkImageUsageFlags, flags: VkImageCreateFlags, externalHandleType: VkExternalMemoryHandleTypeFlagsNV, pExternalImageFormatProperties: ptr VkExternalImageFormatPropertiesNV): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV")) + +# extension VK_NV_optical_flow +var + vkGetPhysicalDeviceOpticalFlowImageFormatsNV*: proc(physicalDevice: VkPhysicalDevice, pOpticalFlowImageFormatInfo: ptr VkOpticalFlowImageFormatInfoNV, pFormatCount: ptr uint32, pImageFormatProperties: ptr VkOpticalFlowImageFormatPropertiesNV): VkResult {.stdcall.} + vkCreateOpticalFlowSessionNV*: proc(device: VkDevice, pCreateInfo: ptr VkOpticalFlowSessionCreateInfoNV, pAllocator: ptr VkAllocationCallbacks, pSession: ptr VkOpticalFlowSessionNV): VkResult {.stdcall.} + vkDestroyOpticalFlowSessionNV*: proc(device: VkDevice, session: VkOpticalFlowSessionNV, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} + vkBindOpticalFlowSessionImageNV*: proc(device: VkDevice, session: VkOpticalFlowSessionNV, bindingPoint: VkOpticalFlowSessionBindingPointNV, view: VkImageView, layout: VkImageLayout): VkResult {.stdcall.} + vkCmdOpticalFlowExecuteNV*: proc(commandBuffer: VkCommandBuffer, session: VkOpticalFlowSessionNV, pExecuteInfo: ptr VkOpticalFlowExecuteInfoNV): void {.stdcall.} +proc loadVK_NV_optical_flow*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + loadVK_VERSION_1_3(instance) + loadVK_VERSION_1_3(instance) + vkGetPhysicalDeviceOpticalFlowImageFormatsNV = cast[proc(physicalDevice: VkPhysicalDevice, pOpticalFlowImageFormatInfo: ptr VkOpticalFlowImageFormatInfoNV, pFormatCount: ptr uint32, pImageFormatProperties: ptr VkOpticalFlowImageFormatPropertiesNV): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceOpticalFlowImageFormatsNV")) + vkCreateOpticalFlowSessionNV = cast[proc(device: VkDevice, pCreateInfo: ptr VkOpticalFlowSessionCreateInfoNV, pAllocator: ptr VkAllocationCallbacks, pSession: ptr VkOpticalFlowSessionNV): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateOpticalFlowSessionNV")) + vkDestroyOpticalFlowSessionNV = cast[proc(device: VkDevice, session: VkOpticalFlowSessionNV, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyOpticalFlowSessionNV")) + vkBindOpticalFlowSessionImageNV = cast[proc(device: VkDevice, session: VkOpticalFlowSessionNV, bindingPoint: VkOpticalFlowSessionBindingPointNV, view: VkImageView, layout: VkImageLayout): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkBindOpticalFlowSessionImageNV")) + vkCmdOpticalFlowExecuteNV = cast[proc(commandBuffer: VkCommandBuffer, session: VkOpticalFlowSessionNV, pExecuteInfo: ptr VkOpticalFlowExecuteInfoNV): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdOpticalFlowExecuteNV")) + +proc loadVK_EXT_vertex_attribute_divisor*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +# extension VK_EXT_line_rasterization +var + vkCmdSetLineStippleEXT*: proc(commandBuffer: VkCommandBuffer, lineStippleFactor: uint32, lineStipplePattern: uint16): void {.stdcall.} +proc loadVK_EXT_line_rasterization*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + vkCmdSetLineStippleEXT = cast[proc(commandBuffer: VkCommandBuffer, lineStippleFactor: uint32, lineStipplePattern: uint16): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetLineStippleEXT")) + +proc loadVK_AMD_texture_gather_bias_lod*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +proc loadVK_KHR_shader_subgroup_uniform_control_flow*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +proc loadVK_EXT_external_memory_dma_buf*(instance: VkInstance) = + loadVK_KHR_external_memory_fd(instance) + +proc loadVK_IMG_filter_cubic*(instance: VkInstance) = + discard + +proc loadVK_AMD_shader_ballot*(instance: VkInstance) = + discard + +# extension VK_AMD_buffer_marker +var + vkCmdWriteBufferMarkerAMD*: proc(commandBuffer: VkCommandBuffer, pipelineStage: VkPipelineStageFlagBits, dstBuffer: VkBuffer, dstOffset: VkDeviceSize, marker: uint32): void {.stdcall.} +proc loadVK_AMD_buffer_marker*(instance: VkInstance) = + vkCmdWriteBufferMarkerAMD = cast[proc(commandBuffer: VkCommandBuffer, pipelineStage: VkPipelineStageFlagBits, dstBuffer: VkBuffer, dstOffset: VkDeviceSize, marker: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdWriteBufferMarkerAMD")) + +proc loadVK_NV_corner_sampled_image*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +proc loadVK_KHR_pipeline_library*(instance: VkInstance) = + discard + +proc loadVK_EXT_blend_operation_advanced*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +# extension VK_NV_scissor_exclusive +var + vkCmdSetExclusiveScissorEnableNV*: proc(commandBuffer: VkCommandBuffer, firstExclusiveScissor: uint32, exclusiveScissorCount: uint32, pExclusiveScissorEnables: ptr VkBool32): void {.stdcall.} + vkCmdSetExclusiveScissorNV*: proc(commandBuffer: VkCommandBuffer, firstExclusiveScissor: uint32, exclusiveScissorCount: uint32, pExclusiveScissors: ptr VkRect2D): void {.stdcall.} +proc loadVK_NV_scissor_exclusive*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + vkCmdSetExclusiveScissorEnableNV = cast[proc(commandBuffer: VkCommandBuffer, firstExclusiveScissor: uint32, exclusiveScissorCount: uint32, pExclusiveScissorEnables: ptr VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetExclusiveScissorEnableNV")) + vkCmdSetExclusiveScissorNV = cast[proc(commandBuffer: VkCommandBuffer, firstExclusiveScissor: uint32, exclusiveScissorCount: uint32, pExclusiveScissors: ptr VkRect2D): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetExclusiveScissorNV")) + +proc loadVK_NV_framebuffer_mixed_samples*(instance: VkInstance) = + discard + +proc loadVK_NV_sample_mask_override_coverage*(instance: VkInstance) = + discard + +proc loadVK_EXT_filter_cubic*(instance: VkInstance) = + discard + +# extension VK_KHR_pipeline_executable_properties +var + vkGetPipelineExecutablePropertiesKHR*: proc(device: VkDevice, pPipelineInfo: ptr VkPipelineInfoKHR, pExecutableCount: ptr uint32, pProperties: ptr VkPipelineExecutablePropertiesKHR): VkResult {.stdcall.} + vkGetPipelineExecutableStatisticsKHR*: proc(device: VkDevice, pExecutableInfo: ptr VkPipelineExecutableInfoKHR, pStatisticCount: ptr uint32, pStatistics: ptr VkPipelineExecutableStatisticKHR): VkResult {.stdcall.} + vkGetPipelineExecutableInternalRepresentationsKHR*: proc(device: VkDevice, pExecutableInfo: ptr VkPipelineExecutableInfoKHR, pInternalRepresentationCount: ptr uint32, pInternalRepresentations: ptr VkPipelineExecutableInternalRepresentationKHR): VkResult {.stdcall.} +proc loadVK_KHR_pipeline_executable_properties*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + vkGetPipelineExecutablePropertiesKHR = cast[proc(device: VkDevice, pPipelineInfo: ptr VkPipelineInfoKHR, pExecutableCount: ptr uint32, pProperties: ptr VkPipelineExecutablePropertiesKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPipelineExecutablePropertiesKHR")) + vkGetPipelineExecutableStatisticsKHR = cast[proc(device: VkDevice, pExecutableInfo: ptr VkPipelineExecutableInfoKHR, pStatisticCount: ptr uint32, pStatistics: ptr VkPipelineExecutableStatisticKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPipelineExecutableStatisticsKHR")) + vkGetPipelineExecutableInternalRepresentationsKHR = cast[proc(device: VkDevice, pExecutableInfo: ptr VkPipelineExecutableInfoKHR, pInternalRepresentationCount: ptr uint32, pInternalRepresentations: ptr VkPipelineExecutableInternalRepresentationKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPipelineExecutableInternalRepresentationsKHR")) + +# extension VK_EXT_extended_dynamic_state3 +var + vkCmdSetTessellationDomainOriginEXT*: proc(commandBuffer: VkCommandBuffer, domainOrigin: VkTessellationDomainOrigin): void {.stdcall.} + vkCmdSetDepthClampEnableEXT*: proc(commandBuffer: VkCommandBuffer, depthClampEnable: VkBool32): void {.stdcall.} + vkCmdSetPolygonModeEXT*: proc(commandBuffer: VkCommandBuffer, polygonMode: VkPolygonMode): void {.stdcall.} + vkCmdSetRasterizationSamplesEXT*: proc(commandBuffer: VkCommandBuffer, rasterizationSamples: VkSampleCountFlagBits): void {.stdcall.} + vkCmdSetSampleMaskEXT*: proc(commandBuffer: VkCommandBuffer, samples: VkSampleCountFlagBits, pSampleMask: ptr VkSampleMask): void {.stdcall.} + vkCmdSetAlphaToCoverageEnableEXT*: proc(commandBuffer: VkCommandBuffer, alphaToCoverageEnable: VkBool32): void {.stdcall.} + vkCmdSetAlphaToOneEnableEXT*: proc(commandBuffer: VkCommandBuffer, alphaToOneEnable: VkBool32): void {.stdcall.} + vkCmdSetLogicOpEnableEXT*: proc(commandBuffer: VkCommandBuffer, logicOpEnable: VkBool32): void {.stdcall.} + vkCmdSetColorBlendEnableEXT*: proc(commandBuffer: VkCommandBuffer, firstAttachment: uint32, attachmentCount: uint32, pColorBlendEnables: ptr VkBool32): void {.stdcall.} + vkCmdSetColorBlendEquationEXT*: proc(commandBuffer: VkCommandBuffer, firstAttachment: uint32, attachmentCount: uint32, pColorBlendEquations: ptr VkColorBlendEquationEXT): void {.stdcall.} + vkCmdSetColorWriteMaskEXT*: proc(commandBuffer: VkCommandBuffer, firstAttachment: uint32, attachmentCount: uint32, pColorWriteMasks: ptr VkColorComponentFlags): void {.stdcall.} + vkCmdSetRasterizationStreamEXT*: proc(commandBuffer: VkCommandBuffer, rasterizationStream: uint32): void {.stdcall.} + vkCmdSetConservativeRasterizationModeEXT*: proc(commandBuffer: VkCommandBuffer, conservativeRasterizationMode: VkConservativeRasterizationModeEXT): void {.stdcall.} + vkCmdSetExtraPrimitiveOverestimationSizeEXT*: proc(commandBuffer: VkCommandBuffer, extraPrimitiveOverestimationSize: float32): void {.stdcall.} + vkCmdSetDepthClipEnableEXT*: proc(commandBuffer: VkCommandBuffer, depthClipEnable: VkBool32): void {.stdcall.} + vkCmdSetSampleLocationsEnableEXT*: proc(commandBuffer: VkCommandBuffer, sampleLocationsEnable: VkBool32): void {.stdcall.} + vkCmdSetColorBlendAdvancedEXT*: proc(commandBuffer: VkCommandBuffer, firstAttachment: uint32, attachmentCount: uint32, pColorBlendAdvanced: ptr VkColorBlendAdvancedEXT): void {.stdcall.} + vkCmdSetProvokingVertexModeEXT*: proc(commandBuffer: VkCommandBuffer, provokingVertexMode: VkProvokingVertexModeEXT): void {.stdcall.} + vkCmdSetLineRasterizationModeEXT*: proc(commandBuffer: VkCommandBuffer, lineRasterizationMode: VkLineRasterizationModeEXT): void {.stdcall.} + vkCmdSetLineStippleEnableEXT*: proc(commandBuffer: VkCommandBuffer, stippledLineEnable: VkBool32): void {.stdcall.} + vkCmdSetDepthClipNegativeOneToOneEXT*: proc(commandBuffer: VkCommandBuffer, negativeOneToOne: VkBool32): void {.stdcall.} + vkCmdSetViewportWScalingEnableNV*: proc(commandBuffer: VkCommandBuffer, viewportWScalingEnable: VkBool32): void {.stdcall.} + vkCmdSetViewportSwizzleNV*: proc(commandBuffer: VkCommandBuffer, firstViewport: uint32, viewportCount: uint32, pViewportSwizzles: ptr VkViewportSwizzleNV): void {.stdcall.} + vkCmdSetCoverageToColorEnableNV*: proc(commandBuffer: VkCommandBuffer, coverageToColorEnable: VkBool32): void {.stdcall.} + vkCmdSetCoverageToColorLocationNV*: proc(commandBuffer: VkCommandBuffer, coverageToColorLocation: uint32): void {.stdcall.} + vkCmdSetCoverageModulationModeNV*: proc(commandBuffer: VkCommandBuffer, coverageModulationMode: VkCoverageModulationModeNV): void {.stdcall.} + vkCmdSetCoverageModulationTableEnableNV*: proc(commandBuffer: VkCommandBuffer, coverageModulationTableEnable: VkBool32): void {.stdcall.} + vkCmdSetCoverageModulationTableNV*: proc(commandBuffer: VkCommandBuffer, coverageModulationTableCount: uint32, pCoverageModulationTable: ptr float32): void {.stdcall.} + vkCmdSetShadingRateImageEnableNV*: proc(commandBuffer: VkCommandBuffer, shadingRateImageEnable: VkBool32): void {.stdcall.} + vkCmdSetRepresentativeFragmentTestEnableNV*: proc(commandBuffer: VkCommandBuffer, representativeFragmentTestEnable: VkBool32): void {.stdcall.} + vkCmdSetCoverageReductionModeNV*: proc(commandBuffer: VkCommandBuffer, coverageReductionMode: VkCoverageReductionModeNV): void {.stdcall.} +proc loadVK_EXT_extended_dynamic_state3*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + vkCmdSetTessellationDomainOriginEXT = cast[proc(commandBuffer: VkCommandBuffer, domainOrigin: VkTessellationDomainOrigin): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetTessellationDomainOriginEXT")) + vkCmdSetDepthClampEnableEXT = cast[proc(commandBuffer: VkCommandBuffer, depthClampEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDepthClampEnableEXT")) + vkCmdSetPolygonModeEXT = cast[proc(commandBuffer: VkCommandBuffer, polygonMode: VkPolygonMode): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetPolygonModeEXT")) + vkCmdSetRasterizationSamplesEXT = cast[proc(commandBuffer: VkCommandBuffer, rasterizationSamples: VkSampleCountFlagBits): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetRasterizationSamplesEXT")) + vkCmdSetSampleMaskEXT = cast[proc(commandBuffer: VkCommandBuffer, samples: VkSampleCountFlagBits, pSampleMask: ptr VkSampleMask): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetSampleMaskEXT")) + vkCmdSetAlphaToCoverageEnableEXT = cast[proc(commandBuffer: VkCommandBuffer, alphaToCoverageEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetAlphaToCoverageEnableEXT")) + vkCmdSetAlphaToOneEnableEXT = cast[proc(commandBuffer: VkCommandBuffer, alphaToOneEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetAlphaToOneEnableEXT")) + vkCmdSetLogicOpEnableEXT = cast[proc(commandBuffer: VkCommandBuffer, logicOpEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetLogicOpEnableEXT")) + vkCmdSetColorBlendEnableEXT = cast[proc(commandBuffer: VkCommandBuffer, firstAttachment: uint32, attachmentCount: uint32, pColorBlendEnables: ptr VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetColorBlendEnableEXT")) + vkCmdSetColorBlendEquationEXT = cast[proc(commandBuffer: VkCommandBuffer, firstAttachment: uint32, attachmentCount: uint32, pColorBlendEquations: ptr VkColorBlendEquationEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetColorBlendEquationEXT")) + vkCmdSetColorWriteMaskEXT = cast[proc(commandBuffer: VkCommandBuffer, firstAttachment: uint32, attachmentCount: uint32, pColorWriteMasks: ptr VkColorComponentFlags): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetColorWriteMaskEXT")) + vkCmdSetRasterizationStreamEXT = cast[proc(commandBuffer: VkCommandBuffer, rasterizationStream: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetRasterizationStreamEXT")) + vkCmdSetConservativeRasterizationModeEXT = cast[proc(commandBuffer: VkCommandBuffer, conservativeRasterizationMode: VkConservativeRasterizationModeEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetConservativeRasterizationModeEXT")) + vkCmdSetExtraPrimitiveOverestimationSizeEXT = cast[proc(commandBuffer: VkCommandBuffer, extraPrimitiveOverestimationSize: float32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetExtraPrimitiveOverestimationSizeEXT")) + vkCmdSetDepthClipEnableEXT = cast[proc(commandBuffer: VkCommandBuffer, depthClipEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDepthClipEnableEXT")) + vkCmdSetSampleLocationsEnableEXT = cast[proc(commandBuffer: VkCommandBuffer, sampleLocationsEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetSampleLocationsEnableEXT")) + vkCmdSetColorBlendAdvancedEXT = cast[proc(commandBuffer: VkCommandBuffer, firstAttachment: uint32, attachmentCount: uint32, pColorBlendAdvanced: ptr VkColorBlendAdvancedEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetColorBlendAdvancedEXT")) + vkCmdSetProvokingVertexModeEXT = cast[proc(commandBuffer: VkCommandBuffer, provokingVertexMode: VkProvokingVertexModeEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetProvokingVertexModeEXT")) + vkCmdSetLineRasterizationModeEXT = cast[proc(commandBuffer: VkCommandBuffer, lineRasterizationMode: VkLineRasterizationModeEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetLineRasterizationModeEXT")) + vkCmdSetLineStippleEnableEXT = cast[proc(commandBuffer: VkCommandBuffer, stippledLineEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetLineStippleEnableEXT")) + vkCmdSetDepthClipNegativeOneToOneEXT = cast[proc(commandBuffer: VkCommandBuffer, negativeOneToOne: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDepthClipNegativeOneToOneEXT")) + vkCmdSetViewportWScalingEnableNV = cast[proc(commandBuffer: VkCommandBuffer, viewportWScalingEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetViewportWScalingEnableNV")) + vkCmdSetViewportSwizzleNV = cast[proc(commandBuffer: VkCommandBuffer, firstViewport: uint32, viewportCount: uint32, pViewportSwizzles: ptr VkViewportSwizzleNV): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetViewportSwizzleNV")) + vkCmdSetCoverageToColorEnableNV = cast[proc(commandBuffer: VkCommandBuffer, coverageToColorEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetCoverageToColorEnableNV")) + vkCmdSetCoverageToColorLocationNV = cast[proc(commandBuffer: VkCommandBuffer, coverageToColorLocation: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetCoverageToColorLocationNV")) + vkCmdSetCoverageModulationModeNV = cast[proc(commandBuffer: VkCommandBuffer, coverageModulationMode: VkCoverageModulationModeNV): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetCoverageModulationModeNV")) + vkCmdSetCoverageModulationTableEnableNV = cast[proc(commandBuffer: VkCommandBuffer, coverageModulationTableEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetCoverageModulationTableEnableNV")) + vkCmdSetCoverageModulationTableNV = cast[proc(commandBuffer: VkCommandBuffer, coverageModulationTableCount: uint32, pCoverageModulationTable: ptr float32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetCoverageModulationTableNV")) + vkCmdSetShadingRateImageEnableNV = cast[proc(commandBuffer: VkCommandBuffer, shadingRateImageEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetShadingRateImageEnableNV")) + vkCmdSetRepresentativeFragmentTestEnableNV = cast[proc(commandBuffer: VkCommandBuffer, representativeFragmentTestEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetRepresentativeFragmentTestEnableNV")) + vkCmdSetCoverageReductionModeNV = cast[proc(commandBuffer: VkCommandBuffer, coverageReductionMode: VkCoverageReductionModeNV): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetCoverageReductionModeNV")) + +proc loadVK_EXT_device_address_binding_report*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + loadVK_EXT_debug_utils(instance) + +# extension VK_NV_clip_space_w_scaling +var + vkCmdSetViewportWScalingNV*: proc(commandBuffer: VkCommandBuffer, firstViewport: uint32, viewportCount: uint32, pViewportWScalings: ptr VkViewportWScalingNV): void {.stdcall.} +proc loadVK_NV_clip_space_w_scaling*(instance: VkInstance) = + vkCmdSetViewportWScalingNV = cast[proc(commandBuffer: VkCommandBuffer, firstViewport: uint32, viewportCount: uint32, pViewportWScalings: ptr VkViewportWScalingNV): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetViewportWScalingNV")) + +proc loadVK_NV_fill_rectangle*(instance: VkInstance) = + discard + +proc loadVK_EXT_shader_image_atomic_int64*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +proc loadVK_EXT_ycbcr_image_arrays*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +# extension VK_EXT_calibrated_timestamps +var + vkGetPhysicalDeviceCalibrateableTimeDomainsEXT*: proc(physicalDevice: VkPhysicalDevice, pTimeDomainCount: ptr uint32, pTimeDomains: ptr VkTimeDomainEXT): VkResult {.stdcall.} + vkGetCalibratedTimestampsEXT*: proc(device: VkDevice, timestampCount: uint32, pTimestampInfos: ptr VkCalibratedTimestampInfoEXT, pTimestamps: ptr uint64, pMaxDeviation: ptr uint64): VkResult {.stdcall.} +proc loadVK_EXT_calibrated_timestamps*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = cast[proc(physicalDevice: VkPhysicalDevice, pTimeDomainCount: ptr uint32, pTimeDomains: ptr VkTimeDomainEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT")) + vkGetCalibratedTimestampsEXT = cast[proc(device: VkDevice, timestampCount: uint32, pTimestampInfos: ptr VkCalibratedTimestampInfoEXT, pTimestamps: ptr uint64, pMaxDeviation: ptr uint64): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetCalibratedTimestampsEXT")) + +proc loadVK_EXT_attachment_feedback_loop_layout*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +proc loadVK_AMD_mixed_attachment_samples*(instance: VkInstance) = + discard + +# extension VK_EXT_external_memory_host +var + vkGetMemoryHostPointerPropertiesEXT*: proc(device: VkDevice, handleType: VkExternalMemoryHandleTypeFlagBits, pHostPointer: pointer, pMemoryHostPointerProperties: ptr VkMemoryHostPointerPropertiesEXT): VkResult {.stdcall.} +proc loadVK_EXT_external_memory_host*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + vkGetMemoryHostPointerPropertiesEXT = cast[proc(device: VkDevice, handleType: VkExternalMemoryHandleTypeFlagBits, pHostPointer: pointer, pMemoryHostPointerProperties: ptr VkMemoryHostPointerPropertiesEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetMemoryHostPointerPropertiesEXT")) + +proc loadVK_ARM_shader_core_properties*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +# extension VK_EXT_shader_module_identifier +var + vkGetShaderModuleIdentifierEXT*: proc(device: VkDevice, shaderModule: VkShaderModule, pIdentifier: ptr VkShaderModuleIdentifierEXT): void {.stdcall.} + vkGetShaderModuleCreateInfoIdentifierEXT*: proc(device: VkDevice, pCreateInfo: ptr VkShaderModuleCreateInfo, pIdentifier: ptr VkShaderModuleIdentifierEXT): void {.stdcall.} +proc loadVK_EXT_shader_module_identifier*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + loadVK_VERSION_1_3(instance) + vkGetShaderModuleIdentifierEXT = cast[proc(device: VkDevice, shaderModule: VkShaderModule, pIdentifier: ptr VkShaderModuleIdentifierEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetShaderModuleIdentifierEXT")) + vkGetShaderModuleCreateInfoIdentifierEXT = cast[proc(device: VkDevice, pCreateInfo: ptr VkShaderModuleCreateInfo, pIdentifier: ptr VkShaderModuleIdentifierEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetShaderModuleCreateInfoIdentifierEXT")) + +proc loadVK_EXT_border_color_swizzle*(instance: VkInstance) = + loadVK_EXT_custom_border_color(instance) + +# extension VK_NV_memory_decompression +var + vkCmdDecompressMemoryNV*: proc(commandBuffer: VkCommandBuffer, decompressRegionCount: uint32, pDecompressMemoryRegions: ptr VkDecompressMemoryRegionNV): void {.stdcall.} + vkCmdDecompressMemoryIndirectCountNV*: proc(commandBuffer: VkCommandBuffer, indirectCommandsAddress: VkDeviceAddress, indirectCommandsCountAddress: VkDeviceAddress, stride: uint32): void {.stdcall.} +proc loadVK_NV_memory_decompression*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + loadVK_VERSION_1_2(instance) + vkCmdDecompressMemoryNV = cast[proc(commandBuffer: VkCommandBuffer, decompressRegionCount: uint32, pDecompressMemoryRegions: ptr VkDecompressMemoryRegionNV): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDecompressMemoryNV")) + vkCmdDecompressMemoryIndirectCountNV = cast[proc(commandBuffer: VkCommandBuffer, indirectCommandsAddress: VkDeviceAddress, indirectCommandsCountAddress: VkDeviceAddress, stride: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDecompressMemoryIndirectCountNV")) + +proc loadVK_EXT_fragment_shader_interlock*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +# extension VK_NV_coverage_reduction_mode +var + vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV*: proc(physicalDevice: VkPhysicalDevice, pCombinationCount: ptr uint32, pCombinations: ptr VkFramebufferMixedSamplesCombinationNV): VkResult {.stdcall.} +proc loadVK_NV_coverage_reduction_mode*(instance: VkInstance) = + loadVK_NV_framebuffer_mixed_samples(instance) + loadVK_VERSION_1_1(instance) + vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = cast[proc(physicalDevice: VkPhysicalDevice, pCombinationCount: ptr uint32, pCombinations: ptr VkFramebufferMixedSamplesCombinationNV): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV")) + +proc loadVK_NV_glsl_shader*(instance: VkInstance) = + discard + +proc loadVK_KHR_shader_clock*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +# extension VK_QCOM_tile_properties +var + vkGetFramebufferTilePropertiesQCOM*: proc(device: VkDevice, framebuffer: VkFramebuffer, pPropertiesCount: ptr uint32, pProperties: ptr VkTilePropertiesQCOM): VkResult {.stdcall.} + vkGetDynamicRenderingTilePropertiesQCOM*: proc(device: VkDevice, pRenderingInfo: ptr VkRenderingInfo, pProperties: ptr VkTilePropertiesQCOM): VkResult {.stdcall.} +proc loadVK_QCOM_tile_properties*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + vkGetFramebufferTilePropertiesQCOM = cast[proc(device: VkDevice, framebuffer: VkFramebuffer, pPropertiesCount: ptr uint32, pProperties: ptr VkTilePropertiesQCOM): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetFramebufferTilePropertiesQCOM")) + vkGetDynamicRenderingTilePropertiesQCOM = cast[proc(device: VkDevice, pRenderingInfo: ptr VkRenderingInfo, pProperties: ptr VkTilePropertiesQCOM): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDynamicRenderingTilePropertiesQCOM")) + +# extension VK_KHR_push_descriptor +var + vkCmdPushDescriptorSetKHR*: proc(commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, layout: VkPipelineLayout, set: uint32, descriptorWriteCount: uint32, pDescriptorWrites: ptr VkWriteDescriptorSet): void {.stdcall.} + vkCmdPushDescriptorSetWithTemplateKHR*: proc(commandBuffer: VkCommandBuffer, descriptorUpdateTemplate: VkDescriptorUpdateTemplate, layout: VkPipelineLayout, set: uint32, pData: pointer): void {.stdcall.} +proc loadVK_KHR_push_descriptor*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + vkCmdPushDescriptorSetKHR = cast[proc(commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, layout: VkPipelineLayout, set: uint32, descriptorWriteCount: uint32, pDescriptorWrites: ptr VkWriteDescriptorSet): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdPushDescriptorSetKHR")) + vkCmdPushDescriptorSetWithTemplateKHR = cast[proc(commandBuffer: VkCommandBuffer, descriptorUpdateTemplate: VkDescriptorUpdateTemplate, layout: VkPipelineLayout, set: uint32, pData: pointer): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdPushDescriptorSetWithTemplateKHR")) + vkCmdPushDescriptorSetWithTemplateKHR = cast[proc(commandBuffer: VkCommandBuffer, descriptorUpdateTemplate: VkDescriptorUpdateTemplate, layout: VkPipelineLayout, set: uint32, pData: pointer): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdPushDescriptorSetWithTemplateKHR")) + +proc loadVK_NV_viewport_swizzle*(instance: VkInstance) = + discard + +proc loadVK_NV_external_memory*(instance: VkInstance) = + loadVK_NV_external_memory_capabilities(instance) + +proc loadVK_EXT_depth_clip_control*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +proc loadVK_EXT_validation_flags*(instance: VkInstance) = + discard + +proc loadVK_EXT_conservative_rasterization*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +proc loadVK_AMD_gcn_shader*(instance: VkInstance) = + discard + +# extension VK_INTEL_performance_query +var + vkInitializePerformanceApiINTEL*: proc(device: VkDevice, pInitializeInfo: ptr VkInitializePerformanceApiInfoINTEL): VkResult {.stdcall.} + vkUninitializePerformanceApiINTEL*: proc(device: VkDevice): void {.stdcall.} + vkCmdSetPerformanceMarkerINTEL*: proc(commandBuffer: VkCommandBuffer, pMarkerInfo: ptr VkPerformanceMarkerInfoINTEL): VkResult {.stdcall.} + vkCmdSetPerformanceStreamMarkerINTEL*: proc(commandBuffer: VkCommandBuffer, pMarkerInfo: ptr VkPerformanceStreamMarkerInfoINTEL): VkResult {.stdcall.} + vkCmdSetPerformanceOverrideINTEL*: proc(commandBuffer: VkCommandBuffer, pOverrideInfo: ptr VkPerformanceOverrideInfoINTEL): VkResult {.stdcall.} + vkAcquirePerformanceConfigurationINTEL*: proc(device: VkDevice, pAcquireInfo: ptr VkPerformanceConfigurationAcquireInfoINTEL, pConfiguration: ptr VkPerformanceConfigurationINTEL): VkResult {.stdcall.} + vkReleasePerformanceConfigurationINTEL*: proc(device: VkDevice, configuration: VkPerformanceConfigurationINTEL): VkResult {.stdcall.} + vkQueueSetPerformanceConfigurationINTEL*: proc(queue: VkQueue, configuration: VkPerformanceConfigurationINTEL): VkResult {.stdcall.} + vkGetPerformanceParameterINTEL*: proc(device: VkDevice, parameter: VkPerformanceParameterTypeINTEL, pValue: ptr VkPerformanceValueINTEL): VkResult {.stdcall.} +proc loadVK_INTEL_performance_query*(instance: VkInstance) = + vkInitializePerformanceApiINTEL = cast[proc(device: VkDevice, pInitializeInfo: ptr VkInitializePerformanceApiInfoINTEL): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkInitializePerformanceApiINTEL")) + vkUninitializePerformanceApiINTEL = cast[proc(device: VkDevice): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkUninitializePerformanceApiINTEL")) + vkCmdSetPerformanceMarkerINTEL = cast[proc(commandBuffer: VkCommandBuffer, pMarkerInfo: ptr VkPerformanceMarkerInfoINTEL): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetPerformanceMarkerINTEL")) + vkCmdSetPerformanceStreamMarkerINTEL = cast[proc(commandBuffer: VkCommandBuffer, pMarkerInfo: ptr VkPerformanceStreamMarkerInfoINTEL): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetPerformanceStreamMarkerINTEL")) + vkCmdSetPerformanceOverrideINTEL = cast[proc(commandBuffer: VkCommandBuffer, pOverrideInfo: ptr VkPerformanceOverrideInfoINTEL): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetPerformanceOverrideINTEL")) + vkAcquirePerformanceConfigurationINTEL = cast[proc(device: VkDevice, pAcquireInfo: ptr VkPerformanceConfigurationAcquireInfoINTEL, pConfiguration: ptr VkPerformanceConfigurationINTEL): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkAcquirePerformanceConfigurationINTEL")) + vkReleasePerformanceConfigurationINTEL = cast[proc(device: VkDevice, configuration: VkPerformanceConfigurationINTEL): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkReleasePerformanceConfigurationINTEL")) + vkQueueSetPerformanceConfigurationINTEL = cast[proc(queue: VkQueue, configuration: VkPerformanceConfigurationINTEL): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkQueueSetPerformanceConfigurationINTEL")) + vkGetPerformanceParameterINTEL = cast[proc(device: VkDevice, parameter: VkPerformanceParameterTypeINTEL, pValue: ptr VkPerformanceValueINTEL): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPerformanceParameterINTEL")) + +proc loadVK_EXT_primitives_generated_query*(instance: VkInstance) = + loadVK_EXT_transform_feedback(instance) + +proc loadVK_AMD_pipeline_compiler_control*(instance: VkInstance) = + discard + +proc loadVK_EXT_post_depth_coverage*(instance: VkInstance) = + discard + +# extension VK_EXT_conditional_rendering +var + vkCmdBeginConditionalRenderingEXT*: proc(commandBuffer: VkCommandBuffer, pConditionalRenderingBegin: ptr VkConditionalRenderingBeginInfoEXT): void {.stdcall.} + vkCmdEndConditionalRenderingEXT*: proc(commandBuffer: VkCommandBuffer): void {.stdcall.} +proc loadVK_EXT_conditional_rendering*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + vkCmdBeginConditionalRenderingEXT = cast[proc(commandBuffer: VkCommandBuffer, pConditionalRenderingBegin: ptr VkConditionalRenderingBeginInfoEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBeginConditionalRenderingEXT")) + vkCmdEndConditionalRenderingEXT = cast[proc(commandBuffer: VkCommandBuffer): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdEndConditionalRenderingEXT")) + +proc loadVK_QCOM_multiview_per_view_viewports*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +# extension VK_EXT_multi_draw +var + vkCmdDrawMultiEXT*: proc(commandBuffer: VkCommandBuffer, drawCount: uint32, pVertexInfo: ptr VkMultiDrawInfoEXT, instanceCount: uint32, firstInstance: uint32, stride: uint32): void {.stdcall.} + vkCmdDrawMultiIndexedEXT*: proc(commandBuffer: VkCommandBuffer, drawCount: uint32, pIndexInfo: ptr VkMultiDrawIndexedInfoEXT, instanceCount: uint32, firstInstance: uint32, stride: uint32, pVertexOffset: ptr int32): void {.stdcall.} +proc loadVK_EXT_multi_draw*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + vkCmdDrawMultiEXT = cast[proc(commandBuffer: VkCommandBuffer, drawCount: uint32, pVertexInfo: ptr VkMultiDrawInfoEXT, instanceCount: uint32, firstInstance: uint32, stride: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawMultiEXT")) + vkCmdDrawMultiIndexedEXT = cast[proc(commandBuffer: VkCommandBuffer, drawCount: uint32, pIndexInfo: ptr VkMultiDrawIndexedInfoEXT, instanceCount: uint32, firstInstance: uint32, stride: uint32, pVertexOffset: ptr int32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawMultiIndexedEXT")) + +proc loadVK_NV_fragment_coverage_to_color*(instance: VkInstance) = + discard + +proc loadVK_EXT_load_store_op_none*(instance: VkInstance) = + discard + +proc loadVK_EXT_validation_features*(instance: VkInstance) = + discard + +proc loadVK_KHR_workgroup_memory_explicit_layout*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +proc loadVK_EXT_index_type_uint8*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +proc loadVK_GOOGLE_decorate_string*(instance: VkInstance) = + discard + +proc loadVK_EXT_shader_atomic_float*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +# extension VK_EXT_pipeline_properties +var + vkGetPipelinePropertiesEXT*: proc(device: VkDevice, pPipelineInfo: ptr VkPipelineInfoEXT, pPipelineProperties: ptr VkBaseOutStructure): VkResult {.stdcall.} +proc loadVK_EXT_pipeline_properties*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + vkGetPipelinePropertiesEXT = cast[proc(device: VkDevice, pPipelineInfo: ptr VkPipelineInfoEXT, pPipelineProperties: ptr VkBaseOutStructure): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPipelinePropertiesEXT")) + +proc loadVK_EXT_graphics_pipeline_library*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + loadVK_KHR_pipeline_library(instance) + +# extension VK_KHR_surface +var + vkDestroySurfaceKHR*: proc(instance: VkInstance, surface: VkSurfaceKHR, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} + vkGetPhysicalDeviceSurfaceSupportKHR*: proc(physicalDevice: VkPhysicalDevice, queueFamilyIndex: uint32, surface: VkSurfaceKHR, pSupported: ptr VkBool32): VkResult {.stdcall.} + vkGetPhysicalDeviceSurfaceCapabilitiesKHR*: proc(physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pSurfaceCapabilities: ptr VkSurfaceCapabilitiesKHR): VkResult {.stdcall.} + vkGetPhysicalDeviceSurfaceFormatsKHR*: proc(physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pSurfaceFormatCount: ptr uint32, pSurfaceFormats: ptr VkSurfaceFormatKHR): VkResult {.stdcall.} + vkGetPhysicalDeviceSurfacePresentModesKHR*: proc(physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pPresentModeCount: ptr uint32, pPresentModes: ptr VkPresentModeKHR): VkResult {.stdcall.} +proc loadVK_KHR_surface*(instance: VkInstance) = + vkDestroySurfaceKHR = cast[proc(instance: VkInstance, surface: VkSurfaceKHR, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroySurfaceKHR")) + vkGetPhysicalDeviceSurfaceSupportKHR = cast[proc(physicalDevice: VkPhysicalDevice, queueFamilyIndex: uint32, surface: VkSurfaceKHR, pSupported: ptr VkBool32): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSurfaceSupportKHR")) + vkGetPhysicalDeviceSurfaceCapabilitiesKHR = cast[proc(physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pSurfaceCapabilities: ptr VkSurfaceCapabilitiesKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR")) + vkGetPhysicalDeviceSurfaceFormatsKHR = cast[proc(physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pSurfaceFormatCount: ptr uint32, pSurfaceFormats: ptr VkSurfaceFormatKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSurfaceFormatsKHR")) + vkGetPhysicalDeviceSurfacePresentModesKHR = cast[proc(physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pPresentModeCount: ptr uint32, pPresentModes: ptr VkPresentModeKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSurfacePresentModesKHR")) + +proc loadVK_AMD_gpu_shader_half_float*(instance: VkInstance) = + discard + +# extension VK_KHR_deferred_host_operations +var + vkCreateDeferredOperationKHR*: proc(device: VkDevice, pAllocator: ptr VkAllocationCallbacks, pDeferredOperation: ptr VkDeferredOperationKHR): VkResult {.stdcall.} + vkDestroyDeferredOperationKHR*: proc(device: VkDevice, operation: VkDeferredOperationKHR, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} + vkGetDeferredOperationMaxConcurrencyKHR*: proc(device: VkDevice, operation: VkDeferredOperationKHR): uint32 {.stdcall.} + vkGetDeferredOperationResultKHR*: proc(device: VkDevice, operation: VkDeferredOperationKHR): VkResult {.stdcall.} + vkDeferredOperationJoinKHR*: proc(device: VkDevice, operation: VkDeferredOperationKHR): VkResult {.stdcall.} +proc loadVK_KHR_deferred_host_operations*(instance: VkInstance) = + vkCreateDeferredOperationKHR = cast[proc(device: VkDevice, pAllocator: ptr VkAllocationCallbacks, pDeferredOperation: ptr VkDeferredOperationKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateDeferredOperationKHR")) + vkDestroyDeferredOperationKHR = cast[proc(device: VkDevice, operation: VkDeferredOperationKHR, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyDeferredOperationKHR")) + vkGetDeferredOperationMaxConcurrencyKHR = cast[proc(device: VkDevice, operation: VkDeferredOperationKHR): uint32 {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeferredOperationMaxConcurrencyKHR")) + vkGetDeferredOperationResultKHR = cast[proc(device: VkDevice, operation: VkDeferredOperationKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeferredOperationResultKHR")) + vkDeferredOperationJoinKHR = cast[proc(device: VkDevice, operation: VkDeferredOperationKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDeferredOperationJoinKHR")) + +proc loadVK_NV_dedicated_allocation*(instance: VkInstance) = + discard + +# extension VK_NVX_image_view_handle +var + vkGetImageViewHandleNVX*: proc(device: VkDevice, pInfo: ptr VkImageViewHandleInfoNVX): uint32 {.stdcall.} + vkGetImageViewAddressNVX*: proc(device: VkDevice, imageView: VkImageView, pProperties: ptr VkImageViewAddressPropertiesNVX): VkResult {.stdcall.} +proc loadVK_NVX_image_view_handle*(instance: VkInstance) = + vkGetImageViewHandleNVX = cast[proc(device: VkDevice, pInfo: ptr VkImageViewHandleInfoNVX): uint32 {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetImageViewHandleNVX")) + vkGetImageViewAddressNVX = cast[proc(device: VkDevice, imageView: VkImageView, pProperties: ptr VkImageViewAddressPropertiesNVX): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetImageViewAddressNVX")) + +proc loadVK_EXT_non_seamless_cube_map*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +proc loadVK_QCOM_render_pass_store_ops*(instance: VkInstance) = + discard + +# extension VK_EXT_device_fault +var + vkGetDeviceFaultInfoEXT*: proc(device: VkDevice, pFaultCounts: ptr VkDeviceFaultCountsEXT, pFaultInfo: ptr VkDeviceFaultInfoEXT): VkResult {.stdcall.} +proc loadVK_EXT_device_fault*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + vkGetDeviceFaultInfoEXT = cast[proc(device: VkDevice, pFaultCounts: ptr VkDeviceFaultCountsEXT, pFaultInfo: ptr VkDeviceFaultInfoEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceFaultInfoEXT")) + +proc loadVK_EXT_mutable_descriptor_type*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +# extension VK_EXT_color_write_enable +var + vkCmdSetColorWriteEnableEXT*: proc(commandBuffer: VkCommandBuffer, attachmentCount: uint32, pColorWriteEnables: ptr VkBool32): void {.stdcall.} +proc loadVK_EXT_color_write_enable*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + vkCmdSetColorWriteEnableEXT = cast[proc(commandBuffer: VkCommandBuffer, attachmentCount: uint32, pColorWriteEnables: ptr VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetColorWriteEnableEXT")) + +proc loadVK_SEC_amigo_profiling*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +# extension VK_NVX_binary_import +var + vkCreateCuModuleNVX*: proc(device: VkDevice, pCreateInfo: ptr VkCuModuleCreateInfoNVX, pAllocator: ptr VkAllocationCallbacks, pModule: ptr VkCuModuleNVX): VkResult {.stdcall.} + vkCreateCuFunctionNVX*: proc(device: VkDevice, pCreateInfo: ptr VkCuFunctionCreateInfoNVX, pAllocator: ptr VkAllocationCallbacks, pFunction: ptr VkCuFunctionNVX): VkResult {.stdcall.} + vkDestroyCuModuleNVX*: proc(device: VkDevice, module: VkCuModuleNVX, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} + vkDestroyCuFunctionNVX*: proc(device: VkDevice, function: VkCuFunctionNVX, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} + vkCmdCuLaunchKernelNVX*: proc(commandBuffer: VkCommandBuffer, pLaunchInfo: ptr VkCuLaunchInfoNVX): void {.stdcall.} +proc loadVK_NVX_binary_import*(instance: VkInstance) = + vkCreateCuModuleNVX = cast[proc(device: VkDevice, pCreateInfo: ptr VkCuModuleCreateInfoNVX, pAllocator: ptr VkAllocationCallbacks, pModule: ptr VkCuModuleNVX): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateCuModuleNVX")) + vkCreateCuFunctionNVX = cast[proc(device: VkDevice, pCreateInfo: ptr VkCuFunctionCreateInfoNVX, pAllocator: ptr VkAllocationCallbacks, pFunction: ptr VkCuFunctionNVX): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateCuFunctionNVX")) + vkDestroyCuModuleNVX = cast[proc(device: VkDevice, module: VkCuModuleNVX, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyCuModuleNVX")) + vkDestroyCuFunctionNVX = cast[proc(device: VkDevice, function: VkCuFunctionNVX, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyCuFunctionNVX")) + vkCmdCuLaunchKernelNVX = cast[proc(commandBuffer: VkCommandBuffer, pLaunchInfo: ptr VkCuLaunchInfoNVX): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCuLaunchKernelNVX")) + +proc loadVK_NV_representative_fragment_test*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +# extension VK_EXT_validation_cache +var + vkCreateValidationCacheEXT*: proc(device: VkDevice, pCreateInfo: ptr VkValidationCacheCreateInfoEXT, pAllocator: ptr VkAllocationCallbacks, pValidationCache: ptr VkValidationCacheEXT): VkResult {.stdcall.} + vkDestroyValidationCacheEXT*: proc(device: VkDevice, validationCache: VkValidationCacheEXT, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} + vkMergeValidationCachesEXT*: proc(device: VkDevice, dstCache: VkValidationCacheEXT, srcCacheCount: uint32, pSrcCaches: ptr VkValidationCacheEXT): VkResult {.stdcall.} + vkGetValidationCacheDataEXT*: proc(device: VkDevice, validationCache: VkValidationCacheEXT, pDataSize: ptr csize_t, pData: pointer): VkResult {.stdcall.} +proc loadVK_EXT_validation_cache*(instance: VkInstance) = + vkCreateValidationCacheEXT = cast[proc(device: VkDevice, pCreateInfo: ptr VkValidationCacheCreateInfoEXT, pAllocator: ptr VkAllocationCallbacks, pValidationCache: ptr VkValidationCacheEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateValidationCacheEXT")) + vkDestroyValidationCacheEXT = cast[proc(device: VkDevice, validationCache: VkValidationCacheEXT, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyValidationCacheEXT")) + vkMergeValidationCachesEXT = cast[proc(device: VkDevice, dstCache: VkValidationCacheEXT, srcCacheCount: uint32, pSrcCaches: ptr VkValidationCacheEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkMergeValidationCachesEXT")) + vkGetValidationCacheDataEXT = cast[proc(device: VkDevice, validationCache: VkValidationCacheEXT, pDataSize: ptr csize_t, pData: pointer): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetValidationCacheDataEXT")) + +proc loadVK_NV_inherited_viewport_scissor*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +proc loadVK_EXT_legacy_dithering*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +proc loadVK_EXT_physical_device_drm*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +proc loadVK_EXT_pipeline_protected_access*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +# extension VK_EXT_discard_rectangles +var + vkCmdSetDiscardRectangleEXT*: proc(commandBuffer: VkCommandBuffer, firstDiscardRectangle: uint32, discardRectangleCount: uint32, pDiscardRectangles: ptr VkRect2D): void {.stdcall.} + vkCmdSetDiscardRectangleEnableEXT*: proc(commandBuffer: VkCommandBuffer, discardRectangleEnable: VkBool32): void {.stdcall.} + vkCmdSetDiscardRectangleModeEXT*: proc(commandBuffer: VkCommandBuffer, discardRectangleMode: VkDiscardRectangleModeEXT): void {.stdcall.} +proc loadVK_EXT_discard_rectangles*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + vkCmdSetDiscardRectangleEXT = cast[proc(commandBuffer: VkCommandBuffer, firstDiscardRectangle: uint32, discardRectangleCount: uint32, pDiscardRectangles: ptr VkRect2D): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDiscardRectangleEXT")) + vkCmdSetDiscardRectangleEnableEXT = cast[proc(commandBuffer: VkCommandBuffer, discardRectangleEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDiscardRectangleEnableEXT")) + vkCmdSetDiscardRectangleModeEXT = cast[proc(commandBuffer: VkCommandBuffer, discardRectangleMode: VkDiscardRectangleModeEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDiscardRectangleModeEXT")) + +proc loadVK_EXT_shader_stencil_export*(instance: VkInstance) = + discard + +# extension VK_NV_external_memory_rdma +var + vkGetMemoryRemoteAddressNV*: proc(device: VkDevice, pMemoryGetRemoteAddressInfo: ptr VkMemoryGetRemoteAddressInfoNV, pAddress: ptr VkRemoteAddressNV): VkResult {.stdcall.} +proc loadVK_NV_external_memory_rdma*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + vkGetMemoryRemoteAddressNV = cast[proc(device: VkDevice, pMemoryGetRemoteAddressInfo: ptr VkMemoryGetRemoteAddressInfoNV, pAddress: ptr VkRemoteAddressNV): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetMemoryRemoteAddressNV")) + +proc loadVK_ARM_shader_core_builtins*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +proc loadVK_QCOM_multiview_per_view_render_areas*(instance: VkInstance) = + discard + +proc loadVK_LUNARG_direct_driver_loading*(instance: VkInstance) = + discard + +proc loadVK_AMD_shader_explicit_vertex_parameter*(instance: VkInstance) = + discard + +# extension VK_EXT_headless_surface +var + vkCreateHeadlessSurfaceEXT*: proc(instance: VkInstance, pCreateInfo: ptr VkHeadlessSurfaceCreateInfoEXT, pAllocator: ptr VkAllocationCallbacks, pSurface: ptr VkSurfaceKHR): VkResult {.stdcall.} +proc loadVK_EXT_headless_surface*(instance: VkInstance) = + loadVK_KHR_surface(instance) + vkCreateHeadlessSurfaceEXT = cast[proc(instance: VkInstance, pCreateInfo: ptr VkHeadlessSurfaceCreateInfoEXT, pAllocator: ptr VkAllocationCallbacks, pSurface: ptr VkSurfaceKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateHeadlessSurfaceEXT")) + +proc loadVK_NV_shader_sm_builtins*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +proc loadVK_EXT_shader_subgroup_vote*(instance: VkInstance) = + discard + +# extension VK_NV_copy_memory_indirect +var + vkCmdCopyMemoryIndirectNV*: proc(commandBuffer: VkCommandBuffer, copyBufferAddress: VkDeviceAddress, copyCount: uint32, stride: uint32): void {.stdcall.} + vkCmdCopyMemoryToImageIndirectNV*: proc(commandBuffer: VkCommandBuffer, copyBufferAddress: VkDeviceAddress, copyCount: uint32, stride: uint32, dstImage: VkImage, dstImageLayout: VkImageLayout, pImageSubresources: ptr VkImageSubresourceLayers): void {.stdcall.} +proc loadVK_NV_copy_memory_indirect*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + loadVK_VERSION_1_2(instance) + vkCmdCopyMemoryIndirectNV = cast[proc(commandBuffer: VkCommandBuffer, copyBufferAddress: VkDeviceAddress, copyCount: uint32, stride: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyMemoryIndirectNV")) + vkCmdCopyMemoryToImageIndirectNV = cast[proc(commandBuffer: VkCommandBuffer, copyBufferAddress: VkDeviceAddress, copyCount: uint32, stride: uint32, dstImage: VkImage, dstImageLayout: VkImageLayout, pImageSubresources: ptr VkImageSubresourceLayers): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyMemoryToImageIndirectNV")) + +proc loadVK_EXT_astc_decode_mode*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +# extension VK_KHR_get_surface_capabilities2 +var + vkGetPhysicalDeviceSurfaceCapabilities2KHR*: proc(physicalDevice: VkPhysicalDevice, pSurfaceInfo: ptr VkPhysicalDeviceSurfaceInfo2KHR, pSurfaceCapabilities: ptr VkSurfaceCapabilities2KHR): VkResult {.stdcall.} + vkGetPhysicalDeviceSurfaceFormats2KHR*: proc(physicalDevice: VkPhysicalDevice, pSurfaceInfo: ptr VkPhysicalDeviceSurfaceInfo2KHR, pSurfaceFormatCount: ptr uint32, pSurfaceFormats: ptr VkSurfaceFormat2KHR): VkResult {.stdcall.} +proc loadVK_KHR_get_surface_capabilities2*(instance: VkInstance) = + loadVK_KHR_surface(instance) + vkGetPhysicalDeviceSurfaceCapabilities2KHR = cast[proc(physicalDevice: VkPhysicalDevice, pSurfaceInfo: ptr VkPhysicalDeviceSurfaceInfo2KHR, pSurfaceCapabilities: ptr VkSurfaceCapabilities2KHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSurfaceCapabilities2KHR")) + vkGetPhysicalDeviceSurfaceFormats2KHR = cast[proc(physicalDevice: VkPhysicalDevice, pSurfaceInfo: ptr VkPhysicalDeviceSurfaceInfo2KHR, pSurfaceFormatCount: ptr uint32, pSurfaceFormats: ptr VkSurfaceFormat2KHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSurfaceFormats2KHR")) + +# extension VK_HUAWEI_cluster_culling_shader +var + vkCmdDrawClusterHUAWEI*: proc(commandBuffer: VkCommandBuffer, groupCountX: uint32, groupCountY: uint32, groupCountZ: uint32): void {.stdcall.} + vkCmdDrawClusterIndirectHUAWEI*: proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize): void {.stdcall.} +proc loadVK_HUAWEI_cluster_culling_shader*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + vkCmdDrawClusterHUAWEI = cast[proc(commandBuffer: VkCommandBuffer, groupCountX: uint32, groupCountY: uint32, groupCountZ: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawClusterHUAWEI")) + vkCmdDrawClusterIndirectHUAWEI = cast[proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawClusterIndirectHUAWEI")) + +proc loadVK_KHR_surface_protected_capabilities*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + loadVK_KHR_get_surface_capabilities2(instance) + +proc loadVK_NV_shader_image_footprint*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +proc loadVK_NV_compute_shader_derivatives*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + +proc loadVK_QCOM_fragment_density_map_offset*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + loadVK_EXT_fragment_density_map(instance) + +proc loadVK_EXT_shader_atomic_float2*(instance: VkInstance) = + loadVK_EXT_shader_atomic_float(instance) + +# extension VK_EXT_pageable_device_local_memory +var + vkSetDeviceMemoryPriorityEXT*: proc(device: VkDevice, memory: VkDeviceMemory, priority: float32): void {.stdcall.} +proc loadVK_EXT_pageable_device_local_memory*(instance: VkInstance) = + loadVK_EXT_memory_priority(instance) + vkSetDeviceMemoryPriorityEXT = cast[proc(device: VkDevice, memory: VkDeviceMemory, priority: float32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkSetDeviceMemoryPriorityEXT")) + +# extension VK_KHR_swapchain +var + vkCreateSwapchainKHR*: proc(device: VkDevice, pCreateInfo: ptr VkSwapchainCreateInfoKHR, pAllocator: ptr VkAllocationCallbacks, pSwapchain: ptr VkSwapchainKHR): VkResult {.stdcall.} + vkDestroySwapchainKHR*: proc(device: VkDevice, swapchain: VkSwapchainKHR, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} + vkGetSwapchainImagesKHR*: proc(device: VkDevice, swapchain: VkSwapchainKHR, pSwapchainImageCount: ptr uint32, pSwapchainImages: ptr VkImage): VkResult {.stdcall.} + vkAcquireNextImageKHR*: proc(device: VkDevice, swapchain: VkSwapchainKHR, timeout: uint64, semaphore: VkSemaphore, fence: VkFence, pImageIndex: ptr uint32): VkResult {.stdcall.} + vkQueuePresentKHR*: proc(queue: VkQueue, pPresentInfo: ptr VkPresentInfoKHR): VkResult {.stdcall.} + vkGetDeviceGroupPresentCapabilitiesKHR*: proc(device: VkDevice, pDeviceGroupPresentCapabilities: ptr VkDeviceGroupPresentCapabilitiesKHR): VkResult {.stdcall.} + vkGetDeviceGroupSurfacePresentModesKHR*: proc(device: VkDevice, surface: VkSurfaceKHR, pModes: ptr VkDeviceGroupPresentModeFlagsKHR): VkResult {.stdcall.} + vkGetPhysicalDevicePresentRectanglesKHR*: proc(physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pRectCount: ptr uint32, pRects: ptr VkRect2D): VkResult {.stdcall.} + vkAcquireNextImage2KHR*: proc(device: VkDevice, pAcquireInfo: ptr VkAcquireNextImageInfoKHR, pImageIndex: ptr uint32): VkResult {.stdcall.} +proc loadVK_KHR_swapchain*(instance: VkInstance) = + loadVK_KHR_surface(instance) + vkCreateSwapchainKHR = cast[proc(device: VkDevice, pCreateInfo: ptr VkSwapchainCreateInfoKHR, pAllocator: ptr VkAllocationCallbacks, pSwapchain: ptr VkSwapchainKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateSwapchainKHR")) + vkDestroySwapchainKHR = cast[proc(device: VkDevice, swapchain: VkSwapchainKHR, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroySwapchainKHR")) + vkGetSwapchainImagesKHR = cast[proc(device: VkDevice, swapchain: VkSwapchainKHR, pSwapchainImageCount: ptr uint32, pSwapchainImages: ptr VkImage): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetSwapchainImagesKHR")) + vkAcquireNextImageKHR = cast[proc(device: VkDevice, swapchain: VkSwapchainKHR, timeout: uint64, semaphore: VkSemaphore, fence: VkFence, pImageIndex: ptr uint32): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkAcquireNextImageKHR")) + vkQueuePresentKHR = cast[proc(queue: VkQueue, pPresentInfo: ptr VkPresentInfoKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkQueuePresentKHR")) + vkGetDeviceGroupPresentCapabilitiesKHR = cast[proc(device: VkDevice, pDeviceGroupPresentCapabilities: ptr VkDeviceGroupPresentCapabilitiesKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceGroupPresentCapabilitiesKHR")) + vkGetDeviceGroupSurfacePresentModesKHR = cast[proc(device: VkDevice, surface: VkSurfaceKHR, pModes: ptr VkDeviceGroupPresentModeFlagsKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceGroupSurfacePresentModesKHR")) + vkGetPhysicalDevicePresentRectanglesKHR = cast[proc(physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pRectCount: ptr uint32, pRects: ptr VkRect2D): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDevicePresentRectanglesKHR")) + vkAcquireNextImage2KHR = cast[proc(device: VkDevice, pAcquireInfo: ptr VkAcquireNextImageInfoKHR, pImageIndex: ptr uint32): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkAcquireNextImage2KHR")) + +proc loadVK_EXT_fragment_density_map2*(instance: VkInstance) = + loadVK_EXT_fragment_density_map(instance) + +# extension VK_NV_fragment_shading_rate_enums +var + vkCmdSetFragmentShadingRateEnumNV*: proc(commandBuffer: VkCommandBuffer, shadingRate: VkFragmentShadingRateNV, combinerOps: array[2, VkFragmentShadingRateCombinerOpKHR]): void {.stdcall.} +proc loadVK_NV_fragment_shading_rate_enums*(instance: VkInstance) = + loadVK_KHR_fragment_shading_rate(instance) + vkCmdSetFragmentShadingRateEnumNV = cast[proc(commandBuffer: VkCommandBuffer, shadingRate: VkFragmentShadingRateNV, combinerOps: array[2, VkFragmentShadingRateCombinerOpKHR]): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetFragmentShadingRateEnumNV")) + +# extension VK_AMD_display_native_hdr +var + vkSetLocalDimmingAMD*: proc(device: VkDevice, swapChain: VkSwapchainKHR, localDimmingEnable: VkBool32): void {.stdcall.} +proc loadVK_AMD_display_native_hdr*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + loadVK_KHR_get_surface_capabilities2(instance) + loadVK_KHR_swapchain(instance) + vkSetLocalDimmingAMD = cast[proc(device: VkDevice, swapChain: VkSwapchainKHR, localDimmingEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkSetLocalDimmingAMD")) + +proc loadVK_NV_present_barrier*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + loadVK_KHR_surface(instance) + loadVK_KHR_get_surface_capabilities2(instance) + loadVK_KHR_swapchain(instance) + +proc loadVK_QCOM_rotated_copy_commands*(instance: VkInstance) = + loadVK_KHR_swapchain(instance) + loadVK_VERSION_1_3(instance) + +proc loadVK_EXT_surface_maintenance1*(instance: VkInstance) = + loadVK_KHR_surface(instance) + loadVK_KHR_get_surface_capabilities2(instance) + +# extension VK_KHR_acceleration_structure +var + vkCreateAccelerationStructureKHR*: proc(device: VkDevice, pCreateInfo: ptr VkAccelerationStructureCreateInfoKHR, pAllocator: ptr VkAllocationCallbacks, pAccelerationStructure: ptr VkAccelerationStructureKHR): VkResult {.stdcall.} + vkDestroyAccelerationStructureKHR*: proc(device: VkDevice, accelerationStructure: VkAccelerationStructureKHR, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} + vkCmdBuildAccelerationStructuresKHR*: proc(commandBuffer: VkCommandBuffer, infoCount: uint32, pInfos: ptr VkAccelerationStructureBuildGeometryInfoKHR, ppBuildRangeInfos: ptr ptr VkAccelerationStructureBuildRangeInfoKHR): void {.stdcall.} + vkCmdBuildAccelerationStructuresIndirectKHR*: proc(commandBuffer: VkCommandBuffer, infoCount: uint32, pInfos: ptr VkAccelerationStructureBuildGeometryInfoKHR, pIndirectDeviceAddresses: ptr VkDeviceAddress, pIndirectStrides: ptr uint32, ppMaxPrimitiveCounts: ptr ptr uint32): void {.stdcall.} + vkBuildAccelerationStructuresKHR*: proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, infoCount: uint32, pInfos: ptr VkAccelerationStructureBuildGeometryInfoKHR, ppBuildRangeInfos: ptr ptr VkAccelerationStructureBuildRangeInfoKHR): VkResult {.stdcall.} + vkCopyAccelerationStructureKHR*: proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, pInfo: ptr VkCopyAccelerationStructureInfoKHR): VkResult {.stdcall.} + vkCopyAccelerationStructureToMemoryKHR*: proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, pInfo: ptr VkCopyAccelerationStructureToMemoryInfoKHR): VkResult {.stdcall.} + vkCopyMemoryToAccelerationStructureKHR*: proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, pInfo: ptr VkCopyMemoryToAccelerationStructureInfoKHR): VkResult {.stdcall.} + vkWriteAccelerationStructuresPropertiesKHR*: proc(device: VkDevice, accelerationStructureCount: uint32, pAccelerationStructures: ptr VkAccelerationStructureKHR, queryType: VkQueryType, dataSize: csize_t, pData: pointer, stride: csize_t): VkResult {.stdcall.} + vkCmdCopyAccelerationStructureKHR*: proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyAccelerationStructureInfoKHR): void {.stdcall.} + vkCmdCopyAccelerationStructureToMemoryKHR*: proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyAccelerationStructureToMemoryInfoKHR): void {.stdcall.} + vkCmdCopyMemoryToAccelerationStructureKHR*: proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyMemoryToAccelerationStructureInfoKHR): void {.stdcall.} + vkGetAccelerationStructureDeviceAddressKHR*: proc(device: VkDevice, pInfo: ptr VkAccelerationStructureDeviceAddressInfoKHR): VkDeviceAddress {.stdcall.} + vkCmdWriteAccelerationStructuresPropertiesKHR*: proc(commandBuffer: VkCommandBuffer, accelerationStructureCount: uint32, pAccelerationStructures: ptr VkAccelerationStructureKHR, queryType: VkQueryType, queryPool: VkQueryPool, firstQuery: uint32): void {.stdcall.} + vkGetDeviceAccelerationStructureCompatibilityKHR*: proc(device: VkDevice, pVersionInfo: ptr VkAccelerationStructureVersionInfoKHR, pCompatibility: ptr VkAccelerationStructureCompatibilityKHR): void {.stdcall.} + vkGetAccelerationStructureBuildSizesKHR*: proc(device: VkDevice, buildType: VkAccelerationStructureBuildTypeKHR, pBuildInfo: ptr VkAccelerationStructureBuildGeometryInfoKHR, pMaxPrimitiveCounts: ptr uint32, pSizeInfo: ptr VkAccelerationStructureBuildSizesInfoKHR): void {.stdcall.} +proc loadVK_KHR_acceleration_structure*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + loadVK_VERSION_1_2(instance) + loadVK_VERSION_1_2(instance) + loadVK_KHR_deferred_host_operations(instance) + vkCreateAccelerationStructureKHR = cast[proc(device: VkDevice, pCreateInfo: ptr VkAccelerationStructureCreateInfoKHR, pAllocator: ptr VkAllocationCallbacks, pAccelerationStructure: ptr VkAccelerationStructureKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateAccelerationStructureKHR")) + vkDestroyAccelerationStructureKHR = cast[proc(device: VkDevice, accelerationStructure: VkAccelerationStructureKHR, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyAccelerationStructureKHR")) + vkCmdBuildAccelerationStructuresKHR = cast[proc(commandBuffer: VkCommandBuffer, infoCount: uint32, pInfos: ptr VkAccelerationStructureBuildGeometryInfoKHR, ppBuildRangeInfos: ptr ptr VkAccelerationStructureBuildRangeInfoKHR): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBuildAccelerationStructuresKHR")) + vkCmdBuildAccelerationStructuresIndirectKHR = cast[proc(commandBuffer: VkCommandBuffer, infoCount: uint32, pInfos: ptr VkAccelerationStructureBuildGeometryInfoKHR, pIndirectDeviceAddresses: ptr VkDeviceAddress, pIndirectStrides: ptr uint32, ppMaxPrimitiveCounts: ptr ptr uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBuildAccelerationStructuresIndirectKHR")) + vkBuildAccelerationStructuresKHR = cast[proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, infoCount: uint32, pInfos: ptr VkAccelerationStructureBuildGeometryInfoKHR, ppBuildRangeInfos: ptr ptr VkAccelerationStructureBuildRangeInfoKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkBuildAccelerationStructuresKHR")) + vkCopyAccelerationStructureKHR = cast[proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, pInfo: ptr VkCopyAccelerationStructureInfoKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCopyAccelerationStructureKHR")) + vkCopyAccelerationStructureToMemoryKHR = cast[proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, pInfo: ptr VkCopyAccelerationStructureToMemoryInfoKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCopyAccelerationStructureToMemoryKHR")) + vkCopyMemoryToAccelerationStructureKHR = cast[proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, pInfo: ptr VkCopyMemoryToAccelerationStructureInfoKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCopyMemoryToAccelerationStructureKHR")) + vkWriteAccelerationStructuresPropertiesKHR = cast[proc(device: VkDevice, accelerationStructureCount: uint32, pAccelerationStructures: ptr VkAccelerationStructureKHR, queryType: VkQueryType, dataSize: csize_t, pData: pointer, stride: csize_t): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkWriteAccelerationStructuresPropertiesKHR")) + vkCmdCopyAccelerationStructureKHR = cast[proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyAccelerationStructureInfoKHR): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyAccelerationStructureKHR")) + vkCmdCopyAccelerationStructureToMemoryKHR = cast[proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyAccelerationStructureToMemoryInfoKHR): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyAccelerationStructureToMemoryKHR")) + vkCmdCopyMemoryToAccelerationStructureKHR = cast[proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyMemoryToAccelerationStructureInfoKHR): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyMemoryToAccelerationStructureKHR")) + vkGetAccelerationStructureDeviceAddressKHR = cast[proc(device: VkDevice, pInfo: ptr VkAccelerationStructureDeviceAddressInfoKHR): VkDeviceAddress {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetAccelerationStructureDeviceAddressKHR")) + vkCmdWriteAccelerationStructuresPropertiesKHR = cast[proc(commandBuffer: VkCommandBuffer, accelerationStructureCount: uint32, pAccelerationStructures: ptr VkAccelerationStructureKHR, queryType: VkQueryType, queryPool: VkQueryPool, firstQuery: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdWriteAccelerationStructuresPropertiesKHR")) + vkGetDeviceAccelerationStructureCompatibilityKHR = cast[proc(device: VkDevice, pVersionInfo: ptr VkAccelerationStructureVersionInfoKHR, pCompatibility: ptr VkAccelerationStructureCompatibilityKHR): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceAccelerationStructureCompatibilityKHR")) + vkGetAccelerationStructureBuildSizesKHR = cast[proc(device: VkDevice, buildType: VkAccelerationStructureBuildTypeKHR, pBuildInfo: ptr VkAccelerationStructureBuildGeometryInfoKHR, pMaxPrimitiveCounts: ptr uint32, pSizeInfo: ptr VkAccelerationStructureBuildSizesInfoKHR): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetAccelerationStructureBuildSizesKHR")) + +# extension VK_GOOGLE_display_timing +var + vkGetRefreshCycleDurationGOOGLE*: proc(device: VkDevice, swapchain: VkSwapchainKHR, pDisplayTimingProperties: ptr VkRefreshCycleDurationGOOGLE): VkResult {.stdcall.} + vkGetPastPresentationTimingGOOGLE*: proc(device: VkDevice, swapchain: VkSwapchainKHR, pPresentationTimingCount: ptr uint32, pPresentationTimings: ptr VkPastPresentationTimingGOOGLE): VkResult {.stdcall.} +proc loadVK_GOOGLE_display_timing*(instance: VkInstance) = + loadVK_KHR_swapchain(instance) + vkGetRefreshCycleDurationGOOGLE = cast[proc(device: VkDevice, swapchain: VkSwapchainKHR, pDisplayTimingProperties: ptr VkRefreshCycleDurationGOOGLE): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetRefreshCycleDurationGOOGLE")) + vkGetPastPresentationTimingGOOGLE = cast[proc(device: VkDevice, swapchain: VkSwapchainKHR, pPresentationTimingCount: ptr uint32, pPresentationTimings: ptr VkPastPresentationTimingGOOGLE): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPastPresentationTimingGOOGLE")) + +proc loadVK_QCOM_render_pass_transform*(instance: VkInstance) = + loadVK_KHR_swapchain(instance) + loadVK_KHR_surface(instance) + +proc loadVK_GOOGLE_surfaceless_query*(instance: VkInstance) = + loadVK_KHR_surface(instance) + +proc loadVK_EXT_image_compression_control_swapchain*(instance: VkInstance) = + loadVK_EXT_image_compression_control(instance) + +# extension VK_KHR_display +var + vkGetPhysicalDeviceDisplayPropertiesKHR*: proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32, pProperties: ptr VkDisplayPropertiesKHR): VkResult {.stdcall.} + vkGetPhysicalDeviceDisplayPlanePropertiesKHR*: proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32, pProperties: ptr VkDisplayPlanePropertiesKHR): VkResult {.stdcall.} + vkGetDisplayPlaneSupportedDisplaysKHR*: proc(physicalDevice: VkPhysicalDevice, planeIndex: uint32, pDisplayCount: ptr uint32, pDisplays: ptr VkDisplayKHR): VkResult {.stdcall.} + vkGetDisplayModePropertiesKHR*: proc(physicalDevice: VkPhysicalDevice, display: VkDisplayKHR, pPropertyCount: ptr uint32, pProperties: ptr VkDisplayModePropertiesKHR): VkResult {.stdcall.} + vkCreateDisplayModeKHR*: proc(physicalDevice: VkPhysicalDevice, display: VkDisplayKHR, pCreateInfo: ptr VkDisplayModeCreateInfoKHR, pAllocator: ptr VkAllocationCallbacks, pMode: ptr VkDisplayModeKHR): VkResult {.stdcall.} + vkGetDisplayPlaneCapabilitiesKHR*: proc(physicalDevice: VkPhysicalDevice, mode: VkDisplayModeKHR, planeIndex: uint32, pCapabilities: ptr VkDisplayPlaneCapabilitiesKHR): VkResult {.stdcall.} + vkCreateDisplayPlaneSurfaceKHR*: proc(instance: VkInstance, pCreateInfo: ptr VkDisplaySurfaceCreateInfoKHR, pAllocator: ptr VkAllocationCallbacks, pSurface: ptr VkSurfaceKHR): VkResult {.stdcall.} +proc loadVK_KHR_display*(instance: VkInstance) = + loadVK_KHR_surface(instance) + vkGetPhysicalDeviceDisplayPropertiesKHR = cast[proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32, pProperties: ptr VkDisplayPropertiesKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceDisplayPropertiesKHR")) + vkGetPhysicalDeviceDisplayPlanePropertiesKHR = cast[proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32, pProperties: ptr VkDisplayPlanePropertiesKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR")) + vkGetDisplayPlaneSupportedDisplaysKHR = cast[proc(physicalDevice: VkPhysicalDevice, planeIndex: uint32, pDisplayCount: ptr uint32, pDisplays: ptr VkDisplayKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDisplayPlaneSupportedDisplaysKHR")) + vkGetDisplayModePropertiesKHR = cast[proc(physicalDevice: VkPhysicalDevice, display: VkDisplayKHR, pPropertyCount: ptr uint32, pProperties: ptr VkDisplayModePropertiesKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDisplayModePropertiesKHR")) + vkCreateDisplayModeKHR = cast[proc(physicalDevice: VkPhysicalDevice, display: VkDisplayKHR, pCreateInfo: ptr VkDisplayModeCreateInfoKHR, pAllocator: ptr VkAllocationCallbacks, pMode: ptr VkDisplayModeKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateDisplayModeKHR")) + vkGetDisplayPlaneCapabilitiesKHR = cast[proc(physicalDevice: VkPhysicalDevice, mode: VkDisplayModeKHR, planeIndex: uint32, pCapabilities: ptr VkDisplayPlaneCapabilitiesKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDisplayPlaneCapabilitiesKHR")) + vkCreateDisplayPlaneSurfaceKHR = cast[proc(instance: VkInstance, pCreateInfo: ptr VkDisplaySurfaceCreateInfoKHR, pAllocator: ptr VkAllocationCallbacks, pSurface: ptr VkSurfaceKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateDisplayPlaneSurfaceKHR")) + +# extension VK_EXT_swapchain_maintenance1 +var + vkReleaseSwapchainImagesEXT*: proc(device: VkDevice, pReleaseInfo: ptr VkReleaseSwapchainImagesInfoEXT): VkResult {.stdcall.} +proc loadVK_EXT_swapchain_maintenance1*(instance: VkInstance) = + loadVK_KHR_swapchain(instance) + loadVK_EXT_surface_maintenance1(instance) + loadVK_VERSION_1_1(instance) + vkReleaseSwapchainImagesEXT = cast[proc(device: VkDevice, pReleaseInfo: ptr VkReleaseSwapchainImagesInfoEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkReleaseSwapchainImagesEXT")) + +# extension VK_EXT_direct_mode_display +var + vkReleaseDisplayEXT*: proc(physicalDevice: VkPhysicalDevice, display: VkDisplayKHR): VkResult {.stdcall.} +proc loadVK_EXT_direct_mode_display*(instance: VkInstance) = + loadVK_KHR_display(instance) + vkReleaseDisplayEXT = cast[proc(physicalDevice: VkPhysicalDevice, display: VkDisplayKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkReleaseDisplayEXT")) + +proc loadVK_KHR_swapchain_mutable_format*(instance: VkInstance) = + loadVK_KHR_swapchain(instance) + loadVK_VERSION_1_1(instance) + loadVK_VERSION_1_2(instance) + +proc loadVK_EXT_swapchain_colorspace*(instance: VkInstance) = + loadVK_KHR_surface(instance) + +# extension VK_EXT_opacity_micromap +var + vkCreateMicromapEXT*: proc(device: VkDevice, pCreateInfo: ptr VkMicromapCreateInfoEXT, pAllocator: ptr VkAllocationCallbacks, pMicromap: ptr VkMicromapEXT): VkResult {.stdcall.} + vkDestroyMicromapEXT*: proc(device: VkDevice, micromap: VkMicromapEXT, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} + vkCmdBuildMicromapsEXT*: proc(commandBuffer: VkCommandBuffer, infoCount: uint32, pInfos: ptr VkMicromapBuildInfoEXT): void {.stdcall.} + vkBuildMicromapsEXT*: proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, infoCount: uint32, pInfos: ptr VkMicromapBuildInfoEXT): VkResult {.stdcall.} + vkCopyMicromapEXT*: proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, pInfo: ptr VkCopyMicromapInfoEXT): VkResult {.stdcall.} + vkCopyMicromapToMemoryEXT*: proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, pInfo: ptr VkCopyMicromapToMemoryInfoEXT): VkResult {.stdcall.} + vkCopyMemoryToMicromapEXT*: proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, pInfo: ptr VkCopyMemoryToMicromapInfoEXT): VkResult {.stdcall.} + vkWriteMicromapsPropertiesEXT*: proc(device: VkDevice, micromapCount: uint32, pMicromaps: ptr VkMicromapEXT, queryType: VkQueryType, dataSize: csize_t, pData: pointer, stride: csize_t): VkResult {.stdcall.} + vkCmdCopyMicromapEXT*: proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyMicromapInfoEXT): void {.stdcall.} + vkCmdCopyMicromapToMemoryEXT*: proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyMicromapToMemoryInfoEXT): void {.stdcall.} + vkCmdCopyMemoryToMicromapEXT*: proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyMemoryToMicromapInfoEXT): void {.stdcall.} + vkCmdWriteMicromapsPropertiesEXT*: proc(commandBuffer: VkCommandBuffer, micromapCount: uint32, pMicromaps: ptr VkMicromapEXT, queryType: VkQueryType, queryPool: VkQueryPool, firstQuery: uint32): void {.stdcall.} + vkGetDeviceMicromapCompatibilityEXT*: proc(device: VkDevice, pVersionInfo: ptr VkMicromapVersionInfoEXT, pCompatibility: ptr VkAccelerationStructureCompatibilityKHR): void {.stdcall.} + vkGetMicromapBuildSizesEXT*: proc(device: VkDevice, buildType: VkAccelerationStructureBuildTypeKHR, pBuildInfo: ptr VkMicromapBuildInfoEXT, pSizeInfo: ptr VkMicromapBuildSizesInfoEXT): void {.stdcall.} +proc loadVK_EXT_opacity_micromap*(instance: VkInstance) = + loadVK_KHR_acceleration_structure(instance) + loadVK_VERSION_1_3(instance) + vkCreateMicromapEXT = cast[proc(device: VkDevice, pCreateInfo: ptr VkMicromapCreateInfoEXT, pAllocator: ptr VkAllocationCallbacks, pMicromap: ptr VkMicromapEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateMicromapEXT")) + vkDestroyMicromapEXT = cast[proc(device: VkDevice, micromap: VkMicromapEXT, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyMicromapEXT")) + vkCmdBuildMicromapsEXT = cast[proc(commandBuffer: VkCommandBuffer, infoCount: uint32, pInfos: ptr VkMicromapBuildInfoEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBuildMicromapsEXT")) + vkBuildMicromapsEXT = cast[proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, infoCount: uint32, pInfos: ptr VkMicromapBuildInfoEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkBuildMicromapsEXT")) + vkCopyMicromapEXT = cast[proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, pInfo: ptr VkCopyMicromapInfoEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCopyMicromapEXT")) + vkCopyMicromapToMemoryEXT = cast[proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, pInfo: ptr VkCopyMicromapToMemoryInfoEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCopyMicromapToMemoryEXT")) + vkCopyMemoryToMicromapEXT = cast[proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, pInfo: ptr VkCopyMemoryToMicromapInfoEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCopyMemoryToMicromapEXT")) + vkWriteMicromapsPropertiesEXT = cast[proc(device: VkDevice, micromapCount: uint32, pMicromaps: ptr VkMicromapEXT, queryType: VkQueryType, dataSize: csize_t, pData: pointer, stride: csize_t): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkWriteMicromapsPropertiesEXT")) + vkCmdCopyMicromapEXT = cast[proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyMicromapInfoEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyMicromapEXT")) + vkCmdCopyMicromapToMemoryEXT = cast[proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyMicromapToMemoryInfoEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyMicromapToMemoryEXT")) + vkCmdCopyMemoryToMicromapEXT = cast[proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyMemoryToMicromapInfoEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyMemoryToMicromapEXT")) + vkCmdWriteMicromapsPropertiesEXT = cast[proc(commandBuffer: VkCommandBuffer, micromapCount: uint32, pMicromaps: ptr VkMicromapEXT, queryType: VkQueryType, queryPool: VkQueryPool, firstQuery: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdWriteMicromapsPropertiesEXT")) + vkGetDeviceMicromapCompatibilityEXT = cast[proc(device: VkDevice, pVersionInfo: ptr VkMicromapVersionInfoEXT, pCompatibility: ptr VkAccelerationStructureCompatibilityKHR): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceMicromapCompatibilityEXT")) + vkGetMicromapBuildSizesEXT = cast[proc(device: VkDevice, buildType: VkAccelerationStructureBuildTypeKHR, pBuildInfo: ptr VkMicromapBuildInfoEXT, pSizeInfo: ptr VkMicromapBuildSizesInfoEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetMicromapBuildSizesEXT")) + +proc loadVK_KHR_incremental_present*(instance: VkInstance) = + loadVK_KHR_swapchain(instance) + +# extension VK_KHR_shared_presentable_image +var + vkGetSwapchainStatusKHR*: proc(device: VkDevice, swapchain: VkSwapchainKHR): VkResult {.stdcall.} +proc loadVK_KHR_shared_presentable_image*(instance: VkInstance) = + loadVK_KHR_swapchain(instance) + loadVK_VERSION_1_1(instance) + loadVK_KHR_get_surface_capabilities2(instance) + vkGetSwapchainStatusKHR = cast[proc(device: VkDevice, swapchain: VkSwapchainKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetSwapchainStatusKHR")) + +# extension VK_EXT_hdr_metadata +var + vkSetHdrMetadataEXT*: proc(device: VkDevice, swapchainCount: uint32, pSwapchains: ptr VkSwapchainKHR, pMetadata: ptr VkHdrMetadataEXT): void {.stdcall.} +proc loadVK_EXT_hdr_metadata*(instance: VkInstance) = + loadVK_KHR_swapchain(instance) + vkSetHdrMetadataEXT = cast[proc(device: VkDevice, swapchainCount: uint32, pSwapchains: ptr VkSwapchainKHR, pMetadata: ptr VkHdrMetadataEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkSetHdrMetadataEXT")) + +proc loadVK_KHR_present_id*(instance: VkInstance) = + loadVK_KHR_swapchain(instance) + loadVK_VERSION_1_1(instance) + +# extension VK_KHR_ray_tracing_maintenance1 +var + vkCmdTraceRaysIndirect2KHR*: proc(commandBuffer: VkCommandBuffer, indirectDeviceAddress: VkDeviceAddress): void {.stdcall.} +proc loadVK_KHR_ray_tracing_maintenance1*(instance: VkInstance) = + loadVK_KHR_acceleration_structure(instance) + vkCmdTraceRaysIndirect2KHR = cast[proc(commandBuffer: VkCommandBuffer, indirectDeviceAddress: VkDeviceAddress): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdTraceRaysIndirect2KHR")) + +# extension VK_KHR_ray_tracing_pipeline +var + vkCmdTraceRaysKHR*: proc(commandBuffer: VkCommandBuffer, pRaygenShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, pMissShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, pHitShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, pCallableShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, width: uint32, height: uint32, depth: uint32): void {.stdcall.} + vkCreateRayTracingPipelinesKHR*: proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, pipelineCache: VkPipelineCache, createInfoCount: uint32, pCreateInfos: ptr VkRayTracingPipelineCreateInfoKHR, pAllocator: ptr VkAllocationCallbacks, pPipelines: ptr VkPipeline): VkResult {.stdcall.} + vkGetRayTracingShaderGroupHandlesKHR*: proc(device: VkDevice, pipeline: VkPipeline, firstGroup: uint32, groupCount: uint32, dataSize: csize_t, pData: pointer): VkResult {.stdcall.} + vkGetRayTracingCaptureReplayShaderGroupHandlesKHR*: proc(device: VkDevice, pipeline: VkPipeline, firstGroup: uint32, groupCount: uint32, dataSize: csize_t, pData: pointer): VkResult {.stdcall.} + vkCmdTraceRaysIndirectKHR*: proc(commandBuffer: VkCommandBuffer, pRaygenShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, pMissShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, pHitShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, pCallableShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, indirectDeviceAddress: VkDeviceAddress): void {.stdcall.} + vkGetRayTracingShaderGroupStackSizeKHR*: proc(device: VkDevice, pipeline: VkPipeline, group: uint32, groupShader: VkShaderGroupShaderKHR): VkDeviceSize {.stdcall.} + vkCmdSetRayTracingPipelineStackSizeKHR*: proc(commandBuffer: VkCommandBuffer, pipelineStackSize: uint32): void {.stdcall.} +proc loadVK_KHR_ray_tracing_pipeline*(instance: VkInstance) = + loadVK_VERSION_1_2(instance) + loadVK_KHR_acceleration_structure(instance) + vkCmdTraceRaysKHR = cast[proc(commandBuffer: VkCommandBuffer, pRaygenShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, pMissShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, pHitShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, pCallableShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, width: uint32, height: uint32, depth: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdTraceRaysKHR")) + vkCreateRayTracingPipelinesKHR = cast[proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, pipelineCache: VkPipelineCache, createInfoCount: uint32, pCreateInfos: ptr VkRayTracingPipelineCreateInfoKHR, pAllocator: ptr VkAllocationCallbacks, pPipelines: ptr VkPipeline): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateRayTracingPipelinesKHR")) + vkGetRayTracingShaderGroupHandlesKHR = cast[proc(device: VkDevice, pipeline: VkPipeline, firstGroup: uint32, groupCount: uint32, dataSize: csize_t, pData: pointer): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetRayTracingShaderGroupHandlesKHR")) + vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = cast[proc(device: VkDevice, pipeline: VkPipeline, firstGroup: uint32, groupCount: uint32, dataSize: csize_t, pData: pointer): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR")) + vkCmdTraceRaysIndirectKHR = cast[proc(commandBuffer: VkCommandBuffer, pRaygenShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, pMissShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, pHitShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, pCallableShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, indirectDeviceAddress: VkDeviceAddress): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdTraceRaysIndirectKHR")) + vkGetRayTracingShaderGroupStackSizeKHR = cast[proc(device: VkDevice, pipeline: VkPipeline, group: uint32, groupShader: VkShaderGroupShaderKHR): VkDeviceSize {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetRayTracingShaderGroupStackSizeKHR")) + vkCmdSetRayTracingPipelineStackSizeKHR = cast[proc(commandBuffer: VkCommandBuffer, pipelineStackSize: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetRayTracingPipelineStackSizeKHR")) + +# extension VK_HUAWEI_invocation_mask +var + vkCmdBindInvocationMaskHUAWEI*: proc(commandBuffer: VkCommandBuffer, imageView: VkImageView, imageLayout: VkImageLayout): void {.stdcall.} +proc loadVK_HUAWEI_invocation_mask*(instance: VkInstance) = + loadVK_KHR_ray_tracing_pipeline(instance) + loadVK_VERSION_1_3(instance) + vkCmdBindInvocationMaskHUAWEI = cast[proc(commandBuffer: VkCommandBuffer, imageView: VkImageView, imageLayout: VkImageLayout): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBindInvocationMaskHUAWEI")) + +# extension VK_EXT_display_surface_counter +var + vkGetPhysicalDeviceSurfaceCapabilities2EXT*: proc(physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pSurfaceCapabilities: ptr VkSurfaceCapabilities2EXT): VkResult {.stdcall.} +proc loadVK_EXT_display_surface_counter*(instance: VkInstance) = + loadVK_KHR_display(instance) + vkGetPhysicalDeviceSurfaceCapabilities2EXT = cast[proc(physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pSurfaceCapabilities: ptr VkSurfaceCapabilities2EXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSurfaceCapabilities2EXT")) + +# extension VK_KHR_get_display_properties2 +var + vkGetPhysicalDeviceDisplayProperties2KHR*: proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32, pProperties: ptr VkDisplayProperties2KHR): VkResult {.stdcall.} + vkGetPhysicalDeviceDisplayPlaneProperties2KHR*: proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32, pProperties: ptr VkDisplayPlaneProperties2KHR): VkResult {.stdcall.} + vkGetDisplayModeProperties2KHR*: proc(physicalDevice: VkPhysicalDevice, display: VkDisplayKHR, pPropertyCount: ptr uint32, pProperties: ptr VkDisplayModeProperties2KHR): VkResult {.stdcall.} + vkGetDisplayPlaneCapabilities2KHR*: proc(physicalDevice: VkPhysicalDevice, pDisplayPlaneInfo: ptr VkDisplayPlaneInfo2KHR, pCapabilities: ptr VkDisplayPlaneCapabilities2KHR): VkResult {.stdcall.} +proc loadVK_KHR_get_display_properties2*(instance: VkInstance) = + loadVK_KHR_display(instance) + vkGetPhysicalDeviceDisplayProperties2KHR = cast[proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32, pProperties: ptr VkDisplayProperties2KHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceDisplayProperties2KHR")) + vkGetPhysicalDeviceDisplayPlaneProperties2KHR = cast[proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32, pProperties: ptr VkDisplayPlaneProperties2KHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR")) + vkGetDisplayModeProperties2KHR = cast[proc(physicalDevice: VkPhysicalDevice, display: VkDisplayKHR, pPropertyCount: ptr uint32, pProperties: ptr VkDisplayModeProperties2KHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDisplayModeProperties2KHR")) + vkGetDisplayPlaneCapabilities2KHR = cast[proc(physicalDevice: VkPhysicalDevice, pDisplayPlaneInfo: ptr VkDisplayPlaneInfo2KHR, pCapabilities: ptr VkDisplayPlaneCapabilities2KHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDisplayPlaneCapabilities2KHR")) + +proc loadVK_KHR_ray_query*(instance: VkInstance) = + loadVK_VERSION_1_2(instance) + loadVK_KHR_acceleration_structure(instance) + +# extension VK_KHR_display_swapchain +var + vkCreateSharedSwapchainsKHR*: proc(device: VkDevice, swapchainCount: uint32, pCreateInfos: ptr VkSwapchainCreateInfoKHR, pAllocator: ptr VkAllocationCallbacks, pSwapchains: ptr VkSwapchainKHR): VkResult {.stdcall.} +proc loadVK_KHR_display_swapchain*(instance: VkInstance) = + loadVK_KHR_swapchain(instance) + loadVK_KHR_display(instance) + vkCreateSharedSwapchainsKHR = cast[proc(device: VkDevice, swapchainCount: uint32, pCreateInfos: ptr VkSwapchainCreateInfoKHR, pAllocator: ptr VkAllocationCallbacks, pSwapchains: ptr VkSwapchainKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateSharedSwapchainsKHR")) + +# extension VK_EXT_acquire_drm_display +var + vkAcquireDrmDisplayEXT*: proc(physicalDevice: VkPhysicalDevice, drmFd: int32, display: VkDisplayKHR): VkResult {.stdcall.} + vkGetDrmDisplayEXT*: proc(physicalDevice: VkPhysicalDevice, drmFd: int32, connectorId: uint32, display: ptr VkDisplayKHR): VkResult {.stdcall.} +proc loadVK_EXT_acquire_drm_display*(instance: VkInstance) = + loadVK_EXT_direct_mode_display(instance) + vkAcquireDrmDisplayEXT = cast[proc(physicalDevice: VkPhysicalDevice, drmFd: int32, display: VkDisplayKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkAcquireDrmDisplayEXT")) + vkGetDrmDisplayEXT = cast[proc(physicalDevice: VkPhysicalDevice, drmFd: int32, connectorId: uint32, display: ptr VkDisplayKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDrmDisplayEXT")) + +# extension VK_EXT_display_control +var + vkDisplayPowerControlEXT*: proc(device: VkDevice, display: VkDisplayKHR, pDisplayPowerInfo: ptr VkDisplayPowerInfoEXT): VkResult {.stdcall.} + vkRegisterDeviceEventEXT*: proc(device: VkDevice, pDeviceEventInfo: ptr VkDeviceEventInfoEXT, pAllocator: ptr VkAllocationCallbacks, pFence: ptr VkFence): VkResult {.stdcall.} + vkRegisterDisplayEventEXT*: proc(device: VkDevice, display: VkDisplayKHR, pDisplayEventInfo: ptr VkDisplayEventInfoEXT, pAllocator: ptr VkAllocationCallbacks, pFence: ptr VkFence): VkResult {.stdcall.} + vkGetSwapchainCounterEXT*: proc(device: VkDevice, swapchain: VkSwapchainKHR, counter: VkSurfaceCounterFlagBitsEXT, pCounterValue: ptr uint64): VkResult {.stdcall.} +proc loadVK_EXT_display_control*(instance: VkInstance) = + loadVK_EXT_display_surface_counter(instance) + loadVK_KHR_swapchain(instance) + vkDisplayPowerControlEXT = cast[proc(device: VkDevice, display: VkDisplayKHR, pDisplayPowerInfo: ptr VkDisplayPowerInfoEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDisplayPowerControlEXT")) + vkRegisterDeviceEventEXT = cast[proc(device: VkDevice, pDeviceEventInfo: ptr VkDeviceEventInfoEXT, pAllocator: ptr VkAllocationCallbacks, pFence: ptr VkFence): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkRegisterDeviceEventEXT")) + vkRegisterDisplayEventEXT = cast[proc(device: VkDevice, display: VkDisplayKHR, pDisplayEventInfo: ptr VkDisplayEventInfoEXT, pAllocator: ptr VkAllocationCallbacks, pFence: ptr VkFence): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkRegisterDisplayEventEXT")) + vkGetSwapchainCounterEXT = cast[proc(device: VkDevice, swapchain: VkSwapchainKHR, counter: VkSurfaceCounterFlagBitsEXT, pCounterValue: ptr uint64): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetSwapchainCounterEXT")) + +proc loadVK_NV_ray_tracing_motion_blur*(instance: VkInstance) = + loadVK_KHR_ray_tracing_pipeline(instance) + +proc loadVK_EXT_pipeline_library_group_handles*(instance: VkInstance) = + loadVK_KHR_ray_tracing_pipeline(instance) + loadVK_KHR_pipeline_library(instance) + +# extension VK_NV_ray_tracing +var + vkCreateAccelerationStructureNV*: proc(device: VkDevice, pCreateInfo: ptr VkAccelerationStructureCreateInfoNV, pAllocator: ptr VkAllocationCallbacks, pAccelerationStructure: ptr VkAccelerationStructureNV): VkResult {.stdcall.} + vkDestroyAccelerationStructureNV*: proc(device: VkDevice, accelerationStructure: VkAccelerationStructureNV, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} + vkGetAccelerationStructureMemoryRequirementsNV*: proc(device: VkDevice, pInfo: ptr VkAccelerationStructureMemoryRequirementsInfoNV, pMemoryRequirements: ptr VkMemoryRequirements2KHR): void {.stdcall.} + vkBindAccelerationStructureMemoryNV*: proc(device: VkDevice, bindInfoCount: uint32, pBindInfos: ptr VkBindAccelerationStructureMemoryInfoNV): VkResult {.stdcall.} + vkCmdBuildAccelerationStructureNV*: proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkAccelerationStructureInfoNV, instanceData: VkBuffer, instanceOffset: VkDeviceSize, update: VkBool32, dst: VkAccelerationStructureNV, src: VkAccelerationStructureNV, scratch: VkBuffer, scratchOffset: VkDeviceSize): void {.stdcall.} + vkCmdCopyAccelerationStructureNV*: proc(commandBuffer: VkCommandBuffer, dst: VkAccelerationStructureNV, src: VkAccelerationStructureNV, mode: VkCopyAccelerationStructureModeKHR): void {.stdcall.} + vkCmdTraceRaysNV*: proc(commandBuffer: VkCommandBuffer, raygenShaderBindingTableBuffer: VkBuffer, raygenShaderBindingOffset: VkDeviceSize, missShaderBindingTableBuffer: VkBuffer, missShaderBindingOffset: VkDeviceSize, missShaderBindingStride: VkDeviceSize, hitShaderBindingTableBuffer: VkBuffer, hitShaderBindingOffset: VkDeviceSize, hitShaderBindingStride: VkDeviceSize, callableShaderBindingTableBuffer: VkBuffer, callableShaderBindingOffset: VkDeviceSize, callableShaderBindingStride: VkDeviceSize, width: uint32, height: uint32, depth: uint32): void {.stdcall.} + vkCreateRayTracingPipelinesNV*: proc(device: VkDevice, pipelineCache: VkPipelineCache, createInfoCount: uint32, pCreateInfos: ptr VkRayTracingPipelineCreateInfoNV, pAllocator: ptr VkAllocationCallbacks, pPipelines: ptr VkPipeline): VkResult {.stdcall.} + vkGetRayTracingShaderGroupHandlesNV*: proc(device: VkDevice, pipeline: VkPipeline, firstGroup: uint32, groupCount: uint32, dataSize: csize_t, pData: pointer): VkResult {.stdcall.} + vkGetAccelerationStructureHandleNV*: proc(device: VkDevice, accelerationStructure: VkAccelerationStructureNV, dataSize: csize_t, pData: pointer): VkResult {.stdcall.} + vkCmdWriteAccelerationStructuresPropertiesNV*: proc(commandBuffer: VkCommandBuffer, accelerationStructureCount: uint32, pAccelerationStructures: ptr VkAccelerationStructureNV, queryType: VkQueryType, queryPool: VkQueryPool, firstQuery: uint32): void {.stdcall.} + vkCompileDeferredNV*: proc(device: VkDevice, pipeline: VkPipeline, shader: uint32): VkResult {.stdcall.} +proc loadVK_NV_ray_tracing*(instance: VkInstance) = + loadVK_VERSION_1_1(instance) + loadVK_VERSION_1_1(instance) + vkCreateAccelerationStructureNV = cast[proc(device: VkDevice, pCreateInfo: ptr VkAccelerationStructureCreateInfoNV, pAllocator: ptr VkAllocationCallbacks, pAccelerationStructure: ptr VkAccelerationStructureNV): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateAccelerationStructureNV")) + vkDestroyAccelerationStructureNV = cast[proc(device: VkDevice, accelerationStructure: VkAccelerationStructureNV, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyAccelerationStructureNV")) + vkGetAccelerationStructureMemoryRequirementsNV = cast[proc(device: VkDevice, pInfo: ptr VkAccelerationStructureMemoryRequirementsInfoNV, pMemoryRequirements: ptr VkMemoryRequirements2KHR): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetAccelerationStructureMemoryRequirementsNV")) + vkBindAccelerationStructureMemoryNV = cast[proc(device: VkDevice, bindInfoCount: uint32, pBindInfos: ptr VkBindAccelerationStructureMemoryInfoNV): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkBindAccelerationStructureMemoryNV")) + vkCmdBuildAccelerationStructureNV = cast[proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkAccelerationStructureInfoNV, instanceData: VkBuffer, instanceOffset: VkDeviceSize, update: VkBool32, dst: VkAccelerationStructureNV, src: VkAccelerationStructureNV, scratch: VkBuffer, scratchOffset: VkDeviceSize): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBuildAccelerationStructureNV")) + vkCmdCopyAccelerationStructureNV = cast[proc(commandBuffer: VkCommandBuffer, dst: VkAccelerationStructureNV, src: VkAccelerationStructureNV, mode: VkCopyAccelerationStructureModeKHR): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyAccelerationStructureNV")) + vkCmdTraceRaysNV = cast[proc(commandBuffer: VkCommandBuffer, raygenShaderBindingTableBuffer: VkBuffer, raygenShaderBindingOffset: VkDeviceSize, missShaderBindingTableBuffer: VkBuffer, missShaderBindingOffset: VkDeviceSize, missShaderBindingStride: VkDeviceSize, hitShaderBindingTableBuffer: VkBuffer, hitShaderBindingOffset: VkDeviceSize, hitShaderBindingStride: VkDeviceSize, callableShaderBindingTableBuffer: VkBuffer, callableShaderBindingOffset: VkDeviceSize, callableShaderBindingStride: VkDeviceSize, width: uint32, height: uint32, depth: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdTraceRaysNV")) + vkCreateRayTracingPipelinesNV = cast[proc(device: VkDevice, pipelineCache: VkPipelineCache, createInfoCount: uint32, pCreateInfos: ptr VkRayTracingPipelineCreateInfoNV, pAllocator: ptr VkAllocationCallbacks, pPipelines: ptr VkPipeline): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateRayTracingPipelinesNV")) + vkGetRayTracingShaderGroupHandlesNV = vkGetRayTracingShaderGroupHandlesKHR + vkGetAccelerationStructureHandleNV = cast[proc(device: VkDevice, accelerationStructure: VkAccelerationStructureNV, dataSize: csize_t, pData: pointer): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetAccelerationStructureHandleNV")) + vkCmdWriteAccelerationStructuresPropertiesNV = cast[proc(commandBuffer: VkCommandBuffer, accelerationStructureCount: uint32, pAccelerationStructures: ptr VkAccelerationStructureNV, queryType: VkQueryType, queryPool: VkQueryPool, firstQuery: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdWriteAccelerationStructuresPropertiesNV")) + vkCompileDeferredNV = cast[proc(device: VkDevice, pipeline: VkPipeline, shader: uint32): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCompileDeferredNV")) + +# extension VK_KHR_present_wait +var + vkWaitForPresentKHR*: proc(device: VkDevice, swapchain: VkSwapchainKHR, presentId: uint64, timeout: uint64): VkResult {.stdcall.} +proc loadVK_KHR_present_wait*(instance: VkInstance) = + loadVK_KHR_swapchain(instance) + loadVK_KHR_present_id(instance) + vkWaitForPresentKHR = cast[proc(device: VkDevice, swapchain: VkSwapchainKHR, presentId: uint64, timeout: uint64): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkWaitForPresentKHR")) + +proc loadVK_NV_ray_tracing_invocation_reorder*(instance: VkInstance) = + loadVK_KHR_ray_tracing_pipeline(instance) + +var EXTENSION_LOADERS = { + "VK_NV_optical_flow": loadVK_NV_optical_flow, + "VK_EXT_vertex_attribute_divisor": loadVK_EXT_vertex_attribute_divisor, + "VK_EXT_pipeline_library_group_handles": loadVK_EXT_pipeline_library_group_handles, + "VK_NV_geometry_shader_passthrough": loadVK_NV_geometry_shader_passthrough, + "VK_EXT_line_rasterization": loadVK_EXT_line_rasterization, + "VK_EXT_rasterization_order_attachment_access": loadVK_EXT_rasterization_order_attachment_access, + "VK_EXT_shader_atomic_float2": loadVK_EXT_shader_atomic_float2, + "VK_IMG_format_pvrtc": loadVK_IMG_format_pvrtc, + "VK_AMD_texture_gather_bias_lod": loadVK_AMD_texture_gather_bias_lod, + "VK_KHR_shader_subgroup_uniform_control_flow": loadVK_KHR_shader_subgroup_uniform_control_flow, + "VK_AMD_shader_fragment_mask": loadVK_AMD_shader_fragment_mask, + "VK_EXT_external_memory_dma_buf": loadVK_EXT_external_memory_dma_buf, + "VK_IMG_filter_cubic": loadVK_IMG_filter_cubic, + "VK_EXT_pageable_device_local_memory": loadVK_EXT_pageable_device_local_memory, + "VK_EXT_primitive_topology_list_restart": loadVK_EXT_primitive_topology_list_restart, + "VK_KHR_global_priority": loadVK_KHR_global_priority, + "VK_AMD_shader_ballot": loadVK_AMD_shader_ballot, + "VK_AMD_buffer_marker": loadVK_AMD_buffer_marker, + "VK_NV_corner_sampled_image": loadVK_NV_corner_sampled_image, + "VK_NV_ray_tracing_invocation_reorder": loadVK_NV_ray_tracing_invocation_reorder, + "VK_QCOM_image_processing": loadVK_QCOM_image_processing, + "VK_AMD_shader_info": loadVK_AMD_shader_info, + "VK_KHR_pipeline_library": loadVK_KHR_pipeline_library, + "VK_EXT_blend_operation_advanced": loadVK_EXT_blend_operation_advanced, + "VK_AMD_gpu_shader_int16": loadVK_AMD_gpu_shader_int16, + "VK_EXT_pipeline_robustness": loadVK_EXT_pipeline_robustness, + "VK_NV_scissor_exclusive": loadVK_NV_scissor_exclusive, + "VK_EXT_sample_locations": loadVK_EXT_sample_locations, + "VK_NV_framebuffer_mixed_samples": loadVK_NV_framebuffer_mixed_samples, + "VK_NV_sample_mask_override_coverage": loadVK_NV_sample_mask_override_coverage, + "VK_KHR_present_id": loadVK_KHR_present_id, + "VK_EXT_descriptor_buffer": loadVK_EXT_descriptor_buffer, + "VK_EXT_filter_cubic": loadVK_EXT_filter_cubic, + "VK_KHR_pipeline_executable_properties": loadVK_KHR_pipeline_executable_properties, + "VK_EXT_extended_dynamic_state3": loadVK_EXT_extended_dynamic_state3, + "VK_KHR_performance_query": loadVK_KHR_performance_query, + "VK_GOOGLE_user_type": loadVK_GOOGLE_user_type, + "VK_KHR_ray_tracing_maintenance1": loadVK_KHR_ray_tracing_maintenance1, + "VK_EXT_debug_report": loadVK_EXT_debug_report, + "VK_EXT_multisampled_render_to_single_sampled": loadVK_EXT_multisampled_render_to_single_sampled, + "VK_EXT_device_address_binding_report": loadVK_EXT_device_address_binding_report, + "VK_NV_clip_space_w_scaling": loadVK_NV_clip_space_w_scaling, + "VK_NV_fill_rectangle": loadVK_NV_fill_rectangle, + "VK_EXT_shader_image_atomic_int64": loadVK_EXT_shader_image_atomic_int64, + "VK_KHR_swapchain": loadVK_KHR_swapchain, + "VK_NV_ray_tracing": loadVK_NV_ray_tracing, + "VK_EXT_swapchain_maintenance1": loadVK_EXT_swapchain_maintenance1, + "VK_KHR_ray_tracing_pipeline": loadVK_KHR_ray_tracing_pipeline, + "VK_EXT_ycbcr_image_arrays": loadVK_EXT_ycbcr_image_arrays, + "VK_AMD_negative_viewport_height": loadVK_AMD_negative_viewport_height, + "VK_EXT_provoking_vertex": loadVK_EXT_provoking_vertex, + "VK_EXT_calibrated_timestamps": loadVK_EXT_calibrated_timestamps, + "VK_EXT_attachment_feedback_loop_layout": loadVK_EXT_attachment_feedback_loop_layout, + "VK_AMD_mixed_attachment_samples": loadVK_AMD_mixed_attachment_samples, + "VK_HUAWEI_invocation_mask": loadVK_HUAWEI_invocation_mask, + "VK_EXT_external_memory_host": loadVK_EXT_external_memory_host, + "VK_NV_device_diagnostics_config": loadVK_NV_device_diagnostics_config, + "VK_EXT_fragment_density_map2": loadVK_EXT_fragment_density_map2, + "VK_NV_shader_subgroup_partitioned": loadVK_NV_shader_subgroup_partitioned, + "VK_EXT_image_sliced_view_of_3d": loadVK_EXT_image_sliced_view_of_3d, + "VK_NV_fragment_shading_rate_enums": loadVK_NV_fragment_shading_rate_enums, + "VK_EXT_display_surface_counter": loadVK_EXT_display_surface_counter, + "VK_ARM_shader_core_properties": loadVK_ARM_shader_core_properties, + "VK_EXT_shader_module_identifier": loadVK_EXT_shader_module_identifier, + "VK_EXT_border_color_swizzle": loadVK_EXT_border_color_swizzle, + "VK_AMD_shader_image_load_store_lod": loadVK_AMD_shader_image_load_store_lod, + "VK_AMD_display_native_hdr": loadVK_AMD_display_native_hdr, + "VK_NV_memory_decompression": loadVK_NV_memory_decompression, + "VK_EXT_direct_mode_display": loadVK_EXT_direct_mode_display, + "VK_EXT_fragment_shader_interlock": loadVK_EXT_fragment_shader_interlock, + "VK_NV_coverage_reduction_mode": loadVK_NV_coverage_reduction_mode, + "VK_KHR_get_display_properties2": loadVK_KHR_get_display_properties2, + "VK_INTEL_shader_integer_functions2": loadVK_INTEL_shader_integer_functions2, + "VK_NV_glsl_shader": loadVK_NV_glsl_shader, + "VK_KHR_shader_clock": loadVK_KHR_shader_clock, + "VK_EXT_image_2d_view_of_3d": loadVK_EXT_image_2d_view_of_3d, + "VK_QCOM_tile_properties": loadVK_QCOM_tile_properties, + "VK_KHR_push_descriptor": loadVK_KHR_push_descriptor, + "VK_NV_viewport_swizzle": loadVK_NV_viewport_swizzle, + "VK_KHR_ray_query": loadVK_KHR_ray_query, + "VK_KHR_present_wait": loadVK_KHR_present_wait, + "VK_NV_shading_rate_image": loadVK_NV_shading_rate_image, + "VK_EXT_fragment_density_map": loadVK_EXT_fragment_density_map, + "VK_NV_device_diagnostic_checkpoints": loadVK_NV_device_diagnostic_checkpoints, + "VK_EXT_pci_bus_info": loadVK_EXT_pci_bus_info, + "VK_NV_external_memory": loadVK_NV_external_memory, + "VK_EXT_queue_family_foreign": loadVK_EXT_queue_family_foreign, + "VK_KHR_swapchain_mutable_format": loadVK_KHR_swapchain_mutable_format, + "VK_EXT_depth_clip_control": loadVK_EXT_depth_clip_control, + "VK_EXT_debug_utils": loadVK_EXT_debug_utils, + "VK_KHR_portability_enumeration": loadVK_KHR_portability_enumeration, + "VK_EXT_memory_priority": loadVK_EXT_memory_priority, + "VK_EXT_validation_flags": loadVK_EXT_validation_flags, + "VK_AMD_shader_core_properties": loadVK_AMD_shader_core_properties, + "VK_EXT_conservative_rasterization": loadVK_EXT_conservative_rasterization, + "VK_KHR_external_fence_fd": loadVK_KHR_external_fence_fd, + "VK_NV_device_generated_commands": loadVK_NV_device_generated_commands, + "VK_NV_present_barrier": loadVK_NV_present_barrier, + "VK_AMD_gcn_shader": loadVK_AMD_gcn_shader, + "VK_NV_viewport_array2": loadVK_NV_viewport_array2, + "VK_INTEL_performance_query": loadVK_INTEL_performance_query, + "VK_NVX_multiview_per_view_attributes": loadVK_NVX_multiview_per_view_attributes, + "VK_EXT_primitives_generated_query": loadVK_EXT_primitives_generated_query, + "VK_AMD_pipeline_compiler_control": loadVK_AMD_pipeline_compiler_control, + "VK_EXT_post_depth_coverage": loadVK_EXT_post_depth_coverage, + "VK_EXT_rgba10x6_formats": loadVK_EXT_rgba10x6_formats, + "VK_KHR_external_memory_fd": loadVK_KHR_external_memory_fd, + "VK_NV_dedicated_allocation_image_aliasing": loadVK_NV_dedicated_allocation_image_aliasing, + "VK_NV_cooperative_matrix": loadVK_NV_cooperative_matrix, + "VK_EXT_depth_clamp_zero_one": loadVK_EXT_depth_clamp_zero_one, + "VK_EXT_conditional_rendering": loadVK_EXT_conditional_rendering, + "VK_QCOM_multiview_per_view_viewports": loadVK_QCOM_multiview_per_view_viewports, + "VK_NV_linear_color_attachment": loadVK_NV_linear_color_attachment, + "VK_EXT_shader_subgroup_ballot": loadVK_EXT_shader_subgroup_ballot, + "VK_EXT_multi_draw": loadVK_EXT_multi_draw, + "VK_NV_fragment_coverage_to_color": loadVK_NV_fragment_coverage_to_color, + "VK_EXT_load_store_op_none": loadVK_EXT_load_store_op_none, + "VK_QCOM_rotated_copy_commands": loadVK_QCOM_rotated_copy_commands, + "VK_EXT_surface_maintenance1": loadVK_EXT_surface_maintenance1, + "VK_EXT_swapchain_colorspace": loadVK_EXT_swapchain_colorspace, + "VK_EXT_image_drm_format_modifier": loadVK_EXT_image_drm_format_modifier, + "VK_EXT_validation_features": loadVK_EXT_validation_features, + "VK_KHR_workgroup_memory_explicit_layout": loadVK_KHR_workgroup_memory_explicit_layout, + "VK_EXT_index_type_uint8": loadVK_EXT_index_type_uint8, + "VK_EXT_mesh_shader": loadVK_EXT_mesh_shader, + "VK_AMD_shader_early_and_late_fragment_tests": loadVK_AMD_shader_early_and_late_fragment_tests, + "VK_KHR_display_swapchain": loadVK_KHR_display_swapchain, + "VK_EXT_transform_feedback": loadVK_EXT_transform_feedback, + "VK_GOOGLE_decorate_string": loadVK_GOOGLE_decorate_string, + "VK_EXT_shader_atomic_float": loadVK_EXT_shader_atomic_float, + "VK_EXT_acquire_drm_display": loadVK_EXT_acquire_drm_display, + "VK_EXT_pipeline_properties": loadVK_EXT_pipeline_properties, + "VK_EXT_graphics_pipeline_library": loadVK_EXT_graphics_pipeline_library, + "VK_KHR_acceleration_structure": loadVK_KHR_acceleration_structure, + "VK_AMD_shader_core_properties2": loadVK_AMD_shader_core_properties2, + "VK_KHR_surface": loadVK_KHR_surface, + "VK_AMD_gpu_shader_half_float": loadVK_AMD_gpu_shader_half_float, + "VK_KHR_deferred_host_operations": loadVK_KHR_deferred_host_operations, + "VK_NV_dedicated_allocation": loadVK_NV_dedicated_allocation, + "VK_GOOGLE_hlsl_functionality1": loadVK_GOOGLE_hlsl_functionality1, + "VK_EXT_robustness2": loadVK_EXT_robustness2, + "VK_NVX_image_view_handle": loadVK_NVX_image_view_handle, + "VK_EXT_non_seamless_cube_map": loadVK_EXT_non_seamless_cube_map, + "VK_EXT_opacity_micromap": loadVK_EXT_opacity_micromap, + "VK_EXT_image_view_min_lod": loadVK_EXT_image_view_min_lod, + "VK_AMD_shader_trinary_minmax": loadVK_AMD_shader_trinary_minmax, + "VK_QCOM_render_pass_store_ops": loadVK_QCOM_render_pass_store_ops, + "VK_EXT_device_fault": loadVK_EXT_device_fault, + "VK_EXT_custom_border_color": loadVK_EXT_custom_border_color, + "VK_EXT_mutable_descriptor_type": loadVK_EXT_mutable_descriptor_type, + "VK_AMD_rasterization_order": loadVK_AMD_rasterization_order, + "VK_EXT_vertex_input_dynamic_state": loadVK_EXT_vertex_input_dynamic_state, + "VK_KHR_incremental_present": loadVK_KHR_incremental_present, + "VK_KHR_fragment_shading_rate": loadVK_KHR_fragment_shading_rate, + "VK_EXT_color_write_enable": loadVK_EXT_color_write_enable, + "VK_SEC_amigo_profiling": loadVK_SEC_amigo_profiling, + "VK_GOOGLE_display_timing": loadVK_GOOGLE_display_timing, + "VK_NVX_binary_import": loadVK_NVX_binary_import, + "VK_EXT_depth_clip_enable": loadVK_EXT_depth_clip_enable, + "VK_EXT_subpass_merge_feedback": loadVK_EXT_subpass_merge_feedback, + "VK_NV_representative_fragment_test": loadVK_NV_representative_fragment_test, + "VK_EXT_validation_cache": loadVK_EXT_validation_cache, + "VK_EXT_display_control": loadVK_EXT_display_control, + "VK_KHR_external_semaphore_fd": loadVK_KHR_external_semaphore_fd, + "VK_KHR_fragment_shader_barycentric": loadVK_KHR_fragment_shader_barycentric, + "VK_NV_inherited_viewport_scissor": loadVK_NV_inherited_viewport_scissor, + "VK_EXT_legacy_dithering": loadVK_EXT_legacy_dithering, + "VK_NV_ray_tracing_motion_blur": loadVK_NV_ray_tracing_motion_blur, + "VK_EXT_physical_device_drm": loadVK_EXT_physical_device_drm, + "VK_EXT_pipeline_protected_access": loadVK_EXT_pipeline_protected_access, + "VK_QCOM_render_pass_transform": loadVK_QCOM_render_pass_transform, + "VK_GOOGLE_surfaceless_query": loadVK_GOOGLE_surfaceless_query, + "VK_EXT_memory_budget": loadVK_EXT_memory_budget, + "VK_EXT_discard_rectangles": loadVK_EXT_discard_rectangles, + "VK_EXT_shader_stencil_export": loadVK_EXT_shader_stencil_export, + "VK_KHR_shared_presentable_image": loadVK_KHR_shared_presentable_image, + "VK_NV_external_memory_rdma": loadVK_NV_external_memory_rdma, + "VK_EXT_image_compression_control_swapchain": loadVK_EXT_image_compression_control_swapchain, + "VK_EXT_hdr_metadata": loadVK_EXT_hdr_metadata, + "VK_AMD_device_coherent_memory": loadVK_AMD_device_coherent_memory, + "VK_EXT_device_memory_report": loadVK_EXT_device_memory_report, + "VK_ARM_shader_core_builtins": loadVK_ARM_shader_core_builtins, + "VK_QCOM_multiview_per_view_render_areas": loadVK_QCOM_multiview_per_view_render_areas, + "VK_LUNARG_direct_driver_loading": loadVK_LUNARG_direct_driver_loading, + "VK_AMD_memory_overallocation_behavior": loadVK_AMD_memory_overallocation_behavior, + "VK_NV_mesh_shader": loadVK_NV_mesh_shader, + "VK_AMD_shader_explicit_vertex_parameter": loadVK_AMD_shader_explicit_vertex_parameter, + "VK_EXT_headless_surface": loadVK_EXT_headless_surface, + "VK_NV_shader_sm_builtins": loadVK_NV_shader_sm_builtins, + "VK_EXT_shader_subgroup_vote": loadVK_EXT_shader_subgroup_vote, + "VK_NV_copy_memory_indirect": loadVK_NV_copy_memory_indirect, + "VK_EXT_image_compression_control": loadVK_EXT_image_compression_control, + "VK_EXT_astc_decode_mode": loadVK_EXT_astc_decode_mode, + "VK_EXT_buffer_device_address": loadVK_EXT_buffer_device_address, + "VK_KHR_get_surface_capabilities2": loadVK_KHR_get_surface_capabilities2, + "VK_KHR_display": loadVK_KHR_display, + "VK_QCOM_render_pass_shader_resolve": loadVK_QCOM_render_pass_shader_resolve, + "VK_EXT_depth_range_unrestricted": loadVK_EXT_depth_range_unrestricted, + "VK_HUAWEI_subpass_shading": loadVK_HUAWEI_subpass_shading, + "VK_VALVE_descriptor_set_host_mapping": loadVK_VALVE_descriptor_set_host_mapping, + "VK_HUAWEI_cluster_culling_shader": loadVK_HUAWEI_cluster_culling_shader, + "VK_KHR_surface_protected_capabilities": loadVK_KHR_surface_protected_capabilities, + "VK_NV_shader_image_footprint": loadVK_NV_shader_image_footprint, + "VK_NV_external_memory_capabilities": loadVK_NV_external_memory_capabilities, + "VK_NV_compute_shader_derivatives": loadVK_NV_compute_shader_derivatives, + "VK_QCOM_fragment_density_map_offset": loadVK_QCOM_fragment_density_map_offset, +}.toTable +when defined(VK_USE_PLATFORM_XLIB_KHR): + include ../vulkan/platform/xlib + EXTENSION_LOADERS["VK_KHR_xlib_surface"] = loadVK_KHR_xlib_surface +when defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT): + include ../vulkan/platform/xlib_xrandr + EXTENSION_LOADERS["VK_EXT_acquire_xlib_display"] = loadVK_EXT_acquire_xlib_display +when defined(VK_USE_PLATFORM_XCB_KHR): + include ../vulkan/platform/xcb + EXTENSION_LOADERS["VK_KHR_xcb_surface"] = loadVK_KHR_xcb_surface +when defined(VK_USE_PLATFORM_WAYLAND_KHR): + include ../vulkan/platform/wayland + EXTENSION_LOADERS["VK_KHR_wayland_surface"] = loadVK_KHR_wayland_surface +when defined(VK_USE_PLATFORM_DIRECTFB_EXT): + include ../vulkan/platform/directfb + EXTENSION_LOADERS["VK_EXT_directfb_surface"] = loadVK_EXT_directfb_surface +when defined(VK_USE_PLATFORM_ANDROID_KHR): + include ../vulkan/platform/android + EXTENSION_LOADERS["VK_KHR_android_surface"] = loadVK_KHR_android_surface + EXTENSION_LOADERS["VK_ANDROID_external_memory_android_hardware_buffer"] = loadVK_ANDROID_external_memory_android_hardware_buffer +when defined(VK_USE_PLATFORM_WIN32_KHR): + include ../vulkan/platform/win32 + EXTENSION_LOADERS["VK_KHR_external_semaphore_win32"] = loadVK_KHR_external_semaphore_win32 + EXTENSION_LOADERS["VK_EXT_full_screen_exclusive"] = loadVK_EXT_full_screen_exclusive + EXTENSION_LOADERS["VK_NV_external_memory_win32"] = loadVK_NV_external_memory_win32 + EXTENSION_LOADERS["VK_KHR_external_memory_win32"] = loadVK_KHR_external_memory_win32 + EXTENSION_LOADERS["VK_NV_acquire_winrt_display"] = loadVK_NV_acquire_winrt_display + EXTENSION_LOADERS["VK_KHR_win32_surface"] = loadVK_KHR_win32_surface + EXTENSION_LOADERS["VK_KHR_external_fence_win32"] = loadVK_KHR_external_fence_win32 + EXTENSION_LOADERS["VK_KHR_win32_keyed_mutex"] = loadVK_KHR_win32_keyed_mutex +when defined(VK_USE_PLATFORM_VI_NN): + include ../vulkan/platform/vi + EXTENSION_LOADERS["VK_NN_vi_surface"] = loadVK_NN_vi_surface +when defined(VK_USE_PLATFORM_IOS_MVK): + include ../vulkan/platform/ios + EXTENSION_LOADERS["VK_MVK_ios_surface"] = loadVK_MVK_ios_surface +when defined(VK_USE_PLATFORM_MACOS_MVK): + include ../vulkan/platform/macos + EXTENSION_LOADERS["VK_MVK_macos_surface"] = loadVK_MVK_macos_surface +when defined(VK_USE_PLATFORM_METAL_EXT): + include ../vulkan/platform/metal + EXTENSION_LOADERS["VK_EXT_metal_objects"] = loadVK_EXT_metal_objects + EXTENSION_LOADERS["VK_EXT_metal_surface"] = loadVK_EXT_metal_surface +when defined(VK_USE_PLATFORM_FUCHSIA): + include ../vulkan/platform/fuchsia + EXTENSION_LOADERS["VK_FUCHSIA_external_semaphore"] = loadVK_FUCHSIA_external_semaphore + EXTENSION_LOADERS["VK_FUCHSIA_imagepipe_surface"] = loadVK_FUCHSIA_imagepipe_surface + EXTENSION_LOADERS["VK_FUCHSIA_external_memory"] = loadVK_FUCHSIA_external_memory + EXTENSION_LOADERS["VK_FUCHSIA_buffer_collection"] = loadVK_FUCHSIA_buffer_collection +when defined(VK_USE_PLATFORM_GGP): + include ../vulkan/platform/ggp + EXTENSION_LOADERS["VK_GGP_frame_token"] = loadVK_GGP_frame_token + EXTENSION_LOADERS["VK_GGP_stream_descriptor_surface"] = loadVK_GGP_stream_descriptor_surface +when defined(VK_USE_PLATFORM_SCI): + include ../vulkan/platform/sci +when defined(VK_ENABLE_BETA_EXTENSIONS): + include ../vulkan/platform/provisional + EXTENSION_LOADERS["VK_KHR_video_encode_queue"] = loadVK_KHR_video_encode_queue + EXTENSION_LOADERS["VK_KHR_video_queue"] = loadVK_KHR_video_queue + EXTENSION_LOADERS["VK_EXT_video_encode_h264"] = loadVK_EXT_video_encode_h264 + EXTENSION_LOADERS["VK_EXT_video_encode_h265"] = loadVK_EXT_video_encode_h265 + EXTENSION_LOADERS["VK_KHR_video_decode_queue"] = loadVK_KHR_video_decode_queue + EXTENSION_LOADERS["VK_KHR_video_decode_h264"] = loadVK_KHR_video_decode_h264 + EXTENSION_LOADERS["VK_KHR_portability_subset"] = loadVK_KHR_portability_subset + EXTENSION_LOADERS["VK_KHR_video_decode_h265"] = loadVK_KHR_video_decode_h265 +when defined(VK_USE_PLATFORM_SCREEN_QNX): + include ../vulkan/platform/screen + EXTENSION_LOADERS["VK_QNX_screen_surface"] = loadVK_QNX_screen_surface + +proc loadExtension*(instance: VkInstance, extension: string) = EXTENSION_LOADERS[extension](instance) + +# load global functions immediately +block globalFunctions: + let instance = VkInstance(0) + vkEnumerateInstanceVersion = cast[proc(pApiVersion: ptr uint32): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkEnumerateInstanceVersion")) + vkEnumerateInstanceExtensionProperties = cast[proc(pLayerName: cstring, pPropertyCount: ptr uint32, pProperties: ptr VkExtensionProperties): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkEnumerateInstanceExtensionProperties")) + vkEnumerateInstanceLayerProperties = cast[proc(pPropertyCount: ptr uint32, pProperties: ptr VkLayerProperties): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkEnumerateInstanceLayerProperties")) + vkCreateInstance = cast[proc(pCreateInfo: ptr VkInstanceCreateInfo, pAllocator: ptr VkAllocationCallbacks, pInstance: ptr VkInstance): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateInstance")) + +converter VkBool2NimBool*(a: VkBool32): bool = a > 0 +converter NimBool2VkBool*(a: bool): VkBool32 = VkBool32(a) +proc `$`*(x: uint32): string {.raises: [].} = addInt(result, x) diff -r 24d18cd8be8a -r 7f921d7d0a2b src/semicongine/engine.nim --- a/src/semicongine/engine.nim Mon May 08 21:45:47 2023 +0700 +++ b/src/semicongine/engine.nim Tue May 09 01:11:51 2023 +0700 @@ -6,18 +6,15 @@ import ./platform/window -import ./vulkan/api +import ./core import ./vulkan/instance import ./vulkan/device import ./vulkan/physicaldevice import ./vulkan/renderpass -import ./gpu_data import ./entity import ./renderer import ./events -import ./buildconfig -import ./math import ./audio type diff -r 24d18cd8be8a -r 7f921d7d0a2b src/semicongine/entity.nim --- a/src/semicongine/entity.nim Mon May 08 21:45:47 2023 +0700 +++ b/src/semicongine/entity.nim Tue May 09 01:11:51 2023 +0700 @@ -3,9 +3,7 @@ import std/hashes import std/typetraits -import ./math/matrix -import ./gpu_data -import ./vulkan/api +import ./core type Component* = ref object of RootObj diff -r 24d18cd8be8a -r 7f921d7d0a2b src/semicongine/gpu_data.nim --- a/src/semicongine/gpu_data.nim Mon May 08 21:45:47 2023 +0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,883 +0,0 @@ -import std/typetraits -import std/strformat -import std/tables - -import ./vulkan/api -import ./math - -type - Sampler2DType* = object - GPUType* = float32 | float64 | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | TVec2[int32] | TVec2[int64] | TVec3[int32] | TVec3[int64] | TVec4[int32] | TVec4[int64] | TVec2[uint32] | TVec2[uint64] | TVec3[uint32] | TVec3[uint64] | TVec4[uint32] | TVec4[uint64] | TVec2[float32] | TVec2[float64] | TVec3[float32] | TVec3[float64] | TVec4[float32] | TVec4[float64] | TMat2[float32] | TMat2[float64] | TMat23[float32] | TMat23[float64] | TMat32[float32] | TMat32[float64] | TMat3[float32] | TMat3[float64] | TMat34[float32] | TMat34[float64] | TMat43[float32] | TMat43[float64] | TMat4[float32] | TMat4[float64] | Sampler2DType - DataType* = enum - Float32 - Float64 - Int8 - Int16 - Int32 - Int64 - UInt8 - UInt16 - UInt32 - UInt64 - Vec2I32 - Vec2I64 - Vec3I32 - Vec3I64 - Vec4I32 - Vec4I64 - Vec2U32 - Vec2U64 - Vec3U32 - Vec3U64 - Vec4U32 - Vec4U64 - Vec2F32 - Vec2F64 - Vec3F32 - Vec3F64 - Vec4F32 - Vec4F64 - Mat2F32 - Mat2F64 - Mat23F32 - Mat23F64 - Mat32F32 - Mat32F64 - Mat3F32 - Mat3F64 - Mat34F32 - Mat34F64 - Mat43F32 - Mat43F64 - Mat4F32 - Mat4F64 - Sampler2D - DataValue* = object - case thetype*: DataType - of Float32: float32: float32 - of Float64: float64: float64 - of Int8: int8: int8 - of Int16: int16: int16 - of Int32: int32: int32 - of Int64: int64: int64 - of UInt8: uint8: uint8 - of UInt16: uint16: uint16 - of UInt32: uint32: uint32 - of UInt64: uint64: uint64 - of Vec2I32: vec2i32: TVec2[int32] - of Vec2I64: vec2i64: TVec2[int64] - of Vec3I32: vec3i32: TVec3[int32] - of Vec3I64: vec3i64: TVec3[int64] - of Vec4I32: vec4i32: TVec4[int32] - of Vec4I64: vec4i64: TVec4[int64] - of Vec2U32: vec2u32: TVec2[uint32] - of Vec2U64: vec2u64: TVec2[uint64] - of Vec3U32: vec3u32: TVec3[uint32] - of Vec3U64: vec3u64: TVec3[uint64] - of Vec4U32: vec4u32: TVec4[uint32] - of Vec4U64: vec4u64: TVec4[uint64] - of Vec2F32: vec2f32: TVec2[float32] - of Vec2F64: vec2f64: TVec2[float64] - of Vec3F32: vec3f32: TVec3[float32] - of Vec3F64: vec3f64: TVec3[float64] - of Vec4F32: vec4f32: TVec4[float32] - of Vec4F64: vec4f64: TVec4[float64] - of Mat2F32: mat2f32: TMat2[float32] - of Mat2F64: mat2f64: TMat2[float64] - of Mat23F32: mat23f32: TMat23[float32] - of Mat23F64: mat23f64: TMat23[float64] - of Mat32F32: mat32f32: TMat32[float32] - of Mat32F64: mat32f64: TMat32[float64] - of Mat3F32: mat3f32: TMat3[float32] - of Mat3F64: mat3f64: TMat3[float64] - of Mat34F32: mat34f32: TMat34[float32] - of Mat34F64: mat34f64: TMat34[float64] - of Mat43F32: mat43f32: TMat43[float32] - of Mat43F64: mat43f64: TMat43[float64] - of Mat4F32: mat4f32: TMat4[float32] - of Mat4F64: mat4f64: TMat4[float64] - of Sampler2D: discard - DataList* = object - len*: uint32 - case thetype*: DataType - of Float32: float32: seq[float32] - of Float64: float64: seq[float64] - of Int8: int8: seq[int8] - of Int16: int16: seq[int16] - of Int32: int32: seq[int32] - of Int64: int64: seq[int64] - of UInt8: uint8: seq[uint8] - of UInt16: uint16: seq[uint16] - of UInt32: uint32: seq[uint32] - of UInt64: uint64: seq[uint64] - of Vec2I32: vec2i32: seq[TVec2[int32]] - of Vec2I64: vec2i64: seq[TVec2[int64]] - of Vec3I32: vec3i32: seq[TVec3[int32]] - of Vec3I64: vec3i64: seq[TVec3[int64]] - of Vec4I32: vec4i32: seq[TVec4[int32]] - of Vec4I64: vec4i64: seq[TVec4[int64]] - of Vec2U32: vec2u32: seq[TVec2[uint32]] - of Vec2U64: vec2u64: seq[TVec2[uint64]] - of Vec3U32: vec3u32: seq[TVec3[uint32]] - of Vec3U64: vec3u64: seq[TVec3[uint64]] - of Vec4U32: vec4u32: seq[TVec4[uint32]] - of Vec4U64: vec4u64: seq[TVec4[uint64]] - of Vec2F32: vec2f32: seq[TVec2[float32]] - of Vec2F64: vec2f64: seq[TVec2[float64]] - of Vec3F32: vec3f32: seq[TVec3[float32]] - of Vec3F64: vec3f64: seq[TVec3[float64]] - of Vec4F32: vec4f32: seq[TVec4[float32]] - of Vec4F64: vec4f64: seq[TVec4[float64]] - of Mat2F32: mat2f32: seq[TMat2[float32]] - of Mat2F64: mat2f64: seq[TMat2[float64]] - of Mat23F32: mat23f32: seq[TMat23[float32]] - of Mat23F64: mat23f64: seq[TMat23[float64]] - of Mat32F32: mat32f32: seq[TMat32[float32]] - of Mat32F64: mat32f64: seq[TMat32[float64]] - of Mat3F32: mat3f32: seq[TMat3[float32]] - of Mat3F64: mat3f64: seq[TMat3[float64]] - of Mat34F32: mat34f32: seq[TMat34[float32]] - of Mat34F64: mat34f64: seq[TMat34[float64]] - of Mat43F32: mat43f32: seq[TMat43[float32]] - of Mat43F64: mat43f64: seq[TMat43[float64]] - of Mat4F32: mat4f32*: seq[TMat4[float32]] - of Mat4F64: mat4f64: seq[TMat4[float64]] - of Sampler2D: discard - MemoryPerformanceHint* = enum - PreferFastRead, PreferFastWrite - ShaderAttribute* = object - name*: string - thetype*: DataType - arrayCount*: int - perInstance*: bool - memoryPerformanceHint*: MemoryPerformanceHint - -func vertexInputs*(attributes: seq[ShaderAttribute]): seq[ShaderAttribute] = - for attr in attributes: - if attr.perInstance == false: - result.add attr - -func instanceInputs*(attributes: seq[ShaderAttribute]): seq[ShaderAttribute] = - for attr in attributes: - if attr.perInstance == false: - result.add attr - -func numberOfVertexInputAttributeDescriptors*(thetype: DataType): uint32 = - case thetype: - of Mat2F32, Mat2F64, Mat23F32, Mat23F64: 2 - of Mat32F32, Mat32F64, Mat3F32, Mat3F64, Mat34F32, Mat34F64: 3 - of Mat43F32, Mat43F64, Mat4F32, Mat4F64: 4 - else: 1 - -func size*(thetype: DataType): uint32 = - case thetype: - of Float32: 4 - of Float64: 8 - of Int8: 1 - of Int16: 2 - of Int32: 4 - of Int64: 8 - of UInt8: 1 - of UInt16: 2 - of UInt32: 4 - of UInt64: 8 - of Vec2I32: 8 - of Vec2I64: 16 - of Vec3I32: 12 - of Vec3I64: 24 - of Vec4I32: 16 - of Vec4I64: 32 - of Vec2U32: 8 - of Vec2U64: 16 - of Vec3U32: 12 - of Vec3U64: 24 - of Vec4U32: 16 - of Vec4U64: 32 - of Vec2F32: 8 - of Vec2F64: 16 - of Vec3F32: 12 - of Vec3F64: 24 - of Vec4F32: 16 - of Vec4F64: 32 - of Mat2F32: 16 - of Mat2F64: 32 - of Mat23F32: 24 - of Mat23F64: 48 - of Mat32F32: 24 - of Mat32F64: 48 - of Mat3F32: 36 - of Mat3F64: 72 - of Mat34F32: 48 - of Mat34F64: 92 - of Mat43F32: 48 - of Mat43F64: 92 - of Mat4F32: 64 - of Mat4F64: 128 - of Sampler2D: 0 - -func size*(attribute: ShaderAttribute, perDescriptor=false): uint32 = - if perDescriptor: attribute.thetype.size div attribute.thetype.numberOfVertexInputAttributeDescriptors - else: attribute.thetype.size - -func size*(thetype: seq[ShaderAttribute]): uint32 = - for attribute in thetype: - result += attribute.size - -func size*(value: DataValue): uint32 = - value.thetype.size - -func size*(value: DataList): uint32 = - value.thetype.size * value.len - -func getDataType*[T: GPUType|int|uint|float](): DataType = - when T is float32: Float32 - elif T is float64: Float64 - elif T is int8: Int8 - elif T is int16: Int16 - elif T is int32: Int32 - elif T is int64: Int64 - elif T is uint8: UInt8 - elif T is uint16: UInt16 - elif T is uint32: UInt32 - elif T is uint64: UInt64 - elif T is int and sizeof(int) == sizeof(int64): Int64 - elif T is int and sizeof(int) == sizeof(int32): Int32 - elif T is uint and sizeof(uint) == sizeof(uint64): UInt64 - elif T is uint and sizeof(uint) == sizeof(uint32): UInt32 - elif T is float and sizeof(float) == sizeof(float32): Float32 - elif T is float and sizeof(float) == sizeof(float64): Float64 - elif T is TVec2[int32]: Vec2I32 - elif T is TVec2[int64]: Vec2I64 - elif T is TVec3[int32]: Vec3I32 - elif T is TVec3[int64]: Vec3I64 - elif T is TVec4[int32]: Vec4I32 - elif T is TVec4[int64]: Vec4I64 - elif T is TVec2[uint32]: Vec2U32 - elif T is TVec2[uint64]: Vec2U64 - elif T is TVec3[uint32]: Vec3U32 - elif T is TVec3[uint64]: Vec3U64 - elif T is TVec4[uint32]: Vec4U32 - elif T is TVec4[uint64]: Vec4U64 - elif T is TVec2[float32]: Vec2F32 - elif T is TVec2[float64]: Vec2F64 - elif T is TVec3[float32]: Vec3F32 - elif T is TVec3[float64]: Vec3F64 - elif T is TVec4[float32]: Vec4F32 - elif T is TVec4[float64]: Vec4F64 - elif T is TMat2[float32]: Mat2F32 - elif T is TMat2[float64]: Mat2F64 - elif T is TMat23[float32]: Mat23F32 - elif T is TMat23[float64]: Mat23F64 - elif T is TMat32[float32]: Mat32F32 - elif T is TMat32[float64]: Mat32F64 - elif T is TMat3[float32]: Mat3F32 - elif T is TMat3[float64]: Mat3F64 - elif T is TMat34[float32]: Mat34F32 - elif T is TMat34[float64]: Mat34F64 - elif T is TMat43[float32]: Mat43F32 - elif T is TMat43[float64]: Mat43F64 - elif T is TMat4[float32]: Mat4F32 - elif T is TMat4[float64]: Mat4F64 - elif T is Sampler2DType: Sampler2D - else: - static: - raise newException(Exception, &"Unsupported data type for GPU data: {name(T)}" ) - -func attr*[T: GPUType]( - name: string, - perInstance=false, - arrayCount=0, - memoryPerformanceHint=PreferFastRead, -): auto = - ShaderAttribute( - name: name, - thetype: getDataType[T](), - perInstance: perInstance, - arrayCount: arrayCount, - memoryPerformanceHint: memoryPerformanceHint, - ) - -func getValue*[T: GPUType|int|uint|float](value: DataValue): T = - when T is float32: value.float32 - elif T is float64: value.float64 - elif T is int8: value.int8 - elif T is int16: value.int16 - elif T is int32: value.int32 - elif T is int64: value.int64 - elif T is uint8: value.uint8 - elif T is uint16: value.uint16 - elif T is uint32: value.uint32 - elif T is uint64: value.uint64 - elif T is int and sizeof(int) == sizeof(int32): value.int32 - elif T is int and sizeof(int) == sizeof(int64): value.int64 - elif T is uint and sizeof(uint) == sizeof(uint32): value.uint32 - elif T is uint and sizeof(uint) == sizeof(uint64): value.uint64 - elif T is float and sizeof(float) == sizeof(float32): value.float32 - elif T is float and sizeof(float) == sizeof(float64): value.float64 - elif T is TVec2[int32]: value.vec2i32 - elif T is TVec2[int64]: value.vec2i64 - elif T is TVec3[int32]: value.vec3i32 - elif T is TVec3[int64]: value.vec3i64 - elif T is TVec4[int32]: value.vec4i32 - elif T is TVec4[int64]: value.vec4i64 - elif T is TVec2[uint32]: value.vec2u32 - elif T is TVec2[uint64]: value.vec2u64 - elif T is TVec3[uint32]: value.vec3u32 - elif T is TVec3[uint64]: value.vec3u64 - elif T is TVec4[uint32]: value.vec4u32 - elif T is TVec4[uint64]: value.vec4u64 - elif T is TVec2[float32]: value.vec2f32 - elif T is TVec2[float64]: value.vec2f64 - elif T is TVec3[float32]: value.vec3f32 - elif T is TVec3[float64]: value.vec3f64 - elif T is TVec4[float32]: value.vec4f32 - elif T is TVec4[float64]: value.vec4f64 - elif T is TMat2[float32]: value.mat2f32 - elif T is TMat2[float64]: value.mat2f64 - elif T is TMat23[float32]: value.mat23f - elif T is TMat23[float64]: value.mat23f64 - elif T is TMat32[float32]: value.mat32f32 - elif T is TMat32[float64]: value.mat32f64 - elif T is TMat3[float32]: value.mat3f32 - elif T is TMat3[float64]: value.mat3f64 - elif T is TMat34[float32]: value.mat34f32 - elif T is TMat34[float64]: value.mat34f64 - elif T is TMat43[float32]: value.mat43f32 - elif T is TMat43[float64]: value.mat43f64 - elif T is TMat4[float32]: value.mat4f32 - elif T is TMat4[float64]: value.mat4f64 - else: {.error: "Virtual datatype has no value" .} - -func getValues*[T: GPUType|int|uint|float](value: DataList): seq[T] = - when T is float32: value.float32 - elif T is float64: value.float64 - elif T is int8: value.int8 - elif T is int16: value.int16 - elif T is int32: value.int32 - elif T is int64: value.int64 - elif T is uint8: value.uint8 - elif T is uint16: value.uint16 - elif T is uint32: value.uint32 - elif T is uint64: value.uint64 - elif T is int and sizeof(int) == sizeof(int32): value.int32 - elif T is int and sizeof(int) == sizeof(int64): value.int64 - elif T is uint and sizeof(uint) == sizeof(uint32): value.uint32 - elif T is uint and sizeof(uint) == sizeof(uint64): value.uint64 - elif T is float and sizeof(float) == sizeof(float32): value.float32 - elif T is float and sizeof(float) == sizeof(float64): value.float64 - elif T is TVec2[int32]: value.vec2i32 - elif T is TVec2[int64]: value.vec2i64 - elif T is TVec3[int32]: value.vec3i32 - elif T is TVec3[int64]: value.vec3i64 - elif T is TVec4[int32]: value.vec4i32 - elif T is TVec4[int64]: value.vec4i64 - elif T is TVec2[uint32]: value.vec2u32 - elif T is TVec2[uint64]: value.vec2u64 - elif T is TVec3[uint32]: value.vec3u32 - elif T is TVec3[uint64]: value.vec3u64 - elif T is TVec4[uint32]: value.vec4u32 - elif T is TVec4[uint64]: value.vec4u64 - elif T is TVec2[float32]: value.vec2f32 - elif T is TVec2[float64]: value.vec2f64 - elif T is TVec3[float32]: value.vec3f32 - elif T is TVec3[float64]: value.vec3f64 - elif T is TVec4[float32]: value.vec4f32 - elif T is TVec4[float64]: value.vec4f64 - elif T is TMat2[float32]: value.mat2f32 - elif T is TMat2[float64]: value.mat2f64 - elif T is TMat23[float32]: value.mat23f - elif T is TMat23[float64]: value.mat23f64 - elif T is TMat32[float32]: value.mat32f32 - elif T is TMat32[float64]: value.mat32f64 - elif T is TMat3[float32]: value.mat3f32 - elif T is TMat3[float64]: value.mat3f64 - elif T is TMat34[float32]: value.mat34f32 - elif T is TMat34[float64]: value.mat34f64 - elif T is TMat43[float32]: value.mat43f32 - elif T is TMat43[float64]: value.mat43f64 - elif T is TMat4[float32]: value.mat4f32 - elif T is TMat4[float64]: value.mat4f64 - else: {. error: "Virtual datatype has no values" .} - -func getRawData*(value: var DataValue): (pointer, uint32) = - result[1] = value.thetype.size - case value.thetype - of Float32: result[0] = addr value.float32 - of Float64: result[0] = addr value.float64 - of Int8: result[0] = addr value.int8 - of Int16: result[0] = addr value.int16 - of Int32: result[0] = addr value.int32 - of Int64: result[0] = addr value.int64 - of UInt8: result[0] = addr value.uint8 - of UInt16: result[0] = addr value.uint16 - of UInt32: result[0] = addr value.uint32 - of UInt64: result[0] = addr value.uint64 - of Vec2I32: result[0] = addr value.vec2i32 - of Vec2I64: result[0] = addr value.vec2i64 - of Vec3I32: result[0] = addr value.vec3i32 - of Vec3I64: result[0] = addr value.vec3i64 - of Vec4I32: result[0] = addr value.vec4i32 - of Vec4I64: result[0] = addr value.vec4i64 - of Vec2U32: result[0] = addr value.vec2u32 - of Vec2U64: result[0] = addr value.vec2u64 - of Vec3U32: result[0] = addr value.vec3u32 - of Vec3U64: result[0] = addr value.vec3u64 - of Vec4U32: result[0] = addr value.vec4u32 - of Vec4U64: result[0] = addr value.vec4u64 - of Vec2F32: result[0] = addr value.vec2f32 - of Vec2F64: result[0] = addr value.vec2f64 - of Vec3F32: result[0] = addr value.vec3f32 - of Vec3F64: result[0] = addr value.vec3f64 - of Vec4F32: result[0] = addr value.vec4f32 - of Vec4F64: result[0] = addr value.vec4f64 - of Mat2F32: result[0] = addr value.mat2f32 - of Mat2F64: result[0] = addr value.mat2f64 - of Mat23F32: result[0] = addr value.mat23f32 - of Mat23F64: result[0] = addr value.mat23f64 - of Mat32F32: result[0] = addr value.mat32f32 - of Mat32F64: result[0] = addr value.mat32f64 - of Mat3F32: result[0] = addr value.mat3f32 - of Mat3F64: result[0] = addr value.mat3f64 - of Mat34F32: result[0] = addr value.mat34f32 - of Mat34F64: result[0] = addr value.mat34f64 - of Mat43F32: result[0] = addr value.mat43f32 - of Mat43F64: result[0] = addr value.mat43f64 - of Mat4F32: result[0] = addr value.mat4f32 - of Mat4F64: result[0] = addr value.mat4f64 - of Sampler2D: result[0] = nil - -func getRawData*(value: var DataList): (pointer, uint32) = - result[1] = value.thetype.size * value.len - case value.thetype - of Float32: result[0] = addr value.float32[0] - of Float64: result[0] = addr value.float64[0] - of Int8: result[0] = addr value.int8[0] - of Int16: result[0] = addr value.int16[0] - of Int32: result[0] = addr value.int32[0] - of Int64: result[0] = addr value.int64[0] - of UInt8: result[0] = addr value.uint8[0] - of UInt16: result[0] = addr value.uint16[0] - of UInt32: result[0] = addr value.uint32[0] - of UInt64: result[0] = addr value.uint64[0] - of Vec2I32: result[0] = addr value.vec2i32[0] - of Vec2I64: result[0] = addr value.vec2i64[0] - of Vec3I32: result[0] = addr value.vec3i32[0] - of Vec3I64: result[0] = addr value.vec3i64[0] - of Vec4I32: result[0] = addr value.vec4i32[0] - of Vec4I64: result[0] = addr value.vec4i64[0] - of Vec2U32: result[0] = addr value.vec2u32[0] - of Vec2U64: result[0] = addr value.vec2u64[0] - of Vec3U32: result[0] = addr value.vec3u32[0] - of Vec3U64: result[0] = addr value.vec3u64[0] - of Vec4U32: result[0] = addr value.vec4u32[0] - of Vec4U64: result[0] = addr value.vec4u64[0] - of Vec2F32: result[0] = addr value.vec2f32[0] - of Vec2F64: result[0] = addr value.vec2f64[0] - of Vec3F32: result[0] = addr value.vec3f32[0] - of Vec3F64: result[0] = addr value.vec3f64[0] - of Vec4F32: result[0] = addr value.vec4f32[0] - of Vec4F64: result[0] = addr value.vec4f64[0] - of Mat2F32: result[0] = addr value.mat2f32[0] - of Mat2F64: result[0] = addr value.mat2f64[0] - of Mat23F32: result[0] = addr value.mat23f32[0] - of Mat23F64: result[0] = addr value.mat23f64[0] - of Mat32F32: result[0] = addr value.mat32f32[0] - of Mat32F64: result[0] = addr value.mat32f64[0] - of Mat3F32: result[0] = addr value.mat3f32[0] - of Mat3F64: result[0] = addr value.mat3f64[0] - of Mat34F32: result[0] = addr value.mat34f32[0] - of Mat34F64: result[0] = addr value.mat34f64[0] - of Mat43F32: result[0] = addr value.mat43f32[0] - of Mat43F64: result[0] = addr value.mat43f64[0] - of Mat4F32: result[0] = addr value.mat4f32[0] - of Mat4F64: result[0] = addr value.mat4f64[0] - of Sampler2D: result[0] = nil - -func initData*(value: var DataList, len: uint32) = - value.len = len - case value.thetype - of Float32: value.float32.setLen(len) - of Float64: value.float64.setLen(len) - of Int8: value.int8.setLen(len) - of Int16: value.int16.setLen(len) - of Int32: value.int32.setLen(len) - of Int64: value.int64.setLen(len) - of UInt8: value.uint8.setLen(len) - of UInt16: value.uint16.setLen(len) - of UInt32: value.uint32.setLen(len) - of UInt64: value.uint64.setLen(len) - of Vec2I32: value.vec2i32.setLen(len) - of Vec2I64: value.vec2i64.setLen(len) - of Vec3I32: value.vec3i32.setLen(len) - of Vec3I64: value.vec3i64.setLen(len) - of Vec4I32: value.vec4i32.setLen(len) - of Vec4I64: value.vec4i64.setLen(len) - of Vec2U32: value.vec2u32.setLen(len) - of Vec2U64: value.vec2u64.setLen(len) - of Vec3U32: value.vec3u32.setLen(len) - of Vec3U64: value.vec3u64.setLen(len) - of Vec4U32: value.vec4u32.setLen(len) - of Vec4U64: value.vec4u64.setLen(len) - of Vec2F32: value.vec2f32.setLen(len) - of Vec2F64: value.vec2f64.setLen(len) - of Vec3F32: value.vec3f32.setLen(len) - of Vec3F64: value.vec3f64.setLen(len) - of Vec4F32: value.vec4f32.setLen(len) - of Vec4F64: value.vec4f64.setLen(len) - of Mat2F32: value.mat2f32.setLen(len) - of Mat2F64: value.mat2f64.setLen(len) - of Mat23F32: value.mat23f32.setLen(len) - of Mat23F64: value.mat23f64.setLen(len) - of Mat32F32: value.mat32f32.setLen(len) - of Mat32F64: value.mat32f64.setLen(len) - of Mat3F32: value.mat3f32.setLen(len) - of Mat3F64: value.mat3f64.setLen(len) - of Mat34F32: value.mat34f32.setLen(len) - of Mat34F64: value.mat34f64.setLen(len) - of Mat43F32: value.mat43f32.setLen(len) - of Mat43F64: value.mat43f64.setLen(len) - of Mat4F32: value.mat4f32.setLen(len) - of Mat4F64: value.mat4f64.setLen(len) - of Sampler2D: discard - -func setValue*[T: GPUType|int|uint|float](value: var DataValue, data: T) = - when T is float32: value.float32 = data - elif T is float64: value.float64 = data - elif T is int8: value.int8 = data - elif T is int16: value.int16 = data - elif T is int32: value.int32 = data - elif T is int64: value.int64 = data - elif T is uint8: value.uint8 = data - elif T is uint16: value.uint16 = data - elif T is uint32: value.uint32 = data - elif T is uint64: value.uint64 = data - elif T is int and sizeof(int) == sizeof(int32): value.int32 = data - elif T is int and sizeof(int) == sizeof(int64): value.int64 = data - elif T is uint and sizeof(uint) == sizeof(uint32): value.uint32 = data - elif T is uint and sizeof(uint) == sizeof(uint64): value.uint64 = data - elif T is float and sizeof(float) == sizeof(float32): value.float32 = data - elif T is float and sizeof(float) == sizeof(float64): value.float64 = data - elif T is TVec2[int32]: value.vec2i32 = data - elif T is TVec2[int64]: value.vec2i64 = data - elif T is TVec3[int32]: value.vec3i32 = data - elif T is TVec3[int64]: value.vec3i64 = data - elif T is TVec4[int32]: value.vec4i32 = data - elif T is TVec4[int64]: value.vec4i64 = data - elif T is TVec2[uint32]: value.vec2u32 = data - elif T is TVec2[uint64]: value.vec2u64 = data - elif T is TVec3[uint32]: value.vec3u32 = data - elif T is TVec3[uint64]: value.vec3u64 = data - elif T is TVec4[uint32]: value.vec4u32 = data - elif T is TVec4[uint64]: value.vec4u64 = data - elif T is TVec2[float32]: value.vec2f32 = data - elif T is TVec2[float64]: value.vec2f64 = data - elif T is TVec3[float32]: value.vec3f32 = data - elif T is TVec3[float64]: value.vec3f64 = data - elif T is TVec4[float32]: value.vec4f32 = data - elif T is TVec4[float64]: value.vec4f64 = data - elif T is TMat2[float32]: value.mat2f32 = data - elif T is TMat2[float64]: value.mat2f64 = data - elif T is TMat23[float32]: value.mat23f32 = data - elif T is TMat23[float64]: value.mat23f64 = data - elif T is TMat32[float32]: value.mat32f32 = data - elif T is TMat32[float64]: value.mat32f64 = data - elif T is TMat3[float32]: value.mat3f32 = data - elif T is TMat3[float64]: value.mat3f64 = data - elif T is TMat34[float32]: value.mat34f32 = data - elif T is TMat34[float64]: value.mat34f64 = data - elif T is TMat43[float32]: value.mat43f32 = data - elif T is TMat43[float64]: value.mat43f64 = data - elif T is TMat4[float32]: value.mat4f32 = data - elif T is TMat4[float64]: value.mat4f64 = data - else: {.error: "Virtual datatype has no value" .} - -func setValues*[T: GPUType|int|uint|float](value: var DataList, data: seq[T]) = - value.len = uint32(data.len) - when T is float32: value.float32 = data - elif T is float64: value.float64 = data - elif T is int8: value.int8 = data - elif T is int16: value.int16 = data - elif T is int32: value.int32 = data - elif T is int64: value.int64 = data - elif T is uint8: value.uint8 = data - elif T is uint16: value.uint16 = data - elif T is uint32: value.uint32 = data - elif T is uint64: value.uint64 = data - elif T is int and sizeof(int) == sizeof(int32): value.int32 = data - elif T is int and sizeof(int) == sizeof(int64): value.int64 = data - elif T is uint and sizeof(uint) == sizeof(uint32): value.uint32 = data - elif T is uint and sizeof(uint) == sizeof(uint64): value.uint64 = data - elif T is float and sizeof(float) == sizeof(float32): value.float32 = data - elif T is float and sizeof(float) == sizeof(float64): value.float64 = data - elif T is TVec2[int32]: value.vec2i32 = data - elif T is TVec2[int64]: value.vec2i64 = data - elif T is TVec3[int32]: value.vec3i32 = data - elif T is TVec3[int64]: value.vec3i64 = data - elif T is TVec4[int32]: value.vec4i32 = data - elif T is TVec4[int64]: value.vec4i64 = data - elif T is TVec2[uint32]: value.vec2u32 = data - elif T is TVec2[uint64]: value.vec2u64 = data - elif T is TVec3[uint32]: value.vec3u32 = data - elif T is TVec3[uint64]: value.vec3u64 = data - elif T is TVec4[uint32]: value.vec4u32 = data - elif T is TVec4[uint64]: value.vec4u64 = data - elif T is TVec2[float32]: value.vec2f32 = data - elif T is TVec2[float64]: value.vec2f64 = data - elif T is TVec3[float32]: value.vec3f32 = data - elif T is TVec3[float64]: value.vec3f64 = data - elif T is TVec4[float32]: value.vec4f32 = data - elif T is TVec4[float64]: value.vec4f64 = data - elif T is TMat2[float32]: value.mat2f32 = data - elif T is TMat2[float64]: value.mat2f64 = data - elif T is TMat23[float32]: value.mat23f32 = data - elif T is TMat23[float64]: value.mat23f64 = data - elif T is TMat32[float32]: value.mat32f32 = data - elif T is TMat32[float64]: value.mat32f64 = data - elif T is TMat3[float32]: value.mat3f32 = data - elif T is TMat3[float64]: value.mat3f64 = data - elif T is TMat34[float32]: value.mat34f32 = data - elif T is TMat34[float64]: value.mat34f64 = data - elif T is TMat43[float32]: value.mat43f32 = data - elif T is TMat43[float64]: value.mat43f64 = data - elif T is TMat4[float32]: value.mat4f32 = data - elif T is TMat4[float64]: value.mat4f64 = data - else: {. error: "Virtual datatype has no values" .} - -func setValue*[T: GPUType|int|uint|float](value: var DataList, i: uint32, data: T) = - assert i < value.len - when T is float32: value.float32[i] = data - elif T is float64: value.float64[i] = data - elif T is int8: value.int8[i] = data - elif T is int16: value.int16[i] = data - elif T is int32: value.int32[i] = data - elif T is int64: value.int64[i] = data - elif T is uint8: value.uint8[i] = data - elif T is uint16: value.uint16[i] = data - elif T is uint32: value.uint32[i] = data - elif T is uint64: value.uint64[i] = data - elif T is int and sizeof(int) == sizeof(int32): value.int32[i] = data - elif T is int and sizeof(int) == sizeof(int64): value.int64[i] = data - elif T is uint and sizeof(uint) == sizeof(uint32): value.uint32[i] = data - elif T is uint and sizeof(uint) == sizeof(uint64): value.uint64[i] = data - elif T is float and sizeof(float) == sizeof(float32): value.float32[i] = data - elif T is float and sizeof(float) == sizeof(float64): value.float64[i] = data - elif T is TVec2[int32]: value.vec2i32[i] = data - elif T is TVec2[int64]: value.vec2i64[i] = data - elif T is TVec3[int32]: value.vec3i32[i] = data - elif T is TVec3[int64]: value.vec3i64[i] = data - elif T is TVec4[int32]: value.vec4i32[i] = data - elif T is TVec4[int64]: value.vec4i64[i] = data - elif T is TVec2[uint32]: value.vec2u32[i] = data - elif T is TVec2[uint64]: value.vec2u64[i] = data - elif T is TVec3[uint32]: value.vec3u32[i] = data - elif T is TVec3[uint64]: value.vec3u64[i] = data - elif T is TVec4[uint32]: value.vec4u32[i] = data - elif T is TVec4[uint64]: value.vec4u64[i] = data - elif T is TVec2[float32]: value.vec2f32[i] = data - elif T is TVec2[float64]: value.vec2f64[i] = data - elif T is TVec3[float32]: value.vec3f32[i] = data - elif T is TVec3[float64]: value.vec3f64[i] = data - elif T is TVec4[float32]: value.vec4f32[i] = data - elif T is TVec4[float64]: value.vec4f64[i] = data - elif T is TMat2[float32]: value.mat2f32[i] = data - elif T is TMat2[float64]: value.mat2f64[i] = data - elif T is TMat23[float32]: value.mat23f32[i] = data - elif T is TMat23[float64]: value.mat23f64[i] = data - elif T is TMat32[float32]: value.mat32f32[i] = data - elif T is TMat32[float64]: value.mat32f64[i] = data - elif T is TMat3[float32]: value.mat3f32[i] = data - elif T is TMat3[float64]: value.mat3f64[i] = data - elif T is TMat34[float32]: value.mat34f32[i] = data - elif T is TMat34[float64]: value.mat34f64[i] = data - elif T is TMat43[float32]: value.mat43f32[i] = data - elif T is TMat43[float64]: value.mat43f64[i] = data - elif T is TMat4[float32]: value.mat4f32[i] = data - elif T is TMat4[float64]: value.mat4f64[i] = data - else: {. error: "Virtual datatype has no values" .} - -const TYPEMAP = { - Float32: VK_FORMAT_R32_SFLOAT, - Float64: VK_FORMAT_R64_SFLOAT, - Int8: VK_FORMAT_R8_SINT, - Int16: VK_FORMAT_R16_SINT, - Int32: VK_FORMAT_R32_SINT, - Int64: VK_FORMAT_R64_SINT, - UInt8: VK_FORMAT_R8_UINT, - UInt16: VK_FORMAT_R16_UINT, - UInt32: VK_FORMAT_R32_UINT, - UInt64: VK_FORMAT_R64_UINT, - Vec2I32: VK_FORMAT_R32G32_SINT, - Vec2I64: VK_FORMAT_R64G64_SINT, - Vec3I32: VK_FORMAT_R32G32B32_SINT, - Vec3I64: VK_FORMAT_R64G64B64_SINT, - Vec4I32: VK_FORMAT_R32G32B32A32_SINT, - Vec4I64: VK_FORMAT_R64G64B64A64_SINT, - Vec2U32: VK_FORMAT_R32G32_UINT, - Vec2U64: VK_FORMAT_R64G64_UINT, - Vec3U32: VK_FORMAT_R32G32B32_UINT, - Vec3U64: VK_FORMAT_R64G64B64_UINT, - Vec4U32: VK_FORMAT_R32G32B32A32_UINT, - Vec4U64: VK_FORMAT_R64G64B64A64_UINT, - Vec2F32: VK_FORMAT_R32G32_SFLOAT, - Vec2F64: VK_FORMAT_R64G64_SFLOAT, - Vec3F32: VK_FORMAT_R32G32B32_SFLOAT, - Vec3F64: VK_FORMAT_R64G64B64_SFLOAT, - Vec4F32: VK_FORMAT_R32G32B32A32_SFLOAT, - Vec4F64: VK_FORMAT_R64G64B64A64_SFLOAT, - Mat2F32: VK_FORMAT_R32G32_SFLOAT, - Mat2F64: VK_FORMAT_R64G64_SFLOAT, - Mat23F32: VK_FORMAT_R32G32B32_SFLOAT, - Mat23F64: VK_FORMAT_R64G64B64_SFLOAT, - Mat32F32: VK_FORMAT_R32G32_SFLOAT, - Mat32F64: VK_FORMAT_R64G64_SFLOAT, - Mat3F32: VK_FORMAT_R32G32B32_SFLOAT, - Mat3F64: VK_FORMAT_R64G64B64_SFLOAT, - Mat34F32: VK_FORMAT_R32G32B32A32_SFLOAT, - Mat34F64: VK_FORMAT_R64G64B64A64_SFLOAT, - Mat43F32: VK_FORMAT_R32G32B32_SFLOAT, - Mat43F64: VK_FORMAT_R64G64B64_SFLOAT, - Mat4F32: VK_FORMAT_R32G32B32A32_SFLOAT, - Mat4F64: VK_FORMAT_R64G64B64A64_SFLOAT, -}.toTable - -func getVkFormat*(thetype: DataType): VkFormat = - TYPEMAP[thetype] - -# from https://registry.khronos.org/vulkan/specs/1.3-extensions/html/chap15.html -func nLocationSlots*(thetype: DataType): uint32 = - #[ - single location: - 16-bit scalar and vector types, and - 32-bit scalar and vector types, and - 64-bit scalar and 2-component vector types. - two locations - 64-bit three- and four-component vectors - ]# - case thetype: - of Float32: 1 - of Float64: 1 - of Int8: 1 - of Int16: 1 - of Int32: 1 - of Int64: 1 - of UInt8: 1 - of UInt16: 1 - of UInt32: 1 - of UInt64: 1 - of Vec2I32: 1 - of Vec2I64: 1 - of Vec3I32: 1 - of Vec3I64: 2 - of Vec4I32: 1 - of Vec4I64: 2 - of Vec2U32: 1 - of Vec2U64: 1 - of Vec3U32: 1 - of Vec3U64: 2 - of Vec4U32: 1 - of Vec4U64: 2 - of Vec2F32: 1 - of Vec2F64: 1 - of Vec3F32: 1 - of Vec3F64: 2 - of Vec4F32: 1 - of Vec4F64: 2 - of Mat2F32: 1 - of Mat2F64: 1 - of Mat23F32: 1 - of Mat23F64: 2 - of Mat32F32: 1 - of Mat32F64: 1 - of Mat3F32: 1 - of Mat3F64: 2 - of Mat34F32: 1 - of Mat34F64: 2 - of Mat43F32: 1 - of Mat43F64: 2 - of Mat4F32: 1 - of Mat4F64: 2 - of Sampler2D: 1 - -func glslType*(thetype: DataType): string = - # todo: likely not correct as we would need to enable some - # extensions somewhere (Vulkan/GLSL compiler?) to have - # everything work as intended. Or maybe the GPU driver does - # some automagic conversion stuf.. - case thetype: - of Float32: "float" - of Float64: "double" - of Int8, Int16, Int32, Int64: "int" - of UInt8, UInt16, UInt32, UInt64: "uint" - of Vec2I32: "ivec2" - of Vec2I64: "ivec2" - of Vec3I32: "ivec3" - of Vec3I64: "ivec3" - of Vec4I32: "ivec4" - of Vec4I64: "ivec4" - of Vec2U32: "uvec2" - of Vec2U64: "uvec2" - of Vec3U32: "uvec3" - of Vec3U64: "uvec3" - of Vec4U32: "uvec4" - of Vec4U64: "uvec4" - of Vec2F32: "vec2" - of Vec2F64: "dvec2" - of Vec3F32: "vec3" - of Vec3F64: "dvec3" - of Vec4F32: "vec4" - of Vec4F64: "dvec4" - of Mat2F32: "mat2" - of Mat2F64: "dmat2" - of Mat23F32: "mat23" - of Mat23F64: "dmat23" - of Mat32F32: "mat32" - of Mat32F64: "dmat32" - of Mat3F32: "mat3" - of Mat3F64: "dmat3" - of Mat34F32: "mat34" - of Mat34F64: "dmat34" - of Mat43F32: "mat43" - of Mat43F64: "dmat43" - of Mat4F32: "mat4" - of Mat4F64: "dmat4" - of Sampler2D: "sampler2D" - -func glslInput*(group: seq[ShaderAttribute]): seq[string] = - if group.len == 0: - return @[] - var i = 0'u32 - for attribute in group: - assert attribute.arrayCount == 0, "arrays not yet supported for shader vertex attributes" - result.add &"layout(location = {i}) in {attribute.thetype.glslType} {attribute.name};" - for j in 0 ..< attribute.thetype.numberOfVertexInputAttributeDescriptors: - i += attribute.thetype.nLocationSlots - -func glslUniforms*(group: seq[ShaderAttribute], blockName="Uniforms", binding: int): seq[string] = - if group.len == 0: - return @[] - # currently only a single uniform block supported, therefore binding = 0 - result.add(&"layout(binding = {binding}) uniform T{blockName} {{") - for attribute in group: - assert attribute.arrayCount == 0, "arrays not yet supported for uniforms" - result.add(&" {attribute.thetype.glslType} {attribute.name};") - result.add(&"}} {blockName};") - -func glslSamplers*(group: seq[ShaderAttribute], basebinding: int): seq[string] = - if group.len == 0: - return @[] - var thebinding = basebinding - for attribute in group: - var arrayDecl = "" - if attribute.arrayCount > 0: - arrayDecl = &"[{attribute.arrayCount}]" - result.add(&"layout(binding = {thebinding}) uniform {attribute.thetype.glslType} {attribute.name}{arrayDecl};") - inc thebinding - -func glslOutput*(group: seq[ShaderAttribute]): seq[string] = - if group.len == 0: - return @[] - var i = 0'u32 - for attribute in group: - assert attribute.arrayCount == 0, "arrays not yet supported for outputs" - result.add &"layout(location = {i}) out {attribute.thetype.glslType} {attribute.name};" - i += 1 diff -r 24d18cd8be8a -r 7f921d7d0a2b src/semicongine/math.nim --- a/src/semicongine/math.nim Mon May 08 21:45:47 2023 +0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,8 +0,0 @@ -import std/math -export math - -import ./math/vector -export vector - -import ./math/matrix -export matrix diff -r 24d18cd8be8a -r 7f921d7d0a2b src/semicongine/math/matrix.nim --- a/src/semicongine/math/matrix.nim Mon May 08 21:45:47 2023 +0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,396 +0,0 @@ -import std/math -import std/macros -import std/random -import std/strutils -import std/typetraits - -import ./vector - -export math - -type - # layout is row-first - # having an object instead of directly aliasing the array seems a bit ugly at - # first, but is necessary to be able to work correctly with distinguished - # types (i.e. TMat23 and TMat32 would be an alias for the same type array[6, T] - # which prevents the type system from identifying the correct type at times) - # - # Though, great news is that objects have zero overhead! - TMat2*[T: SomeNumber] = object - data*: array[4, T] - TMat23*[T: SomeNumber] = object - data*: array[6, T] - TMat32*[T: SomeNumber] = object - data*: array[6, T] - TMat3*[T: SomeNumber] = object - data*: array[9, T] - TMat34*[T: SomeNumber] = object - data*: array[12, T] - TMat43*[T: SomeNumber] = object - data*: array[12, T] - TMat4*[T: SomeNumber] = object - data*: array[16, T] - TMat* = TMat2|TMat3|TMat4|TMat23|TMat32|TMat34|TMat43 - Mat2* = TMat2[float32] - Mat23* = TMat23[float32] - Mat32* = TMat32[float32] - Mat3* = TMat3[float32] - Mat34* = TMat34[float32] - Mat43* = TMat43[float32] - Mat4* = TMat4[float32] - -func unit2[T: SomeNumber](): auto {.compiletime.} = TMat2[T](data:[ - T(1), T(0), - T(0), T(1), -]) -func unit3[T: SomeNumber](): auto {.compiletime.} = TMat3[T](data:[ - T(1), T(0), T(0), - T(0), T(1), T(0), - T(0), T(0), T(1), -]) -func unit4[T: SomeNumber](): auto {.compiletime.} = TMat4[T](data: [ - T(1), T(0), T(0), T(0), - T(0), T(1), T(0), T(0), - T(0), T(0), T(1), T(0), - T(0), T(0), T(0), T(1), -]) - -# generates constants: Unit -# Also for Y, Z, R, G, B -# not sure if this is necessary or even a good idea... -macro generateAllConsts() = - result = newStmtList() - for theType in ["int", "int8", "int16", "int32", "int64", "float", "float32", "float64"]: - var typename = theType[0 .. 0] - if theType[^2].isDigit: - typename = typename & theType[^2] - if theType[^1].isDigit: - typename = typename & theType[^1] - result.add(newConstStmt( - postfix(ident("Unit2" & typename), "*"), - newCall(nnkBracketExpr.newTree(ident("unit2"), ident(theType))) - )) - result.add(newConstStmt( - postfix(ident("Unit3" & typename), "*"), - newCall(nnkBracketExpr.newTree(ident("unit3"), ident(theType))) - )) - result.add(newConstStmt( - postfix(ident("Unit4" & typename), "*"), - newCall(nnkBracketExpr.newTree(ident("unit4"), ident(theType))) - )) - -generateAllConsts() - -const Unit2* = unit2[float32]() -const Unit3* = unit3[float32]() -const Unit4* = unit4[float32]() - -template rowCount*(m: typedesc): int = - when m is TMat2: 2 - elif m is TMat23: 2 - elif m is TMat32: 3 - elif m is TMat3: 3 - elif m is TMat34: 3 - elif m is TMat43: 4 - elif m is TMat4: 4 -template columnCount*(m: typedesc): int = - when m is TMat2: 2 - elif m is TMat23: 3 - elif m is TMat32: 2 - elif m is TMat3: 3 - elif m is TMat34: 4 - elif m is TMat43: 3 - elif m is TMat4: 4 - - -func toString[T](value: T): string = - var - strvalues: seq[string] - maxwidth = 0 - - for n in value.data: - let strval = $n - strvalues.add(strval) - if strval.len > maxwidth: - maxwidth = strval.len - - for i in 0 ..< strvalues.len: - let filler = " ".repeat(maxwidth - strvalues[i].len) - if i mod T.columnCount == T.columnCount - 1: - result &= filler & strvalues[i] & "\n" - else: - if i mod T.columnCount == 0: - result &= " " - result &= filler & strvalues[i] & " " - result = $T & "\n" & result - -func `$`*(v: TMat2[SomeNumber]): string = toString[TMat2[SomeNumber]](v) -func `$`*(v: TMat23[SomeNumber]): string = toString[TMat23[SomeNumber]](v) -func `$`*(v: TMat32[SomeNumber]): string = toString[TMat32[SomeNumber]](v) -func `$`*(v: TMat3[SomeNumber]): string = toString[TMat3[SomeNumber]](v) -func `$`*(v: TMat34[SomeNumber]): string = toString[TMat34[SomeNumber]](v) -func `$`*(v: TMat43[SomeNumber]): string = toString[TMat43[SomeNumber]](v) -func `$`*(v: TMat4[SomeNumber]): string = toString[TMat4[SomeNumber]](v) - -func `[]`*[T: TMat](m: T, row, col: int): auto = m.data[col + row * T.columnCount] -proc `[]=`*[T: TMat, U](m: var T, row, col: int, value: U) = m.data[col + row * T.columnCount] = value - -func row*[T: TMat2](m: T, i: 0..1): auto = TVec2([m[i, 0], m[i, 1]]) -func row*[T: TMat32](m: T, i: 0..2): auto = TVec2([m[i, 0], m[i, 1]]) -func row*[T: TMat23](m: T, i: 0..1): auto = TVec3([m[i, 0], m[i, 1], m[i, 2]]) -func row*[T: TMat3](m: T, i: 0..2): auto = TVec3([m[i, 0], m[i, 1], m[i, 2]]) -func row*[T: TMat43](m: T, i: 0..3): auto = TVec3([m[i, 0], m[i, 1], m[i, 2]]) -func row*[T: TMat34](m: T, i: 0..2): auto = TVec4([m[i, 0], m[i, 1], m[i, 2], m[i, 3]]) -func row*[T: TMat4](m: T, i: 0..3): auto = TVec4([m[i, 0], m[i, 1], m[i, 2], m[i, 3]]) - -func col*[T: TMat2](m: T, i: 0..1): auto = TVec2([m[0, i], m[1, i]]) -func col*[T: TMat23](m: T, i: 0..2): auto = TVec2([m[0, i], m[1, i]]) -func col*[T: TMat32](m: T, i: 0..1): auto = TVec3([m[0, i], m[1, i], m[2, i]]) -func col*[T: TMat3](m: T, i: 0..2): auto = TVec3([m[0, i], m[1, i], m[2, i]]) -func col*[T: TMat34](m: T, i: 0..3): auto = TVec3([m[0, i], m[1, i], m[2, i]]) -func col*[T: TMat43](m: T, i: 0..2): auto = TVec4([m[0, i], m[1, i], m[2, i], m[3, i]]) -func col*[T: TMat4](m: T, i: 0..3): auto = TVec4([m[0, i], m[1, i], m[2, i], m[3, i]]) - -proc createMatMatMultiplicationOperator(leftType: typedesc, rightType: typedesc, outType: typedesc): NimNode = - var data = nnkBracket.newTree() - for i in 0 ..< rowCount(leftType): - for j in 0 ..< rightType.columnCount: - data.add(newCall( - ident("sum"), - infix( - newCall(newDotExpr(ident("a"), ident("row")), newLit(i)), - "*", - newCall(newDotExpr(ident("b"), ident("col")), newLit(j)) - ) - )) - - return newProc( - postfix(nnkAccQuoted.newTree(ident("*")), "*"), - params=[ - ident("auto"), - newIdentDefs(ident("a"), ident(leftType.name)), - newIdentDefs(ident("b"), ident(rightType.name)) - ], - body=nnkObjConstr.newTree(ident(outType.name), nnkExprColonExpr.newTree(ident("data"), data)), - procType=nnkFuncDef, - ) - -proc createVecMatMultiplicationOperator(matType: typedesc, vecType: typedesc): NimNode = - var data = nnkBracket.newTree() - for i in 0 ..< matType.rowCount: - data.add(newCall( - ident("sum"), - infix( - ident("v"), - "*", - newCall(newDotExpr(ident("m"), ident("row")), newLit(i)) - ) - )) - - let resultVec = newCall( - nnkBracketExpr.newTree(ident(vecType.name), ident("T")), - data, - ) - let name = postfix(nnkAccQuoted.newTree(ident("*")), "*") - let genericParams = nnkGenericParams.newTree(nnkIdentDefs.newTree(ident("T"), ident("SomeNumber"), newEmptyNode())) - let formalParams = nnkFormalParams.newTree( - ident("auto"), - newIdentDefs(ident("m"), nnkBracketExpr.newTree(ident(matType.name), ident("T"))), - newIdentDefs(ident("v"), nnkBracketExpr.newTree(ident(vecType.name), ident("T"))), - ) - - return nnkFuncDef.newTree( - name, - newEmptyNode(), - genericParams, - formalParams, - newEmptyNode(), - newEmptyNode(), - resultVec - ) - - -proc createMatScalarOperator(matType: typedesc, op: string): NimNode = - result = newStmtList() - - var data = nnkBracket.newTree() - for i in 0 ..< matType.rowCount * matType.columnCount: - data.add(infix(nnkBracketExpr.newTree(newDotExpr(ident("a"), ident("data")), newLit(i)), op, ident("b"))) - result.add(newProc( - postfix(nnkAccQuoted.newTree(ident(op)), "*"), - params=[ - ident("auto"), - newIdentDefs(ident("a"), ident(matType.name)), - newIdentDefs(ident("b"), ident("SomeNumber")), - ], - body=nnkObjConstr.newTree(ident(matType.name), nnkExprColonExpr.newTree(ident("data"), data)), - procType=nnkFuncDef, - )) - result.add(newProc( - postfix(nnkAccQuoted.newTree(ident(op)), "*"), - params=[ - ident("auto"), - newIdentDefs(ident("b"), ident("SomeNumber")), - newIdentDefs(ident("a"), ident(matType.name)), - ], - body=nnkObjConstr.newTree(ident(matType.name), nnkExprColonExpr.newTree(ident("data"), data)), - procType=nnkFuncDef, - )) - if op == "-": - var data2 = nnkBracket.newTree() - for i in 0 ..< matType.rowCount * matType.columnCount: - data2.add(prefix(nnkBracketExpr.newTree(newDotExpr(ident("a"), ident("data")), newLit(i)), op)) - result.add(newProc( - postfix(nnkAccQuoted.newTree(ident(op)), "*"), - params=[ - ident("auto"), - newIdentDefs(ident("a"), ident(matType.name)), - ], - body=nnkObjConstr.newTree(ident(matType.name), nnkExprColonExpr.newTree(ident("data"), data2)), - procType=nnkFuncDef, - )) - -macro createAllMultiplicationOperators() = - result = newStmtList() - - for op in ["+", "-", "*", "/"]: - result.add(createMatScalarOperator(TMat2, op)) - result.add(createMatScalarOperator(TMat23, op)) - result.add(createMatScalarOperator(TMat32, op)) - result.add(createMatScalarOperator(TMat3, op)) - result.add(createMatScalarOperator(TMat34, op)) - result.add(createMatScalarOperator(TMat43, op)) - result.add(createMatScalarOperator(TMat4, op)) - - result.add(createMatMatMultiplicationOperator(TMat2, TMat2, TMat2)) - result.add(createMatMatMultiplicationOperator(TMat2, TMat23, TMat23)) - result.add(createMatMatMultiplicationOperator(TMat23, TMat32, TMat2)) - result.add(createMatMatMultiplicationOperator(TMat23, TMat3, TMat23)) - result.add(createMatMatMultiplicationOperator(TMat32, TMat2, TMat32)) - result.add(createMatMatMultiplicationOperator(TMat32, TMat23, TMat3)) - result.add(createMatMatMultiplicationOperator(TMat3, TMat32, TMat32)) - result.add(createMatMatMultiplicationOperator(TMat3, TMat3, TMat3)) - result.add(createMatMatMultiplicationOperator(TMat3, TMat34, TMat34)) - result.add(createMatMatMultiplicationOperator(TMat43, TMat3, TMat43)) - result.add(createMatMatMultiplicationOperator(TMat43, TMat34, TMat4)) - result.add(createMatMatMultiplicationOperator(TMat4, TMat43, TMat43)) - result.add(createMatMatMultiplicationOperator(TMat4, TMat4, TMat4)) - - result.add(createVecMatMultiplicationOperator(TMat2, TVec2)) - result.add(createVecMatMultiplicationOperator(TMat3, TVec3)) - result.add(createVecMatMultiplicationOperator(TMat4, TVec4)) - -createAllMultiplicationOperators() - - -func transposed*[T](m: TMat2[T]): TMat2[T] = TMat2[T](data: [ - m[0, 0], m[1, 0], - m[0, 1], m[1, 1], -]) -func transposed*[T](m: TMat23[T]): TMat32[T] = TMat32[T](data: [ - m[0, 0], m[1, 0], - m[0, 1], m[1, 1], - m[0, 2], m[1, 2], -]) -func transposed*[T](m: TMat32[T]): TMat23[T] = TMat23[T](data: [ - m[0, 0], m[1, 0], m[2, 0], - m[0, 1], m[1, 1], m[2, 1], -]) -func transposed*[T](m: TMat3[T]): TMat3[T] = TMat3[T](data: [ - m[0, 0], m[1, 0], m[2, 0], - m[0, 1], m[1, 1], m[2, 1], - m[0, 2], m[1, 2], m[2, 2], -]) -func transposed*[T](m: TMat43[T]): TMat34[T] = TMat34[T](data: [ - m[0, 0], m[1, 0], m[2, 0], m[3, 0], - m[0, 1], m[1, 1], m[2, 1], m[3, 1], - m[0, 2], m[1, 2], m[2, 2], m[3, 2], -]) -func transposed*[T](m: TMat34[T]): TMat43[T] = TMat43[T](data: [ - m[0, 0], m[1, 0], m[2, 0], - m[0, 1], m[1, 1], m[2, 1], - m[0, 2], m[1, 2], m[2, 2], - m[0, 3], m[1, 3], m[2, 3], -]) -func transposed*[T](m: TMat4[T]): TMat4[T] = TMat4[T](data: [ - m[0, 0], m[1, 0], m[2, 0], m[3, 0], - m[0, 1], m[1, 1], m[2, 1], m[3, 1], - m[0, 2], m[1, 2], m[2, 2], m[3, 2], - m[0, 3], m[1, 3], m[2, 3], m[3, 3], -]) - -func translate2d*[T](x, y: T): TMat3[T] = TMat3[T](data: [ - T(1), T(0), x, - T(0), T(1), y, - T(0), T(0), T(1), -]) -func scale2d*[T](sx, sy: T): TMat3[T] = TMat3[T](data: [ - sx, T(0), T(0), - T(0), sy, T(0), - T(0), T(0), T(1), -]) -func rotate2d*[T](angle: T): TMat3[T] = TMat3[T](data: [ - cos(angle), -sin(angle), T(0), - sin(angle), cos(angle), T(0), - T(0), T(0), T(1), -]) -func translate3d*[T](x, y, z: T): TMat4[T] = TMat4[T](data: [ - T(1), T(0), T(0), x, - T(0), T(1), T(0), y, - T(0), T(0), T(1), z, - T(0), T(0), T(0), T(1), -]) -func scale3d*[T](sx, sy, sz: T): TMat4[T] = TMat4[T](data: [ - sx, T(0), T(0), T(0), - T(0), sy, T(0), T(0), - T(0), T(0), sz, T(0), - T(0), T(0), T(0), T(1), -]) -func rotate3d*[T](angle: T, a: TVec3[T]): TMat4[T] = - let - cosa = cos(angle) - sina = sin(angle) - x = a[0] - y = a[1] - z = a[2] - TMat4[T](data: [ - x * x * (1 - cosa) + cosa, y * x * (1 - cosa) - z * sina, z * x * (1 - cosa) + y * sina, T(0), - x * y * (1 - cosa) + z * sina, y * y * (1 - cosa) + cosa, z * y * (1 - cosa) - x * sina, T(0), - x * z * (1 - cosa) - y * sina, y * z * (1 - cosa) + x * sina, z * z * (1 - cosa) + cosa, T(0), - T(0), T(0), T(0), T(1), - ]) - - -# call e.g. TMat32[int]().randomized() to get a random matrix -template makeRandomInit(mattype: typedesc) = - proc randomized*[T: SomeInteger](m: mattype[T]): mattype[T] = - for i in 0 ..< result.data.len: - result.data[i] = rand(low(typeof(m.data[0])) .. high(typeof(m.data[0]))) - proc randomized*[T: SomeFloat](m: mattype[T]): mattype[T] = - for i in 0 ..< result.data.len: - result.data[i] = rand(1.0) - -makeRandomInit(TMat2) -makeRandomInit(TMat23) -makeRandomInit(TMat32) -makeRandomInit(TMat3) -makeRandomInit(TMat34) -makeRandomInit(TMat43) -makeRandomInit(TMat4) - -func perspective*[T: SomeFloat](fovy, aspect, zNear, zFar: T): TMat4[T] = - let tanHalfFovy = tan(fovy / T(2)) - return TMat4[T](data:[ - T(1) / (aspect * tanHalfFovy), T(0), T(0), T(0), - T(0), T(1) / tanHalfFovy, T(0), T(0), - T(0), T(0), T(zFar / (zFar - zNear)), T(-(zFar * zNear) / (zFar - zNear)), - T(0), T(0), T(1), T(1), - ]) - -func ortho*[T: SomeFloat](left, right, top, bottom, zNear, zFar: T): TMat4[T] = - TMat4[T](data:[ - T(2) / (right - left), T(0), T(0), -(right + left) / (right - left), - T(0), T(2) / (bottom - top), T(0), -(bottom + top) / (bottom - top), - T(0), T(0), T(1) / (zFar - zNear), -zNear / (zFar - zNear), - T(0), T(0), T(1), T(1), - ]) diff -r 24d18cd8be8a -r 7f921d7d0a2b src/semicongine/math/vector.nim --- a/src/semicongine/math/vector.nim Mon May 08 21:45:47 2023 +0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,285 +0,0 @@ -import std/random -import std/math -import std/strutils -import std/macros -import std/typetraits -import std/tables - -import ../vulkan/api - -type - TVec2*[T: SomeNumber] = array[2, T] - TVec3*[T: SomeNumber] = array[3, T] - TVec4*[T: SomeNumber] = array[4, T] - TVec* = TVec2|TVec3|TVec4 - Vec2f* = TVec2[float32] - Vec3f* = TVec3[float32] - Vec4f* = TVec4[float32] - Vec2i* = TVec2[uint32] - Vec3i* = TVec3[uint32] - Vec4i* = TVec4[uint32] - -converter toVec2*[T: SomeNumber](orig: TVec3[T]|TVec4[T]): TVec2[T] = - TVec2[T]([orig[0], orig[1]]) -converter toVec3*[T: SomeNumber](orig: TVec4[T]): TVec3[T] = - TVec2[T]([orig[0], orig[1], orig[2]]) - -# define some often used constants -func ConstOne2[T: SomeNumber](): auto {.compiletime.} = TVec2[T]([T(1), T(1)]) -func ConstOne3[T: SomeNumber](): auto {.compiletime.} = TVec3[T]([T(1), T(1), T(1)]) -func ConstOne4[T: SomeNumber](): auto {.compiletime.} = TVec4[T]([T(1), T(1), T( - 1), T(1)]) -func ConstX[T: SomeNumber](): auto {.compiletime.} = TVec3[T]([T(1), T(0), T(0)]) -func ConstY[T: SomeNumber](): auto {.compiletime.} = TVec3[T]([T(0), T(1), T(0)]) -func ConstZ[T: SomeNumber](): auto {.compiletime.} = TVec3[T]([T(0), T(0), T(1)]) -func ConstR[T: SomeNumber](): auto {.compiletime.} = TVec3[T]([T(1), T(0), T(0)]) -func ConstG[T: SomeNumber](): auto {.compiletime.} = TVec3[T]([T(0), T(1), T(0)]) -func ConstB[T: SomeNumber](): auto {.compiletime.} = TVec3[T]([T(0), T(0), T(1)]) - -func newVec2f*(x=0'f32, y=0'f32): auto = - Vec2f([x, y]) -func newVec3f*(x=0'f32, y=0'f32, z=0'f32): auto = - Vec3f([x, y, z]) -func newVec4f*(x=0'f32, y=0'f32, z=0'f32, a=0'f32): auto = - Vec4f([x, y, z, a]) - -# generates constants: Xf, Xf32, Xf64, Xi, Xi8, Xi16, Xi32, Xi64 -# Also for Y, Z, R, G, B and One -# not sure if this is necessary or even a good idea... -macro generateAllConsts() = - result = newStmtList() - for component in ["X", "Y", "Z", "R", "G", "B", "One2", "One3", "One4"]: - for theType in ["int", "int8", "int16", "int32", "int64", "float", - "float32", "float64"]: - var typename = theType[0 .. 0] - if theType[^2].isDigit: - typename = typename & theType[^2] - if theType[^1].isDigit: - typename = typename & theType[^1] - result.add( - newConstStmt( - postfix(ident(component & typename), "*"), - newCall(nnkBracketExpr.newTree(ident("Const" & component), ident(theType))) - ) - ) - -generateAllConsts() - -const X* = ConstX[float32]() -const Y* = ConstY[float32]() -const Z* = ConstZ[float32]() -const One2* = ConstOne2[float32]() -const One3* = ConstOne3[float32]() -const One4* = ConstOne4[float32]() - -func newVec2*[T](x, y: T): auto = TVec2([x, y]) -func newVec3*[T](x, y, z: T): auto = TVec3([x, y, z]) -func newVec4*[T](x, y, z, w: T): auto = TVec4([x, y, z, w]) - -func to*[T](v: TVec2): auto = TVec2([T(v[0]), T(v[1])]) -func to*[T](v: TVec3): auto = TVec3([T(v[0]), T(v[1]), T(v[2])]) -func to*[T](v: TVec4): auto = TVec4([T(v[0]), T(v[1]), T(v[2]), T(v[3])]) - -func toString[T](value: T): string = - var items: seq[string] - for item in value: - items.add($item) - $T & "(" & join(items, " ") & ")" - -func `$`*(v: TVec2[SomeNumber]): string = toString[TVec2[SomeNumber]](v) -func `$`*(v: TVec3[SomeNumber]): string = toString[TVec3[SomeNumber]](v) -func `$`*(v: TVec4[SomeNumber]): string = toString[TVec4[SomeNumber]](v) - -func length*(vec: TVec2[SomeFloat]): auto = sqrt(vec[0] * vec[0] + vec[1] * vec[1]) -func length*(vec: TVec2[SomeInteger]): auto = sqrt(float(vec[0] * vec[0] + vec[ - 1] * vec[1])) -func length*(vec: TVec3[SomeFloat]): auto = sqrt(vec[0] * vec[0] + vec[1] * vec[ - 1] + vec[2] * vec[2]) -func length*(vec: TVec3[SomeInteger]): auto = sqrt(float(vec[0] * vec[0] + vec[ - 1] * vec[1] + vec[2] * vec[2])) -func length*(vec: TVec4[SomeFloat]): auto = sqrt(vec[0] * vec[0] + vec[1] * vec[ - 1] + vec[2] * vec[2] + vec[3] * vec[3]) -func length*(vec: TVec4[SomeInteger]): auto = sqrt(float(vec[0] * vec[0] + vec[ - 1] * vec[1] + vec[2] * vec[2] + vec[3] * vec[3])) - -func normalized*[T](vec: TVec2[T]): auto = - let l = vec.length - when T is SomeFloat: - TVec2[T]([vec[0] / l, vec[1] / l]) - else: - TVec2[float]([float(vec[0]) / l, float(vec[1]) / l]) -func normalized*[T](vec: TVec3[T]): auto = - let l = vec.length - when T is SomeFloat: - TVec3[T]([vec[0] / l, vec[1] / l, vec[2] / l]) - else: - TVec3[float]([float(vec[0]) / l, float(vec[1]) / l, float(vec[2]) / l]) -func normalized*[T](vec: TVec4[T]): auto = - let l = vec.length - when T is SomeFloat: - TVec4[T]([vec[0] / l, vec[1] / l, vec[2] / l, vec[3] / l]) - else: - TVec4[float]([float(vec[0]) / l, float(vec[1]) / l, float(vec[2]) / l, - float(vec[3]) / l]) - -# scalar operations -func `+`*(a: TVec2, b: SomeNumber): auto = TVec2([a[0] + b, a[1] + b]) -func `+`*(a: TVec3, b: SomeNumber): auto = TVec3([a[0] + b, a[1] + b, a[2] + b]) -func `+`*(a: TVec4, b: SomeNumber): auto = TVec4([a[0] + b, a[1] + b, a[2] + b, - a[3] + b]) -func `-`*(a: TVec2, b: SomeNumber): auto = TVec2([a[0] - b, a[1] - b]) -func `-`*(a: TVec3, b: SomeNumber): auto = TVec3([a[0] - b, a[1] - b, a[2] - b]) -func `-`*(a: TVec4, b: SomeNumber): auto = TVec4([a[0] - b, a[1] - b, a[2] - b, - a[3] - b]) -func `*`*(a: TVec2, b: SomeNumber): auto = TVec2([a[0] * b, a[1] * b]) -func `*`*(a: TVec3, b: SomeNumber): auto = TVec3([a[0] * b, a[1] * b, a[2] * b]) -func `*`*(a: TVec4, b: SomeNumber): auto = TVec4([a[0] * b, a[1] * b, a[2] * b, - a[3] * b]) -func `/`*[T: SomeInteger](a: TVec2[T], b: SomeInteger): auto = TVec2([a[ - 0] div b, a[1] div b]) -func `/`*[T: SomeFloat](a: TVec2[T], b: SomeFloat): auto = TVec2([a[0] / b, a[1] / b]) -func `/`*[T: SomeInteger](a: TVec3[T], b: SomeInteger): auto = TVec3([a[ - 0] div b, a[1] div b, a[2] div b]) -func `/`*[T: SomeFloat](a: TVec3[T], b: SomeFloat): auto = TVec3([a[0] / b, a[ - 1] / b, a[2] / b]) -func `/`*[T: SomeInteger](a: TVec4[T], b: SomeInteger): auto = TVec4([a[ - 0] div b, a[1] div b, a[2] div b, a[3] div b]) -func `/`*[T: SomeFloat](a: TVec4[T], b: SomeFloat): auto = TVec4([a[0] / b, a[ - 1] / b, a[2] / b, a[3] / b]) - -func `+`*(a: SomeNumber, b: TVec2): auto = TVec2([a + b[0], a + b[1]]) -func `+`*(a: SomeNumber, b: TVec3): auto = TVec3([a + b[0], a + b[1], a + b[2]]) -func `+`*(a: SomeNumber, b: TVec4): auto = TVec4([a + b[0], a + b[1], a + b[2], - a + b[3]]) -func `-`*(a: SomeNumber, b: TVec2): auto = TVec2([a - b[0], a - b[1]]) -func `-`*(a: SomeNumber, b: TVec3): auto = TVec3([a - b[0], a - b[1], a - b[2]]) -func `-`*(a: SomeNumber, b: TVec4): auto = TVec4([a - b[0], a - b[1], a - b[2], - a - b[3]]) -func `*`*(a: SomeNumber, b: TVec2): auto = TVec2([a * b[0], a * b[1]]) -func `*`*(a: SomeNumber, b: TVec3): auto = TVec3([a * b[0], a * b[1], a * b[2]]) -func `*`*(a: SomeNumber, b: TVec4): auto = TVec4([a * b[0], a * b[1], a * b[2], - a * b[3]]) -func `/`*[T: SomeInteger](a: SomeInteger, b: TVec2[T]): auto = TVec2([a div b[ - 0], a div b[1]]) -func `/`*[T: SomeFloat](a: SomeFloat, b: TVec2[T]): auto = TVec2([a / b[0], a / b[1]]) -func `/`*[T: SomeInteger](a: SomeInteger, b: TVec3[T]): auto = TVec3([a div b[ - 0], a div b[1], a div b[2]]) -func `/`*[T: SomeFloat](a: SomeFloat, b: TVec3[T]): auto = TVec3([a / b[0], a / - b[1], a / b[2]]) -func `/`*[T: SomeInteger](a: SomeInteger, b: TVec4[T]): auto = TVec4([a div b[ - 0], a div b[1], a div b[2], a div b[3]]) -func `/`*[T: SomeFloat](a: SomeFloat, b: TVec4[T]): auto = TVec4([a / b[0], a / - b[1], a / b[2], a / b[3]]) - -# compontent-wise operations -func `+`*(a, b: TVec2): auto = TVec2([a[0] + b[0], a[1] + b[1]]) -func `+`*(a, b: TVec3): auto = TVec3([a[0] + b[0], a[1] + b[1], a[2] + b[2]]) -func `+`*(a, b: TVec4): auto = TVec4([a[0] + b[0], a[1] + b[1], a[2] + b[2], a[ - 3] + b[3]]) -func `-`*(a: TVec2): auto = TVec2([-a[0], -a[1]]) -func `-`*(a: TVec3): auto = TVec3([-a[0], -a[1], -a[2]]) -func `-`*(a: TVec4): auto = TVec4([-a[0], -a[1], -a[2], -a[3]]) -func `-`*(a, b: TVec2): auto = TVec2([a[0] - b[0], a[1] - b[1]]) -func `-`*(a, b: TVec3): auto = TVec3([a[0] - b[0], a[1] - b[1], a[2] - b[2]]) -func `-`*(a, b: TVec4): auto = TVec4([a[0] - b[0], a[1] - b[1], a[2] - b[2], a[ - 3] - b[3]]) -func `*`*(a, b: TVec2): auto = TVec2([a[0] * b[0], a[1] * b[1]]) -func `*`*(a, b: TVec3): auto = TVec3([a[0] * b[0], a[1] * b[1], a[2] * b[2]]) -func `*`*(a, b: TVec4): auto = TVec4([a[0] * b[0], a[1] * b[1], a[2] * b[2], a[ - 3] * b[3]]) -func `/`*[T: SomeInteger](a, b: TVec2[T]): auto = TVec2([a[0] div b[0], a[ - 1] div b[1]]) -func `/`*[T: SomeFloat](a, b: TVec2[T]): auto = TVec2([a[0] / b[0], a[1] / b[1]]) -func `/`*[T: SomeInteger](a, b: TVec3[T]): auto = TVec3([a[0] div b[0], a[ - 1] div b[1], a[2] div b[2]]) -func `/`*[T: SomeFloat](a, b: TVec3[T]): auto = TVec3([a[0] / b[0], a[1] / b[1], - a[2] / b[2]]) -func `/`*[T: SomeInteger](a, b: TVec4[T]): auto = TVec4([a[0] div b[0], a[ - 1] div b[1], a[2] div b[2], a[3] div b[3]]) -func `/`*[T: SomeFloat](a, b: TVec4[T]): auto = TVec4([a[0] / b[0], a[1] / b[1], - a[2] / b[2], a[3] / b[3]]) - -# special operations -func pow*(a: TVec2, b: SomeNumber): auto = - TVec2([pow(a[0], b), pow(a[1], b)]) -func pow*(a: TVec3, b: SomeNumber): auto = - TVec3([pow(a[0], b), pow(a[1], b), pow(a[2], b)]) -func pow*(a: TVec4, b: SomeNumber): auto = - TVec4([pow(a[0], b), pow(a[1], b), pow(a[2], b), pow(a[3], b)]) -func dot*(a, b: TVec2): auto = a[0] * b[0] + a[1] * b[1] -func dot*(a, b: TVec3): auto = a[0] * b[0] + a[1] * b[1] + a[2] * b[2] -func dot*(a, b: TVec4): auto = a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3] -func cross*(a, b: TVec3): auto = TVec3([ - a[1] * b[2] - a[2] * b[1], - a[2] * b[0] - a[0] * b[2], - a[0] * b[1] - a[1] * b[0], -]) - - -# macro to allow creation of new vectors by specifying vector components as attributes -# e.g. myVec.xxy will return a new Vec3 that contains the components x, x an y of the original vector -# (instead of x, y, z for a simple copy) -proc vectorAttributeAccessor(accessor: string): NimNode = - const ACCESSOR_INDICES = { - 'x': 0, - 'y': 1, - 'z': 2, - 'w': 3, - 'r': 0, - 'g': 1, - 'b': 2, - 'a': 3, - }.toTable - var ret: NimNode - let accessorvalue = accessor - - if accessorvalue.len == 0: - raise newException(Exception, "empty attribute") - elif accessorvalue.len == 1: - ret = nnkBracketExpr.newTree(ident("value"), newLit(ACCESSOR_INDICES[ - accessorvalue[0]])) - if accessorvalue.len > 1: - var attrs = nnkBracket.newTree() - for attrname in accessorvalue: - attrs.add(nnkBracketExpr.newTree(ident("value"), newLit(ACCESSOR_INDICES[attrname]))) - ret = nnkCall.newTree(ident("TVec" & $accessorvalue.len), attrs) - - newProc( - name = nnkPostfix.newTree(ident("*"), ident(accessor)), - params = [ident("auto"), nnkIdentDefs.newTree(ident("value"), ident("TVec"), - newEmptyNode())], - body = newStmtList(ret), - procType = nnkFuncDef, - ) - -macro createVectorAttribAccessorFuncs() = - const COORD_ATTRS = ["x", "y", "z", "w"] - const COLOR_ATTRS = ["r", "g", "b", "a"] - result = nnkStmtList.newTree() - for attlist in [COORD_ATTRS, COLOR_ATTRS]: - for i in attlist: - result.add(vectorAttributeAccessor(i)) - for j in attlist: - result.add(vectorAttributeAccessor(i & j)) - for k in attlist: - result.add(vectorAttributeAccessor(i & j & k)) - for l in attlist: - result.add(vectorAttributeAccessor(i & j & k & l)) - -createVectorAttribAccessorFuncs() - -# call e.g. Vec2[int]().randomized() to get a random matrix -template makeRandomInit(mattype: typedesc) = - proc randomized*[T: SomeInteger](m: mattype[T]): mattype[T] = - for i in 0 ..< result.len: - result[i] = rand(low(typeof(m[0])) .. high(typeof(m[0]))) - proc randomized*[T: SomeFloat](m: mattype[T]): mattype[T] = - for i in 0 ..< result.len: - result[i] = rand(1.0) - -makeRandomInit(TVec2) -makeRandomInit(TVec3) -makeRandomInit(TVec4) - -converter Vec2VkExtent*(vec: TVec2[uint32]): VkExtent2D = VkExtent2D(width: vec[0], height: vec[1]) -converter Vec3VkExtent*(vec: TVec2[uint32]): VkExtent3D = VkExtent3D(width: vec[0], height: vec[1], depth: vec[2]) diff -r 24d18cd8be8a -r 7f921d7d0a2b src/semicongine/mesh.nim --- a/src/semicongine/mesh.nim Mon May 08 21:45:47 2023 +0700 +++ b/src/semicongine/mesh.nim Tue May 09 01:11:51 2023 +0700 @@ -5,11 +5,8 @@ import std/strformat import std/sequtils -import ./vulkan/api -import ./gpu_data +import ./core import ./entity -import ./math -import ./color type MeshIndexType* = enum diff -r 24d18cd8be8a -r 7f921d7d0a2b src/semicongine/platform/linux/audio.nim --- a/src/semicongine/platform/linux/audio.nim Mon May 08 21:45:47 2023 +0700 +++ b/src/semicongine/platform/linux/audio.nim Tue May 09 01:11:51 2023 +0700 @@ -1,4 +1,4 @@ -import ../../audiotypes +import ../../core # alsa API type diff -r 24d18cd8be8a -r 7f921d7d0a2b src/semicongine/platform/linux/surface.nim --- a/src/semicongine/platform/linux/surface.nim Mon May 08 21:45:47 2023 +0700 +++ b/src/semicongine/platform/linux/surface.nim Tue May 09 01:11:51 2023 +0700 @@ -1,11 +1,11 @@ -import ../../vulkan/api +import ../../core import ../../platform/window proc createNativeSurface*(instance: VkInstance, window: NativeWindow): VkSurfaceKHR = assert instance.valid var surfaceCreateInfo = VkXlibSurfaceCreateInfoKHR( sType: VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR, - dpy: cast[ptr api.Display](window.display), - window: cast[api.Window](window.window), + dpy: cast[ptr vulkanapi.Display](window.display), + window: cast[vulkanapi.Window](window.window), ) checkVkResult vkCreateXlibSurfaceKHR(instance, addr(surfaceCreateInfo), nil, addr(result)) diff -r 24d18cd8be8a -r 7f921d7d0a2b src/semicongine/platform/linux/window.nim --- a/src/semicongine/platform/linux/window.nim Mon May 08 21:45:47 2023 +0700 +++ b/src/semicongine/platform/linux/window.nim Tue May 09 01:11:51 2023 +0700 @@ -8,8 +8,8 @@ x11/keysym import x11/x +import ../../core import ../../events -import ../../math/vector import ./symkey_map diff -r 24d18cd8be8a -r 7f921d7d0a2b src/semicongine/platform/windows/audio.nim --- a/src/semicongine/platform/windows/audio.nim Mon May 08 21:45:47 2023 +0700 +++ b/src/semicongine/platform/windows/audio.nim Tue May 09 01:11:51 2023 +0700 @@ -1,7 +1,7 @@ import winim import winim/extra -import ../../audiotypes +import ../../core template checkWinMMResult*(call: untyped) = let value = call diff -r 24d18cd8be8a -r 7f921d7d0a2b src/semicongine/platform/windows/surface.nim --- a/src/semicongine/platform/windows/surface.nim Mon May 08 21:45:47 2023 +0700 +++ b/src/semicongine/platform/windows/surface.nim Tue May 09 01:11:51 2023 +0700 @@ -1,4 +1,4 @@ -import ../../vulkan/api +import ../../core import ../../platform/window proc createNativeSurface*(instance: VkInstance, window: NativeWindow): VkSurfaceKHR = diff -r 24d18cd8be8a -r 7f921d7d0a2b src/semicongine/platform/windows/window.nim --- a/src/semicongine/platform/windows/window.nim Mon May 08 21:45:47 2023 +0700 +++ b/src/semicongine/platform/windows/window.nim Tue May 09 01:11:51 2023 +0700 @@ -1,9 +1,9 @@ import std/options import winim +import ../../core import ./virtualkey_map import ../../events -import ../../math/vector type NativeWindow* = object diff -r 24d18cd8be8a -r 7f921d7d0a2b src/semicongine/renderer.nim --- a/src/semicongine/renderer.nim Mon May 08 21:45:47 2023 +0700 +++ b/src/semicongine/renderer.nim Tue May 09 01:11:51 2023 +0700 @@ -4,7 +4,7 @@ import std/strutils import std/logging -import ./vulkan/api +import ./core import ./vulkan/buffer import ./vulkan/device import ./vulkan/drawable @@ -17,9 +17,6 @@ import ./entity import ./mesh -import ./gpu_data -import ./math -import ./buildconfig type SceneData = object diff -r 24d18cd8be8a -r 7f921d7d0a2b src/semicongine/resources.nim --- a/src/semicongine/resources.nim Mon May 08 21:45:47 2023 +0700 +++ b/src/semicongine/resources.nim Tue May 09 01:11:51 2023 +0700 @@ -1,7 +1,7 @@ import std/strutils import std/os -import ./buildconfig +import ./core type ResourceBundlingType* = enum diff -r 24d18cd8be8a -r 7f921d7d0a2b src/semicongine/settings.nim --- a/src/semicongine/settings.nim Mon May 08 21:45:47 2023 +0700 +++ b/src/semicongine/settings.nim Tue May 09 01:11:51 2023 +0700 @@ -7,7 +7,7 @@ import std/tables import std/os -import ./buildconfig +import ./core when CONFIGHOTRELOAD: var configUpdates: Channel[(string, Config)] diff -r 24d18cd8be8a -r 7f921d7d0a2b src/semicongine/vulkan.nim --- a/src/semicongine/vulkan.nim Mon May 08 21:45:47 2023 +0700 +++ b/src/semicongine/vulkan.nim Tue May 09 01:11:51 2023 +0700 @@ -1,41 +1,28 @@ -import ./vulkan/api -export api - import ./vulkan/instance -export instance - import ./vulkan/physicaldevice -export physicaldevice - import ./vulkan/device -export device - import ./vulkan/swapchain -export swapchain - import ./vulkan/renderpass -export renderpass - import ./vulkan/framebuffer -export framebuffer +import ./vulkan/commandbuffer +import ./vulkan/syncing +import ./vulkan/shader +import ./vulkan/descriptor +import ./vulkan/pipeline +import ./vulkan/buffer +import ./vulkan/memory -import ./vulkan/commandbuffer +export instance +export physicaldevice +export device +export swapchain +export renderpass +export framebuffer export commandbuffer - -import ./vulkan/syncing export syncing - -import ./vulkan/shader export shader +export descriptor +export pipeline +export buffer +export memory -import ./vulkan/descriptor -export descriptor - -import ./vulkan/pipeline -export pipeline - -import ./vulkan/buffer -export buffer - -import ./vulkan/memory -export memory diff -r 24d18cd8be8a -r 7f921d7d0a2b src/semicongine/vulkan/api.nim --- a/src/semicongine/vulkan/api.nim Mon May 08 21:45:47 2023 +0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12068 +0,0 @@ -import std/dynlib -import std/tables -import std/strutils -import std/logging -import std/typetraits -import std/macros -import std/private/digitsutils -type - VkHandle* = distinct uint - VkNonDispatchableHandle* = distinct uint -when defined(linux): - let vulkanLib* = loadLib("libvulkan.so.1") -when defined(windows): - let vulkanLib* = loadLib("vulkan-1.dll") -if vulkanLib == nil: - raise newException(Exception, "Unable to load vulkan library") -func VK_MAKE_API_VERSION*(variant: uint32, major: uint32, minor: uint32, patch: uint32): uint32 {.compileTime.} = - (variant shl 29) or (major shl 22) or (minor shl 12) or patch - -template checkVkResult*(call: untyped) = - when defined(release): - discard call - else: - # yes, a bit cheap, but this is only for nice debug output - var callstr = astToStr(call).replace("\n", "") - while callstr.find(" ") >= 0: - callstr = callstr.replace(" ", " ") - debug "Calling vulkan: ", callstr - let value = call - if value != VK_SUCCESS: - error "Vulkan error: ", astToStr(call), " returned ", $value - raise newException(Exception, "Vulkan error: " & astToStr(call) & - " returned " & $value) -# custom enum iteration (for enum values > 2^16) -macro enumFullRange(a: typed): untyped = - newNimNode(nnkBracket).add(a.getType[1][1..^1]) - -iterator items*[T: HoleyEnum](E: typedesc[T]): T = - for a in enumFullRange(E): yield a -const - VK_MAX_PHYSICAL_DEVICE_NAME_SIZE*: uint32 = 256 - VK_UUID_SIZE*: uint32 = 16 - VK_LUID_SIZE*: uint32 = 8 - VK_LUID_SIZE_KHR* = VK_LUID_SIZE - VK_MAX_EXTENSION_NAME_SIZE*: uint32 = 256 - VK_MAX_DESCRIPTION_SIZE*: uint32 = 256 - VK_MAX_MEMORY_TYPES*: uint32 = 32 - VK_MAX_MEMORY_HEAPS*: uint32 = 16 - VK_LOD_CLAMP_NONE*: float32 = 1000.0F - VK_REMAINING_MIP_LEVELS*: uint32 = not 0'u32 - VK_REMAINING_ARRAY_LAYERS*: uint32 = not 0'u32 - VK_REMAINING_3D_SLICES_EXT*: uint32 = not 0'u32 - VK_WHOLE_SIZE*: uint64 = not 0'u64 - VK_ATTACHMENT_UNUSED*: uint32 = not 0'u32 - VK_TRUE*: uint32 = 1 - VK_FALSE*: uint32 = 0 - VK_QUEUE_FAMILY_IGNORED*: uint32 = not 0'u32 - VK_QUEUE_FAMILY_EXTERNAL*: uint32 = not 1'u32 - VK_QUEUE_FAMILY_EXTERNAL_KHR* = VK_QUEUE_FAMILY_EXTERNAL - VK_QUEUE_FAMILY_FOREIGN_EXT*: uint32 = not 2'u32 - VK_SUBPASS_EXTERNAL*: uint32 = not 0'u32 - VK_MAX_DEVICE_GROUP_SIZE*: uint32 = 32 - VK_MAX_DEVICE_GROUP_SIZE_KHR* = VK_MAX_DEVICE_GROUP_SIZE - VK_MAX_DRIVER_NAME_SIZE*: uint32 = 256 - VK_MAX_DRIVER_NAME_SIZE_KHR* = VK_MAX_DRIVER_NAME_SIZE - VK_MAX_DRIVER_INFO_SIZE*: uint32 = 256 - VK_MAX_DRIVER_INFO_SIZE_KHR* = VK_MAX_DRIVER_INFO_SIZE - VK_SHADER_UNUSED_KHR*: uint32 = not 0'u32 - VK_SHADER_UNUSED_NV* = VK_SHADER_UNUSED_KHR - VK_MAX_GLOBAL_PRIORITY_SIZE_KHR*: uint32 = 16 - VK_MAX_GLOBAL_PRIORITY_SIZE_EXT* = VK_MAX_GLOBAL_PRIORITY_SIZE_KHR - VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT*: uint32 = 32 -type - ANativeWindow* = object - AHardwareBuffer* = object - CAMetalLayer* = object - MTLDevice_id* = object - MTLCommandQueue_id* = object - MTLBuffer_id* = object - MTLTexture_id* = object - MTLSharedEvent_id* = object - IOSurfaceRef* = object - VkSampleMask* = uint32 - VkBool32* = uint32 - VkFlags* = uint32 - VkFlags64* = uint64 - VkDeviceSize* = uint64 - VkDeviceAddress* = uint64 - VkInstance* = distinct VkHandle - VkPhysicalDevice* = distinct VkHandle - VkDevice* = distinct VkHandle - VkQueue* = distinct VkHandle - VkCommandBuffer* = distinct VkHandle - VkDeviceMemory* = distinct VkNonDispatchableHandle - VkCommandPool* = distinct VkNonDispatchableHandle - VkBuffer* = distinct VkNonDispatchableHandle - VkBufferView* = distinct VkNonDispatchableHandle - VkImage* = distinct VkNonDispatchableHandle - VkImageView* = distinct VkNonDispatchableHandle - VkShaderModule* = distinct VkNonDispatchableHandle - VkPipeline* = distinct VkNonDispatchableHandle - VkPipelineLayout* = distinct VkNonDispatchableHandle - VkSampler* = distinct VkNonDispatchableHandle - VkDescriptorSet* = distinct VkNonDispatchableHandle - VkDescriptorSetLayout* = distinct VkNonDispatchableHandle - VkDescriptorPool* = distinct VkNonDispatchableHandle - VkFence* = distinct VkNonDispatchableHandle - VkSemaphore* = distinct VkNonDispatchableHandle - VkEvent* = distinct VkNonDispatchableHandle - VkQueryPool* = distinct VkNonDispatchableHandle - VkFramebuffer* = distinct VkNonDispatchableHandle - VkRenderPass* = distinct VkNonDispatchableHandle - VkPipelineCache* = distinct VkNonDispatchableHandle - VkIndirectCommandsLayoutNV* = distinct VkNonDispatchableHandle - VkDescriptorUpdateTemplate* = distinct VkNonDispatchableHandle - VkSamplerYcbcrConversion* = distinct VkNonDispatchableHandle - VkValidationCacheEXT* = distinct VkNonDispatchableHandle - VkAccelerationStructureKHR* = distinct VkNonDispatchableHandle - VkAccelerationStructureNV* = distinct VkNonDispatchableHandle - VkPerformanceConfigurationINTEL* = distinct VkNonDispatchableHandle - VkBufferCollectionFUCHSIA* = distinct VkNonDispatchableHandle - VkDeferredOperationKHR* = distinct VkNonDispatchableHandle - VkPrivateDataSlot* = distinct VkNonDispatchableHandle - VkCuModuleNVX* = distinct VkNonDispatchableHandle - VkCuFunctionNVX* = distinct VkNonDispatchableHandle - VkOpticalFlowSessionNV* = distinct VkNonDispatchableHandle - VkMicromapEXT* = distinct VkNonDispatchableHandle - VkDisplayKHR* = distinct VkNonDispatchableHandle - VkDisplayModeKHR* = distinct VkNonDispatchableHandle - VkSurfaceKHR* = distinct VkNonDispatchableHandle - VkSwapchainKHR* = distinct VkNonDispatchableHandle - VkDebugReportCallbackEXT* = distinct VkNonDispatchableHandle - VkDebugUtilsMessengerEXT* = distinct VkNonDispatchableHandle - VkVideoSessionKHR* = distinct VkNonDispatchableHandle - VkVideoSessionParametersKHR* = distinct VkNonDispatchableHandle - VkSemaphoreSciSyncPoolNV* = distinct VkNonDispatchableHandle - VkRemoteAddressNV* = pointer -proc `$`*(handle: VkInstance): string = "VkInstance(" & $(uint(handle)) & ")" -proc valid*(handle: VkInstance): bool = uint(handle) != 0 -proc reset*(handle: var VkInstance) = handle = VkInstance(0) -proc `==`*(a, b: VkInstance): bool = uint(a) == uint(b) -proc `$`*(handle: VkPhysicalDevice): string = "VkPhysicalDevice(" & $(uint(handle)) & ")" -proc valid*(handle: VkPhysicalDevice): bool = uint(handle) != 0 -proc reset*(handle: var VkPhysicalDevice) = handle = VkPhysicalDevice(0) -proc `==`*(a, b: VkPhysicalDevice): bool = uint(a) == uint(b) -proc `$`*(handle: VkDevice): string = "VkDevice(" & $(uint(handle)) & ")" -proc valid*(handle: VkDevice): bool = uint(handle) != 0 -proc reset*(handle: var VkDevice) = handle = VkDevice(0) -proc `==`*(a, b: VkDevice): bool = uint(a) == uint(b) -proc `$`*(handle: VkQueue): string = "VkQueue(" & $(uint(handle)) & ")" -proc valid*(handle: VkQueue): bool = uint(handle) != 0 -proc reset*(handle: var VkQueue) = handle = VkQueue(0) -proc `==`*(a, b: VkQueue): bool = uint(a) == uint(b) -proc `$`*(handle: VkCommandBuffer): string = "VkCommandBuffer(" & $(uint(handle)) & ")" -proc valid*(handle: VkCommandBuffer): bool = uint(handle) != 0 -proc reset*(handle: var VkCommandBuffer) = handle = VkCommandBuffer(0) -proc `==`*(a, b: VkCommandBuffer): bool = uint(a) == uint(b) -proc `$`*(handle: VkDeviceMemory): string = "VkDeviceMemory(" & $(uint(handle)) & ")" -proc valid*(handle: VkDeviceMemory): bool = uint(handle) != 0 -proc reset*(handle: var VkDeviceMemory) = handle = VkDeviceMemory(0) -proc `==`*(a, b: VkDeviceMemory): bool = uint(a) == uint(b) -proc `$`*(handle: VkCommandPool): string = "VkCommandPool(" & $(uint(handle)) & ")" -proc valid*(handle: VkCommandPool): bool = uint(handle) != 0 -proc reset*(handle: var VkCommandPool) = handle = VkCommandPool(0) -proc `==`*(a, b: VkCommandPool): bool = uint(a) == uint(b) -proc `$`*(handle: VkBuffer): string = "VkBuffer(" & $(uint(handle)) & ")" -proc valid*(handle: VkBuffer): bool = uint(handle) != 0 -proc reset*(handle: var VkBuffer) = handle = VkBuffer(0) -proc `==`*(a, b: VkBuffer): bool = uint(a) == uint(b) -proc `$`*(handle: VkBufferView): string = "VkBufferView(" & $(uint(handle)) & ")" -proc valid*(handle: VkBufferView): bool = uint(handle) != 0 -proc reset*(handle: var VkBufferView) = handle = VkBufferView(0) -proc `==`*(a, b: VkBufferView): bool = uint(a) == uint(b) -proc `$`*(handle: VkImage): string = "VkImage(" & $(uint(handle)) & ")" -proc valid*(handle: VkImage): bool = uint(handle) != 0 -proc reset*(handle: var VkImage) = handle = VkImage(0) -proc `==`*(a, b: VkImage): bool = uint(a) == uint(b) -proc `$`*(handle: VkImageView): string = "VkImageView(" & $(uint(handle)) & ")" -proc valid*(handle: VkImageView): bool = uint(handle) != 0 -proc reset*(handle: var VkImageView) = handle = VkImageView(0) -proc `==`*(a, b: VkImageView): bool = uint(a) == uint(b) -proc `$`*(handle: VkShaderModule): string = "VkShaderModule(" & $(uint(handle)) & ")" -proc valid*(handle: VkShaderModule): bool = uint(handle) != 0 -proc reset*(handle: var VkShaderModule) = handle = VkShaderModule(0) -proc `==`*(a, b: VkShaderModule): bool = uint(a) == uint(b) -proc `$`*(handle: VkPipeline): string = "VkPipeline(" & $(uint(handle)) & ")" -proc valid*(handle: VkPipeline): bool = uint(handle) != 0 -proc reset*(handle: var VkPipeline) = handle = VkPipeline(0) -proc `==`*(a, b: VkPipeline): bool = uint(a) == uint(b) -proc `$`*(handle: VkPipelineLayout): string = "VkPipelineLayout(" & $(uint(handle)) & ")" -proc valid*(handle: VkPipelineLayout): bool = uint(handle) != 0 -proc reset*(handle: var VkPipelineLayout) = handle = VkPipelineLayout(0) -proc `==`*(a, b: VkPipelineLayout): bool = uint(a) == uint(b) -proc `$`*(handle: VkSampler): string = "VkSampler(" & $(uint(handle)) & ")" -proc valid*(handle: VkSampler): bool = uint(handle) != 0 -proc reset*(handle: var VkSampler) = handle = VkSampler(0) -proc `==`*(a, b: VkSampler): bool = uint(a) == uint(b) -proc `$`*(handle: VkDescriptorSet): string = "VkDescriptorSet(" & $(uint(handle)) & ")" -proc valid*(handle: VkDescriptorSet): bool = uint(handle) != 0 -proc reset*(handle: var VkDescriptorSet) = handle = VkDescriptorSet(0) -proc `==`*(a, b: VkDescriptorSet): bool = uint(a) == uint(b) -proc `$`*(handle: VkDescriptorSetLayout): string = "VkDescriptorSetLayout(" & $(uint(handle)) & ")" -proc valid*(handle: VkDescriptorSetLayout): bool = uint(handle) != 0 -proc reset*(handle: var VkDescriptorSetLayout) = handle = VkDescriptorSetLayout(0) -proc `==`*(a, b: VkDescriptorSetLayout): bool = uint(a) == uint(b) -proc `$`*(handle: VkDescriptorPool): string = "VkDescriptorPool(" & $(uint(handle)) & ")" -proc valid*(handle: VkDescriptorPool): bool = uint(handle) != 0 -proc reset*(handle: var VkDescriptorPool) = handle = VkDescriptorPool(0) -proc `==`*(a, b: VkDescriptorPool): bool = uint(a) == uint(b) -proc `$`*(handle: VkFence): string = "VkFence(" & $(uint(handle)) & ")" -proc valid*(handle: VkFence): bool = uint(handle) != 0 -proc reset*(handle: var VkFence) = handle = VkFence(0) -proc `==`*(a, b: VkFence): bool = uint(a) == uint(b) -proc `$`*(handle: VkSemaphore): string = "VkSemaphore(" & $(uint(handle)) & ")" -proc valid*(handle: VkSemaphore): bool = uint(handle) != 0 -proc reset*(handle: var VkSemaphore) = handle = VkSemaphore(0) -proc `==`*(a, b: VkSemaphore): bool = uint(a) == uint(b) -proc `$`*(handle: VkEvent): string = "VkEvent(" & $(uint(handle)) & ")" -proc valid*(handle: VkEvent): bool = uint(handle) != 0 -proc reset*(handle: var VkEvent) = handle = VkEvent(0) -proc `==`*(a, b: VkEvent): bool = uint(a) == uint(b) -proc `$`*(handle: VkQueryPool): string = "VkQueryPool(" & $(uint(handle)) & ")" -proc valid*(handle: VkQueryPool): bool = uint(handle) != 0 -proc reset*(handle: var VkQueryPool) = handle = VkQueryPool(0) -proc `==`*(a, b: VkQueryPool): bool = uint(a) == uint(b) -proc `$`*(handle: VkFramebuffer): string = "VkFramebuffer(" & $(uint(handle)) & ")" -proc valid*(handle: VkFramebuffer): bool = uint(handle) != 0 -proc reset*(handle: var VkFramebuffer) = handle = VkFramebuffer(0) -proc `==`*(a, b: VkFramebuffer): bool = uint(a) == uint(b) -proc `$`*(handle: VkRenderPass): string = "VkRenderPass(" & $(uint(handle)) & ")" -proc valid*(handle: VkRenderPass): bool = uint(handle) != 0 -proc reset*(handle: var VkRenderPass) = handle = VkRenderPass(0) -proc `==`*(a, b: VkRenderPass): bool = uint(a) == uint(b) -proc `$`*(handle: VkPipelineCache): string = "VkPipelineCache(" & $(uint(handle)) & ")" -proc valid*(handle: VkPipelineCache): bool = uint(handle) != 0 -proc reset*(handle: var VkPipelineCache) = handle = VkPipelineCache(0) -proc `==`*(a, b: VkPipelineCache): bool = uint(a) == uint(b) -proc `$`*(handle: VkIndirectCommandsLayoutNV): string = "VkIndirectCommandsLayoutNV(" & $(uint(handle)) & ")" -proc valid*(handle: VkIndirectCommandsLayoutNV): bool = uint(handle) != 0 -proc reset*(handle: var VkIndirectCommandsLayoutNV) = handle = VkIndirectCommandsLayoutNV(0) -proc `==`*(a, b: VkIndirectCommandsLayoutNV): bool = uint(a) == uint(b) -proc `$`*(handle: VkDescriptorUpdateTemplate): string = "VkDescriptorUpdateTemplate(" & $(uint(handle)) & ")" -proc valid*(handle: VkDescriptorUpdateTemplate): bool = uint(handle) != 0 -proc reset*(handle: var VkDescriptorUpdateTemplate) = handle = VkDescriptorUpdateTemplate(0) -proc `==`*(a, b: VkDescriptorUpdateTemplate): bool = uint(a) == uint(b) -proc `$`*(handle: VkSamplerYcbcrConversion): string = "VkSamplerYcbcrConversion(" & $(uint(handle)) & ")" -proc valid*(handle: VkSamplerYcbcrConversion): bool = uint(handle) != 0 -proc reset*(handle: var VkSamplerYcbcrConversion) = handle = VkSamplerYcbcrConversion(0) -proc `==`*(a, b: VkSamplerYcbcrConversion): bool = uint(a) == uint(b) -proc `$`*(handle: VkValidationCacheEXT): string = "VkValidationCacheEXT(" & $(uint(handle)) & ")" -proc valid*(handle: VkValidationCacheEXT): bool = uint(handle) != 0 -proc reset*(handle: var VkValidationCacheEXT) = handle = VkValidationCacheEXT(0) -proc `==`*(a, b: VkValidationCacheEXT): bool = uint(a) == uint(b) -proc `$`*(handle: VkAccelerationStructureKHR): string = "VkAccelerationStructureKHR(" & $(uint(handle)) & ")" -proc valid*(handle: VkAccelerationStructureKHR): bool = uint(handle) != 0 -proc reset*(handle: var VkAccelerationStructureKHR) = handle = VkAccelerationStructureKHR(0) -proc `==`*(a, b: VkAccelerationStructureKHR): bool = uint(a) == uint(b) -proc `$`*(handle: VkAccelerationStructureNV): string = "VkAccelerationStructureNV(" & $(uint(handle)) & ")" -proc valid*(handle: VkAccelerationStructureNV): bool = uint(handle) != 0 -proc reset*(handle: var VkAccelerationStructureNV) = handle = VkAccelerationStructureNV(0) -proc `==`*(a, b: VkAccelerationStructureNV): bool = uint(a) == uint(b) -proc `$`*(handle: VkPerformanceConfigurationINTEL): string = "VkPerformanceConfigurationINTEL(" & $(uint(handle)) & ")" -proc valid*(handle: VkPerformanceConfigurationINTEL): bool = uint(handle) != 0 -proc reset*(handle: var VkPerformanceConfigurationINTEL) = handle = VkPerformanceConfigurationINTEL(0) -proc `==`*(a, b: VkPerformanceConfigurationINTEL): bool = uint(a) == uint(b) -proc `$`*(handle: VkBufferCollectionFUCHSIA): string = "VkBufferCollectionFUCHSIA(" & $(uint(handle)) & ")" -proc valid*(handle: VkBufferCollectionFUCHSIA): bool = uint(handle) != 0 -proc reset*(handle: var VkBufferCollectionFUCHSIA) = handle = VkBufferCollectionFUCHSIA(0) -proc `==`*(a, b: VkBufferCollectionFUCHSIA): bool = uint(a) == uint(b) -proc `$`*(handle: VkDeferredOperationKHR): string = "VkDeferredOperationKHR(" & $(uint(handle)) & ")" -proc valid*(handle: VkDeferredOperationKHR): bool = uint(handle) != 0 -proc reset*(handle: var VkDeferredOperationKHR) = handle = VkDeferredOperationKHR(0) -proc `==`*(a, b: VkDeferredOperationKHR): bool = uint(a) == uint(b) -proc `$`*(handle: VkPrivateDataSlot): string = "VkPrivateDataSlot(" & $(uint(handle)) & ")" -proc valid*(handle: VkPrivateDataSlot): bool = uint(handle) != 0 -proc reset*(handle: var VkPrivateDataSlot) = handle = VkPrivateDataSlot(0) -proc `==`*(a, b: VkPrivateDataSlot): bool = uint(a) == uint(b) -proc `$`*(handle: VkCuModuleNVX): string = "VkCuModuleNVX(" & $(uint(handle)) & ")" -proc valid*(handle: VkCuModuleNVX): bool = uint(handle) != 0 -proc reset*(handle: var VkCuModuleNVX) = handle = VkCuModuleNVX(0) -proc `==`*(a, b: VkCuModuleNVX): bool = uint(a) == uint(b) -proc `$`*(handle: VkCuFunctionNVX): string = "VkCuFunctionNVX(" & $(uint(handle)) & ")" -proc valid*(handle: VkCuFunctionNVX): bool = uint(handle) != 0 -proc reset*(handle: var VkCuFunctionNVX) = handle = VkCuFunctionNVX(0) -proc `==`*(a, b: VkCuFunctionNVX): bool = uint(a) == uint(b) -proc `$`*(handle: VkOpticalFlowSessionNV): string = "VkOpticalFlowSessionNV(" & $(uint(handle)) & ")" -proc valid*(handle: VkOpticalFlowSessionNV): bool = uint(handle) != 0 -proc reset*(handle: var VkOpticalFlowSessionNV) = handle = VkOpticalFlowSessionNV(0) -proc `==`*(a, b: VkOpticalFlowSessionNV): bool = uint(a) == uint(b) -proc `$`*(handle: VkMicromapEXT): string = "VkMicromapEXT(" & $(uint(handle)) & ")" -proc valid*(handle: VkMicromapEXT): bool = uint(handle) != 0 -proc reset*(handle: var VkMicromapEXT) = handle = VkMicromapEXT(0) -proc `==`*(a, b: VkMicromapEXT): bool = uint(a) == uint(b) -proc `$`*(handle: VkDisplayKHR): string = "VkDisplayKHR(" & $(uint(handle)) & ")" -proc valid*(handle: VkDisplayKHR): bool = uint(handle) != 0 -proc reset*(handle: var VkDisplayKHR) = handle = VkDisplayKHR(0) -proc `==`*(a, b: VkDisplayKHR): bool = uint(a) == uint(b) -proc `$`*(handle: VkDisplayModeKHR): string = "VkDisplayModeKHR(" & $(uint(handle)) & ")" -proc valid*(handle: VkDisplayModeKHR): bool = uint(handle) != 0 -proc reset*(handle: var VkDisplayModeKHR) = handle = VkDisplayModeKHR(0) -proc `==`*(a, b: VkDisplayModeKHR): bool = uint(a) == uint(b) -proc `$`*(handle: VkSurfaceKHR): string = "VkSurfaceKHR(" & $(uint(handle)) & ")" -proc valid*(handle: VkSurfaceKHR): bool = uint(handle) != 0 -proc reset*(handle: var VkSurfaceKHR) = handle = VkSurfaceKHR(0) -proc `==`*(a, b: VkSurfaceKHR): bool = uint(a) == uint(b) -proc `$`*(handle: VkSwapchainKHR): string = "VkSwapchainKHR(" & $(uint(handle)) & ")" -proc valid*(handle: VkSwapchainKHR): bool = uint(handle) != 0 -proc reset*(handle: var VkSwapchainKHR) = handle = VkSwapchainKHR(0) -proc `==`*(a, b: VkSwapchainKHR): bool = uint(a) == uint(b) -proc `$`*(handle: VkDebugReportCallbackEXT): string = "VkDebugReportCallbackEXT(" & $(uint(handle)) & ")" -proc valid*(handle: VkDebugReportCallbackEXT): bool = uint(handle) != 0 -proc reset*(handle: var VkDebugReportCallbackEXT) = handle = VkDebugReportCallbackEXT(0) -proc `==`*(a, b: VkDebugReportCallbackEXT): bool = uint(a) == uint(b) -proc `$`*(handle: VkDebugUtilsMessengerEXT): string = "VkDebugUtilsMessengerEXT(" & $(uint(handle)) & ")" -proc valid*(handle: VkDebugUtilsMessengerEXT): bool = uint(handle) != 0 -proc reset*(handle: var VkDebugUtilsMessengerEXT) = handle = VkDebugUtilsMessengerEXT(0) -proc `==`*(a, b: VkDebugUtilsMessengerEXT): bool = uint(a) == uint(b) -proc `$`*(handle: VkVideoSessionKHR): string = "VkVideoSessionKHR(" & $(uint(handle)) & ")" -proc valid*(handle: VkVideoSessionKHR): bool = uint(handle) != 0 -proc reset*(handle: var VkVideoSessionKHR) = handle = VkVideoSessionKHR(0) -proc `==`*(a, b: VkVideoSessionKHR): bool = uint(a) == uint(b) -proc `$`*(handle: VkVideoSessionParametersKHR): string = "VkVideoSessionParametersKHR(" & $(uint(handle)) & ")" -proc valid*(handle: VkVideoSessionParametersKHR): bool = uint(handle) != 0 -proc reset*(handle: var VkVideoSessionParametersKHR) = handle = VkVideoSessionParametersKHR(0) -proc `==`*(a, b: VkVideoSessionParametersKHR): bool = uint(a) == uint(b) -proc `$`*(handle: VkSemaphoreSciSyncPoolNV): string = "VkSemaphoreSciSyncPoolNV(" & $(uint(handle)) & ")" -proc valid*(handle: VkSemaphoreSciSyncPoolNV): bool = uint(handle) != 0 -proc reset*(handle: var VkSemaphoreSciSyncPoolNV) = handle = VkSemaphoreSciSyncPoolNV(0) -proc `==`*(a, b: VkSemaphoreSciSyncPoolNV): bool = uint(a) == uint(b) -type - VkFramebufferCreateFlags* = distinct VkFlags - VkQueryPoolCreateFlags* = distinct VkFlags - VkRenderPassCreateFlags* = distinct VkFlags - VkSamplerCreateFlags* = distinct VkFlags - VkPipelineLayoutCreateFlags* = distinct VkFlags - VkPipelineCacheCreateFlags* = distinct VkFlags - VkPipelineDepthStencilStateCreateFlags* = distinct VkFlags - VkPipelineDynamicStateCreateFlags* = distinct VkFlags - VkPipelineColorBlendStateCreateFlags* = distinct VkFlags - VkPipelineMultisampleStateCreateFlags* = distinct VkFlags - VkPipelineRasterizationStateCreateFlags* = distinct VkFlags - VkPipelineViewportStateCreateFlags* = distinct VkFlags - VkPipelineTessellationStateCreateFlags* = distinct VkFlags - VkPipelineInputAssemblyStateCreateFlags* = distinct VkFlags - VkPipelineVertexInputStateCreateFlags* = distinct VkFlags - VkPipelineShaderStageCreateFlags* = distinct VkFlags - VkDescriptorSetLayoutCreateFlags* = distinct VkFlags - VkBufferViewCreateFlags* = distinct VkFlags - VkInstanceCreateFlags* = distinct VkFlags - VkDeviceCreateFlags* = distinct VkFlags - VkDeviceQueueCreateFlags* = distinct VkFlags - VkQueueFlags* = distinct VkFlags - VkMemoryPropertyFlags* = distinct VkFlags - VkMemoryHeapFlags* = distinct VkFlags - VkAccessFlags* = distinct VkFlags - VkBufferUsageFlags* = distinct VkFlags - VkBufferCreateFlags* = distinct VkFlags - VkShaderStageFlags* = distinct VkFlags - VkImageUsageFlags* = distinct VkFlags - VkImageCreateFlags* = distinct VkFlags - VkImageViewCreateFlags* = distinct VkFlags - VkPipelineCreateFlags* = distinct VkFlags - VkColorComponentFlags* = distinct VkFlags - VkFenceCreateFlags* = distinct VkFlags - VkSemaphoreCreateFlags* = distinct VkFlags - VkFormatFeatureFlags* = distinct VkFlags - VkQueryControlFlags* = distinct VkFlags - VkQueryResultFlags* = distinct VkFlags - VkShaderModuleCreateFlags* = distinct VkFlags - VkEventCreateFlags* = distinct VkFlags - VkCommandPoolCreateFlags* = distinct VkFlags - VkCommandPoolResetFlags* = distinct VkFlags - VkCommandBufferResetFlags* = distinct VkFlags - VkCommandBufferUsageFlags* = distinct VkFlags - VkQueryPipelineStatisticFlags* = distinct VkFlags - VkMemoryMapFlags* = distinct VkFlags - VkImageAspectFlags* = distinct VkFlags - VkSparseMemoryBindFlags* = distinct VkFlags - VkSparseImageFormatFlags* = distinct VkFlags - VkSubpassDescriptionFlags* = distinct VkFlags - VkPipelineStageFlags* = distinct VkFlags - VkSampleCountFlags* = distinct VkFlags - VkAttachmentDescriptionFlags* = distinct VkFlags - VkStencilFaceFlags* = distinct VkFlags - VkCullModeFlags* = distinct VkFlags - VkDescriptorPoolCreateFlags* = distinct VkFlags - VkDescriptorPoolResetFlags* = distinct VkFlags - VkDependencyFlags* = distinct VkFlags - VkSubgroupFeatureFlags* = distinct VkFlags - VkIndirectCommandsLayoutUsageFlagsNV* = distinct VkFlags - VkIndirectStateFlagsNV* = distinct VkFlags - VkGeometryFlagsKHR* = distinct VkFlags - VkGeometryInstanceFlagsKHR* = distinct VkFlags - VkBuildAccelerationStructureFlagsKHR* = distinct VkFlags - VkPrivateDataSlotCreateFlags* = distinct VkFlags - VkAccelerationStructureCreateFlagsKHR* = distinct VkFlags - VkDescriptorUpdateTemplateCreateFlags* = distinct VkFlags - VkPipelineCreationFeedbackFlags* = distinct VkFlags - VkPerformanceCounterDescriptionFlagsKHR* = distinct VkFlags - VkAcquireProfilingLockFlagsKHR* = distinct VkFlags - VkSemaphoreWaitFlags* = distinct VkFlags - VkPipelineCompilerControlFlagsAMD* = distinct VkFlags - VkShaderCorePropertiesFlagsAMD* = distinct VkFlags - VkDeviceDiagnosticsConfigFlagsNV* = distinct VkFlags - VkRefreshObjectFlagsKHR* = distinct VkFlags - VkAccessFlags2* = distinct VkFlags - VkPipelineStageFlags2* = distinct VkFlags - VkAccelerationStructureMotionInfoFlagsNV* = distinct VkFlags - VkAccelerationStructureMotionInstanceFlagsNV* = distinct VkFlags - VkFormatFeatureFlags2* = distinct VkFlags - VkRenderingFlags* = distinct VkFlags - VkMemoryDecompressionMethodFlagsNV* = distinct VkFlags - VkBuildMicromapFlagsEXT* = distinct VkFlags - VkMicromapCreateFlagsEXT* = distinct VkFlags - VkDirectDriverLoadingFlagsLUNARG* = distinct VkFlags - VkCompositeAlphaFlagsKHR* = distinct VkFlags - VkDisplayPlaneAlphaFlagsKHR* = distinct VkFlags - VkSurfaceTransformFlagsKHR* = distinct VkFlags - VkSwapchainCreateFlagsKHR* = distinct VkFlags - VkDisplayModeCreateFlagsKHR* = distinct VkFlags - VkDisplaySurfaceCreateFlagsKHR* = distinct VkFlags - VkAndroidSurfaceCreateFlagsKHR* = distinct VkFlags - VkViSurfaceCreateFlagsNN* = distinct VkFlags - VkWaylandSurfaceCreateFlagsKHR* = distinct VkFlags - VkWin32SurfaceCreateFlagsKHR* = distinct VkFlags - VkXlibSurfaceCreateFlagsKHR* = distinct VkFlags - VkXcbSurfaceCreateFlagsKHR* = distinct VkFlags - VkDirectFBSurfaceCreateFlagsEXT* = distinct VkFlags - VkIOSSurfaceCreateFlagsMVK* = distinct VkFlags - VkMacOSSurfaceCreateFlagsMVK* = distinct VkFlags - VkMetalSurfaceCreateFlagsEXT* = distinct VkFlags - VkImagePipeSurfaceCreateFlagsFUCHSIA* = distinct VkFlags - VkStreamDescriptorSurfaceCreateFlagsGGP* = distinct VkFlags - VkHeadlessSurfaceCreateFlagsEXT* = distinct VkFlags - VkScreenSurfaceCreateFlagsQNX* = distinct VkFlags - VkPeerMemoryFeatureFlags* = distinct VkFlags - VkMemoryAllocateFlags* = distinct VkFlags - VkDeviceGroupPresentModeFlagsKHR* = distinct VkFlags - VkDebugReportFlagsEXT* = distinct VkFlags - VkCommandPoolTrimFlags* = distinct VkFlags - VkExternalMemoryHandleTypeFlagsNV* = distinct VkFlags - VkExternalMemoryFeatureFlagsNV* = distinct VkFlags - VkExternalMemoryHandleTypeFlags* = distinct VkFlags - VkExternalMemoryFeatureFlags* = distinct VkFlags - VkExternalSemaphoreHandleTypeFlags* = distinct VkFlags - VkExternalSemaphoreFeatureFlags* = distinct VkFlags - VkSemaphoreImportFlags* = distinct VkFlags - VkExternalFenceHandleTypeFlags* = distinct VkFlags - VkExternalFenceFeatureFlags* = distinct VkFlags - VkFenceImportFlags* = distinct VkFlags - VkSurfaceCounterFlagsEXT* = distinct VkFlags - VkPipelineViewportSwizzleStateCreateFlagsNV* = distinct VkFlags - VkPipelineDiscardRectangleStateCreateFlagsEXT* = distinct VkFlags - VkPipelineCoverageToColorStateCreateFlagsNV* = distinct VkFlags - VkPipelineCoverageModulationStateCreateFlagsNV* = distinct VkFlags - VkPipelineCoverageReductionStateCreateFlagsNV* = distinct VkFlags - VkValidationCacheCreateFlagsEXT* = distinct VkFlags - VkDebugUtilsMessageSeverityFlagsEXT* = distinct VkFlags - VkDebugUtilsMessageTypeFlagsEXT* = distinct VkFlags - VkDebugUtilsMessengerCreateFlagsEXT* = distinct VkFlags - VkDebugUtilsMessengerCallbackDataFlagsEXT* = distinct VkFlags - VkDeviceMemoryReportFlagsEXT* = distinct VkFlags - VkPipelineRasterizationConservativeStateCreateFlagsEXT* = distinct VkFlags - VkDescriptorBindingFlags* = distinct VkFlags - VkConditionalRenderingFlagsEXT* = distinct VkFlags - VkResolveModeFlags* = distinct VkFlags - VkPipelineRasterizationStateStreamCreateFlagsEXT* = distinct VkFlags - VkPipelineRasterizationDepthClipStateCreateFlagsEXT* = distinct VkFlags - VkSwapchainImageUsageFlagsANDROID* = distinct VkFlags - VkToolPurposeFlags* = distinct VkFlags - VkSubmitFlags* = distinct VkFlags - VkImageFormatConstraintsFlagsFUCHSIA* = distinct VkFlags - VkImageConstraintsInfoFlagsFUCHSIA* = distinct VkFlags - VkGraphicsPipelineLibraryFlagsEXT* = distinct VkFlags - VkImageCompressionFlagsEXT* = distinct VkFlags - VkImageCompressionFixedRateFlagsEXT* = distinct VkFlags - VkExportMetalObjectTypeFlagsEXT* = distinct VkFlags - VkDeviceAddressBindingFlagsEXT* = distinct VkFlags - VkOpticalFlowGridSizeFlagsNV* = distinct VkFlags - VkOpticalFlowUsageFlagsNV* = distinct VkFlags - VkOpticalFlowSessionCreateFlagsNV* = distinct VkFlags - VkOpticalFlowExecuteFlagsNV* = distinct VkFlags - VkPresentScalingFlagsEXT* = distinct VkFlags - VkPresentGravityFlagsEXT* = distinct VkFlags - VkVideoCodecOperationFlagsKHR* = distinct VkFlags - VkVideoCapabilityFlagsKHR* = distinct VkFlags - VkVideoSessionCreateFlagsKHR* = distinct VkFlags - VkVideoSessionParametersCreateFlagsKHR* = distinct VkFlags - VkVideoBeginCodingFlagsKHR* = distinct VkFlags - VkVideoEndCodingFlagsKHR* = distinct VkFlags - VkVideoCodingControlFlagsKHR* = distinct VkFlags - VkVideoDecodeUsageFlagsKHR* = distinct VkFlags - VkVideoDecodeCapabilityFlagsKHR* = distinct VkFlags - VkVideoDecodeFlagsKHR* = distinct VkFlags - VkVideoDecodeH264PictureLayoutFlagsKHR* = distinct VkFlags - VkVideoEncodeFlagsKHR* = distinct VkFlags - VkVideoEncodeUsageFlagsKHR* = distinct VkFlags - VkVideoEncodeContentFlagsKHR* = distinct VkFlags - VkVideoEncodeCapabilityFlagsKHR* = distinct VkFlags - VkVideoEncodeRateControlFlagsKHR* = distinct VkFlags - VkVideoEncodeRateControlModeFlagsKHR* = distinct VkFlags - VkVideoChromaSubsamplingFlagsKHR* = distinct VkFlags - VkVideoComponentBitDepthFlagsKHR* = distinct VkFlags - VkVideoEncodeH264CapabilityFlagsEXT* = distinct VkFlags - VkVideoEncodeH264InputModeFlagsEXT* = distinct VkFlags - VkVideoEncodeH264OutputModeFlagsEXT* = distinct VkFlags - VkVideoEncodeH265CapabilityFlagsEXT* = distinct VkFlags - VkVideoEncodeH265InputModeFlagsEXT* = distinct VkFlags - VkVideoEncodeH265OutputModeFlagsEXT* = distinct VkFlags - VkVideoEncodeH265CtbSizeFlagsEXT* = distinct VkFlags - VkVideoEncodeH265TransformBlockSizeFlagsEXT* = distinct VkFlags -let vkGetInstanceProcAddr = cast[proc(instance: VkInstance, name: cstring): pointer {.stdcall.}](checkedSymAddr(vulkanLib, "vkGetInstanceProcAddr")) -type - VkImageLayout* {.size: sizeof(cint).} = enum - VK_IMAGE_LAYOUT_UNDEFINED = 0 - VK_IMAGE_LAYOUT_GENERAL = 1 - VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2 - VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3 - VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4 - VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5 - VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6 - VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7 - VK_IMAGE_LAYOUT_PREINITIALIZED = 8 - VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002 - VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR = 1000024000 - VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR = 1000024001 - VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR = 1000024002 - VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000 - VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000 - VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001 - VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = 1000164003 - VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000 - VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL = 1000241000 - VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL = 1000241001 - VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL = 1000241002 - VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL = 1000241003 - VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR = 1000299000 - VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR = 1000299001 - VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR = 1000299002 - VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL = 1000314000 - VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL = 1000314001 - VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT = 1000339000 - VkAttachmentLoadOp* {.size: sizeof(cint).} = enum - VK_ATTACHMENT_LOAD_OP_LOAD = 0 - VK_ATTACHMENT_LOAD_OP_CLEAR = 1 - VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2 - VK_ATTACHMENT_LOAD_OP_NONE_EXT = 1000400000 - VkAttachmentStoreOp* {.size: sizeof(cint).} = enum - VK_ATTACHMENT_STORE_OP_STORE = 0 - VK_ATTACHMENT_STORE_OP_DONT_CARE = 1 - VK_ATTACHMENT_STORE_OP_NONE = 1000301000 - VkImageType* {.size: sizeof(cint).} = enum - VK_IMAGE_TYPE_1D = 0 - VK_IMAGE_TYPE_2D = 1 - VK_IMAGE_TYPE_3D = 2 - VkImageTiling* {.size: sizeof(cint).} = enum - VK_IMAGE_TILING_OPTIMAL = 0 - VK_IMAGE_TILING_LINEAR = 1 - VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000 - VkImageViewType* {.size: sizeof(cint).} = enum - VK_IMAGE_VIEW_TYPE_1D = 0 - VK_IMAGE_VIEW_TYPE_2D = 1 - VK_IMAGE_VIEW_TYPE_3D = 2 - VK_IMAGE_VIEW_TYPE_CUBE = 3 - VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4 - VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5 - VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6 - VkCommandBufferLevel* {.size: sizeof(cint).} = enum - VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0 - VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1 - VkComponentSwizzle* {.size: sizeof(cint).} = enum - VK_COMPONENT_SWIZZLE_IDENTITY = 0 - VK_COMPONENT_SWIZZLE_ZERO = 1 - VK_COMPONENT_SWIZZLE_ONE = 2 - VK_COMPONENT_SWIZZLE_R = 3 - VK_COMPONENT_SWIZZLE_G = 4 - VK_COMPONENT_SWIZZLE_B = 5 - VK_COMPONENT_SWIZZLE_A = 6 - VkDescriptorType* {.size: sizeof(cint).} = enum - VK_DESCRIPTOR_TYPE_SAMPLER = 0 - VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1 - VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2 - VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3 - VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4 - VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5 - VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6 - VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7 - VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8 - VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9 - VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10 - VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK = 1000138000 - VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000 - VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000 - VK_DESCRIPTOR_TYPE_MUTABLE_EXT = 1000351000 - VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM = 1000440000 - VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM = 1000440001 - VkQueryType* {.size: sizeof(cint).} = enum - VK_QUERY_TYPE_OCCLUSION = 0 - VK_QUERY_TYPE_PIPELINE_STATISTICS = 1 - VK_QUERY_TYPE_TIMESTAMP = 2 - VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR = 1000023000 - VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004 - VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000 - VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = 1000150000 - VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR = 1000150001 - VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000 - VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000 - VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR = 1000299000 - VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT = 1000328000 - VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT = 1000382000 - VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR = 1000386000 - VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR = 1000386001 - VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT = 1000396000 - VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT = 1000396001 - VkBorderColor* {.size: sizeof(cint).} = enum - VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0 - VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1 - VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2 - VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3 - VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4 - VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5 - VK_BORDER_COLOR_FLOAT_CUSTOM_EXT = 1000287003 - VK_BORDER_COLOR_INT_CUSTOM_EXT = 1000287004 - VkPipelineBindPoint* {.size: sizeof(cint).} = enum - VK_PIPELINE_BIND_POINT_GRAPHICS = 0 - VK_PIPELINE_BIND_POINT_COMPUTE = 1 - VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR = 1000165000 - VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI = 1000369003 - VkPipelineCacheHeaderVersion* {.size: sizeof(cint).} = enum - VK_PIPELINE_CACHE_HEADER_VERSION_ONE_ENUM = 1 - VK_PIPELINE_CACHE_HEADER_VERSION_SAFETY_CRITICAL_ONE_ENUM = 1000298001 - VkPipelineCacheCreateFlagBits* {.size: sizeof(cint).} = enum - VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT = 0b00000000000000000000000000000001 - VK_PIPELINE_CACHE_CREATE_RESERVED_1_BIT_EXT = 0b00000000000000000000000000000010 - VK_PIPELINE_CACHE_CREATE_USE_APPLICATION_STORAGE_BIT = 0b00000000000000000000000000000100 -func toBits*(flags: openArray[VkPipelineCacheCreateFlagBits]): VkPipelineCacheCreateFlags = - for flag in flags: - result = VkPipelineCacheCreateFlags(uint(result) or uint(flag)) -func toEnums*(number: VkPipelineCacheCreateFlags): seq[VkPipelineCacheCreateFlagBits] = - for value in VkPipelineCacheCreateFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkPipelineCacheCreateFlags): bool = cint(a) == cint(b) -type - VkPrimitiveTopology* {.size: sizeof(cint).} = enum - VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0 - VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1 - VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2 - VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3 - VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4 - VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5 - VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6 - VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7 - VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8 - VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9 - VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10 - VkSharingMode* {.size: sizeof(cint).} = enum - VK_SHARING_MODE_EXCLUSIVE = 0 - VK_SHARING_MODE_CONCURRENT = 1 - VkIndexType* {.size: sizeof(cint).} = enum - VK_INDEX_TYPE_UINT16 = 0 - VK_INDEX_TYPE_UINT32 = 1 - VK_INDEX_TYPE_NONE_KHR = 1000165000 - VK_INDEX_TYPE_UINT8_EXT = 1000265000 - VkFilter* {.size: sizeof(cint).} = enum - VK_FILTER_NEAREST = 0 - VK_FILTER_LINEAR = 1 - VK_FILTER_CUBIC_EXT = 1000015000 - VkSamplerMipmapMode* {.size: sizeof(cint).} = enum - VK_SAMPLER_MIPMAP_MODE_NEAREST = 0 - VK_SAMPLER_MIPMAP_MODE_LINEAR = 1 - VkSamplerAddressMode* {.size: sizeof(cint).} = enum - VK_SAMPLER_ADDRESS_MODE_REPEAT = 0 - VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1 - VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2 - VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3 - VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4 - VkCompareOp* {.size: sizeof(cint).} = enum - VK_COMPARE_OP_NEVER = 0 - VK_COMPARE_OP_LESS = 1 - VK_COMPARE_OP_EQUAL = 2 - VK_COMPARE_OP_LESS_OR_EQUAL = 3 - VK_COMPARE_OP_GREATER = 4 - VK_COMPARE_OP_NOT_EQUAL = 5 - VK_COMPARE_OP_GREATER_OR_EQUAL = 6 - VK_COMPARE_OP_ALWAYS = 7 - VkPolygonMode* {.size: sizeof(cint).} = enum - VK_POLYGON_MODE_FILL = 0 - VK_POLYGON_MODE_LINE = 1 - VK_POLYGON_MODE_POINT = 2 - VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000 - VkFrontFace* {.size: sizeof(cint).} = enum - VK_FRONT_FACE_COUNTER_CLOCKWISE = 0 - VK_FRONT_FACE_CLOCKWISE = 1 - VkBlendFactor* {.size: sizeof(cint).} = enum - VK_BLEND_FACTOR_ZERO = 0 - VK_BLEND_FACTOR_ONE = 1 - VK_BLEND_FACTOR_SRC_COLOR = 2 - VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3 - VK_BLEND_FACTOR_DST_COLOR = 4 - VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5 - VK_BLEND_FACTOR_SRC_ALPHA = 6 - VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7 - VK_BLEND_FACTOR_DST_ALPHA = 8 - VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9 - VK_BLEND_FACTOR_CONSTANT_COLOR = 10 - VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11 - VK_BLEND_FACTOR_CONSTANT_ALPHA = 12 - VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13 - VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14 - VK_BLEND_FACTOR_SRC1_COLOR = 15 - VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16 - VK_BLEND_FACTOR_SRC1_ALPHA = 17 - VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18 - VkBlendOp* {.size: sizeof(cint).} = enum - VK_BLEND_OP_ADD = 0 - VK_BLEND_OP_SUBTRACT = 1 - VK_BLEND_OP_REVERSE_SUBTRACT = 2 - VK_BLEND_OP_MIN = 3 - VK_BLEND_OP_MAX = 4 - VK_BLEND_OP_ZERO_EXT = 1000148000 - VK_BLEND_OP_SRC_EXT = 1000148001 - VK_BLEND_OP_DST_EXT = 1000148002 - VK_BLEND_OP_SRC_OVER_EXT = 1000148003 - VK_BLEND_OP_DST_OVER_EXT = 1000148004 - VK_BLEND_OP_SRC_IN_EXT = 1000148005 - VK_BLEND_OP_DST_IN_EXT = 1000148006 - VK_BLEND_OP_SRC_OUT_EXT = 1000148007 - VK_BLEND_OP_DST_OUT_EXT = 1000148008 - VK_BLEND_OP_SRC_ATOP_EXT = 1000148009 - VK_BLEND_OP_DST_ATOP_EXT = 1000148010 - VK_BLEND_OP_XOR_EXT = 1000148011 - VK_BLEND_OP_MULTIPLY_EXT = 1000148012 - VK_BLEND_OP_SCREEN_EXT = 1000148013 - VK_BLEND_OP_OVERLAY_EXT = 1000148014 - VK_BLEND_OP_DARKEN_EXT = 1000148015 - VK_BLEND_OP_LIGHTEN_EXT = 1000148016 - VK_BLEND_OP_COLORDODGE_EXT = 1000148017 - VK_BLEND_OP_COLORBURN_EXT = 1000148018 - VK_BLEND_OP_HARDLIGHT_EXT = 1000148019 - VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020 - VK_BLEND_OP_DIFFERENCE_EXT = 1000148021 - VK_BLEND_OP_EXCLUSION_EXT = 1000148022 - VK_BLEND_OP_INVERT_EXT = 1000148023 - VK_BLEND_OP_INVERT_RGB_EXT = 1000148024 - VK_BLEND_OP_LINEARDODGE_EXT = 1000148025 - VK_BLEND_OP_LINEARBURN_EXT = 1000148026 - VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027 - VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028 - VK_BLEND_OP_PINLIGHT_EXT = 1000148029 - VK_BLEND_OP_HARDMIX_EXT = 1000148030 - VK_BLEND_OP_HSL_HUE_EXT = 1000148031 - VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032 - VK_BLEND_OP_HSL_COLOR_EXT = 1000148033 - VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034 - VK_BLEND_OP_PLUS_EXT = 1000148035 - VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036 - VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037 - VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038 - VK_BLEND_OP_MINUS_EXT = 1000148039 - VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040 - VK_BLEND_OP_CONTRAST_EXT = 1000148041 - VK_BLEND_OP_INVERT_OVG_EXT = 1000148042 - VK_BLEND_OP_RED_EXT = 1000148043 - VK_BLEND_OP_GREEN_EXT = 1000148044 - VK_BLEND_OP_BLUE_EXT = 1000148045 - VkStencilOp* {.size: sizeof(cint).} = enum - VK_STENCIL_OP_KEEP = 0 - VK_STENCIL_OP_ZERO = 1 - VK_STENCIL_OP_REPLACE = 2 - VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3 - VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4 - VK_STENCIL_OP_INVERT = 5 - VK_STENCIL_OP_INCREMENT_AND_WRAP = 6 - VK_STENCIL_OP_DECREMENT_AND_WRAP = 7 - VkLogicOp* {.size: sizeof(cint).} = enum - VK_LOGIC_OP_CLEAR = 0 - VK_LOGIC_OP_AND = 1 - VK_LOGIC_OP_AND_REVERSE = 2 - VK_LOGIC_OP_COPY = 3 - VK_LOGIC_OP_AND_INVERTED = 4 - VK_LOGIC_OP_NO_OP = 5 - VK_LOGIC_OP_XOR = 6 - VK_LOGIC_OP_OR = 7 - VK_LOGIC_OP_NOR = 8 - VK_LOGIC_OP_EQUIVALENT = 9 - VK_LOGIC_OP_INVERT = 10 - VK_LOGIC_OP_OR_REVERSE = 11 - VK_LOGIC_OP_COPY_INVERTED = 12 - VK_LOGIC_OP_OR_INVERTED = 13 - VK_LOGIC_OP_NAND = 14 - VK_LOGIC_OP_SET = 15 - VkInternalAllocationType* {.size: sizeof(cint).} = enum - VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0 - VkSystemAllocationScope* {.size: sizeof(cint).} = enum - VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0 - VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1 - VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2 - VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3 - VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4 - VkPhysicalDeviceType* {.size: sizeof(cint).} = enum - VK_PHYSICAL_DEVICE_TYPE_OTHER = 0 - VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1 - VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2 - VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3 - VK_PHYSICAL_DEVICE_TYPE_CPU = 4 - VkVertexInputRate* {.size: sizeof(cint).} = enum - VK_VERTEX_INPUT_RATE_VERTEX = 0 - VK_VERTEX_INPUT_RATE_INSTANCE = 1 - VkFormat* {.size: sizeof(cint).} = enum - VK_FORMAT_UNDEFINED = 0 - VK_FORMAT_R4G4_UNORM_PACK8 = 1 - VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2 - VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3 - VK_FORMAT_R5G6B5_UNORM_PACK16 = 4 - VK_FORMAT_B5G6R5_UNORM_PACK16 = 5 - VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6 - VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7 - VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8 - VK_FORMAT_R8_UNORM = 9 - VK_FORMAT_R8_SNORM = 10 - VK_FORMAT_R8_USCALED = 11 - VK_FORMAT_R8_SSCALED = 12 - VK_FORMAT_R8_UINT = 13 - VK_FORMAT_R8_SINT = 14 - VK_FORMAT_R8_SRGB = 15 - VK_FORMAT_R8G8_UNORM = 16 - VK_FORMAT_R8G8_SNORM = 17 - VK_FORMAT_R8G8_USCALED = 18 - VK_FORMAT_R8G8_SSCALED = 19 - VK_FORMAT_R8G8_UINT = 20 - VK_FORMAT_R8G8_SINT = 21 - VK_FORMAT_R8G8_SRGB = 22 - VK_FORMAT_R8G8B8_UNORM = 23 - VK_FORMAT_R8G8B8_SNORM = 24 - VK_FORMAT_R8G8B8_USCALED = 25 - VK_FORMAT_R8G8B8_SSCALED = 26 - VK_FORMAT_R8G8B8_UINT = 27 - VK_FORMAT_R8G8B8_SINT = 28 - VK_FORMAT_R8G8B8_SRGB = 29 - VK_FORMAT_B8G8R8_UNORM = 30 - VK_FORMAT_B8G8R8_SNORM = 31 - VK_FORMAT_B8G8R8_USCALED = 32 - VK_FORMAT_B8G8R8_SSCALED = 33 - VK_FORMAT_B8G8R8_UINT = 34 - VK_FORMAT_B8G8R8_SINT = 35 - VK_FORMAT_B8G8R8_SRGB = 36 - VK_FORMAT_R8G8B8A8_UNORM = 37 - VK_FORMAT_R8G8B8A8_SNORM = 38 - VK_FORMAT_R8G8B8A8_USCALED = 39 - VK_FORMAT_R8G8B8A8_SSCALED = 40 - VK_FORMAT_R8G8B8A8_UINT = 41 - VK_FORMAT_R8G8B8A8_SINT = 42 - VK_FORMAT_R8G8B8A8_SRGB = 43 - VK_FORMAT_B8G8R8A8_UNORM = 44 - VK_FORMAT_B8G8R8A8_SNORM = 45 - VK_FORMAT_B8G8R8A8_USCALED = 46 - VK_FORMAT_B8G8R8A8_SSCALED = 47 - VK_FORMAT_B8G8R8A8_UINT = 48 - VK_FORMAT_B8G8R8A8_SINT = 49 - VK_FORMAT_B8G8R8A8_SRGB = 50 - VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51 - VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52 - VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53 - VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54 - VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55 - VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56 - VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57 - VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58 - VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59 - VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60 - VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61 - VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62 - VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63 - VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64 - VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65 - VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66 - VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67 - VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68 - VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69 - VK_FORMAT_R16_UNORM = 70 - VK_FORMAT_R16_SNORM = 71 - VK_FORMAT_R16_USCALED = 72 - VK_FORMAT_R16_SSCALED = 73 - VK_FORMAT_R16_UINT = 74 - VK_FORMAT_R16_SINT = 75 - VK_FORMAT_R16_SFLOAT = 76 - VK_FORMAT_R16G16_UNORM = 77 - VK_FORMAT_R16G16_SNORM = 78 - VK_FORMAT_R16G16_USCALED = 79 - VK_FORMAT_R16G16_SSCALED = 80 - VK_FORMAT_R16G16_UINT = 81 - VK_FORMAT_R16G16_SINT = 82 - VK_FORMAT_R16G16_SFLOAT = 83 - VK_FORMAT_R16G16B16_UNORM = 84 - VK_FORMAT_R16G16B16_SNORM = 85 - VK_FORMAT_R16G16B16_USCALED = 86 - VK_FORMAT_R16G16B16_SSCALED = 87 - VK_FORMAT_R16G16B16_UINT = 88 - VK_FORMAT_R16G16B16_SINT = 89 - VK_FORMAT_R16G16B16_SFLOAT = 90 - VK_FORMAT_R16G16B16A16_UNORM = 91 - VK_FORMAT_R16G16B16A16_SNORM = 92 - VK_FORMAT_R16G16B16A16_USCALED = 93 - VK_FORMAT_R16G16B16A16_SSCALED = 94 - VK_FORMAT_R16G16B16A16_UINT = 95 - VK_FORMAT_R16G16B16A16_SINT = 96 - VK_FORMAT_R16G16B16A16_SFLOAT = 97 - VK_FORMAT_R32_UINT = 98 - VK_FORMAT_R32_SINT = 99 - VK_FORMAT_R32_SFLOAT = 100 - VK_FORMAT_R32G32_UINT = 101 - VK_FORMAT_R32G32_SINT = 102 - VK_FORMAT_R32G32_SFLOAT = 103 - VK_FORMAT_R32G32B32_UINT = 104 - VK_FORMAT_R32G32B32_SINT = 105 - VK_FORMAT_R32G32B32_SFLOAT = 106 - VK_FORMAT_R32G32B32A32_UINT = 107 - VK_FORMAT_R32G32B32A32_SINT = 108 - VK_FORMAT_R32G32B32A32_SFLOAT = 109 - VK_FORMAT_R64_UINT = 110 - VK_FORMAT_R64_SINT = 111 - VK_FORMAT_R64_SFLOAT = 112 - VK_FORMAT_R64G64_UINT = 113 - VK_FORMAT_R64G64_SINT = 114 - VK_FORMAT_R64G64_SFLOAT = 115 - VK_FORMAT_R64G64B64_UINT = 116 - VK_FORMAT_R64G64B64_SINT = 117 - VK_FORMAT_R64G64B64_SFLOAT = 118 - VK_FORMAT_R64G64B64A64_UINT = 119 - VK_FORMAT_R64G64B64A64_SINT = 120 - VK_FORMAT_R64G64B64A64_SFLOAT = 121 - VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122 - VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123 - VK_FORMAT_D16_UNORM = 124 - VK_FORMAT_X8_D24_UNORM_PACK32 = 125 - VK_FORMAT_D32_SFLOAT = 126 - VK_FORMAT_S8_UINT = 127 - VK_FORMAT_D16_UNORM_S8_UINT = 128 - VK_FORMAT_D24_UNORM_S8_UINT = 129 - VK_FORMAT_D32_SFLOAT_S8_UINT = 130 - VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131 - VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132 - VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133 - VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134 - VK_FORMAT_BC2_UNORM_BLOCK = 135 - VK_FORMAT_BC2_SRGB_BLOCK = 136 - VK_FORMAT_BC3_UNORM_BLOCK = 137 - VK_FORMAT_BC3_SRGB_BLOCK = 138 - VK_FORMAT_BC4_UNORM_BLOCK = 139 - VK_FORMAT_BC4_SNORM_BLOCK = 140 - VK_FORMAT_BC5_UNORM_BLOCK = 141 - VK_FORMAT_BC5_SNORM_BLOCK = 142 - VK_FORMAT_BC6H_UFLOAT_BLOCK = 143 - VK_FORMAT_BC6H_SFLOAT_BLOCK = 144 - VK_FORMAT_BC7_UNORM_BLOCK = 145 - VK_FORMAT_BC7_SRGB_BLOCK = 146 - VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147 - VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148 - VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149 - VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150 - VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151 - VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152 - VK_FORMAT_EAC_R11_UNORM_BLOCK = 153 - VK_FORMAT_EAC_R11_SNORM_BLOCK = 154 - VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155 - VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156 - VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157 - VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158 - VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159 - VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160 - VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161 - VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162 - VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163 - VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164 - VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165 - VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166 - VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167 - VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168 - VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169 - VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170 - VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171 - VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172 - VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173 - VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174 - VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175 - VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176 - VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177 - VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178 - VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179 - VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180 - VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181 - VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182 - VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183 - VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184 - VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000 - VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001 - VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002 - VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003 - VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004 - VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005 - VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006 - VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007 - VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK = 1000066000 - VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK = 1000066001 - VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK = 1000066002 - VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK = 1000066003 - VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK = 1000066004 - VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK = 1000066005 - VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK = 1000066006 - VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK = 1000066007 - VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK = 1000066008 - VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK = 1000066009 - VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK = 1000066010 - VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK = 1000066011 - VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK = 1000066012 - VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK = 1000066013 - VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000 - VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001 - VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002 - VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003 - VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004 - VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005 - VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006 - VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007 - VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008 - VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009 - VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010 - VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011 - VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012 - VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013 - VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014 - VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015 - VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016 - VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017 - VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018 - VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019 - VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020 - VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021 - VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022 - VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023 - VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024 - VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025 - VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026 - VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027 - VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028 - VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029 - VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030 - VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031 - VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032 - VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033 - VK_FORMAT_ASTC_3x3x3_UNORM_BLOCK_EXT = 1000288000 - VK_FORMAT_ASTC_3x3x3_SRGB_BLOCK_EXT = 1000288001 - VK_FORMAT_ASTC_3x3x3_SFLOAT_BLOCK_EXT = 1000288002 - VK_FORMAT_ASTC_4x3x3_UNORM_BLOCK_EXT = 1000288003 - VK_FORMAT_ASTC_4x3x3_SRGB_BLOCK_EXT = 1000288004 - VK_FORMAT_ASTC_4x3x3_SFLOAT_BLOCK_EXT = 1000288005 - VK_FORMAT_ASTC_4x4x3_UNORM_BLOCK_EXT = 1000288006 - VK_FORMAT_ASTC_4x4x3_SRGB_BLOCK_EXT = 1000288007 - VK_FORMAT_ASTC_4x4x3_SFLOAT_BLOCK_EXT = 1000288008 - VK_FORMAT_ASTC_4x4x4_UNORM_BLOCK_EXT = 1000288009 - VK_FORMAT_ASTC_4x4x4_SRGB_BLOCK_EXT = 1000288010 - VK_FORMAT_ASTC_4x4x4_SFLOAT_BLOCK_EXT = 1000288011 - VK_FORMAT_ASTC_5x4x4_UNORM_BLOCK_EXT = 1000288012 - VK_FORMAT_ASTC_5x4x4_SRGB_BLOCK_EXT = 1000288013 - VK_FORMAT_ASTC_5x4x4_SFLOAT_BLOCK_EXT = 1000288014 - VK_FORMAT_ASTC_5x5x4_UNORM_BLOCK_EXT = 1000288015 - VK_FORMAT_ASTC_5x5x4_SRGB_BLOCK_EXT = 1000288016 - VK_FORMAT_ASTC_5x5x4_SFLOAT_BLOCK_EXT = 1000288017 - VK_FORMAT_ASTC_5x5x5_UNORM_BLOCK_EXT = 1000288018 - VK_FORMAT_ASTC_5x5x5_SRGB_BLOCK_EXT = 1000288019 - VK_FORMAT_ASTC_5x5x5_SFLOAT_BLOCK_EXT = 1000288020 - VK_FORMAT_ASTC_6x5x5_UNORM_BLOCK_EXT = 1000288021 - VK_FORMAT_ASTC_6x5x5_SRGB_BLOCK_EXT = 1000288022 - VK_FORMAT_ASTC_6x5x5_SFLOAT_BLOCK_EXT = 1000288023 - VK_FORMAT_ASTC_6x6x5_UNORM_BLOCK_EXT = 1000288024 - VK_FORMAT_ASTC_6x6x5_SRGB_BLOCK_EXT = 1000288025 - VK_FORMAT_ASTC_6x6x5_SFLOAT_BLOCK_EXT = 1000288026 - VK_FORMAT_ASTC_6x6x6_UNORM_BLOCK_EXT = 1000288027 - VK_FORMAT_ASTC_6x6x6_SRGB_BLOCK_EXT = 1000288028 - VK_FORMAT_ASTC_6x6x6_SFLOAT_BLOCK_EXT = 1000288029 - VK_FORMAT_G8_B8R8_2PLANE_444_UNORM = 1000330000 - VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16 = 1000330001 - VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16 = 1000330002 - VK_FORMAT_G16_B16R16_2PLANE_444_UNORM = 1000330003 - VK_FORMAT_A4R4G4B4_UNORM_PACK16 = 1000340000 - VK_FORMAT_A4B4G4R4_UNORM_PACK16 = 1000340001 - VK_FORMAT_R16G16_S10_5_NV = 1000464000 - VkStructureType* {.size: sizeof(cint).} = enum - VK_STRUCTURE_TYPE_APPLICATION_INFO = 0 - VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1 - VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2 - VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3 - VK_STRUCTURE_TYPE_SUBMIT_INFO = 4 - VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5 - VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6 - VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7 - VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8 - VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9 - VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10 - VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11 - VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12 - VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13 - VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14 - VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15 - VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16 - VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17 - VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18 - VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19 - VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20 - VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21 - VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22 - VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23 - VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24 - VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25 - VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26 - VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27 - VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28 - VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29 - VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30 - VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31 - VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32 - VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33 - VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34 - VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35 - VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36 - VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37 - VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38 - VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39 - VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40 - VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41 - VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42 - VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43 - VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44 - VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45 - VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46 - VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47 - VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES = 49 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES = 50 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES = 51 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES = 52 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES = 53 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES = 54 - VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000 - VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001 - VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000 - VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001 - VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR = 1000003000 - VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000 - VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000 - VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000 - VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000 - VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000 - VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID = 1000010000 - VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID = 1000010001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID = 1000010002 - VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000 - VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000 - VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000 - VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001 - VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002 - VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR = 1000023000 - VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR = 1000023001 - VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR = 1000023002 - VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR = 1000023003 - VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR = 1000023004 - VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR = 1000023005 - VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000023006 - VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR = 1000023007 - VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR = 1000023008 - VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR = 1000023009 - VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR = 1000023010 - VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR = 1000023011 - VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR = 1000023012 - VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR = 1000023013 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR = 1000023014 - VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR = 1000023015 - VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR = 1000023016 - VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR = 1000024000 - VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR = 1000024001 - VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR = 1000024002 - VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000 - VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001 - VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT = 1000028000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = 1000028001 - VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = 1000028002 - VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX = 1000029000 - VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX = 1000029001 - VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX = 1000029002 - VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000 - VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX = 1000030001 - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT = 1000038000 - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000038001 - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT = 1000038002 - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT = 1000038003 - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT = 1000038004 - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_EXT = 1000038005 - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_INFO_EXT = 1000038006 - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_EXT = 1000038007 - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT = 1000038008 - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT = 1000038009 - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_REFERENCE_LISTS_INFO_EXT = 1000038010 - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT = 1000039000 - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000039001 - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT = 1000039002 - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT = 1000039003 - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT = 1000039004 - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_EXT = 1000039005 - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_INFO_EXT = 1000039006 - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_EXT = 1000039007 - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_INFO_EXT = 1000039008 - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT = 1000039009 - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT = 1000039010 - VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR = 1000040000 - VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR = 1000040001 - VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR = 1000040003 - VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000040004 - VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR = 1000040005 - VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR = 1000040006 - VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000 - VK_STRUCTURE_TYPE_RENDERING_INFO = 1000044000 - VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO = 1000044001 - VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO = 1000044002 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES = 1000044003 - VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO = 1000044004 - VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000044006 - VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT = 1000044007 - VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD = 1000044008 - VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX = 1000044009 - VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP = 1000049000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000 - VK_STRUCTURE_TYPE_PRIVATE_VENDOR_INFO_RESERVED_OFFSET_0_NV = 1000051000 - VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002 - VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000 - VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001 - VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000 - VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001 - VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001 - VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002 - VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004 - VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006 - VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008 - VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000 - VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003 - VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004 - VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005 - VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006 - VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007 - VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008 - VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009 - VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010 - VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011 - VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012 - VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013 - VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014 - VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000 - VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES = 1000063000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES = 1000066000 - VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001 - VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT = 1000068000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT = 1000068001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT = 1000068002 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000 - VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000 - VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002 - VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004 - VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000 - VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001 - VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002 - VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000 - VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001 - VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002 - VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR = 1000073003 - VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000 - VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001 - VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR = 1000074002 - VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000 - VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001 - VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000 - VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000 - VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001 - VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002 - VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR = 1000078003 - VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000 - VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000 - VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = 1000081000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001 - VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES = 1000082000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000 - VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000 - VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000 - VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000 - VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000 - VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000 - VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001 - VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002 - VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003 - VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000 - VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000 - VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000 - VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT = 1000102000 - VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT = 1000102001 - VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES = 1000108000 - VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO = 1000108001 - VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO = 1000108002 - VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO = 1000108003 - VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2 = 1000109000 - VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2 = 1000109001 - VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2 = 1000109002 - VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2 = 1000109003 - VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2 = 1000109004 - VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO = 1000109005 - VK_STRUCTURE_TYPE_SUBPASS_END_INFO = 1000109006 - VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000 - VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001 - VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000 - VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000 - VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001 - VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002 - VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000 - VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR = 1000116000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR = 1000116001 - VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR = 1000116002 - VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR = 1000116003 - VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR = 1000116004 - VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR = 1000116005 - VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR = 1000116006 - VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_RESERVATION_INFO_KHR = 1000116007 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000 - VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001 - VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002 - VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000 - VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001 - VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES = 1000120000 - VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR = 1000121000 - VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR = 1000121001 - VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR = 1000121002 - VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR = 1000121003 - VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = 1000121004 - VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000 - VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000 - VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000 - VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001 - VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000 - VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001 - VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002 - VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003 - VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004 - VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129000 - VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001 - VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002 - VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003 - VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004 - VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005 - VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID = 1000129006 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES = 1000130000 - VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO = 1000130001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES = 1000138000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES = 1000138001 - VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK = 1000138002 - VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO = 1000138003 - VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000 - VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001 - VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003 - VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004 - VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002 - VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003 - VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000 - VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001 - VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002 - VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003 - VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004 - VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO = 1000147000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001 - VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002 - VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000 - VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR = 1000150000 - VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR = 1000150002 - VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR = 1000150003 - VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR = 1000150004 - VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR = 1000150005 - VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR = 1000150006 - VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR = 1000150007 - VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR = 1000150009 - VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR = 1000150010 - VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR = 1000150011 - VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR = 1000150012 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR = 1000150013 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR = 1000150014 - VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR = 1000150015 - VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR = 1000150016 - VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR = 1000150017 - VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR = 1000150018 - VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR = 1000150020 - VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV = 1000154000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV = 1000154001 - VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000 - VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001 - VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002 - VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004 - VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005 - VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000 - VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001 - VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = 1000158000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = 1000158002 - VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = 1000158003 - VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = 1000158004 - VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158005 - VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT = 1000158006 - VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000 - VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001 - VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO = 1000161000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES = 1000161001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES = 1000161002 - VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO = 1000161003 - VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT = 1000161004 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR = 1000163000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR = 1000163001 - VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = 1000164000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = 1000164001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = 1000164002 - VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = 1000164005 - VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV = 1000165000 - VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV = 1000165001 - VK_STRUCTURE_TYPE_GEOMETRY_NV = 1000165003 - VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV = 1000165004 - VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV = 1000165005 - VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV = 1000165006 - VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV = 1000165007 - VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV = 1000165008 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV = 1000165009 - VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV = 1000165011 - VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV = 1000165012 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = 1000166000 - VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = 1000166001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000 - VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT = 1000170000 - VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT = 1000170001 - VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR = 1000174000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES = 1000175000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES = 1000177000 - VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000 - VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES = 1000180000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR = 1000181000 - VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = 1000183000 - VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = 1000184000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000 - VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR = 1000187000 - VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000187001 - VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR = 1000187002 - VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR = 1000187003 - VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR = 1000187004 - VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR = 1000187005 - VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = 1000189000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000 - VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = 1000190001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = 1000190002 - VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP = 1000191000 - VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO = 1000192000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES = 1000196000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES = 1000197000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES = 1000199000 - VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE = 1000199001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = 1000201000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR = 1000203000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000 - VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002 - VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000 - VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES = 1000207000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES = 1000207001 - VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO = 1000207002 - VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO = 1000207003 - VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO = 1000207004 - VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO = 1000207005 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL = 1000209000 - VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL = 1000210000 - VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL = 1000210001 - VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL = 1000210002 - VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL = 1000210003 - VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL = 1000210004 - VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL = 1000210005 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES = 1000211000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT = 1000212000 - VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD = 1000213000 - VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD = 1000213001 - VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = 1000214000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES = 1000215000 - VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT = 1000217000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT = 1000218000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT = 1000218001 - VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT = 1000218002 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES = 1000221000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES = 1000225000 - VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO = 1000225001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES = 1000225002 - VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000226000 - VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR = 1000226001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR = 1000226002 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR = 1000226003 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR = 1000226004 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD = 1000227000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD = 1000229000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT = 1000234000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT = 1000237000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT = 1000238000 - VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT = 1000238001 - VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR = 1000239000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV = 1000240000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES = 1000241000 - VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT = 1000241001 - VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT = 1000241002 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT = 1000244000 - VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO = 1000244001 - VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT = 1000244002 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES = 1000245000 - VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO = 1000246000 - VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT = 1000247000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR = 1000248000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV = 1000249000 - VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249002 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV = 1000250000 - VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV = 1000250001 - VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV = 1000250002 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT = 1000251000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT = 1000252000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES = 1000253000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT = 1000254000 - VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT = 1000254001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT = 1000254002 - VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT = 1000255000 - VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT = 1000255001 - VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT = 1000255002 - VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT = 1000256000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES = 1000257000 - VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO = 1000257002 - VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO = 1000257003 - VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO = 1000257004 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT = 1000259000 - VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT = 1000259001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT = 1000259002 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT = 1000260000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES = 1000261000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT = 1000265000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT = 1000267000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR = 1000269000 - VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR = 1000269001 - VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR = 1000269002 - VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR = 1000269003 - VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004 - VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT = 1000273000 - VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT = 1000274000 - VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT = 1000274001 - VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT = 1000274002 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT = 1000275000 - VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT = 1000275001 - VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT = 1000275002 - VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT = 1000275003 - VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT = 1000275004 - VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT = 1000275005 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES = 1000276000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = 1000277000 - VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV = 1000277001 - VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV = 1000277002 - VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV = 1000277003 - VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV = 1000277004 - VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV = 1000277005 - VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV = 1000277006 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV = 1000277007 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV = 1000278000 - VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV = 1000278001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES = 1000280000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES = 1000280001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = 1000281000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES = 1000281001 - VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM = 1000282000 - VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM = 1000282001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT = 1000284000 - VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT = 1000284001 - VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT = 1000284002 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT = 1000286000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT = 1000286001 - VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT = 1000287000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT = 1000287001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT = 1000287002 - VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR = 1000290000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV = 1000292000 - VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV = 1000292001 - VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV = 1000292002 - VK_STRUCTURE_TYPE_PRESENT_ID_KHR = 1000294000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR = 1000294001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES = 1000295000 - VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO = 1000295001 - VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO = 1000295002 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES = 1000297000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_SC_1_0_FEATURES = 1000298000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_SC_1_0_PROPERTIES = 1000298001 - VK_STRUCTURE_TYPE_DEVICE_OBJECT_RESERVATION_CREATE_INFO = 1000298002 - VK_STRUCTURE_TYPE_COMMAND_POOL_MEMORY_RESERVATION_CREATE_INFO = 1000298003 - VK_STRUCTURE_TYPE_COMMAND_POOL_MEMORY_CONSUMPTION = 1000298004 - VK_STRUCTURE_TYPE_PIPELINE_POOL_SIZE = 1000298005 - VK_STRUCTURE_TYPE_FAULT_DATA = 1000298007 - VK_STRUCTURE_TYPE_FAULT_CALLBACK_INFO = 1000298008 - VK_STRUCTURE_TYPE_PIPELINE_OFFLINE_CREATE_INFO = 1000298010 - VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR = 1000299000 - VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR = 1000299001 - VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR = 1000299002 - VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR = 1000299003 - VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR = 1000299004 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000 - VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001 - VK_STRUCTURE_TYPE_REFRESH_OBJECT_LIST_KHR = 1000308000 - VK_STRUCTURE_TYPE_RESERVED_QCOM = 1000309000 - VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT = 1000311000 - VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT = 1000311001 - VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT = 1000311002 - VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT = 1000311003 - VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT = 1000311004 - VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT = 1000311005 - VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT = 1000311006 - VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT = 1000311007 - VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT = 1000311008 - VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT = 1000311009 - VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311010 - VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311011 - VK_STRUCTURE_TYPE_MEMORY_BARRIER_2 = 1000314000 - VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2 = 1000314001 - VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2 = 1000314002 - VK_STRUCTURE_TYPE_DEPENDENCY_INFO = 1000314003 - VK_STRUCTURE_TYPE_SUBMIT_INFO_2 = 1000314004 - VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO = 1000314005 - VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO = 1000314006 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES = 1000314007 - VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV = 1000314008 - VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV = 1000314009 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT = 1000316000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT = 1000316001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT = 1000316002 - VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT = 1000316003 - VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT = 1000316004 - VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316005 - VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316006 - VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316007 - VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316008 - VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316009 - VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT = 1000316010 - VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT = 1000316011 - VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT = 1000316012 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT = 1000320000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT = 1000320001 - VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT = 1000320002 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD = 1000321000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR = 1000322000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR = 1000323000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES = 1000325000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = 1000326000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV = 1000326001 - VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV = 1000326002 - VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV = 1000327000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV = 1000327001 - VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV = 1000327002 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT = 1000328000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT = 1000328001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT = 1000330000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = 1000332000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = 1000332001 - VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM = 1000333000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES = 1000335000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR = 1000336000 - VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2 = 1000337000 - VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2 = 1000337001 - VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2 = 1000337002 - VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2 = 1000337003 - VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2 = 1000337004 - VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2 = 1000337005 - VK_STRUCTURE_TYPE_BUFFER_COPY_2 = 1000337006 - VK_STRUCTURE_TYPE_IMAGE_COPY_2 = 1000337007 - VK_STRUCTURE_TYPE_IMAGE_BLIT_2 = 1000337008 - VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2 = 1000337009 - VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2 = 1000337010 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT = 1000338000 - VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT = 1000338001 - VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT = 1000338002 - VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT = 1000338003 - VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT = 1000338004 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT = 1000339000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = 1000340000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT = 1000341000 - VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT = 1000341001 - VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT = 1000341002 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT = 1000342000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT = 1000344000 - VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = 1000346000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR = 1000347000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR = 1000347001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR = 1000348013 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT = 1000351000 - VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT = 1000351002 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT = 1000352000 - VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT = 1000352001 - VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT = 1000352002 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT = 1000353000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT = 1000354000 - VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT = 1000354001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT = 1000355000 - VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT = 1000355001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT = 1000356000 - VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3 = 1000360000 - VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364000 - VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA = 1000364001 - VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364002 - VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365000 - VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365001 - VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA = 1000366000 - VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA = 1000366001 - VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA = 1000366002 - VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA = 1000366003 - VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA = 1000366004 - VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA = 1000366005 - VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA = 1000366006 - VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA = 1000366007 - VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA = 1000366008 - VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA = 1000366009 - VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI = 1000369000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI = 1000369001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI = 1000369002 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI = 1000370000 - VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV = 1000371000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = 1000371001 - VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT = 1000372000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT = 1000372001 - VK_STRUCTURE_TYPE_IMPORT_FENCE_SCI_SYNC_INFO_NV = 1000373000 - VK_STRUCTURE_TYPE_EXPORT_FENCE_SCI_SYNC_INFO_NV = 1000373001 - VK_STRUCTURE_TYPE_FENCE_GET_SCI_SYNC_INFO_NV = 1000373002 - VK_STRUCTURE_TYPE_SCI_SYNC_ATTRIBUTES_INFO_NV = 1000373003 - VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_SCI_SYNC_INFO_NV = 1000373004 - VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_SCI_SYNC_INFO_NV = 1000373005 - VK_STRUCTURE_TYPE_SEMAPHORE_GET_SCI_SYNC_INFO_NV = 1000373006 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SCI_SYNC_FEATURES_NV = 1000373007 - VK_STRUCTURE_TYPE_IMPORT_MEMORY_SCI_BUF_INFO_NV = 1000374000 - VK_STRUCTURE_TYPE_EXPORT_MEMORY_SCI_BUF_INFO_NV = 1000374001 - VK_STRUCTURE_TYPE_MEMORY_GET_SCI_BUF_INFO_NV = 1000374002 - VK_STRUCTURE_TYPE_MEMORY_SCI_BUF_PROPERTIES_NV = 1000374003 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCI_BUF_FEATURES_NV = 1000374004 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT = 1000376000 - VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT = 1000376001 - VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT = 1000376002 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = 1000377000 - VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = 1000378000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = 1000381000 - VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT = 1000381001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT = 1000382000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR = 1000386000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR = 1000388000 - VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR = 1000388001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT = 1000391000 - VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT = 1000391001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT = 1000392000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT = 1000392001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT = 1000393000 - VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT = 1000396000 - VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT = 1000396001 - VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT = 1000396002 - VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT = 1000396003 - VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT = 1000396004 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT = 1000396005 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT = 1000396006 - VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT = 1000396007 - VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT = 1000396008 - VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT = 1000396009 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI = 1000404000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI = 1000404001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT = 1000411000 - VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT = 1000411001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT = 1000412000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES = 1000413000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES = 1000413001 - VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS = 1000413002 - VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS = 1000413003 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM = 1000415000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT = 1000418000 - VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT = 1000418001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE = 1000420000 - VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE = 1000420001 - VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE = 1000420002 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT = 1000421000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT = 1000422000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM = 1000425000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM = 1000425001 - VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM = 1000425002 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV = 1000426000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV = 1000426001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV = 1000427000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV = 1000427001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV = 1000430000 - VK_STRUCTURE_TYPE_APPLICATION_PARAMETERS_EXT = 1000435000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT = 1000437000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM = 1000440000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM = 1000440001 - VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM = 1000440002 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT = 1000455000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT = 1000455001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT = 1000458000 - VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT = 1000458001 - VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT = 1000458002 - VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT = 1000458003 - VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG = 1000459000 - VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG = 1000459001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT = 1000462000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT = 1000462001 - VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT = 1000462002 - VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT = 1000462003 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV = 1000464000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV = 1000464001 - VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV = 1000464002 - VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV = 1000464003 - VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV = 1000464004 - VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV = 1000464005 - VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV = 1000464010 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT = 1000465000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT = 1000466000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM = 1000484000 - VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM = 1000484001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC = 1000485000 - VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC = 1000485001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM = 1000488000 - VK_STRUCTURE_TYPE_SEMAPHORE_SCI_SYNC_POOL_CREATE_INFO_NV = 1000489000 - VK_STRUCTURE_TYPE_SEMAPHORE_SCI_SYNC_CREATE_INFO_NV = 1000489001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SCI_SYNC_2_FEATURES_NV = 1000489002 - VK_STRUCTURE_TYPE_DEVICE_SEMAPHORE_SCI_SYNC_POOL_RESERVATION_CREATE_INFO_NV = 1000489003 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV = 1000490000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV = 1000490001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM = 1000497000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM = 1000497001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT = 1000498000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM = 1000510000 - VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM = 1000510001 - VkSubpassContents* {.size: sizeof(cint).} = enum - VK_SUBPASS_CONTENTS_INLINE = 0 - VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1 - VkResult* {.size: sizeof(cint).} = enum - VK_ERROR_COMPRESSION_EXHAUSTED_EXT = -1000338000 - VK_ERROR_NO_PIPELINE_MATCH = -1000298001 - VK_ERROR_INVALID_PIPELINE_CACHE_DATA = -1000298000 - VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS = -1000257000 - VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000 - VK_ERROR_NOT_PERMITTED_KHR = -1000174001 - VK_ERROR_FRAGMENTATION = -1000161000 - VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000 - VK_ERROR_INVALID_EXTERNAL_HANDLE = -1000072003 - VK_ERROR_OUT_OF_POOL_MEMORY = -1000069000 - VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR = -1000023005 - VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR = -1000023004 - VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR = -1000023003 - VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR = -1000023002 - VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR = -1000023001 - VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR = -1000023000 - VK_ERROR_INVALID_SHADER_NV = -1000012000 - VK_ERROR_VALIDATION_FAILED_EXT = -1000011001 - VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001 - VK_ERROR_OUT_OF_DATE_KHR = -1000001004 - VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = -1000000001 - VK_ERROR_SURFACE_LOST_KHR = -1000000000 - VK_ERROR_UNKNOWN = -13 - VK_ERROR_FRAGMENTED_POOL = -12 - VK_ERROR_FORMAT_NOT_SUPPORTED = -11 - VK_ERROR_TOO_MANY_OBJECTS = -10 - VK_ERROR_INCOMPATIBLE_DRIVER = -9 - VK_ERROR_FEATURE_NOT_PRESENT = -8 - VK_ERROR_EXTENSION_NOT_PRESENT = -7 - VK_ERROR_LAYER_NOT_PRESENT = -6 - VK_ERROR_MEMORY_MAP_FAILED = -5 - VK_ERROR_DEVICE_LOST = -4 - VK_ERROR_INITIALIZATION_FAILED = -3 - VK_ERROR_OUT_OF_DEVICE_MEMORY = -2 - VK_ERROR_OUT_OF_HOST_MEMORY = -1 - VK_SUCCESS = 0 - VK_NOT_READY = 1 - VK_TIMEOUT = 2 - VK_EVENT_SET = 3 - VK_EVENT_RESET = 4 - VK_INCOMPLETE = 5 - VK_SUBOPTIMAL_KHR = 1000001003 - VK_THREAD_IDLE_KHR = 1000268000 - VK_THREAD_DONE_KHR = 1000268001 - VK_OPERATION_DEFERRED_KHR = 1000268002 - VK_OPERATION_NOT_DEFERRED_KHR = 1000268003 - VK_PIPELINE_COMPILE_REQUIRED = 1000297000 - VkDynamicState* {.size: sizeof(cint).} = enum - VK_DYNAMIC_STATE_VIEWPORT = 0 - VK_DYNAMIC_STATE_SCISSOR = 1 - VK_DYNAMIC_STATE_LINE_WIDTH = 2 - VK_DYNAMIC_STATE_DEPTH_BIAS = 3 - VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4 - VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5 - VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6 - VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7 - VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8 - VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000 - VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000 - VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT = 1000099001 - VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT = 1000099002 - VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000 - VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004 - VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006 - VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV = 1000205000 - VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001 - VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR = 1000226000 - VK_DYNAMIC_STATE_LINE_STIPPLE_EXT = 1000259000 - VK_DYNAMIC_STATE_CULL_MODE = 1000267000 - VK_DYNAMIC_STATE_FRONT_FACE = 1000267001 - VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY = 1000267002 - VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT = 1000267003 - VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT = 1000267004 - VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE = 1000267005 - VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE = 1000267006 - VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE = 1000267007 - VK_DYNAMIC_STATE_DEPTH_COMPARE_OP = 1000267008 - VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE = 1000267009 - VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE = 1000267010 - VK_DYNAMIC_STATE_STENCIL_OP = 1000267011 - VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR = 1000347000 - VK_DYNAMIC_STATE_VERTEX_INPUT_EXT = 1000352000 - VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT = 1000377000 - VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE = 1000377001 - VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE = 1000377002 - VK_DYNAMIC_STATE_LOGIC_OP_EXT = 1000377003 - VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE = 1000377004 - VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT = 1000381000 - VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT = 1000455002 - VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT = 1000455003 - VK_DYNAMIC_STATE_POLYGON_MODE_EXT = 1000455004 - VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT = 1000455005 - VK_DYNAMIC_STATE_SAMPLE_MASK_EXT = 1000455006 - VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT = 1000455007 - VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT = 1000455008 - VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT = 1000455009 - VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT = 1000455010 - VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT = 1000455011 - VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT = 1000455012 - VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT = 1000455013 - VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT = 1000455014 - VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT = 1000455015 - VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT = 1000455016 - VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT = 1000455017 - VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT = 1000455018 - VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT = 1000455019 - VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT = 1000455020 - VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT = 1000455021 - VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT = 1000455022 - VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV = 1000455023 - VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV = 1000455024 - VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV = 1000455025 - VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV = 1000455026 - VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV = 1000455027 - VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV = 1000455028 - VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV = 1000455029 - VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV = 1000455030 - VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV = 1000455031 - VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV = 1000455032 - VkDescriptorUpdateTemplateType* {.size: sizeof(cint).} = enum - VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0 - VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1 - VkObjectType* {.size: sizeof(cint).} = enum - VK_OBJECT_TYPE_UNKNOWN = 0 - VK_OBJECT_TYPE_INSTANCE = 1 - VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2 - VK_OBJECT_TYPE_DEVICE = 3 - VK_OBJECT_TYPE_QUEUE = 4 - VK_OBJECT_TYPE_SEMAPHORE = 5 - VK_OBJECT_TYPE_COMMAND_BUFFER = 6 - VK_OBJECT_TYPE_FENCE = 7 - VK_OBJECT_TYPE_DEVICE_MEMORY = 8 - VK_OBJECT_TYPE_BUFFER = 9 - VK_OBJECT_TYPE_IMAGE = 10 - VK_OBJECT_TYPE_EVENT = 11 - VK_OBJECT_TYPE_QUERY_POOL = 12 - VK_OBJECT_TYPE_BUFFER_VIEW = 13 - VK_OBJECT_TYPE_IMAGE_VIEW = 14 - VK_OBJECT_TYPE_SHADER_MODULE = 15 - VK_OBJECT_TYPE_PIPELINE_CACHE = 16 - VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17 - VK_OBJECT_TYPE_RENDER_PASS = 18 - VK_OBJECT_TYPE_PIPELINE = 19 - VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20 - VK_OBJECT_TYPE_SAMPLER = 21 - VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22 - VK_OBJECT_TYPE_DESCRIPTOR_SET = 23 - VK_OBJECT_TYPE_FRAMEBUFFER = 24 - VK_OBJECT_TYPE_COMMAND_POOL = 25 - VK_OBJECT_TYPE_SURFACE_KHR = 1000000000 - VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000 - VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000 - VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001 - VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000 - VK_OBJECT_TYPE_VIDEO_SESSION_KHR = 1000023000 - VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR = 1000023001 - VK_OBJECT_TYPE_CU_MODULE_NVX = 1000029000 - VK_OBJECT_TYPE_CU_FUNCTION_NVX = 1000029001 - VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000 - VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000 - VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000 - VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000 - VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000 - VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000 - VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL = 1000210000 - VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR = 1000268000 - VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV = 1000277000 - VK_OBJECT_TYPE_PRIVATE_DATA_SLOT = 1000295000 - VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA = 1000366000 - VK_OBJECT_TYPE_MICROMAP_EXT = 1000396000 - VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV = 1000464000 - VK_OBJECT_TYPE_SEMAPHORE_SCI_SYNC_POOL_NV = 1000489000 - VkRayTracingInvocationReorderModeNV* {.size: sizeof(cint).} = enum - VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV = 0 - VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV = 1 - VkDirectDriverLoadingModeLUNARG* {.size: sizeof(cint).} = enum - VK_DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG = 0 - VK_DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG = 1 - VkQueueFlagBits* {.size: sizeof(cint).} = enum - VK_QUEUE_GRAPHICS_BIT = 0b00000000000000000000000000000001 - VK_QUEUE_COMPUTE_BIT = 0b00000000000000000000000000000010 - VK_QUEUE_TRANSFER_BIT = 0b00000000000000000000000000000100 - VK_QUEUE_SPARSE_BINDING_BIT = 0b00000000000000000000000000001000 - VK_QUEUE_PROTECTED_BIT = 0b00000000000000000000000000010000 - VK_QUEUE_VIDEO_DECODE_BIT_KHR = 0b00000000000000000000000000100000 - VK_QUEUE_VIDEO_ENCODE_BIT_KHR = 0b00000000000000000000000001000000 - VK_QUEUE_RESERVED_7_BIT_QCOM = 0b00000000000000000000000010000000 - VK_QUEUE_OPTICAL_FLOW_BIT_NV = 0b00000000000000000000000100000000 - VK_QUEUE_RESERVED_9_BIT_EXT = 0b00000000000000000000001000000000 -func toBits*(flags: openArray[VkQueueFlagBits]): VkQueueFlags = - for flag in flags: - result = VkQueueFlags(uint(result) or uint(flag)) -func toEnums*(number: VkQueueFlags): seq[VkQueueFlagBits] = - for value in VkQueueFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkQueueFlags): bool = cint(a) == cint(b) -type - VkCullModeFlagBits* {.size: sizeof(cint).} = enum - VK_CULL_MODE_FRONT_BIT = 0b00000000000000000000000000000001 - VK_CULL_MODE_BACK_BIT = 0b00000000000000000000000000000010 -func toBits*(flags: openArray[VkCullModeFlagBits]): VkCullModeFlags = - for flag in flags: - result = VkCullModeFlags(uint(result) or uint(flag)) -func toEnums*(number: VkCullModeFlags): seq[VkCullModeFlagBits] = - for value in VkCullModeFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkCullModeFlags): bool = cint(a) == cint(b) -const - VK_CULL_MODE_NONE* = 0 - VK_CULL_MODE_FRONT_AND_BACK* = 0x00000003 -type - VkRenderPassCreateFlagBits* {.size: sizeof(cint).} = enum - VK_RENDER_PASS_CREATE_RESERVED_0_BIT_KHR = 0b00000000000000000000000000000001 - VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM = 0b00000000000000000000000000000010 -func toBits*(flags: openArray[VkRenderPassCreateFlagBits]): VkRenderPassCreateFlags = - for flag in flags: - result = VkRenderPassCreateFlags(uint(result) or uint(flag)) -func toEnums*(number: VkRenderPassCreateFlags): seq[VkRenderPassCreateFlagBits] = - for value in VkRenderPassCreateFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkRenderPassCreateFlags): bool = cint(a) == cint(b) -type - VkDeviceQueueCreateFlagBits* {.size: sizeof(cint).} = enum - VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0b00000000000000000000000000000001 - VK_DEVICE_QUEUE_CREATE_RESERVED_1_BIT_QCOM = 0b00000000000000000000000000000010 -func toBits*(flags: openArray[VkDeviceQueueCreateFlagBits]): VkDeviceQueueCreateFlags = - for flag in flags: - result = VkDeviceQueueCreateFlags(uint(result) or uint(flag)) -func toEnums*(number: VkDeviceQueueCreateFlags): seq[VkDeviceQueueCreateFlagBits] = - for value in VkDeviceQueueCreateFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkDeviceQueueCreateFlags): bool = cint(a) == cint(b) -type - VkMemoryPropertyFlagBits* {.size: sizeof(cint).} = enum - VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0b00000000000000000000000000000001 - VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0b00000000000000000000000000000010 - VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0b00000000000000000000000000000100 - VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0b00000000000000000000000000001000 - VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0b00000000000000000000000000010000 - VK_MEMORY_PROPERTY_PROTECTED_BIT = 0b00000000000000000000000000100000 - VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD = 0b00000000000000000000000001000000 - VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD = 0b00000000000000000000000010000000 - VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV = 0b00000000000000000000000100000000 -func toBits*(flags: openArray[VkMemoryPropertyFlagBits]): VkMemoryPropertyFlags = - for flag in flags: - result = VkMemoryPropertyFlags(uint(result) or uint(flag)) -func toEnums*(number: VkMemoryPropertyFlags): seq[VkMemoryPropertyFlagBits] = - for value in VkMemoryPropertyFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkMemoryPropertyFlags): bool = cint(a) == cint(b) -type - VkMemoryHeapFlagBits* {.size: sizeof(cint).} = enum - VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0b00000000000000000000000000000001 - VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0b00000000000000000000000000000010 - VK_MEMORY_HEAP_SEU_SAFE_BIT = 0b00000000000000000000000000000100 -func toBits*(flags: openArray[VkMemoryHeapFlagBits]): VkMemoryHeapFlags = - for flag in flags: - result = VkMemoryHeapFlags(uint(result) or uint(flag)) -func toEnums*(number: VkMemoryHeapFlags): seq[VkMemoryHeapFlagBits] = - for value in VkMemoryHeapFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkMemoryHeapFlags): bool = cint(a) == cint(b) -type - VkAccessFlagBits* {.size: sizeof(cint).} = enum - VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0b00000000000000000000000000000001 - VK_ACCESS_INDEX_READ_BIT = 0b00000000000000000000000000000010 - VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0b00000000000000000000000000000100 - VK_ACCESS_UNIFORM_READ_BIT = 0b00000000000000000000000000001000 - VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0b00000000000000000000000000010000 - VK_ACCESS_SHADER_READ_BIT = 0b00000000000000000000000000100000 - VK_ACCESS_SHADER_WRITE_BIT = 0b00000000000000000000000001000000 - VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0b00000000000000000000000010000000 - VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0b00000000000000000000000100000000 - VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0b00000000000000000000001000000000 - VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0b00000000000000000000010000000000 - VK_ACCESS_TRANSFER_READ_BIT = 0b00000000000000000000100000000000 - VK_ACCESS_TRANSFER_WRITE_BIT = 0b00000000000000000001000000000000 - VK_ACCESS_HOST_READ_BIT = 0b00000000000000000010000000000000 - VK_ACCESS_HOST_WRITE_BIT = 0b00000000000000000100000000000000 - VK_ACCESS_MEMORY_READ_BIT = 0b00000000000000001000000000000000 - VK_ACCESS_MEMORY_WRITE_BIT = 0b00000000000000010000000000000000 - VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV = 0b00000000000000100000000000000000 - VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV = 0b00000000000001000000000000000000 - VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0b00000000000010000000000000000000 - VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0b00000000000100000000000000000000 - VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0b00000000001000000000000000000000 - VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0b00000000010000000000000000000000 - VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0b00000000100000000000000000000000 - VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0b00000001000000000000000000000000 - VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0b00000010000000000000000000000000 - VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0b00000100000000000000000000000000 - VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0b00001000000000000000000000000000 -func toBits*(flags: openArray[VkAccessFlagBits]): VkAccessFlags = - for flag in flags: - result = VkAccessFlags(uint(result) or uint(flag)) -func toEnums*(number: VkAccessFlags): seq[VkAccessFlagBits] = - for value in VkAccessFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkAccessFlags): bool = cint(a) == cint(b) -type - VkBufferUsageFlagBits* {.size: sizeof(cint).} = enum - VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0b00000000000000000000000000000001 - VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0b00000000000000000000000000000010 - VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0b00000000000000000000000000000100 - VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0b00000000000000000000000000001000 - VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0b00000000000000000000000000010000 - VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0b00000000000000000000000000100000 - VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0b00000000000000000000000001000000 - VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0b00000000000000000000000010000000 - VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0b00000000000000000000000100000000 - VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0b00000000000000000000001000000000 - VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR = 0b00000000000000000000010000000000 - VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0b00000000000000000000100000000000 - VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0b00000000000000000001000000000000 - VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0b00000000000000000010000000000000 - VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0b00000000000000000100000000000000 - VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0b00000000000000001000000000000000 - VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0b00000000000000010000000000000000 - VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 0b00000000000000100000000000000000 - VK_BUFFER_USAGE_RESERVED_18_BIT_QCOM = 0b00000000000001000000000000000000 - VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 0b00000000000010000000000000000000 - VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 0b00000000000100000000000000000000 - VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 0b00000000001000000000000000000000 - VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 0b00000000010000000000000000000000 - VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 0b00000000100000000000000000000000 - VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT = 0b00000001000000000000000000000000 - VK_BUFFER_USAGE_RESERVED_25_BIT_AMD = 0b00000010000000000000000000000000 - VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 0b00000100000000000000000000000000 -func toBits*(flags: openArray[VkBufferUsageFlagBits]): VkBufferUsageFlags = - for flag in flags: - result = VkBufferUsageFlags(uint(result) or uint(flag)) -func toEnums*(number: VkBufferUsageFlags): seq[VkBufferUsageFlagBits] = - for value in VkBufferUsageFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkBufferUsageFlags): bool = cint(a) == cint(b) -type - VkBufferCreateFlagBits* {.size: sizeof(cint).} = enum - VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0b00000000000000000000000000000001 - VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0b00000000000000000000000000000010 - VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0b00000000000000000000000000000100 - VK_BUFFER_CREATE_PROTECTED_BIT = 0b00000000000000000000000000001000 - VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0b00000000000000000000000000010000 - VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0b00000000000000000000000000100000 -func toBits*(flags: openArray[VkBufferCreateFlagBits]): VkBufferCreateFlags = - for flag in flags: - result = VkBufferCreateFlags(uint(result) or uint(flag)) -func toEnums*(number: VkBufferCreateFlags): seq[VkBufferCreateFlagBits] = - for value in VkBufferCreateFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkBufferCreateFlags): bool = cint(a) == cint(b) -type - VkShaderStageFlagBits* {.size: sizeof(cint).} = enum - VK_SHADER_STAGE_VERTEX_BIT = 0b00000000000000000000000000000001 - VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0b00000000000000000000000000000010 - VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0b00000000000000000000000000000100 - VK_SHADER_STAGE_GEOMETRY_BIT = 0b00000000000000000000000000001000 - VK_SHADER_STAGE_FRAGMENT_BIT = 0b00000000000000000000000000010000 - VK_SHADER_STAGE_COMPUTE_BIT = 0b00000000000000000000000000100000 - VK_SHADER_STAGE_TASK_BIT_EXT = 0b00000000000000000000000001000000 - VK_SHADER_STAGE_MESH_BIT_EXT = 0b00000000000000000000000010000000 - VK_SHADER_STAGE_RAYGEN_BIT_KHR = 0b00000000000000000000000100000000 - VK_SHADER_STAGE_ANY_HIT_BIT_KHR = 0b00000000000000000000001000000000 - VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR = 0b00000000000000000000010000000000 - VK_SHADER_STAGE_MISS_BIT_KHR = 0b00000000000000000000100000000000 - VK_SHADER_STAGE_INTERSECTION_BIT_KHR = 0b00000000000000000001000000000000 - VK_SHADER_STAGE_CALLABLE_BIT_KHR = 0b00000000000000000010000000000000 - VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI = 0b00000000000000000100000000000000 - VK_SHADER_STAGE_EXT_483_RESERVE_15 = 0b00000000000000001000000000000000 - VK_SHADER_STAGE_EXT_483_RESERVE_16 = 0b00000000000000010000000000000000 - VK_SHADER_STAGE_EXT_483_RESERVE_17 = 0b00000000000000100000000000000000 - VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI = 0b00000000000010000000000000000000 -func toBits*(flags: openArray[VkShaderStageFlagBits]): VkShaderStageFlags = - for flag in flags: - result = VkShaderStageFlags(uint(result) or uint(flag)) -func toEnums*(number: VkShaderStageFlags): seq[VkShaderStageFlagBits] = - for value in VkShaderStageFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkShaderStageFlags): bool = cint(a) == cint(b) -const - VK_SHADER_STAGE_ALL_GRAPHICS* = 0x0000001F - VK_SHADER_STAGE_ALL* = 0x7FFFFFFF -type - VkImageUsageFlagBits* {.size: sizeof(cint).} = enum - VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0b00000000000000000000000000000001 - VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0b00000000000000000000000000000010 - VK_IMAGE_USAGE_SAMPLED_BIT = 0b00000000000000000000000000000100 - VK_IMAGE_USAGE_STORAGE_BIT = 0b00000000000000000000000000001000 - VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0b00000000000000000000000000010000 - VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0b00000000000000000000000000100000 - VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0b00000000000000000000000001000000 - VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0b00000000000000000000000010000000 - VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0b00000000000000000000000100000000 - VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0b00000000000000000000001000000000 - VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0b00000000000000000000010000000000 - VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0b00000000000000000000100000000000 - VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR = 0b00000000000000000001000000000000 - VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0b00000000000000000010000000000000 - VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0b00000000000000000100000000000000 - VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR = 0b00000000000000001000000000000000 - VK_IMAGE_USAGE_RESERVED_16_BIT_QCOM = 0b00000000000000010000000000000000 - VK_IMAGE_USAGE_RESERVED_17_BIT_QCOM = 0b00000000000000100000000000000000 - VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI = 0b00000000000001000000000000000000 - VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0b00000000000010000000000000000000 - VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM = 0b00000000000100000000000000000000 - VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM = 0b00000000001000000000000000000000 - VK_IMAGE_USAGE_RESERVED_22_BIT_EXT = 0b00000000010000000000000000000000 -func toBits*(flags: openArray[VkImageUsageFlagBits]): VkImageUsageFlags = - for flag in flags: - result = VkImageUsageFlags(uint(result) or uint(flag)) -func toEnums*(number: VkImageUsageFlags): seq[VkImageUsageFlagBits] = - for value in VkImageUsageFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkImageUsageFlags): bool = cint(a) == cint(b) -type - VkImageCreateFlagBits* {.size: sizeof(cint).} = enum - VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0b00000000000000000000000000000001 - VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0b00000000000000000000000000000010 - VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0b00000000000000000000000000000100 - VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0b00000000000000000000000000001000 - VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0b00000000000000000000000000010000 - VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0b00000000000000000000000000100000 - VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0b00000000000000000000000001000000 - VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0b00000000000000000000000010000000 - VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0b00000000000000000000000100000000 - VK_IMAGE_CREATE_DISJOINT_BIT = 0b00000000000000000000001000000000 - VK_IMAGE_CREATE_ALIAS_BIT = 0b00000000000000000000010000000000 - VK_IMAGE_CREATE_PROTECTED_BIT = 0b00000000000000000000100000000000 - VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0b00000000000000000001000000000000 - VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 0b00000000000000000010000000000000 - VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 0b00000000000000000100000000000000 - VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM = 0b00000000000000001000000000000000 - VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0b00000000000000010000000000000000 - VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT = 0b00000000000000100000000000000000 - VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT = 0b00000000000001000000000000000000 - VK_IMAGE_CREATE_RESERVED_19_BIT_EXT = 0b00000000000010000000000000000000 -func toBits*(flags: openArray[VkImageCreateFlagBits]): VkImageCreateFlags = - for flag in flags: - result = VkImageCreateFlags(uint(result) or uint(flag)) -func toEnums*(number: VkImageCreateFlags): seq[VkImageCreateFlagBits] = - for value in VkImageCreateFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkImageCreateFlags): bool = cint(a) == cint(b) -type - VkImageViewCreateFlagBits* {.size: sizeof(cint).} = enum - VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 0b00000000000000000000000000000001 - VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = 0b00000000000000000000000000000010 - VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0b00000000000000000000000000000100 -func toBits*(flags: openArray[VkImageViewCreateFlagBits]): VkImageViewCreateFlags = - for flag in flags: - result = VkImageViewCreateFlags(uint(result) or uint(flag)) -func toEnums*(number: VkImageViewCreateFlags): seq[VkImageViewCreateFlagBits] = - for value in VkImageViewCreateFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkImageViewCreateFlags): bool = cint(a) == cint(b) -type - VkSamplerCreateFlagBits* {.size: sizeof(cint).} = enum - VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 0b00000000000000000000000000000001 - VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 0b00000000000000000000000000000010 - VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT = 0b00000000000000000000000000000100 - VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0b00000000000000000000000000001000 - VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM = 0b00000000000000000000000000010000 -func toBits*(flags: openArray[VkSamplerCreateFlagBits]): VkSamplerCreateFlags = - for flag in flags: - result = VkSamplerCreateFlags(uint(result) or uint(flag)) -func toEnums*(number: VkSamplerCreateFlags): seq[VkSamplerCreateFlagBits] = - for value in VkSamplerCreateFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkSamplerCreateFlags): bool = cint(a) == cint(b) -type - VkPipelineCreateFlagBits* {.size: sizeof(cint).} = enum - VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0b00000000000000000000000000000001 - VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0b00000000000000000000000000000010 - VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0b00000000000000000000000000000100 - VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0b00000000000000000000000000001000 - VK_PIPELINE_CREATE_DISPATCH_BASE_BIT = 0b00000000000000000000000000010000 - VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV = 0b00000000000000000000000000100000 - VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR = 0b00000000000000000000000001000000 - VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0b00000000000000000000000010000000 - VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT = 0b00000000000000000000000100000000 - VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT = 0b00000000000000000000001000000000 - VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT = 0b00000000000000000000010000000000 - VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 0b00000000000000000000100000000000 - VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 0b00000000000000000001000000000000 - VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR = 0b00000000000000000010000000000000 - VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0b00000000000000000100000000000000 - VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0b00000000000000001000000000000000 - VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0b00000000000000010000000000000000 - VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 0b00000000000000100000000000000000 - VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 0b00000000000001000000000000000000 - VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = 0b00000000000010000000000000000000 - VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV = 0b00000000000100000000000000000000 - VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0b00000000001000000000000000000000 - VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0b00000000010000000000000000000000 - VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 0b00000000100000000000000000000000 - VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 0b00000001000000000000000000000000 - VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0b00000010000000000000000000000000 - VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0b00000100000000000000000000000000 - VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT = 0b00001000000000000000000000000000 - VK_PIPELINE_CREATE_RESERVED_BIT_28_NV = 0b00010000000000000000000000000000 - VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 0b00100000000000000000000000000000 - VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT = 0b01000000000000000000000000000000 -func toBits*(flags: openArray[VkPipelineCreateFlagBits]): VkPipelineCreateFlags = - for flag in flags: - result = VkPipelineCreateFlags(uint(result) or uint(flag)) -func toEnums*(number: VkPipelineCreateFlags): seq[VkPipelineCreateFlagBits] = - for value in VkPipelineCreateFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkPipelineCreateFlags): bool = cint(a) == cint(b) -type - VkPipelineShaderStageCreateFlagBits* {.size: sizeof(cint).} = enum - VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT = 0b00000000000000000000000000000001 - VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT = 0b00000000000000000000000000000010 - VK_PIPELINE_SHADER_STAGE_CREATE_RESERVED_3_BIT_KHR = 0b00000000000000000000000000001000 -func toBits*(flags: openArray[VkPipelineShaderStageCreateFlagBits]): VkPipelineShaderStageCreateFlags = - for flag in flags: - result = VkPipelineShaderStageCreateFlags(uint(result) or uint(flag)) -func toEnums*(number: VkPipelineShaderStageCreateFlags): seq[VkPipelineShaderStageCreateFlagBits] = - for value in VkPipelineShaderStageCreateFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkPipelineShaderStageCreateFlags): bool = cint(a) == cint(b) -type - VkColorComponentFlagBits* {.size: sizeof(cint).} = enum - VK_COLOR_COMPONENT_R_BIT = 0b00000000000000000000000000000001 - VK_COLOR_COMPONENT_G_BIT = 0b00000000000000000000000000000010 - VK_COLOR_COMPONENT_B_BIT = 0b00000000000000000000000000000100 - VK_COLOR_COMPONENT_A_BIT = 0b00000000000000000000000000001000 -func toBits*(flags: openArray[VkColorComponentFlagBits]): VkColorComponentFlags = - for flag in flags: - result = VkColorComponentFlags(uint(result) or uint(flag)) -func toEnums*(number: VkColorComponentFlags): seq[VkColorComponentFlagBits] = - for value in VkColorComponentFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkColorComponentFlags): bool = cint(a) == cint(b) -type - VkFenceCreateFlagBits* {.size: sizeof(cint).} = enum - VK_FENCE_CREATE_SIGNALED_BIT = 0b00000000000000000000000000000001 -func toBits*(flags: openArray[VkFenceCreateFlagBits]): VkFenceCreateFlags = - for flag in flags: - result = VkFenceCreateFlags(uint(result) or uint(flag)) -func toEnums*(number: VkFenceCreateFlags): seq[VkFenceCreateFlagBits] = - for value in VkFenceCreateFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkFenceCreateFlags): bool = cint(a) == cint(b) -type - VkFormatFeatureFlagBits* {.size: sizeof(cint).} = enum - VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0b00000000000000000000000000000001 - VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0b00000000000000000000000000000010 - VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0b00000000000000000000000000000100 - VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0b00000000000000000000000000001000 - VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0b00000000000000000000000000010000 - VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0b00000000000000000000000000100000 - VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0b00000000000000000000000001000000 - VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0b00000000000000000000000010000000 - VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0b00000000000000000000000100000000 - VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0b00000000000000000000001000000000 - VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0b00000000000000000000010000000000 - VK_FORMAT_FEATURE_BLIT_DST_BIT = 0b00000000000000000000100000000000 - VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0b00000000000000000001000000000000 - VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 0b00000000000000000010000000000000 - VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0b00000000000000000100000000000000 - VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0b00000000000000001000000000000000 - VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0b00000000000000010000000000000000 - VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0b00000000000000100000000000000000 - VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0b00000000000001000000000000000000 - VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0b00000000000010000000000000000000 - VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0b00000000000100000000000000000000 - VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0b00000000001000000000000000000000 - VK_FORMAT_FEATURE_DISJOINT_BIT = 0b00000000010000000000000000000000 - VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0b00000000100000000000000000000000 - VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0b00000001000000000000000000000000 - VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR = 0b00000010000000000000000000000000 - VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR = 0b00000100000000000000000000000000 - VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR = 0b00001000000000000000000000000000 - VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR = 0b00010000000000000000000000000000 - VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0b00100000000000000000000000000000 - VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0b01000000000000000000000000000000 -func toBits*(flags: openArray[VkFormatFeatureFlagBits]): VkFormatFeatureFlags = - for flag in flags: - result = VkFormatFeatureFlags(uint(result) or uint(flag)) -func toEnums*(number: VkFormatFeatureFlags): seq[VkFormatFeatureFlagBits] = - for value in VkFormatFeatureFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkFormatFeatureFlags): bool = cint(a) == cint(b) -type - VkQueryControlFlagBits* {.size: sizeof(cint).} = enum - VK_QUERY_CONTROL_PRECISE_BIT = 0b00000000000000000000000000000001 -func toBits*(flags: openArray[VkQueryControlFlagBits]): VkQueryControlFlags = - for flag in flags: - result = VkQueryControlFlags(uint(result) or uint(flag)) -func toEnums*(number: VkQueryControlFlags): seq[VkQueryControlFlagBits] = - for value in VkQueryControlFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkQueryControlFlags): bool = cint(a) == cint(b) -type - VkQueryResultFlagBits* {.size: sizeof(cint).} = enum - VK_QUERY_RESULT_64_BIT = 0b00000000000000000000000000000001 - VK_QUERY_RESULT_WAIT_BIT = 0b00000000000000000000000000000010 - VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0b00000000000000000000000000000100 - VK_QUERY_RESULT_PARTIAL_BIT = 0b00000000000000000000000000001000 - VK_QUERY_RESULT_WITH_STATUS_BIT_KHR = 0b00000000000000000000000000010000 -func toBits*(flags: openArray[VkQueryResultFlagBits]): VkQueryResultFlags = - for flag in flags: - result = VkQueryResultFlags(uint(result) or uint(flag)) -func toEnums*(number: VkQueryResultFlags): seq[VkQueryResultFlagBits] = - for value in VkQueryResultFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkQueryResultFlags): bool = cint(a) == cint(b) -type - VkCommandBufferUsageFlagBits* {.size: sizeof(cint).} = enum - VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0b00000000000000000000000000000001 - VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0b00000000000000000000000000000010 - VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0b00000000000000000000000000000100 -func toBits*(flags: openArray[VkCommandBufferUsageFlagBits]): VkCommandBufferUsageFlags = - for flag in flags: - result = VkCommandBufferUsageFlags(uint(result) or uint(flag)) -func toEnums*(number: VkCommandBufferUsageFlags): seq[VkCommandBufferUsageFlagBits] = - for value in VkCommandBufferUsageFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkCommandBufferUsageFlags): bool = cint(a) == cint(b) -type - VkQueryPipelineStatisticFlagBits* {.size: sizeof(cint).} = enum - VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0b00000000000000000000000000000001 - VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0b00000000000000000000000000000010 - VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0b00000000000000000000000000000100 - VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0b00000000000000000000000000001000 - VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0b00000000000000000000000000010000 - VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0b00000000000000000000000000100000 - VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0b00000000000000000000000001000000 - VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0b00000000000000000000000010000000 - VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0b00000000000000000000000100000000 - VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0b00000000000000000000001000000000 - VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0b00000000000000000000010000000000 - VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT = 0b00000000000000000000100000000000 - VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT = 0b00000000000000000001000000000000 - VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI = 0b00000000000000000010000000000000 -func toBits*(flags: openArray[VkQueryPipelineStatisticFlagBits]): VkQueryPipelineStatisticFlags = - for flag in flags: - result = VkQueryPipelineStatisticFlags(uint(result) or uint(flag)) -func toEnums*(number: VkQueryPipelineStatisticFlags): seq[VkQueryPipelineStatisticFlagBits] = - for value in VkQueryPipelineStatisticFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkQueryPipelineStatisticFlags): bool = cint(a) == cint(b) -type - VkImageAspectFlagBits* {.size: sizeof(cint).} = enum - VK_IMAGE_ASPECT_COLOR_BIT = 0b00000000000000000000000000000001 - VK_IMAGE_ASPECT_DEPTH_BIT = 0b00000000000000000000000000000010 - VK_IMAGE_ASPECT_STENCIL_BIT = 0b00000000000000000000000000000100 - VK_IMAGE_ASPECT_METADATA_BIT = 0b00000000000000000000000000001000 - VK_IMAGE_ASPECT_PLANE_0_BIT = 0b00000000000000000000000000010000 - VK_IMAGE_ASPECT_PLANE_1_BIT = 0b00000000000000000000000000100000 - VK_IMAGE_ASPECT_PLANE_2_BIT = 0b00000000000000000000000001000000 - VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0b00000000000000000000000010000000 - VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0b00000000000000000000000100000000 - VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0b00000000000000000000001000000000 - VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0b00000000000000000000010000000000 -func toBits*(flags: openArray[VkImageAspectFlagBits]): VkImageAspectFlags = - for flag in flags: - result = VkImageAspectFlags(uint(result) or uint(flag)) -func toEnums*(number: VkImageAspectFlags): seq[VkImageAspectFlagBits] = - for value in VkImageAspectFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkImageAspectFlags): bool = cint(a) == cint(b) -type - VkSparseImageFormatFlagBits* {.size: sizeof(cint).} = enum - VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0b00000000000000000000000000000001 - VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0b00000000000000000000000000000010 - VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0b00000000000000000000000000000100 -func toBits*(flags: openArray[VkSparseImageFormatFlagBits]): VkSparseImageFormatFlags = - for flag in flags: - result = VkSparseImageFormatFlags(uint(result) or uint(flag)) -func toEnums*(number: VkSparseImageFormatFlags): seq[VkSparseImageFormatFlagBits] = - for value in VkSparseImageFormatFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkSparseImageFormatFlags): bool = cint(a) == cint(b) -type - VkSparseMemoryBindFlagBits* {.size: sizeof(cint).} = enum - VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0b00000000000000000000000000000001 -func toBits*(flags: openArray[VkSparseMemoryBindFlagBits]): VkSparseMemoryBindFlags = - for flag in flags: - result = VkSparseMemoryBindFlags(uint(result) or uint(flag)) -func toEnums*(number: VkSparseMemoryBindFlags): seq[VkSparseMemoryBindFlagBits] = - for value in VkSparseMemoryBindFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkSparseMemoryBindFlags): bool = cint(a) == cint(b) -type - VkPipelineStageFlagBits* {.size: sizeof(cint).} = enum - VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0b00000000000000000000000000000001 - VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0b00000000000000000000000000000010 - VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0b00000000000000000000000000000100 - VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0b00000000000000000000000000001000 - VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0b00000000000000000000000000010000 - VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0b00000000000000000000000000100000 - VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0b00000000000000000000000001000000 - VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0b00000000000000000000000010000000 - VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0b00000000000000000000000100000000 - VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0b00000000000000000000001000000000 - VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0b00000000000000000000010000000000 - VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0b00000000000000000000100000000000 - VK_PIPELINE_STAGE_TRANSFER_BIT = 0b00000000000000000001000000000000 - VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0b00000000000000000010000000000000 - VK_PIPELINE_STAGE_HOST_BIT = 0b00000000000000000100000000000000 - VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0b00000000000000001000000000000000 - VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0b00000000000000010000000000000000 - VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = 0b00000000000000100000000000000000 - VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0b00000000000001000000000000000000 - VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT = 0b00000000000010000000000000000000 - VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT = 0b00000000000100000000000000000000 - VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 0b00000000001000000000000000000000 - VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0b00000000010000000000000000000000 - VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0b00000000100000000000000000000000 - VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0b00000001000000000000000000000000 - VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0b00000010000000000000000000000000 -func toBits*(flags: openArray[VkPipelineStageFlagBits]): VkPipelineStageFlags = - for flag in flags: - result = VkPipelineStageFlags(uint(result) or uint(flag)) -func toEnums*(number: VkPipelineStageFlags): seq[VkPipelineStageFlagBits] = - for value in VkPipelineStageFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkPipelineStageFlags): bool = cint(a) == cint(b) -type - VkCommandPoolCreateFlagBits* {.size: sizeof(cint).} = enum - VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0b00000000000000000000000000000001 - VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0b00000000000000000000000000000010 - VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0b00000000000000000000000000000100 -func toBits*(flags: openArray[VkCommandPoolCreateFlagBits]): VkCommandPoolCreateFlags = - for flag in flags: - result = VkCommandPoolCreateFlags(uint(result) or uint(flag)) -func toEnums*(number: VkCommandPoolCreateFlags): seq[VkCommandPoolCreateFlagBits] = - for value in VkCommandPoolCreateFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkCommandPoolCreateFlags): bool = cint(a) == cint(b) -type - VkCommandPoolResetFlagBits* {.size: sizeof(cint).} = enum - VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0b00000000000000000000000000000001 - VK_COMMAND_POOL_RESET_RESERVED_1_BIT_COREAVI = 0b00000000000000000000000000000010 -func toBits*(flags: openArray[VkCommandPoolResetFlagBits]): VkCommandPoolResetFlags = - for flag in flags: - result = VkCommandPoolResetFlags(uint(result) or uint(flag)) -func toEnums*(number: VkCommandPoolResetFlags): seq[VkCommandPoolResetFlagBits] = - for value in VkCommandPoolResetFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkCommandPoolResetFlags): bool = cint(a) == cint(b) -type - VkCommandBufferResetFlagBits* {.size: sizeof(cint).} = enum - VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0b00000000000000000000000000000001 -func toBits*(flags: openArray[VkCommandBufferResetFlagBits]): VkCommandBufferResetFlags = - for flag in flags: - result = VkCommandBufferResetFlags(uint(result) or uint(flag)) -func toEnums*(number: VkCommandBufferResetFlags): seq[VkCommandBufferResetFlagBits] = - for value in VkCommandBufferResetFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkCommandBufferResetFlags): bool = cint(a) == cint(b) -type - VkSampleCountFlagBits* {.size: sizeof(cint).} = enum - VK_SAMPLE_COUNT_1_BIT = 0b00000000000000000000000000000001 - VK_SAMPLE_COUNT_2_BIT = 0b00000000000000000000000000000010 - VK_SAMPLE_COUNT_4_BIT = 0b00000000000000000000000000000100 - VK_SAMPLE_COUNT_8_BIT = 0b00000000000000000000000000001000 - VK_SAMPLE_COUNT_16_BIT = 0b00000000000000000000000000010000 - VK_SAMPLE_COUNT_32_BIT = 0b00000000000000000000000000100000 - VK_SAMPLE_COUNT_64_BIT = 0b00000000000000000000000001000000 -func toBits*(flags: openArray[VkSampleCountFlagBits]): VkSampleCountFlags = - for flag in flags: - result = VkSampleCountFlags(uint(result) or uint(flag)) -func toEnums*(number: VkSampleCountFlags): seq[VkSampleCountFlagBits] = - for value in VkSampleCountFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkSampleCountFlags): bool = cint(a) == cint(b) -type - VkAttachmentDescriptionFlagBits* {.size: sizeof(cint).} = enum - VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0b00000000000000000000000000000001 -func toBits*(flags: openArray[VkAttachmentDescriptionFlagBits]): VkAttachmentDescriptionFlags = - for flag in flags: - result = VkAttachmentDescriptionFlags(uint(result) or uint(flag)) -func toEnums*(number: VkAttachmentDescriptionFlags): seq[VkAttachmentDescriptionFlagBits] = - for value in VkAttachmentDescriptionFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkAttachmentDescriptionFlags): bool = cint(a) == cint(b) -type - VkStencilFaceFlagBits* {.size: sizeof(cint).} = enum - VK_STENCIL_FACE_FRONT_BIT = 0b00000000000000000000000000000001 - VK_STENCIL_FACE_BACK_BIT = 0b00000000000000000000000000000010 -func toBits*(flags: openArray[VkStencilFaceFlagBits]): VkStencilFaceFlags = - for flag in flags: - result = VkStencilFaceFlags(uint(result) or uint(flag)) -func toEnums*(number: VkStencilFaceFlags): seq[VkStencilFaceFlagBits] = - for value in VkStencilFaceFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkStencilFaceFlags): bool = cint(a) == cint(b) -const - VK_STENCIL_FACE_FRONT_AND_BACK* = 0x00000003 -type - VkDescriptorPoolCreateFlagBits* {.size: sizeof(cint).} = enum - VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0b00000000000000000000000000000001 - VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 0b00000000000000000000000000000010 - VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT = 0b00000000000000000000000000000100 -func toBits*(flags: openArray[VkDescriptorPoolCreateFlagBits]): VkDescriptorPoolCreateFlags = - for flag in flags: - result = VkDescriptorPoolCreateFlags(uint(result) or uint(flag)) -func toEnums*(number: VkDescriptorPoolCreateFlags): seq[VkDescriptorPoolCreateFlagBits] = - for value in VkDescriptorPoolCreateFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkDescriptorPoolCreateFlags): bool = cint(a) == cint(b) -type - VkDependencyFlagBits* {.size: sizeof(cint).} = enum - VK_DEPENDENCY_BY_REGION_BIT = 0b00000000000000000000000000000001 - VK_DEPENDENCY_VIEW_LOCAL_BIT = 0b00000000000000000000000000000010 - VK_DEPENDENCY_DEVICE_GROUP_BIT = 0b00000000000000000000000000000100 - VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT = 0b00000000000000000000000000001000 -func toBits*(flags: openArray[VkDependencyFlagBits]): VkDependencyFlags = - for flag in flags: - result = VkDependencyFlags(uint(result) or uint(flag)) -func toEnums*(number: VkDependencyFlags): seq[VkDependencyFlagBits] = - for value in VkDependencyFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkDependencyFlags): bool = cint(a) == cint(b) -type - VkSemaphoreType* {.size: sizeof(cint).} = enum - VK_SEMAPHORE_TYPE_BINARY = 0 - VK_SEMAPHORE_TYPE_TIMELINE = 1 - VkSemaphoreWaitFlagBits* {.size: sizeof(cint).} = enum - VK_SEMAPHORE_WAIT_ANY_BIT = 0b00000000000000000000000000000001 -func toBits*(flags: openArray[VkSemaphoreWaitFlagBits]): VkSemaphoreWaitFlags = - for flag in flags: - result = VkSemaphoreWaitFlags(uint(result) or uint(flag)) -func toEnums*(number: VkSemaphoreWaitFlags): seq[VkSemaphoreWaitFlagBits] = - for value in VkSemaphoreWaitFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkSemaphoreWaitFlags): bool = cint(a) == cint(b) -type - VkPresentModeKHR* {.size: sizeof(cint).} = enum - VK_PRESENT_MODE_IMMEDIATE_KHR = 0 - VK_PRESENT_MODE_MAILBOX_KHR = 1 - VK_PRESENT_MODE_FIFO_KHR = 2 - VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3 - VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000 - VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001 - VkColorSpaceKHR* {.size: sizeof(cint).} = enum - VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0 - VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001 - VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002 - VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT = 1000104003 - VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004 - VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005 - VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006 - VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007 - VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008 - VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009 - VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010 - VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011 - VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012 - VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013 - VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014 - VK_COLOR_SPACE_DISPLAY_NATIVE_AMD = 1000213000 - VkDisplayPlaneAlphaFlagBitsKHR* {.size: sizeof(cint).} = enum - VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0b00000000000000000000000000000001 - VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0b00000000000000000000000000000010 - VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0b00000000000000000000000000000100 - VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0b00000000000000000000000000001000 -func toBits*(flags: openArray[VkDisplayPlaneAlphaFlagBitsKHR]): VkDisplayPlaneAlphaFlagsKHR = - for flag in flags: - result = VkDisplayPlaneAlphaFlagsKHR(uint(result) or uint(flag)) -func toEnums*(number: VkDisplayPlaneAlphaFlagsKHR): seq[VkDisplayPlaneAlphaFlagBitsKHR] = - for value in VkDisplayPlaneAlphaFlagBitsKHR.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkDisplayPlaneAlphaFlagsKHR): bool = cint(a) == cint(b) -type - VkCompositeAlphaFlagBitsKHR* {.size: sizeof(cint).} = enum - VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0b00000000000000000000000000000001 - VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0b00000000000000000000000000000010 - VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0b00000000000000000000000000000100 - VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0b00000000000000000000000000001000 -func toBits*(flags: openArray[VkCompositeAlphaFlagBitsKHR]): VkCompositeAlphaFlagsKHR = - for flag in flags: - result = VkCompositeAlphaFlagsKHR(uint(result) or uint(flag)) -func toEnums*(number: VkCompositeAlphaFlagsKHR): seq[VkCompositeAlphaFlagBitsKHR] = - for value in VkCompositeAlphaFlagBitsKHR.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkCompositeAlphaFlagsKHR): bool = cint(a) == cint(b) -type - VkSurfaceTransformFlagBitsKHR* {.size: sizeof(cint).} = enum - VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0b00000000000000000000000000000001 - VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0b00000000000000000000000000000010 - VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0b00000000000000000000000000000100 - VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0b00000000000000000000000000001000 - VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0b00000000000000000000000000010000 - VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0b00000000000000000000000000100000 - VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0b00000000000000000000000001000000 - VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0b00000000000000000000000010000000 - VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0b00000000000000000000000100000000 -func toBits*(flags: openArray[VkSurfaceTransformFlagBitsKHR]): VkSurfaceTransformFlagsKHR = - for flag in flags: - result = VkSurfaceTransformFlagsKHR(uint(result) or uint(flag)) -func toEnums*(number: VkSurfaceTransformFlagsKHR): seq[VkSurfaceTransformFlagBitsKHR] = - for value in VkSurfaceTransformFlagBitsKHR.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkSurfaceTransformFlagsKHR): bool = cint(a) == cint(b) -type - VkSwapchainImageUsageFlagBitsANDROID* {.size: sizeof(cint).} = enum - VK_SWAPCHAIN_IMAGE_USAGE_SHARED_BIT_ANDROID = 0b00000000000000000000000000000001 -func toBits*(flags: openArray[VkSwapchainImageUsageFlagBitsANDROID]): VkSwapchainImageUsageFlagsANDROID = - for flag in flags: - result = VkSwapchainImageUsageFlagsANDROID(uint(result) or uint(flag)) -func toEnums*(number: VkSwapchainImageUsageFlagsANDROID): seq[VkSwapchainImageUsageFlagBitsANDROID] = - for value in VkSwapchainImageUsageFlagBitsANDROID.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkSwapchainImageUsageFlagsANDROID): bool = cint(a) == cint(b) -type - VkTimeDomainEXT* {.size: sizeof(cint).} = enum - VK_TIME_DOMAIN_DEVICE_EXT = 0 - VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1 - VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2 - VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3 - VkDebugReportFlagBitsEXT* {.size: sizeof(cint).} = enum - VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0b00000000000000000000000000000001 - VK_DEBUG_REPORT_WARNING_BIT_EXT = 0b00000000000000000000000000000010 - VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0b00000000000000000000000000000100 - VK_DEBUG_REPORT_ERROR_BIT_EXT = 0b00000000000000000000000000001000 - VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0b00000000000000000000000000010000 -func toBits*(flags: openArray[VkDebugReportFlagBitsEXT]): VkDebugReportFlagsEXT = - for flag in flags: - result = VkDebugReportFlagsEXT(uint(result) or uint(flag)) -func toEnums*(number: VkDebugReportFlagsEXT): seq[VkDebugReportFlagBitsEXT] = - for value in VkDebugReportFlagBitsEXT.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkDebugReportFlagsEXT): bool = cint(a) == cint(b) -type - VkDebugReportObjectTypeEXT* {.size: sizeof(cint).} = enum - VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0 - VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1 - VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2 - VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3 - VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4 - VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5 - VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6 - VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7 - VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8 - VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9 - VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10 - VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11 - VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12 - VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13 - VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14 - VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15 - VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16 - VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17 - VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18 - VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20 - VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23 - VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24 - VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25 - VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26 - VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27 - VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28 - VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29 - VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30 - VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33 - VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000 - VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001 - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000 - VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000 - VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000 - VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000 - VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000 - VkDeviceMemoryReportEventTypeEXT* {.size: sizeof(cint).} = enum - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3 - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4 - VkRasterizationOrderAMD* {.size: sizeof(cint).} = enum - VK_RASTERIZATION_ORDER_STRICT_AMD = 0 - VK_RASTERIZATION_ORDER_RELAXED_AMD = 1 - VkExternalMemoryHandleTypeFlagBitsNV* {.size: sizeof(cint).} = enum - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0b00000000000000000000000000000001 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0b00000000000000000000000000000010 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0b00000000000000000000000000000100 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0b00000000000000000000000000001000 -func toBits*(flags: openArray[VkExternalMemoryHandleTypeFlagBitsNV]): VkExternalMemoryHandleTypeFlagsNV = - for flag in flags: - result = VkExternalMemoryHandleTypeFlagsNV(uint(result) or uint(flag)) -func toEnums*(number: VkExternalMemoryHandleTypeFlagsNV): seq[VkExternalMemoryHandleTypeFlagBitsNV] = - for value in VkExternalMemoryHandleTypeFlagBitsNV.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkExternalMemoryHandleTypeFlagsNV): bool = cint(a) == cint(b) -type - VkExternalMemoryFeatureFlagBitsNV* {.size: sizeof(cint).} = enum - VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0b00000000000000000000000000000001 - VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0b00000000000000000000000000000010 - VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0b00000000000000000000000000000100 -func toBits*(flags: openArray[VkExternalMemoryFeatureFlagBitsNV]): VkExternalMemoryFeatureFlagsNV = - for flag in flags: - result = VkExternalMemoryFeatureFlagsNV(uint(result) or uint(flag)) -func toEnums*(number: VkExternalMemoryFeatureFlagsNV): seq[VkExternalMemoryFeatureFlagBitsNV] = - for value in VkExternalMemoryFeatureFlagBitsNV.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkExternalMemoryFeatureFlagsNV): bool = cint(a) == cint(b) -type - VkValidationCheckEXT* {.size: sizeof(cint).} = enum - VK_VALIDATION_CHECK_ALL_EXT = 0 - VK_VALIDATION_CHECK_SHADERS_EXT = 1 - VkValidationFeatureEnableEXT* {.size: sizeof(cint).} = enum - VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0 - VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1 - VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2 - VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3 - VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4 - VkValidationFeatureDisableEXT* {.size: sizeof(cint).} = enum - VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0 - VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1 - VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2 - VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3 - VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4 - VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5 - VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6 - VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7 - VkSubgroupFeatureFlagBits* {.size: sizeof(cint).} = enum - VK_SUBGROUP_FEATURE_BASIC_BIT = 0b00000000000000000000000000000001 - VK_SUBGROUP_FEATURE_VOTE_BIT = 0b00000000000000000000000000000010 - VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0b00000000000000000000000000000100 - VK_SUBGROUP_FEATURE_BALLOT_BIT = 0b00000000000000000000000000001000 - VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0b00000000000000000000000000010000 - VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0b00000000000000000000000000100000 - VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0b00000000000000000000000001000000 - VK_SUBGROUP_FEATURE_QUAD_BIT = 0b00000000000000000000000010000000 - VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0b00000000000000000000000100000000 -func toBits*(flags: openArray[VkSubgroupFeatureFlagBits]): VkSubgroupFeatureFlags = - for flag in flags: - result = VkSubgroupFeatureFlags(uint(result) or uint(flag)) -func toEnums*(number: VkSubgroupFeatureFlags): seq[VkSubgroupFeatureFlagBits] = - for value in VkSubgroupFeatureFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkSubgroupFeatureFlags): bool = cint(a) == cint(b) -type - VkIndirectCommandsLayoutUsageFlagBitsNV* {.size: sizeof(cint).} = enum - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 0b00000000000000000000000000000001 - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 0b00000000000000000000000000000010 - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 0b00000000000000000000000000000100 -func toBits*(flags: openArray[VkIndirectCommandsLayoutUsageFlagBitsNV]): VkIndirectCommandsLayoutUsageFlagsNV = - for flag in flags: - result = VkIndirectCommandsLayoutUsageFlagsNV(uint(result) or uint(flag)) -func toEnums*(number: VkIndirectCommandsLayoutUsageFlagsNV): seq[VkIndirectCommandsLayoutUsageFlagBitsNV] = - for value in VkIndirectCommandsLayoutUsageFlagBitsNV.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkIndirectCommandsLayoutUsageFlagsNV): bool = cint(a) == cint(b) -type - VkIndirectStateFlagBitsNV* {.size: sizeof(cint).} = enum - VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 0b00000000000000000000000000000001 -func toBits*(flags: openArray[VkIndirectStateFlagBitsNV]): VkIndirectStateFlagsNV = - for flag in flags: - result = VkIndirectStateFlagsNV(uint(result) or uint(flag)) -func toEnums*(number: VkIndirectStateFlagsNV): seq[VkIndirectStateFlagBitsNV] = - for value in VkIndirectStateFlagBitsNV.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkIndirectStateFlagsNV): bool = cint(a) == cint(b) -type - VkIndirectCommandsTokenTypeNV* {.size: sizeof(cint).} = enum - VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7 - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV = 1000328000 - VkPrivateDataSlotCreateFlagBits* {.size: sizeof(cint).} = enum - VK_PRIVATE_DATA_SLOT_CREATE_RESERVED_0_BIT_NV = 0b00000000000000000000000000000001 -func toBits*(flags: openArray[VkPrivateDataSlotCreateFlagBits]): VkPrivateDataSlotCreateFlags = - for flag in flags: - result = VkPrivateDataSlotCreateFlags(uint(result) or uint(flag)) -func toEnums*(number: VkPrivateDataSlotCreateFlags): seq[VkPrivateDataSlotCreateFlagBits] = - for value in VkPrivateDataSlotCreateFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkPrivateDataSlotCreateFlags): bool = cint(a) == cint(b) -type - VkDescriptorSetLayoutCreateFlagBits* {.size: sizeof(cint).} = enum - VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0b00000000000000000000000000000001 - VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 0b00000000000000000000000000000010 - VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT = 0b00000000000000000000000000000100 - VK_DESCRIPTOR_SET_LAYOUT_CREATE_RESERVED_3_BIT_AMD = 0b00000000000000000000000000001000 - VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 0b00000000000000000000000000010000 - VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT = 0b00000000000000000000000000100000 -func toBits*(flags: openArray[VkDescriptorSetLayoutCreateFlagBits]): VkDescriptorSetLayoutCreateFlags = - for flag in flags: - result = VkDescriptorSetLayoutCreateFlags(uint(result) or uint(flag)) -func toEnums*(number: VkDescriptorSetLayoutCreateFlags): seq[VkDescriptorSetLayoutCreateFlagBits] = - for value in VkDescriptorSetLayoutCreateFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkDescriptorSetLayoutCreateFlags): bool = cint(a) == cint(b) -type - VkExternalMemoryHandleTypeFlagBits* {.size: sizeof(cint).} = enum - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0b00000000000000000000000000000001 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0b00000000000000000000000000000010 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0b00000000000000000000000000000100 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0b00000000000000000000000000001000 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0b00000000000000000000000000010000 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0b00000000000000000000000000100000 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0b00000000000000000000000001000000 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0b00000000000000000000000010000000 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0b00000000000000000000000100000000 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0b00000000000000000000001000000000 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0b00000000000000000000010000000000 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA = 0b00000000000000000000100000000000 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV = 0b00000000000000000001000000000000 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCI_BUF_BIT_NV = 0b00000000000000000010000000000000 -func toBits*(flags: openArray[VkExternalMemoryHandleTypeFlagBits]): VkExternalMemoryHandleTypeFlags = - for flag in flags: - result = VkExternalMemoryHandleTypeFlags(uint(result) or uint(flag)) -func toEnums*(number: VkExternalMemoryHandleTypeFlags): seq[VkExternalMemoryHandleTypeFlagBits] = - for value in VkExternalMemoryHandleTypeFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkExternalMemoryHandleTypeFlags): bool = cint(a) == cint(b) -type - VkExternalMemoryFeatureFlagBits* {.size: sizeof(cint).} = enum - VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0b00000000000000000000000000000001 - VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0b00000000000000000000000000000010 - VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0b00000000000000000000000000000100 -func toBits*(flags: openArray[VkExternalMemoryFeatureFlagBits]): VkExternalMemoryFeatureFlags = - for flag in flags: - result = VkExternalMemoryFeatureFlags(uint(result) or uint(flag)) -func toEnums*(number: VkExternalMemoryFeatureFlags): seq[VkExternalMemoryFeatureFlagBits] = - for value in VkExternalMemoryFeatureFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkExternalMemoryFeatureFlags): bool = cint(a) == cint(b) -type - VkExternalSemaphoreHandleTypeFlagBits* {.size: sizeof(cint).} = enum - VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0b00000000000000000000000000000001 - VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0b00000000000000000000000000000010 - VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0b00000000000000000000000000000100 - VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0b00000000000000000000000000001000 - VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0b00000000000000000000000000010000 - VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SCI_SYNC_OBJ_BIT_NV = 0b00000000000000000000000000100000 - VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA = 0b00000000000000000000000010000000 -func toBits*(flags: openArray[VkExternalSemaphoreHandleTypeFlagBits]): VkExternalSemaphoreHandleTypeFlags = - for flag in flags: - result = VkExternalSemaphoreHandleTypeFlags(uint(result) or uint(flag)) -func toEnums*(number: VkExternalSemaphoreHandleTypeFlags): seq[VkExternalSemaphoreHandleTypeFlagBits] = - for value in VkExternalSemaphoreHandleTypeFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkExternalSemaphoreHandleTypeFlags): bool = cint(a) == cint(b) -type - VkExternalSemaphoreFeatureFlagBits* {.size: sizeof(cint).} = enum - VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0b00000000000000000000000000000001 - VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0b00000000000000000000000000000010 -func toBits*(flags: openArray[VkExternalSemaphoreFeatureFlagBits]): VkExternalSemaphoreFeatureFlags = - for flag in flags: - result = VkExternalSemaphoreFeatureFlags(uint(result) or uint(flag)) -func toEnums*(number: VkExternalSemaphoreFeatureFlags): seq[VkExternalSemaphoreFeatureFlagBits] = - for value in VkExternalSemaphoreFeatureFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkExternalSemaphoreFeatureFlags): bool = cint(a) == cint(b) -type - VkSemaphoreImportFlagBits* {.size: sizeof(cint).} = enum - VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0b00000000000000000000000000000001 -func toBits*(flags: openArray[VkSemaphoreImportFlagBits]): VkSemaphoreImportFlags = - for flag in flags: - result = VkSemaphoreImportFlags(uint(result) or uint(flag)) -func toEnums*(number: VkSemaphoreImportFlags): seq[VkSemaphoreImportFlagBits] = - for value in VkSemaphoreImportFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkSemaphoreImportFlags): bool = cint(a) == cint(b) -type - VkExternalFenceHandleTypeFlagBits* {.size: sizeof(cint).} = enum - VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0b00000000000000000000000000000001 - VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0b00000000000000000000000000000010 - VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0b00000000000000000000000000000100 - VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0b00000000000000000000000000001000 - VK_EXTERNAL_FENCE_HANDLE_TYPE_SCI_SYNC_OBJ_BIT_NV = 0b00000000000000000000000000010000 - VK_EXTERNAL_FENCE_HANDLE_TYPE_SCI_SYNC_FENCE_BIT_NV = 0b00000000000000000000000000100000 -func toBits*(flags: openArray[VkExternalFenceHandleTypeFlagBits]): VkExternalFenceHandleTypeFlags = - for flag in flags: - result = VkExternalFenceHandleTypeFlags(uint(result) or uint(flag)) -func toEnums*(number: VkExternalFenceHandleTypeFlags): seq[VkExternalFenceHandleTypeFlagBits] = - for value in VkExternalFenceHandleTypeFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkExternalFenceHandleTypeFlags): bool = cint(a) == cint(b) -type - VkExternalFenceFeatureFlagBits* {.size: sizeof(cint).} = enum - VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0b00000000000000000000000000000001 - VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0b00000000000000000000000000000010 -func toBits*(flags: openArray[VkExternalFenceFeatureFlagBits]): VkExternalFenceFeatureFlags = - for flag in flags: - result = VkExternalFenceFeatureFlags(uint(result) or uint(flag)) -func toEnums*(number: VkExternalFenceFeatureFlags): seq[VkExternalFenceFeatureFlagBits] = - for value in VkExternalFenceFeatureFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkExternalFenceFeatureFlags): bool = cint(a) == cint(b) -type - VkFenceImportFlagBits* {.size: sizeof(cint).} = enum - VK_FENCE_IMPORT_TEMPORARY_BIT = 0b00000000000000000000000000000001 -func toBits*(flags: openArray[VkFenceImportFlagBits]): VkFenceImportFlags = - for flag in flags: - result = VkFenceImportFlags(uint(result) or uint(flag)) -func toEnums*(number: VkFenceImportFlags): seq[VkFenceImportFlagBits] = - for value in VkFenceImportFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkFenceImportFlags): bool = cint(a) == cint(b) -type - VkSurfaceCounterFlagBitsEXT* {.size: sizeof(cint).} = enum - VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 0b00000000000000000000000000000001 -func toBits*(flags: openArray[VkSurfaceCounterFlagBitsEXT]): VkSurfaceCounterFlagsEXT = - for flag in flags: - result = VkSurfaceCounterFlagsEXT(uint(result) or uint(flag)) -func toEnums*(number: VkSurfaceCounterFlagsEXT): seq[VkSurfaceCounterFlagBitsEXT] = - for value in VkSurfaceCounterFlagBitsEXT.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkSurfaceCounterFlagsEXT): bool = cint(a) == cint(b) -type - VkDisplayPowerStateEXT* {.size: sizeof(cint).} = enum - VK_DISPLAY_POWER_STATE_OFF_EXT = 0 - VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1 - VK_DISPLAY_POWER_STATE_ON_EXT = 2 - VkDeviceEventTypeEXT* {.size: sizeof(cint).} = enum - VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0 - VkDisplayEventTypeEXT* {.size: sizeof(cint).} = enum - VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0 - VkPeerMemoryFeatureFlagBits* {.size: sizeof(cint).} = enum - VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0b00000000000000000000000000000001 - VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 0b00000000000000000000000000000010 - VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 0b00000000000000000000000000000100 - VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0b00000000000000000000000000001000 -func toBits*(flags: openArray[VkPeerMemoryFeatureFlagBits]): VkPeerMemoryFeatureFlags = - for flag in flags: - result = VkPeerMemoryFeatureFlags(uint(result) or uint(flag)) -func toEnums*(number: VkPeerMemoryFeatureFlags): seq[VkPeerMemoryFeatureFlagBits] = - for value in VkPeerMemoryFeatureFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkPeerMemoryFeatureFlags): bool = cint(a) == cint(b) -type - VkMemoryAllocateFlagBits* {.size: sizeof(cint).} = enum - VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0b00000000000000000000000000000001 - VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT = 0b00000000000000000000000000000010 - VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0b00000000000000000000000000000100 -func toBits*(flags: openArray[VkMemoryAllocateFlagBits]): VkMemoryAllocateFlags = - for flag in flags: - result = VkMemoryAllocateFlags(uint(result) or uint(flag)) -func toEnums*(number: VkMemoryAllocateFlags): seq[VkMemoryAllocateFlagBits] = - for value in VkMemoryAllocateFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkMemoryAllocateFlags): bool = cint(a) == cint(b) -type - VkDeviceGroupPresentModeFlagBitsKHR* {.size: sizeof(cint).} = enum - VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0b00000000000000000000000000000001 - VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0b00000000000000000000000000000010 - VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0b00000000000000000000000000000100 - VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0b00000000000000000000000000001000 -func toBits*(flags: openArray[VkDeviceGroupPresentModeFlagBitsKHR]): VkDeviceGroupPresentModeFlagsKHR = - for flag in flags: - result = VkDeviceGroupPresentModeFlagsKHR(uint(result) or uint(flag)) -func toEnums*(number: VkDeviceGroupPresentModeFlagsKHR): seq[VkDeviceGroupPresentModeFlagBitsKHR] = - for value in VkDeviceGroupPresentModeFlagBitsKHR.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkDeviceGroupPresentModeFlagsKHR): bool = cint(a) == cint(b) -type - VkSwapchainCreateFlagBitsKHR* {.size: sizeof(cint).} = enum - VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0b00000000000000000000000000000001 - VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0b00000000000000000000000000000010 - VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 0b00000000000000000000000000000100 - VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT = 0b00000000000000000000000000001000 - VK_SWAPCHAIN_CREATE_RESERVED_4_BIT_EXT = 0b00000000000000000000000000010000 -func toBits*(flags: openArray[VkSwapchainCreateFlagBitsKHR]): VkSwapchainCreateFlagsKHR = - for flag in flags: - result = VkSwapchainCreateFlagsKHR(uint(result) or uint(flag)) -func toEnums*(number: VkSwapchainCreateFlagsKHR): seq[VkSwapchainCreateFlagBitsKHR] = - for value in VkSwapchainCreateFlagBitsKHR.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkSwapchainCreateFlagsKHR): bool = cint(a) == cint(b) -type - VkViewportCoordinateSwizzleNV* {.size: sizeof(cint).} = enum - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1 - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3 - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5 - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6 - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7 - VkDiscardRectangleModeEXT* {.size: sizeof(cint).} = enum - VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0 - VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1 - VkSubpassDescriptionFlagBits* {.size: sizeof(cint).} = enum - VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0b00000000000000000000000000000001 - VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0b00000000000000000000000000000010 - VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = 0b00000000000000000000000000000100 - VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = 0b00000000000000000000000000001000 - VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT = 0b00000000000000000000000000010000 - VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 0b00000000000000000000000000100000 - VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 0b00000000000000000000000001000000 - VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT = 0b00000000000000000000000010000000 -func toBits*(flags: openArray[VkSubpassDescriptionFlagBits]): VkSubpassDescriptionFlags = - for flag in flags: - result = VkSubpassDescriptionFlags(uint(result) or uint(flag)) -func toEnums*(number: VkSubpassDescriptionFlags): seq[VkSubpassDescriptionFlagBits] = - for value in VkSubpassDescriptionFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkSubpassDescriptionFlags): bool = cint(a) == cint(b) -type - VkPointClippingBehavior* {.size: sizeof(cint).} = enum - VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0 - VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1 - VkSamplerReductionMode* {.size: sizeof(cint).} = enum - VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE = 0 - VK_SAMPLER_REDUCTION_MODE_MIN = 1 - VK_SAMPLER_REDUCTION_MODE_MAX = 2 - VkTessellationDomainOrigin* {.size: sizeof(cint).} = enum - VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0 - VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1 - VkSamplerYcbcrModelConversion* {.size: sizeof(cint).} = enum - VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0 - VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1 - VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2 - VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3 - VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4 - VkSamplerYcbcrRange* {.size: sizeof(cint).} = enum - VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0 - VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1 - VkChromaLocation* {.size: sizeof(cint).} = enum - VK_CHROMA_LOCATION_COSITED_EVEN = 0 - VK_CHROMA_LOCATION_MIDPOINT = 1 - VkBlendOverlapEXT* {.size: sizeof(cint).} = enum - VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0 - VK_BLEND_OVERLAP_DISJOINT_EXT = 1 - VK_BLEND_OVERLAP_CONJOINT_EXT = 2 - VkCoverageModulationModeNV* {.size: sizeof(cint).} = enum - VK_COVERAGE_MODULATION_MODE_NONE_NV = 0 - VK_COVERAGE_MODULATION_MODE_RGB_NV = 1 - VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2 - VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3 - VkCoverageReductionModeNV* {.size: sizeof(cint).} = enum - VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0 - VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1 - VkValidationCacheHeaderVersionEXT* {.size: sizeof(cint).} = enum - VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1 - VkShaderInfoTypeAMD* {.size: sizeof(cint).} = enum - VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0 - VK_SHADER_INFO_TYPE_BINARY_AMD = 1 - VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2 - VkQueueGlobalPriorityKHR* {.size: sizeof(cint).} = enum - VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = 128 - VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = 256 - VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = 512 - VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = 1024 - VkDebugUtilsMessageSeverityFlagBitsEXT* {.size: sizeof(cint).} = enum - VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0b00000000000000000000000000000001 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0b00000000000000000000000000010000 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0b00000000000000000000000100000000 - VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0b00000000000000000001000000000000 -func toBits*(flags: openArray[VkDebugUtilsMessageSeverityFlagBitsEXT]): VkDebugUtilsMessageSeverityFlagsEXT = - for flag in flags: - result = VkDebugUtilsMessageSeverityFlagsEXT(uint(result) or uint(flag)) -func toEnums*(number: VkDebugUtilsMessageSeverityFlagsEXT): seq[VkDebugUtilsMessageSeverityFlagBitsEXT] = - for value in VkDebugUtilsMessageSeverityFlagBitsEXT.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkDebugUtilsMessageSeverityFlagsEXT): bool = cint(a) == cint(b) -type - VkDebugUtilsMessageTypeFlagBitsEXT* {.size: sizeof(cint).} = enum - VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0b00000000000000000000000000000001 - VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0b00000000000000000000000000000010 - VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0b00000000000000000000000000000100 - VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT = 0b00000000000000000000000000001000 -func toBits*(flags: openArray[VkDebugUtilsMessageTypeFlagBitsEXT]): VkDebugUtilsMessageTypeFlagsEXT = - for flag in flags: - result = VkDebugUtilsMessageTypeFlagsEXT(uint(result) or uint(flag)) -func toEnums*(number: VkDebugUtilsMessageTypeFlagsEXT): seq[VkDebugUtilsMessageTypeFlagBitsEXT] = - for value in VkDebugUtilsMessageTypeFlagBitsEXT.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkDebugUtilsMessageTypeFlagsEXT): bool = cint(a) == cint(b) -type - VkConservativeRasterizationModeEXT* {.size: sizeof(cint).} = enum - VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0 - VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1 - VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2 - VkDescriptorBindingFlagBits* {.size: sizeof(cint).} = enum - VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT = 0b00000000000000000000000000000001 - VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT = 0b00000000000000000000000000000010 - VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT = 0b00000000000000000000000000000100 - VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT = 0b00000000000000000000000000001000 - VK_DESCRIPTOR_BINDING_RESERVED_4_BIT_QCOM = 0b00000000000000000000000000010000 -func toBits*(flags: openArray[VkDescriptorBindingFlagBits]): VkDescriptorBindingFlags = - for flag in flags: - result = VkDescriptorBindingFlags(uint(result) or uint(flag)) -func toEnums*(number: VkDescriptorBindingFlags): seq[VkDescriptorBindingFlagBits] = - for value in VkDescriptorBindingFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkDescriptorBindingFlags): bool = cint(a) == cint(b) -type - VkVendorId* {.size: sizeof(cint).} = enum - VK_VENDOR_ID_VIV = 65537 - VK_VENDOR_ID_VSI = 65538 - VK_VENDOR_ID_KAZAN = 65539 - VK_VENDOR_ID_CODEPLAY = 65540 - VK_VENDOR_ID_MESA = 65541 - VK_VENDOR_ID_POCL = 65542 - VkDriverId* {.size: sizeof(cint).} = enum - VK_DRIVER_ID_AMD_PROPRIETARY = 1 - VK_DRIVER_ID_AMD_OPEN_SOURCE = 2 - VK_DRIVER_ID_MESA_RADV = 3 - VK_DRIVER_ID_NVIDIA_PROPRIETARY = 4 - VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS = 5 - VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA = 6 - VK_DRIVER_ID_IMAGINATION_PROPRIETARY = 7 - VK_DRIVER_ID_QUALCOMM_PROPRIETARY = 8 - VK_DRIVER_ID_ARM_PROPRIETARY = 9 - VK_DRIVER_ID_GOOGLE_SWIFTSHADER = 10 - VK_DRIVER_ID_GGP_PROPRIETARY = 11 - VK_DRIVER_ID_BROADCOM_PROPRIETARY = 12 - VK_DRIVER_ID_MESA_LLVMPIPE = 13 - VK_DRIVER_ID_MOLTENVK = 14 - VK_DRIVER_ID_COREAVI_PROPRIETARY = 15 - VK_DRIVER_ID_JUICE_PROPRIETARY = 16 - VK_DRIVER_ID_VERISILICON_PROPRIETARY = 17 - VK_DRIVER_ID_MESA_TURNIP = 18 - VK_DRIVER_ID_MESA_V3DV = 19 - VK_DRIVER_ID_MESA_PANVK = 20 - VK_DRIVER_ID_SAMSUNG_PROPRIETARY = 21 - VK_DRIVER_ID_MESA_VENUS = 22 - VK_DRIVER_ID_MESA_DOZEN = 23 - VK_DRIVER_ID_MESA_NVK = 24 - VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA = 25 - VkConditionalRenderingFlagBitsEXT* {.size: sizeof(cint).} = enum - VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 0b00000000000000000000000000000001 -func toBits*(flags: openArray[VkConditionalRenderingFlagBitsEXT]): VkConditionalRenderingFlagsEXT = - for flag in flags: - result = VkConditionalRenderingFlagsEXT(uint(result) or uint(flag)) -func toEnums*(number: VkConditionalRenderingFlagsEXT): seq[VkConditionalRenderingFlagBitsEXT] = - for value in VkConditionalRenderingFlagBitsEXT.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkConditionalRenderingFlagsEXT): bool = cint(a) == cint(b) -type - VkResolveModeFlagBits* {.size: sizeof(cint).} = enum - VK_RESOLVE_MODE_SAMPLE_ZERO_BIT = 0b00000000000000000000000000000001 - VK_RESOLVE_MODE_AVERAGE_BIT = 0b00000000000000000000000000000010 - VK_RESOLVE_MODE_MIN_BIT = 0b00000000000000000000000000000100 - VK_RESOLVE_MODE_MAX_BIT = 0b00000000000000000000000000001000 -func toBits*(flags: openArray[VkResolveModeFlagBits]): VkResolveModeFlags = - for flag in flags: - result = VkResolveModeFlags(uint(result) or uint(flag)) -func toEnums*(number: VkResolveModeFlags): seq[VkResolveModeFlagBits] = - for value in VkResolveModeFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkResolveModeFlags): bool = cint(a) == cint(b) -const - VK_RESOLVE_MODE_NONE* = 0 -type - VkShadingRatePaletteEntryNV* {.size: sizeof(cint).} = enum - VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0 - VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1 - VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2 - VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3 - VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10 - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11 - VkCoarseSampleOrderTypeNV* {.size: sizeof(cint).} = enum - VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0 - VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1 - VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2 - VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3 - VkGeometryInstanceFlagBitsKHR* {.size: sizeof(cint).} = enum - VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 0b00000000000000000000000000000001 - VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 0b00000000000000000000000000000010 - VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 0b00000000000000000000000000000100 - VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 0b00000000000000000000000000001000 - VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT = 0b00000000000000000000000000010000 - VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT = 0b00000000000000000000000000100000 -func toBits*(flags: openArray[VkGeometryInstanceFlagBitsKHR]): VkGeometryInstanceFlagsKHR = - for flag in flags: - result = VkGeometryInstanceFlagsKHR(uint(result) or uint(flag)) -func toEnums*(number: VkGeometryInstanceFlagsKHR): seq[VkGeometryInstanceFlagBitsKHR] = - for value in VkGeometryInstanceFlagBitsKHR.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkGeometryInstanceFlagsKHR): bool = cint(a) == cint(b) -type - VkGeometryFlagBitsKHR* {.size: sizeof(cint).} = enum - VK_GEOMETRY_OPAQUE_BIT_KHR = 0b00000000000000000000000000000001 - VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 0b00000000000000000000000000000010 -func toBits*(flags: openArray[VkGeometryFlagBitsKHR]): VkGeometryFlagsKHR = - for flag in flags: - result = VkGeometryFlagsKHR(uint(result) or uint(flag)) -func toEnums*(number: VkGeometryFlagsKHR): seq[VkGeometryFlagBitsKHR] = - for value in VkGeometryFlagBitsKHR.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkGeometryFlagsKHR): bool = cint(a) == cint(b) -type - VkBuildAccelerationStructureFlagBitsKHR* {.size: sizeof(cint).} = enum - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 0b00000000000000000000000000000001 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 0b00000000000000000000000000000010 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 0b00000000000000000000000000000100 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 0b00000000000000000000000000001000 - VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 0b00000000000000000000000000010000 - VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 0b00000000000000000000000000100000 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT = 0b00000000000000000000000001000000 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT = 0b00000000000000000000000010000000 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT = 0b00000000000000000000000100000000 - VK_BUILD_ACCELERATION_STRUCTURE_RESERVED_BIT_9_NV = 0b00000000000000000000001000000000 - VK_BUILD_ACCELERATION_STRUCTURE_RESERVED_BIT_10_NV = 0b00000000000000000000010000000000 -func toBits*(flags: openArray[VkBuildAccelerationStructureFlagBitsKHR]): VkBuildAccelerationStructureFlagsKHR = - for flag in flags: - result = VkBuildAccelerationStructureFlagsKHR(uint(result) or uint(flag)) -func toEnums*(number: VkBuildAccelerationStructureFlagsKHR): seq[VkBuildAccelerationStructureFlagBitsKHR] = - for value in VkBuildAccelerationStructureFlagBitsKHR.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkBuildAccelerationStructureFlagsKHR): bool = cint(a) == cint(b) -type - VkAccelerationStructureCreateFlagBitsKHR* {.size: sizeof(cint).} = enum - VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 0b00000000000000000000000000000001 - VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 0b00000000000000000000000000000100 - VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0b00000000000000000000000000001000 -func toBits*(flags: openArray[VkAccelerationStructureCreateFlagBitsKHR]): VkAccelerationStructureCreateFlagsKHR = - for flag in flags: - result = VkAccelerationStructureCreateFlagsKHR(uint(result) or uint(flag)) -func toEnums*(number: VkAccelerationStructureCreateFlagsKHR): seq[VkAccelerationStructureCreateFlagBitsKHR] = - for value in VkAccelerationStructureCreateFlagBitsKHR.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkAccelerationStructureCreateFlagsKHR): bool = cint(a) == cint(b) -type - VkCopyAccelerationStructureModeKHR* {.size: sizeof(cint).} = enum - VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0 - VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1 - VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2 - VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3 - VkBuildAccelerationStructureModeKHR* {.size: sizeof(cint).} = enum - VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0 - VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1 - VkAccelerationStructureTypeKHR* {.size: sizeof(cint).} = enum - VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0 - VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1 - VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2 - VkGeometryTypeKHR* {.size: sizeof(cint).} = enum - VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0 - VK_GEOMETRY_TYPE_AABBS_KHR = 1 - VK_GEOMETRY_TYPE_INSTANCES_KHR = 2 - VkAccelerationStructureMemoryRequirementsTypeNV* {.size: sizeof(cint).} = enum - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0 - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1 - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2 - VkAccelerationStructureBuildTypeKHR* {.size: sizeof(cint).} = enum - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0 - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1 - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2 - VkRayTracingShaderGroupTypeKHR* {.size: sizeof(cint).} = enum - VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0 - VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1 - VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2 - VkAccelerationStructureCompatibilityKHR* {.size: sizeof(cint).} = enum - VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0 - VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1 - VkShaderGroupShaderKHR* {.size: sizeof(cint).} = enum - VK_SHADER_GROUP_SHADER_GENERAL_KHR = 0 - VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR = 1 - VK_SHADER_GROUP_SHADER_ANY_HIT_KHR = 2 - VK_SHADER_GROUP_SHADER_INTERSECTION_KHR = 3 - VkMemoryOverallocationBehaviorAMD* {.size: sizeof(cint).} = enum - VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0 - VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1 - VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2 - VkFramebufferCreateFlagBits* {.size: sizeof(cint).} = enum - VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT = 0b00000000000000000000000000000001 -func toBits*(flags: openArray[VkFramebufferCreateFlagBits]): VkFramebufferCreateFlags = - for flag in flags: - result = VkFramebufferCreateFlags(uint(result) or uint(flag)) -func toEnums*(number: VkFramebufferCreateFlags): seq[VkFramebufferCreateFlagBits] = - for value in VkFramebufferCreateFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkFramebufferCreateFlags): bool = cint(a) == cint(b) -type - VkScopeNV* {.size: sizeof(cint).} = enum - VK_SCOPE_DEVICE_NV = 1 - VK_SCOPE_WORKGROUP_NV = 2 - VK_SCOPE_SUBGROUP_NV = 3 - VK_SCOPE_QUEUE_FAMILY_NV = 5 - VkComponentTypeNV* {.size: sizeof(cint).} = enum - VK_COMPONENT_TYPE_FLOAT16_NV = 0 - VK_COMPONENT_TYPE_FLOAT32_NV = 1 - VK_COMPONENT_TYPE_FLOAT64_NV = 2 - VK_COMPONENT_TYPE_SINT8_NV = 3 - VK_COMPONENT_TYPE_SINT16_NV = 4 - VK_COMPONENT_TYPE_SINT32_NV = 5 - VK_COMPONENT_TYPE_SINT64_NV = 6 - VK_COMPONENT_TYPE_UINT8_NV = 7 - VK_COMPONENT_TYPE_UINT16_NV = 8 - VK_COMPONENT_TYPE_UINT32_NV = 9 - VK_COMPONENT_TYPE_UINT64_NV = 10 - VkDeviceDiagnosticsConfigFlagBitsNV* {.size: sizeof(cint).} = enum - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 0b00000000000000000000000000000001 - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 0b00000000000000000000000000000010 - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 0b00000000000000000000000000000100 - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV = 0b00000000000000000000000000001000 -func toBits*(flags: openArray[VkDeviceDiagnosticsConfigFlagBitsNV]): VkDeviceDiagnosticsConfigFlagsNV = - for flag in flags: - result = VkDeviceDiagnosticsConfigFlagsNV(uint(result) or uint(flag)) -func toEnums*(number: VkDeviceDiagnosticsConfigFlagsNV): seq[VkDeviceDiagnosticsConfigFlagBitsNV] = - for value in VkDeviceDiagnosticsConfigFlagBitsNV.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkDeviceDiagnosticsConfigFlagsNV): bool = cint(a) == cint(b) -type - VkPipelineCreationFeedbackFlagBits* {.size: sizeof(cint).} = enum - VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT = 0b00000000000000000000000000000001 - VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT = 0b00000000000000000000000000000010 - VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT = 0b00000000000000000000000000000100 -func toBits*(flags: openArray[VkPipelineCreationFeedbackFlagBits]): VkPipelineCreationFeedbackFlags = - for flag in flags: - result = VkPipelineCreationFeedbackFlags(uint(result) or uint(flag)) -func toEnums*(number: VkPipelineCreationFeedbackFlags): seq[VkPipelineCreationFeedbackFlagBits] = - for value in VkPipelineCreationFeedbackFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkPipelineCreationFeedbackFlags): bool = cint(a) == cint(b) -type - VkFullScreenExclusiveEXT* {.size: sizeof(cint).} = enum - VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT = 0 - VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT = 1 - VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT = 2 - VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT = 3 - VkPerformanceCounterScopeKHR* {.size: sizeof(cint).} = enum - VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0 - VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1 - VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2 - VkMemoryDecompressionMethodFlagBitsNV* {.size: 8.} = enum - VK_MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV = 0b0000000000000000000000000000000000000000000000000000000000000001 -func toBits*(flags: openArray[VkMemoryDecompressionMethodFlagBitsNV]): VkMemoryDecompressionMethodFlagsNV = - for flag in flags: - result = VkMemoryDecompressionMethodFlagsNV(uint64(result) or uint64(flag)) -func toEnums*(number: VkMemoryDecompressionMethodFlagsNV): seq[VkMemoryDecompressionMethodFlagBitsNV] = - for value in VkMemoryDecompressionMethodFlagBitsNV.items: - if (cast[uint64](value) and uint64(number)) > 0: - result.add value -proc `==`*(a, b: VkMemoryDecompressionMethodFlagsNV): bool = uint64(a) == uint64(b) -type - VkPerformanceCounterUnitKHR* {.size: sizeof(cint).} = enum - VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0 - VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1 - VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2 - VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3 - VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4 - VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5 - VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6 - VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7 - VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8 - VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9 - VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10 - VkPerformanceCounterStorageKHR* {.size: sizeof(cint).} = enum - VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0 - VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1 - VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2 - VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3 - VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4 - VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5 - VkPerformanceCounterDescriptionFlagBitsKHR* {.size: sizeof(cint).} = enum - VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 0b00000000000000000000000000000001 - VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 0b00000000000000000000000000000010 -func toBits*(flags: openArray[VkPerformanceCounterDescriptionFlagBitsKHR]): VkPerformanceCounterDescriptionFlagsKHR = - for flag in flags: - result = VkPerformanceCounterDescriptionFlagsKHR(uint(result) or uint(flag)) -func toEnums*(number: VkPerformanceCounterDescriptionFlagsKHR): seq[VkPerformanceCounterDescriptionFlagBitsKHR] = - for value in VkPerformanceCounterDescriptionFlagBitsKHR.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkPerformanceCounterDescriptionFlagsKHR): bool = cint(a) == cint(b) -type - VkPerformanceConfigurationTypeINTEL* {.size: sizeof(cint).} = enum - VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0 - VkQueryPoolSamplingModeINTEL* {.size: sizeof(cint).} = enum - VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0 - VkPerformanceOverrideTypeINTEL* {.size: sizeof(cint).} = enum - VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0 - VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1 - VkPerformanceParameterTypeINTEL* {.size: sizeof(cint).} = enum - VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0 - VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1 - VkPerformanceValueTypeINTEL* {.size: sizeof(cint).} = enum - VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0 - VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1 - VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2 - VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3 - VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4 - VkShaderFloatControlsIndependence* {.size: sizeof(cint).} = enum - VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY = 0 - VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL = 1 - VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE = 2 - VkPipelineExecutableStatisticFormatKHR* {.size: sizeof(cint).} = enum - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2 - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3 - VkLineRasterizationModeEXT* {.size: sizeof(cint).} = enum - VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = 0 - VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = 1 - VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = 2 - VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = 3 - VkFaultLevel* {.size: sizeof(cint).} = enum - VK_FAULT_LEVEL_UNASSIGNED = 0 - VK_FAULT_LEVEL_CRITICAL = 1 - VK_FAULT_LEVEL_RECOVERABLE = 2 - VK_FAULT_LEVEL_WARNING = 3 - VkFaultType* {.size: sizeof(cint).} = enum - VK_FAULT_TYPE_INVALID = 0 - VK_FAULT_TYPE_UNASSIGNED = 1 - VK_FAULT_TYPE_IMPLEMENTATION = 2 - VK_FAULT_TYPE_SYSTEM = 3 - VK_FAULT_TYPE_PHYSICAL_DEVICE = 4 - VK_FAULT_TYPE_COMMAND_BUFFER_FULL = 5 - VK_FAULT_TYPE_INVALID_API_USAGE = 6 - VkFaultQueryBehavior* {.size: sizeof(cint).} = enum - VK_FAULT_QUERY_BEHAVIOR_GET_AND_CLEAR_ALL_FAULTS = 0 - VkToolPurposeFlagBits* {.size: sizeof(cint).} = enum - VK_TOOL_PURPOSE_VALIDATION_BIT = 0b00000000000000000000000000000001 - VK_TOOL_PURPOSE_PROFILING_BIT = 0b00000000000000000000000000000010 - VK_TOOL_PURPOSE_TRACING_BIT = 0b00000000000000000000000000000100 - VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT = 0b00000000000000000000000000001000 - VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT = 0b00000000000000000000000000010000 - VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT = 0b00000000000000000000000000100000 - VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT = 0b00000000000000000000000001000000 -func toBits*(flags: openArray[VkToolPurposeFlagBits]): VkToolPurposeFlags = - for flag in flags: - result = VkToolPurposeFlags(uint(result) or uint(flag)) -func toEnums*(number: VkToolPurposeFlags): seq[VkToolPurposeFlagBits] = - for value in VkToolPurposeFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkToolPurposeFlags): bool = cint(a) == cint(b) -type - VkPipelineMatchControl* {.size: sizeof(cint).} = enum - VK_PIPELINE_MATCH_CONTROL_APPLICATION_UUID_EXACT_MATCH = 0 - VkFragmentShadingRateCombinerOpKHR* {.size: sizeof(cint).} = enum - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3 - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4 - VkFragmentShadingRateNV* {.size: sizeof(cint).} = enum - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9 - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10 - VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11 - VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12 - VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13 - VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14 - VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15 - VkFragmentShadingRateTypeNV* {.size: sizeof(cint).} = enum - VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0 - VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1 - VkSubpassMergeStatusEXT* {.size: sizeof(cint).} = enum - VK_SUBPASS_MERGE_STATUS_MERGED_EXT = 0 - VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT = 1 - VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT = 2 - VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT = 3 - VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT = 4 - VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT = 5 - VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT = 6 - VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT = 7 - VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT = 8 - VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT = 9 - VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT = 10 - VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT = 11 - VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT = 12 - VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT = 13 - VkAccessFlagBits2* {.size: 8.} = enum - VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT = 0b0000000000000000000000000000000000000000000000000000000000000001 - VK_ACCESS_2_INDEX_READ_BIT = 0b0000000000000000000000000000000000000000000000000000000000000010 - VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT = 0b0000000000000000000000000000000000000000000000000000000000000100 - VK_ACCESS_2_UNIFORM_READ_BIT = 0b0000000000000000000000000000000000000000000000000000000000001000 - VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT = 0b0000000000000000000000000000000000000000000000000000000000010000 - VK_ACCESS_2_SHADER_READ_BIT = 0b0000000000000000000000000000000000000000000000000000000000100000 - VK_ACCESS_2_SHADER_WRITE_BIT = 0b0000000000000000000000000000000000000000000000000000000001000000 - VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT = 0b0000000000000000000000000000000000000000000000000000000010000000 - VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT = 0b0000000000000000000000000000000000000000000000000000000100000000 - VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0b0000000000000000000000000000000000000000000000000000001000000000 - VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0b0000000000000000000000000000000000000000000000000000010000000000 - VK_ACCESS_2_TRANSFER_READ_BIT = 0b0000000000000000000000000000000000000000000000000000100000000000 - VK_ACCESS_2_TRANSFER_WRITE_BIT = 0b0000000000000000000000000000000000000000000000000001000000000000 - VK_ACCESS_2_HOST_READ_BIT = 0b0000000000000000000000000000000000000000000000000010000000000000 - VK_ACCESS_2_HOST_WRITE_BIT = 0b0000000000000000000000000000000000000000000000000100000000000000 - VK_ACCESS_2_MEMORY_READ_BIT = 0b0000000000000000000000000000000000000000000000001000000000000000 - VK_ACCESS_2_MEMORY_WRITE_BIT = 0b0000000000000000000000000000000000000000000000010000000000000000 - VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV = 0b0000000000000000000000000000000000000000000000100000000000000000 - VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV = 0b0000000000000000000000000000000000000000000001000000000000000000 - VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0b0000000000000000000000000000000000000000000010000000000000000000 - VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT = 0b0000000000000000000000000000000000000000000100000000000000000000 - VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0b0000000000000000000000000000000000000000001000000000000000000000 - VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0b0000000000000000000000000000000000000000010000000000000000000000 - VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0b0000000000000000000000000000000000000000100000000000000000000000 - VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0b0000000000000000000000000000000000000001000000000000000000000000 - VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0b0000000000000000000000000000000000000010000000000000000000000000 - VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0b0000000000000000000000000000000000000100000000000000000000000000 - VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0b0000000000000000000000000000000000001000000000000000000000000000 - VK_ACCESS_2_SHADER_SAMPLED_READ_BIT = 0b0000000000000000000000000000000100000000000000000000000000000000 - VK_ACCESS_2_SHADER_STORAGE_READ_BIT = 0b0000000000000000000000000000001000000000000000000000000000000000 - VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT = 0b0000000000000000000000000000010000000000000000000000000000000000 - VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR = 0b0000000000000000000000000000100000000000000000000000000000000000 - VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR = 0b0000000000000000000000000001000000000000000000000000000000000000 - VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR = 0b0000000000000000000000000010000000000000000000000000000000000000 - VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR = 0b0000000000000000000000000100000000000000000000000000000000000000 - VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI = 0b0000000000000000000000001000000000000000000000000000000000000000 - VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR = 0b0000000000000000000000010000000000000000000000000000000000000000 - VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT = 0b0000000000000000000000100000000000000000000000000000000000000000 - VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV = 0b0000000000000000000001000000000000000000000000000000000000000000 - VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV = 0b0000000000000000000010000000000000000000000000000000000000000000 - VK_ACCESS_2_MICROMAP_READ_BIT_EXT = 0b0000000000000000000100000000000000000000000000000000000000000000 - VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT = 0b0000000000000000001000000000000000000000000000000000000000000000 - VK_ACCESS_2_RESERVED_46_BIT_EXT = 0b0000000000000000010000000000000000000000000000000000000000000000 -func toBits*(flags: openArray[VkAccessFlagBits2]): VkAccessFlags2 = - for flag in flags: - result = VkAccessFlags2(uint64(result) or uint64(flag)) -func toEnums*(number: VkAccessFlags2): seq[VkAccessFlagBits2] = - for value in VkAccessFlagBits2.items: - if (cast[uint64](value) and uint64(number)) > 0: - result.add value -proc `==`*(a, b: VkAccessFlags2): bool = uint64(a) == uint64(b) -const - VK_ACCESS_2_NONE* = 0 -type - VkPipelineStageFlagBits2* {.size: 8.} = enum - VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT = 0b0000000000000000000000000000000000000000000000000000000000000001 - VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT = 0b0000000000000000000000000000000000000000000000000000000000000010 - VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT = 0b0000000000000000000000000000000000000000000000000000000000000100 - VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT = 0b0000000000000000000000000000000000000000000000000000000000001000 - VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT = 0b0000000000000000000000000000000000000000000000000000000000010000 - VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT = 0b0000000000000000000000000000000000000000000000000000000000100000 - VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT = 0b0000000000000000000000000000000000000000000000000000000001000000 - VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT = 0b0000000000000000000000000000000000000000000000000000000010000000 - VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT = 0b0000000000000000000000000000000000000000000000000000000100000000 - VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT = 0b0000000000000000000000000000000000000000000000000000001000000000 - VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT = 0b0000000000000000000000000000000000000000000000000000010000000000 - VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT = 0b0000000000000000000000000000000000000000000000000000100000000000 - VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT = 0b0000000000000000000000000000000000000000000000000001000000000000 - VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT = 0b0000000000000000000000000000000000000000000000000010000000000000 - VK_PIPELINE_STAGE_2_HOST_BIT = 0b0000000000000000000000000000000000000000000000000100000000000000 - VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT = 0b0000000000000000000000000000000000000000000000001000000000000000 - VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT = 0b0000000000000000000000000000000000000000000000010000000000000000 - VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV = 0b0000000000000000000000000000000000000000000000100000000000000000 - VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0b0000000000000000000000000000000000000000000001000000000000000000 - VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT = 0b0000000000000000000000000000000000000000000010000000000000000000 - VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT = 0b0000000000000000000000000000000000000000000100000000000000000000 - VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR = 0b0000000000000000000000000000000000000000001000000000000000000000 - VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0b0000000000000000000000000000000000000000010000000000000000000000 - VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0b0000000000000000000000000000000000000000100000000000000000000000 - VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT = 0b0000000000000000000000000000000000000001000000000000000000000000 - VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0b0000000000000000000000000000000000000010000000000000000000000000 - VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR = 0b0000000000000000000000000000000000000100000000000000000000000000 - VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR = 0b0000000000000000000000000000000000001000000000000000000000000000 - VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR = 0b0000000000000000000000000000000000010000000000000000000000000000 - VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV = 0b0000000000000000000000000000000000100000000000000000000000000000 - VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT = 0b0000000000000000000000000000000001000000000000000000000000000000 - VK_PIPELINE_STAGE_2_COPY_BIT = 0b0000000000000000000000000000000100000000000000000000000000000000 - VK_PIPELINE_STAGE_2_RESOLVE_BIT = 0b0000000000000000000000000000001000000000000000000000000000000000 - VK_PIPELINE_STAGE_2_BLIT_BIT = 0b0000000000000000000000000000010000000000000000000000000000000000 - VK_PIPELINE_STAGE_2_CLEAR_BIT = 0b0000000000000000000000000000100000000000000000000000000000000000 - VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT = 0b0000000000000000000000000001000000000000000000000000000000000000 - VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT = 0b0000000000000000000000000010000000000000000000000000000000000000 - VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT = 0b0000000000000000000000000100000000000000000000000000000000000000 - VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI = 0b0000000000000000000000001000000000000000000000000000000000000000 - VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI = 0b0000000000000000000000010000000000000000000000000000000000000000 - VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI = 0b0000000000000000000000100000000000000000000000000000000000000000 -func toBits*(flags: openArray[VkPipelineStageFlagBits2]): VkPipelineStageFlags2 = - for flag in flags: - result = VkPipelineStageFlags2(uint64(result) or uint64(flag)) -func toEnums*(number: VkPipelineStageFlags2): seq[VkPipelineStageFlagBits2] = - for value in VkPipelineStageFlagBits2.items: - if (cast[uint64](value) and uint64(number)) > 0: - result.add value -proc `==`*(a, b: VkPipelineStageFlags2): bool = uint64(a) == uint64(b) -const - VK_PIPELINE_STAGE_2_NONE* = 0 -type - VkSubmitFlagBits* {.size: sizeof(cint).} = enum - VK_SUBMIT_PROTECTED_BIT = 0b00000000000000000000000000000001 -func toBits*(flags: openArray[VkSubmitFlagBits]): VkSubmitFlags = - for flag in flags: - result = VkSubmitFlags(uint(result) or uint(flag)) -func toEnums*(number: VkSubmitFlags): seq[VkSubmitFlagBits] = - for value in VkSubmitFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkSubmitFlags): bool = cint(a) == cint(b) -type - VkEventCreateFlagBits* {.size: sizeof(cint).} = enum - VK_EVENT_CREATE_DEVICE_ONLY_BIT = 0b00000000000000000000000000000001 -func toBits*(flags: openArray[VkEventCreateFlagBits]): VkEventCreateFlags = - for flag in flags: - result = VkEventCreateFlags(uint(result) or uint(flag)) -func toEnums*(number: VkEventCreateFlags): seq[VkEventCreateFlagBits] = - for value in VkEventCreateFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkEventCreateFlags): bool = cint(a) == cint(b) -type - VkPipelineLayoutCreateFlagBits* {.size: sizeof(cint).} = enum - VK_PIPELINE_LAYOUT_CREATE_RESERVED_0_BIT_AMD = 0b00000000000000000000000000000001 - VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT = 0b00000000000000000000000000000010 -func toBits*(flags: openArray[VkPipelineLayoutCreateFlagBits]): VkPipelineLayoutCreateFlags = - for flag in flags: - result = VkPipelineLayoutCreateFlags(uint(result) or uint(flag)) -func toEnums*(number: VkPipelineLayoutCreateFlags): seq[VkPipelineLayoutCreateFlagBits] = - for value in VkPipelineLayoutCreateFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkPipelineLayoutCreateFlags): bool = cint(a) == cint(b) -type - VkSciSyncClientTypeNV* {.size: sizeof(cint).} = enum - VK_SCI_SYNC_CLIENT_TYPE_SIGNALER_NV = 0 - VK_SCI_SYNC_CLIENT_TYPE_WAITER_NV = 1 - VK_SCI_SYNC_CLIENT_TYPE_SIGNALER_WAITER_NV = 2 - VkSciSyncPrimitiveTypeNV* {.size: sizeof(cint).} = enum - VK_SCI_SYNC_PRIMITIVE_TYPE_FENCE_NV = 0 - VK_SCI_SYNC_PRIMITIVE_TYPE_SEMAPHORE_NV = 1 - VkProvokingVertexModeEXT* {.size: sizeof(cint).} = enum - VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0 - VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1 - VkPipelineCacheValidationVersion* {.size: sizeof(cint).} = enum - VK_PIPELINE_CACHE_VALIDATION_VERSION_SAFETY_CRITICAL_ONE = 1 - VkAccelerationStructureMotionInstanceTypeNV* {.size: sizeof(cint).} = enum - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0 - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1 - VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2 - VkPipelineColorBlendStateCreateFlagBits* {.size: sizeof(cint).} = enum - VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT = 0b00000000000000000000000000000001 -func toBits*(flags: openArray[VkPipelineColorBlendStateCreateFlagBits]): VkPipelineColorBlendStateCreateFlags = - for flag in flags: - result = VkPipelineColorBlendStateCreateFlags(uint(result) or uint(flag)) -func toEnums*(number: VkPipelineColorBlendStateCreateFlags): seq[VkPipelineColorBlendStateCreateFlagBits] = - for value in VkPipelineColorBlendStateCreateFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkPipelineColorBlendStateCreateFlags): bool = cint(a) == cint(b) -type - VkPipelineDepthStencilStateCreateFlagBits* {.size: sizeof(cint).} = enum - VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 0b00000000000000000000000000000001 - VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 0b00000000000000000000000000000010 -func toBits*(flags: openArray[VkPipelineDepthStencilStateCreateFlagBits]): VkPipelineDepthStencilStateCreateFlags = - for flag in flags: - result = VkPipelineDepthStencilStateCreateFlags(uint(result) or uint(flag)) -func toEnums*(number: VkPipelineDepthStencilStateCreateFlags): seq[VkPipelineDepthStencilStateCreateFlagBits] = - for value in VkPipelineDepthStencilStateCreateFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkPipelineDepthStencilStateCreateFlags): bool = cint(a) == cint(b) -type - VkGraphicsPipelineLibraryFlagBitsEXT* {.size: sizeof(cint).} = enum - VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT = 0b00000000000000000000000000000001 - VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT = 0b00000000000000000000000000000010 - VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT = 0b00000000000000000000000000000100 - VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT = 0b00000000000000000000000000001000 -func toBits*(flags: openArray[VkGraphicsPipelineLibraryFlagBitsEXT]): VkGraphicsPipelineLibraryFlagsEXT = - for flag in flags: - result = VkGraphicsPipelineLibraryFlagsEXT(uint(result) or uint(flag)) -func toEnums*(number: VkGraphicsPipelineLibraryFlagsEXT): seq[VkGraphicsPipelineLibraryFlagBitsEXT] = - for value in VkGraphicsPipelineLibraryFlagBitsEXT.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkGraphicsPipelineLibraryFlagsEXT): bool = cint(a) == cint(b) -type - VkDeviceAddressBindingFlagBitsEXT* {.size: sizeof(cint).} = enum - VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT = 0b00000000000000000000000000000001 -func toBits*(flags: openArray[VkDeviceAddressBindingFlagBitsEXT]): VkDeviceAddressBindingFlagsEXT = - for flag in flags: - result = VkDeviceAddressBindingFlagsEXT(uint(result) or uint(flag)) -func toEnums*(number: VkDeviceAddressBindingFlagsEXT): seq[VkDeviceAddressBindingFlagBitsEXT] = - for value in VkDeviceAddressBindingFlagBitsEXT.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkDeviceAddressBindingFlagsEXT): bool = cint(a) == cint(b) -type - VkDeviceAddressBindingTypeEXT* {.size: sizeof(cint).} = enum - VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT = 0 - VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT = 1 - VkPresentScalingFlagBitsEXT* {.size: sizeof(cint).} = enum - VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT = 0b00000000000000000000000000000001 - VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT = 0b00000000000000000000000000000010 - VK_PRESENT_SCALING_STRETCH_BIT_EXT = 0b00000000000000000000000000000100 -func toBits*(flags: openArray[VkPresentScalingFlagBitsEXT]): VkPresentScalingFlagsEXT = - for flag in flags: - result = VkPresentScalingFlagsEXT(uint(result) or uint(flag)) -func toEnums*(number: VkPresentScalingFlagsEXT): seq[VkPresentScalingFlagBitsEXT] = - for value in VkPresentScalingFlagBitsEXT.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkPresentScalingFlagsEXT): bool = cint(a) == cint(b) -type - VkPresentGravityFlagBitsEXT* {.size: sizeof(cint).} = enum - VK_PRESENT_GRAVITY_MIN_BIT_EXT = 0b00000000000000000000000000000001 - VK_PRESENT_GRAVITY_MAX_BIT_EXT = 0b00000000000000000000000000000010 - VK_PRESENT_GRAVITY_CENTERED_BIT_EXT = 0b00000000000000000000000000000100 -func toBits*(flags: openArray[VkPresentGravityFlagBitsEXT]): VkPresentGravityFlagsEXT = - for flag in flags: - result = VkPresentGravityFlagsEXT(uint(result) or uint(flag)) -func toEnums*(number: VkPresentGravityFlagsEXT): seq[VkPresentGravityFlagBitsEXT] = - for value in VkPresentGravityFlagBitsEXT.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkPresentGravityFlagsEXT): bool = cint(a) == cint(b) -type - VkVideoCodecOperationFlagBitsKHR* {.size: sizeof(cint).} = enum - VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR = 0b00000000000000000000000000000001 - VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR = 0b00000000000000000000000000000010 - VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT = 0b00000000000000010000000000000000 - VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT = 0b00000000000000100000000000000000 -func toBits*(flags: openArray[VkVideoCodecOperationFlagBitsKHR]): VkVideoCodecOperationFlagsKHR = - for flag in flags: - result = VkVideoCodecOperationFlagsKHR(uint(result) or uint(flag)) -func toEnums*(number: VkVideoCodecOperationFlagsKHR): seq[VkVideoCodecOperationFlagBitsKHR] = - for value in VkVideoCodecOperationFlagBitsKHR.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkVideoCodecOperationFlagsKHR): bool = cint(a) == cint(b) -const - VK_VIDEO_CODEC_OPERATION_NONE_KHR* = 0 -type - VkVideoChromaSubsamplingFlagBitsKHR* {.size: sizeof(cint).} = enum - VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR = 0b00000000000000000000000000000001 - VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR = 0b00000000000000000000000000000010 - VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR = 0b00000000000000000000000000000100 - VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR = 0b00000000000000000000000000001000 -func toBits*(flags: openArray[VkVideoChromaSubsamplingFlagBitsKHR]): VkVideoChromaSubsamplingFlagsKHR = - for flag in flags: - result = VkVideoChromaSubsamplingFlagsKHR(uint(result) or uint(flag)) -func toEnums*(number: VkVideoChromaSubsamplingFlagsKHR): seq[VkVideoChromaSubsamplingFlagBitsKHR] = - for value in VkVideoChromaSubsamplingFlagBitsKHR.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkVideoChromaSubsamplingFlagsKHR): bool = cint(a) == cint(b) -const - VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR* = 0 -type - VkVideoComponentBitDepthFlagBitsKHR* {.size: sizeof(cint).} = enum - VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR = 0b00000000000000000000000000000001 - VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR = 0b00000000000000000000000000000100 - VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR = 0b00000000000000000000000000010000 -func toBits*(flags: openArray[VkVideoComponentBitDepthFlagBitsKHR]): VkVideoComponentBitDepthFlagsKHR = - for flag in flags: - result = VkVideoComponentBitDepthFlagsKHR(uint(result) or uint(flag)) -func toEnums*(number: VkVideoComponentBitDepthFlagsKHR): seq[VkVideoComponentBitDepthFlagBitsKHR] = - for value in VkVideoComponentBitDepthFlagBitsKHR.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkVideoComponentBitDepthFlagsKHR): bool = cint(a) == cint(b) -const - VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR* = 0 -type - VkVideoCapabilityFlagBitsKHR* {.size: sizeof(cint).} = enum - VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR = 0b00000000000000000000000000000001 - VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR = 0b00000000000000000000000000000010 -func toBits*(flags: openArray[VkVideoCapabilityFlagBitsKHR]): VkVideoCapabilityFlagsKHR = - for flag in flags: - result = VkVideoCapabilityFlagsKHR(uint(result) or uint(flag)) -func toEnums*(number: VkVideoCapabilityFlagsKHR): seq[VkVideoCapabilityFlagBitsKHR] = - for value in VkVideoCapabilityFlagBitsKHR.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkVideoCapabilityFlagsKHR): bool = cint(a) == cint(b) -type - VkVideoSessionCreateFlagBitsKHR* {.size: sizeof(cint).} = enum - VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR = 0b00000000000000000000000000000001 -func toBits*(flags: openArray[VkVideoSessionCreateFlagBitsKHR]): VkVideoSessionCreateFlagsKHR = - for flag in flags: - result = VkVideoSessionCreateFlagsKHR(uint(result) or uint(flag)) -func toEnums*(number: VkVideoSessionCreateFlagsKHR): seq[VkVideoSessionCreateFlagBitsKHR] = - for value in VkVideoSessionCreateFlagBitsKHR.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkVideoSessionCreateFlagsKHR): bool = cint(a) == cint(b) -type - VkVideoDecodeH264PictureLayoutFlagBitsKHR* {.size: sizeof(cint).} = enum - VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR = 0b00000000000000000000000000000001 - VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR = 0b00000000000000000000000000000010 -func toBits*(flags: openArray[VkVideoDecodeH264PictureLayoutFlagBitsKHR]): VkVideoDecodeH264PictureLayoutFlagsKHR = - for flag in flags: - result = VkVideoDecodeH264PictureLayoutFlagsKHR(uint(result) or uint(flag)) -func toEnums*(number: VkVideoDecodeH264PictureLayoutFlagsKHR): seq[VkVideoDecodeH264PictureLayoutFlagBitsKHR] = - for value in VkVideoDecodeH264PictureLayoutFlagBitsKHR.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkVideoDecodeH264PictureLayoutFlagsKHR): bool = cint(a) == cint(b) -const - VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR* = 0 -type - VkVideoCodingControlFlagBitsKHR* {.size: sizeof(cint).} = enum - VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR = 0b00000000000000000000000000000001 - VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR = 0b00000000000000000000000000000010 - VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_LAYER_BIT_KHR = 0b00000000000000000000000000000100 -func toBits*(flags: openArray[VkVideoCodingControlFlagBitsKHR]): VkVideoCodingControlFlagsKHR = - for flag in flags: - result = VkVideoCodingControlFlagsKHR(uint(result) or uint(flag)) -func toEnums*(number: VkVideoCodingControlFlagsKHR): seq[VkVideoCodingControlFlagBitsKHR] = - for value in VkVideoCodingControlFlagBitsKHR.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkVideoCodingControlFlagsKHR): bool = cint(a) == cint(b) -type - VkQueryResultStatusKHR* {.size: sizeof(cint).} = enum - VK_QUERY_RESULT_STATUS_ERROR_KHR = -1 - VK_QUERY_RESULT_STATUS_NOT_READY_KHR = 0 - VK_QUERY_RESULT_STATUS_COMPLETE_KHR = 1 - VkVideoDecodeUsageFlagBitsKHR* {.size: sizeof(cint).} = enum - VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR = 0b00000000000000000000000000000001 - VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR = 0b00000000000000000000000000000010 - VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR = 0b00000000000000000000000000000100 -func toBits*(flags: openArray[VkVideoDecodeUsageFlagBitsKHR]): VkVideoDecodeUsageFlagsKHR = - for flag in flags: - result = VkVideoDecodeUsageFlagsKHR(uint(result) or uint(flag)) -func toEnums*(number: VkVideoDecodeUsageFlagsKHR): seq[VkVideoDecodeUsageFlagBitsKHR] = - for value in VkVideoDecodeUsageFlagBitsKHR.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkVideoDecodeUsageFlagsKHR): bool = cint(a) == cint(b) -const - VK_VIDEO_DECODE_USAGE_DEFAULT_KHR* = 0 -type - VkVideoDecodeCapabilityFlagBitsKHR* {.size: sizeof(cint).} = enum - VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR = 0b00000000000000000000000000000001 - VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR = 0b00000000000000000000000000000010 -func toBits*(flags: openArray[VkVideoDecodeCapabilityFlagBitsKHR]): VkVideoDecodeCapabilityFlagsKHR = - for flag in flags: - result = VkVideoDecodeCapabilityFlagsKHR(uint(result) or uint(flag)) -func toEnums*(number: VkVideoDecodeCapabilityFlagsKHR): seq[VkVideoDecodeCapabilityFlagBitsKHR] = - for value in VkVideoDecodeCapabilityFlagBitsKHR.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkVideoDecodeCapabilityFlagsKHR): bool = cint(a) == cint(b) -type - VkVideoEncodeUsageFlagBitsKHR* {.size: sizeof(cint).} = enum - VK_VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHR = 0b00000000000000000000000000000001 - VK_VIDEO_ENCODE_USAGE_STREAMING_BIT_KHR = 0b00000000000000000000000000000010 - VK_VIDEO_ENCODE_USAGE_RECORDING_BIT_KHR = 0b00000000000000000000000000000100 - VK_VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHR = 0b00000000000000000000000000001000 -func toBits*(flags: openArray[VkVideoEncodeUsageFlagBitsKHR]): VkVideoEncodeUsageFlagsKHR = - for flag in flags: - result = VkVideoEncodeUsageFlagsKHR(uint(result) or uint(flag)) -func toEnums*(number: VkVideoEncodeUsageFlagsKHR): seq[VkVideoEncodeUsageFlagBitsKHR] = - for value in VkVideoEncodeUsageFlagBitsKHR.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkVideoEncodeUsageFlagsKHR): bool = cint(a) == cint(b) -const - VK_VIDEO_ENCODE_USAGE_DEFAULT_KHR* = 0 -type - VkVideoEncodeContentFlagBitsKHR* {.size: sizeof(cint).} = enum - VK_VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHR = 0b00000000000000000000000000000001 - VK_VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHR = 0b00000000000000000000000000000010 - VK_VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHR = 0b00000000000000000000000000000100 -func toBits*(flags: openArray[VkVideoEncodeContentFlagBitsKHR]): VkVideoEncodeContentFlagsKHR = - for flag in flags: - result = VkVideoEncodeContentFlagsKHR(uint(result) or uint(flag)) -func toEnums*(number: VkVideoEncodeContentFlagsKHR): seq[VkVideoEncodeContentFlagBitsKHR] = - for value in VkVideoEncodeContentFlagBitsKHR.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkVideoEncodeContentFlagsKHR): bool = cint(a) == cint(b) -const - VK_VIDEO_ENCODE_CONTENT_DEFAULT_KHR* = 0 -type - VkVideoEncodeTuningModeKHR* {.size: sizeof(cint).} = enum - VK_VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHR = 0 - VK_VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHR = 1 - VK_VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHR = 2 - VK_VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHR = 3 - VK_VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHR = 4 - VkVideoEncodeCapabilityFlagBitsKHR* {.size: sizeof(cint).} = enum - VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR = 0b00000000000000000000000000000001 -func toBits*(flags: openArray[VkVideoEncodeCapabilityFlagBitsKHR]): VkVideoEncodeCapabilityFlagsKHR = - for flag in flags: - result = VkVideoEncodeCapabilityFlagsKHR(uint(result) or uint(flag)) -func toEnums*(number: VkVideoEncodeCapabilityFlagsKHR): seq[VkVideoEncodeCapabilityFlagBitsKHR] = - for value in VkVideoEncodeCapabilityFlagBitsKHR.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkVideoEncodeCapabilityFlagsKHR): bool = cint(a) == cint(b) -type - VkVideoEncodeRateControlModeFlagBitsKHR* {.size: sizeof(cint).} = enum - VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR = 0b00000000000000000000000000000001 - VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR = 0b00000000000000000000000000000010 - VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR = 0b00000000000000000000000000000100 -func toBits*(flags: openArray[VkVideoEncodeRateControlModeFlagBitsKHR]): VkVideoEncodeRateControlModeFlagsKHR = - for flag in flags: - result = VkVideoEncodeRateControlModeFlagsKHR(uint(result) or uint(flag)) -func toEnums*(number: VkVideoEncodeRateControlModeFlagsKHR): seq[VkVideoEncodeRateControlModeFlagBitsKHR] = - for value in VkVideoEncodeRateControlModeFlagBitsKHR.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkVideoEncodeRateControlModeFlagsKHR): bool = cint(a) == cint(b) -type - VkVideoEncodeH264CapabilityFlagBitsEXT* {.size: sizeof(cint).} = enum - VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_ENABLED_BIT_EXT = 0b00000000000000000000000000000001 - VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_DISABLED_BIT_EXT = 0b00000000000000000000000000000010 - VK_VIDEO_ENCODE_H264_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT = 0b00000000000000000000000000000100 - VK_VIDEO_ENCODE_H264_CAPABILITY_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_BIT_EXT = 0b00000000000000000000000000001000 - VK_VIDEO_ENCODE_H264_CAPABILITY_SCALING_LISTS_BIT_EXT = 0b00000000000000000000000000010000 - VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_EXT = 0b00000000000000000000000000100000 - VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT = 0b00000000000000000000000001000000 - VK_VIDEO_ENCODE_H264_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT = 0b00000000000000000000000010000000 - VK_VIDEO_ENCODE_H264_CAPABILITY_PIC_INIT_QP_MINUS26_BIT_EXT = 0b00000000000000000000000100000000 - VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_BIT_EXT = 0b00000000000000000000001000000000 - VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_EXPLICIT_BIT_EXT = 0b00000000000000000000010000000000 - VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_IMPLICIT_BIT_EXT = 0b00000000000000000000100000000000 - VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT = 0b00000000000000000001000000000000 - VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT = 0b00000000000000000010000000000000 - VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT = 0b00000000000000000100000000000000 - VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT = 0b00000000000000001000000000000000 - VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT = 0b00000000000000010000000000000000 - VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT = 0b00000000000000100000000000000000 - VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT = 0b00000000000001000000000000000000 - VK_VIDEO_ENCODE_H264_CAPABILITY_DISABLE_DIRECT_SPATIAL_MV_PRED_BIT_EXT = 0b00000000000010000000000000000000 - VK_VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT = 0b00000000000100000000000000000000 - VK_VIDEO_ENCODE_H264_CAPABILITY_SLICE_MB_COUNT_BIT_EXT = 0b00000000001000000000000000000000 - VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_EXT = 0b00000000010000000000000000000000 - VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT = 0b00000000100000000000000000000000 - VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT = 0b00000001000000000000000000000000 -func toBits*(flags: openArray[VkVideoEncodeH264CapabilityFlagBitsEXT]): VkVideoEncodeH264CapabilityFlagsEXT = - for flag in flags: - result = VkVideoEncodeH264CapabilityFlagsEXT(uint(result) or uint(flag)) -func toEnums*(number: VkVideoEncodeH264CapabilityFlagsEXT): seq[VkVideoEncodeH264CapabilityFlagBitsEXT] = - for value in VkVideoEncodeH264CapabilityFlagBitsEXT.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkVideoEncodeH264CapabilityFlagsEXT): bool = cint(a) == cint(b) -type - VkVideoEncodeH264InputModeFlagBitsEXT* {.size: sizeof(cint).} = enum - VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT = 0b00000000000000000000000000000001 - VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT = 0b00000000000000000000000000000010 - VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT = 0b00000000000000000000000000000100 -func toBits*(flags: openArray[VkVideoEncodeH264InputModeFlagBitsEXT]): VkVideoEncodeH264InputModeFlagsEXT = - for flag in flags: - result = VkVideoEncodeH264InputModeFlagsEXT(uint(result) or uint(flag)) -func toEnums*(number: VkVideoEncodeH264InputModeFlagsEXT): seq[VkVideoEncodeH264InputModeFlagBitsEXT] = - for value in VkVideoEncodeH264InputModeFlagBitsEXT.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkVideoEncodeH264InputModeFlagsEXT): bool = cint(a) == cint(b) -type - VkVideoEncodeH264OutputModeFlagBitsEXT* {.size: sizeof(cint).} = enum - VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT = 0b00000000000000000000000000000001 - VK_VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT = 0b00000000000000000000000000000010 - VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT = 0b00000000000000000000000000000100 -func toBits*(flags: openArray[VkVideoEncodeH264OutputModeFlagBitsEXT]): VkVideoEncodeH264OutputModeFlagsEXT = - for flag in flags: - result = VkVideoEncodeH264OutputModeFlagsEXT(uint(result) or uint(flag)) -func toEnums*(number: VkVideoEncodeH264OutputModeFlagsEXT): seq[VkVideoEncodeH264OutputModeFlagBitsEXT] = - for value in VkVideoEncodeH264OutputModeFlagBitsEXT.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkVideoEncodeH264OutputModeFlagsEXT): bool = cint(a) == cint(b) -type - VkVideoEncodeH264RateControlStructureEXT* {.size: sizeof(cint).} = enum - VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT = 0 - VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAT_EXT = 1 - VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_DYADIC_EXT = 2 - VkImageConstraintsInfoFlagBitsFUCHSIA* {.size: sizeof(cint).} = enum - VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA = 0b00000000000000000000000000000001 - VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA = 0b00000000000000000000000000000010 - VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA = 0b00000000000000000000000000000100 - VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA = 0b00000000000000000000000000001000 - VK_IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA = 0b00000000000000000000000000010000 -func toBits*(flags: openArray[VkImageConstraintsInfoFlagBitsFUCHSIA]): VkImageConstraintsInfoFlagsFUCHSIA = - for flag in flags: - result = VkImageConstraintsInfoFlagsFUCHSIA(uint(result) or uint(flag)) -func toEnums*(number: VkImageConstraintsInfoFlagsFUCHSIA): seq[VkImageConstraintsInfoFlagBitsFUCHSIA] = - for value in VkImageConstraintsInfoFlagBitsFUCHSIA.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkImageConstraintsInfoFlagsFUCHSIA): bool = cint(a) == cint(b) -type - VkFormatFeatureFlagBits2* {.size: 8.} = enum - VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT = 0b0000000000000000000000000000000000000000000000000000000000000001 - VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT = 0b0000000000000000000000000000000000000000000000000000000000000010 - VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT = 0b0000000000000000000000000000000000000000000000000000000000000100 - VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT = 0b0000000000000000000000000000000000000000000000000000000000001000 - VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT = 0b0000000000000000000000000000000000000000000000000000000000010000 - VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0b0000000000000000000000000000000000000000000000000000000000100000 - VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT = 0b0000000000000000000000000000000000000000000000000000000001000000 - VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT = 0b0000000000000000000000000000000000000000000000000000000010000000 - VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT = 0b0000000000000000000000000000000000000000000000000000000100000000 - VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT = 0b0000000000000000000000000000000000000000000000000000001000000000 - VK_FORMAT_FEATURE_2_BLIT_SRC_BIT = 0b0000000000000000000000000000000000000000000000000000010000000000 - VK_FORMAT_FEATURE_2_BLIT_DST_BIT = 0b0000000000000000000000000000000000000000000000000000100000000000 - VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0b0000000000000000000000000000000000000000000000000001000000000000 - VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT = 0b0000000000000000000000000000000000000000000000000010000000000000 - VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT = 0b0000000000000000000000000000000000000000000000000100000000000000 - VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT = 0b0000000000000000000000000000000000000000000000001000000000000000 - VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0b0000000000000000000000000000000000000000000000010000000000000000 - VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT = 0b0000000000000000000000000000000000000000000000100000000000000000 - VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0b0000000000000000000000000000000000000000000001000000000000000000 - VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0b0000000000000000000000000000000000000000000010000000000000000000 - VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0b0000000000000000000000000000000000000000000100000000000000000000 - VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0b0000000000000000000000000000000000000000001000000000000000000000 - VK_FORMAT_FEATURE_2_DISJOINT_BIT = 0b0000000000000000000000000000000000000000010000000000000000000000 - VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT = 0b0000000000000000000000000000000000000000100000000000000000000000 - VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT = 0b0000000000000000000000000000000000000001000000000000000000000000 - VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR = 0b0000000000000000000000000000000000000010000000000000000000000000 - VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR = 0b0000000000000000000000000000000000000100000000000000000000000000 - VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR = 0b0000000000000000000000000000000000001000000000000000000000000000 - VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR = 0b0000000000000000000000000000000000010000000000000000000000000000 - VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0b0000000000000000000000000000000000100000000000000000000000000000 - VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0b0000000000000000000000000000000001000000000000000000000000000000 - VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT = 0b0000000000000000000000000000000010000000000000000000000000000000 - VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT = 0b0000000000000000000000000000000100000000000000000000000000000000 - VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT = 0b0000000000000000000000000000001000000000000000000000000000000000 - VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM = 0b0000000000000000000000000000010000000000000000000000000000000000 - VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM = 0b0000000000000000000000000000100000000000000000000000000000000000 - VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM = 0b0000000000000000000000000001000000000000000000000000000000000000 - VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM = 0b0000000000000000000000000010000000000000000000000000000000000000 - VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV = 0b0000000000000000000000000100000000000000000000000000000000000000 - VK_FORMAT_FEATURE_2_RESERVED_39_BIT_EXT = 0b0000000000000000000000001000000000000000000000000000000000000000 - VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV = 0b0000000000000000000000010000000000000000000000000000000000000000 - VK_FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV = 0b0000000000000000000000100000000000000000000000000000000000000000 - VK_FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV = 0b0000000000000000000001000000000000000000000000000000000000000000 - VK_FORMAT_FEATURE_2_RESERVED_44_BIT_EXT = 0b0000000000000000000100000000000000000000000000000000000000000000 - VK_FORMAT_FEATURE_2_RESERVED_45_BIT_EXT = 0b0000000000000000001000000000000000000000000000000000000000000000 -func toBits*(flags: openArray[VkFormatFeatureFlagBits2]): VkFormatFeatureFlags2 = - for flag in flags: - result = VkFormatFeatureFlags2(uint64(result) or uint64(flag)) -func toEnums*(number: VkFormatFeatureFlags2): seq[VkFormatFeatureFlagBits2] = - for value in VkFormatFeatureFlagBits2.items: - if (cast[uint64](value) and uint64(number)) > 0: - result.add value -proc `==`*(a, b: VkFormatFeatureFlags2): bool = uint64(a) == uint64(b) -type - VkRenderingFlagBits* {.size: sizeof(cint).} = enum - VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT = 0b00000000000000000000000000000001 - VK_RENDERING_SUSPENDING_BIT = 0b00000000000000000000000000000010 - VK_RENDERING_RESUMING_BIT = 0b00000000000000000000000000000100 - VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT = 0b00000000000000000000000000001000 -func toBits*(flags: openArray[VkRenderingFlagBits]): VkRenderingFlags = - for flag in flags: - result = VkRenderingFlags(uint(result) or uint(flag)) -func toEnums*(number: VkRenderingFlags): seq[VkRenderingFlagBits] = - for value in VkRenderingFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkRenderingFlags): bool = cint(a) == cint(b) -type - VkVideoEncodeH265CapabilityFlagBitsEXT* {.size: sizeof(cint).} = enum - VK_VIDEO_ENCODE_H265_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT = 0b00000000000000000000000000000001 - VK_VIDEO_ENCODE_H265_CAPABILITY_SCALING_LISTS_BIT_EXT = 0b00000000000000000000000000000010 - VK_VIDEO_ENCODE_H265_CAPABILITY_SAMPLE_ADAPTIVE_OFFSET_ENABLED_BIT_EXT = 0b00000000000000000000000000000100 - VK_VIDEO_ENCODE_H265_CAPABILITY_PCM_ENABLE_BIT_EXT = 0b00000000000000000000000000001000 - VK_VIDEO_ENCODE_H265_CAPABILITY_SPS_TEMPORAL_MVP_ENABLED_BIT_EXT = 0b00000000000000000000000000010000 - VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_EXT = 0b00000000000000000000000000100000 - VK_VIDEO_ENCODE_H265_CAPABILITY_INIT_QP_MINUS26_BIT_EXT = 0b00000000000000000000000001000000 - VK_VIDEO_ENCODE_H265_CAPABILITY_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_EXT = 0b00000000000000000000000010000000 - VK_VIDEO_ENCODE_H265_CAPABILITY_SIGN_DATA_HIDING_ENABLED_BIT_EXT = 0b00000000000000000000000100000000 - VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_ENABLED_BIT_EXT = 0b00000000000000000000001000000000 - VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_DISABLED_BIT_EXT = 0b00000000000000000000010000000000 - VK_VIDEO_ENCODE_H265_CAPABILITY_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_BIT_EXT = 0b00000000000000000000100000000000 - VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_BIT_EXT = 0b00000000000000000001000000000000 - VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_BIPRED_BIT_EXT = 0b00000000000000000010000000000000 - VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT = 0b00000000000000000100000000000000 - VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSQUANT_BYPASS_ENABLED_BIT_EXT = 0b00000000000000001000000000000000 - VK_VIDEO_ENCODE_H265_CAPABILITY_ENTROPY_CODING_SYNC_ENABLED_BIT_EXT = 0b00000000000000010000000000000000 - VK_VIDEO_ENCODE_H265_CAPABILITY_DEBLOCKING_FILTER_OVERRIDE_ENABLED_BIT_EXT = 0b00000000000000100000000000000000 - VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_FRAME_BIT_EXT = 0b00000000000001000000000000000000 - VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_PER_TILE_BIT_EXT = 0b00000000000010000000000000000000 - VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_SLICE_BIT_EXT = 0b00000000000100000000000000000000 - VK_VIDEO_ENCODE_H265_CAPABILITY_SLICE_SEGMENT_CTB_COUNT_BIT_EXT = 0b00000000001000000000000000000000 - VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_EXT = 0b00000000010000000000000000000000 - VK_VIDEO_ENCODE_H265_CAPABILITY_DEPENDENT_SLICE_SEGMENT_BIT_EXT = 0b00000000100000000000000000000000 - VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT = 0b00000001000000000000000000000000 - VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT = 0b00000010000000000000000000000000 -func toBits*(flags: openArray[VkVideoEncodeH265CapabilityFlagBitsEXT]): VkVideoEncodeH265CapabilityFlagsEXT = - for flag in flags: - result = VkVideoEncodeH265CapabilityFlagsEXT(uint(result) or uint(flag)) -func toEnums*(number: VkVideoEncodeH265CapabilityFlagsEXT): seq[VkVideoEncodeH265CapabilityFlagBitsEXT] = - for value in VkVideoEncodeH265CapabilityFlagBitsEXT.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkVideoEncodeH265CapabilityFlagsEXT): bool = cint(a) == cint(b) -type - VkVideoEncodeH265InputModeFlagBitsEXT* {.size: sizeof(cint).} = enum - VK_VIDEO_ENCODE_H265_INPUT_MODE_FRAME_BIT_EXT = 0b00000000000000000000000000000001 - VK_VIDEO_ENCODE_H265_INPUT_MODE_SLICE_SEGMENT_BIT_EXT = 0b00000000000000000000000000000010 - VK_VIDEO_ENCODE_H265_INPUT_MODE_NON_VCL_BIT_EXT = 0b00000000000000000000000000000100 -func toBits*(flags: openArray[VkVideoEncodeH265InputModeFlagBitsEXT]): VkVideoEncodeH265InputModeFlagsEXT = - for flag in flags: - result = VkVideoEncodeH265InputModeFlagsEXT(uint(result) or uint(flag)) -func toEnums*(number: VkVideoEncodeH265InputModeFlagsEXT): seq[VkVideoEncodeH265InputModeFlagBitsEXT] = - for value in VkVideoEncodeH265InputModeFlagBitsEXT.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkVideoEncodeH265InputModeFlagsEXT): bool = cint(a) == cint(b) -type - VkVideoEncodeH265OutputModeFlagBitsEXT* {.size: sizeof(cint).} = enum - VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FRAME_BIT_EXT = 0b00000000000000000000000000000001 - VK_VIDEO_ENCODE_H265_OUTPUT_MODE_SLICE_SEGMENT_BIT_EXT = 0b00000000000000000000000000000010 - VK_VIDEO_ENCODE_H265_OUTPUT_MODE_NON_VCL_BIT_EXT = 0b00000000000000000000000000000100 -func toBits*(flags: openArray[VkVideoEncodeH265OutputModeFlagBitsEXT]): VkVideoEncodeH265OutputModeFlagsEXT = - for flag in flags: - result = VkVideoEncodeH265OutputModeFlagsEXT(uint(result) or uint(flag)) -func toEnums*(number: VkVideoEncodeH265OutputModeFlagsEXT): seq[VkVideoEncodeH265OutputModeFlagBitsEXT] = - for value in VkVideoEncodeH265OutputModeFlagBitsEXT.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkVideoEncodeH265OutputModeFlagsEXT): bool = cint(a) == cint(b) -type - VkVideoEncodeH265RateControlStructureEXT* {.size: sizeof(cint).} = enum - VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT = 0 - VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAT_EXT = 1 - VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_DYADIC_EXT = 2 - VkVideoEncodeH265CtbSizeFlagBitsEXT* {.size: sizeof(cint).} = enum - VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_EXT = 0b00000000000000000000000000000001 - VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_EXT = 0b00000000000000000000000000000010 - VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_EXT = 0b00000000000000000000000000000100 -func toBits*(flags: openArray[VkVideoEncodeH265CtbSizeFlagBitsEXT]): VkVideoEncodeH265CtbSizeFlagsEXT = - for flag in flags: - result = VkVideoEncodeH265CtbSizeFlagsEXT(uint(result) or uint(flag)) -func toEnums*(number: VkVideoEncodeH265CtbSizeFlagsEXT): seq[VkVideoEncodeH265CtbSizeFlagBitsEXT] = - for value in VkVideoEncodeH265CtbSizeFlagBitsEXT.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkVideoEncodeH265CtbSizeFlagsEXT): bool = cint(a) == cint(b) -type - VkVideoEncodeH265TransformBlockSizeFlagBitsEXT* {.size: sizeof(cint).} = enum - VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_EXT = 0b00000000000000000000000000000001 - VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_EXT = 0b00000000000000000000000000000010 - VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_EXT = 0b00000000000000000000000000000100 - VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_EXT = 0b00000000000000000000000000001000 -func toBits*(flags: openArray[VkVideoEncodeH265TransformBlockSizeFlagBitsEXT]): VkVideoEncodeH265TransformBlockSizeFlagsEXT = - for flag in flags: - result = VkVideoEncodeH265TransformBlockSizeFlagsEXT(uint(result) or uint(flag)) -func toEnums*(number: VkVideoEncodeH265TransformBlockSizeFlagsEXT): seq[VkVideoEncodeH265TransformBlockSizeFlagBitsEXT] = - for value in VkVideoEncodeH265TransformBlockSizeFlagBitsEXT.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkVideoEncodeH265TransformBlockSizeFlagsEXT): bool = cint(a) == cint(b) -type - VkExportMetalObjectTypeFlagBitsEXT* {.size: sizeof(cint).} = enum - VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT = 0b00000000000000000000000000000001 - VK_EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT = 0b00000000000000000000000000000010 - VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT = 0b00000000000000000000000000000100 - VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT = 0b00000000000000000000000000001000 - VK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT = 0b00000000000000000000000000010000 - VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT = 0b00000000000000000000000000100000 -func toBits*(flags: openArray[VkExportMetalObjectTypeFlagBitsEXT]): VkExportMetalObjectTypeFlagsEXT = - for flag in flags: - result = VkExportMetalObjectTypeFlagsEXT(uint(result) or uint(flag)) -func toEnums*(number: VkExportMetalObjectTypeFlagsEXT): seq[VkExportMetalObjectTypeFlagBitsEXT] = - for value in VkExportMetalObjectTypeFlagBitsEXT.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkExportMetalObjectTypeFlagsEXT): bool = cint(a) == cint(b) -type - VkInstanceCreateFlagBits* {.size: sizeof(cint).} = enum - VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR = 0b00000000000000000000000000000001 -func toBits*(flags: openArray[VkInstanceCreateFlagBits]): VkInstanceCreateFlags = - for flag in flags: - result = VkInstanceCreateFlags(uint(result) or uint(flag)) -func toEnums*(number: VkInstanceCreateFlags): seq[VkInstanceCreateFlagBits] = - for value in VkInstanceCreateFlagBits.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkInstanceCreateFlags): bool = cint(a) == cint(b) -type - VkImageCompressionFlagBitsEXT* {.size: sizeof(cint).} = enum - VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT = 0b00000000000000000000000000000001 - VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT = 0b00000000000000000000000000000010 - VK_IMAGE_COMPRESSION_DISABLED_EXT = 0b00000000000000000000000000000100 -func toBits*(flags: openArray[VkImageCompressionFlagBitsEXT]): VkImageCompressionFlagsEXT = - for flag in flags: - result = VkImageCompressionFlagsEXT(uint(result) or uint(flag)) -func toEnums*(number: VkImageCompressionFlagsEXT): seq[VkImageCompressionFlagBitsEXT] = - for value in VkImageCompressionFlagBitsEXT.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkImageCompressionFlagsEXT): bool = cint(a) == cint(b) -const - VK_IMAGE_COMPRESSION_DEFAULT_EXT* = 0 -type - VkImageCompressionFixedRateFlagBitsEXT* {.size: sizeof(cint).} = enum - VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT = 0b00000000000000000000000000000001 - VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT = 0b00000000000000000000000000000010 - VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT = 0b00000000000000000000000000000100 - VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT = 0b00000000000000000000000000001000 - VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT = 0b00000000000000000000000000010000 - VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT = 0b00000000000000000000000000100000 - VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT = 0b00000000000000000000000001000000 - VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT = 0b00000000000000000000000010000000 - VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT = 0b00000000000000000000000100000000 - VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT = 0b00000000000000000000001000000000 - VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT = 0b00000000000000000000010000000000 - VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT = 0b00000000000000000000100000000000 - VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT = 0b00000000000000000001000000000000 - VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT = 0b00000000000000000010000000000000 - VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT = 0b00000000000000000100000000000000 - VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT = 0b00000000000000001000000000000000 - VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT = 0b00000000000000010000000000000000 - VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT = 0b00000000000000100000000000000000 - VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT = 0b00000000000001000000000000000000 - VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT = 0b00000000000010000000000000000000 - VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT = 0b00000000000100000000000000000000 - VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT = 0b00000000001000000000000000000000 - VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT = 0b00000000010000000000000000000000 - VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT = 0b00000000100000000000000000000000 -func toBits*(flags: openArray[VkImageCompressionFixedRateFlagBitsEXT]): VkImageCompressionFixedRateFlagsEXT = - for flag in flags: - result = VkImageCompressionFixedRateFlagsEXT(uint(result) or uint(flag)) -func toEnums*(number: VkImageCompressionFixedRateFlagsEXT): seq[VkImageCompressionFixedRateFlagBitsEXT] = - for value in VkImageCompressionFixedRateFlagBitsEXT.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkImageCompressionFixedRateFlagsEXT): bool = cint(a) == cint(b) -const - VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT* = 0 -type - VkPipelineRobustnessBufferBehaviorEXT* {.size: sizeof(cint).} = enum - VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT = 0 - VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT = 1 - VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT = 2 - VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT = 3 - VkPipelineRobustnessImageBehaviorEXT* {.size: sizeof(cint).} = enum - VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT = 0 - VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT = 1 - VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT = 2 - VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT = 3 - VkOpticalFlowGridSizeFlagBitsNV* {.size: sizeof(cint).} = enum - VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV = 0b00000000000000000000000000000001 - VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV = 0b00000000000000000000000000000010 - VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV = 0b00000000000000000000000000000100 - VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV = 0b00000000000000000000000000001000 -func toBits*(flags: openArray[VkOpticalFlowGridSizeFlagBitsNV]): VkOpticalFlowGridSizeFlagsNV = - for flag in flags: - result = VkOpticalFlowGridSizeFlagsNV(uint(result) or uint(flag)) -func toEnums*(number: VkOpticalFlowGridSizeFlagsNV): seq[VkOpticalFlowGridSizeFlagBitsNV] = - for value in VkOpticalFlowGridSizeFlagBitsNV.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkOpticalFlowGridSizeFlagsNV): bool = cint(a) == cint(b) -const - VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV* = 0 -type - VkOpticalFlowUsageFlagBitsNV* {.size: sizeof(cint).} = enum - VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV = 0b00000000000000000000000000000001 - VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV = 0b00000000000000000000000000000010 - VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV = 0b00000000000000000000000000000100 - VK_OPTICAL_FLOW_USAGE_COST_BIT_NV = 0b00000000000000000000000000001000 - VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV = 0b00000000000000000000000000010000 -func toBits*(flags: openArray[VkOpticalFlowUsageFlagBitsNV]): VkOpticalFlowUsageFlagsNV = - for flag in flags: - result = VkOpticalFlowUsageFlagsNV(uint(result) or uint(flag)) -func toEnums*(number: VkOpticalFlowUsageFlagsNV): seq[VkOpticalFlowUsageFlagBitsNV] = - for value in VkOpticalFlowUsageFlagBitsNV.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkOpticalFlowUsageFlagsNV): bool = cint(a) == cint(b) -const - VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV* = 0 -type - VkOpticalFlowPerformanceLevelNV* {.size: sizeof(cint).} = enum - VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV = 0 - VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV = 1 - VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV = 2 - VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV = 3 - VkOpticalFlowSessionBindingPointNV* {.size: sizeof(cint).} = enum - VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV = 0 - VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV = 1 - VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV = 2 - VK_OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV = 3 - VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV = 4 - VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV = 5 - VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV = 6 - VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV = 7 - VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV = 8 - VkOpticalFlowSessionCreateFlagBitsNV* {.size: sizeof(cint).} = enum - VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV = 0b00000000000000000000000000000001 - VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV = 0b00000000000000000000000000000010 - VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV = 0b00000000000000000000000000000100 - VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV = 0b00000000000000000000000000001000 - VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV = 0b00000000000000000000000000010000 -func toBits*(flags: openArray[VkOpticalFlowSessionCreateFlagBitsNV]): VkOpticalFlowSessionCreateFlagsNV = - for flag in flags: - result = VkOpticalFlowSessionCreateFlagsNV(uint(result) or uint(flag)) -func toEnums*(number: VkOpticalFlowSessionCreateFlagsNV): seq[VkOpticalFlowSessionCreateFlagBitsNV] = - for value in VkOpticalFlowSessionCreateFlagBitsNV.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkOpticalFlowSessionCreateFlagsNV): bool = cint(a) == cint(b) -type - VkOpticalFlowExecuteFlagBitsNV* {.size: sizeof(cint).} = enum - VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV = 0b00000000000000000000000000000001 -func toBits*(flags: openArray[VkOpticalFlowExecuteFlagBitsNV]): VkOpticalFlowExecuteFlagsNV = - for flag in flags: - result = VkOpticalFlowExecuteFlagsNV(uint(result) or uint(flag)) -func toEnums*(number: VkOpticalFlowExecuteFlagsNV): seq[VkOpticalFlowExecuteFlagBitsNV] = - for value in VkOpticalFlowExecuteFlagBitsNV.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkOpticalFlowExecuteFlagsNV): bool = cint(a) == cint(b) -type - VkMicromapTypeEXT* {.size: sizeof(cint).} = enum - VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT = 0 - VkBuildMicromapFlagBitsEXT* {.size: sizeof(cint).} = enum - VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT = 0b00000000000000000000000000000001 - VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT = 0b00000000000000000000000000000010 - VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT = 0b00000000000000000000000000000100 -func toBits*(flags: openArray[VkBuildMicromapFlagBitsEXT]): VkBuildMicromapFlagsEXT = - for flag in flags: - result = VkBuildMicromapFlagsEXT(uint(result) or uint(flag)) -func toEnums*(number: VkBuildMicromapFlagsEXT): seq[VkBuildMicromapFlagBitsEXT] = - for value in VkBuildMicromapFlagBitsEXT.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkBuildMicromapFlagsEXT): bool = cint(a) == cint(b) -type - VkMicromapCreateFlagBitsEXT* {.size: sizeof(cint).} = enum - VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 0b00000000000000000000000000000001 -func toBits*(flags: openArray[VkMicromapCreateFlagBitsEXT]): VkMicromapCreateFlagsEXT = - for flag in flags: - result = VkMicromapCreateFlagsEXT(uint(result) or uint(flag)) -func toEnums*(number: VkMicromapCreateFlagsEXT): seq[VkMicromapCreateFlagBitsEXT] = - for value in VkMicromapCreateFlagBitsEXT.items: - if (value.ord and cint(number)) > 0: - result.add value -proc `==`*(a, b: VkMicromapCreateFlagsEXT): bool = cint(a) == cint(b) -type - VkCopyMicromapModeEXT* {.size: sizeof(cint).} = enum - VK_COPY_MICROMAP_MODE_CLONE_EXT = 0 - VK_COPY_MICROMAP_MODE_SERIALIZE_EXT = 1 - VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT = 2 - VK_COPY_MICROMAP_MODE_COMPACT_EXT = 3 - VkBuildMicromapModeEXT* {.size: sizeof(cint).} = enum - VK_BUILD_MICROMAP_MODE_BUILD_EXT = 0 - VkOpacityMicromapFormatEXT* {.size: sizeof(cint).} = enum - VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT = 1 - VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT = 2 - VkOpacityMicromapSpecialIndexEXT* {.size: sizeof(cint).} = enum - VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT = -4 - VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT = -3 - VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT = -2 - VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT = -1 - VkDeviceFaultAddressTypeEXT* {.size: sizeof(cint).} = enum - VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT = 0 - VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT = 1 - VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT = 2 - VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT = 3 - VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT = 4 - VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT = 5 - VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT = 6 - VkDeviceFaultVendorBinaryHeaderVersionEXT* {.size: sizeof(cint).} = enum - VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT_ENUM = 1 -proc `$`*(bitset: VkFramebufferCreateFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkRenderPassCreateFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkSamplerCreateFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkPipelineCacheCreateFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkPipelineShaderStageCreateFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkDescriptorSetLayoutCreateFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkInstanceCreateFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkDeviceQueueCreateFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkBufferCreateFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkBufferUsageFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkColorComponentFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkCommandPoolCreateFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkCommandPoolResetFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkCommandBufferResetFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkCommandBufferUsageFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkCullModeFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkFenceCreateFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkFormatFeatureFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkImageAspectFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkImageCreateFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkImageUsageFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkImageViewCreateFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkMemoryHeapFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkAccessFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkMemoryPropertyFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkPipelineCreateFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkQueryControlFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkQueryPipelineStatisticFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkQueryResultFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkQueueFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkShaderStageFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkSparseMemoryBindFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkStencilFaceFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkPipelineStageFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkSparseImageFormatFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkSampleCountFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkAttachmentDescriptionFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkDescriptorPoolCreateFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkDependencyFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkEventCreateFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkPipelineLayoutCreateFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkIndirectCommandsLayoutUsageFlagsNV): string = $toEnums(bitset) -proc `$`*(bitset: VkIndirectStateFlagsNV): string = $toEnums(bitset) -proc `$`*(bitset: VkPrivateDataSlotCreateFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkSubpassDescriptionFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkResolveModeFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkDescriptorBindingFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkConditionalRenderingFlagsEXT): string = $toEnums(bitset) -proc `$`*(bitset: VkGeometryFlagsKHR): string = $toEnums(bitset) -proc `$`*(bitset: VkGeometryInstanceFlagsKHR): string = $toEnums(bitset) -proc `$`*(bitset: VkBuildAccelerationStructureFlagsKHR): string = $toEnums(bitset) -proc `$`*(bitset: VkAccelerationStructureCreateFlagsKHR): string = $toEnums(bitset) -proc `$`*(bitset: VkDeviceDiagnosticsConfigFlagsNV): string = $toEnums(bitset) -proc `$`*(bitset: VkPipelineCreationFeedbackFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkPerformanceCounterDescriptionFlagsKHR): string = $toEnums(bitset) -proc `$`*(bitset: VkSemaphoreWaitFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkToolPurposeFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkAccessFlags2): string = $toEnums(bitset) -proc `$`*(bitset: VkPipelineStageFlags2): string = $toEnums(bitset) -proc `$`*(bitset: VkImageConstraintsInfoFlagsFUCHSIA): string = $toEnums(bitset) -proc `$`*(bitset: VkFormatFeatureFlags2): string = $toEnums(bitset) -proc `$`*(bitset: VkRenderingFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkPipelineDepthStencilStateCreateFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkPipelineColorBlendStateCreateFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkImageCompressionFlagsEXT): string = $toEnums(bitset) -proc `$`*(bitset: VkImageCompressionFixedRateFlagsEXT): string = $toEnums(bitset) -proc `$`*(bitset: VkExportMetalObjectTypeFlagsEXT): string = $toEnums(bitset) -proc `$`*(bitset: VkDeviceAddressBindingFlagsEXT): string = $toEnums(bitset) -proc `$`*(bitset: VkBuildMicromapFlagsEXT): string = $toEnums(bitset) -proc `$`*(bitset: VkMicromapCreateFlagsEXT): string = $toEnums(bitset) -proc `$`*(bitset: VkMemoryDecompressionMethodFlagsNV): string = $toEnums(bitset) -proc `$`*(bitset: VkCompositeAlphaFlagsKHR): string = $toEnums(bitset) -proc `$`*(bitset: VkDisplayPlaneAlphaFlagsKHR): string = $toEnums(bitset) -proc `$`*(bitset: VkSurfaceTransformFlagsKHR): string = $toEnums(bitset) -proc `$`*(bitset: VkDebugReportFlagsEXT): string = $toEnums(bitset) -proc `$`*(bitset: VkExternalMemoryHandleTypeFlagsNV): string = $toEnums(bitset) -proc `$`*(bitset: VkExternalMemoryFeatureFlagsNV): string = $toEnums(bitset) -proc `$`*(bitset: VkExternalMemoryHandleTypeFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkExternalMemoryFeatureFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkExternalSemaphoreHandleTypeFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkExternalSemaphoreFeatureFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkSemaphoreImportFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkExternalFenceHandleTypeFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkExternalFenceFeatureFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkFenceImportFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkSurfaceCounterFlagsEXT): string = $toEnums(bitset) -proc `$`*(bitset: VkPeerMemoryFeatureFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkMemoryAllocateFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkDeviceGroupPresentModeFlagsKHR): string = $toEnums(bitset) -proc `$`*(bitset: VkSwapchainCreateFlagsKHR): string = $toEnums(bitset) -proc `$`*(bitset: VkSubgroupFeatureFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkDebugUtilsMessageSeverityFlagsEXT): string = $toEnums(bitset) -proc `$`*(bitset: VkDebugUtilsMessageTypeFlagsEXT): string = $toEnums(bitset) -proc `$`*(bitset: VkSwapchainImageUsageFlagsANDROID): string = $toEnums(bitset) -proc `$`*(bitset: VkSubmitFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkGraphicsPipelineLibraryFlagsEXT): string = $toEnums(bitset) -proc `$`*(bitset: VkOpticalFlowGridSizeFlagsNV): string = $toEnums(bitset) -proc `$`*(bitset: VkOpticalFlowUsageFlagsNV): string = $toEnums(bitset) -proc `$`*(bitset: VkOpticalFlowSessionCreateFlagsNV): string = $toEnums(bitset) -proc `$`*(bitset: VkOpticalFlowExecuteFlagsNV): string = $toEnums(bitset) -proc `$`*(bitset: VkPresentScalingFlagsEXT): string = $toEnums(bitset) -proc `$`*(bitset: VkPresentGravityFlagsEXT): string = $toEnums(bitset) -proc `$`*(bitset: VkVideoCodecOperationFlagsKHR): string = $toEnums(bitset) -proc `$`*(bitset: VkVideoChromaSubsamplingFlagsKHR): string = $toEnums(bitset) -proc `$`*(bitset: VkVideoComponentBitDepthFlagsKHR): string = $toEnums(bitset) -proc `$`*(bitset: VkVideoCapabilityFlagsKHR): string = $toEnums(bitset) -proc `$`*(bitset: VkVideoSessionCreateFlagsKHR): string = $toEnums(bitset) -proc `$`*(bitset: VkVideoCodingControlFlagsKHR): string = $toEnums(bitset) -proc `$`*(bitset: VkVideoDecodeUsageFlagsKHR): string = $toEnums(bitset) -proc `$`*(bitset: VkVideoDecodeCapabilityFlagsKHR): string = $toEnums(bitset) -proc `$`*(bitset: VkVideoDecodeH264PictureLayoutFlagsKHR): string = $toEnums(bitset) -proc `$`*(bitset: VkVideoEncodeUsageFlagsKHR): string = $toEnums(bitset) -proc `$`*(bitset: VkVideoEncodeContentFlagsKHR): string = $toEnums(bitset) -proc `$`*(bitset: VkVideoEncodeCapabilityFlagsKHR): string = $toEnums(bitset) -proc `$`*(bitset: VkVideoEncodeRateControlModeFlagsKHR): string = $toEnums(bitset) -proc `$`*(bitset: VkVideoEncodeH264CapabilityFlagsEXT): string = $toEnums(bitset) -proc `$`*(bitset: VkVideoEncodeH264InputModeFlagsEXT): string = $toEnums(bitset) -proc `$`*(bitset: VkVideoEncodeH264OutputModeFlagsEXT): string = $toEnums(bitset) -proc `$`*(bitset: VkVideoEncodeH265CapabilityFlagsEXT): string = $toEnums(bitset) -proc `$`*(bitset: VkVideoEncodeH265InputModeFlagsEXT): string = $toEnums(bitset) -proc `$`*(bitset: VkVideoEncodeH265OutputModeFlagsEXT): string = $toEnums(bitset) -proc `$`*(bitset: VkVideoEncodeH265CtbSizeFlagsEXT): string = $toEnums(bitset) -proc `$`*(bitset: VkVideoEncodeH265TransformBlockSizeFlagsEXT): string = $toEnums(bitset) -type - VkGeometryFlagsNV* = VkGeometryFlagsKHR - VkGeometryInstanceFlagsNV* = VkGeometryInstanceFlagsKHR - VkBuildAccelerationStructureFlagsNV* = VkBuildAccelerationStructureFlagsKHR - VkPrivateDataSlotCreateFlagsEXT* = VkPrivateDataSlotCreateFlags - VkDescriptorUpdateTemplateCreateFlagsKHR* = VkDescriptorUpdateTemplateCreateFlags - VkPipelineCreationFeedbackFlagsEXT* = VkPipelineCreationFeedbackFlags - VkSemaphoreWaitFlagsKHR* = VkSemaphoreWaitFlags - VkAccessFlags2KHR* = VkAccessFlags2 - VkPipelineStageFlags2KHR* = VkPipelineStageFlags2 - VkFormatFeatureFlags2KHR* = VkFormatFeatureFlags2 - VkRenderingFlagsKHR* = VkRenderingFlags - VkPeerMemoryFeatureFlagsKHR* = VkPeerMemoryFeatureFlags - VkMemoryAllocateFlagsKHR* = VkMemoryAllocateFlags - VkCommandPoolTrimFlagsKHR* = VkCommandPoolTrimFlags - VkExternalMemoryHandleTypeFlagsKHR* = VkExternalMemoryHandleTypeFlags - VkExternalMemoryFeatureFlagsKHR* = VkExternalMemoryFeatureFlags - VkExternalSemaphoreHandleTypeFlagsKHR* = VkExternalSemaphoreHandleTypeFlags - VkExternalSemaphoreFeatureFlagsKHR* = VkExternalSemaphoreFeatureFlags - VkSemaphoreImportFlagsKHR* = VkSemaphoreImportFlags - VkExternalFenceHandleTypeFlagsKHR* = VkExternalFenceHandleTypeFlags - VkExternalFenceFeatureFlagsKHR* = VkExternalFenceFeatureFlags - VkFenceImportFlagsKHR* = VkFenceImportFlags - VkDescriptorBindingFlagsEXT* = VkDescriptorBindingFlags - VkResolveModeFlagsKHR* = VkResolveModeFlags - VkToolPurposeFlagsEXT* = VkToolPurposeFlags - VkSubmitFlagsKHR* = VkSubmitFlags - VkPrivateDataSlotCreateFlagBitsEXT* = VkPrivateDataSlotCreateFlagBits - VkDescriptorUpdateTemplateTypeKHR* = VkDescriptorUpdateTemplateType - VkPointClippingBehaviorKHR* = VkPointClippingBehavior - VkQueueGlobalPriorityEXT* = VkQueueGlobalPriorityKHR - VkResolveModeFlagBitsKHR* = VkResolveModeFlagBits - VkDescriptorBindingFlagBitsEXT* = VkDescriptorBindingFlagBits - VkSemaphoreTypeKHR* = VkSemaphoreType - VkGeometryFlagBitsNV* = VkGeometryFlagBitsKHR - VkGeometryInstanceFlagBitsNV* = VkGeometryInstanceFlagBitsKHR - VkBuildAccelerationStructureFlagBitsNV* = VkBuildAccelerationStructureFlagBitsKHR - VkCopyAccelerationStructureModeNV* = VkCopyAccelerationStructureModeKHR - VkAccelerationStructureTypeNV* = VkAccelerationStructureTypeKHR - VkGeometryTypeNV* = VkGeometryTypeKHR - VkRayTracingShaderGroupTypeNV* = VkRayTracingShaderGroupTypeKHR - VkPipelineCreationFeedbackFlagBitsEXT* = VkPipelineCreationFeedbackFlagBits - VkSemaphoreWaitFlagBitsKHR* = VkSemaphoreWaitFlagBits - VkToolPurposeFlagBitsEXT* = VkToolPurposeFlagBits - VkAccessFlagBits2KHR* = VkAccessFlagBits2 - VkPipelineStageFlagBits2KHR* = VkPipelineStageFlagBits2 - VkFormatFeatureFlagBits2KHR* = VkFormatFeatureFlagBits2 - VkRenderingFlagBitsKHR* = VkRenderingFlagBits - VkExternalMemoryHandleTypeFlagBitsKHR* = VkExternalMemoryHandleTypeFlagBits - VkExternalMemoryFeatureFlagBitsKHR* = VkExternalMemoryFeatureFlagBits - VkExternalSemaphoreHandleTypeFlagBitsKHR* = VkExternalSemaphoreHandleTypeFlagBits - VkExternalSemaphoreFeatureFlagBitsKHR* = VkExternalSemaphoreFeatureFlagBits - VkSemaphoreImportFlagBitsKHR* = VkSemaphoreImportFlagBits - VkExternalFenceHandleTypeFlagBitsKHR* = VkExternalFenceHandleTypeFlagBits - VkExternalFenceFeatureFlagBitsKHR* = VkExternalFenceFeatureFlagBits - VkFenceImportFlagBitsKHR* = VkFenceImportFlagBits - VkPeerMemoryFeatureFlagBitsKHR* = VkPeerMemoryFeatureFlagBits - VkMemoryAllocateFlagBitsKHR* = VkMemoryAllocateFlagBits - VkTessellationDomainOriginKHR* = VkTessellationDomainOrigin - VkSamplerYcbcrModelConversionKHR* = VkSamplerYcbcrModelConversion - VkSamplerYcbcrRangeKHR* = VkSamplerYcbcrRange - VkChromaLocationKHR* = VkChromaLocation - VkSamplerReductionModeEXT* = VkSamplerReductionMode - VkShaderFloatControlsIndependenceKHR* = VkShaderFloatControlsIndependence - VkSubmitFlagBitsKHR* = VkSubmitFlagBits - VkDriverIdKHR* = VkDriverId -type - PFN_vkInternalAllocationNotification* = proc(pUserData: pointer, size: csize_t, allocationType: VkInternalAllocationType, allocationScope: VkSystemAllocationScope): void {.cdecl.} - PFN_vkInternalFreeNotification* = proc(pUserData: pointer, size: csize_t, allocationType: VkInternalAllocationType, allocationScope: VkSystemAllocationScope): void {.cdecl.} - PFN_vkReallocationFunction* = proc(pUserData: pointer, pOriginal: pointer, size: csize_t, alignment: csize_t, allocationScope: VkSystemAllocationScope): pointer {.cdecl.} - PFN_vkAllocationFunction* = proc(pUserData: pointer, size: csize_t, alignment: csize_t, allocationScope: VkSystemAllocationScope): pointer {.cdecl.} - PFN_vkFreeFunction* = proc(pUserData: pointer, pMemory: pointer): void {.cdecl.} - PFN_vkVoidFunction* = proc(): void {.cdecl.} - PFN_vkDebugReportCallbackEXT* = proc(flags: VkDebugReportFlagsEXT, objectType: VkDebugReportObjectTypeEXT, theobject: uint64, location: csize_t, messageCode: int32, pLayerPrefix: cstring, pMessage: cstring, pUserData: pointer): VkBool32 {.cdecl.} - PFN_vkDebugUtilsMessengerCallbackEXT* = proc(messageSeverity: VkDebugUtilsMessageSeverityFlagBitsEXT, messageTypes: VkDebugUtilsMessageTypeFlagsEXT, pCallbackData: ptr VkDebugUtilsMessengerCallbackDataEXT, pUserData: pointer): VkBool32 {.cdecl.} - PFN_vkFaultCallbackFunction* = proc(unrecordedFaults: VkBool32, faultCount: uint32, pFaults: ptr VkFaultData): void {.cdecl.} - PFN_vkDeviceMemoryReportCallbackEXT* = proc(pCallbackData: ptr VkDeviceMemoryReportCallbackDataEXT, pUserData: pointer): void {.cdecl.} - PFN_vkGetInstanceProcAddrLUNARG* = proc(instance: VkInstance, pName: cstring): PFN_vkVoidFunction {.cdecl.} - VkBaseOutStructure* = object - sType*: VkStructureType - pNext*: ptr VkBaseOutStructure - VkBaseInStructure* = object - sType*: VkStructureType - pNext*: ptr VkBaseInStructure - VkOffset2D* = object - x*: int32 - y*: int32 - VkOffset3D* = object - x*: int32 - y*: int32 - z*: int32 - VkExtent2D* = object - width*: uint32 - height*: uint32 - VkExtent3D* = object - width*: uint32 - height*: uint32 - depth*: uint32 - VkViewport* = object - x*: float32 - y*: float32 - width*: float32 - height*: float32 - minDepth*: float32 - maxDepth*: float32 - VkRect2D* = object - offset*: VkOffset2D - extent*: VkExtent2D - VkClearRect* = object - rect*: VkRect2D - baseArrayLayer*: uint32 - layerCount*: uint32 - VkComponentMapping* = object - r*: VkComponentSwizzle - g*: VkComponentSwizzle - b*: VkComponentSwizzle - a*: VkComponentSwizzle - VkPhysicalDeviceProperties* = object - apiVersion*: uint32 - driverVersion*: uint32 - vendorID*: uint32 - deviceID*: uint32 - deviceType*: VkPhysicalDeviceType - deviceName*: array[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE, char] - pipelineCacheUUID*: array[VK_UUID_SIZE, uint8] - limits*: VkPhysicalDeviceLimits - sparseProperties*: VkPhysicalDeviceSparseProperties - VkExtensionProperties* = object - extensionName*: array[VK_MAX_EXTENSION_NAME_SIZE, char] - specVersion*: uint32 - VkLayerProperties* = object - layerName*: array[VK_MAX_EXTENSION_NAME_SIZE, char] - specVersion*: uint32 - implementationVersion*: uint32 - description*: array[VK_MAX_DESCRIPTION_SIZE, char] - VkApplicationInfo* = object - sType*: VkStructureType - pNext*: pointer - pApplicationName*: cstring - applicationVersion*: uint32 - pEngineName*: cstring - engineVersion*: uint32 - apiVersion*: uint32 - VkAllocationCallbacks* = object - pUserData*: pointer - pfnAllocation*: PFN_vkAllocationFunction - pfnReallocation*: PFN_vkReallocationFunction - pfnFree*: PFN_vkFreeFunction - pfnInternalAllocation*: PFN_vkInternalAllocationNotification - pfnInternalFree*: PFN_vkInternalFreeNotification - VkDeviceQueueCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkDeviceQueueCreateFlags - queueFamilyIndex*: uint32 - queueCount*: uint32 - pQueuePriorities*: ptr float32 - VkDeviceCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkDeviceCreateFlags - queueCreateInfoCount*: uint32 - pQueueCreateInfos*: ptr VkDeviceQueueCreateInfo - enabledLayerCount*: uint32 - ppEnabledLayerNames*: cstringArray - enabledExtensionCount*: uint32 - ppEnabledExtensionNames*: cstringArray - pEnabledFeatures*: ptr VkPhysicalDeviceFeatures - VkInstanceCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkInstanceCreateFlags - pApplicationInfo*: ptr VkApplicationInfo - enabledLayerCount*: uint32 - ppEnabledLayerNames*: cstringArray - enabledExtensionCount*: uint32 - ppEnabledExtensionNames*: cstringArray - VkQueueFamilyProperties* = object - queueFlags*: VkQueueFlags - queueCount*: uint32 - timestampValidBits*: uint32 - minImageTransferGranularity*: VkExtent3D - VkPhysicalDeviceMemoryProperties* = object - memoryTypeCount*: uint32 - memoryTypes*: array[VK_MAX_MEMORY_TYPES, VkMemoryType] - memoryHeapCount*: uint32 - memoryHeaps*: array[VK_MAX_MEMORY_HEAPS, VkMemoryHeap] - VkMemoryAllocateInfo* = object - sType*: VkStructureType - pNext*: pointer - allocationSize*: VkDeviceSize - memoryTypeIndex*: uint32 - VkMemoryRequirements* = object - size*: VkDeviceSize - alignment*: VkDeviceSize - memoryTypeBits*: uint32 - VkSparseImageFormatProperties* = object - aspectMask*: VkImageAspectFlags - imageGranularity*: VkExtent3D - flags*: VkSparseImageFormatFlags - VkSparseImageMemoryRequirements* = object - formatProperties*: VkSparseImageFormatProperties - imageMipTailFirstLod*: uint32 - imageMipTailSize*: VkDeviceSize - imageMipTailOffset*: VkDeviceSize - imageMipTailStride*: VkDeviceSize - VkMemoryType* = object - propertyFlags*: VkMemoryPropertyFlags - heapIndex*: uint32 - VkMemoryHeap* = object - size*: VkDeviceSize - flags*: VkMemoryHeapFlags - VkMappedMemoryRange* = object - sType*: VkStructureType - pNext*: pointer - memory*: VkDeviceMemory - offset*: VkDeviceSize - size*: VkDeviceSize - VkFormatProperties* = object - linearTilingFeatures*: VkFormatFeatureFlags - optimalTilingFeatures*: VkFormatFeatureFlags - bufferFeatures*: VkFormatFeatureFlags - VkImageFormatProperties* = object - maxExtent*: VkExtent3D - maxMipLevels*: uint32 - maxArrayLayers*: uint32 - sampleCounts*: VkSampleCountFlags - maxResourceSize*: VkDeviceSize - VkDescriptorBufferInfo* = object - buffer*: VkBuffer - offset*: VkDeviceSize - range*: VkDeviceSize - VkDescriptorImageInfo* = object - sampler*: VkSampler - imageView*: VkImageView - imageLayout*: VkImageLayout - VkWriteDescriptorSet* = object - sType*: VkStructureType - pNext*: pointer - dstSet*: VkDescriptorSet - dstBinding*: uint32 - dstArrayElement*: uint32 - descriptorCount*: uint32 - descriptorType*: VkDescriptorType - pImageInfo*: ptr VkDescriptorImageInfo - pBufferInfo*: ptr VkDescriptorBufferInfo - pTexelBufferView*: ptr VkBufferView - VkCopyDescriptorSet* = object - sType*: VkStructureType - pNext*: pointer - srcSet*: VkDescriptorSet - srcBinding*: uint32 - srcArrayElement*: uint32 - dstSet*: VkDescriptorSet - dstBinding*: uint32 - dstArrayElement*: uint32 - descriptorCount*: uint32 - VkBufferCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkBufferCreateFlags - size*: VkDeviceSize - usage*: VkBufferUsageFlags - sharingMode*: VkSharingMode - queueFamilyIndexCount*: uint32 - pQueueFamilyIndices*: ptr uint32 - VkBufferViewCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkBufferViewCreateFlags - buffer*: VkBuffer - format*: VkFormat - offset*: VkDeviceSize - range*: VkDeviceSize - VkImageSubresource* = object - aspectMask*: VkImageAspectFlags - mipLevel*: uint32 - arrayLayer*: uint32 - VkImageSubresourceLayers* = object - aspectMask*: VkImageAspectFlags - mipLevel*: uint32 - baseArrayLayer*: uint32 - layerCount*: uint32 - VkImageSubresourceRange* = object - aspectMask*: VkImageAspectFlags - baseMipLevel*: uint32 - levelCount*: uint32 - baseArrayLayer*: uint32 - layerCount*: uint32 - VkMemoryBarrier* = object - sType*: VkStructureType - pNext*: pointer - srcAccessMask*: VkAccessFlags - dstAccessMask*: VkAccessFlags - VkBufferMemoryBarrier* = object - sType*: VkStructureType - pNext*: pointer - srcAccessMask*: VkAccessFlags - dstAccessMask*: VkAccessFlags - srcQueueFamilyIndex*: uint32 - dstQueueFamilyIndex*: uint32 - buffer*: VkBuffer - offset*: VkDeviceSize - size*: VkDeviceSize - VkImageMemoryBarrier* = object - sType*: VkStructureType - pNext*: pointer - srcAccessMask*: VkAccessFlags - dstAccessMask*: VkAccessFlags - oldLayout*: VkImageLayout - newLayout*: VkImageLayout - srcQueueFamilyIndex*: uint32 - dstQueueFamilyIndex*: uint32 - image*: VkImage - subresourceRange*: VkImageSubresourceRange - VkImageCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkImageCreateFlags - imageType*: VkImageType - format*: VkFormat - extent*: VkExtent3D - mipLevels*: uint32 - arrayLayers*: uint32 - samples*: VkSampleCountFlagBits - tiling*: VkImageTiling - usage*: VkImageUsageFlags - sharingMode*: VkSharingMode - queueFamilyIndexCount*: uint32 - pQueueFamilyIndices*: ptr uint32 - initialLayout*: VkImageLayout - VkSubresourceLayout* = object - offset*: VkDeviceSize - size*: VkDeviceSize - rowPitch*: VkDeviceSize - arrayPitch*: VkDeviceSize - depthPitch*: VkDeviceSize - VkImageViewCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkImageViewCreateFlags - image*: VkImage - viewType*: VkImageViewType - format*: VkFormat - components*: VkComponentMapping - subresourceRange*: VkImageSubresourceRange - VkBufferCopy* = object - srcOffset*: VkDeviceSize - dstOffset*: VkDeviceSize - size*: VkDeviceSize - VkSparseMemoryBind* = object - resourceOffset*: VkDeviceSize - size*: VkDeviceSize - memory*: VkDeviceMemory - memoryOffset*: VkDeviceSize - flags*: VkSparseMemoryBindFlags - VkSparseImageMemoryBind* = object - subresource*: VkImageSubresource - offset*: VkOffset3D - extent*: VkExtent3D - memory*: VkDeviceMemory - memoryOffset*: VkDeviceSize - flags*: VkSparseMemoryBindFlags - VkSparseBufferMemoryBindInfo* = object - buffer*: VkBuffer - bindCount*: uint32 - pBinds*: ptr VkSparseMemoryBind - VkSparseImageOpaqueMemoryBindInfo* = object - image*: VkImage - bindCount*: uint32 - pBinds*: ptr VkSparseMemoryBind - VkSparseImageMemoryBindInfo* = object - image*: VkImage - bindCount*: uint32 - pBinds*: ptr VkSparseImageMemoryBind - VkBindSparseInfo* = object - sType*: VkStructureType - pNext*: pointer - waitSemaphoreCount*: uint32 - pWaitSemaphores*: ptr VkSemaphore - bufferBindCount*: uint32 - pBufferBinds*: ptr VkSparseBufferMemoryBindInfo - imageOpaqueBindCount*: uint32 - pImageOpaqueBinds*: ptr VkSparseImageOpaqueMemoryBindInfo - imageBindCount*: uint32 - pImageBinds*: ptr VkSparseImageMemoryBindInfo - signalSemaphoreCount*: uint32 - pSignalSemaphores*: ptr VkSemaphore - VkImageCopy* = object - srcSubresource*: VkImageSubresourceLayers - srcOffset*: VkOffset3D - dstSubresource*: VkImageSubresourceLayers - dstOffset*: VkOffset3D - extent*: VkExtent3D - VkImageBlit* = object - srcSubresource*: VkImageSubresourceLayers - srcOffsets*: array[2, VkOffset3D] - dstSubresource*: VkImageSubresourceLayers - dstOffsets*: array[2, VkOffset3D] - VkBufferImageCopy* = object - bufferOffset*: VkDeviceSize - bufferRowLength*: uint32 - bufferImageHeight*: uint32 - imageSubresource*: VkImageSubresourceLayers - imageOffset*: VkOffset3D - imageExtent*: VkExtent3D - VkCopyMemoryIndirectCommandNV* = object - srcAddress*: VkDeviceAddress - dstAddress*: VkDeviceAddress - size*: VkDeviceSize - VkCopyMemoryToImageIndirectCommandNV* = object - srcAddress*: VkDeviceAddress - bufferRowLength*: uint32 - bufferImageHeight*: uint32 - imageSubresource*: VkImageSubresourceLayers - imageOffset*: VkOffset3D - imageExtent*: VkExtent3D - VkImageResolve* = object - srcSubresource*: VkImageSubresourceLayers - srcOffset*: VkOffset3D - dstSubresource*: VkImageSubresourceLayers - dstOffset*: VkOffset3D - extent*: VkExtent3D - VkShaderModuleCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkShaderModuleCreateFlags - codeSize*: csize_t - pCode*: ptr uint32 - VkDescriptorSetLayoutBinding* = object - binding*: uint32 - descriptorType*: VkDescriptorType - descriptorCount*: uint32 - stageFlags*: VkShaderStageFlags - pImmutableSamplers*: ptr VkSampler - VkDescriptorSetLayoutCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkDescriptorSetLayoutCreateFlags - bindingCount*: uint32 - pBindings*: ptr VkDescriptorSetLayoutBinding - VkDescriptorPoolSize* = object - thetype*: VkDescriptorType - descriptorCount*: uint32 - VkDescriptorPoolCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkDescriptorPoolCreateFlags - maxSets*: uint32 - poolSizeCount*: uint32 - pPoolSizes*: ptr VkDescriptorPoolSize - VkDescriptorSetAllocateInfo* = object - sType*: VkStructureType - pNext*: pointer - descriptorPool*: VkDescriptorPool - descriptorSetCount*: uint32 - pSetLayouts*: ptr VkDescriptorSetLayout - VkSpecializationMapEntry* = object - constantID*: uint32 - offset*: uint32 - size*: csize_t - VkSpecializationInfo* = object - mapEntryCount*: uint32 - pMapEntries*: ptr VkSpecializationMapEntry - dataSize*: csize_t - pData*: pointer - VkPipelineShaderStageCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkPipelineShaderStageCreateFlags - stage*: VkShaderStageFlagBits - module*: VkShaderModule - pName*: cstring - pSpecializationInfo*: ptr VkSpecializationInfo - VkComputePipelineCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkPipelineCreateFlags - stage*: VkPipelineShaderStageCreateInfo - layout*: VkPipelineLayout - basePipelineHandle*: VkPipeline - basePipelineIndex*: int32 - VkVertexInputBindingDescription* = object - binding*: uint32 - stride*: uint32 - inputRate*: VkVertexInputRate - VkVertexInputAttributeDescription* = object - location*: uint32 - binding*: uint32 - format*: VkFormat - offset*: uint32 - VkPipelineVertexInputStateCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkPipelineVertexInputStateCreateFlags - vertexBindingDescriptionCount*: uint32 - pVertexBindingDescriptions*: ptr VkVertexInputBindingDescription - vertexAttributeDescriptionCount*: uint32 - pVertexAttributeDescriptions*: ptr VkVertexInputAttributeDescription - VkPipelineInputAssemblyStateCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkPipelineInputAssemblyStateCreateFlags - topology*: VkPrimitiveTopology - primitiveRestartEnable*: VkBool32 - VkPipelineTessellationStateCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkPipelineTessellationStateCreateFlags - patchControlPoints*: uint32 - VkPipelineViewportStateCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkPipelineViewportStateCreateFlags - viewportCount*: uint32 - pViewports*: ptr VkViewport - scissorCount*: uint32 - pScissors*: ptr VkRect2D - VkPipelineRasterizationStateCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkPipelineRasterizationStateCreateFlags - depthClampEnable*: VkBool32 - rasterizerDiscardEnable*: VkBool32 - polygonMode*: VkPolygonMode - cullMode*: VkCullModeFlags - frontFace*: VkFrontFace - depthBiasEnable*: VkBool32 - depthBiasConstantFactor*: float32 - depthBiasClamp*: float32 - depthBiasSlopeFactor*: float32 - lineWidth*: float32 - VkPipelineMultisampleStateCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkPipelineMultisampleStateCreateFlags - rasterizationSamples*: VkSampleCountFlagBits - sampleShadingEnable*: VkBool32 - minSampleShading*: float32 - pSampleMask*: ptr VkSampleMask - alphaToCoverageEnable*: VkBool32 - alphaToOneEnable*: VkBool32 - VkPipelineColorBlendAttachmentState* = object - blendEnable*: VkBool32 - srcColorBlendFactor*: VkBlendFactor - dstColorBlendFactor*: VkBlendFactor - colorBlendOp*: VkBlendOp - srcAlphaBlendFactor*: VkBlendFactor - dstAlphaBlendFactor*: VkBlendFactor - alphaBlendOp*: VkBlendOp - colorWriteMask*: VkColorComponentFlags - VkPipelineColorBlendStateCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkPipelineColorBlendStateCreateFlags - logicOpEnable*: VkBool32 - logicOp*: VkLogicOp - attachmentCount*: uint32 - pAttachments*: ptr VkPipelineColorBlendAttachmentState - blendConstants*: array[4, float32] - VkPipelineDynamicStateCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkPipelineDynamicStateCreateFlags - dynamicStateCount*: uint32 - pDynamicStates*: ptr VkDynamicState - VkStencilOpState* = object - failOp*: VkStencilOp - passOp*: VkStencilOp - depthFailOp*: VkStencilOp - compareOp*: VkCompareOp - compareMask*: uint32 - writeMask*: uint32 - reference*: uint32 - VkPipelineDepthStencilStateCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkPipelineDepthStencilStateCreateFlags - depthTestEnable*: VkBool32 - depthWriteEnable*: VkBool32 - depthCompareOp*: VkCompareOp - depthBoundsTestEnable*: VkBool32 - stencilTestEnable*: VkBool32 - front*: VkStencilOpState - back*: VkStencilOpState - minDepthBounds*: float32 - maxDepthBounds*: float32 - VkGraphicsPipelineCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkPipelineCreateFlags - stageCount*: uint32 - pStages*: ptr VkPipelineShaderStageCreateInfo - pVertexInputState*: ptr VkPipelineVertexInputStateCreateInfo - pInputAssemblyState*: ptr VkPipelineInputAssemblyStateCreateInfo - pTessellationState*: ptr VkPipelineTessellationStateCreateInfo - pViewportState*: ptr VkPipelineViewportStateCreateInfo - pRasterizationState*: ptr VkPipelineRasterizationStateCreateInfo - pMultisampleState*: ptr VkPipelineMultisampleStateCreateInfo - pDepthStencilState*: ptr VkPipelineDepthStencilStateCreateInfo - pColorBlendState*: ptr VkPipelineColorBlendStateCreateInfo - pDynamicState*: ptr VkPipelineDynamicStateCreateInfo - layout*: VkPipelineLayout - renderPass*: VkRenderPass - subpass*: uint32 - basePipelineHandle*: VkPipeline - basePipelineIndex*: int32 - VkPipelineCacheCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkPipelineCacheCreateFlags - initialDataSize*: csize_t - pInitialData*: pointer - VkPipelineCacheHeaderVersionOne* = object - headerSize*: uint32 - headerVersion*: VkPipelineCacheHeaderVersion - vendorID*: uint32 - deviceID*: uint32 - pipelineCacheUUID*: array[VK_UUID_SIZE, uint8] - VkPipelineCacheStageValidationIndexEntry* = object - codeSize*: uint64 - codeOffset*: uint64 - VkPipelineCacheSafetyCriticalIndexEntry* = object - pipelineIdentifier*: array[VK_UUID_SIZE, uint8] - pipelineMemorySize*: uint64 - jsonSize*: uint64 - jsonOffset*: uint64 - stageIndexCount*: uint32 - stageIndexStride*: uint32 - stageIndexOffset*: uint64 - VkPipelineCacheHeaderVersionSafetyCriticalOne* = object - headerVersionOne*: VkPipelineCacheHeaderVersionOne - validationVersion*: VkPipelineCacheValidationVersion - implementationData*: uint32 - pipelineIndexCount*: uint32 - pipelineIndexStride*: uint32 - pipelineIndexOffset*: uint64 - VkPushConstantRange* = object - stageFlags*: VkShaderStageFlags - offset*: uint32 - size*: uint32 - VkPipelineLayoutCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkPipelineLayoutCreateFlags - setLayoutCount*: uint32 - pSetLayouts*: ptr VkDescriptorSetLayout - pushConstantRangeCount*: uint32 - pPushConstantRanges*: ptr VkPushConstantRange - VkSamplerCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkSamplerCreateFlags - magFilter*: VkFilter - minFilter*: VkFilter - mipmapMode*: VkSamplerMipmapMode - addressModeU*: VkSamplerAddressMode - addressModeV*: VkSamplerAddressMode - addressModeW*: VkSamplerAddressMode - mipLodBias*: float32 - anisotropyEnable*: VkBool32 - maxAnisotropy*: float32 - compareEnable*: VkBool32 - compareOp*: VkCompareOp - minLod*: float32 - maxLod*: float32 - borderColor*: VkBorderColor - unnormalizedCoordinates*: VkBool32 - VkCommandPoolCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkCommandPoolCreateFlags - queueFamilyIndex*: uint32 - VkCommandBufferAllocateInfo* = object - sType*: VkStructureType - pNext*: pointer - commandPool*: VkCommandPool - level*: VkCommandBufferLevel - commandBufferCount*: uint32 - VkCommandBufferInheritanceInfo* = object - sType*: VkStructureType - pNext*: pointer - renderPass*: VkRenderPass - subpass*: uint32 - framebuffer*: VkFramebuffer - occlusionQueryEnable*: VkBool32 - queryFlags*: VkQueryControlFlags - pipelineStatistics*: VkQueryPipelineStatisticFlags - VkCommandBufferBeginInfo* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkCommandBufferUsageFlags - pInheritanceInfo*: ptr VkCommandBufferInheritanceInfo - VkRenderPassBeginInfo* = object - sType*: VkStructureType - pNext*: pointer - renderPass*: VkRenderPass - framebuffer*: VkFramebuffer - renderArea*: VkRect2D - clearValueCount*: uint32 - pClearValues*: ptr VkClearValue - VkClearColorValue* {.union.} = object - float32*: array[4, float32] - int32*: array[4, int32] - uint32*: array[4, uint32] - VkClearDepthStencilValue* = object - depth*: float32 - stencil*: uint32 - VkClearValue* {.union.} = object - color*: VkClearColorValue - depthStencil*: VkClearDepthStencilValue - VkClearAttachment* = object - aspectMask*: VkImageAspectFlags - colorAttachment*: uint32 - clearValue*: VkClearValue - VkAttachmentDescription* = object - flags*: VkAttachmentDescriptionFlags - format*: VkFormat - samples*: VkSampleCountFlagBits - loadOp*: VkAttachmentLoadOp - storeOp*: VkAttachmentStoreOp - stencilLoadOp*: VkAttachmentLoadOp - stencilStoreOp*: VkAttachmentStoreOp - initialLayout*: VkImageLayout - finalLayout*: VkImageLayout - VkAttachmentReference* = object - attachment*: uint32 - layout*: VkImageLayout - VkSubpassDescription* = object - flags*: VkSubpassDescriptionFlags - pipelineBindPoint*: VkPipelineBindPoint - inputAttachmentCount*: uint32 - pInputAttachments*: ptr VkAttachmentReference - colorAttachmentCount*: uint32 - pColorAttachments*: ptr VkAttachmentReference - pResolveAttachments*: ptr VkAttachmentReference - pDepthStencilAttachment*: ptr VkAttachmentReference - preserveAttachmentCount*: uint32 - pPreserveAttachments*: ptr uint32 - VkSubpassDependency* = object - srcSubpass*: uint32 - dstSubpass*: uint32 - srcStageMask*: VkPipelineStageFlags - dstStageMask*: VkPipelineStageFlags - srcAccessMask*: VkAccessFlags - dstAccessMask*: VkAccessFlags - dependencyFlags*: VkDependencyFlags - VkRenderPassCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkRenderPassCreateFlags - attachmentCount*: uint32 - pAttachments*: ptr VkAttachmentDescription - subpassCount*: uint32 - pSubpasses*: ptr VkSubpassDescription - dependencyCount*: uint32 - pDependencies*: ptr VkSubpassDependency - VkEventCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkEventCreateFlags - VkFenceCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkFenceCreateFlags - VkPhysicalDeviceFeatures* = object - robustBufferAccess*: VkBool32 - fullDrawIndexUint32*: VkBool32 - imageCubeArray*: VkBool32 - independentBlend*: VkBool32 - geometryShader*: VkBool32 - tessellationShader*: VkBool32 - sampleRateShading*: VkBool32 - dualSrcBlend*: VkBool32 - logicOp*: VkBool32 - multiDrawIndirect*: VkBool32 - drawIndirectFirstInstance*: VkBool32 - depthClamp*: VkBool32 - depthBiasClamp*: VkBool32 - fillModeNonSolid*: VkBool32 - depthBounds*: VkBool32 - wideLines*: VkBool32 - largePoints*: VkBool32 - alphaToOne*: VkBool32 - multiViewport*: VkBool32 - samplerAnisotropy*: VkBool32 - textureCompressionETC2*: VkBool32 - textureCompressionASTC_LDR*: VkBool32 - textureCompressionBC*: VkBool32 - occlusionQueryPrecise*: VkBool32 - pipelineStatisticsQuery*: VkBool32 - vertexPipelineStoresAndAtomics*: VkBool32 - fragmentStoresAndAtomics*: VkBool32 - shaderTessellationAndGeometryPointSize*: VkBool32 - shaderImageGatherExtended*: VkBool32 - shaderStorageImageExtendedFormats*: VkBool32 - shaderStorageImageMultisample*: VkBool32 - shaderStorageImageReadWithoutFormat*: VkBool32 - shaderStorageImageWriteWithoutFormat*: VkBool32 - shaderUniformBufferArrayDynamicIndexing*: VkBool32 - shaderSampledImageArrayDynamicIndexing*: VkBool32 - shaderStorageBufferArrayDynamicIndexing*: VkBool32 - shaderStorageImageArrayDynamicIndexing*: VkBool32 - shaderClipDistance*: VkBool32 - shaderCullDistance*: VkBool32 - shaderFloat64*: VkBool32 - shaderInt64*: VkBool32 - shaderInt16*: VkBool32 - shaderResourceResidency*: VkBool32 - shaderResourceMinLod*: VkBool32 - sparseBinding*: VkBool32 - sparseResidencyBuffer*: VkBool32 - sparseResidencyImage2D*: VkBool32 - sparseResidencyImage3D*: VkBool32 - sparseResidency2Samples*: VkBool32 - sparseResidency4Samples*: VkBool32 - sparseResidency8Samples*: VkBool32 - sparseResidency16Samples*: VkBool32 - sparseResidencyAliased*: VkBool32 - variableMultisampleRate*: VkBool32 - inheritedQueries*: VkBool32 - VkPhysicalDeviceSparseProperties* = object - residencyStandard2DBlockShape*: VkBool32 - residencyStandard2DMultisampleBlockShape*: VkBool32 - residencyStandard3DBlockShape*: VkBool32 - residencyAlignedMipSize*: VkBool32 - residencyNonResidentStrict*: VkBool32 - VkPhysicalDeviceLimits* = object - maxImageDimension1D*: uint32 - maxImageDimension2D*: uint32 - maxImageDimension3D*: uint32 - maxImageDimensionCube*: uint32 - maxImageArrayLayers*: uint32 - maxTexelBufferElements*: uint32 - maxUniformBufferRange*: uint32 - maxStorageBufferRange*: uint32 - maxPushConstantsSize*: uint32 - maxMemoryAllocationCount*: uint32 - maxSamplerAllocationCount*: uint32 - bufferImageGranularity*: VkDeviceSize - sparseAddressSpaceSize*: VkDeviceSize - maxBoundDescriptorSets*: uint32 - maxPerStageDescriptorSamplers*: uint32 - maxPerStageDescriptorUniformBuffers*: uint32 - maxPerStageDescriptorStorageBuffers*: uint32 - maxPerStageDescriptorSampledImages*: uint32 - maxPerStageDescriptorStorageImages*: uint32 - maxPerStageDescriptorInputAttachments*: uint32 - maxPerStageResources*: uint32 - maxDescriptorSetSamplers*: uint32 - maxDescriptorSetUniformBuffers*: uint32 - maxDescriptorSetUniformBuffersDynamic*: uint32 - maxDescriptorSetStorageBuffers*: uint32 - maxDescriptorSetStorageBuffersDynamic*: uint32 - maxDescriptorSetSampledImages*: uint32 - maxDescriptorSetStorageImages*: uint32 - maxDescriptorSetInputAttachments*: uint32 - maxVertexInputAttributes*: uint32 - maxVertexInputBindings*: uint32 - maxVertexInputAttributeOffset*: uint32 - maxVertexInputBindingStride*: uint32 - maxVertexOutputComponents*: uint32 - maxTessellationGenerationLevel*: uint32 - maxTessellationPatchSize*: uint32 - maxTessellationControlPerVertexInputComponents*: uint32 - maxTessellationControlPerVertexOutputComponents*: uint32 - maxTessellationControlPerPatchOutputComponents*: uint32 - maxTessellationControlTotalOutputComponents*: uint32 - maxTessellationEvaluationInputComponents*: uint32 - maxTessellationEvaluationOutputComponents*: uint32 - maxGeometryShaderInvocations*: uint32 - maxGeometryInputComponents*: uint32 - maxGeometryOutputComponents*: uint32 - maxGeometryOutputVertices*: uint32 - maxGeometryTotalOutputComponents*: uint32 - maxFragmentInputComponents*: uint32 - maxFragmentOutputAttachments*: uint32 - maxFragmentDualSrcAttachments*: uint32 - maxFragmentCombinedOutputResources*: uint32 - maxComputeSharedMemorySize*: uint32 - maxComputeWorkGroupCount*: array[3, uint32] - maxComputeWorkGroupInvocations*: uint32 - maxComputeWorkGroupSize*: array[3, uint32] - subPixelPrecisionBits*: uint32 - subTexelPrecisionBits*: uint32 - mipmapPrecisionBits*: uint32 - maxDrawIndexedIndexValue*: uint32 - maxDrawIndirectCount*: uint32 - maxSamplerLodBias*: float32 - maxSamplerAnisotropy*: float32 - maxViewports*: uint32 - maxViewportDimensions*: array[2, uint32] - viewportBoundsRange*: array[2, float32] - viewportSubPixelBits*: uint32 - minMemoryMapAlignment*: csize_t - minTexelBufferOffsetAlignment*: VkDeviceSize - minUniformBufferOffsetAlignment*: VkDeviceSize - minStorageBufferOffsetAlignment*: VkDeviceSize - minTexelOffset*: int32 - maxTexelOffset*: uint32 - minTexelGatherOffset*: int32 - maxTexelGatherOffset*: uint32 - minInterpolationOffset*: float32 - maxInterpolationOffset*: float32 - subPixelInterpolationOffsetBits*: uint32 - maxFramebufferWidth*: uint32 - maxFramebufferHeight*: uint32 - maxFramebufferLayers*: uint32 - framebufferColorSampleCounts*: VkSampleCountFlags - framebufferDepthSampleCounts*: VkSampleCountFlags - framebufferStencilSampleCounts*: VkSampleCountFlags - framebufferNoAttachmentsSampleCounts*: VkSampleCountFlags - maxColorAttachments*: uint32 - sampledImageColorSampleCounts*: VkSampleCountFlags - sampledImageIntegerSampleCounts*: VkSampleCountFlags - sampledImageDepthSampleCounts*: VkSampleCountFlags - sampledImageStencilSampleCounts*: VkSampleCountFlags - storageImageSampleCounts*: VkSampleCountFlags - maxSampleMaskWords*: uint32 - timestampComputeAndGraphics*: VkBool32 - timestampPeriod*: float32 - maxClipDistances*: uint32 - maxCullDistances*: uint32 - maxCombinedClipAndCullDistances*: uint32 - discreteQueuePriorities*: uint32 - pointSizeRange*: array[2, float32] - lineWidthRange*: array[2, float32] - pointSizeGranularity*: float32 - lineWidthGranularity*: float32 - strictLines*: VkBool32 - standardSampleLocations*: VkBool32 - optimalBufferCopyOffsetAlignment*: VkDeviceSize - optimalBufferCopyRowPitchAlignment*: VkDeviceSize - nonCoherentAtomSize*: VkDeviceSize - VkSemaphoreCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkSemaphoreCreateFlags - VkQueryPoolCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkQueryPoolCreateFlags - queryType*: VkQueryType - queryCount*: uint32 - pipelineStatistics*: VkQueryPipelineStatisticFlags - VkFramebufferCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkFramebufferCreateFlags - renderPass*: VkRenderPass - attachmentCount*: uint32 - pAttachments*: ptr VkImageView - width*: uint32 - height*: uint32 - layers*: uint32 - VkDrawIndirectCommand* = object - vertexCount*: uint32 - instanceCount*: uint32 - firstVertex*: uint32 - firstInstance*: uint32 - VkDrawIndexedIndirectCommand* = object - indexCount*: uint32 - instanceCount*: uint32 - firstIndex*: uint32 - vertexOffset*: int32 - firstInstance*: uint32 - VkDispatchIndirectCommand* = object - x*: uint32 - y*: uint32 - z*: uint32 - VkMultiDrawInfoEXT* = object - firstVertex*: uint32 - vertexCount*: uint32 - VkMultiDrawIndexedInfoEXT* = object - firstIndex*: uint32 - indexCount*: uint32 - vertexOffset*: int32 - VkSubmitInfo* = object - sType*: VkStructureType - pNext*: pointer - waitSemaphoreCount*: uint32 - pWaitSemaphores*: ptr VkSemaphore - pWaitDstStageMask*: ptr VkPipelineStageFlags - commandBufferCount*: uint32 - pCommandBuffers*: ptr VkCommandBuffer - signalSemaphoreCount*: uint32 - pSignalSemaphores*: ptr VkSemaphore - VkDisplayPropertiesKHR* = object - display*: VkDisplayKHR - displayName*: cstring - physicalDimensions*: VkExtent2D - physicalResolution*: VkExtent2D - supportedTransforms*: VkSurfaceTransformFlagsKHR - planeReorderPossible*: VkBool32 - persistentContent*: VkBool32 - VkDisplayPlanePropertiesKHR* = object - currentDisplay*: VkDisplayKHR - currentStackIndex*: uint32 - VkDisplayModeParametersKHR* = object - visibleRegion*: VkExtent2D - refreshRate*: uint32 - VkDisplayModePropertiesKHR* = object - displayMode*: VkDisplayModeKHR - parameters*: VkDisplayModeParametersKHR - VkDisplayModeCreateInfoKHR* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkDisplayModeCreateFlagsKHR - parameters*: VkDisplayModeParametersKHR - VkDisplayPlaneCapabilitiesKHR* = object - supportedAlpha*: VkDisplayPlaneAlphaFlagsKHR - minSrcPosition*: VkOffset2D - maxSrcPosition*: VkOffset2D - minSrcExtent*: VkExtent2D - maxSrcExtent*: VkExtent2D - minDstPosition*: VkOffset2D - maxDstPosition*: VkOffset2D - minDstExtent*: VkExtent2D - maxDstExtent*: VkExtent2D - VkDisplaySurfaceCreateInfoKHR* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkDisplaySurfaceCreateFlagsKHR - displayMode*: VkDisplayModeKHR - planeIndex*: uint32 - planeStackIndex*: uint32 - transform*: VkSurfaceTransformFlagBitsKHR - globalAlpha*: float32 - alphaMode*: VkDisplayPlaneAlphaFlagBitsKHR - imageExtent*: VkExtent2D - VkDisplayPresentInfoKHR* = object - sType*: VkStructureType - pNext*: pointer - srcRect*: VkRect2D - dstRect*: VkRect2D - persistent*: VkBool32 - VkSurfaceCapabilitiesKHR* = object - minImageCount*: uint32 - maxImageCount*: uint32 - currentExtent*: VkExtent2D - minImageExtent*: VkExtent2D - maxImageExtent*: VkExtent2D - maxImageArrayLayers*: uint32 - supportedTransforms*: VkSurfaceTransformFlagsKHR - currentTransform*: VkSurfaceTransformFlagBitsKHR - supportedCompositeAlpha*: VkCompositeAlphaFlagsKHR - supportedUsageFlags*: VkImageUsageFlags - VkSurfaceFormatKHR* = object - format*: VkFormat - colorSpace*: VkColorSpaceKHR - VkSwapchainCreateInfoKHR* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkSwapchainCreateFlagsKHR - surface*: VkSurfaceKHR - minImageCount*: uint32 - imageFormat*: VkFormat - imageColorSpace*: VkColorSpaceKHR - imageExtent*: VkExtent2D - imageArrayLayers*: uint32 - imageUsage*: VkImageUsageFlags - imageSharingMode*: VkSharingMode - queueFamilyIndexCount*: uint32 - pQueueFamilyIndices*: ptr uint32 - preTransform*: VkSurfaceTransformFlagBitsKHR - compositeAlpha*: VkCompositeAlphaFlagBitsKHR - presentMode*: VkPresentModeKHR - clipped*: VkBool32 - oldSwapchain*: VkSwapchainKHR - VkPresentInfoKHR* = object - sType*: VkStructureType - pNext*: pointer - waitSemaphoreCount*: uint32 - pWaitSemaphores*: ptr VkSemaphore - swapchainCount*: uint32 - pSwapchains*: ptr VkSwapchainKHR - pImageIndices*: ptr uint32 - pResults*: ptr VkResult - VkDebugReportCallbackCreateInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkDebugReportFlagsEXT - pfnCallback*: PFN_vkDebugReportCallbackEXT - pUserData*: pointer - VkValidationFlagsEXT* = object - sType*: VkStructureType - pNext*: pointer - disabledValidationCheckCount*: uint32 - pDisabledValidationChecks*: ptr VkValidationCheckEXT - VkValidationFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - enabledValidationFeatureCount*: uint32 - pEnabledValidationFeatures*: ptr VkValidationFeatureEnableEXT - disabledValidationFeatureCount*: uint32 - pDisabledValidationFeatures*: ptr VkValidationFeatureDisableEXT - VkApplicationParametersEXT* = object - sType*: VkStructureType - pNext*: pointer - vendorID*: uint32 - deviceID*: uint32 - key*: uint32 - value*: uint64 - VkPipelineRasterizationStateRasterizationOrderAMD* = object - sType*: VkStructureType - pNext*: pointer - rasterizationOrder*: VkRasterizationOrderAMD - VkDebugMarkerObjectNameInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - objectType*: VkDebugReportObjectTypeEXT - theobject*: uint64 - pObjectName*: cstring - VkDebugMarkerObjectTagInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - objectType*: VkDebugReportObjectTypeEXT - theobject*: uint64 - tagName*: uint64 - tagSize*: csize_t - pTag*: pointer - VkDebugMarkerMarkerInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - pMarkerName*: cstring - color*: array[4, float32] - VkDedicatedAllocationImageCreateInfoNV* = object - sType*: VkStructureType - pNext*: pointer - dedicatedAllocation*: VkBool32 - VkDedicatedAllocationBufferCreateInfoNV* = object - sType*: VkStructureType - pNext*: pointer - dedicatedAllocation*: VkBool32 - VkDedicatedAllocationMemoryAllocateInfoNV* = object - sType*: VkStructureType - pNext*: pointer - image*: VkImage - buffer*: VkBuffer - VkExternalImageFormatPropertiesNV* = object - imageFormatProperties*: VkImageFormatProperties - externalMemoryFeatures*: VkExternalMemoryFeatureFlagsNV - exportFromImportedHandleTypes*: VkExternalMemoryHandleTypeFlagsNV - compatibleHandleTypes*: VkExternalMemoryHandleTypeFlagsNV - VkExternalMemoryImageCreateInfoNV* = object - sType*: VkStructureType - pNext*: pointer - handleTypes*: VkExternalMemoryHandleTypeFlagsNV - VkExportMemoryAllocateInfoNV* = object - sType*: VkStructureType - pNext*: pointer - handleTypes*: VkExternalMemoryHandleTypeFlagsNV - VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV* = object - sType*: VkStructureType - pNext*: pointer - deviceGeneratedCommands*: VkBool32 - VkDevicePrivateDataCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - privateDataSlotRequestCount*: uint32 - VkDevicePrivateDataCreateInfoEXT* = object - VkPrivateDataSlotCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkPrivateDataSlotCreateFlags - VkPrivateDataSlotCreateInfoEXT* = object - VkPhysicalDevicePrivateDataFeatures* = object - sType*: VkStructureType - pNext*: pointer - privateData*: VkBool32 - VkPhysicalDevicePrivateDataFeaturesEXT* = object - VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV* = object - sType*: VkStructureType - pNext*: pointer - maxGraphicsShaderGroupCount*: uint32 - maxIndirectSequenceCount*: uint32 - maxIndirectCommandsTokenCount*: uint32 - maxIndirectCommandsStreamCount*: uint32 - maxIndirectCommandsTokenOffset*: uint32 - maxIndirectCommandsStreamStride*: uint32 - minSequencesCountBufferOffsetAlignment*: uint32 - minSequencesIndexBufferOffsetAlignment*: uint32 - minIndirectCommandsBufferOffsetAlignment*: uint32 - VkPhysicalDeviceMultiDrawPropertiesEXT* = object - sType*: VkStructureType - pNext*: pointer - maxMultiDrawCount*: uint32 - VkGraphicsShaderGroupCreateInfoNV* = object - sType*: VkStructureType - pNext*: pointer - stageCount*: uint32 - pStages*: ptr VkPipelineShaderStageCreateInfo - pVertexInputState*: ptr VkPipelineVertexInputStateCreateInfo - pTessellationState*: ptr VkPipelineTessellationStateCreateInfo - VkGraphicsPipelineShaderGroupsCreateInfoNV* = object - sType*: VkStructureType - pNext*: pointer - groupCount*: uint32 - pGroups*: ptr VkGraphicsShaderGroupCreateInfoNV - pipelineCount*: uint32 - pPipelines*: ptr VkPipeline - VkBindShaderGroupIndirectCommandNV* = object - groupIndex*: uint32 - VkBindIndexBufferIndirectCommandNV* = object - bufferAddress*: VkDeviceAddress - size*: uint32 - indexType*: VkIndexType - VkBindVertexBufferIndirectCommandNV* = object - bufferAddress*: VkDeviceAddress - size*: uint32 - stride*: uint32 - VkSetStateFlagsIndirectCommandNV* = object - data*: uint32 - VkIndirectCommandsStreamNV* = object - buffer*: VkBuffer - offset*: VkDeviceSize - VkIndirectCommandsLayoutTokenNV* = object - sType*: VkStructureType - pNext*: pointer - tokenType*: VkIndirectCommandsTokenTypeNV - stream*: uint32 - offset*: uint32 - vertexBindingUnit*: uint32 - vertexDynamicStride*: VkBool32 - pushconstantPipelineLayout*: VkPipelineLayout - pushconstantShaderStageFlags*: VkShaderStageFlags - pushconstantOffset*: uint32 - pushconstantSize*: uint32 - indirectStateFlags*: VkIndirectStateFlagsNV - indexTypeCount*: uint32 - pIndexTypes*: ptr VkIndexType - pIndexTypeValues*: ptr uint32 - VkIndirectCommandsLayoutCreateInfoNV* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkIndirectCommandsLayoutUsageFlagsNV - pipelineBindPoint*: VkPipelineBindPoint - tokenCount*: uint32 - pTokens*: ptr VkIndirectCommandsLayoutTokenNV - streamCount*: uint32 - pStreamStrides*: ptr uint32 - VkGeneratedCommandsInfoNV* = object - sType*: VkStructureType - pNext*: pointer - pipelineBindPoint*: VkPipelineBindPoint - pipeline*: VkPipeline - indirectCommandsLayout*: VkIndirectCommandsLayoutNV - streamCount*: uint32 - pStreams*: ptr VkIndirectCommandsStreamNV - sequencesCount*: uint32 - preprocessBuffer*: VkBuffer - preprocessOffset*: VkDeviceSize - preprocessSize*: VkDeviceSize - sequencesCountBuffer*: VkBuffer - sequencesCountOffset*: VkDeviceSize - sequencesIndexBuffer*: VkBuffer - sequencesIndexOffset*: VkDeviceSize - VkGeneratedCommandsMemoryRequirementsInfoNV* = object - sType*: VkStructureType - pNext*: pointer - pipelineBindPoint*: VkPipelineBindPoint - pipeline*: VkPipeline - indirectCommandsLayout*: VkIndirectCommandsLayoutNV - maxSequencesCount*: uint32 - VkPhysicalDeviceFeatures2* = object - sType*: VkStructureType - pNext*: pointer - features*: VkPhysicalDeviceFeatures - VkPhysicalDeviceFeatures2KHR* = object - VkPhysicalDeviceProperties2* = object - sType*: VkStructureType - pNext*: pointer - properties*: VkPhysicalDeviceProperties - VkPhysicalDeviceProperties2KHR* = object - VkFormatProperties2* = object - sType*: VkStructureType - pNext*: pointer - formatProperties*: VkFormatProperties - VkFormatProperties2KHR* = object - VkImageFormatProperties2* = object - sType*: VkStructureType - pNext*: pointer - imageFormatProperties*: VkImageFormatProperties - VkImageFormatProperties2KHR* = object - VkPhysicalDeviceImageFormatInfo2* = object - sType*: VkStructureType - pNext*: pointer - format*: VkFormat - thetype*: VkImageType - tiling*: VkImageTiling - usage*: VkImageUsageFlags - flags*: VkImageCreateFlags - VkPhysicalDeviceImageFormatInfo2KHR* = object - VkQueueFamilyProperties2* = object - sType*: VkStructureType - pNext*: pointer - queueFamilyProperties*: VkQueueFamilyProperties - VkQueueFamilyProperties2KHR* = object - VkPhysicalDeviceMemoryProperties2* = object - sType*: VkStructureType - pNext*: pointer - memoryProperties*: VkPhysicalDeviceMemoryProperties - VkPhysicalDeviceMemoryProperties2KHR* = object - VkSparseImageFormatProperties2* = object - sType*: VkStructureType - pNext*: pointer - properties*: VkSparseImageFormatProperties - VkSparseImageFormatProperties2KHR* = object - VkPhysicalDeviceSparseImageFormatInfo2* = object - sType*: VkStructureType - pNext*: pointer - format*: VkFormat - thetype*: VkImageType - samples*: VkSampleCountFlagBits - usage*: VkImageUsageFlags - tiling*: VkImageTiling - VkPhysicalDeviceSparseImageFormatInfo2KHR* = object - VkPhysicalDevicePushDescriptorPropertiesKHR* = object - sType*: VkStructureType - pNext*: pointer - maxPushDescriptors*: uint32 - VkConformanceVersion* = object - major*: uint8 - minor*: uint8 - subminor*: uint8 - patch*: uint8 - VkConformanceVersionKHR* = object - VkPhysicalDeviceDriverProperties* = object - sType*: VkStructureType - pNext*: pointer - driverID*: VkDriverId - driverName*: array[VK_MAX_DRIVER_NAME_SIZE, char] - driverInfo*: array[VK_MAX_DRIVER_INFO_SIZE, char] - conformanceVersion*: VkConformanceVersion - VkPhysicalDeviceDriverPropertiesKHR* = object - VkPresentRegionsKHR* = object - sType*: VkStructureType - pNext*: pointer - swapchainCount*: uint32 - pRegions*: ptr VkPresentRegionKHR - VkPresentRegionKHR* = object - rectangleCount*: uint32 - pRectangles*: ptr VkRectLayerKHR - VkRectLayerKHR* = object - offset*: VkOffset2D - extent*: VkExtent2D - layer*: uint32 - VkPhysicalDeviceVariablePointersFeatures* = object - sType*: VkStructureType - pNext*: pointer - variablePointersStorageBuffer*: VkBool32 - variablePointers*: VkBool32 - VkPhysicalDeviceVariablePointersFeaturesKHR* = object - VkPhysicalDeviceVariablePointerFeaturesKHR* = object - VkPhysicalDeviceVariablePointerFeatures* = object - VkExternalMemoryProperties* = object - externalMemoryFeatures*: VkExternalMemoryFeatureFlags - exportFromImportedHandleTypes*: VkExternalMemoryHandleTypeFlags - compatibleHandleTypes*: VkExternalMemoryHandleTypeFlags - VkExternalMemoryPropertiesKHR* = object - VkPhysicalDeviceExternalImageFormatInfo* = object - sType*: VkStructureType - pNext*: pointer - handleType*: VkExternalMemoryHandleTypeFlagBits - VkPhysicalDeviceExternalImageFormatInfoKHR* = object - VkExternalImageFormatProperties* = object - sType*: VkStructureType - pNext*: pointer - externalMemoryProperties*: VkExternalMemoryProperties - VkExternalImageFormatPropertiesKHR* = object - VkPhysicalDeviceExternalBufferInfo* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkBufferCreateFlags - usage*: VkBufferUsageFlags - handleType*: VkExternalMemoryHandleTypeFlagBits - VkPhysicalDeviceExternalBufferInfoKHR* = object - VkExternalBufferProperties* = object - sType*: VkStructureType - pNext*: pointer - externalMemoryProperties*: VkExternalMemoryProperties - VkExternalBufferPropertiesKHR* = object - VkPhysicalDeviceIDProperties* = object - sType*: VkStructureType - pNext*: pointer - deviceUUID*: array[VK_UUID_SIZE, uint8] - driverUUID*: array[VK_UUID_SIZE, uint8] - deviceLUID*: array[VK_LUID_SIZE, uint8] - deviceNodeMask*: uint32 - deviceLUIDValid*: VkBool32 - VkPhysicalDeviceIDPropertiesKHR* = object - VkExternalMemoryImageCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - handleTypes*: VkExternalMemoryHandleTypeFlags - VkExternalMemoryImageCreateInfoKHR* = object - VkExternalMemoryBufferCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - handleTypes*: VkExternalMemoryHandleTypeFlags - VkExternalMemoryBufferCreateInfoKHR* = object - VkExportMemoryAllocateInfo* = object - sType*: VkStructureType - pNext*: pointer - handleTypes*: VkExternalMemoryHandleTypeFlags - VkExportMemoryAllocateInfoKHR* = object - VkImportMemoryFdInfoKHR* = object - sType*: VkStructureType - pNext*: pointer - handleType*: VkExternalMemoryHandleTypeFlagBits - fd*: cint - VkMemoryFdPropertiesKHR* = object - sType*: VkStructureType - pNext*: pointer - memoryTypeBits*: uint32 - VkMemoryGetFdInfoKHR* = object - sType*: VkStructureType - pNext*: pointer - memory*: VkDeviceMemory - handleType*: VkExternalMemoryHandleTypeFlagBits - VkPhysicalDeviceExternalSemaphoreInfo* = object - sType*: VkStructureType - pNext*: pointer - handleType*: VkExternalSemaphoreHandleTypeFlagBits - VkPhysicalDeviceExternalSemaphoreInfoKHR* = object - VkExternalSemaphoreProperties* = object - sType*: VkStructureType - pNext*: pointer - exportFromImportedHandleTypes*: VkExternalSemaphoreHandleTypeFlags - compatibleHandleTypes*: VkExternalSemaphoreHandleTypeFlags - externalSemaphoreFeatures*: VkExternalSemaphoreFeatureFlags - VkExternalSemaphorePropertiesKHR* = object - VkExportSemaphoreCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - handleTypes*: VkExternalSemaphoreHandleTypeFlags - VkExportSemaphoreCreateInfoKHR* = object - VkImportSemaphoreFdInfoKHR* = object - sType*: VkStructureType - pNext*: pointer - semaphore*: VkSemaphore - flags*: VkSemaphoreImportFlags - handleType*: VkExternalSemaphoreHandleTypeFlagBits - fd*: cint - VkSemaphoreGetFdInfoKHR* = object - sType*: VkStructureType - pNext*: pointer - semaphore*: VkSemaphore - handleType*: VkExternalSemaphoreHandleTypeFlagBits - VkPhysicalDeviceExternalFenceInfo* = object - sType*: VkStructureType - pNext*: pointer - handleType*: VkExternalFenceHandleTypeFlagBits - VkPhysicalDeviceExternalFenceInfoKHR* = object - VkExternalFenceProperties* = object - sType*: VkStructureType - pNext*: pointer - exportFromImportedHandleTypes*: VkExternalFenceHandleTypeFlags - compatibleHandleTypes*: VkExternalFenceHandleTypeFlags - externalFenceFeatures*: VkExternalFenceFeatureFlags - VkExternalFencePropertiesKHR* = object - VkExportFenceCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - handleTypes*: VkExternalFenceHandleTypeFlags - VkExportFenceCreateInfoKHR* = object - VkImportFenceFdInfoKHR* = object - sType*: VkStructureType - pNext*: pointer - fence*: VkFence - flags*: VkFenceImportFlags - handleType*: VkExternalFenceHandleTypeFlagBits - fd*: cint - VkFenceGetFdInfoKHR* = object - sType*: VkStructureType - pNext*: pointer - fence*: VkFence - handleType*: VkExternalFenceHandleTypeFlagBits - VkPhysicalDeviceMultiviewFeatures* = object - sType*: VkStructureType - pNext*: pointer - multiview*: VkBool32 - multiviewGeometryShader*: VkBool32 - multiviewTessellationShader*: VkBool32 - VkPhysicalDeviceMultiviewFeaturesKHR* = object - VkPhysicalDeviceMultiviewProperties* = object - sType*: VkStructureType - pNext*: pointer - maxMultiviewViewCount*: uint32 - maxMultiviewInstanceIndex*: uint32 - VkPhysicalDeviceMultiviewPropertiesKHR* = object - VkRenderPassMultiviewCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - subpassCount*: uint32 - pViewMasks*: ptr uint32 - dependencyCount*: uint32 - pViewOffsets*: ptr int32 - correlationMaskCount*: uint32 - pCorrelationMasks*: ptr uint32 - VkRenderPassMultiviewCreateInfoKHR* = object - VkSurfaceCapabilities2EXT* = object - sType*: VkStructureType - pNext*: pointer - minImageCount*: uint32 - maxImageCount*: uint32 - currentExtent*: VkExtent2D - minImageExtent*: VkExtent2D - maxImageExtent*: VkExtent2D - maxImageArrayLayers*: uint32 - supportedTransforms*: VkSurfaceTransformFlagsKHR - currentTransform*: VkSurfaceTransformFlagBitsKHR - supportedCompositeAlpha*: VkCompositeAlphaFlagsKHR - supportedUsageFlags*: VkImageUsageFlags - supportedSurfaceCounters*: VkSurfaceCounterFlagsEXT - VkDisplayPowerInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - powerState*: VkDisplayPowerStateEXT - VkDeviceEventInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - deviceEvent*: VkDeviceEventTypeEXT - VkDisplayEventInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - displayEvent*: VkDisplayEventTypeEXT - VkSwapchainCounterCreateInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - surfaceCounters*: VkSurfaceCounterFlagsEXT - VkPhysicalDeviceGroupProperties* = object - sType*: VkStructureType - pNext*: pointer - physicalDeviceCount*: uint32 - physicalDevices*: array[VK_MAX_DEVICE_GROUP_SIZE, VkPhysicalDevice] - subsetAllocation*: VkBool32 - VkPhysicalDeviceGroupPropertiesKHR* = object - VkMemoryAllocateFlagsInfo* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkMemoryAllocateFlags - deviceMask*: uint32 - VkMemoryAllocateFlagsInfoKHR* = object - VkBindBufferMemoryInfo* = object - sType*: VkStructureType - pNext*: pointer - buffer*: VkBuffer - memory*: VkDeviceMemory - memoryOffset*: VkDeviceSize - VkBindBufferMemoryInfoKHR* = object - VkBindBufferMemoryDeviceGroupInfo* = object - sType*: VkStructureType - pNext*: pointer - deviceIndexCount*: uint32 - pDeviceIndices*: ptr uint32 - VkBindBufferMemoryDeviceGroupInfoKHR* = object - VkBindImageMemoryInfo* = object - sType*: VkStructureType - pNext*: pointer - image*: VkImage - memory*: VkDeviceMemory - memoryOffset*: VkDeviceSize - VkBindImageMemoryInfoKHR* = object - VkBindImageMemoryDeviceGroupInfo* = object - sType*: VkStructureType - pNext*: pointer - deviceIndexCount*: uint32 - pDeviceIndices*: ptr uint32 - splitInstanceBindRegionCount*: uint32 - pSplitInstanceBindRegions*: ptr VkRect2D - VkBindImageMemoryDeviceGroupInfoKHR* = object - VkDeviceGroupRenderPassBeginInfo* = object - sType*: VkStructureType - pNext*: pointer - deviceMask*: uint32 - deviceRenderAreaCount*: uint32 - pDeviceRenderAreas*: ptr VkRect2D - VkDeviceGroupRenderPassBeginInfoKHR* = object - VkDeviceGroupCommandBufferBeginInfo* = object - sType*: VkStructureType - pNext*: pointer - deviceMask*: uint32 - VkDeviceGroupCommandBufferBeginInfoKHR* = object - VkDeviceGroupSubmitInfo* = object - sType*: VkStructureType - pNext*: pointer - waitSemaphoreCount*: uint32 - pWaitSemaphoreDeviceIndices*: ptr uint32 - commandBufferCount*: uint32 - pCommandBufferDeviceMasks*: ptr uint32 - signalSemaphoreCount*: uint32 - pSignalSemaphoreDeviceIndices*: ptr uint32 - VkDeviceGroupSubmitInfoKHR* = object - VkDeviceGroupBindSparseInfo* = object - sType*: VkStructureType - pNext*: pointer - resourceDeviceIndex*: uint32 - memoryDeviceIndex*: uint32 - VkDeviceGroupBindSparseInfoKHR* = object - VkDeviceGroupPresentCapabilitiesKHR* = object - sType*: VkStructureType - pNext*: pointer - presentMask*: array[VK_MAX_DEVICE_GROUP_SIZE, uint32] - modes*: VkDeviceGroupPresentModeFlagsKHR - VkImageSwapchainCreateInfoKHR* = object - sType*: VkStructureType - pNext*: pointer - swapchain*: VkSwapchainKHR - VkBindImageMemorySwapchainInfoKHR* = object - sType*: VkStructureType - pNext*: pointer - swapchain*: VkSwapchainKHR - imageIndex*: uint32 - VkAcquireNextImageInfoKHR* = object - sType*: VkStructureType - pNext*: pointer - swapchain*: VkSwapchainKHR - timeout*: uint64 - semaphore*: VkSemaphore - fence*: VkFence - deviceMask*: uint32 - VkDeviceGroupPresentInfoKHR* = object - sType*: VkStructureType - pNext*: pointer - swapchainCount*: uint32 - pDeviceMasks*: ptr uint32 - mode*: VkDeviceGroupPresentModeFlagBitsKHR - VkDeviceGroupDeviceCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - physicalDeviceCount*: uint32 - pPhysicalDevices*: ptr VkPhysicalDevice - VkDeviceGroupDeviceCreateInfoKHR* = object - VkDeviceGroupSwapchainCreateInfoKHR* = object - sType*: VkStructureType - pNext*: pointer - modes*: VkDeviceGroupPresentModeFlagsKHR - VkDescriptorUpdateTemplateEntry* = object - dstBinding*: uint32 - dstArrayElement*: uint32 - descriptorCount*: uint32 - descriptorType*: VkDescriptorType - offset*: csize_t - stride*: csize_t - VkDescriptorUpdateTemplateEntryKHR* = object - VkDescriptorUpdateTemplateCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkDescriptorUpdateTemplateCreateFlags - descriptorUpdateEntryCount*: uint32 - pDescriptorUpdateEntries*: ptr VkDescriptorUpdateTemplateEntry - templateType*: VkDescriptorUpdateTemplateType - descriptorSetLayout*: VkDescriptorSetLayout - pipelineBindPoint*: VkPipelineBindPoint - pipelineLayout*: VkPipelineLayout - set*: uint32 - VkDescriptorUpdateTemplateCreateInfoKHR* = object - VkXYColorEXT* = object - x*: float32 - y*: float32 - VkPhysicalDevicePresentIdFeaturesKHR* = object - sType*: VkStructureType - pNext*: pointer - presentId*: VkBool32 - VkPresentIdKHR* = object - sType*: VkStructureType - pNext*: pointer - swapchainCount*: uint32 - pPresentIds*: ptr uint64 - VkPhysicalDevicePresentWaitFeaturesKHR* = object - sType*: VkStructureType - pNext*: pointer - presentWait*: VkBool32 - VkHdrMetadataEXT* = object - sType*: VkStructureType - pNext*: pointer - displayPrimaryRed*: VkXYColorEXT - displayPrimaryGreen*: VkXYColorEXT - displayPrimaryBlue*: VkXYColorEXT - whitePoint*: VkXYColorEXT - maxLuminance*: float32 - minLuminance*: float32 - maxContentLightLevel*: float32 - maxFrameAverageLightLevel*: float32 - VkDisplayNativeHdrSurfaceCapabilitiesAMD* = object - sType*: VkStructureType - pNext*: pointer - localDimmingSupport*: VkBool32 - VkSwapchainDisplayNativeHdrCreateInfoAMD* = object - sType*: VkStructureType - pNext*: pointer - localDimmingEnable*: VkBool32 - VkRefreshCycleDurationGOOGLE* = object - refreshDuration*: uint64 - VkPastPresentationTimingGOOGLE* = object - presentID*: uint32 - desiredPresentTime*: uint64 - actualPresentTime*: uint64 - earliestPresentTime*: uint64 - presentMargin*: uint64 - VkPresentTimesInfoGOOGLE* = object - sType*: VkStructureType - pNext*: pointer - swapchainCount*: uint32 - pTimes*: ptr VkPresentTimeGOOGLE - VkPresentTimeGOOGLE* = object - presentID*: uint32 - desiredPresentTime*: uint64 - VkViewportWScalingNV* = object - xcoeff*: float32 - ycoeff*: float32 - VkPipelineViewportWScalingStateCreateInfoNV* = object - sType*: VkStructureType - pNext*: pointer - viewportWScalingEnable*: VkBool32 - viewportCount*: uint32 - pViewportWScalings*: ptr VkViewportWScalingNV - VkViewportSwizzleNV* = object - x*: VkViewportCoordinateSwizzleNV - y*: VkViewportCoordinateSwizzleNV - z*: VkViewportCoordinateSwizzleNV - w*: VkViewportCoordinateSwizzleNV - VkPipelineViewportSwizzleStateCreateInfoNV* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkPipelineViewportSwizzleStateCreateFlagsNV - viewportCount*: uint32 - pViewportSwizzles*: ptr VkViewportSwizzleNV - VkPhysicalDeviceDiscardRectanglePropertiesEXT* = object - sType*: VkStructureType - pNext*: pointer - maxDiscardRectangles*: uint32 - VkPipelineDiscardRectangleStateCreateInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkPipelineDiscardRectangleStateCreateFlagsEXT - discardRectangleMode*: VkDiscardRectangleModeEXT - discardRectangleCount*: uint32 - pDiscardRectangles*: ptr VkRect2D - VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX* = object - sType*: VkStructureType - pNext*: pointer - perViewPositionAllComponents*: VkBool32 - VkInputAttachmentAspectReference* = object - subpass*: uint32 - inputAttachmentIndex*: uint32 - aspectMask*: VkImageAspectFlags - VkInputAttachmentAspectReferenceKHR* = object - VkRenderPassInputAttachmentAspectCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - aspectReferenceCount*: uint32 - pAspectReferences*: ptr VkInputAttachmentAspectReference - VkRenderPassInputAttachmentAspectCreateInfoKHR* = object - VkPhysicalDeviceSurfaceInfo2KHR* = object - sType*: VkStructureType - pNext*: pointer - surface*: VkSurfaceKHR - VkSurfaceCapabilities2KHR* = object - sType*: VkStructureType - pNext*: pointer - surfaceCapabilities*: VkSurfaceCapabilitiesKHR - VkSurfaceFormat2KHR* = object - sType*: VkStructureType - pNext*: pointer - surfaceFormat*: VkSurfaceFormatKHR - VkDisplayProperties2KHR* = object - sType*: VkStructureType - pNext*: pointer - displayProperties*: VkDisplayPropertiesKHR - VkDisplayPlaneProperties2KHR* = object - sType*: VkStructureType - pNext*: pointer - displayPlaneProperties*: VkDisplayPlanePropertiesKHR - VkDisplayModeProperties2KHR* = object - sType*: VkStructureType - pNext*: pointer - displayModeProperties*: VkDisplayModePropertiesKHR - VkDisplayPlaneInfo2KHR* = object - sType*: VkStructureType - pNext*: pointer - mode*: VkDisplayModeKHR - planeIndex*: uint32 - VkDisplayPlaneCapabilities2KHR* = object - sType*: VkStructureType - pNext*: pointer - capabilities*: VkDisplayPlaneCapabilitiesKHR - VkSharedPresentSurfaceCapabilitiesKHR* = object - sType*: VkStructureType - pNext*: pointer - sharedPresentSupportedUsageFlags*: VkImageUsageFlags - VkPhysicalDevice16BitStorageFeatures* = object - sType*: VkStructureType - pNext*: pointer - storageBuffer16BitAccess*: VkBool32 - uniformAndStorageBuffer16BitAccess*: VkBool32 - storagePushConstant16*: VkBool32 - storageInputOutput16*: VkBool32 - VkPhysicalDevice16BitStorageFeaturesKHR* = object - VkPhysicalDeviceSubgroupProperties* = object - sType*: VkStructureType - pNext*: pointer - subgroupSize*: uint32 - supportedStages*: VkShaderStageFlags - supportedOperations*: VkSubgroupFeatureFlags - quadOperationsInAllStages*: VkBool32 - VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures* = object - sType*: VkStructureType - pNext*: pointer - shaderSubgroupExtendedTypes*: VkBool32 - VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR* = object - VkBufferMemoryRequirementsInfo2* = object - sType*: VkStructureType - pNext*: pointer - buffer*: VkBuffer - VkBufferMemoryRequirementsInfo2KHR* = object - VkDeviceBufferMemoryRequirements* = object - sType*: VkStructureType - pNext*: pointer - pCreateInfo*: ptr VkBufferCreateInfo - VkDeviceBufferMemoryRequirementsKHR* = object - VkImageMemoryRequirementsInfo2* = object - sType*: VkStructureType - pNext*: pointer - image*: VkImage - VkImageMemoryRequirementsInfo2KHR* = object - VkImageSparseMemoryRequirementsInfo2* = object - sType*: VkStructureType - pNext*: pointer - image*: VkImage - VkImageSparseMemoryRequirementsInfo2KHR* = object - VkDeviceImageMemoryRequirements* = object - sType*: VkStructureType - pNext*: pointer - pCreateInfo*: ptr VkImageCreateInfo - planeAspect*: VkImageAspectFlagBits - VkDeviceImageMemoryRequirementsKHR* = object - VkMemoryRequirements2* = object - sType*: VkStructureType - pNext*: pointer - memoryRequirements*: VkMemoryRequirements - VkMemoryRequirements2KHR* = object - VkSparseImageMemoryRequirements2* = object - sType*: VkStructureType - pNext*: pointer - memoryRequirements*: VkSparseImageMemoryRequirements - VkSparseImageMemoryRequirements2KHR* = object - VkPhysicalDevicePointClippingProperties* = object - sType*: VkStructureType - pNext*: pointer - pointClippingBehavior*: VkPointClippingBehavior - VkPhysicalDevicePointClippingPropertiesKHR* = object - VkMemoryDedicatedRequirements* = object - sType*: VkStructureType - pNext*: pointer - prefersDedicatedAllocation*: VkBool32 - requiresDedicatedAllocation*: VkBool32 - VkMemoryDedicatedRequirementsKHR* = object - VkMemoryDedicatedAllocateInfo* = object - sType*: VkStructureType - pNext*: pointer - image*: VkImage - buffer*: VkBuffer - VkMemoryDedicatedAllocateInfoKHR* = object - VkImageViewUsageCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - usage*: VkImageUsageFlags - VkImageViewSlicedCreateInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - sliceOffset*: uint32 - sliceCount*: uint32 - VkImageViewUsageCreateInfoKHR* = object - VkPipelineTessellationDomainOriginStateCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - domainOrigin*: VkTessellationDomainOrigin - VkPipelineTessellationDomainOriginStateCreateInfoKHR* = object - VkSamplerYcbcrConversionInfo* = object - sType*: VkStructureType - pNext*: pointer - conversion*: VkSamplerYcbcrConversion - VkSamplerYcbcrConversionInfoKHR* = object - VkSamplerYcbcrConversionCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - format*: VkFormat - ycbcrModel*: VkSamplerYcbcrModelConversion - ycbcrRange*: VkSamplerYcbcrRange - components*: VkComponentMapping - xChromaOffset*: VkChromaLocation - yChromaOffset*: VkChromaLocation - chromaFilter*: VkFilter - forceExplicitReconstruction*: VkBool32 - VkSamplerYcbcrConversionCreateInfoKHR* = object - VkBindImagePlaneMemoryInfo* = object - sType*: VkStructureType - pNext*: pointer - planeAspect*: VkImageAspectFlagBits - VkBindImagePlaneMemoryInfoKHR* = object - VkImagePlaneMemoryRequirementsInfo* = object - sType*: VkStructureType - pNext*: pointer - planeAspect*: VkImageAspectFlagBits - VkImagePlaneMemoryRequirementsInfoKHR* = object - VkPhysicalDeviceSamplerYcbcrConversionFeatures* = object - sType*: VkStructureType - pNext*: pointer - samplerYcbcrConversion*: VkBool32 - VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR* = object - VkSamplerYcbcrConversionImageFormatProperties* = object - sType*: VkStructureType - pNext*: pointer - combinedImageSamplerDescriptorCount*: uint32 - VkSamplerYcbcrConversionImageFormatPropertiesKHR* = object - VkTextureLODGatherFormatPropertiesAMD* = object - sType*: VkStructureType - pNext*: pointer - supportsTextureGatherLODBiasAMD*: VkBool32 - VkConditionalRenderingBeginInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - buffer*: VkBuffer - offset*: VkDeviceSize - flags*: VkConditionalRenderingFlagsEXT - VkProtectedSubmitInfo* = object - sType*: VkStructureType - pNext*: pointer - protectedSubmit*: VkBool32 - VkPhysicalDeviceProtectedMemoryFeatures* = object - sType*: VkStructureType - pNext*: pointer - protectedMemory*: VkBool32 - VkPhysicalDeviceProtectedMemoryProperties* = object - sType*: VkStructureType - pNext*: pointer - protectedNoFault*: VkBool32 - VkDeviceQueueInfo2* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkDeviceQueueCreateFlags - queueFamilyIndex*: uint32 - queueIndex*: uint32 - VkPipelineCoverageToColorStateCreateInfoNV* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkPipelineCoverageToColorStateCreateFlagsNV - coverageToColorEnable*: VkBool32 - coverageToColorLocation*: uint32 - VkPhysicalDeviceSamplerFilterMinmaxProperties* = object - sType*: VkStructureType - pNext*: pointer - filterMinmaxSingleComponentFormats*: VkBool32 - filterMinmaxImageComponentMapping*: VkBool32 - VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT* = object - VkSampleLocationEXT* = object - x*: float32 - y*: float32 - VkSampleLocationsInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - sampleLocationsPerPixel*: VkSampleCountFlagBits - sampleLocationGridSize*: VkExtent2D - sampleLocationsCount*: uint32 - pSampleLocations*: ptr VkSampleLocationEXT - VkAttachmentSampleLocationsEXT* = object - attachmentIndex*: uint32 - sampleLocationsInfo*: VkSampleLocationsInfoEXT - VkSubpassSampleLocationsEXT* = object - subpassIndex*: uint32 - sampleLocationsInfo*: VkSampleLocationsInfoEXT - VkRenderPassSampleLocationsBeginInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - attachmentInitialSampleLocationsCount*: uint32 - pAttachmentInitialSampleLocations*: ptr VkAttachmentSampleLocationsEXT - postSubpassSampleLocationsCount*: uint32 - pPostSubpassSampleLocations*: ptr VkSubpassSampleLocationsEXT - VkPipelineSampleLocationsStateCreateInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - sampleLocationsEnable*: VkBool32 - sampleLocationsInfo*: VkSampleLocationsInfoEXT - VkPhysicalDeviceSampleLocationsPropertiesEXT* = object - sType*: VkStructureType - pNext*: pointer - sampleLocationSampleCounts*: VkSampleCountFlags - maxSampleLocationGridSize*: VkExtent2D - sampleLocationCoordinateRange*: array[2, float32] - sampleLocationSubPixelBits*: uint32 - variableSampleLocations*: VkBool32 - VkMultisamplePropertiesEXT* = object - sType*: VkStructureType - pNext*: pointer - maxSampleLocationGridSize*: VkExtent2D - VkSamplerReductionModeCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - reductionMode*: VkSamplerReductionMode - VkSamplerReductionModeCreateInfoEXT* = object - VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - advancedBlendCoherentOperations*: VkBool32 - VkPhysicalDeviceMultiDrawFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - multiDraw*: VkBool32 - VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT* = object - sType*: VkStructureType - pNext*: pointer - advancedBlendMaxColorAttachments*: uint32 - advancedBlendIndependentBlend*: VkBool32 - advancedBlendNonPremultipliedSrcColor*: VkBool32 - advancedBlendNonPremultipliedDstColor*: VkBool32 - advancedBlendCorrelatedOverlap*: VkBool32 - advancedBlendAllOperations*: VkBool32 - VkPipelineColorBlendAdvancedStateCreateInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - srcPremultiplied*: VkBool32 - dstPremultiplied*: VkBool32 - blendOverlap*: VkBlendOverlapEXT - VkPhysicalDeviceInlineUniformBlockFeatures* = object - sType*: VkStructureType - pNext*: pointer - inlineUniformBlock*: VkBool32 - descriptorBindingInlineUniformBlockUpdateAfterBind*: VkBool32 - VkPhysicalDeviceInlineUniformBlockFeaturesEXT* = object - VkPhysicalDeviceInlineUniformBlockProperties* = object - sType*: VkStructureType - pNext*: pointer - maxInlineUniformBlockSize*: uint32 - maxPerStageDescriptorInlineUniformBlocks*: uint32 - maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks*: uint32 - maxDescriptorSetInlineUniformBlocks*: uint32 - maxDescriptorSetUpdateAfterBindInlineUniformBlocks*: uint32 - VkPhysicalDeviceInlineUniformBlockPropertiesEXT* = object - VkWriteDescriptorSetInlineUniformBlock* = object - sType*: VkStructureType - pNext*: pointer - dataSize*: uint32 - pData*: pointer - VkWriteDescriptorSetInlineUniformBlockEXT* = object - VkDescriptorPoolInlineUniformBlockCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - maxInlineUniformBlockBindings*: uint32 - VkDescriptorPoolInlineUniformBlockCreateInfoEXT* = object - VkPipelineCoverageModulationStateCreateInfoNV* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkPipelineCoverageModulationStateCreateFlagsNV - coverageModulationMode*: VkCoverageModulationModeNV - coverageModulationTableEnable*: VkBool32 - coverageModulationTableCount*: uint32 - pCoverageModulationTable*: ptr float32 - VkImageFormatListCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - viewFormatCount*: uint32 - pViewFormats*: ptr VkFormat - VkImageFormatListCreateInfoKHR* = object - VkValidationCacheCreateInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkValidationCacheCreateFlagsEXT - initialDataSize*: csize_t - pInitialData*: pointer - VkShaderModuleValidationCacheCreateInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - validationCache*: VkValidationCacheEXT - VkPhysicalDeviceMaintenance3Properties* = object - sType*: VkStructureType - pNext*: pointer - maxPerSetDescriptors*: uint32 - maxMemoryAllocationSize*: VkDeviceSize - VkPhysicalDeviceMaintenance3PropertiesKHR* = object - VkPhysicalDeviceMaintenance4Features* = object - sType*: VkStructureType - pNext*: pointer - maintenance4*: VkBool32 - VkPhysicalDeviceMaintenance4FeaturesKHR* = object - VkPhysicalDeviceMaintenance4Properties* = object - sType*: VkStructureType - pNext*: pointer - maxBufferSize*: VkDeviceSize - VkPhysicalDeviceMaintenance4PropertiesKHR* = object - VkDescriptorSetLayoutSupport* = object - sType*: VkStructureType - pNext*: pointer - supported*: VkBool32 - VkDescriptorSetLayoutSupportKHR* = object - VkPhysicalDeviceShaderDrawParametersFeatures* = object - sType*: VkStructureType - pNext*: pointer - shaderDrawParameters*: VkBool32 - VkPhysicalDeviceShaderDrawParameterFeatures* = object - VkPhysicalDeviceShaderFloat16Int8Features* = object - sType*: VkStructureType - pNext*: pointer - shaderFloat16*: VkBool32 - shaderInt8*: VkBool32 - VkPhysicalDeviceShaderFloat16Int8FeaturesKHR* = object - VkPhysicalDeviceFloat16Int8FeaturesKHR* = object - VkPhysicalDeviceFloatControlsProperties* = object - sType*: VkStructureType - pNext*: pointer - denormBehaviorIndependence*: VkShaderFloatControlsIndependence - roundingModeIndependence*: VkShaderFloatControlsIndependence - shaderSignedZeroInfNanPreserveFloat16*: VkBool32 - shaderSignedZeroInfNanPreserveFloat32*: VkBool32 - shaderSignedZeroInfNanPreserveFloat64*: VkBool32 - shaderDenormPreserveFloat16*: VkBool32 - shaderDenormPreserveFloat32*: VkBool32 - shaderDenormPreserveFloat64*: VkBool32 - shaderDenormFlushToZeroFloat16*: VkBool32 - shaderDenormFlushToZeroFloat32*: VkBool32 - shaderDenormFlushToZeroFloat64*: VkBool32 - shaderRoundingModeRTEFloat16*: VkBool32 - shaderRoundingModeRTEFloat32*: VkBool32 - shaderRoundingModeRTEFloat64*: VkBool32 - shaderRoundingModeRTZFloat16*: VkBool32 - shaderRoundingModeRTZFloat32*: VkBool32 - shaderRoundingModeRTZFloat64*: VkBool32 - VkPhysicalDeviceFloatControlsPropertiesKHR* = object - VkPhysicalDeviceHostQueryResetFeatures* = object - sType*: VkStructureType - pNext*: pointer - hostQueryReset*: VkBool32 - VkPhysicalDeviceHostQueryResetFeaturesEXT* = object - VkShaderResourceUsageAMD* = object - numUsedVgprs*: uint32 - numUsedSgprs*: uint32 - ldsSizePerLocalWorkGroup*: uint32 - ldsUsageSizeInBytes*: csize_t - scratchMemUsageInBytes*: csize_t - VkShaderStatisticsInfoAMD* = object - shaderStageMask*: VkShaderStageFlags - resourceUsage*: VkShaderResourceUsageAMD - numPhysicalVgprs*: uint32 - numPhysicalSgprs*: uint32 - numAvailableVgprs*: uint32 - numAvailableSgprs*: uint32 - computeWorkGroupSize*: array[3, uint32] - VkDeviceQueueGlobalPriorityCreateInfoKHR* = object - sType*: VkStructureType - pNext*: pointer - globalPriority*: VkQueueGlobalPriorityKHR - VkDeviceQueueGlobalPriorityCreateInfoEXT* = object - VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR* = object - sType*: VkStructureType - pNext*: pointer - globalPriorityQuery*: VkBool32 - VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT* = object - VkQueueFamilyGlobalPriorityPropertiesKHR* = object - sType*: VkStructureType - pNext*: pointer - priorityCount*: uint32 - priorities*: array[VK_MAX_GLOBAL_PRIORITY_SIZE_KHR, VkQueueGlobalPriorityKHR] - VkQueueFamilyGlobalPriorityPropertiesEXT* = object - VkDebugUtilsObjectNameInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - objectType*: VkObjectType - objectHandle*: uint64 - pObjectName*: cstring - VkDebugUtilsObjectTagInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - objectType*: VkObjectType - objectHandle*: uint64 - tagName*: uint64 - tagSize*: csize_t - pTag*: pointer - VkDebugUtilsLabelEXT* = object - sType*: VkStructureType - pNext*: pointer - pLabelName*: cstring - color*: array[4, float32] - VkDebugUtilsMessengerCreateInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkDebugUtilsMessengerCreateFlagsEXT - messageSeverity*: VkDebugUtilsMessageSeverityFlagsEXT - messageType*: VkDebugUtilsMessageTypeFlagsEXT - pfnUserCallback*: PFN_vkDebugUtilsMessengerCallbackEXT - pUserData*: pointer - VkDebugUtilsMessengerCallbackDataEXT* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkDebugUtilsMessengerCallbackDataFlagsEXT - pMessageIdName*: cstring - messageIdNumber*: int32 - pMessage*: cstring - queueLabelCount*: uint32 - pQueueLabels*: ptr VkDebugUtilsLabelEXT - cmdBufLabelCount*: uint32 - pCmdBufLabels*: ptr VkDebugUtilsLabelEXT - objectCount*: uint32 - pObjects*: ptr VkDebugUtilsObjectNameInfoEXT - VkPhysicalDeviceDeviceMemoryReportFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - deviceMemoryReport*: VkBool32 - VkDeviceDeviceMemoryReportCreateInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkDeviceMemoryReportFlagsEXT - pfnUserCallback*: PFN_vkDeviceMemoryReportCallbackEXT - pUserData*: pointer - VkDeviceMemoryReportCallbackDataEXT* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkDeviceMemoryReportFlagsEXT - thetype*: VkDeviceMemoryReportEventTypeEXT - memoryObjectId*: uint64 - size*: VkDeviceSize - objectType*: VkObjectType - objectHandle*: uint64 - heapIndex*: uint32 - VkImportMemoryHostPointerInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - handleType*: VkExternalMemoryHandleTypeFlagBits - pHostPointer*: pointer - VkMemoryHostPointerPropertiesEXT* = object - sType*: VkStructureType - pNext*: pointer - memoryTypeBits*: uint32 - VkPhysicalDeviceExternalMemoryHostPropertiesEXT* = object - sType*: VkStructureType - pNext*: pointer - minImportedHostPointerAlignment*: VkDeviceSize - VkPhysicalDeviceConservativeRasterizationPropertiesEXT* = object - sType*: VkStructureType - pNext*: pointer - primitiveOverestimationSize*: float32 - maxExtraPrimitiveOverestimationSize*: float32 - extraPrimitiveOverestimationSizeGranularity*: float32 - primitiveUnderestimation*: VkBool32 - conservativePointAndLineRasterization*: VkBool32 - degenerateTrianglesRasterized*: VkBool32 - degenerateLinesRasterized*: VkBool32 - fullyCoveredFragmentShaderInputVariable*: VkBool32 - conservativeRasterizationPostDepthCoverage*: VkBool32 - VkCalibratedTimestampInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - timeDomain*: VkTimeDomainEXT - VkPhysicalDeviceShaderCorePropertiesAMD* = object - sType*: VkStructureType - pNext*: pointer - shaderEngineCount*: uint32 - shaderArraysPerEngineCount*: uint32 - computeUnitsPerShaderArray*: uint32 - simdPerComputeUnit*: uint32 - wavefrontsPerSimd*: uint32 - wavefrontSize*: uint32 - sgprsPerSimd*: uint32 - minSgprAllocation*: uint32 - maxSgprAllocation*: uint32 - sgprAllocationGranularity*: uint32 - vgprsPerSimd*: uint32 - minVgprAllocation*: uint32 - maxVgprAllocation*: uint32 - vgprAllocationGranularity*: uint32 - VkPhysicalDeviceShaderCoreProperties2AMD* = object - sType*: VkStructureType - pNext*: pointer - shaderCoreFeatures*: VkShaderCorePropertiesFlagsAMD - activeComputeUnitCount*: uint32 - VkPipelineRasterizationConservativeStateCreateInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkPipelineRasterizationConservativeStateCreateFlagsEXT - conservativeRasterizationMode*: VkConservativeRasterizationModeEXT - extraPrimitiveOverestimationSize*: float32 - VkPhysicalDeviceDescriptorIndexingFeatures* = object - sType*: VkStructureType - pNext*: pointer - shaderInputAttachmentArrayDynamicIndexing*: VkBool32 - shaderUniformTexelBufferArrayDynamicIndexing*: VkBool32 - shaderStorageTexelBufferArrayDynamicIndexing*: VkBool32 - shaderUniformBufferArrayNonUniformIndexing*: VkBool32 - shaderSampledImageArrayNonUniformIndexing*: VkBool32 - shaderStorageBufferArrayNonUniformIndexing*: VkBool32 - shaderStorageImageArrayNonUniformIndexing*: VkBool32 - shaderInputAttachmentArrayNonUniformIndexing*: VkBool32 - shaderUniformTexelBufferArrayNonUniformIndexing*: VkBool32 - shaderStorageTexelBufferArrayNonUniformIndexing*: VkBool32 - descriptorBindingUniformBufferUpdateAfterBind*: VkBool32 - descriptorBindingSampledImageUpdateAfterBind*: VkBool32 - descriptorBindingStorageImageUpdateAfterBind*: VkBool32 - descriptorBindingStorageBufferUpdateAfterBind*: VkBool32 - descriptorBindingUniformTexelBufferUpdateAfterBind*: VkBool32 - descriptorBindingStorageTexelBufferUpdateAfterBind*: VkBool32 - descriptorBindingUpdateUnusedWhilePending*: VkBool32 - descriptorBindingPartiallyBound*: VkBool32 - descriptorBindingVariableDescriptorCount*: VkBool32 - runtimeDescriptorArray*: VkBool32 - VkPhysicalDeviceDescriptorIndexingFeaturesEXT* = object - VkPhysicalDeviceDescriptorIndexingProperties* = object - sType*: VkStructureType - pNext*: pointer - maxUpdateAfterBindDescriptorsInAllPools*: uint32 - shaderUniformBufferArrayNonUniformIndexingNative*: VkBool32 - shaderSampledImageArrayNonUniformIndexingNative*: VkBool32 - shaderStorageBufferArrayNonUniformIndexingNative*: VkBool32 - shaderStorageImageArrayNonUniformIndexingNative*: VkBool32 - shaderInputAttachmentArrayNonUniformIndexingNative*: VkBool32 - robustBufferAccessUpdateAfterBind*: VkBool32 - quadDivergentImplicitLod*: VkBool32 - maxPerStageDescriptorUpdateAfterBindSamplers*: uint32 - maxPerStageDescriptorUpdateAfterBindUniformBuffers*: uint32 - maxPerStageDescriptorUpdateAfterBindStorageBuffers*: uint32 - maxPerStageDescriptorUpdateAfterBindSampledImages*: uint32 - maxPerStageDescriptorUpdateAfterBindStorageImages*: uint32 - maxPerStageDescriptorUpdateAfterBindInputAttachments*: uint32 - maxPerStageUpdateAfterBindResources*: uint32 - maxDescriptorSetUpdateAfterBindSamplers*: uint32 - maxDescriptorSetUpdateAfterBindUniformBuffers*: uint32 - maxDescriptorSetUpdateAfterBindUniformBuffersDynamic*: uint32 - maxDescriptorSetUpdateAfterBindStorageBuffers*: uint32 - maxDescriptorSetUpdateAfterBindStorageBuffersDynamic*: uint32 - maxDescriptorSetUpdateAfterBindSampledImages*: uint32 - maxDescriptorSetUpdateAfterBindStorageImages*: uint32 - maxDescriptorSetUpdateAfterBindInputAttachments*: uint32 - VkPhysicalDeviceDescriptorIndexingPropertiesEXT* = object - VkDescriptorSetLayoutBindingFlagsCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - bindingCount*: uint32 - pBindingFlags*: ptr VkDescriptorBindingFlags - VkDescriptorSetLayoutBindingFlagsCreateInfoEXT* = object - VkDescriptorSetVariableDescriptorCountAllocateInfo* = object - sType*: VkStructureType - pNext*: pointer - descriptorSetCount*: uint32 - pDescriptorCounts*: ptr uint32 - VkDescriptorSetVariableDescriptorCountAllocateInfoEXT* = object - VkDescriptorSetVariableDescriptorCountLayoutSupport* = object - sType*: VkStructureType - pNext*: pointer - maxVariableDescriptorCount*: uint32 - VkDescriptorSetVariableDescriptorCountLayoutSupportEXT* = object - VkAttachmentDescription2* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkAttachmentDescriptionFlags - format*: VkFormat - samples*: VkSampleCountFlagBits - loadOp*: VkAttachmentLoadOp - storeOp*: VkAttachmentStoreOp - stencilLoadOp*: VkAttachmentLoadOp - stencilStoreOp*: VkAttachmentStoreOp - initialLayout*: VkImageLayout - finalLayout*: VkImageLayout - VkAttachmentDescription2KHR* = object - VkAttachmentReference2* = object - sType*: VkStructureType - pNext*: pointer - attachment*: uint32 - layout*: VkImageLayout - aspectMask*: VkImageAspectFlags - VkAttachmentReference2KHR* = object - VkSubpassDescription2* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkSubpassDescriptionFlags - pipelineBindPoint*: VkPipelineBindPoint - viewMask*: uint32 - inputAttachmentCount*: uint32 - pInputAttachments*: ptr VkAttachmentReference2 - colorAttachmentCount*: uint32 - pColorAttachments*: ptr VkAttachmentReference2 - pResolveAttachments*: ptr VkAttachmentReference2 - pDepthStencilAttachment*: ptr VkAttachmentReference2 - preserveAttachmentCount*: uint32 - pPreserveAttachments*: ptr uint32 - VkSubpassDescription2KHR* = object - VkSubpassDependency2* = object - sType*: VkStructureType - pNext*: pointer - srcSubpass*: uint32 - dstSubpass*: uint32 - srcStageMask*: VkPipelineStageFlags - dstStageMask*: VkPipelineStageFlags - srcAccessMask*: VkAccessFlags - dstAccessMask*: VkAccessFlags - dependencyFlags*: VkDependencyFlags - viewOffset*: int32 - VkSubpassDependency2KHR* = object - VkRenderPassCreateInfo2* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkRenderPassCreateFlags - attachmentCount*: uint32 - pAttachments*: ptr VkAttachmentDescription2 - subpassCount*: uint32 - pSubpasses*: ptr VkSubpassDescription2 - dependencyCount*: uint32 - pDependencies*: ptr VkSubpassDependency2 - correlatedViewMaskCount*: uint32 - pCorrelatedViewMasks*: ptr uint32 - VkRenderPassCreateInfo2KHR* = object - VkSubpassBeginInfo* = object - sType*: VkStructureType - pNext*: pointer - contents*: VkSubpassContents - VkSubpassBeginInfoKHR* = object - VkSubpassEndInfo* = object - sType*: VkStructureType - pNext*: pointer - VkSubpassEndInfoKHR* = object - VkPhysicalDeviceTimelineSemaphoreFeatures* = object - sType*: VkStructureType - pNext*: pointer - timelineSemaphore*: VkBool32 - VkPhysicalDeviceTimelineSemaphoreFeaturesKHR* = object - VkPhysicalDeviceTimelineSemaphoreProperties* = object - sType*: VkStructureType - pNext*: pointer - maxTimelineSemaphoreValueDifference*: uint64 - VkPhysicalDeviceTimelineSemaphorePropertiesKHR* = object - VkSemaphoreTypeCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - semaphoreType*: VkSemaphoreType - initialValue*: uint64 - VkSemaphoreTypeCreateInfoKHR* = object - VkTimelineSemaphoreSubmitInfo* = object - sType*: VkStructureType - pNext*: pointer - waitSemaphoreValueCount*: uint32 - pWaitSemaphoreValues*: ptr uint64 - signalSemaphoreValueCount*: uint32 - pSignalSemaphoreValues*: ptr uint64 - VkTimelineSemaphoreSubmitInfoKHR* = object - VkSemaphoreWaitInfo* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkSemaphoreWaitFlags - semaphoreCount*: uint32 - pSemaphores*: ptr VkSemaphore - pValues*: ptr uint64 - VkSemaphoreWaitInfoKHR* = object - VkSemaphoreSignalInfo* = object - sType*: VkStructureType - pNext*: pointer - semaphore*: VkSemaphore - value*: uint64 - VkSemaphoreSignalInfoKHR* = object - VkVertexInputBindingDivisorDescriptionEXT* = object - binding*: uint32 - divisor*: uint32 - VkPipelineVertexInputDivisorStateCreateInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - vertexBindingDivisorCount*: uint32 - pVertexBindingDivisors*: ptr VkVertexInputBindingDivisorDescriptionEXT - VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT* = object - sType*: VkStructureType - pNext*: pointer - maxVertexAttribDivisor*: uint32 - VkPhysicalDevicePCIBusInfoPropertiesEXT* = object - sType*: VkStructureType - pNext*: pointer - pciDomain*: uint32 - pciBus*: uint32 - pciDevice*: uint32 - pciFunction*: uint32 - VkCommandBufferInheritanceConditionalRenderingInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - conditionalRenderingEnable*: VkBool32 - VkPhysicalDevice8BitStorageFeatures* = object - sType*: VkStructureType - pNext*: pointer - storageBuffer8BitAccess*: VkBool32 - uniformAndStorageBuffer8BitAccess*: VkBool32 - storagePushConstant8*: VkBool32 - VkPhysicalDevice8BitStorageFeaturesKHR* = object - VkPhysicalDeviceConditionalRenderingFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - conditionalRendering*: VkBool32 - inheritedConditionalRendering*: VkBool32 - VkPhysicalDeviceVulkanMemoryModelFeatures* = object - sType*: VkStructureType - pNext*: pointer - vulkanMemoryModel*: VkBool32 - vulkanMemoryModelDeviceScope*: VkBool32 - vulkanMemoryModelAvailabilityVisibilityChains*: VkBool32 - VkPhysicalDeviceVulkanMemoryModelFeaturesKHR* = object - VkPhysicalDeviceShaderAtomicInt64Features* = object - sType*: VkStructureType - pNext*: pointer - shaderBufferInt64Atomics*: VkBool32 - shaderSharedInt64Atomics*: VkBool32 - VkPhysicalDeviceShaderAtomicInt64FeaturesKHR* = object - VkPhysicalDeviceShaderAtomicFloatFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - shaderBufferFloat32Atomics*: VkBool32 - shaderBufferFloat32AtomicAdd*: VkBool32 - shaderBufferFloat64Atomics*: VkBool32 - shaderBufferFloat64AtomicAdd*: VkBool32 - shaderSharedFloat32Atomics*: VkBool32 - shaderSharedFloat32AtomicAdd*: VkBool32 - shaderSharedFloat64Atomics*: VkBool32 - shaderSharedFloat64AtomicAdd*: VkBool32 - shaderImageFloat32Atomics*: VkBool32 - shaderImageFloat32AtomicAdd*: VkBool32 - sparseImageFloat32Atomics*: VkBool32 - sparseImageFloat32AtomicAdd*: VkBool32 - VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - shaderBufferFloat16Atomics*: VkBool32 - shaderBufferFloat16AtomicAdd*: VkBool32 - shaderBufferFloat16AtomicMinMax*: VkBool32 - shaderBufferFloat32AtomicMinMax*: VkBool32 - shaderBufferFloat64AtomicMinMax*: VkBool32 - shaderSharedFloat16Atomics*: VkBool32 - shaderSharedFloat16AtomicAdd*: VkBool32 - shaderSharedFloat16AtomicMinMax*: VkBool32 - shaderSharedFloat32AtomicMinMax*: VkBool32 - shaderSharedFloat64AtomicMinMax*: VkBool32 - shaderImageFloat32AtomicMinMax*: VkBool32 - sparseImageFloat32AtomicMinMax*: VkBool32 - VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - vertexAttributeInstanceRateDivisor*: VkBool32 - vertexAttributeInstanceRateZeroDivisor*: VkBool32 - VkQueueFamilyCheckpointPropertiesNV* = object - sType*: VkStructureType - pNext*: pointer - checkpointExecutionStageMask*: VkPipelineStageFlags - VkCheckpointDataNV* = object - sType*: VkStructureType - pNext*: pointer - stage*: VkPipelineStageFlagBits - pCheckpointMarker*: pointer - VkPhysicalDeviceDepthStencilResolveProperties* = object - sType*: VkStructureType - pNext*: pointer - supportedDepthResolveModes*: VkResolveModeFlags - supportedStencilResolveModes*: VkResolveModeFlags - independentResolveNone*: VkBool32 - independentResolve*: VkBool32 - VkPhysicalDeviceDepthStencilResolvePropertiesKHR* = object - VkSubpassDescriptionDepthStencilResolve* = object - sType*: VkStructureType - pNext*: pointer - depthResolveMode*: VkResolveModeFlagBits - stencilResolveMode*: VkResolveModeFlagBits - pDepthStencilResolveAttachment*: ptr VkAttachmentReference2 - VkSubpassDescriptionDepthStencilResolveKHR* = object - VkImageViewASTCDecodeModeEXT* = object - sType*: VkStructureType - pNext*: pointer - decodeMode*: VkFormat - VkPhysicalDeviceASTCDecodeFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - decodeModeSharedExponent*: VkBool32 - VkPhysicalDeviceTransformFeedbackFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - transformFeedback*: VkBool32 - geometryStreams*: VkBool32 - VkPhysicalDeviceTransformFeedbackPropertiesEXT* = object - sType*: VkStructureType - pNext*: pointer - maxTransformFeedbackStreams*: uint32 - maxTransformFeedbackBuffers*: uint32 - maxTransformFeedbackBufferSize*: VkDeviceSize - maxTransformFeedbackStreamDataSize*: uint32 - maxTransformFeedbackBufferDataSize*: uint32 - maxTransformFeedbackBufferDataStride*: uint32 - transformFeedbackQueries*: VkBool32 - transformFeedbackStreamsLinesTriangles*: VkBool32 - transformFeedbackRasterizationStreamSelect*: VkBool32 - transformFeedbackDraw*: VkBool32 - VkPipelineRasterizationStateStreamCreateInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkPipelineRasterizationStateStreamCreateFlagsEXT - rasterizationStream*: uint32 - VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV* = object - sType*: VkStructureType - pNext*: pointer - representativeFragmentTest*: VkBool32 - VkPipelineRepresentativeFragmentTestStateCreateInfoNV* = object - sType*: VkStructureType - pNext*: pointer - representativeFragmentTestEnable*: VkBool32 - VkPhysicalDeviceExclusiveScissorFeaturesNV* = object - sType*: VkStructureType - pNext*: pointer - exclusiveScissor*: VkBool32 - VkPipelineViewportExclusiveScissorStateCreateInfoNV* = object - sType*: VkStructureType - pNext*: pointer - exclusiveScissorCount*: uint32 - pExclusiveScissors*: ptr VkRect2D - VkPhysicalDeviceCornerSampledImageFeaturesNV* = object - sType*: VkStructureType - pNext*: pointer - cornerSampledImage*: VkBool32 - VkPhysicalDeviceComputeShaderDerivativesFeaturesNV* = object - sType*: VkStructureType - pNext*: pointer - computeDerivativeGroupQuads*: VkBool32 - computeDerivativeGroupLinear*: VkBool32 - VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV* = object - VkPhysicalDeviceShaderImageFootprintFeaturesNV* = object - sType*: VkStructureType - pNext*: pointer - imageFootprint*: VkBool32 - VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV* = object - sType*: VkStructureType - pNext*: pointer - dedicatedAllocationImageAliasing*: VkBool32 - VkPhysicalDeviceCopyMemoryIndirectFeaturesNV* = object - sType*: VkStructureType - pNext*: pointer - indirectCopy*: VkBool32 - VkPhysicalDeviceCopyMemoryIndirectPropertiesNV* = object - sType*: VkStructureType - pNext*: pointer - supportedQueues*: VkQueueFlags - VkPhysicalDeviceMemoryDecompressionFeaturesNV* = object - sType*: VkStructureType - pNext*: pointer - memoryDecompression*: VkBool32 - VkPhysicalDeviceMemoryDecompressionPropertiesNV* = object - sType*: VkStructureType - pNext*: pointer - decompressionMethods*: VkMemoryDecompressionMethodFlagsNV - maxDecompressionIndirectCount*: uint64 - VkShadingRatePaletteNV* = object - shadingRatePaletteEntryCount*: uint32 - pShadingRatePaletteEntries*: ptr VkShadingRatePaletteEntryNV - VkPipelineViewportShadingRateImageStateCreateInfoNV* = object - sType*: VkStructureType - pNext*: pointer - shadingRateImageEnable*: VkBool32 - viewportCount*: uint32 - pShadingRatePalettes*: ptr VkShadingRatePaletteNV - VkPhysicalDeviceShadingRateImageFeaturesNV* = object - sType*: VkStructureType - pNext*: pointer - shadingRateImage*: VkBool32 - shadingRateCoarseSampleOrder*: VkBool32 - VkPhysicalDeviceShadingRateImagePropertiesNV* = object - sType*: VkStructureType - pNext*: pointer - shadingRateTexelSize*: VkExtent2D - shadingRatePaletteSize*: uint32 - shadingRateMaxCoarseSamples*: uint32 - VkPhysicalDeviceInvocationMaskFeaturesHUAWEI* = object - sType*: VkStructureType - pNext*: pointer - invocationMask*: VkBool32 - VkCoarseSampleLocationNV* = object - pixelX*: uint32 - pixelY*: uint32 - sample*: uint32 - VkCoarseSampleOrderCustomNV* = object - shadingRate*: VkShadingRatePaletteEntryNV - sampleCount*: uint32 - sampleLocationCount*: uint32 - pSampleLocations*: ptr VkCoarseSampleLocationNV - VkPipelineViewportCoarseSampleOrderStateCreateInfoNV* = object - sType*: VkStructureType - pNext*: pointer - sampleOrderType*: VkCoarseSampleOrderTypeNV - customSampleOrderCount*: uint32 - pCustomSampleOrders*: ptr VkCoarseSampleOrderCustomNV - VkPhysicalDeviceMeshShaderFeaturesNV* = object - sType*: VkStructureType - pNext*: pointer - taskShader*: VkBool32 - meshShader*: VkBool32 - VkPhysicalDeviceMeshShaderPropertiesNV* = object - sType*: VkStructureType - pNext*: pointer - maxDrawMeshTasksCount*: uint32 - maxTaskWorkGroupInvocations*: uint32 - maxTaskWorkGroupSize*: array[3, uint32] - maxTaskTotalMemorySize*: uint32 - maxTaskOutputCount*: uint32 - maxMeshWorkGroupInvocations*: uint32 - maxMeshWorkGroupSize*: array[3, uint32] - maxMeshTotalMemorySize*: uint32 - maxMeshOutputVertices*: uint32 - maxMeshOutputPrimitives*: uint32 - maxMeshMultiviewViewCount*: uint32 - meshOutputPerVertexGranularity*: uint32 - meshOutputPerPrimitiveGranularity*: uint32 - VkDrawMeshTasksIndirectCommandNV* = object - taskCount*: uint32 - firstTask*: uint32 - VkPhysicalDeviceMeshShaderFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - taskShader*: VkBool32 - meshShader*: VkBool32 - multiviewMeshShader*: VkBool32 - primitiveFragmentShadingRateMeshShader*: VkBool32 - meshShaderQueries*: VkBool32 - VkPhysicalDeviceMeshShaderPropertiesEXT* = object - sType*: VkStructureType - pNext*: pointer - maxTaskWorkGroupTotalCount*: uint32 - maxTaskWorkGroupCount*: array[3, uint32] - maxTaskWorkGroupInvocations*: uint32 - maxTaskWorkGroupSize*: array[3, uint32] - maxTaskPayloadSize*: uint32 - maxTaskSharedMemorySize*: uint32 - maxTaskPayloadAndSharedMemorySize*: uint32 - maxMeshWorkGroupTotalCount*: uint32 - maxMeshWorkGroupCount*: array[3, uint32] - maxMeshWorkGroupInvocations*: uint32 - maxMeshWorkGroupSize*: array[3, uint32] - maxMeshSharedMemorySize*: uint32 - maxMeshPayloadAndSharedMemorySize*: uint32 - maxMeshOutputMemorySize*: uint32 - maxMeshPayloadAndOutputMemorySize*: uint32 - maxMeshOutputComponents*: uint32 - maxMeshOutputVertices*: uint32 - maxMeshOutputPrimitives*: uint32 - maxMeshOutputLayers*: uint32 - maxMeshMultiviewViewCount*: uint32 - meshOutputPerVertexGranularity*: uint32 - meshOutputPerPrimitiveGranularity*: uint32 - maxPreferredTaskWorkGroupInvocations*: uint32 - maxPreferredMeshWorkGroupInvocations*: uint32 - prefersLocalInvocationVertexOutput*: VkBool32 - prefersLocalInvocationPrimitiveOutput*: VkBool32 - prefersCompactVertexOutput*: VkBool32 - prefersCompactPrimitiveOutput*: VkBool32 - VkDrawMeshTasksIndirectCommandEXT* = object - groupCountX*: uint32 - groupCountY*: uint32 - groupCountZ*: uint32 - VkRayTracingShaderGroupCreateInfoNV* = object - sType*: VkStructureType - pNext*: pointer - thetype*: VkRayTracingShaderGroupTypeKHR - generalShader*: uint32 - closestHitShader*: uint32 - anyHitShader*: uint32 - intersectionShader*: uint32 - VkRayTracingShaderGroupCreateInfoKHR* = object - sType*: VkStructureType - pNext*: pointer - thetype*: VkRayTracingShaderGroupTypeKHR - generalShader*: uint32 - closestHitShader*: uint32 - anyHitShader*: uint32 - intersectionShader*: uint32 - pShaderGroupCaptureReplayHandle*: pointer - VkRayTracingPipelineCreateInfoNV* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkPipelineCreateFlags - stageCount*: uint32 - pStages*: ptr VkPipelineShaderStageCreateInfo - groupCount*: uint32 - pGroups*: ptr VkRayTracingShaderGroupCreateInfoNV - maxRecursionDepth*: uint32 - layout*: VkPipelineLayout - basePipelineHandle*: VkPipeline - basePipelineIndex*: int32 - VkRayTracingPipelineCreateInfoKHR* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkPipelineCreateFlags - stageCount*: uint32 - pStages*: ptr VkPipelineShaderStageCreateInfo - groupCount*: uint32 - pGroups*: ptr VkRayTracingShaderGroupCreateInfoKHR - maxPipelineRayRecursionDepth*: uint32 - pLibraryInfo*: ptr VkPipelineLibraryCreateInfoKHR - pLibraryInterface*: ptr VkRayTracingPipelineInterfaceCreateInfoKHR - pDynamicState*: ptr VkPipelineDynamicStateCreateInfo - layout*: VkPipelineLayout - basePipelineHandle*: VkPipeline - basePipelineIndex*: int32 - VkGeometryTrianglesNV* = object - sType*: VkStructureType - pNext*: pointer - vertexData*: VkBuffer - vertexOffset*: VkDeviceSize - vertexCount*: uint32 - vertexStride*: VkDeviceSize - vertexFormat*: VkFormat - indexData*: VkBuffer - indexOffset*: VkDeviceSize - indexCount*: uint32 - indexType*: VkIndexType - transformData*: VkBuffer - transformOffset*: VkDeviceSize - VkGeometryAABBNV* = object - sType*: VkStructureType - pNext*: pointer - aabbData*: VkBuffer - numAABBs*: uint32 - stride*: uint32 - offset*: VkDeviceSize - VkGeometryDataNV* = object - triangles*: VkGeometryTrianglesNV - aabbs*: VkGeometryAABBNV - VkGeometryNV* = object - sType*: VkStructureType - pNext*: pointer - geometryType*: VkGeometryTypeKHR - geometry*: VkGeometryDataNV - flags*: VkGeometryFlagsKHR - VkAccelerationStructureInfoNV* = object - sType*: VkStructureType - pNext*: pointer - thetype*: VkAccelerationStructureTypeNV - flags*: VkBuildAccelerationStructureFlagsNV - instanceCount*: uint32 - geometryCount*: uint32 - pGeometries*: ptr VkGeometryNV - VkAccelerationStructureCreateInfoNV* = object - sType*: VkStructureType - pNext*: pointer - compactedSize*: VkDeviceSize - info*: VkAccelerationStructureInfoNV - VkBindAccelerationStructureMemoryInfoNV* = object - sType*: VkStructureType - pNext*: pointer - accelerationStructure*: VkAccelerationStructureNV - memory*: VkDeviceMemory - memoryOffset*: VkDeviceSize - deviceIndexCount*: uint32 - pDeviceIndices*: ptr uint32 - VkWriteDescriptorSetAccelerationStructureKHR* = object - sType*: VkStructureType - pNext*: pointer - accelerationStructureCount*: uint32 - pAccelerationStructures*: ptr VkAccelerationStructureKHR - VkWriteDescriptorSetAccelerationStructureNV* = object - sType*: VkStructureType - pNext*: pointer - accelerationStructureCount*: uint32 - pAccelerationStructures*: ptr VkAccelerationStructureNV - VkAccelerationStructureMemoryRequirementsInfoNV* = object - sType*: VkStructureType - pNext*: pointer - thetype*: VkAccelerationStructureMemoryRequirementsTypeNV - accelerationStructure*: VkAccelerationStructureNV - VkPhysicalDeviceAccelerationStructureFeaturesKHR* = object - sType*: VkStructureType - pNext*: pointer - accelerationStructure*: VkBool32 - accelerationStructureCaptureReplay*: VkBool32 - accelerationStructureIndirectBuild*: VkBool32 - accelerationStructureHostCommands*: VkBool32 - descriptorBindingAccelerationStructureUpdateAfterBind*: VkBool32 - VkPhysicalDeviceRayTracingPipelineFeaturesKHR* = object - sType*: VkStructureType - pNext*: pointer - rayTracingPipeline*: VkBool32 - rayTracingPipelineShaderGroupHandleCaptureReplay*: VkBool32 - rayTracingPipelineShaderGroupHandleCaptureReplayMixed*: VkBool32 - rayTracingPipelineTraceRaysIndirect*: VkBool32 - rayTraversalPrimitiveCulling*: VkBool32 - VkPhysicalDeviceRayQueryFeaturesKHR* = object - sType*: VkStructureType - pNext*: pointer - rayQuery*: VkBool32 - VkPhysicalDeviceAccelerationStructurePropertiesKHR* = object - sType*: VkStructureType - pNext*: pointer - maxGeometryCount*: uint64 - maxInstanceCount*: uint64 - maxPrimitiveCount*: uint64 - maxPerStageDescriptorAccelerationStructures*: uint32 - maxPerStageDescriptorUpdateAfterBindAccelerationStructures*: uint32 - maxDescriptorSetAccelerationStructures*: uint32 - maxDescriptorSetUpdateAfterBindAccelerationStructures*: uint32 - minAccelerationStructureScratchOffsetAlignment*: uint32 - VkPhysicalDeviceRayTracingPipelinePropertiesKHR* = object - sType*: VkStructureType - pNext*: pointer - shaderGroupHandleSize*: uint32 - maxRayRecursionDepth*: uint32 - maxShaderGroupStride*: uint32 - shaderGroupBaseAlignment*: uint32 - shaderGroupHandleCaptureReplaySize*: uint32 - maxRayDispatchInvocationCount*: uint32 - shaderGroupHandleAlignment*: uint32 - maxRayHitAttributeSize*: uint32 - VkPhysicalDeviceRayTracingPropertiesNV* = object - sType*: VkStructureType - pNext*: pointer - shaderGroupHandleSize*: uint32 - maxRecursionDepth*: uint32 - maxShaderGroupStride*: uint32 - shaderGroupBaseAlignment*: uint32 - maxGeometryCount*: uint64 - maxInstanceCount*: uint64 - maxTriangleCount*: uint64 - maxDescriptorSetAccelerationStructures*: uint32 - VkStridedDeviceAddressRegionKHR* = object - deviceAddress*: VkDeviceAddress - stride*: VkDeviceSize - size*: VkDeviceSize - VkTraceRaysIndirectCommandKHR* = object - width*: uint32 - height*: uint32 - depth*: uint32 - VkTraceRaysIndirectCommand2KHR* = object - raygenShaderRecordAddress*: VkDeviceAddress - raygenShaderRecordSize*: VkDeviceSize - missShaderBindingTableAddress*: VkDeviceAddress - missShaderBindingTableSize*: VkDeviceSize - missShaderBindingTableStride*: VkDeviceSize - hitShaderBindingTableAddress*: VkDeviceAddress - hitShaderBindingTableSize*: VkDeviceSize - hitShaderBindingTableStride*: VkDeviceSize - callableShaderBindingTableAddress*: VkDeviceAddress - callableShaderBindingTableSize*: VkDeviceSize - callableShaderBindingTableStride*: VkDeviceSize - width*: uint32 - height*: uint32 - depth*: uint32 - VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR* = object - sType*: VkStructureType - pNext*: pointer - rayTracingMaintenance1*: VkBool32 - rayTracingPipelineTraceRaysIndirect2*: VkBool32 - VkDrmFormatModifierPropertiesListEXT* = object - sType*: VkStructureType - pNext*: pointer - drmFormatModifierCount*: uint32 - pDrmFormatModifierProperties*: ptr VkDrmFormatModifierPropertiesEXT - VkDrmFormatModifierPropertiesEXT* = object - drmFormatModifier*: uint64 - drmFormatModifierPlaneCount*: uint32 - drmFormatModifierTilingFeatures*: VkFormatFeatureFlags - VkPhysicalDeviceImageDrmFormatModifierInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - drmFormatModifier*: uint64 - sharingMode*: VkSharingMode - queueFamilyIndexCount*: uint32 - pQueueFamilyIndices*: ptr uint32 - VkImageDrmFormatModifierListCreateInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - drmFormatModifierCount*: uint32 - pDrmFormatModifiers*: ptr uint64 - VkImageDrmFormatModifierExplicitCreateInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - drmFormatModifier*: uint64 - drmFormatModifierPlaneCount*: uint32 - pPlaneLayouts*: ptr VkSubresourceLayout - VkImageDrmFormatModifierPropertiesEXT* = object - sType*: VkStructureType - pNext*: pointer - drmFormatModifier*: uint64 - VkImageStencilUsageCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - stencilUsage*: VkImageUsageFlags - VkImageStencilUsageCreateInfoEXT* = object - VkDeviceMemoryOverallocationCreateInfoAMD* = object - sType*: VkStructureType - pNext*: pointer - overallocationBehavior*: VkMemoryOverallocationBehaviorAMD - VkPhysicalDeviceFragmentDensityMapFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - fragmentDensityMap*: VkBool32 - fragmentDensityMapDynamic*: VkBool32 - fragmentDensityMapNonSubsampledImages*: VkBool32 - VkPhysicalDeviceFragmentDensityMap2FeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - fragmentDensityMapDeferred*: VkBool32 - VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM* = object - sType*: VkStructureType - pNext*: pointer - fragmentDensityMapOffset*: VkBool32 - VkPhysicalDeviceFragmentDensityMapPropertiesEXT* = object - sType*: VkStructureType - pNext*: pointer - minFragmentDensityTexelSize*: VkExtent2D - maxFragmentDensityTexelSize*: VkExtent2D - fragmentDensityInvocations*: VkBool32 - VkPhysicalDeviceFragmentDensityMap2PropertiesEXT* = object - sType*: VkStructureType - pNext*: pointer - subsampledLoads*: VkBool32 - subsampledCoarseReconstructionEarlyAccess*: VkBool32 - maxSubsampledArrayLayers*: uint32 - maxDescriptorSetSubsampledSamplers*: uint32 - VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM* = object - sType*: VkStructureType - pNext*: pointer - fragmentDensityOffsetGranularity*: VkExtent2D - VkRenderPassFragmentDensityMapCreateInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - fragmentDensityMapAttachment*: VkAttachmentReference - VkSubpassFragmentDensityMapOffsetEndInfoQCOM* = object - sType*: VkStructureType - pNext*: pointer - fragmentDensityOffsetCount*: uint32 - pFragmentDensityOffsets*: ptr VkOffset2D - VkPhysicalDeviceScalarBlockLayoutFeatures* = object - sType*: VkStructureType - pNext*: pointer - scalarBlockLayout*: VkBool32 - VkPhysicalDeviceScalarBlockLayoutFeaturesEXT* = object - VkSurfaceProtectedCapabilitiesKHR* = object - sType*: VkStructureType - pNext*: pointer - supportsProtected*: VkBool32 - VkPhysicalDeviceUniformBufferStandardLayoutFeatures* = object - sType*: VkStructureType - pNext*: pointer - uniformBufferStandardLayout*: VkBool32 - VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR* = object - VkPhysicalDeviceDepthClipEnableFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - depthClipEnable*: VkBool32 - VkPipelineRasterizationDepthClipStateCreateInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkPipelineRasterizationDepthClipStateCreateFlagsEXT - depthClipEnable*: VkBool32 - VkPhysicalDeviceMemoryBudgetPropertiesEXT* = object - sType*: VkStructureType - pNext*: pointer - heapBudget*: array[VK_MAX_MEMORY_HEAPS, VkDeviceSize] - heapUsage*: array[VK_MAX_MEMORY_HEAPS, VkDeviceSize] - VkPhysicalDeviceMemoryPriorityFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - memoryPriority*: VkBool32 - VkMemoryPriorityAllocateInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - priority*: float32 - VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - pageableDeviceLocalMemory*: VkBool32 - VkPhysicalDeviceBufferDeviceAddressFeatures* = object - sType*: VkStructureType - pNext*: pointer - bufferDeviceAddress*: VkBool32 - bufferDeviceAddressCaptureReplay*: VkBool32 - bufferDeviceAddressMultiDevice*: VkBool32 - VkPhysicalDeviceBufferDeviceAddressFeaturesKHR* = object - VkPhysicalDeviceBufferDeviceAddressFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - bufferDeviceAddress*: VkBool32 - bufferDeviceAddressCaptureReplay*: VkBool32 - bufferDeviceAddressMultiDevice*: VkBool32 - VkPhysicalDeviceBufferAddressFeaturesEXT* = object - VkBufferDeviceAddressInfo* = object - sType*: VkStructureType - pNext*: pointer - buffer*: VkBuffer - VkBufferDeviceAddressInfoKHR* = object - VkBufferDeviceAddressInfoEXT* = object - VkBufferOpaqueCaptureAddressCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - opaqueCaptureAddress*: uint64 - VkBufferOpaqueCaptureAddressCreateInfoKHR* = object - VkBufferDeviceAddressCreateInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - deviceAddress*: VkDeviceAddress - VkPhysicalDeviceImageViewImageFormatInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - imageViewType*: VkImageViewType - VkFilterCubicImageViewImageFormatPropertiesEXT* = object - sType*: VkStructureType - pNext*: pointer - filterCubic*: VkBool32 - filterCubicMinmax*: VkBool32 - VkPhysicalDeviceImagelessFramebufferFeatures* = object - sType*: VkStructureType - pNext*: pointer - imagelessFramebuffer*: VkBool32 - VkPhysicalDeviceImagelessFramebufferFeaturesKHR* = object - VkFramebufferAttachmentsCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - attachmentImageInfoCount*: uint32 - pAttachmentImageInfos*: ptr VkFramebufferAttachmentImageInfo - VkFramebufferAttachmentsCreateInfoKHR* = object - VkFramebufferAttachmentImageInfo* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkImageCreateFlags - usage*: VkImageUsageFlags - width*: uint32 - height*: uint32 - layerCount*: uint32 - viewFormatCount*: uint32 - pViewFormats*: ptr VkFormat - VkFramebufferAttachmentImageInfoKHR* = object - VkRenderPassAttachmentBeginInfo* = object - sType*: VkStructureType - pNext*: pointer - attachmentCount*: uint32 - pAttachments*: ptr VkImageView - VkRenderPassAttachmentBeginInfoKHR* = object - VkPhysicalDeviceTextureCompressionASTCHDRFeatures* = object - sType*: VkStructureType - pNext*: pointer - textureCompressionASTC_HDR*: VkBool32 - VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT* = object - VkPhysicalDeviceCooperativeMatrixFeaturesNV* = object - sType*: VkStructureType - pNext*: pointer - cooperativeMatrix*: VkBool32 - cooperativeMatrixRobustBufferAccess*: VkBool32 - VkPhysicalDeviceCooperativeMatrixPropertiesNV* = object - sType*: VkStructureType - pNext*: pointer - cooperativeMatrixSupportedStages*: VkShaderStageFlags - VkCooperativeMatrixPropertiesNV* = object - sType*: VkStructureType - pNext*: pointer - MSize*: uint32 - NSize*: uint32 - KSize*: uint32 - AType*: VkComponentTypeNV - BType*: VkComponentTypeNV - CType*: VkComponentTypeNV - DType*: VkComponentTypeNV - scope*: VkScopeNV - VkPhysicalDeviceYcbcrImageArraysFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - ycbcrImageArrays*: VkBool32 - VkImageViewHandleInfoNVX* = object - sType*: VkStructureType - pNext*: pointer - imageView*: VkImageView - descriptorType*: VkDescriptorType - sampler*: VkSampler - VkImageViewAddressPropertiesNVX* = object - sType*: VkStructureType - pNext*: pointer - deviceAddress*: VkDeviceAddress - size*: VkDeviceSize - VkPipelineCreationFeedback* = object - flags*: VkPipelineCreationFeedbackFlags - duration*: uint64 - VkPipelineCreationFeedbackEXT* = object - VkPipelineCreationFeedbackCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - pPipelineCreationFeedback*: ptr VkPipelineCreationFeedback - pipelineStageCreationFeedbackCount*: uint32 - pPipelineStageCreationFeedbacks*: ptr VkPipelineCreationFeedback - VkPipelineCreationFeedbackCreateInfoEXT* = object - VkPhysicalDevicePresentBarrierFeaturesNV* = object - sType*: VkStructureType - pNext*: pointer - presentBarrier*: VkBool32 - VkSurfaceCapabilitiesPresentBarrierNV* = object - sType*: VkStructureType - pNext*: pointer - presentBarrierSupported*: VkBool32 - VkSwapchainPresentBarrierCreateInfoNV* = object - sType*: VkStructureType - pNext*: pointer - presentBarrierEnable*: VkBool32 - VkPhysicalDevicePerformanceQueryFeaturesKHR* = object - sType*: VkStructureType - pNext*: pointer - performanceCounterQueryPools*: VkBool32 - performanceCounterMultipleQueryPools*: VkBool32 - VkPhysicalDevicePerformanceQueryPropertiesKHR* = object - sType*: VkStructureType - pNext*: pointer - allowCommandBufferQueryCopies*: VkBool32 - VkPerformanceCounterKHR* = object - sType*: VkStructureType - pNext*: pointer - unit*: VkPerformanceCounterUnitKHR - scope*: VkPerformanceCounterScopeKHR - storage*: VkPerformanceCounterStorageKHR - uuid*: array[VK_UUID_SIZE, uint8] - VkPerformanceCounterDescriptionKHR* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkPerformanceCounterDescriptionFlagsKHR - name*: array[VK_MAX_DESCRIPTION_SIZE, char] - category*: array[VK_MAX_DESCRIPTION_SIZE, char] - description*: array[VK_MAX_DESCRIPTION_SIZE, char] - VkQueryPoolPerformanceCreateInfoKHR* = object - sType*: VkStructureType - pNext*: pointer - queueFamilyIndex*: uint32 - counterIndexCount*: uint32 - pCounterIndices*: ptr uint32 - VkPerformanceCounterResultKHR* {.union.} = object - int32*: int32 - int64*: int64 - uint32*: uint32 - uint64*: uint64 - float32*: float32 - float64*: float64 - VkAcquireProfilingLockInfoKHR* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkAcquireProfilingLockFlagsKHR - timeout*: uint64 - VkPerformanceQuerySubmitInfoKHR* = object - sType*: VkStructureType - pNext*: pointer - counterPassIndex*: uint32 - VkPerformanceQueryReservationInfoKHR* = object - sType*: VkStructureType - pNext*: pointer - maxPerformanceQueriesPerPool*: uint32 - VkHeadlessSurfaceCreateInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkHeadlessSurfaceCreateFlagsEXT - VkPhysicalDeviceCoverageReductionModeFeaturesNV* = object - sType*: VkStructureType - pNext*: pointer - coverageReductionMode*: VkBool32 - VkPipelineCoverageReductionStateCreateInfoNV* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkPipelineCoverageReductionStateCreateFlagsNV - coverageReductionMode*: VkCoverageReductionModeNV - VkFramebufferMixedSamplesCombinationNV* = object - sType*: VkStructureType - pNext*: pointer - coverageReductionMode*: VkCoverageReductionModeNV - rasterizationSamples*: VkSampleCountFlagBits - depthStencilSamples*: VkSampleCountFlags - colorSamples*: VkSampleCountFlags - VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL* = object - sType*: VkStructureType - pNext*: pointer - shaderIntegerFunctions2*: VkBool32 - VkPerformanceValueDataINTEL* {.union.} = object - value32*: uint32 - value64*: uint64 - valueFloat*: float32 - valueBool*: VkBool32 - valueString*: cstring - VkPerformanceValueINTEL* = object - thetype*: VkPerformanceValueTypeINTEL - data*: VkPerformanceValueDataINTEL - VkInitializePerformanceApiInfoINTEL* = object - sType*: VkStructureType - pNext*: pointer - pUserData*: pointer - VkQueryPoolPerformanceQueryCreateInfoINTEL* = object - sType*: VkStructureType - pNext*: pointer - performanceCountersSampling*: VkQueryPoolSamplingModeINTEL - VkQueryPoolCreateInfoINTEL* = object - VkPerformanceMarkerInfoINTEL* = object - sType*: VkStructureType - pNext*: pointer - marker*: uint64 - VkPerformanceStreamMarkerInfoINTEL* = object - sType*: VkStructureType - pNext*: pointer - marker*: uint32 - VkPerformanceOverrideInfoINTEL* = object - sType*: VkStructureType - pNext*: pointer - thetype*: VkPerformanceOverrideTypeINTEL - enable*: VkBool32 - parameter*: uint64 - VkPerformanceConfigurationAcquireInfoINTEL* = object - sType*: VkStructureType - pNext*: pointer - thetype*: VkPerformanceConfigurationTypeINTEL - VkPhysicalDeviceShaderClockFeaturesKHR* = object - sType*: VkStructureType - pNext*: pointer - shaderSubgroupClock*: VkBool32 - shaderDeviceClock*: VkBool32 - VkPhysicalDeviceIndexTypeUint8FeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - indexTypeUint8*: VkBool32 - VkPhysicalDeviceShaderSMBuiltinsPropertiesNV* = object - sType*: VkStructureType - pNext*: pointer - shaderSMCount*: uint32 - shaderWarpsPerSM*: uint32 - VkPhysicalDeviceShaderSMBuiltinsFeaturesNV* = object - sType*: VkStructureType - pNext*: pointer - shaderSMBuiltins*: VkBool32 - VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - fragmentShaderSampleInterlock*: VkBool32 - fragmentShaderPixelInterlock*: VkBool32 - fragmentShaderShadingRateInterlock*: VkBool32 - VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures* = object - sType*: VkStructureType - pNext*: pointer - separateDepthStencilLayouts*: VkBool32 - VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR* = object - VkAttachmentReferenceStencilLayout* = object - sType*: VkStructureType - pNext*: pointer - stencilLayout*: VkImageLayout - VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - primitiveTopologyListRestart*: VkBool32 - primitiveTopologyPatchListRestart*: VkBool32 - VkAttachmentReferenceStencilLayoutKHR* = object - VkAttachmentDescriptionStencilLayout* = object - sType*: VkStructureType - pNext*: pointer - stencilInitialLayout*: VkImageLayout - stencilFinalLayout*: VkImageLayout - VkAttachmentDescriptionStencilLayoutKHR* = object - VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR* = object - sType*: VkStructureType - pNext*: pointer - pipelineExecutableInfo*: VkBool32 - VkPipelineInfoKHR* = object - sType*: VkStructureType - pNext*: pointer - pipeline*: VkPipeline - VkPipelineInfoEXT* = object - VkPipelineExecutablePropertiesKHR* = object - sType*: VkStructureType - pNext*: pointer - stages*: VkShaderStageFlags - name*: array[VK_MAX_DESCRIPTION_SIZE, char] - description*: array[VK_MAX_DESCRIPTION_SIZE, char] - subgroupSize*: uint32 - VkPipelineExecutableInfoKHR* = object - sType*: VkStructureType - pNext*: pointer - pipeline*: VkPipeline - executableIndex*: uint32 - VkPipelineExecutableStatisticValueKHR* {.union.} = object - b32*: VkBool32 - i64*: int64 - u64*: uint64 - f64*: float64 - VkPipelineExecutableStatisticKHR* = object - sType*: VkStructureType - pNext*: pointer - name*: array[VK_MAX_DESCRIPTION_SIZE, char] - description*: array[VK_MAX_DESCRIPTION_SIZE, char] - format*: VkPipelineExecutableStatisticFormatKHR - value*: VkPipelineExecutableStatisticValueKHR - VkPipelineExecutableInternalRepresentationKHR* = object - sType*: VkStructureType - pNext*: pointer - name*: array[VK_MAX_DESCRIPTION_SIZE, char] - description*: array[VK_MAX_DESCRIPTION_SIZE, char] - isText*: VkBool32 - dataSize*: csize_t - pData*: pointer - VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures* = object - sType*: VkStructureType - pNext*: pointer - shaderDemoteToHelperInvocation*: VkBool32 - VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT* = object - VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - texelBufferAlignment*: VkBool32 - VkPhysicalDeviceTexelBufferAlignmentProperties* = object - sType*: VkStructureType - pNext*: pointer - storageTexelBufferOffsetAlignmentBytes*: VkDeviceSize - storageTexelBufferOffsetSingleTexelAlignment*: VkBool32 - uniformTexelBufferOffsetAlignmentBytes*: VkDeviceSize - uniformTexelBufferOffsetSingleTexelAlignment*: VkBool32 - VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT* = object - VkPhysicalDeviceSubgroupSizeControlFeatures* = object - sType*: VkStructureType - pNext*: pointer - subgroupSizeControl*: VkBool32 - computeFullSubgroups*: VkBool32 - VkPhysicalDeviceSubgroupSizeControlFeaturesEXT* = object - VkPhysicalDeviceSubgroupSizeControlProperties* = object - sType*: VkStructureType - pNext*: pointer - minSubgroupSize*: uint32 - maxSubgroupSize*: uint32 - maxComputeWorkgroupSubgroups*: uint32 - requiredSubgroupSizeStages*: VkShaderStageFlags - VkPhysicalDeviceSubgroupSizeControlPropertiesEXT* = object - VkPipelineShaderStageRequiredSubgroupSizeCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - requiredSubgroupSize*: uint32 - VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT* = object - VkSubpassShadingPipelineCreateInfoHUAWEI* = object - sType*: VkStructureType - pNext*: pointer - renderPass*: VkRenderPass - subpass*: uint32 - VkPhysicalDeviceSubpassShadingPropertiesHUAWEI* = object - sType*: VkStructureType - pNext*: pointer - maxSubpassShadingWorkgroupSizeAspectRatio*: uint32 - VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI* = object - sType*: VkStructureType - pNext*: pointer - maxWorkGroupCount*: array[3, uint32] - maxWorkGroupSize*: array[3, uint32] - maxOutputClusterCount*: uint32 - VkMemoryOpaqueCaptureAddressAllocateInfo* = object - sType*: VkStructureType - pNext*: pointer - opaqueCaptureAddress*: uint64 - VkMemoryOpaqueCaptureAddressAllocateInfoKHR* = object - VkDeviceMemoryOpaqueCaptureAddressInfo* = object - sType*: VkStructureType - pNext*: pointer - memory*: VkDeviceMemory - VkDeviceMemoryOpaqueCaptureAddressInfoKHR* = object - VkPhysicalDeviceLineRasterizationFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - rectangularLines*: VkBool32 - bresenhamLines*: VkBool32 - smoothLines*: VkBool32 - stippledRectangularLines*: VkBool32 - stippledBresenhamLines*: VkBool32 - stippledSmoothLines*: VkBool32 - VkPhysicalDeviceLineRasterizationPropertiesEXT* = object - sType*: VkStructureType - pNext*: pointer - lineSubPixelPrecisionBits*: uint32 - VkPipelineRasterizationLineStateCreateInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - lineRasterizationMode*: VkLineRasterizationModeEXT - stippledLineEnable*: VkBool32 - lineStippleFactor*: uint32 - lineStipplePattern*: uint16 - VkPhysicalDevicePipelineCreationCacheControlFeatures* = object - sType*: VkStructureType - pNext*: pointer - pipelineCreationCacheControl*: VkBool32 - VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT* = object - VkPhysicalDeviceVulkan11Features* = object - sType*: VkStructureType - pNext*: pointer - storageBuffer16BitAccess*: VkBool32 - uniformAndStorageBuffer16BitAccess*: VkBool32 - storagePushConstant16*: VkBool32 - storageInputOutput16*: VkBool32 - multiview*: VkBool32 - multiviewGeometryShader*: VkBool32 - multiviewTessellationShader*: VkBool32 - variablePointersStorageBuffer*: VkBool32 - variablePointers*: VkBool32 - protectedMemory*: VkBool32 - samplerYcbcrConversion*: VkBool32 - shaderDrawParameters*: VkBool32 - VkPhysicalDeviceVulkan11Properties* = object - sType*: VkStructureType - pNext*: pointer - deviceUUID*: array[VK_UUID_SIZE, uint8] - driverUUID*: array[VK_UUID_SIZE, uint8] - deviceLUID*: array[VK_LUID_SIZE, uint8] - deviceNodeMask*: uint32 - deviceLUIDValid*: VkBool32 - subgroupSize*: uint32 - subgroupSupportedStages*: VkShaderStageFlags - subgroupSupportedOperations*: VkSubgroupFeatureFlags - subgroupQuadOperationsInAllStages*: VkBool32 - pointClippingBehavior*: VkPointClippingBehavior - maxMultiviewViewCount*: uint32 - maxMultiviewInstanceIndex*: uint32 - protectedNoFault*: VkBool32 - maxPerSetDescriptors*: uint32 - maxMemoryAllocationSize*: VkDeviceSize - VkPhysicalDeviceVulkan12Features* = object - sType*: VkStructureType - pNext*: pointer - samplerMirrorClampToEdge*: VkBool32 - drawIndirectCount*: VkBool32 - storageBuffer8BitAccess*: VkBool32 - uniformAndStorageBuffer8BitAccess*: VkBool32 - storagePushConstant8*: VkBool32 - shaderBufferInt64Atomics*: VkBool32 - shaderSharedInt64Atomics*: VkBool32 - shaderFloat16*: VkBool32 - shaderInt8*: VkBool32 - descriptorIndexing*: VkBool32 - shaderInputAttachmentArrayDynamicIndexing*: VkBool32 - shaderUniformTexelBufferArrayDynamicIndexing*: VkBool32 - shaderStorageTexelBufferArrayDynamicIndexing*: VkBool32 - shaderUniformBufferArrayNonUniformIndexing*: VkBool32 - shaderSampledImageArrayNonUniformIndexing*: VkBool32 - shaderStorageBufferArrayNonUniformIndexing*: VkBool32 - shaderStorageImageArrayNonUniformIndexing*: VkBool32 - shaderInputAttachmentArrayNonUniformIndexing*: VkBool32 - shaderUniformTexelBufferArrayNonUniformIndexing*: VkBool32 - shaderStorageTexelBufferArrayNonUniformIndexing*: VkBool32 - descriptorBindingUniformBufferUpdateAfterBind*: VkBool32 - descriptorBindingSampledImageUpdateAfterBind*: VkBool32 - descriptorBindingStorageImageUpdateAfterBind*: VkBool32 - descriptorBindingStorageBufferUpdateAfterBind*: VkBool32 - descriptorBindingUniformTexelBufferUpdateAfterBind*: VkBool32 - descriptorBindingStorageTexelBufferUpdateAfterBind*: VkBool32 - descriptorBindingUpdateUnusedWhilePending*: VkBool32 - descriptorBindingPartiallyBound*: VkBool32 - descriptorBindingVariableDescriptorCount*: VkBool32 - runtimeDescriptorArray*: VkBool32 - samplerFilterMinmax*: VkBool32 - scalarBlockLayout*: VkBool32 - imagelessFramebuffer*: VkBool32 - uniformBufferStandardLayout*: VkBool32 - shaderSubgroupExtendedTypes*: VkBool32 - separateDepthStencilLayouts*: VkBool32 - hostQueryReset*: VkBool32 - timelineSemaphore*: VkBool32 - bufferDeviceAddress*: VkBool32 - bufferDeviceAddressCaptureReplay*: VkBool32 - bufferDeviceAddressMultiDevice*: VkBool32 - vulkanMemoryModel*: VkBool32 - vulkanMemoryModelDeviceScope*: VkBool32 - vulkanMemoryModelAvailabilityVisibilityChains*: VkBool32 - shaderOutputViewportIndex*: VkBool32 - shaderOutputLayer*: VkBool32 - subgroupBroadcastDynamicId*: VkBool32 - VkPhysicalDeviceVulkan12Properties* = object - sType*: VkStructureType - pNext*: pointer - driverID*: VkDriverId - driverName*: array[VK_MAX_DRIVER_NAME_SIZE, char] - driverInfo*: array[VK_MAX_DRIVER_INFO_SIZE, char] - conformanceVersion*: VkConformanceVersion - denormBehaviorIndependence*: VkShaderFloatControlsIndependence - roundingModeIndependence*: VkShaderFloatControlsIndependence - shaderSignedZeroInfNanPreserveFloat16*: VkBool32 - shaderSignedZeroInfNanPreserveFloat32*: VkBool32 - shaderSignedZeroInfNanPreserveFloat64*: VkBool32 - shaderDenormPreserveFloat16*: VkBool32 - shaderDenormPreserveFloat32*: VkBool32 - shaderDenormPreserveFloat64*: VkBool32 - shaderDenormFlushToZeroFloat16*: VkBool32 - shaderDenormFlushToZeroFloat32*: VkBool32 - shaderDenormFlushToZeroFloat64*: VkBool32 - shaderRoundingModeRTEFloat16*: VkBool32 - shaderRoundingModeRTEFloat32*: VkBool32 - shaderRoundingModeRTEFloat64*: VkBool32 - shaderRoundingModeRTZFloat16*: VkBool32 - shaderRoundingModeRTZFloat32*: VkBool32 - shaderRoundingModeRTZFloat64*: VkBool32 - maxUpdateAfterBindDescriptorsInAllPools*: uint32 - shaderUniformBufferArrayNonUniformIndexingNative*: VkBool32 - shaderSampledImageArrayNonUniformIndexingNative*: VkBool32 - shaderStorageBufferArrayNonUniformIndexingNative*: VkBool32 - shaderStorageImageArrayNonUniformIndexingNative*: VkBool32 - shaderInputAttachmentArrayNonUniformIndexingNative*: VkBool32 - robustBufferAccessUpdateAfterBind*: VkBool32 - quadDivergentImplicitLod*: VkBool32 - maxPerStageDescriptorUpdateAfterBindSamplers*: uint32 - maxPerStageDescriptorUpdateAfterBindUniformBuffers*: uint32 - maxPerStageDescriptorUpdateAfterBindStorageBuffers*: uint32 - maxPerStageDescriptorUpdateAfterBindSampledImages*: uint32 - maxPerStageDescriptorUpdateAfterBindStorageImages*: uint32 - maxPerStageDescriptorUpdateAfterBindInputAttachments*: uint32 - maxPerStageUpdateAfterBindResources*: uint32 - maxDescriptorSetUpdateAfterBindSamplers*: uint32 - maxDescriptorSetUpdateAfterBindUniformBuffers*: uint32 - maxDescriptorSetUpdateAfterBindUniformBuffersDynamic*: uint32 - maxDescriptorSetUpdateAfterBindStorageBuffers*: uint32 - maxDescriptorSetUpdateAfterBindStorageBuffersDynamic*: uint32 - maxDescriptorSetUpdateAfterBindSampledImages*: uint32 - maxDescriptorSetUpdateAfterBindStorageImages*: uint32 - maxDescriptorSetUpdateAfterBindInputAttachments*: uint32 - supportedDepthResolveModes*: VkResolveModeFlags - supportedStencilResolveModes*: VkResolveModeFlags - independentResolveNone*: VkBool32 - independentResolve*: VkBool32 - filterMinmaxSingleComponentFormats*: VkBool32 - filterMinmaxImageComponentMapping*: VkBool32 - maxTimelineSemaphoreValueDifference*: uint64 - framebufferIntegerColorSampleCounts*: VkSampleCountFlags - VkPhysicalDeviceVulkan13Features* = object - sType*: VkStructureType - pNext*: pointer - robustImageAccess*: VkBool32 - inlineUniformBlock*: VkBool32 - descriptorBindingInlineUniformBlockUpdateAfterBind*: VkBool32 - pipelineCreationCacheControl*: VkBool32 - privateData*: VkBool32 - shaderDemoteToHelperInvocation*: VkBool32 - shaderTerminateInvocation*: VkBool32 - subgroupSizeControl*: VkBool32 - computeFullSubgroups*: VkBool32 - synchronization2*: VkBool32 - textureCompressionASTC_HDR*: VkBool32 - shaderZeroInitializeWorkgroupMemory*: VkBool32 - dynamicRendering*: VkBool32 - shaderIntegerDotProduct*: VkBool32 - maintenance4*: VkBool32 - VkPhysicalDeviceVulkan13Properties* = object - sType*: VkStructureType - pNext*: pointer - minSubgroupSize*: uint32 - maxSubgroupSize*: uint32 - maxComputeWorkgroupSubgroups*: uint32 - requiredSubgroupSizeStages*: VkShaderStageFlags - maxInlineUniformBlockSize*: uint32 - maxPerStageDescriptorInlineUniformBlocks*: uint32 - maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks*: uint32 - maxDescriptorSetInlineUniformBlocks*: uint32 - maxDescriptorSetUpdateAfterBindInlineUniformBlocks*: uint32 - maxInlineUniformTotalSize*: uint32 - integerDotProduct8BitUnsignedAccelerated*: VkBool32 - integerDotProduct8BitSignedAccelerated*: VkBool32 - integerDotProduct8BitMixedSignednessAccelerated*: VkBool32 - integerDotProduct4x8BitPackedUnsignedAccelerated*: VkBool32 - integerDotProduct4x8BitPackedSignedAccelerated*: VkBool32 - integerDotProduct4x8BitPackedMixedSignednessAccelerated*: VkBool32 - integerDotProduct16BitUnsignedAccelerated*: VkBool32 - integerDotProduct16BitSignedAccelerated*: VkBool32 - integerDotProduct16BitMixedSignednessAccelerated*: VkBool32 - integerDotProduct32BitUnsignedAccelerated*: VkBool32 - integerDotProduct32BitSignedAccelerated*: VkBool32 - integerDotProduct32BitMixedSignednessAccelerated*: VkBool32 - integerDotProduct64BitUnsignedAccelerated*: VkBool32 - integerDotProduct64BitSignedAccelerated*: VkBool32 - integerDotProduct64BitMixedSignednessAccelerated*: VkBool32 - integerDotProductAccumulatingSaturating8BitUnsignedAccelerated*: VkBool32 - integerDotProductAccumulatingSaturating8BitSignedAccelerated*: VkBool32 - integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated*: VkBool32 - integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated*: VkBool32 - integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated*: VkBool32 - integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated*: VkBool32 - integerDotProductAccumulatingSaturating16BitUnsignedAccelerated*: VkBool32 - integerDotProductAccumulatingSaturating16BitSignedAccelerated*: VkBool32 - integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated*: VkBool32 - integerDotProductAccumulatingSaturating32BitUnsignedAccelerated*: VkBool32 - integerDotProductAccumulatingSaturating32BitSignedAccelerated*: VkBool32 - integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated*: VkBool32 - integerDotProductAccumulatingSaturating64BitUnsignedAccelerated*: VkBool32 - integerDotProductAccumulatingSaturating64BitSignedAccelerated*: VkBool32 - integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated*: VkBool32 - storageTexelBufferOffsetAlignmentBytes*: VkDeviceSize - storageTexelBufferOffsetSingleTexelAlignment*: VkBool32 - uniformTexelBufferOffsetAlignmentBytes*: VkDeviceSize - uniformTexelBufferOffsetSingleTexelAlignment*: VkBool32 - maxBufferSize*: VkDeviceSize - VkPipelineCompilerControlCreateInfoAMD* = object - sType*: VkStructureType - pNext*: pointer - compilerControlFlags*: VkPipelineCompilerControlFlagsAMD - VkPhysicalDeviceCoherentMemoryFeaturesAMD* = object - sType*: VkStructureType - pNext*: pointer - deviceCoherentMemory*: VkBool32 - VkFaultData* = object - sType*: VkStructureType - pNext*: pointer - faultLevel*: VkFaultLevel - faultType*: VkFaultType - VkFaultCallbackInfo* = object - sType*: VkStructureType - pNext*: pointer - faultCount*: uint32 - pFaults*: ptr VkFaultData - pfnFaultCallback*: PFN_vkFaultCallbackFunction - VkPhysicalDeviceToolProperties* = object - sType*: VkStructureType - pNext*: pointer - name*: array[VK_MAX_EXTENSION_NAME_SIZE, char] - version*: array[VK_MAX_EXTENSION_NAME_SIZE, char] - purposes*: VkToolPurposeFlags - description*: array[VK_MAX_DESCRIPTION_SIZE, char] - layer*: array[VK_MAX_EXTENSION_NAME_SIZE, char] - VkPhysicalDeviceToolPropertiesEXT* = object - VkSamplerCustomBorderColorCreateInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - customBorderColor*: VkClearColorValue - format*: VkFormat - VkPhysicalDeviceCustomBorderColorPropertiesEXT* = object - sType*: VkStructureType - pNext*: pointer - maxCustomBorderColorSamplers*: uint32 - VkPhysicalDeviceCustomBorderColorFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - customBorderColors*: VkBool32 - customBorderColorWithoutFormat*: VkBool32 - VkSamplerBorderColorComponentMappingCreateInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - components*: VkComponentMapping - srgb*: VkBool32 - VkPhysicalDeviceBorderColorSwizzleFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - borderColorSwizzle*: VkBool32 - borderColorSwizzleFromImage*: VkBool32 - VkDeviceOrHostAddressKHR* {.union.} = object - deviceAddress*: VkDeviceAddress - hostAddress*: pointer - VkDeviceOrHostAddressConstKHR* {.union.} = object - deviceAddress*: VkDeviceAddress - hostAddress*: pointer - VkAccelerationStructureGeometryTrianglesDataKHR* = object - sType*: VkStructureType - pNext*: pointer - vertexFormat*: VkFormat - vertexData*: VkDeviceOrHostAddressConstKHR - vertexStride*: VkDeviceSize - maxVertex*: uint32 - indexType*: VkIndexType - indexData*: VkDeviceOrHostAddressConstKHR - transformData*: VkDeviceOrHostAddressConstKHR - VkAccelerationStructureGeometryAabbsDataKHR* = object - sType*: VkStructureType - pNext*: pointer - data*: VkDeviceOrHostAddressConstKHR - stride*: VkDeviceSize - VkAccelerationStructureGeometryInstancesDataKHR* = object - sType*: VkStructureType - pNext*: pointer - arrayOfPointers*: VkBool32 - data*: VkDeviceOrHostAddressConstKHR - VkAccelerationStructureGeometryDataKHR* {.union.} = object - triangles*: VkAccelerationStructureGeometryTrianglesDataKHR - aabbs*: VkAccelerationStructureGeometryAabbsDataKHR - instances*: VkAccelerationStructureGeometryInstancesDataKHR - VkAccelerationStructureGeometryKHR* = object - sType*: VkStructureType - pNext*: pointer - geometryType*: VkGeometryTypeKHR - geometry*: VkAccelerationStructureGeometryDataKHR - flags*: VkGeometryFlagsKHR - VkAccelerationStructureBuildGeometryInfoKHR* = object - sType*: VkStructureType - pNext*: pointer - thetype*: VkAccelerationStructureTypeKHR - flags*: VkBuildAccelerationStructureFlagsKHR - mode*: VkBuildAccelerationStructureModeKHR - srcAccelerationStructure*: VkAccelerationStructureKHR - dstAccelerationStructure*: VkAccelerationStructureKHR - geometryCount*: uint32 - pGeometries*: ptr VkAccelerationStructureGeometryKHR - ppGeometries*: ptr ptr VkAccelerationStructureGeometryKHR - scratchData*: VkDeviceOrHostAddressKHR - VkAccelerationStructureBuildRangeInfoKHR* = object - primitiveCount*: uint32 - primitiveOffset*: uint32 - firstVertex*: uint32 - transformOffset*: uint32 - VkAccelerationStructureCreateInfoKHR* = object - sType*: VkStructureType - pNext*: pointer - createFlags*: VkAccelerationStructureCreateFlagsKHR - buffer*: VkBuffer - offset*: VkDeviceSize - size*: VkDeviceSize - thetype*: VkAccelerationStructureTypeKHR - deviceAddress*: VkDeviceAddress - VkAabbPositionsKHR* = object - minX*: float32 - minY*: float32 - minZ*: float32 - maxX*: float32 - maxY*: float32 - maxZ*: float32 - VkAabbPositionsNV* = object - VkTransformMatrixKHR* = object - matrix*: array[3*4, float32] - VkTransformMatrixNV* = object - VkAccelerationStructureInstanceKHR* = object - transform*: VkTransformMatrixKHR - instanceCustomIndex*: uint32 - mask*: uint32 - instanceShaderBindingTableRecordOffset*: uint32 - flags*: VkGeometryInstanceFlagsKHR - accelerationStructureReference*: uint64 - VkAccelerationStructureInstanceNV* = object - VkAccelerationStructureDeviceAddressInfoKHR* = object - sType*: VkStructureType - pNext*: pointer - accelerationStructure*: VkAccelerationStructureKHR - VkAccelerationStructureVersionInfoKHR* = object - sType*: VkStructureType - pNext*: pointer - pVersionData*: ptr uint8 - VkCopyAccelerationStructureInfoKHR* = object - sType*: VkStructureType - pNext*: pointer - src*: VkAccelerationStructureKHR - dst*: VkAccelerationStructureKHR - mode*: VkCopyAccelerationStructureModeKHR - VkCopyAccelerationStructureToMemoryInfoKHR* = object - sType*: VkStructureType - pNext*: pointer - src*: VkAccelerationStructureKHR - dst*: VkDeviceOrHostAddressKHR - mode*: VkCopyAccelerationStructureModeKHR - VkCopyMemoryToAccelerationStructureInfoKHR* = object - sType*: VkStructureType - pNext*: pointer - src*: VkDeviceOrHostAddressConstKHR - dst*: VkAccelerationStructureKHR - mode*: VkCopyAccelerationStructureModeKHR - VkRayTracingPipelineInterfaceCreateInfoKHR* = object - sType*: VkStructureType - pNext*: pointer - maxPipelineRayPayloadSize*: uint32 - maxPipelineRayHitAttributeSize*: uint32 - VkPipelineLibraryCreateInfoKHR* = object - sType*: VkStructureType - pNext*: pointer - libraryCount*: uint32 - pLibraries*: ptr VkPipeline - VkRefreshObjectKHR* = object - objectType*: VkObjectType - objectHandle*: uint64 - flags*: VkRefreshObjectFlagsKHR - VkRefreshObjectListKHR* = object - sType*: VkStructureType - pNext*: pointer - objectCount*: uint32 - pObjects*: ptr VkRefreshObjectKHR - VkPhysicalDeviceExtendedDynamicStateFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - extendedDynamicState*: VkBool32 - VkPhysicalDeviceExtendedDynamicState2FeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - extendedDynamicState2*: VkBool32 - extendedDynamicState2LogicOp*: VkBool32 - extendedDynamicState2PatchControlPoints*: VkBool32 - VkPhysicalDeviceExtendedDynamicState3FeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - extendedDynamicState3TessellationDomainOrigin*: VkBool32 - extendedDynamicState3DepthClampEnable*: VkBool32 - extendedDynamicState3PolygonMode*: VkBool32 - extendedDynamicState3RasterizationSamples*: VkBool32 - extendedDynamicState3SampleMask*: VkBool32 - extendedDynamicState3AlphaToCoverageEnable*: VkBool32 - extendedDynamicState3AlphaToOneEnable*: VkBool32 - extendedDynamicState3LogicOpEnable*: VkBool32 - extendedDynamicState3ColorBlendEnable*: VkBool32 - extendedDynamicState3ColorBlendEquation*: VkBool32 - extendedDynamicState3ColorWriteMask*: VkBool32 - extendedDynamicState3RasterizationStream*: VkBool32 - extendedDynamicState3ConservativeRasterizationMode*: VkBool32 - extendedDynamicState3ExtraPrimitiveOverestimationSize*: VkBool32 - extendedDynamicState3DepthClipEnable*: VkBool32 - extendedDynamicState3SampleLocationsEnable*: VkBool32 - extendedDynamicState3ColorBlendAdvanced*: VkBool32 - extendedDynamicState3ProvokingVertexMode*: VkBool32 - extendedDynamicState3LineRasterizationMode*: VkBool32 - extendedDynamicState3LineStippleEnable*: VkBool32 - extendedDynamicState3DepthClipNegativeOneToOne*: VkBool32 - extendedDynamicState3ViewportWScalingEnable*: VkBool32 - extendedDynamicState3ViewportSwizzle*: VkBool32 - extendedDynamicState3CoverageToColorEnable*: VkBool32 - extendedDynamicState3CoverageToColorLocation*: VkBool32 - extendedDynamicState3CoverageModulationMode*: VkBool32 - extendedDynamicState3CoverageModulationTableEnable*: VkBool32 - extendedDynamicState3CoverageModulationTable*: VkBool32 - extendedDynamicState3CoverageReductionMode*: VkBool32 - extendedDynamicState3RepresentativeFragmentTestEnable*: VkBool32 - extendedDynamicState3ShadingRateImageEnable*: VkBool32 - VkPhysicalDeviceExtendedDynamicState3PropertiesEXT* = object - sType*: VkStructureType - pNext*: pointer - dynamicPrimitiveTopologyUnrestricted*: VkBool32 - VkColorBlendEquationEXT* = object - srcColorBlendFactor*: VkBlendFactor - dstColorBlendFactor*: VkBlendFactor - colorBlendOp*: VkBlendOp - srcAlphaBlendFactor*: VkBlendFactor - dstAlphaBlendFactor*: VkBlendFactor - alphaBlendOp*: VkBlendOp - VkColorBlendAdvancedEXT* = object - advancedBlendOp*: VkBlendOp - srcPremultiplied*: VkBool32 - dstPremultiplied*: VkBool32 - blendOverlap*: VkBlendOverlapEXT - clampResults*: VkBool32 - VkRenderPassTransformBeginInfoQCOM* = object - sType*: VkStructureType - pNext*: pointer - transform*: VkSurfaceTransformFlagBitsKHR - VkCopyCommandTransformInfoQCOM* = object - sType*: VkStructureType - pNext*: pointer - transform*: VkSurfaceTransformFlagBitsKHR - VkCommandBufferInheritanceRenderPassTransformInfoQCOM* = object - sType*: VkStructureType - pNext*: pointer - transform*: VkSurfaceTransformFlagBitsKHR - renderArea*: VkRect2D - VkPhysicalDeviceDiagnosticsConfigFeaturesNV* = object - sType*: VkStructureType - pNext*: pointer - diagnosticsConfig*: VkBool32 - VkDeviceDiagnosticsConfigCreateInfoNV* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkDeviceDiagnosticsConfigFlagsNV - VkPipelineOfflineCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - pipelineIdentifier*: array[VK_UUID_SIZE, uint8] - matchControl*: VkPipelineMatchControl - poolEntrySize*: VkDeviceSize - VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures* = object - sType*: VkStructureType - pNext*: pointer - shaderZeroInitializeWorkgroupMemory*: VkBool32 - VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR* = object - VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR* = object - sType*: VkStructureType - pNext*: pointer - shaderSubgroupUniformControlFlow*: VkBool32 - VkPhysicalDeviceRobustness2FeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - robustBufferAccess2*: VkBool32 - robustImageAccess2*: VkBool32 - nullDescriptor*: VkBool32 - VkPhysicalDeviceRobustness2PropertiesEXT* = object - sType*: VkStructureType - pNext*: pointer - robustStorageBufferAccessSizeAlignment*: VkDeviceSize - robustUniformBufferAccessSizeAlignment*: VkDeviceSize - VkPhysicalDeviceImageRobustnessFeatures* = object - sType*: VkStructureType - pNext*: pointer - robustImageAccess*: VkBool32 - VkPhysicalDeviceImageRobustnessFeaturesEXT* = object - VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR* = object - sType*: VkStructureType - pNext*: pointer - workgroupMemoryExplicitLayout*: VkBool32 - workgroupMemoryExplicitLayoutScalarBlockLayout*: VkBool32 - workgroupMemoryExplicitLayout8BitAccess*: VkBool32 - workgroupMemoryExplicitLayout16BitAccess*: VkBool32 - VkPhysicalDevice4444FormatsFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - formatA4R4G4B4*: VkBool32 - formatA4B4G4R4*: VkBool32 - VkPhysicalDeviceSubpassShadingFeaturesHUAWEI* = object - sType*: VkStructureType - pNext*: pointer - subpassShading*: VkBool32 - VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI* = object - sType*: VkStructureType - pNext*: pointer - clustercullingShader*: VkBool32 - multiviewClusterCullingShader*: VkBool32 - VkBufferCopy2* = object - sType*: VkStructureType - pNext*: pointer - srcOffset*: VkDeviceSize - dstOffset*: VkDeviceSize - size*: VkDeviceSize - VkBufferCopy2KHR* = object - VkImageCopy2* = object - sType*: VkStructureType - pNext*: pointer - srcSubresource*: VkImageSubresourceLayers - srcOffset*: VkOffset3D - dstSubresource*: VkImageSubresourceLayers - dstOffset*: VkOffset3D - extent*: VkExtent3D - VkImageCopy2KHR* = object - VkImageBlit2* = object - sType*: VkStructureType - pNext*: pointer - srcSubresource*: VkImageSubresourceLayers - srcOffsets*: array[2, VkOffset3D] - dstSubresource*: VkImageSubresourceLayers - dstOffsets*: array[2, VkOffset3D] - VkImageBlit2KHR* = object - VkBufferImageCopy2* = object - sType*: VkStructureType - pNext*: pointer - bufferOffset*: VkDeviceSize - bufferRowLength*: uint32 - bufferImageHeight*: uint32 - imageSubresource*: VkImageSubresourceLayers - imageOffset*: VkOffset3D - imageExtent*: VkExtent3D - VkBufferImageCopy2KHR* = object - VkImageResolve2* = object - sType*: VkStructureType - pNext*: pointer - srcSubresource*: VkImageSubresourceLayers - srcOffset*: VkOffset3D - dstSubresource*: VkImageSubresourceLayers - dstOffset*: VkOffset3D - extent*: VkExtent3D - VkImageResolve2KHR* = object - VkCopyBufferInfo2* = object - sType*: VkStructureType - pNext*: pointer - srcBuffer*: VkBuffer - dstBuffer*: VkBuffer - regionCount*: uint32 - pRegions*: ptr VkBufferCopy2 - VkCopyBufferInfo2KHR* = object - VkCopyImageInfo2* = object - sType*: VkStructureType - pNext*: pointer - srcImage*: VkImage - srcImageLayout*: VkImageLayout - dstImage*: VkImage - dstImageLayout*: VkImageLayout - regionCount*: uint32 - pRegions*: ptr VkImageCopy2 - VkCopyImageInfo2KHR* = object - VkBlitImageInfo2* = object - sType*: VkStructureType - pNext*: pointer - srcImage*: VkImage - srcImageLayout*: VkImageLayout - dstImage*: VkImage - dstImageLayout*: VkImageLayout - regionCount*: uint32 - pRegions*: ptr VkImageBlit2 - filter*: VkFilter - VkBlitImageInfo2KHR* = object - VkCopyBufferToImageInfo2* = object - sType*: VkStructureType - pNext*: pointer - srcBuffer*: VkBuffer - dstImage*: VkImage - dstImageLayout*: VkImageLayout - regionCount*: uint32 - pRegions*: ptr VkBufferImageCopy2 - VkCopyBufferToImageInfo2KHR* = object - VkCopyImageToBufferInfo2* = object - sType*: VkStructureType - pNext*: pointer - srcImage*: VkImage - srcImageLayout*: VkImageLayout - dstBuffer*: VkBuffer - regionCount*: uint32 - pRegions*: ptr VkBufferImageCopy2 - VkCopyImageToBufferInfo2KHR* = object - VkResolveImageInfo2* = object - sType*: VkStructureType - pNext*: pointer - srcImage*: VkImage - srcImageLayout*: VkImageLayout - dstImage*: VkImage - dstImageLayout*: VkImageLayout - regionCount*: uint32 - pRegions*: ptr VkImageResolve2 - VkResolveImageInfo2KHR* = object - VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - shaderImageInt64Atomics*: VkBool32 - sparseImageInt64Atomics*: VkBool32 - VkFragmentShadingRateAttachmentInfoKHR* = object - sType*: VkStructureType - pNext*: pointer - pFragmentShadingRateAttachment*: ptr VkAttachmentReference2 - shadingRateAttachmentTexelSize*: VkExtent2D - VkPipelineFragmentShadingRateStateCreateInfoKHR* = object - sType*: VkStructureType - pNext*: pointer - fragmentSize*: VkExtent2D - combinerOps*: array[2, VkFragmentShadingRateCombinerOpKHR] - VkPhysicalDeviceFragmentShadingRateFeaturesKHR* = object - sType*: VkStructureType - pNext*: pointer - pipelineFragmentShadingRate*: VkBool32 - primitiveFragmentShadingRate*: VkBool32 - attachmentFragmentShadingRate*: VkBool32 - VkPhysicalDeviceFragmentShadingRatePropertiesKHR* = object - sType*: VkStructureType - pNext*: pointer - minFragmentShadingRateAttachmentTexelSize*: VkExtent2D - maxFragmentShadingRateAttachmentTexelSize*: VkExtent2D - maxFragmentShadingRateAttachmentTexelSizeAspectRatio*: uint32 - primitiveFragmentShadingRateWithMultipleViewports*: VkBool32 - layeredShadingRateAttachments*: VkBool32 - fragmentShadingRateNonTrivialCombinerOps*: VkBool32 - maxFragmentSize*: VkExtent2D - maxFragmentSizeAspectRatio*: uint32 - maxFragmentShadingRateCoverageSamples*: uint32 - maxFragmentShadingRateRasterizationSamples*: VkSampleCountFlagBits - fragmentShadingRateWithShaderDepthStencilWrites*: VkBool32 - fragmentShadingRateWithSampleMask*: VkBool32 - fragmentShadingRateWithShaderSampleMask*: VkBool32 - fragmentShadingRateWithConservativeRasterization*: VkBool32 - fragmentShadingRateWithFragmentShaderInterlock*: VkBool32 - fragmentShadingRateWithCustomSampleLocations*: VkBool32 - fragmentShadingRateStrictMultiplyCombiner*: VkBool32 - VkPhysicalDeviceFragmentShadingRateKHR* = object - sType*: VkStructureType - pNext*: pointer - sampleCounts*: VkSampleCountFlags - fragmentSize*: VkExtent2D - VkPhysicalDeviceShaderTerminateInvocationFeatures* = object - sType*: VkStructureType - pNext*: pointer - shaderTerminateInvocation*: VkBool32 - VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR* = object - VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV* = object - sType*: VkStructureType - pNext*: pointer - fragmentShadingRateEnums*: VkBool32 - supersampleFragmentShadingRates*: VkBool32 - noInvocationFragmentShadingRates*: VkBool32 - VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV* = object - sType*: VkStructureType - pNext*: pointer - maxFragmentShadingRateInvocationCount*: VkSampleCountFlagBits - VkPipelineFragmentShadingRateEnumStateCreateInfoNV* = object - sType*: VkStructureType - pNext*: pointer - shadingRateType*: VkFragmentShadingRateTypeNV - shadingRate*: VkFragmentShadingRateNV - combinerOps*: array[2, VkFragmentShadingRateCombinerOpKHR] - VkAccelerationStructureBuildSizesInfoKHR* = object - sType*: VkStructureType - pNext*: pointer - accelerationStructureSize*: VkDeviceSize - updateScratchSize*: VkDeviceSize - buildScratchSize*: VkDeviceSize - VkPhysicalDeviceImage2DViewOf3DFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - image2DViewOf3D*: VkBool32 - sampler2DViewOf3D*: VkBool32 - VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - imageSlicedViewOf3D*: VkBool32 - VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - mutableDescriptorType*: VkBool32 - VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE* = object - VkMutableDescriptorTypeListEXT* = object - descriptorTypeCount*: uint32 - pDescriptorTypes*: ptr VkDescriptorType - VkMutableDescriptorTypeListVALVE* = object - VkMutableDescriptorTypeCreateInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - mutableDescriptorTypeListCount*: uint32 - pMutableDescriptorTypeLists*: ptr VkMutableDescriptorTypeListEXT - VkMutableDescriptorTypeCreateInfoVALVE* = object - VkPhysicalDeviceDepthClipControlFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - depthClipControl*: VkBool32 - VkPipelineViewportDepthClipControlCreateInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - negativeOneToOne*: VkBool32 - VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - vertexInputDynamicState*: VkBool32 - VkPhysicalDeviceExternalMemoryRDMAFeaturesNV* = object - sType*: VkStructureType - pNext*: pointer - externalMemoryRDMA*: VkBool32 - VkVertexInputBindingDescription2EXT* = object - sType*: VkStructureType - pNext*: pointer - binding*: uint32 - stride*: uint32 - inputRate*: VkVertexInputRate - divisor*: uint32 - VkVertexInputAttributeDescription2EXT* = object - sType*: VkStructureType - pNext*: pointer - location*: uint32 - binding*: uint32 - format*: VkFormat - offset*: uint32 - VkPhysicalDeviceColorWriteEnableFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - colorWriteEnable*: VkBool32 - VkPipelineColorWriteCreateInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - attachmentCount*: uint32 - pColorWriteEnables*: ptr VkBool32 - VkMemoryBarrier2* = object - sType*: VkStructureType - pNext*: pointer - srcStageMask*: VkPipelineStageFlags2 - srcAccessMask*: VkAccessFlags2 - dstStageMask*: VkPipelineStageFlags2 - dstAccessMask*: VkAccessFlags2 - VkMemoryBarrier2KHR* = object - VkImageMemoryBarrier2* = object - sType*: VkStructureType - pNext*: pointer - srcStageMask*: VkPipelineStageFlags2 - srcAccessMask*: VkAccessFlags2 - dstStageMask*: VkPipelineStageFlags2 - dstAccessMask*: VkAccessFlags2 - oldLayout*: VkImageLayout - newLayout*: VkImageLayout - srcQueueFamilyIndex*: uint32 - dstQueueFamilyIndex*: uint32 - image*: VkImage - subresourceRange*: VkImageSubresourceRange - VkImageMemoryBarrier2KHR* = object - VkBufferMemoryBarrier2* = object - sType*: VkStructureType - pNext*: pointer - srcStageMask*: VkPipelineStageFlags2 - srcAccessMask*: VkAccessFlags2 - dstStageMask*: VkPipelineStageFlags2 - dstAccessMask*: VkAccessFlags2 - srcQueueFamilyIndex*: uint32 - dstQueueFamilyIndex*: uint32 - buffer*: VkBuffer - offset*: VkDeviceSize - size*: VkDeviceSize - VkBufferMemoryBarrier2KHR* = object - VkDependencyInfo* = object - sType*: VkStructureType - pNext*: pointer - dependencyFlags*: VkDependencyFlags - memoryBarrierCount*: uint32 - pMemoryBarriers*: ptr VkMemoryBarrier2 - bufferMemoryBarrierCount*: uint32 - pBufferMemoryBarriers*: ptr VkBufferMemoryBarrier2 - imageMemoryBarrierCount*: uint32 - pImageMemoryBarriers*: ptr VkImageMemoryBarrier2 - VkDependencyInfoKHR* = object - VkSemaphoreSubmitInfo* = object - sType*: VkStructureType - pNext*: pointer - semaphore*: VkSemaphore - value*: uint64 - stageMask*: VkPipelineStageFlags2 - deviceIndex*: uint32 - VkSemaphoreSubmitInfoKHR* = object - VkCommandBufferSubmitInfo* = object - sType*: VkStructureType - pNext*: pointer - commandBuffer*: VkCommandBuffer - deviceMask*: uint32 - VkCommandBufferSubmitInfoKHR* = object - VkSubmitInfo2* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkSubmitFlags - waitSemaphoreInfoCount*: uint32 - pWaitSemaphoreInfos*: ptr VkSemaphoreSubmitInfo - commandBufferInfoCount*: uint32 - pCommandBufferInfos*: ptr VkCommandBufferSubmitInfo - signalSemaphoreInfoCount*: uint32 - pSignalSemaphoreInfos*: ptr VkSemaphoreSubmitInfo - VkSubmitInfo2KHR* = object - VkQueueFamilyCheckpointProperties2NV* = object - sType*: VkStructureType - pNext*: pointer - checkpointExecutionStageMask*: VkPipelineStageFlags2 - VkCheckpointData2NV* = object - sType*: VkStructureType - pNext*: pointer - stage*: VkPipelineStageFlags2 - pCheckpointMarker*: pointer - VkPhysicalDeviceSynchronization2Features* = object - sType*: VkStructureType - pNext*: pointer - synchronization2*: VkBool32 - VkPhysicalDeviceSynchronization2FeaturesKHR* = object - VkPhysicalDeviceVulkanSC10Properties* = object - sType*: VkStructureType - pNext*: pointer - deviceNoDynamicHostAllocations*: VkBool32 - deviceDestroyFreesMemory*: VkBool32 - commandPoolMultipleCommandBuffersRecording*: VkBool32 - commandPoolResetCommandBuffer*: VkBool32 - commandBufferSimultaneousUse*: VkBool32 - secondaryCommandBufferNullOrImagelessFramebuffer*: VkBool32 - recycleDescriptorSetMemory*: VkBool32 - recyclePipelineMemory*: VkBool32 - maxRenderPassSubpasses*: uint32 - maxRenderPassDependencies*: uint32 - maxSubpassInputAttachments*: uint32 - maxSubpassPreserveAttachments*: uint32 - maxFramebufferAttachments*: uint32 - maxDescriptorSetLayoutBindings*: uint32 - maxQueryFaultCount*: uint32 - maxCallbackFaultCount*: uint32 - maxCommandPoolCommandBuffers*: uint32 - maxCommandBufferSize*: VkDeviceSize - VkPipelinePoolSize* = object - sType*: VkStructureType - pNext*: pointer - poolEntrySize*: VkDeviceSize - poolEntryCount*: uint32 - VkDeviceObjectReservationCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - pipelineCacheCreateInfoCount*: uint32 - pPipelineCacheCreateInfos*: ptr VkPipelineCacheCreateInfo - pipelinePoolSizeCount*: uint32 - pPipelinePoolSizes*: ptr VkPipelinePoolSize - semaphoreRequestCount*: uint32 - commandBufferRequestCount*: uint32 - fenceRequestCount*: uint32 - deviceMemoryRequestCount*: uint32 - bufferRequestCount*: uint32 - imageRequestCount*: uint32 - eventRequestCount*: uint32 - queryPoolRequestCount*: uint32 - bufferViewRequestCount*: uint32 - imageViewRequestCount*: uint32 - layeredImageViewRequestCount*: uint32 - pipelineCacheRequestCount*: uint32 - pipelineLayoutRequestCount*: uint32 - renderPassRequestCount*: uint32 - graphicsPipelineRequestCount*: uint32 - computePipelineRequestCount*: uint32 - descriptorSetLayoutRequestCount*: uint32 - samplerRequestCount*: uint32 - descriptorPoolRequestCount*: uint32 - descriptorSetRequestCount*: uint32 - framebufferRequestCount*: uint32 - commandPoolRequestCount*: uint32 - samplerYcbcrConversionRequestCount*: uint32 - surfaceRequestCount*: uint32 - swapchainRequestCount*: uint32 - displayModeRequestCount*: uint32 - subpassDescriptionRequestCount*: uint32 - attachmentDescriptionRequestCount*: uint32 - descriptorSetLayoutBindingRequestCount*: uint32 - descriptorSetLayoutBindingLimit*: uint32 - maxImageViewMipLevels*: uint32 - maxImageViewArrayLayers*: uint32 - maxLayeredImageViewMipLevels*: uint32 - maxOcclusionQueriesPerPool*: uint32 - maxPipelineStatisticsQueriesPerPool*: uint32 - maxTimestampQueriesPerPool*: uint32 - maxImmutableSamplersPerDescriptorSetLayout*: uint32 - VkCommandPoolMemoryReservationCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - commandPoolReservedSize*: VkDeviceSize - commandPoolMaxCommandBuffers*: uint32 - VkCommandPoolMemoryConsumption* = object - sType*: VkStructureType - pNext*: pointer - commandPoolAllocated*: VkDeviceSize - commandPoolReservedSize*: VkDeviceSize - commandBufferAllocated*: VkDeviceSize - VkPhysicalDeviceVulkanSC10Features* = object - sType*: VkStructureType - pNext*: pointer - shaderAtomicInstructions*: VkBool32 - VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - primitivesGeneratedQuery*: VkBool32 - primitivesGeneratedQueryWithRasterizerDiscard*: VkBool32 - primitivesGeneratedQueryWithNonZeroStreams*: VkBool32 - VkPhysicalDeviceLegacyDitheringFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - legacyDithering*: VkBool32 - VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - multisampledRenderToSingleSampled*: VkBool32 - VkSubpassResolvePerformanceQueryEXT* = object - sType*: VkStructureType - pNext*: pointer - optimal*: VkBool32 - VkMultisampledRenderToSingleSampledInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - multisampledRenderToSingleSampledEnable*: VkBool32 - rasterizationSamples*: VkSampleCountFlagBits - VkPhysicalDevicePipelineProtectedAccessFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - pipelineProtectedAccess*: VkBool32 - VkPhysicalDeviceInheritedViewportScissorFeaturesNV* = object - sType*: VkStructureType - pNext*: pointer - inheritedViewportScissor2D*: VkBool32 - VkCommandBufferInheritanceViewportScissorInfoNV* = object - sType*: VkStructureType - pNext*: pointer - viewportScissor2D*: VkBool32 - viewportDepthCount*: uint32 - pViewportDepths*: ptr VkViewport - VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - ycbcr2plane444Formats*: VkBool32 - VkPhysicalDeviceProvokingVertexFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - provokingVertexLast*: VkBool32 - transformFeedbackPreservesProvokingVertex*: VkBool32 - VkPhysicalDeviceProvokingVertexPropertiesEXT* = object - sType*: VkStructureType - pNext*: pointer - provokingVertexModePerPipeline*: VkBool32 - transformFeedbackPreservesTriangleFanProvokingVertex*: VkBool32 - VkPipelineRasterizationProvokingVertexStateCreateInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - provokingVertexMode*: VkProvokingVertexModeEXT - VkCuModuleCreateInfoNVX* = object - sType*: VkStructureType - pNext*: pointer - dataSize*: csize_t - pData*: pointer - VkCuFunctionCreateInfoNVX* = object - sType*: VkStructureType - pNext*: pointer - module*: VkCuModuleNVX - pName*: cstring - VkCuLaunchInfoNVX* = object - sType*: VkStructureType - pNext*: pointer - function*: VkCuFunctionNVX - gridDimX*: uint32 - gridDimY*: uint32 - gridDimZ*: uint32 - blockDimX*: uint32 - blockDimY*: uint32 - blockDimZ*: uint32 - sharedMemBytes*: uint32 - paramCount*: csize_t - pParams*: ptr pointer - extraCount*: csize_t - pExtras*: ptr pointer - VkPhysicalDeviceDescriptorBufferFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - descriptorBuffer*: VkBool32 - descriptorBufferCaptureReplay*: VkBool32 - descriptorBufferImageLayoutIgnored*: VkBool32 - descriptorBufferPushDescriptors*: VkBool32 - VkPhysicalDeviceDescriptorBufferPropertiesEXT* = object - sType*: VkStructureType - pNext*: pointer - combinedImageSamplerDescriptorSingleArray*: VkBool32 - bufferlessPushDescriptors*: VkBool32 - allowSamplerImageViewPostSubmitCreation*: VkBool32 - descriptorBufferOffsetAlignment*: VkDeviceSize - maxDescriptorBufferBindings*: uint32 - maxResourceDescriptorBufferBindings*: uint32 - maxSamplerDescriptorBufferBindings*: uint32 - maxEmbeddedImmutableSamplerBindings*: uint32 - maxEmbeddedImmutableSamplers*: uint32 - bufferCaptureReplayDescriptorDataSize*: csize_t - imageCaptureReplayDescriptorDataSize*: csize_t - imageViewCaptureReplayDescriptorDataSize*: csize_t - samplerCaptureReplayDescriptorDataSize*: csize_t - accelerationStructureCaptureReplayDescriptorDataSize*: csize_t - samplerDescriptorSize*: csize_t - combinedImageSamplerDescriptorSize*: csize_t - sampledImageDescriptorSize*: csize_t - storageImageDescriptorSize*: csize_t - uniformTexelBufferDescriptorSize*: csize_t - robustUniformTexelBufferDescriptorSize*: csize_t - storageTexelBufferDescriptorSize*: csize_t - robustStorageTexelBufferDescriptorSize*: csize_t - uniformBufferDescriptorSize*: csize_t - robustUniformBufferDescriptorSize*: csize_t - storageBufferDescriptorSize*: csize_t - robustStorageBufferDescriptorSize*: csize_t - inputAttachmentDescriptorSize*: csize_t - accelerationStructureDescriptorSize*: csize_t - maxSamplerDescriptorBufferRange*: VkDeviceSize - maxResourceDescriptorBufferRange*: VkDeviceSize - samplerDescriptorBufferAddressSpaceSize*: VkDeviceSize - resourceDescriptorBufferAddressSpaceSize*: VkDeviceSize - descriptorBufferAddressSpaceSize*: VkDeviceSize - VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT* = object - sType*: VkStructureType - pNext*: pointer - combinedImageSamplerDensityMapDescriptorSize*: csize_t - VkDescriptorAddressInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - address*: VkDeviceAddress - range*: VkDeviceSize - format*: VkFormat - VkDescriptorBufferBindingInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - address*: VkDeviceAddress - usage*: VkBufferUsageFlags - VkDescriptorBufferBindingPushDescriptorBufferHandleEXT* = object - sType*: VkStructureType - pNext*: pointer - buffer*: VkBuffer - VkDescriptorDataEXT* {.union.} = object - pSampler*: ptr VkSampler - pCombinedImageSampler*: ptr VkDescriptorImageInfo - pInputAttachmentImage*: ptr VkDescriptorImageInfo - pSampledImage*: ptr VkDescriptorImageInfo - pStorageImage*: ptr VkDescriptorImageInfo - pUniformTexelBuffer*: ptr VkDescriptorAddressInfoEXT - pStorageTexelBuffer*: ptr VkDescriptorAddressInfoEXT - pUniformBuffer*: ptr VkDescriptorAddressInfoEXT - pStorageBuffer*: ptr VkDescriptorAddressInfoEXT - accelerationStructure*: VkDeviceAddress - VkDescriptorGetInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - thetype*: VkDescriptorType - data*: VkDescriptorDataEXT - VkBufferCaptureDescriptorDataInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - buffer*: VkBuffer - VkImageCaptureDescriptorDataInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - image*: VkImage - VkImageViewCaptureDescriptorDataInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - imageView*: VkImageView - VkSamplerCaptureDescriptorDataInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - sampler*: VkSampler - VkAccelerationStructureCaptureDescriptorDataInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - accelerationStructure*: VkAccelerationStructureKHR - accelerationStructureNV*: VkAccelerationStructureNV - VkOpaqueCaptureDescriptorDataCreateInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - opaqueCaptureDescriptorData*: pointer - VkPhysicalDeviceShaderIntegerDotProductFeatures* = object - sType*: VkStructureType - pNext*: pointer - shaderIntegerDotProduct*: VkBool32 - VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR* = object - VkPhysicalDeviceShaderIntegerDotProductProperties* = object - sType*: VkStructureType - pNext*: pointer - integerDotProduct8BitUnsignedAccelerated*: VkBool32 - integerDotProduct8BitSignedAccelerated*: VkBool32 - integerDotProduct8BitMixedSignednessAccelerated*: VkBool32 - integerDotProduct4x8BitPackedUnsignedAccelerated*: VkBool32 - integerDotProduct4x8BitPackedSignedAccelerated*: VkBool32 - integerDotProduct4x8BitPackedMixedSignednessAccelerated*: VkBool32 - integerDotProduct16BitUnsignedAccelerated*: VkBool32 - integerDotProduct16BitSignedAccelerated*: VkBool32 - integerDotProduct16BitMixedSignednessAccelerated*: VkBool32 - integerDotProduct32BitUnsignedAccelerated*: VkBool32 - integerDotProduct32BitSignedAccelerated*: VkBool32 - integerDotProduct32BitMixedSignednessAccelerated*: VkBool32 - integerDotProduct64BitUnsignedAccelerated*: VkBool32 - integerDotProduct64BitSignedAccelerated*: VkBool32 - integerDotProduct64BitMixedSignednessAccelerated*: VkBool32 - integerDotProductAccumulatingSaturating8BitUnsignedAccelerated*: VkBool32 - integerDotProductAccumulatingSaturating8BitSignedAccelerated*: VkBool32 - integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated*: VkBool32 - integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated*: VkBool32 - integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated*: VkBool32 - integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated*: VkBool32 - integerDotProductAccumulatingSaturating16BitUnsignedAccelerated*: VkBool32 - integerDotProductAccumulatingSaturating16BitSignedAccelerated*: VkBool32 - integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated*: VkBool32 - integerDotProductAccumulatingSaturating32BitUnsignedAccelerated*: VkBool32 - integerDotProductAccumulatingSaturating32BitSignedAccelerated*: VkBool32 - integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated*: VkBool32 - integerDotProductAccumulatingSaturating64BitUnsignedAccelerated*: VkBool32 - integerDotProductAccumulatingSaturating64BitSignedAccelerated*: VkBool32 - integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated*: VkBool32 - VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR* = object - VkPhysicalDeviceDrmPropertiesEXT* = object - sType*: VkStructureType - pNext*: pointer - hasPrimary*: VkBool32 - hasRender*: VkBool32 - primaryMajor*: int64 - primaryMinor*: int64 - renderMajor*: int64 - renderMinor*: int64 - VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR* = object - sType*: VkStructureType - pNext*: pointer - fragmentShaderBarycentric*: VkBool32 - VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR* = object - sType*: VkStructureType - pNext*: pointer - triStripVertexOrderIndependentOfProvokingVertex*: VkBool32 - VkPhysicalDeviceRayTracingMotionBlurFeaturesNV* = object - sType*: VkStructureType - pNext*: pointer - rayTracingMotionBlur*: VkBool32 - rayTracingMotionBlurPipelineTraceRaysIndirect*: VkBool32 - VkAccelerationStructureGeometryMotionTrianglesDataNV* = object - sType*: VkStructureType - pNext*: pointer - vertexData*: VkDeviceOrHostAddressConstKHR - VkAccelerationStructureMotionInfoNV* = object - sType*: VkStructureType - pNext*: pointer - maxInstances*: uint32 - flags*: VkAccelerationStructureMotionInfoFlagsNV - VkSRTDataNV* = object - sx*: float32 - a*: float32 - b*: float32 - pvx*: float32 - sy*: float32 - c*: float32 - pvy*: float32 - sz*: float32 - pvz*: float32 - qx*: float32 - qy*: float32 - qz*: float32 - qw*: float32 - tx*: float32 - ty*: float32 - tz*: float32 - VkAccelerationStructureSRTMotionInstanceNV* = object - transformT0*: VkSRTDataNV - transformT1*: VkSRTDataNV - instanceCustomIndex*: uint32 - mask*: uint32 - instanceShaderBindingTableRecordOffset*: uint32 - flags*: VkGeometryInstanceFlagsKHR - accelerationStructureReference*: uint64 - VkAccelerationStructureMatrixMotionInstanceNV* = object - transformT0*: VkTransformMatrixKHR - transformT1*: VkTransformMatrixKHR - instanceCustomIndex*: uint32 - mask*: uint32 - instanceShaderBindingTableRecordOffset*: uint32 - flags*: VkGeometryInstanceFlagsKHR - accelerationStructureReference*: uint64 - VkAccelerationStructureMotionInstanceDataNV* {.union.} = object - staticInstance*: VkAccelerationStructureInstanceKHR - matrixMotionInstance*: VkAccelerationStructureMatrixMotionInstanceNV - srtMotionInstance*: VkAccelerationStructureSRTMotionInstanceNV - VkAccelerationStructureMotionInstanceNV* = object - thetype*: VkAccelerationStructureMotionInstanceTypeNV - flags*: VkAccelerationStructureMotionInstanceFlagsNV - data*: VkAccelerationStructureMotionInstanceDataNV - VkMemoryGetRemoteAddressInfoNV* = object - sType*: VkStructureType - pNext*: pointer - memory*: VkDeviceMemory - handleType*: VkExternalMemoryHandleTypeFlagBits - VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - formatRgba10x6WithoutYCbCrSampler*: VkBool32 - VkFormatProperties3* = object - sType*: VkStructureType - pNext*: pointer - linearTilingFeatures*: VkFormatFeatureFlags2 - optimalTilingFeatures*: VkFormatFeatureFlags2 - bufferFeatures*: VkFormatFeatureFlags2 - VkFormatProperties3KHR* = object - VkDrmFormatModifierPropertiesList2EXT* = object - sType*: VkStructureType - pNext*: pointer - drmFormatModifierCount*: uint32 - pDrmFormatModifierProperties*: ptr VkDrmFormatModifierProperties2EXT - VkDrmFormatModifierProperties2EXT* = object - drmFormatModifier*: uint64 - drmFormatModifierPlaneCount*: uint32 - drmFormatModifierTilingFeatures*: VkFormatFeatureFlags2 - VkPipelineRenderingCreateInfo* = object - sType*: VkStructureType - pNext*: pointer - viewMask*: uint32 - colorAttachmentCount*: uint32 - pColorAttachmentFormats*: ptr VkFormat - depthAttachmentFormat*: VkFormat - stencilAttachmentFormat*: VkFormat - VkPipelineRenderingCreateInfoKHR* = object - VkRenderingInfo* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkRenderingFlags - renderArea*: VkRect2D - layerCount*: uint32 - viewMask*: uint32 - colorAttachmentCount*: uint32 - pColorAttachments*: ptr VkRenderingAttachmentInfo - pDepthAttachment*: ptr VkRenderingAttachmentInfo - pStencilAttachment*: ptr VkRenderingAttachmentInfo - VkRenderingInfoKHR* = object - VkRenderingAttachmentInfo* = object - sType*: VkStructureType - pNext*: pointer - imageView*: VkImageView - imageLayout*: VkImageLayout - resolveMode*: VkResolveModeFlagBits - resolveImageView*: VkImageView - resolveImageLayout*: VkImageLayout - loadOp*: VkAttachmentLoadOp - storeOp*: VkAttachmentStoreOp - clearValue*: VkClearValue - VkRenderingAttachmentInfoKHR* = object - VkRenderingFragmentShadingRateAttachmentInfoKHR* = object - sType*: VkStructureType - pNext*: pointer - imageView*: VkImageView - imageLayout*: VkImageLayout - shadingRateAttachmentTexelSize*: VkExtent2D - VkRenderingFragmentDensityMapAttachmentInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - imageView*: VkImageView - imageLayout*: VkImageLayout - VkPhysicalDeviceDynamicRenderingFeatures* = object - sType*: VkStructureType - pNext*: pointer - dynamicRendering*: VkBool32 - VkPhysicalDeviceDynamicRenderingFeaturesKHR* = object - VkCommandBufferInheritanceRenderingInfo* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkRenderingFlags - viewMask*: uint32 - colorAttachmentCount*: uint32 - pColorAttachmentFormats*: ptr VkFormat - depthAttachmentFormat*: VkFormat - stencilAttachmentFormat*: VkFormat - rasterizationSamples*: VkSampleCountFlagBits - VkCommandBufferInheritanceRenderingInfoKHR* = object - VkAttachmentSampleCountInfoAMD* = object - sType*: VkStructureType - pNext*: pointer - colorAttachmentCount*: uint32 - pColorAttachmentSamples*: ptr VkSampleCountFlagBits - depthStencilAttachmentSamples*: VkSampleCountFlagBits - VkAttachmentSampleCountInfoNV* = object - VkMultiviewPerViewAttributesInfoNVX* = object - sType*: VkStructureType - pNext*: pointer - perViewAttributes*: VkBool32 - perViewAttributesPositionXOnly*: VkBool32 - VkPhysicalDeviceImageViewMinLodFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - minLod*: VkBool32 - VkImageViewMinLodCreateInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - minLod*: float32 - VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - rasterizationOrderColorAttachmentAccess*: VkBool32 - rasterizationOrderDepthAttachmentAccess*: VkBool32 - rasterizationOrderStencilAttachmentAccess*: VkBool32 - VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM* = object - VkPhysicalDeviceLinearColorAttachmentFeaturesNV* = object - sType*: VkStructureType - pNext*: pointer - linearColorAttachment*: VkBool32 - VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - graphicsPipelineLibrary*: VkBool32 - VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT* = object - sType*: VkStructureType - pNext*: pointer - graphicsPipelineLibraryFastLinking*: VkBool32 - graphicsPipelineLibraryIndependentInterpolationDecoration*: VkBool32 - VkGraphicsPipelineLibraryCreateInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkGraphicsPipelineLibraryFlagsEXT - VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE* = object - sType*: VkStructureType - pNext*: pointer - descriptorSetHostMapping*: VkBool32 - VkDescriptorSetBindingReferenceVALVE* = object - sType*: VkStructureType - pNext*: pointer - descriptorSetLayout*: VkDescriptorSetLayout - binding*: uint32 - VkDescriptorSetLayoutHostMappingInfoVALVE* = object - sType*: VkStructureType - pNext*: pointer - descriptorOffset*: csize_t - descriptorSize*: uint32 - VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - shaderModuleIdentifier*: VkBool32 - VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT* = object - sType*: VkStructureType - pNext*: pointer - shaderModuleIdentifierAlgorithmUUID*: array[VK_UUID_SIZE, uint8] - VkPipelineShaderStageModuleIdentifierCreateInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - identifierSize*: uint32 - pIdentifier*: ptr uint8 - VkShaderModuleIdentifierEXT* = object - sType*: VkStructureType - pNext*: pointer - identifierSize*: uint32 - identifier*: array[VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT, uint8] - VkImageCompressionControlEXT* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkImageCompressionFlagsEXT - compressionControlPlaneCount*: uint32 - pFixedRateFlags*: ptr VkImageCompressionFixedRateFlagsEXT - VkPhysicalDeviceImageCompressionControlFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - imageCompressionControl*: VkBool32 - VkImageCompressionPropertiesEXT* = object - sType*: VkStructureType - pNext*: pointer - imageCompressionFlags*: VkImageCompressionFlagsEXT - imageCompressionFixedRateFlags*: VkImageCompressionFixedRateFlagsEXT - VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - imageCompressionControlSwapchain*: VkBool32 - VkImageSubresource2EXT* = object - sType*: VkStructureType - pNext*: pointer - imageSubresource*: VkImageSubresource - VkSubresourceLayout2EXT* = object - sType*: VkStructureType - pNext*: pointer - subresourceLayout*: VkSubresourceLayout - VkRenderPassCreationControlEXT* = object - sType*: VkStructureType - pNext*: pointer - disallowMerging*: VkBool32 - VkRenderPassCreationFeedbackInfoEXT* = object - postMergeSubpassCount*: uint32 - VkRenderPassCreationFeedbackCreateInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - pRenderPassFeedback*: ptr VkRenderPassCreationFeedbackInfoEXT - VkRenderPassSubpassFeedbackInfoEXT* = object - subpassMergeStatus*: VkSubpassMergeStatusEXT - description*: array[VK_MAX_DESCRIPTION_SIZE, char] - postMergeIndex*: uint32 - VkRenderPassSubpassFeedbackCreateInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - pSubpassFeedback*: ptr VkRenderPassSubpassFeedbackInfoEXT - VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - subpassMergeFeedback*: VkBool32 - VkMicromapBuildInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - thetype*: VkMicromapTypeEXT - flags*: VkBuildMicromapFlagsEXT - mode*: VkBuildMicromapModeEXT - dstMicromap*: VkMicromapEXT - usageCountsCount*: uint32 - pUsageCounts*: ptr VkMicromapUsageEXT - ppUsageCounts*: ptr ptr VkMicromapUsageEXT - data*: VkDeviceOrHostAddressConstKHR - scratchData*: VkDeviceOrHostAddressKHR - triangleArray*: VkDeviceOrHostAddressConstKHR - triangleArrayStride*: VkDeviceSize - VkMicromapCreateInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - createFlags*: VkMicromapCreateFlagsEXT - buffer*: VkBuffer - offset*: VkDeviceSize - size*: VkDeviceSize - thetype*: VkMicromapTypeEXT - deviceAddress*: VkDeviceAddress - VkMicromapVersionInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - pVersionData*: ptr uint8 - VkCopyMicromapInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - src*: VkMicromapEXT - dst*: VkMicromapEXT - mode*: VkCopyMicromapModeEXT - VkCopyMicromapToMemoryInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - src*: VkMicromapEXT - dst*: VkDeviceOrHostAddressKHR - mode*: VkCopyMicromapModeEXT - VkCopyMemoryToMicromapInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - src*: VkDeviceOrHostAddressConstKHR - dst*: VkMicromapEXT - mode*: VkCopyMicromapModeEXT - VkMicromapBuildSizesInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - micromapSize*: VkDeviceSize - buildScratchSize*: VkDeviceSize - discardable*: VkBool32 - VkMicromapUsageEXT* = object - count*: uint32 - subdivisionLevel*: uint32 - format*: uint32 - VkMicromapTriangleEXT* = object - dataOffset*: uint32 - subdivisionLevel*: uint16 - format*: uint16 - VkPhysicalDeviceOpacityMicromapFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - micromap*: VkBool32 - micromapCaptureReplay*: VkBool32 - micromapHostCommands*: VkBool32 - VkPhysicalDeviceOpacityMicromapPropertiesEXT* = object - sType*: VkStructureType - pNext*: pointer - maxOpacity2StateSubdivisionLevel*: uint32 - maxOpacity4StateSubdivisionLevel*: uint32 - VkAccelerationStructureTrianglesOpacityMicromapEXT* = object - sType*: VkStructureType - pNext*: pointer - indexType*: VkIndexType - indexBuffer*: VkDeviceOrHostAddressConstKHR - indexStride*: VkDeviceSize - baseTriangle*: uint32 - usageCountsCount*: uint32 - pUsageCounts*: ptr VkMicromapUsageEXT - ppUsageCounts*: ptr ptr VkMicromapUsageEXT - micromap*: VkMicromapEXT - VkPipelinePropertiesIdentifierEXT* = object - sType*: VkStructureType - pNext*: pointer - pipelineIdentifier*: array[VK_UUID_SIZE, uint8] - VkPhysicalDevicePipelinePropertiesFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - pipelinePropertiesIdentifier*: VkBool32 - VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD* = object - sType*: VkStructureType - pNext*: pointer - shaderEarlyAndLateFragmentTests*: VkBool32 - VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - nonSeamlessCubeMap*: VkBool32 - VkPhysicalDevicePipelineRobustnessFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - pipelineRobustness*: VkBool32 - VkPipelineRobustnessCreateInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - storageBuffers*: VkPipelineRobustnessBufferBehaviorEXT - uniformBuffers*: VkPipelineRobustnessBufferBehaviorEXT - vertexInputs*: VkPipelineRobustnessBufferBehaviorEXT - images*: VkPipelineRobustnessImageBehaviorEXT - VkPhysicalDevicePipelineRobustnessPropertiesEXT* = object - sType*: VkStructureType - pNext*: pointer - defaultRobustnessStorageBuffers*: VkPipelineRobustnessBufferBehaviorEXT - defaultRobustnessUniformBuffers*: VkPipelineRobustnessBufferBehaviorEXT - defaultRobustnessVertexInputs*: VkPipelineRobustnessBufferBehaviorEXT - defaultRobustnessImages*: VkPipelineRobustnessImageBehaviorEXT - VkImageViewSampleWeightCreateInfoQCOM* = object - sType*: VkStructureType - pNext*: pointer - filterCenter*: VkOffset2D - filterSize*: VkExtent2D - numPhases*: uint32 - VkPhysicalDeviceImageProcessingFeaturesQCOM* = object - sType*: VkStructureType - pNext*: pointer - textureSampleWeighted*: VkBool32 - textureBoxFilter*: VkBool32 - textureBlockMatch*: VkBool32 - VkPhysicalDeviceImageProcessingPropertiesQCOM* = object - sType*: VkStructureType - pNext*: pointer - maxWeightFilterPhases*: uint32 - maxWeightFilterDimension*: VkExtent2D - maxBlockMatchRegion*: VkExtent2D - maxBoxFilterBlockSize*: VkExtent2D - VkPhysicalDeviceTilePropertiesFeaturesQCOM* = object - sType*: VkStructureType - pNext*: pointer - tileProperties*: VkBool32 - VkTilePropertiesQCOM* = object - sType*: VkStructureType - pNext*: pointer - tileSize*: VkExtent3D - apronSize*: VkExtent2D - origin*: VkOffset2D - VkPhysicalDeviceAmigoProfilingFeaturesSEC* = object - sType*: VkStructureType - pNext*: pointer - amigoProfiling*: VkBool32 - VkAmigoProfilingSubmitInfoSEC* = object - sType*: VkStructureType - pNext*: pointer - firstDrawTimestamp*: uint64 - swapBufferTimestamp*: uint64 - VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - attachmentFeedbackLoopLayout*: VkBool32 - VkPhysicalDeviceDepthClampZeroOneFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - depthClampZeroOne*: VkBool32 - VkPhysicalDeviceAddressBindingReportFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - reportAddressBinding*: VkBool32 - VkDeviceAddressBindingCallbackDataEXT* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkDeviceAddressBindingFlagsEXT - baseAddress*: VkDeviceAddress - size*: VkDeviceSize - bindingType*: VkDeviceAddressBindingTypeEXT - VkPhysicalDeviceOpticalFlowFeaturesNV* = object - sType*: VkStructureType - pNext*: pointer - opticalFlow*: VkBool32 - VkPhysicalDeviceOpticalFlowPropertiesNV* = object - sType*: VkStructureType - pNext*: pointer - supportedOutputGridSizes*: VkOpticalFlowGridSizeFlagsNV - supportedHintGridSizes*: VkOpticalFlowGridSizeFlagsNV - hintSupported*: VkBool32 - costSupported*: VkBool32 - bidirectionalFlowSupported*: VkBool32 - globalFlowSupported*: VkBool32 - minWidth*: uint32 - minHeight*: uint32 - maxWidth*: uint32 - maxHeight*: uint32 - maxNumRegionsOfInterest*: uint32 - VkOpticalFlowImageFormatInfoNV* = object - sType*: VkStructureType - pNext*: pointer - usage*: VkOpticalFlowUsageFlagsNV - VkOpticalFlowImageFormatPropertiesNV* = object - sType*: VkStructureType - pNext*: pointer - format*: VkFormat - VkOpticalFlowSessionCreateInfoNV* = object - sType*: VkStructureType - pNext*: pointer - width*: uint32 - height*: uint32 - imageFormat*: VkFormat - flowVectorFormat*: VkFormat - costFormat*: VkFormat - outputGridSize*: VkOpticalFlowGridSizeFlagsNV - hintGridSize*: VkOpticalFlowGridSizeFlagsNV - performanceLevel*: VkOpticalFlowPerformanceLevelNV - flags*: VkOpticalFlowSessionCreateFlagsNV - VkOpticalFlowSessionCreatePrivateDataInfoNV* = object - sType*: VkStructureType - pNext*: pointer - id*: uint32 - size*: uint32 - pPrivateData*: pointer - VkOpticalFlowExecuteInfoNV* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkOpticalFlowExecuteFlagsNV - regionCount*: uint32 - pRegions*: ptr VkRect2D - VkPhysicalDeviceFaultFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - deviceFault*: VkBool32 - deviceFaultVendorBinary*: VkBool32 - VkDeviceFaultAddressInfoEXT* = object - addressType*: VkDeviceFaultAddressTypeEXT - reportedAddress*: VkDeviceAddress - addressPrecision*: VkDeviceSize - VkDeviceFaultVendorInfoEXT* = object - description*: array[VK_MAX_DESCRIPTION_SIZE, char] - vendorFaultCode*: uint64 - vendorFaultData*: uint64 - VkDeviceFaultCountsEXT* = object - sType*: VkStructureType - pNext*: pointer - addressInfoCount*: uint32 - vendorInfoCount*: uint32 - vendorBinarySize*: VkDeviceSize - VkDeviceFaultInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - description*: array[VK_MAX_DESCRIPTION_SIZE, char] - pAddressInfos*: ptr VkDeviceFaultAddressInfoEXT - pVendorInfos*: ptr VkDeviceFaultVendorInfoEXT - pVendorBinaryData*: pointer - VkDeviceFaultVendorBinaryHeaderVersionOneEXT* = object - headerSize*: uint32 - headerVersion*: VkDeviceFaultVendorBinaryHeaderVersionEXT - vendorID*: uint32 - deviceID*: uint32 - driverVersion*: uint32 - pipelineCacheUUID*: array[VK_UUID_SIZE, uint8] - applicationNameOffset*: uint32 - applicationVersion*: uint32 - engineNameOffset*: uint32 - VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - pipelineLibraryGroupHandles*: VkBool32 - VkDecompressMemoryRegionNV* = object - srcAddress*: VkDeviceAddress - dstAddress*: VkDeviceAddress - compressedSize*: VkDeviceSize - decompressedSize*: VkDeviceSize - decompressionMethod*: VkMemoryDecompressionMethodFlagsNV - VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM* = object - sType*: VkStructureType - pNext*: pointer - shaderCoreMask*: uint64 - shaderCoreCount*: uint32 - shaderWarpsPerCore*: uint32 - VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM* = object - sType*: VkStructureType - pNext*: pointer - shaderCoreBuiltins*: VkBool32 - VkSurfacePresentModeEXT* = object - sType*: VkStructureType - pNext*: pointer - presentMode*: VkPresentModeKHR - VkSurfacePresentScalingCapabilitiesEXT* = object - sType*: VkStructureType - pNext*: pointer - supportedPresentScaling*: VkPresentScalingFlagsEXT - supportedPresentGravityX*: VkPresentGravityFlagsEXT - supportedPresentGravityY*: VkPresentGravityFlagsEXT - minScaledImageExtent*: VkExtent2D - maxScaledImageExtent*: VkExtent2D - VkSurfacePresentModeCompatibilityEXT* = object - sType*: VkStructureType - pNext*: pointer - presentModeCount*: uint32 - pPresentModes*: ptr VkPresentModeKHR - VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT* = object - sType*: VkStructureType - pNext*: pointer - swapchainMaintenance1*: VkBool32 - VkSwapchainPresentFenceInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - swapchainCount*: uint32 - pFences*: ptr VkFence - VkSwapchainPresentModesCreateInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - presentModeCount*: uint32 - pPresentModes*: ptr VkPresentModeKHR - VkSwapchainPresentModeInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - swapchainCount*: uint32 - pPresentModes*: ptr VkPresentModeKHR - VkSwapchainPresentScalingCreateInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - scalingBehavior*: VkPresentScalingFlagsEXT - presentGravityX*: VkPresentGravityFlagsEXT - presentGravityY*: VkPresentGravityFlagsEXT - VkReleaseSwapchainImagesInfoEXT* = object - sType*: VkStructureType - pNext*: pointer - swapchain*: VkSwapchainKHR - imageIndexCount*: uint32 - pImageIndices*: ptr uint32 - VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV* = object - sType*: VkStructureType - pNext*: pointer - rayTracingInvocationReorder*: VkBool32 - VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV* = object - sType*: VkStructureType - pNext*: pointer - rayTracingInvocationReorderReorderingHint*: VkRayTracingInvocationReorderModeNV - VkDirectDriverLoadingInfoLUNARG* = object - sType*: VkStructureType - pNext*: pointer - flags*: VkDirectDriverLoadingFlagsLUNARG - pfnGetInstanceProcAddr*: PFN_vkGetInstanceProcAddrLUNARG - VkDirectDriverLoadingListLUNARG* = object - sType*: VkStructureType - pNext*: pointer - mode*: VkDirectDriverLoadingModeLUNARG - driverCount*: uint32 - pDrivers*: ptr VkDirectDriverLoadingInfoLUNARG - VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM* = object - sType*: VkStructureType - pNext*: pointer - multiviewPerViewViewports*: VkBool32 - VkPhysicalDeviceShaderCorePropertiesARM* = object - sType*: VkStructureType - pNext*: pointer - pixelRate*: uint32 - texelRate*: uint32 - fmaRate*: uint32 - VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM* = object - sType*: VkStructureType - pNext*: pointer - multiviewPerViewRenderAreas*: VkBool32 - VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM* = object - sType*: VkStructureType - pNext*: pointer - perViewRenderAreaCount*: uint32 - pPerViewRenderAreas*: ptr VkRect2D -# feature VK_VERSION_1_0 -var - vkCreateInstance*: proc(pCreateInfo: ptr VkInstanceCreateInfo, pAllocator: ptr VkAllocationCallbacks, pInstance: ptr VkInstance): VkResult {.stdcall.} - vkDestroyInstance*: proc(instance: VkInstance, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkEnumeratePhysicalDevices*: proc(instance: VkInstance, pPhysicalDeviceCount: ptr uint32, pPhysicalDevices: ptr VkPhysicalDevice): VkResult {.stdcall.} - vkGetPhysicalDeviceFeatures*: proc(physicalDevice: VkPhysicalDevice, pFeatures: ptr VkPhysicalDeviceFeatures): void {.stdcall.} - vkGetPhysicalDeviceFormatProperties*: proc(physicalDevice: VkPhysicalDevice, format: VkFormat, pFormatProperties: ptr VkFormatProperties): void {.stdcall.} - vkGetPhysicalDeviceImageFormatProperties*: proc(physicalDevice: VkPhysicalDevice, format: VkFormat, thetype: VkImageType, tiling: VkImageTiling, usage: VkImageUsageFlags, flags: VkImageCreateFlags, pImageFormatProperties: ptr VkImageFormatProperties): VkResult {.stdcall.} - vkGetPhysicalDeviceProperties*: proc(physicalDevice: VkPhysicalDevice, pProperties: ptr VkPhysicalDeviceProperties): void {.stdcall.} - vkGetPhysicalDeviceQueueFamilyProperties*: proc(physicalDevice: VkPhysicalDevice, pQueueFamilyPropertyCount: ptr uint32, pQueueFamilyProperties: ptr VkQueueFamilyProperties): void {.stdcall.} - vkGetPhysicalDeviceMemoryProperties*: proc(physicalDevice: VkPhysicalDevice, pMemoryProperties: ptr VkPhysicalDeviceMemoryProperties): void {.stdcall.} - vkGetDeviceProcAddr*: proc(device: VkDevice, pName: cstring): PFN_vkVoidFunction {.stdcall.} - vkCreateDevice*: proc(physicalDevice: VkPhysicalDevice, pCreateInfo: ptr VkDeviceCreateInfo, pAllocator: ptr VkAllocationCallbacks, pDevice: ptr VkDevice): VkResult {.stdcall.} - vkDestroyDevice*: proc(device: VkDevice, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkEnumerateInstanceExtensionProperties*: proc(pLayerName: cstring, pPropertyCount: ptr uint32, pProperties: ptr VkExtensionProperties): VkResult {.stdcall.} - vkEnumerateDeviceExtensionProperties*: proc(physicalDevice: VkPhysicalDevice, pLayerName: cstring, pPropertyCount: ptr uint32, pProperties: ptr VkExtensionProperties): VkResult {.stdcall.} - vkEnumerateInstanceLayerProperties*: proc(pPropertyCount: ptr uint32, pProperties: ptr VkLayerProperties): VkResult {.stdcall.} - vkEnumerateDeviceLayerProperties*: proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32, pProperties: ptr VkLayerProperties): VkResult {.stdcall.} - vkGetDeviceQueue*: proc(device: VkDevice, queueFamilyIndex: uint32, queueIndex: uint32, pQueue: ptr VkQueue): void {.stdcall.} - vkQueueSubmit*: proc(queue: VkQueue, submitCount: uint32, pSubmits: ptr VkSubmitInfo, fence: VkFence): VkResult {.stdcall.} - vkQueueWaitIdle*: proc(queue: VkQueue): VkResult {.stdcall.} - vkDeviceWaitIdle*: proc(device: VkDevice): VkResult {.stdcall.} - vkAllocateMemory*: proc(device: VkDevice, pAllocateInfo: ptr VkMemoryAllocateInfo, pAllocator: ptr VkAllocationCallbacks, pMemory: ptr VkDeviceMemory): VkResult {.stdcall.} - vkFreeMemory*: proc(device: VkDevice, memory: VkDeviceMemory, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkMapMemory*: proc(device: VkDevice, memory: VkDeviceMemory, offset: VkDeviceSize, size: VkDeviceSize, flags: VkMemoryMapFlags, ppData: ptr pointer): VkResult {.stdcall.} - vkUnmapMemory*: proc(device: VkDevice, memory: VkDeviceMemory): void {.stdcall.} - vkFlushMappedMemoryRanges*: proc(device: VkDevice, memoryRangeCount: uint32, pMemoryRanges: ptr VkMappedMemoryRange): VkResult {.stdcall.} - vkInvalidateMappedMemoryRanges*: proc(device: VkDevice, memoryRangeCount: uint32, pMemoryRanges: ptr VkMappedMemoryRange): VkResult {.stdcall.} - vkGetDeviceMemoryCommitment*: proc(device: VkDevice, memory: VkDeviceMemory, pCommittedMemoryInBytes: ptr VkDeviceSize): void {.stdcall.} - vkBindBufferMemory*: proc(device: VkDevice, buffer: VkBuffer, memory: VkDeviceMemory, memoryOffset: VkDeviceSize): VkResult {.stdcall.} - vkBindImageMemory*: proc(device: VkDevice, image: VkImage, memory: VkDeviceMemory, memoryOffset: VkDeviceSize): VkResult {.stdcall.} - vkGetBufferMemoryRequirements*: proc(device: VkDevice, buffer: VkBuffer, pMemoryRequirements: ptr VkMemoryRequirements): void {.stdcall.} - vkGetImageMemoryRequirements*: proc(device: VkDevice, image: VkImage, pMemoryRequirements: ptr VkMemoryRequirements): void {.stdcall.} - vkGetImageSparseMemoryRequirements*: proc(device: VkDevice, image: VkImage, pSparseMemoryRequirementCount: ptr uint32, pSparseMemoryRequirements: ptr VkSparseImageMemoryRequirements): void {.stdcall.} - vkGetPhysicalDeviceSparseImageFormatProperties*: proc(physicalDevice: VkPhysicalDevice, format: VkFormat, thetype: VkImageType, samples: VkSampleCountFlagBits, usage: VkImageUsageFlags, tiling: VkImageTiling, pPropertyCount: ptr uint32, pProperties: ptr VkSparseImageFormatProperties): void {.stdcall.} - vkQueueBindSparse*: proc(queue: VkQueue, bindInfoCount: uint32, pBindInfo: ptr VkBindSparseInfo, fence: VkFence): VkResult {.stdcall.} - vkCreateFence*: proc(device: VkDevice, pCreateInfo: ptr VkFenceCreateInfo, pAllocator: ptr VkAllocationCallbacks, pFence: ptr VkFence): VkResult {.stdcall.} - vkDestroyFence*: proc(device: VkDevice, fence: VkFence, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkResetFences*: proc(device: VkDevice, fenceCount: uint32, pFences: ptr VkFence): VkResult {.stdcall.} - vkGetFenceStatus*: proc(device: VkDevice, fence: VkFence): VkResult {.stdcall.} - vkWaitForFences*: proc(device: VkDevice, fenceCount: uint32, pFences: ptr VkFence, waitAll: VkBool32, timeout: uint64): VkResult {.stdcall.} - vkCreateSemaphore*: proc(device: VkDevice, pCreateInfo: ptr VkSemaphoreCreateInfo, pAllocator: ptr VkAllocationCallbacks, pSemaphore: ptr VkSemaphore): VkResult {.stdcall.} - vkDestroySemaphore*: proc(device: VkDevice, semaphore: VkSemaphore, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkCreateEvent*: proc(device: VkDevice, pCreateInfo: ptr VkEventCreateInfo, pAllocator: ptr VkAllocationCallbacks, pEvent: ptr VkEvent): VkResult {.stdcall.} - vkDestroyEvent*: proc(device: VkDevice, event: VkEvent, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkGetEventStatus*: proc(device: VkDevice, event: VkEvent): VkResult {.stdcall.} - vkSetEvent*: proc(device: VkDevice, event: VkEvent): VkResult {.stdcall.} - vkResetEvent*: proc(device: VkDevice, event: VkEvent): VkResult {.stdcall.} - vkCreateQueryPool*: proc(device: VkDevice, pCreateInfo: ptr VkQueryPoolCreateInfo, pAllocator: ptr VkAllocationCallbacks, pQueryPool: ptr VkQueryPool): VkResult {.stdcall.} - vkDestroyQueryPool*: proc(device: VkDevice, queryPool: VkQueryPool, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkGetQueryPoolResults*: proc(device: VkDevice, queryPool: VkQueryPool, firstQuery: uint32, queryCount: uint32, dataSize: csize_t, pData: pointer, stride: VkDeviceSize, flags: VkQueryResultFlags): VkResult {.stdcall.} - vkCreateBuffer*: proc(device: VkDevice, pCreateInfo: ptr VkBufferCreateInfo, pAllocator: ptr VkAllocationCallbacks, pBuffer: ptr VkBuffer): VkResult {.stdcall.} - vkDestroyBuffer*: proc(device: VkDevice, buffer: VkBuffer, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkCreateBufferView*: proc(device: VkDevice, pCreateInfo: ptr VkBufferViewCreateInfo, pAllocator: ptr VkAllocationCallbacks, pView: ptr VkBufferView): VkResult {.stdcall.} - vkDestroyBufferView*: proc(device: VkDevice, bufferView: VkBufferView, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkCreateImage*: proc(device: VkDevice, pCreateInfo: ptr VkImageCreateInfo, pAllocator: ptr VkAllocationCallbacks, pImage: ptr VkImage): VkResult {.stdcall.} - vkDestroyImage*: proc(device: VkDevice, image: VkImage, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkGetImageSubresourceLayout*: proc(device: VkDevice, image: VkImage, pSubresource: ptr VkImageSubresource, pLayout: ptr VkSubresourceLayout): void {.stdcall.} - vkCreateImageView*: proc(device: VkDevice, pCreateInfo: ptr VkImageViewCreateInfo, pAllocator: ptr VkAllocationCallbacks, pView: ptr VkImageView): VkResult {.stdcall.} - vkDestroyImageView*: proc(device: VkDevice, imageView: VkImageView, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkCreateShaderModule*: proc(device: VkDevice, pCreateInfo: ptr VkShaderModuleCreateInfo, pAllocator: ptr VkAllocationCallbacks, pShaderModule: ptr VkShaderModule): VkResult {.stdcall.} - vkDestroyShaderModule*: proc(device: VkDevice, shaderModule: VkShaderModule, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkCreatePipelineCache*: proc(device: VkDevice, pCreateInfo: ptr VkPipelineCacheCreateInfo, pAllocator: ptr VkAllocationCallbacks, pPipelineCache: ptr VkPipelineCache): VkResult {.stdcall.} - vkDestroyPipelineCache*: proc(device: VkDevice, pipelineCache: VkPipelineCache, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkGetPipelineCacheData*: proc(device: VkDevice, pipelineCache: VkPipelineCache, pDataSize: ptr csize_t, pData: pointer): VkResult {.stdcall.} - vkMergePipelineCaches*: proc(device: VkDevice, dstCache: VkPipelineCache, srcCacheCount: uint32, pSrcCaches: ptr VkPipelineCache): VkResult {.stdcall.} - vkCreateGraphicsPipelines*: proc(device: VkDevice, pipelineCache: VkPipelineCache, createInfoCount: uint32, pCreateInfos: ptr VkGraphicsPipelineCreateInfo, pAllocator: ptr VkAllocationCallbacks, pPipelines: ptr VkPipeline): VkResult {.stdcall.} - vkCreateComputePipelines*: proc(device: VkDevice, pipelineCache: VkPipelineCache, createInfoCount: uint32, pCreateInfos: ptr VkComputePipelineCreateInfo, pAllocator: ptr VkAllocationCallbacks, pPipelines: ptr VkPipeline): VkResult {.stdcall.} - vkDestroyPipeline*: proc(device: VkDevice, pipeline: VkPipeline, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkCreatePipelineLayout*: proc(device: VkDevice, pCreateInfo: ptr VkPipelineLayoutCreateInfo, pAllocator: ptr VkAllocationCallbacks, pPipelineLayout: ptr VkPipelineLayout): VkResult {.stdcall.} - vkDestroyPipelineLayout*: proc(device: VkDevice, pipelineLayout: VkPipelineLayout, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkCreateSampler*: proc(device: VkDevice, pCreateInfo: ptr VkSamplerCreateInfo, pAllocator: ptr VkAllocationCallbacks, pSampler: ptr VkSampler): VkResult {.stdcall.} - vkDestroySampler*: proc(device: VkDevice, sampler: VkSampler, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkCreateDescriptorSetLayout*: proc(device: VkDevice, pCreateInfo: ptr VkDescriptorSetLayoutCreateInfo, pAllocator: ptr VkAllocationCallbacks, pSetLayout: ptr VkDescriptorSetLayout): VkResult {.stdcall.} - vkDestroyDescriptorSetLayout*: proc(device: VkDevice, descriptorSetLayout: VkDescriptorSetLayout, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkCreateDescriptorPool*: proc(device: VkDevice, pCreateInfo: ptr VkDescriptorPoolCreateInfo, pAllocator: ptr VkAllocationCallbacks, pDescriptorPool: ptr VkDescriptorPool): VkResult {.stdcall.} - vkDestroyDescriptorPool*: proc(device: VkDevice, descriptorPool: VkDescriptorPool, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkResetDescriptorPool*: proc(device: VkDevice, descriptorPool: VkDescriptorPool, flags: VkDescriptorPoolResetFlags): VkResult {.stdcall.} - vkAllocateDescriptorSets*: proc(device: VkDevice, pAllocateInfo: ptr VkDescriptorSetAllocateInfo, pDescriptorSets: ptr VkDescriptorSet): VkResult {.stdcall.} - vkFreeDescriptorSets*: proc(device: VkDevice, descriptorPool: VkDescriptorPool, descriptorSetCount: uint32, pDescriptorSets: ptr VkDescriptorSet): VkResult {.stdcall.} - vkUpdateDescriptorSets*: proc(device: VkDevice, descriptorWriteCount: uint32, pDescriptorWrites: ptr VkWriteDescriptorSet, descriptorCopyCount: uint32, pDescriptorCopies: ptr VkCopyDescriptorSet): void {.stdcall.} - vkCreateFramebuffer*: proc(device: VkDevice, pCreateInfo: ptr VkFramebufferCreateInfo, pAllocator: ptr VkAllocationCallbacks, pFramebuffer: ptr VkFramebuffer): VkResult {.stdcall.} - vkDestroyFramebuffer*: proc(device: VkDevice, framebuffer: VkFramebuffer, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkCreateRenderPass*: proc(device: VkDevice, pCreateInfo: ptr VkRenderPassCreateInfo, pAllocator: ptr VkAllocationCallbacks, pRenderPass: ptr VkRenderPass): VkResult {.stdcall.} - vkDestroyRenderPass*: proc(device: VkDevice, renderPass: VkRenderPass, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkGetRenderAreaGranularity*: proc(device: VkDevice, renderPass: VkRenderPass, pGranularity: ptr VkExtent2D): void {.stdcall.} - vkCreateCommandPool*: proc(device: VkDevice, pCreateInfo: ptr VkCommandPoolCreateInfo, pAllocator: ptr VkAllocationCallbacks, pCommandPool: ptr VkCommandPool): VkResult {.stdcall.} - vkDestroyCommandPool*: proc(device: VkDevice, commandPool: VkCommandPool, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkResetCommandPool*: proc(device: VkDevice, commandPool: VkCommandPool, flags: VkCommandPoolResetFlags): VkResult {.stdcall.} - vkAllocateCommandBuffers*: proc(device: VkDevice, pAllocateInfo: ptr VkCommandBufferAllocateInfo, pCommandBuffers: ptr VkCommandBuffer): VkResult {.stdcall.} - vkFreeCommandBuffers*: proc(device: VkDevice, commandPool: VkCommandPool, commandBufferCount: uint32, pCommandBuffers: ptr VkCommandBuffer): void {.stdcall.} - vkBeginCommandBuffer*: proc(commandBuffer: VkCommandBuffer, pBeginInfo: ptr VkCommandBufferBeginInfo): VkResult {.stdcall.} - vkEndCommandBuffer*: proc(commandBuffer: VkCommandBuffer): VkResult {.stdcall.} - vkResetCommandBuffer*: proc(commandBuffer: VkCommandBuffer, flags: VkCommandBufferResetFlags): VkResult {.stdcall.} - vkCmdBindPipeline*: proc(commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, pipeline: VkPipeline): void {.stdcall.} - vkCmdSetViewport*: proc(commandBuffer: VkCommandBuffer, firstViewport: uint32, viewportCount: uint32, pViewports: ptr VkViewport): void {.stdcall.} - vkCmdSetScissor*: proc(commandBuffer: VkCommandBuffer, firstScissor: uint32, scissorCount: uint32, pScissors: ptr VkRect2D): void {.stdcall.} - vkCmdSetLineWidth*: proc(commandBuffer: VkCommandBuffer, lineWidth: float32): void {.stdcall.} - vkCmdSetDepthBias*: proc(commandBuffer: VkCommandBuffer, depthBiasConstantFactor: float32, depthBiasClamp: float32, depthBiasSlopeFactor: float32): void {.stdcall.} - vkCmdSetBlendConstants*: proc(commandBuffer: VkCommandBuffer, blendConstants: array[4, float32]): void {.stdcall.} - vkCmdSetDepthBounds*: proc(commandBuffer: VkCommandBuffer, minDepthBounds: float32, maxDepthBounds: float32): void {.stdcall.} - vkCmdSetStencilCompareMask*: proc(commandBuffer: VkCommandBuffer, faceMask: VkStencilFaceFlags, compareMask: uint32): void {.stdcall.} - vkCmdSetStencilWriteMask*: proc(commandBuffer: VkCommandBuffer, faceMask: VkStencilFaceFlags, writeMask: uint32): void {.stdcall.} - vkCmdSetStencilReference*: proc(commandBuffer: VkCommandBuffer, faceMask: VkStencilFaceFlags, reference: uint32): void {.stdcall.} - vkCmdBindDescriptorSets*: proc(commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, layout: VkPipelineLayout, firstSet: uint32, descriptorSetCount: uint32, pDescriptorSets: ptr VkDescriptorSet, dynamicOffsetCount: uint32, pDynamicOffsets: ptr uint32): void {.stdcall.} - vkCmdBindIndexBuffer*: proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, indexType: VkIndexType): void {.stdcall.} - vkCmdBindVertexBuffers*: proc(commandBuffer: VkCommandBuffer, firstBinding: uint32, bindingCount: uint32, pBuffers: ptr VkBuffer, pOffsets: ptr VkDeviceSize): void {.stdcall.} - vkCmdDraw*: proc(commandBuffer: VkCommandBuffer, vertexCount: uint32, instanceCount: uint32, firstVertex: uint32, firstInstance: uint32): void {.stdcall.} - vkCmdDrawIndexed*: proc(commandBuffer: VkCommandBuffer, indexCount: uint32, instanceCount: uint32, firstIndex: uint32, vertexOffset: int32, firstInstance: uint32): void {.stdcall.} - vkCmdDrawIndirect*: proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, drawCount: uint32, stride: uint32): void {.stdcall.} - vkCmdDrawIndexedIndirect*: proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, drawCount: uint32, stride: uint32): void {.stdcall.} - vkCmdDispatch*: proc(commandBuffer: VkCommandBuffer, groupCountX: uint32, groupCountY: uint32, groupCountZ: uint32): void {.stdcall.} - vkCmdDispatchIndirect*: proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize): void {.stdcall.} - vkCmdCopyBuffer*: proc(commandBuffer: VkCommandBuffer, srcBuffer: VkBuffer, dstBuffer: VkBuffer, regionCount: uint32, pRegions: ptr VkBufferCopy): void {.stdcall.} - vkCmdCopyImage*: proc(commandBuffer: VkCommandBuffer, srcImage: VkImage, srcImageLayout: VkImageLayout, dstImage: VkImage, dstImageLayout: VkImageLayout, regionCount: uint32, pRegions: ptr VkImageCopy): void {.stdcall.} - vkCmdBlitImage*: proc(commandBuffer: VkCommandBuffer, srcImage: VkImage, srcImageLayout: VkImageLayout, dstImage: VkImage, dstImageLayout: VkImageLayout, regionCount: uint32, pRegions: ptr VkImageBlit, filter: VkFilter): void {.stdcall.} - vkCmdCopyBufferToImage*: proc(commandBuffer: VkCommandBuffer, srcBuffer: VkBuffer, dstImage: VkImage, dstImageLayout: VkImageLayout, regionCount: uint32, pRegions: ptr VkBufferImageCopy): void {.stdcall.} - vkCmdCopyImageToBuffer*: proc(commandBuffer: VkCommandBuffer, srcImage: VkImage, srcImageLayout: VkImageLayout, dstBuffer: VkBuffer, regionCount: uint32, pRegions: ptr VkBufferImageCopy): void {.stdcall.} - vkCmdUpdateBuffer*: proc(commandBuffer: VkCommandBuffer, dstBuffer: VkBuffer, dstOffset: VkDeviceSize, dataSize: VkDeviceSize, pData: pointer): void {.stdcall.} - vkCmdFillBuffer*: proc(commandBuffer: VkCommandBuffer, dstBuffer: VkBuffer, dstOffset: VkDeviceSize, size: VkDeviceSize, data: uint32): void {.stdcall.} - vkCmdClearColorImage*: proc(commandBuffer: VkCommandBuffer, image: VkImage, imageLayout: VkImageLayout, pColor: ptr VkClearColorValue, rangeCount: uint32, pRanges: ptr VkImageSubresourceRange): void {.stdcall.} - vkCmdClearDepthStencilImage*: proc(commandBuffer: VkCommandBuffer, image: VkImage, imageLayout: VkImageLayout, pDepthStencil: ptr VkClearDepthStencilValue, rangeCount: uint32, pRanges: ptr VkImageSubresourceRange): void {.stdcall.} - vkCmdClearAttachments*: proc(commandBuffer: VkCommandBuffer, attachmentCount: uint32, pAttachments: ptr VkClearAttachment, rectCount: uint32, pRects: ptr VkClearRect): void {.stdcall.} - vkCmdResolveImage*: proc(commandBuffer: VkCommandBuffer, srcImage: VkImage, srcImageLayout: VkImageLayout, dstImage: VkImage, dstImageLayout: VkImageLayout, regionCount: uint32, pRegions: ptr VkImageResolve): void {.stdcall.} - vkCmdSetEvent*: proc(commandBuffer: VkCommandBuffer, event: VkEvent, stageMask: VkPipelineStageFlags): void {.stdcall.} - vkCmdResetEvent*: proc(commandBuffer: VkCommandBuffer, event: VkEvent, stageMask: VkPipelineStageFlags): void {.stdcall.} - vkCmdWaitEvents*: proc(commandBuffer: VkCommandBuffer, eventCount: uint32, pEvents: ptr VkEvent, srcStageMask: VkPipelineStageFlags, dstStageMask: VkPipelineStageFlags, memoryBarrierCount: uint32, pMemoryBarriers: ptr VkMemoryBarrier, bufferMemoryBarrierCount: uint32, pBufferMemoryBarriers: ptr VkBufferMemoryBarrier, imageMemoryBarrierCount: uint32, pImageMemoryBarriers: ptr VkImageMemoryBarrier): void {.stdcall.} - vkCmdPipelineBarrier*: proc(commandBuffer: VkCommandBuffer, srcStageMask: VkPipelineStageFlags, dstStageMask: VkPipelineStageFlags, dependencyFlags: VkDependencyFlags, memoryBarrierCount: uint32, pMemoryBarriers: ptr VkMemoryBarrier, bufferMemoryBarrierCount: uint32, pBufferMemoryBarriers: ptr VkBufferMemoryBarrier, imageMemoryBarrierCount: uint32, pImageMemoryBarriers: ptr VkImageMemoryBarrier): void {.stdcall.} - vkCmdBeginQuery*: proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, query: uint32, flags: VkQueryControlFlags): void {.stdcall.} - vkCmdEndQuery*: proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, query: uint32): void {.stdcall.} - vkCmdResetQueryPool*: proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, firstQuery: uint32, queryCount: uint32): void {.stdcall.} - vkCmdWriteTimestamp*: proc(commandBuffer: VkCommandBuffer, pipelineStage: VkPipelineStageFlagBits, queryPool: VkQueryPool, query: uint32): void {.stdcall.} - vkCmdCopyQueryPoolResults*: proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, firstQuery: uint32, queryCount: uint32, dstBuffer: VkBuffer, dstOffset: VkDeviceSize, stride: VkDeviceSize, flags: VkQueryResultFlags): void {.stdcall.} - vkCmdPushConstants*: proc(commandBuffer: VkCommandBuffer, layout: VkPipelineLayout, stageFlags: VkShaderStageFlags, offset: uint32, size: uint32, pValues: pointer): void {.stdcall.} - vkCmdBeginRenderPass*: proc(commandBuffer: VkCommandBuffer, pRenderPassBegin: ptr VkRenderPassBeginInfo, contents: VkSubpassContents): void {.stdcall.} - vkCmdNextSubpass*: proc(commandBuffer: VkCommandBuffer, contents: VkSubpassContents): void {.stdcall.} - vkCmdEndRenderPass*: proc(commandBuffer: VkCommandBuffer): void {.stdcall.} - vkCmdExecuteCommands*: proc(commandBuffer: VkCommandBuffer, commandBufferCount: uint32, pCommandBuffers: ptr VkCommandBuffer): void {.stdcall.} -proc loadVK_VERSION_1_0*(instance: VkInstance) = - vkDestroyInstance = cast[proc(instance: VkInstance, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyInstance")) - vkEnumeratePhysicalDevices = cast[proc(instance: VkInstance, pPhysicalDeviceCount: ptr uint32, pPhysicalDevices: ptr VkPhysicalDevice): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkEnumeratePhysicalDevices")) - vkGetPhysicalDeviceFeatures = cast[proc(physicalDevice: VkPhysicalDevice, pFeatures: ptr VkPhysicalDeviceFeatures): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceFeatures")) - vkGetPhysicalDeviceFormatProperties = cast[proc(physicalDevice: VkPhysicalDevice, format: VkFormat, pFormatProperties: ptr VkFormatProperties): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceFormatProperties")) - vkGetPhysicalDeviceImageFormatProperties = cast[proc(physicalDevice: VkPhysicalDevice, format: VkFormat, thetype: VkImageType, tiling: VkImageTiling, usage: VkImageUsageFlags, flags: VkImageCreateFlags, pImageFormatProperties: ptr VkImageFormatProperties): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceImageFormatProperties")) - vkGetPhysicalDeviceProperties = cast[proc(physicalDevice: VkPhysicalDevice, pProperties: ptr VkPhysicalDeviceProperties): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceProperties")) - vkGetPhysicalDeviceQueueFamilyProperties = cast[proc(physicalDevice: VkPhysicalDevice, pQueueFamilyPropertyCount: ptr uint32, pQueueFamilyProperties: ptr VkQueueFamilyProperties): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceQueueFamilyProperties")) - vkGetPhysicalDeviceMemoryProperties = cast[proc(physicalDevice: VkPhysicalDevice, pMemoryProperties: ptr VkPhysicalDeviceMemoryProperties): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceMemoryProperties")) - vkGetDeviceProcAddr = cast[proc(device: VkDevice, pName: cstring): PFN_vkVoidFunction {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceProcAddr")) - vkCreateDevice = cast[proc(physicalDevice: VkPhysicalDevice, pCreateInfo: ptr VkDeviceCreateInfo, pAllocator: ptr VkAllocationCallbacks, pDevice: ptr VkDevice): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateDevice")) - vkDestroyDevice = cast[proc(device: VkDevice, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyDevice")) - vkEnumerateDeviceExtensionProperties = cast[proc(physicalDevice: VkPhysicalDevice, pLayerName: cstring, pPropertyCount: ptr uint32, pProperties: ptr VkExtensionProperties): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkEnumerateDeviceExtensionProperties")) - vkEnumerateDeviceLayerProperties = cast[proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32, pProperties: ptr VkLayerProperties): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkEnumerateDeviceLayerProperties")) - vkGetDeviceQueue = cast[proc(device: VkDevice, queueFamilyIndex: uint32, queueIndex: uint32, pQueue: ptr VkQueue): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceQueue")) - vkQueueSubmit = cast[proc(queue: VkQueue, submitCount: uint32, pSubmits: ptr VkSubmitInfo, fence: VkFence): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkQueueSubmit")) - vkQueueWaitIdle = cast[proc(queue: VkQueue): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkQueueWaitIdle")) - vkDeviceWaitIdle = cast[proc(device: VkDevice): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDeviceWaitIdle")) - vkAllocateMemory = cast[proc(device: VkDevice, pAllocateInfo: ptr VkMemoryAllocateInfo, pAllocator: ptr VkAllocationCallbacks, pMemory: ptr VkDeviceMemory): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkAllocateMemory")) - vkFreeMemory = cast[proc(device: VkDevice, memory: VkDeviceMemory, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkFreeMemory")) - vkMapMemory = cast[proc(device: VkDevice, memory: VkDeviceMemory, offset: VkDeviceSize, size: VkDeviceSize, flags: VkMemoryMapFlags, ppData: ptr pointer): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkMapMemory")) - vkUnmapMemory = cast[proc(device: VkDevice, memory: VkDeviceMemory): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkUnmapMemory")) - vkFlushMappedMemoryRanges = cast[proc(device: VkDevice, memoryRangeCount: uint32, pMemoryRanges: ptr VkMappedMemoryRange): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkFlushMappedMemoryRanges")) - vkInvalidateMappedMemoryRanges = cast[proc(device: VkDevice, memoryRangeCount: uint32, pMemoryRanges: ptr VkMappedMemoryRange): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkInvalidateMappedMemoryRanges")) - vkGetDeviceMemoryCommitment = cast[proc(device: VkDevice, memory: VkDeviceMemory, pCommittedMemoryInBytes: ptr VkDeviceSize): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceMemoryCommitment")) - vkBindBufferMemory = cast[proc(device: VkDevice, buffer: VkBuffer, memory: VkDeviceMemory, memoryOffset: VkDeviceSize): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkBindBufferMemory")) - vkBindImageMemory = cast[proc(device: VkDevice, image: VkImage, memory: VkDeviceMemory, memoryOffset: VkDeviceSize): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkBindImageMemory")) - vkGetBufferMemoryRequirements = cast[proc(device: VkDevice, buffer: VkBuffer, pMemoryRequirements: ptr VkMemoryRequirements): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetBufferMemoryRequirements")) - vkGetImageMemoryRequirements = cast[proc(device: VkDevice, image: VkImage, pMemoryRequirements: ptr VkMemoryRequirements): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetImageMemoryRequirements")) - vkGetImageSparseMemoryRequirements = cast[proc(device: VkDevice, image: VkImage, pSparseMemoryRequirementCount: ptr uint32, pSparseMemoryRequirements: ptr VkSparseImageMemoryRequirements): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetImageSparseMemoryRequirements")) - vkGetPhysicalDeviceSparseImageFormatProperties = cast[proc(physicalDevice: VkPhysicalDevice, format: VkFormat, thetype: VkImageType, samples: VkSampleCountFlagBits, usage: VkImageUsageFlags, tiling: VkImageTiling, pPropertyCount: ptr uint32, pProperties: ptr VkSparseImageFormatProperties): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSparseImageFormatProperties")) - vkQueueBindSparse = cast[proc(queue: VkQueue, bindInfoCount: uint32, pBindInfo: ptr VkBindSparseInfo, fence: VkFence): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkQueueBindSparse")) - vkCreateFence = cast[proc(device: VkDevice, pCreateInfo: ptr VkFenceCreateInfo, pAllocator: ptr VkAllocationCallbacks, pFence: ptr VkFence): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateFence")) - vkDestroyFence = cast[proc(device: VkDevice, fence: VkFence, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyFence")) - vkResetFences = cast[proc(device: VkDevice, fenceCount: uint32, pFences: ptr VkFence): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkResetFences")) - vkGetFenceStatus = cast[proc(device: VkDevice, fence: VkFence): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetFenceStatus")) - vkWaitForFences = cast[proc(device: VkDevice, fenceCount: uint32, pFences: ptr VkFence, waitAll: VkBool32, timeout: uint64): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkWaitForFences")) - vkCreateSemaphore = cast[proc(device: VkDevice, pCreateInfo: ptr VkSemaphoreCreateInfo, pAllocator: ptr VkAllocationCallbacks, pSemaphore: ptr VkSemaphore): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateSemaphore")) - vkDestroySemaphore = cast[proc(device: VkDevice, semaphore: VkSemaphore, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroySemaphore")) - vkCreateEvent = cast[proc(device: VkDevice, pCreateInfo: ptr VkEventCreateInfo, pAllocator: ptr VkAllocationCallbacks, pEvent: ptr VkEvent): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateEvent")) - vkDestroyEvent = cast[proc(device: VkDevice, event: VkEvent, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyEvent")) - vkGetEventStatus = cast[proc(device: VkDevice, event: VkEvent): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetEventStatus")) - vkSetEvent = cast[proc(device: VkDevice, event: VkEvent): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkSetEvent")) - vkResetEvent = cast[proc(device: VkDevice, event: VkEvent): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkResetEvent")) - vkCreateQueryPool = cast[proc(device: VkDevice, pCreateInfo: ptr VkQueryPoolCreateInfo, pAllocator: ptr VkAllocationCallbacks, pQueryPool: ptr VkQueryPool): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateQueryPool")) - vkDestroyQueryPool = cast[proc(device: VkDevice, queryPool: VkQueryPool, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyQueryPool")) - vkGetQueryPoolResults = cast[proc(device: VkDevice, queryPool: VkQueryPool, firstQuery: uint32, queryCount: uint32, dataSize: csize_t, pData: pointer, stride: VkDeviceSize, flags: VkQueryResultFlags): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetQueryPoolResults")) - vkCreateBuffer = cast[proc(device: VkDevice, pCreateInfo: ptr VkBufferCreateInfo, pAllocator: ptr VkAllocationCallbacks, pBuffer: ptr VkBuffer): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateBuffer")) - vkDestroyBuffer = cast[proc(device: VkDevice, buffer: VkBuffer, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyBuffer")) - vkCreateBufferView = cast[proc(device: VkDevice, pCreateInfo: ptr VkBufferViewCreateInfo, pAllocator: ptr VkAllocationCallbacks, pView: ptr VkBufferView): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateBufferView")) - vkDestroyBufferView = cast[proc(device: VkDevice, bufferView: VkBufferView, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyBufferView")) - vkCreateImage = cast[proc(device: VkDevice, pCreateInfo: ptr VkImageCreateInfo, pAllocator: ptr VkAllocationCallbacks, pImage: ptr VkImage): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateImage")) - vkDestroyImage = cast[proc(device: VkDevice, image: VkImage, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyImage")) - vkGetImageSubresourceLayout = cast[proc(device: VkDevice, image: VkImage, pSubresource: ptr VkImageSubresource, pLayout: ptr VkSubresourceLayout): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetImageSubresourceLayout")) - vkCreateImageView = cast[proc(device: VkDevice, pCreateInfo: ptr VkImageViewCreateInfo, pAllocator: ptr VkAllocationCallbacks, pView: ptr VkImageView): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateImageView")) - vkDestroyImageView = cast[proc(device: VkDevice, imageView: VkImageView, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyImageView")) - vkCreateShaderModule = cast[proc(device: VkDevice, pCreateInfo: ptr VkShaderModuleCreateInfo, pAllocator: ptr VkAllocationCallbacks, pShaderModule: ptr VkShaderModule): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateShaderModule")) - vkDestroyShaderModule = cast[proc(device: VkDevice, shaderModule: VkShaderModule, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyShaderModule")) - vkCreatePipelineCache = cast[proc(device: VkDevice, pCreateInfo: ptr VkPipelineCacheCreateInfo, pAllocator: ptr VkAllocationCallbacks, pPipelineCache: ptr VkPipelineCache): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreatePipelineCache")) - vkDestroyPipelineCache = cast[proc(device: VkDevice, pipelineCache: VkPipelineCache, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyPipelineCache")) - vkGetPipelineCacheData = cast[proc(device: VkDevice, pipelineCache: VkPipelineCache, pDataSize: ptr csize_t, pData: pointer): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPipelineCacheData")) - vkMergePipelineCaches = cast[proc(device: VkDevice, dstCache: VkPipelineCache, srcCacheCount: uint32, pSrcCaches: ptr VkPipelineCache): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkMergePipelineCaches")) - vkCreateGraphicsPipelines = cast[proc(device: VkDevice, pipelineCache: VkPipelineCache, createInfoCount: uint32, pCreateInfos: ptr VkGraphicsPipelineCreateInfo, pAllocator: ptr VkAllocationCallbacks, pPipelines: ptr VkPipeline): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateGraphicsPipelines")) - vkCreateComputePipelines = cast[proc(device: VkDevice, pipelineCache: VkPipelineCache, createInfoCount: uint32, pCreateInfos: ptr VkComputePipelineCreateInfo, pAllocator: ptr VkAllocationCallbacks, pPipelines: ptr VkPipeline): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateComputePipelines")) - vkDestroyPipeline = cast[proc(device: VkDevice, pipeline: VkPipeline, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyPipeline")) - vkCreatePipelineLayout = cast[proc(device: VkDevice, pCreateInfo: ptr VkPipelineLayoutCreateInfo, pAllocator: ptr VkAllocationCallbacks, pPipelineLayout: ptr VkPipelineLayout): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreatePipelineLayout")) - vkDestroyPipelineLayout = cast[proc(device: VkDevice, pipelineLayout: VkPipelineLayout, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyPipelineLayout")) - vkCreateSampler = cast[proc(device: VkDevice, pCreateInfo: ptr VkSamplerCreateInfo, pAllocator: ptr VkAllocationCallbacks, pSampler: ptr VkSampler): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateSampler")) - vkDestroySampler = cast[proc(device: VkDevice, sampler: VkSampler, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroySampler")) - vkCreateDescriptorSetLayout = cast[proc(device: VkDevice, pCreateInfo: ptr VkDescriptorSetLayoutCreateInfo, pAllocator: ptr VkAllocationCallbacks, pSetLayout: ptr VkDescriptorSetLayout): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateDescriptorSetLayout")) - vkDestroyDescriptorSetLayout = cast[proc(device: VkDevice, descriptorSetLayout: VkDescriptorSetLayout, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyDescriptorSetLayout")) - vkCreateDescriptorPool = cast[proc(device: VkDevice, pCreateInfo: ptr VkDescriptorPoolCreateInfo, pAllocator: ptr VkAllocationCallbacks, pDescriptorPool: ptr VkDescriptorPool): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateDescriptorPool")) - vkDestroyDescriptorPool = cast[proc(device: VkDevice, descriptorPool: VkDescriptorPool, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyDescriptorPool")) - vkResetDescriptorPool = cast[proc(device: VkDevice, descriptorPool: VkDescriptorPool, flags: VkDescriptorPoolResetFlags): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkResetDescriptorPool")) - vkAllocateDescriptorSets = cast[proc(device: VkDevice, pAllocateInfo: ptr VkDescriptorSetAllocateInfo, pDescriptorSets: ptr VkDescriptorSet): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkAllocateDescriptorSets")) - vkFreeDescriptorSets = cast[proc(device: VkDevice, descriptorPool: VkDescriptorPool, descriptorSetCount: uint32, pDescriptorSets: ptr VkDescriptorSet): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkFreeDescriptorSets")) - vkUpdateDescriptorSets = cast[proc(device: VkDevice, descriptorWriteCount: uint32, pDescriptorWrites: ptr VkWriteDescriptorSet, descriptorCopyCount: uint32, pDescriptorCopies: ptr VkCopyDescriptorSet): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkUpdateDescriptorSets")) - vkCreateFramebuffer = cast[proc(device: VkDevice, pCreateInfo: ptr VkFramebufferCreateInfo, pAllocator: ptr VkAllocationCallbacks, pFramebuffer: ptr VkFramebuffer): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateFramebuffer")) - vkDestroyFramebuffer = cast[proc(device: VkDevice, framebuffer: VkFramebuffer, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyFramebuffer")) - vkCreateRenderPass = cast[proc(device: VkDevice, pCreateInfo: ptr VkRenderPassCreateInfo, pAllocator: ptr VkAllocationCallbacks, pRenderPass: ptr VkRenderPass): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateRenderPass")) - vkDestroyRenderPass = cast[proc(device: VkDevice, renderPass: VkRenderPass, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyRenderPass")) - vkGetRenderAreaGranularity = cast[proc(device: VkDevice, renderPass: VkRenderPass, pGranularity: ptr VkExtent2D): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetRenderAreaGranularity")) - vkCreateCommandPool = cast[proc(device: VkDevice, pCreateInfo: ptr VkCommandPoolCreateInfo, pAllocator: ptr VkAllocationCallbacks, pCommandPool: ptr VkCommandPool): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateCommandPool")) - vkDestroyCommandPool = cast[proc(device: VkDevice, commandPool: VkCommandPool, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyCommandPool")) - vkResetCommandPool = cast[proc(device: VkDevice, commandPool: VkCommandPool, flags: VkCommandPoolResetFlags): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkResetCommandPool")) - vkAllocateCommandBuffers = cast[proc(device: VkDevice, pAllocateInfo: ptr VkCommandBufferAllocateInfo, pCommandBuffers: ptr VkCommandBuffer): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkAllocateCommandBuffers")) - vkFreeCommandBuffers = cast[proc(device: VkDevice, commandPool: VkCommandPool, commandBufferCount: uint32, pCommandBuffers: ptr VkCommandBuffer): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkFreeCommandBuffers")) - vkBeginCommandBuffer = cast[proc(commandBuffer: VkCommandBuffer, pBeginInfo: ptr VkCommandBufferBeginInfo): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkBeginCommandBuffer")) - vkEndCommandBuffer = cast[proc(commandBuffer: VkCommandBuffer): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkEndCommandBuffer")) - vkResetCommandBuffer = cast[proc(commandBuffer: VkCommandBuffer, flags: VkCommandBufferResetFlags): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkResetCommandBuffer")) - vkCmdBindPipeline = cast[proc(commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, pipeline: VkPipeline): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBindPipeline")) - vkCmdSetViewport = cast[proc(commandBuffer: VkCommandBuffer, firstViewport: uint32, viewportCount: uint32, pViewports: ptr VkViewport): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetViewport")) - vkCmdSetScissor = cast[proc(commandBuffer: VkCommandBuffer, firstScissor: uint32, scissorCount: uint32, pScissors: ptr VkRect2D): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetScissor")) - vkCmdSetLineWidth = cast[proc(commandBuffer: VkCommandBuffer, lineWidth: float32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetLineWidth")) - vkCmdSetDepthBias = cast[proc(commandBuffer: VkCommandBuffer, depthBiasConstantFactor: float32, depthBiasClamp: float32, depthBiasSlopeFactor: float32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDepthBias")) - vkCmdSetBlendConstants = cast[proc(commandBuffer: VkCommandBuffer, blendConstants: array[4, float32]): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetBlendConstants")) - vkCmdSetDepthBounds = cast[proc(commandBuffer: VkCommandBuffer, minDepthBounds: float32, maxDepthBounds: float32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDepthBounds")) - vkCmdSetStencilCompareMask = cast[proc(commandBuffer: VkCommandBuffer, faceMask: VkStencilFaceFlags, compareMask: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetStencilCompareMask")) - vkCmdSetStencilWriteMask = cast[proc(commandBuffer: VkCommandBuffer, faceMask: VkStencilFaceFlags, writeMask: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetStencilWriteMask")) - vkCmdSetStencilReference = cast[proc(commandBuffer: VkCommandBuffer, faceMask: VkStencilFaceFlags, reference: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetStencilReference")) - vkCmdBindDescriptorSets = cast[proc(commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, layout: VkPipelineLayout, firstSet: uint32, descriptorSetCount: uint32, pDescriptorSets: ptr VkDescriptorSet, dynamicOffsetCount: uint32, pDynamicOffsets: ptr uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBindDescriptorSets")) - vkCmdBindIndexBuffer = cast[proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, indexType: VkIndexType): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBindIndexBuffer")) - vkCmdBindVertexBuffers = cast[proc(commandBuffer: VkCommandBuffer, firstBinding: uint32, bindingCount: uint32, pBuffers: ptr VkBuffer, pOffsets: ptr VkDeviceSize): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBindVertexBuffers")) - vkCmdDraw = cast[proc(commandBuffer: VkCommandBuffer, vertexCount: uint32, instanceCount: uint32, firstVertex: uint32, firstInstance: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDraw")) - vkCmdDrawIndexed = cast[proc(commandBuffer: VkCommandBuffer, indexCount: uint32, instanceCount: uint32, firstIndex: uint32, vertexOffset: int32, firstInstance: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawIndexed")) - vkCmdDrawIndirect = cast[proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, drawCount: uint32, stride: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawIndirect")) - vkCmdDrawIndexedIndirect = cast[proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, drawCount: uint32, stride: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawIndexedIndirect")) - vkCmdDispatch = cast[proc(commandBuffer: VkCommandBuffer, groupCountX: uint32, groupCountY: uint32, groupCountZ: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDispatch")) - vkCmdDispatchIndirect = cast[proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDispatchIndirect")) - vkCmdCopyBuffer = cast[proc(commandBuffer: VkCommandBuffer, srcBuffer: VkBuffer, dstBuffer: VkBuffer, regionCount: uint32, pRegions: ptr VkBufferCopy): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyBuffer")) - vkCmdCopyImage = cast[proc(commandBuffer: VkCommandBuffer, srcImage: VkImage, srcImageLayout: VkImageLayout, dstImage: VkImage, dstImageLayout: VkImageLayout, regionCount: uint32, pRegions: ptr VkImageCopy): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyImage")) - vkCmdBlitImage = cast[proc(commandBuffer: VkCommandBuffer, srcImage: VkImage, srcImageLayout: VkImageLayout, dstImage: VkImage, dstImageLayout: VkImageLayout, regionCount: uint32, pRegions: ptr VkImageBlit, filter: VkFilter): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBlitImage")) - vkCmdCopyBufferToImage = cast[proc(commandBuffer: VkCommandBuffer, srcBuffer: VkBuffer, dstImage: VkImage, dstImageLayout: VkImageLayout, regionCount: uint32, pRegions: ptr VkBufferImageCopy): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyBufferToImage")) - vkCmdCopyImageToBuffer = cast[proc(commandBuffer: VkCommandBuffer, srcImage: VkImage, srcImageLayout: VkImageLayout, dstBuffer: VkBuffer, regionCount: uint32, pRegions: ptr VkBufferImageCopy): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyImageToBuffer")) - vkCmdUpdateBuffer = cast[proc(commandBuffer: VkCommandBuffer, dstBuffer: VkBuffer, dstOffset: VkDeviceSize, dataSize: VkDeviceSize, pData: pointer): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdUpdateBuffer")) - vkCmdFillBuffer = cast[proc(commandBuffer: VkCommandBuffer, dstBuffer: VkBuffer, dstOffset: VkDeviceSize, size: VkDeviceSize, data: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdFillBuffer")) - vkCmdClearColorImage = cast[proc(commandBuffer: VkCommandBuffer, image: VkImage, imageLayout: VkImageLayout, pColor: ptr VkClearColorValue, rangeCount: uint32, pRanges: ptr VkImageSubresourceRange): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdClearColorImage")) - vkCmdClearDepthStencilImage = cast[proc(commandBuffer: VkCommandBuffer, image: VkImage, imageLayout: VkImageLayout, pDepthStencil: ptr VkClearDepthStencilValue, rangeCount: uint32, pRanges: ptr VkImageSubresourceRange): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdClearDepthStencilImage")) - vkCmdClearAttachments = cast[proc(commandBuffer: VkCommandBuffer, attachmentCount: uint32, pAttachments: ptr VkClearAttachment, rectCount: uint32, pRects: ptr VkClearRect): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdClearAttachments")) - vkCmdResolveImage = cast[proc(commandBuffer: VkCommandBuffer, srcImage: VkImage, srcImageLayout: VkImageLayout, dstImage: VkImage, dstImageLayout: VkImageLayout, regionCount: uint32, pRegions: ptr VkImageResolve): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdResolveImage")) - vkCmdSetEvent = cast[proc(commandBuffer: VkCommandBuffer, event: VkEvent, stageMask: VkPipelineStageFlags): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetEvent")) - vkCmdResetEvent = cast[proc(commandBuffer: VkCommandBuffer, event: VkEvent, stageMask: VkPipelineStageFlags): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdResetEvent")) - vkCmdWaitEvents = cast[proc(commandBuffer: VkCommandBuffer, eventCount: uint32, pEvents: ptr VkEvent, srcStageMask: VkPipelineStageFlags, dstStageMask: VkPipelineStageFlags, memoryBarrierCount: uint32, pMemoryBarriers: ptr VkMemoryBarrier, bufferMemoryBarrierCount: uint32, pBufferMemoryBarriers: ptr VkBufferMemoryBarrier, imageMemoryBarrierCount: uint32, pImageMemoryBarriers: ptr VkImageMemoryBarrier): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdWaitEvents")) - vkCmdPipelineBarrier = cast[proc(commandBuffer: VkCommandBuffer, srcStageMask: VkPipelineStageFlags, dstStageMask: VkPipelineStageFlags, dependencyFlags: VkDependencyFlags, memoryBarrierCount: uint32, pMemoryBarriers: ptr VkMemoryBarrier, bufferMemoryBarrierCount: uint32, pBufferMemoryBarriers: ptr VkBufferMemoryBarrier, imageMemoryBarrierCount: uint32, pImageMemoryBarriers: ptr VkImageMemoryBarrier): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdPipelineBarrier")) - vkCmdBeginQuery = cast[proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, query: uint32, flags: VkQueryControlFlags): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBeginQuery")) - vkCmdEndQuery = cast[proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, query: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdEndQuery")) - vkCmdResetQueryPool = cast[proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, firstQuery: uint32, queryCount: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdResetQueryPool")) - vkCmdWriteTimestamp = cast[proc(commandBuffer: VkCommandBuffer, pipelineStage: VkPipelineStageFlagBits, queryPool: VkQueryPool, query: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdWriteTimestamp")) - vkCmdCopyQueryPoolResults = cast[proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, firstQuery: uint32, queryCount: uint32, dstBuffer: VkBuffer, dstOffset: VkDeviceSize, stride: VkDeviceSize, flags: VkQueryResultFlags): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyQueryPoolResults")) - vkCmdPushConstants = cast[proc(commandBuffer: VkCommandBuffer, layout: VkPipelineLayout, stageFlags: VkShaderStageFlags, offset: uint32, size: uint32, pValues: pointer): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdPushConstants")) - vkCmdBeginRenderPass = cast[proc(commandBuffer: VkCommandBuffer, pRenderPassBegin: ptr VkRenderPassBeginInfo, contents: VkSubpassContents): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBeginRenderPass")) - vkCmdNextSubpass = cast[proc(commandBuffer: VkCommandBuffer, contents: VkSubpassContents): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdNextSubpass")) - vkCmdEndRenderPass = cast[proc(commandBuffer: VkCommandBuffer): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdEndRenderPass")) - vkCmdExecuteCommands = cast[proc(commandBuffer: VkCommandBuffer, commandBufferCount: uint32, pCommandBuffers: ptr VkCommandBuffer): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdExecuteCommands")) - -# feature VK_VERSION_1_1 -var - vkEnumerateInstanceVersion*: proc(pApiVersion: ptr uint32): VkResult {.stdcall.} - vkBindBufferMemory2*: proc(device: VkDevice, bindInfoCount: uint32, pBindInfos: ptr VkBindBufferMemoryInfo): VkResult {.stdcall.} - vkBindImageMemory2*: proc(device: VkDevice, bindInfoCount: uint32, pBindInfos: ptr VkBindImageMemoryInfo): VkResult {.stdcall.} - vkGetDeviceGroupPeerMemoryFeatures*: proc(device: VkDevice, heapIndex: uint32, localDeviceIndex: uint32, remoteDeviceIndex: uint32, pPeerMemoryFeatures: ptr VkPeerMemoryFeatureFlags): void {.stdcall.} - vkCmdSetDeviceMask*: proc(commandBuffer: VkCommandBuffer, deviceMask: uint32): void {.stdcall.} - vkCmdDispatchBase*: proc(commandBuffer: VkCommandBuffer, baseGroupX: uint32, baseGroupY: uint32, baseGroupZ: uint32, groupCountX: uint32, groupCountY: uint32, groupCountZ: uint32): void {.stdcall.} - vkEnumeratePhysicalDeviceGroups*: proc(instance: VkInstance, pPhysicalDeviceGroupCount: ptr uint32, pPhysicalDeviceGroupProperties: ptr VkPhysicalDeviceGroupProperties): VkResult {.stdcall.} - vkGetImageMemoryRequirements2*: proc(device: VkDevice, pInfo: ptr VkImageMemoryRequirementsInfo2, pMemoryRequirements: ptr VkMemoryRequirements2): void {.stdcall.} - vkGetBufferMemoryRequirements2*: proc(device: VkDevice, pInfo: ptr VkBufferMemoryRequirementsInfo2, pMemoryRequirements: ptr VkMemoryRequirements2): void {.stdcall.} - vkGetImageSparseMemoryRequirements2*: proc(device: VkDevice, pInfo: ptr VkImageSparseMemoryRequirementsInfo2, pSparseMemoryRequirementCount: ptr uint32, pSparseMemoryRequirements: ptr VkSparseImageMemoryRequirements2): void {.stdcall.} - vkGetPhysicalDeviceFeatures2*: proc(physicalDevice: VkPhysicalDevice, pFeatures: ptr VkPhysicalDeviceFeatures2): void {.stdcall.} - vkGetPhysicalDeviceProperties2*: proc(physicalDevice: VkPhysicalDevice, pProperties: ptr VkPhysicalDeviceProperties2): void {.stdcall.} - vkGetPhysicalDeviceFormatProperties2*: proc(physicalDevice: VkPhysicalDevice, format: VkFormat, pFormatProperties: ptr VkFormatProperties2): void {.stdcall.} - vkGetPhysicalDeviceImageFormatProperties2*: proc(physicalDevice: VkPhysicalDevice, pImageFormatInfo: ptr VkPhysicalDeviceImageFormatInfo2, pImageFormatProperties: ptr VkImageFormatProperties2): VkResult {.stdcall.} - vkGetPhysicalDeviceQueueFamilyProperties2*: proc(physicalDevice: VkPhysicalDevice, pQueueFamilyPropertyCount: ptr uint32, pQueueFamilyProperties: ptr VkQueueFamilyProperties2): void {.stdcall.} - vkGetPhysicalDeviceMemoryProperties2*: proc(physicalDevice: VkPhysicalDevice, pMemoryProperties: ptr VkPhysicalDeviceMemoryProperties2): void {.stdcall.} - vkGetPhysicalDeviceSparseImageFormatProperties2*: proc(physicalDevice: VkPhysicalDevice, pFormatInfo: ptr VkPhysicalDeviceSparseImageFormatInfo2, pPropertyCount: ptr uint32, pProperties: ptr VkSparseImageFormatProperties2): void {.stdcall.} - vkTrimCommandPool*: proc(device: VkDevice, commandPool: VkCommandPool, flags: VkCommandPoolTrimFlags): void {.stdcall.} - vkGetDeviceQueue2*: proc(device: VkDevice, pQueueInfo: ptr VkDeviceQueueInfo2, pQueue: ptr VkQueue): void {.stdcall.} - vkCreateSamplerYcbcrConversion*: proc(device: VkDevice, pCreateInfo: ptr VkSamplerYcbcrConversionCreateInfo, pAllocator: ptr VkAllocationCallbacks, pYcbcrConversion: ptr VkSamplerYcbcrConversion): VkResult {.stdcall.} - vkDestroySamplerYcbcrConversion*: proc(device: VkDevice, ycbcrConversion: VkSamplerYcbcrConversion, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkCreateDescriptorUpdateTemplate*: proc(device: VkDevice, pCreateInfo: ptr VkDescriptorUpdateTemplateCreateInfo, pAllocator: ptr VkAllocationCallbacks, pDescriptorUpdateTemplate: ptr VkDescriptorUpdateTemplate): VkResult {.stdcall.} - vkDestroyDescriptorUpdateTemplate*: proc(device: VkDevice, descriptorUpdateTemplate: VkDescriptorUpdateTemplate, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkUpdateDescriptorSetWithTemplate*: proc(device: VkDevice, descriptorSet: VkDescriptorSet, descriptorUpdateTemplate: VkDescriptorUpdateTemplate, pData: pointer): void {.stdcall.} - vkGetPhysicalDeviceExternalBufferProperties*: proc(physicalDevice: VkPhysicalDevice, pExternalBufferInfo: ptr VkPhysicalDeviceExternalBufferInfo, pExternalBufferProperties: ptr VkExternalBufferProperties): void {.stdcall.} - vkGetPhysicalDeviceExternalFenceProperties*: proc(physicalDevice: VkPhysicalDevice, pExternalFenceInfo: ptr VkPhysicalDeviceExternalFenceInfo, pExternalFenceProperties: ptr VkExternalFenceProperties): void {.stdcall.} - vkGetPhysicalDeviceExternalSemaphoreProperties*: proc(physicalDevice: VkPhysicalDevice, pExternalSemaphoreInfo: ptr VkPhysicalDeviceExternalSemaphoreInfo, pExternalSemaphoreProperties: ptr VkExternalSemaphoreProperties): void {.stdcall.} - vkGetDescriptorSetLayoutSupport*: proc(device: VkDevice, pCreateInfo: ptr VkDescriptorSetLayoutCreateInfo, pSupport: ptr VkDescriptorSetLayoutSupport): void {.stdcall.} -proc loadVK_VERSION_1_1*(instance: VkInstance) = - vkBindBufferMemory2 = cast[proc(device: VkDevice, bindInfoCount: uint32, pBindInfos: ptr VkBindBufferMemoryInfo): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkBindBufferMemory2")) - vkBindImageMemory2 = cast[proc(device: VkDevice, bindInfoCount: uint32, pBindInfos: ptr VkBindImageMemoryInfo): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkBindImageMemory2")) - vkGetDeviceGroupPeerMemoryFeatures = cast[proc(device: VkDevice, heapIndex: uint32, localDeviceIndex: uint32, remoteDeviceIndex: uint32, pPeerMemoryFeatures: ptr VkPeerMemoryFeatureFlags): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceGroupPeerMemoryFeatures")) - vkCmdSetDeviceMask = cast[proc(commandBuffer: VkCommandBuffer, deviceMask: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDeviceMask")) - vkCmdDispatchBase = cast[proc(commandBuffer: VkCommandBuffer, baseGroupX: uint32, baseGroupY: uint32, baseGroupZ: uint32, groupCountX: uint32, groupCountY: uint32, groupCountZ: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDispatchBase")) - vkEnumeratePhysicalDeviceGroups = cast[proc(instance: VkInstance, pPhysicalDeviceGroupCount: ptr uint32, pPhysicalDeviceGroupProperties: ptr VkPhysicalDeviceGroupProperties): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkEnumeratePhysicalDeviceGroups")) - vkGetImageMemoryRequirements2 = cast[proc(device: VkDevice, pInfo: ptr VkImageMemoryRequirementsInfo2, pMemoryRequirements: ptr VkMemoryRequirements2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetImageMemoryRequirements2")) - vkGetBufferMemoryRequirements2 = cast[proc(device: VkDevice, pInfo: ptr VkBufferMemoryRequirementsInfo2, pMemoryRequirements: ptr VkMemoryRequirements2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetBufferMemoryRequirements2")) - vkGetImageSparseMemoryRequirements2 = cast[proc(device: VkDevice, pInfo: ptr VkImageSparseMemoryRequirementsInfo2, pSparseMemoryRequirementCount: ptr uint32, pSparseMemoryRequirements: ptr VkSparseImageMemoryRequirements2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetImageSparseMemoryRequirements2")) - vkGetPhysicalDeviceFeatures2 = cast[proc(physicalDevice: VkPhysicalDevice, pFeatures: ptr VkPhysicalDeviceFeatures2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceFeatures2")) - vkGetPhysicalDeviceProperties2 = cast[proc(physicalDevice: VkPhysicalDevice, pProperties: ptr VkPhysicalDeviceProperties2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceProperties2")) - vkGetPhysicalDeviceFormatProperties2 = cast[proc(physicalDevice: VkPhysicalDevice, format: VkFormat, pFormatProperties: ptr VkFormatProperties2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceFormatProperties2")) - vkGetPhysicalDeviceImageFormatProperties2 = cast[proc(physicalDevice: VkPhysicalDevice, pImageFormatInfo: ptr VkPhysicalDeviceImageFormatInfo2, pImageFormatProperties: ptr VkImageFormatProperties2): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceImageFormatProperties2")) - vkGetPhysicalDeviceQueueFamilyProperties2 = cast[proc(physicalDevice: VkPhysicalDevice, pQueueFamilyPropertyCount: ptr uint32, pQueueFamilyProperties: ptr VkQueueFamilyProperties2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceQueueFamilyProperties2")) - vkGetPhysicalDeviceMemoryProperties2 = cast[proc(physicalDevice: VkPhysicalDevice, pMemoryProperties: ptr VkPhysicalDeviceMemoryProperties2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceMemoryProperties2")) - vkGetPhysicalDeviceSparseImageFormatProperties2 = cast[proc(physicalDevice: VkPhysicalDevice, pFormatInfo: ptr VkPhysicalDeviceSparseImageFormatInfo2, pPropertyCount: ptr uint32, pProperties: ptr VkSparseImageFormatProperties2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSparseImageFormatProperties2")) - vkTrimCommandPool = cast[proc(device: VkDevice, commandPool: VkCommandPool, flags: VkCommandPoolTrimFlags): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkTrimCommandPool")) - vkGetDeviceQueue2 = cast[proc(device: VkDevice, pQueueInfo: ptr VkDeviceQueueInfo2, pQueue: ptr VkQueue): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceQueue2")) - vkCreateSamplerYcbcrConversion = cast[proc(device: VkDevice, pCreateInfo: ptr VkSamplerYcbcrConversionCreateInfo, pAllocator: ptr VkAllocationCallbacks, pYcbcrConversion: ptr VkSamplerYcbcrConversion): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateSamplerYcbcrConversion")) - vkDestroySamplerYcbcrConversion = cast[proc(device: VkDevice, ycbcrConversion: VkSamplerYcbcrConversion, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroySamplerYcbcrConversion")) - vkCreateDescriptorUpdateTemplate = cast[proc(device: VkDevice, pCreateInfo: ptr VkDescriptorUpdateTemplateCreateInfo, pAllocator: ptr VkAllocationCallbacks, pDescriptorUpdateTemplate: ptr VkDescriptorUpdateTemplate): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateDescriptorUpdateTemplate")) - vkDestroyDescriptorUpdateTemplate = cast[proc(device: VkDevice, descriptorUpdateTemplate: VkDescriptorUpdateTemplate, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyDescriptorUpdateTemplate")) - vkUpdateDescriptorSetWithTemplate = cast[proc(device: VkDevice, descriptorSet: VkDescriptorSet, descriptorUpdateTemplate: VkDescriptorUpdateTemplate, pData: pointer): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkUpdateDescriptorSetWithTemplate")) - vkGetPhysicalDeviceExternalBufferProperties = cast[proc(physicalDevice: VkPhysicalDevice, pExternalBufferInfo: ptr VkPhysicalDeviceExternalBufferInfo, pExternalBufferProperties: ptr VkExternalBufferProperties): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceExternalBufferProperties")) - vkGetPhysicalDeviceExternalFenceProperties = cast[proc(physicalDevice: VkPhysicalDevice, pExternalFenceInfo: ptr VkPhysicalDeviceExternalFenceInfo, pExternalFenceProperties: ptr VkExternalFenceProperties): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceExternalFenceProperties")) - vkGetPhysicalDeviceExternalSemaphoreProperties = cast[proc(physicalDevice: VkPhysicalDevice, pExternalSemaphoreInfo: ptr VkPhysicalDeviceExternalSemaphoreInfo, pExternalSemaphoreProperties: ptr VkExternalSemaphoreProperties): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceExternalSemaphoreProperties")) - vkGetDescriptorSetLayoutSupport = cast[proc(device: VkDevice, pCreateInfo: ptr VkDescriptorSetLayoutCreateInfo, pSupport: ptr VkDescriptorSetLayoutSupport): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDescriptorSetLayoutSupport")) - -# feature VK_VERSION_1_2 -var - vkCmdDrawIndirectCount*: proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, countBuffer: VkBuffer, countBufferOffset: VkDeviceSize, maxDrawCount: uint32, stride: uint32): void {.stdcall.} - vkCmdDrawIndexedIndirectCount*: proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, countBuffer: VkBuffer, countBufferOffset: VkDeviceSize, maxDrawCount: uint32, stride: uint32): void {.stdcall.} - vkCreateRenderPass2*: proc(device: VkDevice, pCreateInfo: ptr VkRenderPassCreateInfo2, pAllocator: ptr VkAllocationCallbacks, pRenderPass: ptr VkRenderPass): VkResult {.stdcall.} - vkCmdBeginRenderPass2*: proc(commandBuffer: VkCommandBuffer, pRenderPassBegin: ptr VkRenderPassBeginInfo, pSubpassBeginInfo: ptr VkSubpassBeginInfo): void {.stdcall.} - vkCmdNextSubpass2*: proc(commandBuffer: VkCommandBuffer, pSubpassBeginInfo: ptr VkSubpassBeginInfo, pSubpassEndInfo: ptr VkSubpassEndInfo): void {.stdcall.} - vkCmdEndRenderPass2*: proc(commandBuffer: VkCommandBuffer, pSubpassEndInfo: ptr VkSubpassEndInfo): void {.stdcall.} - vkResetQueryPool*: proc(device: VkDevice, queryPool: VkQueryPool, firstQuery: uint32, queryCount: uint32): void {.stdcall.} - vkGetSemaphoreCounterValue*: proc(device: VkDevice, semaphore: VkSemaphore, pValue: ptr uint64): VkResult {.stdcall.} - vkWaitSemaphores*: proc(device: VkDevice, pWaitInfo: ptr VkSemaphoreWaitInfo, timeout: uint64): VkResult {.stdcall.} - vkSignalSemaphore*: proc(device: VkDevice, pSignalInfo: ptr VkSemaphoreSignalInfo): VkResult {.stdcall.} - vkGetBufferDeviceAddress*: proc(device: VkDevice, pInfo: ptr VkBufferDeviceAddressInfo): VkDeviceAddress {.stdcall.} - vkGetBufferOpaqueCaptureAddress*: proc(device: VkDevice, pInfo: ptr VkBufferDeviceAddressInfo): uint64 {.stdcall.} - vkGetDeviceMemoryOpaqueCaptureAddress*: proc(device: VkDevice, pInfo: ptr VkDeviceMemoryOpaqueCaptureAddressInfo): uint64 {.stdcall.} -proc loadVK_VERSION_1_2*(instance: VkInstance) = - vkCmdDrawIndirectCount = cast[proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, countBuffer: VkBuffer, countBufferOffset: VkDeviceSize, maxDrawCount: uint32, stride: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawIndirectCount")) - vkCmdDrawIndexedIndirectCount = cast[proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, countBuffer: VkBuffer, countBufferOffset: VkDeviceSize, maxDrawCount: uint32, stride: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawIndexedIndirectCount")) - vkCreateRenderPass2 = cast[proc(device: VkDevice, pCreateInfo: ptr VkRenderPassCreateInfo2, pAllocator: ptr VkAllocationCallbacks, pRenderPass: ptr VkRenderPass): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateRenderPass2")) - vkCmdBeginRenderPass2 = cast[proc(commandBuffer: VkCommandBuffer, pRenderPassBegin: ptr VkRenderPassBeginInfo, pSubpassBeginInfo: ptr VkSubpassBeginInfo): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBeginRenderPass2")) - vkCmdNextSubpass2 = cast[proc(commandBuffer: VkCommandBuffer, pSubpassBeginInfo: ptr VkSubpassBeginInfo, pSubpassEndInfo: ptr VkSubpassEndInfo): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdNextSubpass2")) - vkCmdEndRenderPass2 = cast[proc(commandBuffer: VkCommandBuffer, pSubpassEndInfo: ptr VkSubpassEndInfo): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdEndRenderPass2")) - vkResetQueryPool = cast[proc(device: VkDevice, queryPool: VkQueryPool, firstQuery: uint32, queryCount: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkResetQueryPool")) - vkGetSemaphoreCounterValue = cast[proc(device: VkDevice, semaphore: VkSemaphore, pValue: ptr uint64): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetSemaphoreCounterValue")) - vkWaitSemaphores = cast[proc(device: VkDevice, pWaitInfo: ptr VkSemaphoreWaitInfo, timeout: uint64): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkWaitSemaphores")) - vkSignalSemaphore = cast[proc(device: VkDevice, pSignalInfo: ptr VkSemaphoreSignalInfo): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkSignalSemaphore")) - vkGetBufferDeviceAddress = cast[proc(device: VkDevice, pInfo: ptr VkBufferDeviceAddressInfo): VkDeviceAddress {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetBufferDeviceAddress")) - vkGetBufferOpaqueCaptureAddress = cast[proc(device: VkDevice, pInfo: ptr VkBufferDeviceAddressInfo): uint64 {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetBufferOpaqueCaptureAddress")) - vkGetDeviceMemoryOpaqueCaptureAddress = cast[proc(device: VkDevice, pInfo: ptr VkDeviceMemoryOpaqueCaptureAddressInfo): uint64 {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceMemoryOpaqueCaptureAddress")) - -# feature VK_VERSION_1_3 -var - vkGetPhysicalDeviceToolProperties*: proc(physicalDevice: VkPhysicalDevice, pToolCount: ptr uint32, pToolProperties: ptr VkPhysicalDeviceToolProperties): VkResult {.stdcall.} - vkCreatePrivateDataSlot*: proc(device: VkDevice, pCreateInfo: ptr VkPrivateDataSlotCreateInfo, pAllocator: ptr VkAllocationCallbacks, pPrivateDataSlot: ptr VkPrivateDataSlot): VkResult {.stdcall.} - vkDestroyPrivateDataSlot*: proc(device: VkDevice, privateDataSlot: VkPrivateDataSlot, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkSetPrivateData*: proc(device: VkDevice, objectType: VkObjectType, objectHandle: uint64, privateDataSlot: VkPrivateDataSlot, data: uint64): VkResult {.stdcall.} - vkGetPrivateData*: proc(device: VkDevice, objectType: VkObjectType, objectHandle: uint64, privateDataSlot: VkPrivateDataSlot, pData: ptr uint64): void {.stdcall.} - vkCmdSetEvent2*: proc(commandBuffer: VkCommandBuffer, event: VkEvent, pDependencyInfo: ptr VkDependencyInfo): void {.stdcall.} - vkCmdResetEvent2*: proc(commandBuffer: VkCommandBuffer, event: VkEvent, stageMask: VkPipelineStageFlags2): void {.stdcall.} - vkCmdWaitEvents2*: proc(commandBuffer: VkCommandBuffer, eventCount: uint32, pEvents: ptr VkEvent, pDependencyInfos: ptr VkDependencyInfo): void {.stdcall.} - vkCmdPipelineBarrier2*: proc(commandBuffer: VkCommandBuffer, pDependencyInfo: ptr VkDependencyInfo): void {.stdcall.} - vkCmdWriteTimestamp2*: proc(commandBuffer: VkCommandBuffer, stage: VkPipelineStageFlags2, queryPool: VkQueryPool, query: uint32): void {.stdcall.} - vkQueueSubmit2*: proc(queue: VkQueue, submitCount: uint32, pSubmits: ptr VkSubmitInfo2, fence: VkFence): VkResult {.stdcall.} - vkCmdCopyBuffer2*: proc(commandBuffer: VkCommandBuffer, pCopyBufferInfo: ptr VkCopyBufferInfo2): void {.stdcall.} - vkCmdCopyImage2*: proc(commandBuffer: VkCommandBuffer, pCopyImageInfo: ptr VkCopyImageInfo2): void {.stdcall.} - vkCmdCopyBufferToImage2*: proc(commandBuffer: VkCommandBuffer, pCopyBufferToImageInfo: ptr VkCopyBufferToImageInfo2): void {.stdcall.} - vkCmdCopyImageToBuffer2*: proc(commandBuffer: VkCommandBuffer, pCopyImageToBufferInfo: ptr VkCopyImageToBufferInfo2): void {.stdcall.} - vkCmdBlitImage2*: proc(commandBuffer: VkCommandBuffer, pBlitImageInfo: ptr VkBlitImageInfo2): void {.stdcall.} - vkCmdResolveImage2*: proc(commandBuffer: VkCommandBuffer, pResolveImageInfo: ptr VkResolveImageInfo2): void {.stdcall.} - vkCmdBeginRendering*: proc(commandBuffer: VkCommandBuffer, pRenderingInfo: ptr VkRenderingInfo): void {.stdcall.} - vkCmdEndRendering*: proc(commandBuffer: VkCommandBuffer): void {.stdcall.} - vkCmdSetCullMode*: proc(commandBuffer: VkCommandBuffer, cullMode: VkCullModeFlags): void {.stdcall.} - vkCmdSetFrontFace*: proc(commandBuffer: VkCommandBuffer, frontFace: VkFrontFace): void {.stdcall.} - vkCmdSetPrimitiveTopology*: proc(commandBuffer: VkCommandBuffer, primitiveTopology: VkPrimitiveTopology): void {.stdcall.} - vkCmdSetViewportWithCount*: proc(commandBuffer: VkCommandBuffer, viewportCount: uint32, pViewports: ptr VkViewport): void {.stdcall.} - vkCmdSetScissorWithCount*: proc(commandBuffer: VkCommandBuffer, scissorCount: uint32, pScissors: ptr VkRect2D): void {.stdcall.} - vkCmdBindVertexBuffers2*: proc(commandBuffer: VkCommandBuffer, firstBinding: uint32, bindingCount: uint32, pBuffers: ptr VkBuffer, pOffsets: ptr VkDeviceSize, pSizes: ptr VkDeviceSize, pStrides: ptr VkDeviceSize): void {.stdcall.} - vkCmdSetDepthTestEnable*: proc(commandBuffer: VkCommandBuffer, depthTestEnable: VkBool32): void {.stdcall.} - vkCmdSetDepthWriteEnable*: proc(commandBuffer: VkCommandBuffer, depthWriteEnable: VkBool32): void {.stdcall.} - vkCmdSetDepthCompareOp*: proc(commandBuffer: VkCommandBuffer, depthCompareOp: VkCompareOp): void {.stdcall.} - vkCmdSetDepthBoundsTestEnable*: proc(commandBuffer: VkCommandBuffer, depthBoundsTestEnable: VkBool32): void {.stdcall.} - vkCmdSetStencilTestEnable*: proc(commandBuffer: VkCommandBuffer, stencilTestEnable: VkBool32): void {.stdcall.} - vkCmdSetStencilOp*: proc(commandBuffer: VkCommandBuffer, faceMask: VkStencilFaceFlags, failOp: VkStencilOp, passOp: VkStencilOp, depthFailOp: VkStencilOp, compareOp: VkCompareOp): void {.stdcall.} - vkCmdSetRasterizerDiscardEnable*: proc(commandBuffer: VkCommandBuffer, rasterizerDiscardEnable: VkBool32): void {.stdcall.} - vkCmdSetDepthBiasEnable*: proc(commandBuffer: VkCommandBuffer, depthBiasEnable: VkBool32): void {.stdcall.} - vkCmdSetPrimitiveRestartEnable*: proc(commandBuffer: VkCommandBuffer, primitiveRestartEnable: VkBool32): void {.stdcall.} - vkGetDeviceBufferMemoryRequirements*: proc(device: VkDevice, pInfo: ptr VkDeviceBufferMemoryRequirements, pMemoryRequirements: ptr VkMemoryRequirements2): void {.stdcall.} - vkGetDeviceImageMemoryRequirements*: proc(device: VkDevice, pInfo: ptr VkDeviceImageMemoryRequirements, pMemoryRequirements: ptr VkMemoryRequirements2): void {.stdcall.} - vkGetDeviceImageSparseMemoryRequirements*: proc(device: VkDevice, pInfo: ptr VkDeviceImageMemoryRequirements, pSparseMemoryRequirementCount: ptr uint32, pSparseMemoryRequirements: ptr VkSparseImageMemoryRequirements2): void {.stdcall.} -proc loadVK_VERSION_1_3*(instance: VkInstance) = - vkGetPhysicalDeviceToolProperties = cast[proc(physicalDevice: VkPhysicalDevice, pToolCount: ptr uint32, pToolProperties: ptr VkPhysicalDeviceToolProperties): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceToolProperties")) - vkCreatePrivateDataSlot = cast[proc(device: VkDevice, pCreateInfo: ptr VkPrivateDataSlotCreateInfo, pAllocator: ptr VkAllocationCallbacks, pPrivateDataSlot: ptr VkPrivateDataSlot): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreatePrivateDataSlot")) - vkDestroyPrivateDataSlot = cast[proc(device: VkDevice, privateDataSlot: VkPrivateDataSlot, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyPrivateDataSlot")) - vkSetPrivateData = cast[proc(device: VkDevice, objectType: VkObjectType, objectHandle: uint64, privateDataSlot: VkPrivateDataSlot, data: uint64): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkSetPrivateData")) - vkGetPrivateData = cast[proc(device: VkDevice, objectType: VkObjectType, objectHandle: uint64, privateDataSlot: VkPrivateDataSlot, pData: ptr uint64): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPrivateData")) - vkCmdSetEvent2 = cast[proc(commandBuffer: VkCommandBuffer, event: VkEvent, pDependencyInfo: ptr VkDependencyInfo): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetEvent2")) - vkCmdResetEvent2 = cast[proc(commandBuffer: VkCommandBuffer, event: VkEvent, stageMask: VkPipelineStageFlags2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdResetEvent2")) - vkCmdWaitEvents2 = cast[proc(commandBuffer: VkCommandBuffer, eventCount: uint32, pEvents: ptr VkEvent, pDependencyInfos: ptr VkDependencyInfo): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdWaitEvents2")) - vkCmdPipelineBarrier2 = cast[proc(commandBuffer: VkCommandBuffer, pDependencyInfo: ptr VkDependencyInfo): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdPipelineBarrier2")) - vkCmdWriteTimestamp2 = cast[proc(commandBuffer: VkCommandBuffer, stage: VkPipelineStageFlags2, queryPool: VkQueryPool, query: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdWriteTimestamp2")) - vkQueueSubmit2 = cast[proc(queue: VkQueue, submitCount: uint32, pSubmits: ptr VkSubmitInfo2, fence: VkFence): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkQueueSubmit2")) - vkCmdCopyBuffer2 = cast[proc(commandBuffer: VkCommandBuffer, pCopyBufferInfo: ptr VkCopyBufferInfo2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyBuffer2")) - vkCmdCopyImage2 = cast[proc(commandBuffer: VkCommandBuffer, pCopyImageInfo: ptr VkCopyImageInfo2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyImage2")) - vkCmdCopyBufferToImage2 = cast[proc(commandBuffer: VkCommandBuffer, pCopyBufferToImageInfo: ptr VkCopyBufferToImageInfo2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyBufferToImage2")) - vkCmdCopyImageToBuffer2 = cast[proc(commandBuffer: VkCommandBuffer, pCopyImageToBufferInfo: ptr VkCopyImageToBufferInfo2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyImageToBuffer2")) - vkCmdBlitImage2 = cast[proc(commandBuffer: VkCommandBuffer, pBlitImageInfo: ptr VkBlitImageInfo2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBlitImage2")) - vkCmdResolveImage2 = cast[proc(commandBuffer: VkCommandBuffer, pResolveImageInfo: ptr VkResolveImageInfo2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdResolveImage2")) - vkCmdBeginRendering = cast[proc(commandBuffer: VkCommandBuffer, pRenderingInfo: ptr VkRenderingInfo): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBeginRendering")) - vkCmdEndRendering = cast[proc(commandBuffer: VkCommandBuffer): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdEndRendering")) - vkCmdSetCullMode = cast[proc(commandBuffer: VkCommandBuffer, cullMode: VkCullModeFlags): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetCullMode")) - vkCmdSetFrontFace = cast[proc(commandBuffer: VkCommandBuffer, frontFace: VkFrontFace): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetFrontFace")) - vkCmdSetPrimitiveTopology = cast[proc(commandBuffer: VkCommandBuffer, primitiveTopology: VkPrimitiveTopology): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetPrimitiveTopology")) - vkCmdSetViewportWithCount = cast[proc(commandBuffer: VkCommandBuffer, viewportCount: uint32, pViewports: ptr VkViewport): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetViewportWithCount")) - vkCmdSetScissorWithCount = cast[proc(commandBuffer: VkCommandBuffer, scissorCount: uint32, pScissors: ptr VkRect2D): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetScissorWithCount")) - vkCmdBindVertexBuffers2 = cast[proc(commandBuffer: VkCommandBuffer, firstBinding: uint32, bindingCount: uint32, pBuffers: ptr VkBuffer, pOffsets: ptr VkDeviceSize, pSizes: ptr VkDeviceSize, pStrides: ptr VkDeviceSize): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBindVertexBuffers2")) - vkCmdSetDepthTestEnable = cast[proc(commandBuffer: VkCommandBuffer, depthTestEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDepthTestEnable")) - vkCmdSetDepthWriteEnable = cast[proc(commandBuffer: VkCommandBuffer, depthWriteEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDepthWriteEnable")) - vkCmdSetDepthCompareOp = cast[proc(commandBuffer: VkCommandBuffer, depthCompareOp: VkCompareOp): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDepthCompareOp")) - vkCmdSetDepthBoundsTestEnable = cast[proc(commandBuffer: VkCommandBuffer, depthBoundsTestEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDepthBoundsTestEnable")) - vkCmdSetStencilTestEnable = cast[proc(commandBuffer: VkCommandBuffer, stencilTestEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetStencilTestEnable")) - vkCmdSetStencilOp = cast[proc(commandBuffer: VkCommandBuffer, faceMask: VkStencilFaceFlags, failOp: VkStencilOp, passOp: VkStencilOp, depthFailOp: VkStencilOp, compareOp: VkCompareOp): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetStencilOp")) - vkCmdSetRasterizerDiscardEnable = cast[proc(commandBuffer: VkCommandBuffer, rasterizerDiscardEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetRasterizerDiscardEnable")) - vkCmdSetDepthBiasEnable = cast[proc(commandBuffer: VkCommandBuffer, depthBiasEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDepthBiasEnable")) - vkCmdSetPrimitiveRestartEnable = cast[proc(commandBuffer: VkCommandBuffer, primitiveRestartEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetPrimitiveRestartEnable")) - vkGetDeviceBufferMemoryRequirements = cast[proc(device: VkDevice, pInfo: ptr VkDeviceBufferMemoryRequirements, pMemoryRequirements: ptr VkMemoryRequirements2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceBufferMemoryRequirements")) - vkGetDeviceImageMemoryRequirements = cast[proc(device: VkDevice, pInfo: ptr VkDeviceImageMemoryRequirements, pMemoryRequirements: ptr VkMemoryRequirements2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceImageMemoryRequirements")) - vkGetDeviceImageSparseMemoryRequirements = cast[proc(device: VkDevice, pInfo: ptr VkDeviceImageMemoryRequirements, pSparseMemoryRequirementCount: ptr uint32, pSparseMemoryRequirements: ptr VkSparseImageMemoryRequirements2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceImageSparseMemoryRequirements")) - - -proc loadVulkan*(instance: VkInstance) = - loadVK_VERSION_1_0(instance) - loadVK_VERSION_1_1(instance) - loadVK_VERSION_1_2(instance) - loadVK_VERSION_1_3(instance) - -proc loadVK_NV_geometry_shader_passthrough*(instance: VkInstance) = - discard - -proc loadVK_EXT_rasterization_order_attachment_access*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -proc loadVK_IMG_format_pvrtc*(instance: VkInstance) = - discard - -proc loadVK_AMD_shader_fragment_mask*(instance: VkInstance) = - discard - -proc loadVK_EXT_primitive_topology_list_restart*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -proc loadVK_KHR_global_priority*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -proc loadVK_QCOM_image_processing*(instance: VkInstance) = - loadVK_VERSION_1_3(instance) - -# extension VK_AMD_shader_info -var - vkGetShaderInfoAMD*: proc(device: VkDevice, pipeline: VkPipeline, shaderStage: VkShaderStageFlagBits, infoType: VkShaderInfoTypeAMD, pInfoSize: ptr csize_t, pInfo: pointer): VkResult {.stdcall.} -proc loadVK_AMD_shader_info*(instance: VkInstance) = - vkGetShaderInfoAMD = cast[proc(device: VkDevice, pipeline: VkPipeline, shaderStage: VkShaderStageFlagBits, infoType: VkShaderInfoTypeAMD, pInfoSize: ptr csize_t, pInfo: pointer): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetShaderInfoAMD")) - -proc loadVK_AMD_gpu_shader_int16*(instance: VkInstance) = - discard - -proc loadVK_EXT_pipeline_robustness*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -# extension VK_EXT_sample_locations -var - vkCmdSetSampleLocationsEXT*: proc(commandBuffer: VkCommandBuffer, pSampleLocationsInfo: ptr VkSampleLocationsInfoEXT): void {.stdcall.} - vkGetPhysicalDeviceMultisamplePropertiesEXT*: proc(physicalDevice: VkPhysicalDevice, samples: VkSampleCountFlagBits, pMultisampleProperties: ptr VkMultisamplePropertiesEXT): void {.stdcall.} -proc loadVK_EXT_sample_locations*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - vkCmdSetSampleLocationsEXT = cast[proc(commandBuffer: VkCommandBuffer, pSampleLocationsInfo: ptr VkSampleLocationsInfoEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetSampleLocationsEXT")) - vkGetPhysicalDeviceMultisamplePropertiesEXT = cast[proc(physicalDevice: VkPhysicalDevice, samples: VkSampleCountFlagBits, pMultisampleProperties: ptr VkMultisamplePropertiesEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceMultisamplePropertiesEXT")) - -# extension VK_EXT_descriptor_buffer -var - vkGetDescriptorSetLayoutSizeEXT*: proc(device: VkDevice, layout: VkDescriptorSetLayout, pLayoutSizeInBytes: ptr VkDeviceSize): void {.stdcall.} - vkGetDescriptorSetLayoutBindingOffsetEXT*: proc(device: VkDevice, layout: VkDescriptorSetLayout, binding: uint32, pOffset: ptr VkDeviceSize): void {.stdcall.} - vkGetDescriptorEXT*: proc(device: VkDevice, pDescriptorInfo: ptr VkDescriptorGetInfoEXT, dataSize: csize_t, pDescriptor: pointer): void {.stdcall.} - vkCmdBindDescriptorBuffersEXT*: proc(commandBuffer: VkCommandBuffer, bufferCount: uint32, pBindingInfos: ptr VkDescriptorBufferBindingInfoEXT): void {.stdcall.} - vkCmdSetDescriptorBufferOffsetsEXT*: proc(commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, layout: VkPipelineLayout, firstSet: uint32, setCount: uint32, pBufferIndices: ptr uint32, pOffsets: ptr VkDeviceSize): void {.stdcall.} - vkCmdBindDescriptorBufferEmbeddedSamplersEXT*: proc(commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, layout: VkPipelineLayout, set: uint32): void {.stdcall.} - vkGetBufferOpaqueCaptureDescriptorDataEXT*: proc(device: VkDevice, pInfo: ptr VkBufferCaptureDescriptorDataInfoEXT, pData: pointer): VkResult {.stdcall.} - vkGetImageOpaqueCaptureDescriptorDataEXT*: proc(device: VkDevice, pInfo: ptr VkImageCaptureDescriptorDataInfoEXT, pData: pointer): VkResult {.stdcall.} - vkGetImageViewOpaqueCaptureDescriptorDataEXT*: proc(device: VkDevice, pInfo: ptr VkImageViewCaptureDescriptorDataInfoEXT, pData: pointer): VkResult {.stdcall.} - vkGetSamplerOpaqueCaptureDescriptorDataEXT*: proc(device: VkDevice, pInfo: ptr VkSamplerCaptureDescriptorDataInfoEXT, pData: pointer): VkResult {.stdcall.} - vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT*: proc(device: VkDevice, pInfo: ptr VkAccelerationStructureCaptureDescriptorDataInfoEXT, pData: pointer): VkResult {.stdcall.} -proc loadVK_EXT_descriptor_buffer*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - loadVK_VERSION_1_2(instance) - loadVK_VERSION_1_3(instance) - loadVK_VERSION_1_2(instance) - vkGetDescriptorSetLayoutSizeEXT = cast[proc(device: VkDevice, layout: VkDescriptorSetLayout, pLayoutSizeInBytes: ptr VkDeviceSize): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDescriptorSetLayoutSizeEXT")) - vkGetDescriptorSetLayoutBindingOffsetEXT = cast[proc(device: VkDevice, layout: VkDescriptorSetLayout, binding: uint32, pOffset: ptr VkDeviceSize): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDescriptorSetLayoutBindingOffsetEXT")) - vkGetDescriptorEXT = cast[proc(device: VkDevice, pDescriptorInfo: ptr VkDescriptorGetInfoEXT, dataSize: csize_t, pDescriptor: pointer): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDescriptorEXT")) - vkCmdBindDescriptorBuffersEXT = cast[proc(commandBuffer: VkCommandBuffer, bufferCount: uint32, pBindingInfos: ptr VkDescriptorBufferBindingInfoEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBindDescriptorBuffersEXT")) - vkCmdSetDescriptorBufferOffsetsEXT = cast[proc(commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, layout: VkPipelineLayout, firstSet: uint32, setCount: uint32, pBufferIndices: ptr uint32, pOffsets: ptr VkDeviceSize): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDescriptorBufferOffsetsEXT")) - vkCmdBindDescriptorBufferEmbeddedSamplersEXT = cast[proc(commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, layout: VkPipelineLayout, set: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBindDescriptorBufferEmbeddedSamplersEXT")) - vkGetBufferOpaqueCaptureDescriptorDataEXT = cast[proc(device: VkDevice, pInfo: ptr VkBufferCaptureDescriptorDataInfoEXT, pData: pointer): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetBufferOpaqueCaptureDescriptorDataEXT")) - vkGetImageOpaqueCaptureDescriptorDataEXT = cast[proc(device: VkDevice, pInfo: ptr VkImageCaptureDescriptorDataInfoEXT, pData: pointer): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetImageOpaqueCaptureDescriptorDataEXT")) - vkGetImageViewOpaqueCaptureDescriptorDataEXT = cast[proc(device: VkDevice, pInfo: ptr VkImageViewCaptureDescriptorDataInfoEXT, pData: pointer): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetImageViewOpaqueCaptureDescriptorDataEXT")) - vkGetSamplerOpaqueCaptureDescriptorDataEXT = cast[proc(device: VkDevice, pInfo: ptr VkSamplerCaptureDescriptorDataInfoEXT, pData: pointer): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetSamplerOpaqueCaptureDescriptorDataEXT")) - vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT = cast[proc(device: VkDevice, pInfo: ptr VkAccelerationStructureCaptureDescriptorDataInfoEXT, pData: pointer): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT")) - -# extension VK_KHR_performance_query -var - vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR*: proc(physicalDevice: VkPhysicalDevice, queueFamilyIndex: uint32, pCounterCount: ptr uint32, pCounters: ptr VkPerformanceCounterKHR, pCounterDescriptions: ptr VkPerformanceCounterDescriptionKHR): VkResult {.stdcall.} - vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR*: proc(physicalDevice: VkPhysicalDevice, pPerformanceQueryCreateInfo: ptr VkQueryPoolPerformanceCreateInfoKHR, pNumPasses: ptr uint32): void {.stdcall.} - vkAcquireProfilingLockKHR*: proc(device: VkDevice, pInfo: ptr VkAcquireProfilingLockInfoKHR): VkResult {.stdcall.} - vkReleaseProfilingLockKHR*: proc(device: VkDevice): void {.stdcall.} -proc loadVK_KHR_performance_query*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = cast[proc(physicalDevice: VkPhysicalDevice, queueFamilyIndex: uint32, pCounterCount: ptr uint32, pCounters: ptr VkPerformanceCounterKHR, pCounterDescriptions: ptr VkPerformanceCounterDescriptionKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR")) - vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = cast[proc(physicalDevice: VkPhysicalDevice, pPerformanceQueryCreateInfo: ptr VkQueryPoolPerformanceCreateInfoKHR, pNumPasses: ptr uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR")) - vkAcquireProfilingLockKHR = cast[proc(device: VkDevice, pInfo: ptr VkAcquireProfilingLockInfoKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkAcquireProfilingLockKHR")) - vkReleaseProfilingLockKHR = cast[proc(device: VkDevice): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkReleaseProfilingLockKHR")) - -proc loadVK_GOOGLE_user_type*(instance: VkInstance) = - discard - -# extension VK_EXT_debug_report -var - vkCreateDebugReportCallbackEXT*: proc(instance: VkInstance, pCreateInfo: ptr VkDebugReportCallbackCreateInfoEXT, pAllocator: ptr VkAllocationCallbacks, pCallback: ptr VkDebugReportCallbackEXT): VkResult {.stdcall.} - vkDestroyDebugReportCallbackEXT*: proc(instance: VkInstance, callback: VkDebugReportCallbackEXT, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkDebugReportMessageEXT*: proc(instance: VkInstance, flags: VkDebugReportFlagsEXT, objectType: VkDebugReportObjectTypeEXT, theobject: uint64, location: csize_t, messageCode: int32, pLayerPrefix: cstring, pMessage: cstring): void {.stdcall.} -proc loadVK_EXT_debug_report*(instance: VkInstance) = - vkCreateDebugReportCallbackEXT = cast[proc(instance: VkInstance, pCreateInfo: ptr VkDebugReportCallbackCreateInfoEXT, pAllocator: ptr VkAllocationCallbacks, pCallback: ptr VkDebugReportCallbackEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateDebugReportCallbackEXT")) - vkDestroyDebugReportCallbackEXT = cast[proc(instance: VkInstance, callback: VkDebugReportCallbackEXT, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyDebugReportCallbackEXT")) - vkDebugReportMessageEXT = cast[proc(instance: VkInstance, flags: VkDebugReportFlagsEXT, objectType: VkDebugReportObjectTypeEXT, theobject: uint64, location: csize_t, messageCode: int32, pLayerPrefix: cstring, pMessage: cstring): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDebugReportMessageEXT")) - -proc loadVK_EXT_multisampled_render_to_single_sampled*(instance: VkInstance) = - loadVK_VERSION_1_2(instance) - loadVK_VERSION_1_2(instance) - -proc loadVK_AMD_negative_viewport_height*(instance: VkInstance) = - discard - -proc loadVK_EXT_provoking_vertex*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -proc loadVK_NV_device_diagnostics_config*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -proc loadVK_NV_shader_subgroup_partitioned*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -proc loadVK_EXT_image_sliced_view_of_3d*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - loadVK_VERSION_1_1(instance) - -proc loadVK_AMD_shader_image_load_store_lod*(instance: VkInstance) = - discard - -proc loadVK_INTEL_shader_integer_functions2*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -proc loadVK_EXT_image_2d_view_of_3d*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - loadVK_VERSION_1_1(instance) - -# extension VK_NV_shading_rate_image -var - vkCmdBindShadingRateImageNV*: proc(commandBuffer: VkCommandBuffer, imageView: VkImageView, imageLayout: VkImageLayout): void {.stdcall.} - vkCmdSetViewportShadingRatePaletteNV*: proc(commandBuffer: VkCommandBuffer, firstViewport: uint32, viewportCount: uint32, pShadingRatePalettes: ptr VkShadingRatePaletteNV): void {.stdcall.} - vkCmdSetCoarseSampleOrderNV*: proc(commandBuffer: VkCommandBuffer, sampleOrderType: VkCoarseSampleOrderTypeNV, customSampleOrderCount: uint32, pCustomSampleOrders: ptr VkCoarseSampleOrderCustomNV): void {.stdcall.} -proc loadVK_NV_shading_rate_image*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - vkCmdBindShadingRateImageNV = cast[proc(commandBuffer: VkCommandBuffer, imageView: VkImageView, imageLayout: VkImageLayout): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBindShadingRateImageNV")) - vkCmdSetViewportShadingRatePaletteNV = cast[proc(commandBuffer: VkCommandBuffer, firstViewport: uint32, viewportCount: uint32, pShadingRatePalettes: ptr VkShadingRatePaletteNV): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetViewportShadingRatePaletteNV")) - vkCmdSetCoarseSampleOrderNV = cast[proc(commandBuffer: VkCommandBuffer, sampleOrderType: VkCoarseSampleOrderTypeNV, customSampleOrderCount: uint32, pCustomSampleOrders: ptr VkCoarseSampleOrderCustomNV): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetCoarseSampleOrderNV")) - -proc loadVK_EXT_fragment_density_map*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -# extension VK_NV_device_diagnostic_checkpoints -var - vkCmdSetCheckpointNV*: proc(commandBuffer: VkCommandBuffer, pCheckpointMarker: pointer): void {.stdcall.} - vkGetQueueCheckpointDataNV*: proc(queue: VkQueue, pCheckpointDataCount: ptr uint32, pCheckpointData: ptr VkCheckpointDataNV): void {.stdcall.} -proc loadVK_NV_device_diagnostic_checkpoints*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - vkCmdSetCheckpointNV = cast[proc(commandBuffer: VkCommandBuffer, pCheckpointMarker: pointer): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetCheckpointNV")) - vkGetQueueCheckpointDataNV = cast[proc(queue: VkQueue, pCheckpointDataCount: ptr uint32, pCheckpointData: ptr VkCheckpointDataNV): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetQueueCheckpointDataNV")) - -proc loadVK_EXT_pci_bus_info*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -proc loadVK_EXT_queue_family_foreign*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -# extension VK_EXT_debug_utils -var - vkSetDebugUtilsObjectNameEXT*: proc(device: VkDevice, pNameInfo: ptr VkDebugUtilsObjectNameInfoEXT): VkResult {.stdcall.} - vkSetDebugUtilsObjectTagEXT*: proc(device: VkDevice, pTagInfo: ptr VkDebugUtilsObjectTagInfoEXT): VkResult {.stdcall.} - vkQueueBeginDebugUtilsLabelEXT*: proc(queue: VkQueue, pLabelInfo: ptr VkDebugUtilsLabelEXT): void {.stdcall.} - vkQueueEndDebugUtilsLabelEXT*: proc(queue: VkQueue): void {.stdcall.} - vkQueueInsertDebugUtilsLabelEXT*: proc(queue: VkQueue, pLabelInfo: ptr VkDebugUtilsLabelEXT): void {.stdcall.} - vkCmdBeginDebugUtilsLabelEXT*: proc(commandBuffer: VkCommandBuffer, pLabelInfo: ptr VkDebugUtilsLabelEXT): void {.stdcall.} - vkCmdEndDebugUtilsLabelEXT*: proc(commandBuffer: VkCommandBuffer): void {.stdcall.} - vkCmdInsertDebugUtilsLabelEXT*: proc(commandBuffer: VkCommandBuffer, pLabelInfo: ptr VkDebugUtilsLabelEXT): void {.stdcall.} - vkCreateDebugUtilsMessengerEXT*: proc(instance: VkInstance, pCreateInfo: ptr VkDebugUtilsMessengerCreateInfoEXT, pAllocator: ptr VkAllocationCallbacks, pMessenger: ptr VkDebugUtilsMessengerEXT): VkResult {.stdcall.} - vkDestroyDebugUtilsMessengerEXT*: proc(instance: VkInstance, messenger: VkDebugUtilsMessengerEXT, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkSubmitDebugUtilsMessageEXT*: proc(instance: VkInstance, messageSeverity: VkDebugUtilsMessageSeverityFlagBitsEXT, messageTypes: VkDebugUtilsMessageTypeFlagsEXT, pCallbackData: ptr VkDebugUtilsMessengerCallbackDataEXT): void {.stdcall.} -proc loadVK_EXT_debug_utils*(instance: VkInstance) = - vkSetDebugUtilsObjectNameEXT = cast[proc(device: VkDevice, pNameInfo: ptr VkDebugUtilsObjectNameInfoEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkSetDebugUtilsObjectNameEXT")) - vkSetDebugUtilsObjectTagEXT = cast[proc(device: VkDevice, pTagInfo: ptr VkDebugUtilsObjectTagInfoEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkSetDebugUtilsObjectTagEXT")) - vkQueueBeginDebugUtilsLabelEXT = cast[proc(queue: VkQueue, pLabelInfo: ptr VkDebugUtilsLabelEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkQueueBeginDebugUtilsLabelEXT")) - vkQueueEndDebugUtilsLabelEXT = cast[proc(queue: VkQueue): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkQueueEndDebugUtilsLabelEXT")) - vkQueueInsertDebugUtilsLabelEXT = cast[proc(queue: VkQueue, pLabelInfo: ptr VkDebugUtilsLabelEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkQueueInsertDebugUtilsLabelEXT")) - vkCmdBeginDebugUtilsLabelEXT = cast[proc(commandBuffer: VkCommandBuffer, pLabelInfo: ptr VkDebugUtilsLabelEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBeginDebugUtilsLabelEXT")) - vkCmdEndDebugUtilsLabelEXT = cast[proc(commandBuffer: VkCommandBuffer): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdEndDebugUtilsLabelEXT")) - vkCmdInsertDebugUtilsLabelEXT = cast[proc(commandBuffer: VkCommandBuffer, pLabelInfo: ptr VkDebugUtilsLabelEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdInsertDebugUtilsLabelEXT")) - vkCreateDebugUtilsMessengerEXT = cast[proc(instance: VkInstance, pCreateInfo: ptr VkDebugUtilsMessengerCreateInfoEXT, pAllocator: ptr VkAllocationCallbacks, pMessenger: ptr VkDebugUtilsMessengerEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateDebugUtilsMessengerEXT")) - vkDestroyDebugUtilsMessengerEXT = cast[proc(instance: VkInstance, messenger: VkDebugUtilsMessengerEXT, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyDebugUtilsMessengerEXT")) - vkSubmitDebugUtilsMessageEXT = cast[proc(instance: VkInstance, messageSeverity: VkDebugUtilsMessageSeverityFlagBitsEXT, messageTypes: VkDebugUtilsMessageTypeFlagsEXT, pCallbackData: ptr VkDebugUtilsMessengerCallbackDataEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkSubmitDebugUtilsMessageEXT")) - -proc loadVK_KHR_portability_enumeration*(instance: VkInstance) = - discard - -proc loadVK_EXT_memory_priority*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -proc loadVK_AMD_shader_core_properties*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -# extension VK_KHR_external_fence_fd -var - vkImportFenceFdKHR*: proc(device: VkDevice, pImportFenceFdInfo: ptr VkImportFenceFdInfoKHR): VkResult {.stdcall.} - vkGetFenceFdKHR*: proc(device: VkDevice, pGetFdInfo: ptr VkFenceGetFdInfoKHR, pFd: ptr cint): VkResult {.stdcall.} -proc loadVK_KHR_external_fence_fd*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - vkImportFenceFdKHR = cast[proc(device: VkDevice, pImportFenceFdInfo: ptr VkImportFenceFdInfoKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkImportFenceFdKHR")) - vkGetFenceFdKHR = cast[proc(device: VkDevice, pGetFdInfo: ptr VkFenceGetFdInfoKHR, pFd: ptr cint): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetFenceFdKHR")) - -# extension VK_NV_device_generated_commands -var - vkGetGeneratedCommandsMemoryRequirementsNV*: proc(device: VkDevice, pInfo: ptr VkGeneratedCommandsMemoryRequirementsInfoNV, pMemoryRequirements: ptr VkMemoryRequirements2): void {.stdcall.} - vkCmdPreprocessGeneratedCommandsNV*: proc(commandBuffer: VkCommandBuffer, pGeneratedCommandsInfo: ptr VkGeneratedCommandsInfoNV): void {.stdcall.} - vkCmdExecuteGeneratedCommandsNV*: proc(commandBuffer: VkCommandBuffer, isPreprocessed: VkBool32, pGeneratedCommandsInfo: ptr VkGeneratedCommandsInfoNV): void {.stdcall.} - vkCmdBindPipelineShaderGroupNV*: proc(commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, pipeline: VkPipeline, groupIndex: uint32): void {.stdcall.} - vkCreateIndirectCommandsLayoutNV*: proc(device: VkDevice, pCreateInfo: ptr VkIndirectCommandsLayoutCreateInfoNV, pAllocator: ptr VkAllocationCallbacks, pIndirectCommandsLayout: ptr VkIndirectCommandsLayoutNV): VkResult {.stdcall.} - vkDestroyIndirectCommandsLayoutNV*: proc(device: VkDevice, indirectCommandsLayout: VkIndirectCommandsLayoutNV, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} -proc loadVK_NV_device_generated_commands*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - loadVK_VERSION_1_2(instance) - vkGetGeneratedCommandsMemoryRequirementsNV = cast[proc(device: VkDevice, pInfo: ptr VkGeneratedCommandsMemoryRequirementsInfoNV, pMemoryRequirements: ptr VkMemoryRequirements2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetGeneratedCommandsMemoryRequirementsNV")) - vkCmdPreprocessGeneratedCommandsNV = cast[proc(commandBuffer: VkCommandBuffer, pGeneratedCommandsInfo: ptr VkGeneratedCommandsInfoNV): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdPreprocessGeneratedCommandsNV")) - vkCmdExecuteGeneratedCommandsNV = cast[proc(commandBuffer: VkCommandBuffer, isPreprocessed: VkBool32, pGeneratedCommandsInfo: ptr VkGeneratedCommandsInfoNV): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdExecuteGeneratedCommandsNV")) - vkCmdBindPipelineShaderGroupNV = cast[proc(commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, pipeline: VkPipeline, groupIndex: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBindPipelineShaderGroupNV")) - vkCreateIndirectCommandsLayoutNV = cast[proc(device: VkDevice, pCreateInfo: ptr VkIndirectCommandsLayoutCreateInfoNV, pAllocator: ptr VkAllocationCallbacks, pIndirectCommandsLayout: ptr VkIndirectCommandsLayoutNV): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateIndirectCommandsLayoutNV")) - vkDestroyIndirectCommandsLayoutNV = cast[proc(device: VkDevice, indirectCommandsLayout: VkIndirectCommandsLayoutNV, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyIndirectCommandsLayoutNV")) - -proc loadVK_NV_viewport_array2*(instance: VkInstance) = - discard - -proc loadVK_NVX_multiview_per_view_attributes*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -# extension VK_KHR_external_memory_fd -var - vkGetMemoryFdKHR*: proc(device: VkDevice, pGetFdInfo: ptr VkMemoryGetFdInfoKHR, pFd: ptr cint): VkResult {.stdcall.} - vkGetMemoryFdPropertiesKHR*: proc(device: VkDevice, handleType: VkExternalMemoryHandleTypeFlagBits, fd: cint, pMemoryFdProperties: ptr VkMemoryFdPropertiesKHR): VkResult {.stdcall.} -proc loadVK_KHR_external_memory_fd*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - vkGetMemoryFdKHR = cast[proc(device: VkDevice, pGetFdInfo: ptr VkMemoryGetFdInfoKHR, pFd: ptr cint): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetMemoryFdKHR")) - vkGetMemoryFdPropertiesKHR = cast[proc(device: VkDevice, handleType: VkExternalMemoryHandleTypeFlagBits, fd: cint, pMemoryFdProperties: ptr VkMemoryFdPropertiesKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetMemoryFdPropertiesKHR")) - -proc loadVK_EXT_rgba10x6_formats*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -proc loadVK_NV_dedicated_allocation_image_aliasing*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - loadVK_VERSION_1_1(instance) - -# extension VK_NV_cooperative_matrix -var - vkGetPhysicalDeviceCooperativeMatrixPropertiesNV*: proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32, pProperties: ptr VkCooperativeMatrixPropertiesNV): VkResult {.stdcall.} -proc loadVK_NV_cooperative_matrix*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = cast[proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32, pProperties: ptr VkCooperativeMatrixPropertiesNV): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV")) - -proc loadVK_EXT_depth_clamp_zero_one*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -proc loadVK_NV_linear_color_attachment*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -proc loadVK_EXT_shader_subgroup_ballot*(instance: VkInstance) = - discard - -# extension VK_EXT_image_drm_format_modifier -var - vkGetImageDrmFormatModifierPropertiesEXT*: proc(device: VkDevice, image: VkImage, pProperties: ptr VkImageDrmFormatModifierPropertiesEXT): VkResult {.stdcall.} -proc loadVK_EXT_image_drm_format_modifier*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - loadVK_VERSION_1_1(instance) - loadVK_VERSION_1_2(instance) - loadVK_VERSION_1_1(instance) - vkGetImageDrmFormatModifierPropertiesEXT = cast[proc(device: VkDevice, image: VkImage, pProperties: ptr VkImageDrmFormatModifierPropertiesEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetImageDrmFormatModifierPropertiesEXT")) - -# extension VK_EXT_mesh_shader -var - vkCmdDrawMeshTasksEXT*: proc(commandBuffer: VkCommandBuffer, groupCountX: uint32, groupCountY: uint32, groupCountZ: uint32): void {.stdcall.} - vkCmdDrawMeshTasksIndirectEXT*: proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, drawCount: uint32, stride: uint32): void {.stdcall.} - vkCmdDrawMeshTasksIndirectCountEXT*: proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, countBuffer: VkBuffer, countBufferOffset: VkDeviceSize, maxDrawCount: uint32, stride: uint32): void {.stdcall.} -proc loadVK_EXT_mesh_shader*(instance: VkInstance) = - loadVK_VERSION_1_2(instance) - vkCmdDrawMeshTasksEXT = cast[proc(commandBuffer: VkCommandBuffer, groupCountX: uint32, groupCountY: uint32, groupCountZ: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawMeshTasksEXT")) - vkCmdDrawMeshTasksIndirectEXT = cast[proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, drawCount: uint32, stride: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawMeshTasksIndirectEXT")) - vkCmdDrawMeshTasksIndirectCountEXT = cast[proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, countBuffer: VkBuffer, countBufferOffset: VkDeviceSize, maxDrawCount: uint32, stride: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawMeshTasksIndirectCountEXT")) - -# extension VK_EXT_transform_feedback -var - vkCmdBindTransformFeedbackBuffersEXT*: proc(commandBuffer: VkCommandBuffer, firstBinding: uint32, bindingCount: uint32, pBuffers: ptr VkBuffer, pOffsets: ptr VkDeviceSize, pSizes: ptr VkDeviceSize): void {.stdcall.} - vkCmdBeginTransformFeedbackEXT*: proc(commandBuffer: VkCommandBuffer, firstCounterBuffer: uint32, counterBufferCount: uint32, pCounterBuffers: ptr VkBuffer, pCounterBufferOffsets: ptr VkDeviceSize): void {.stdcall.} - vkCmdEndTransformFeedbackEXT*: proc(commandBuffer: VkCommandBuffer, firstCounterBuffer: uint32, counterBufferCount: uint32, pCounterBuffers: ptr VkBuffer, pCounterBufferOffsets: ptr VkDeviceSize): void {.stdcall.} - vkCmdBeginQueryIndexedEXT*: proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, query: uint32, flags: VkQueryControlFlags, index: uint32): void {.stdcall.} - vkCmdEndQueryIndexedEXT*: proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, query: uint32, index: uint32): void {.stdcall.} - vkCmdDrawIndirectByteCountEXT*: proc(commandBuffer: VkCommandBuffer, instanceCount: uint32, firstInstance: uint32, counterBuffer: VkBuffer, counterBufferOffset: VkDeviceSize, counterOffset: uint32, vertexStride: uint32): void {.stdcall.} -proc loadVK_EXT_transform_feedback*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - vkCmdBindTransformFeedbackBuffersEXT = cast[proc(commandBuffer: VkCommandBuffer, firstBinding: uint32, bindingCount: uint32, pBuffers: ptr VkBuffer, pOffsets: ptr VkDeviceSize, pSizes: ptr VkDeviceSize): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBindTransformFeedbackBuffersEXT")) - vkCmdBeginTransformFeedbackEXT = cast[proc(commandBuffer: VkCommandBuffer, firstCounterBuffer: uint32, counterBufferCount: uint32, pCounterBuffers: ptr VkBuffer, pCounterBufferOffsets: ptr VkDeviceSize): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBeginTransformFeedbackEXT")) - vkCmdEndTransformFeedbackEXT = cast[proc(commandBuffer: VkCommandBuffer, firstCounterBuffer: uint32, counterBufferCount: uint32, pCounterBuffers: ptr VkBuffer, pCounterBufferOffsets: ptr VkDeviceSize): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdEndTransformFeedbackEXT")) - vkCmdBeginQueryIndexedEXT = cast[proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, query: uint32, flags: VkQueryControlFlags, index: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBeginQueryIndexedEXT")) - vkCmdEndQueryIndexedEXT = cast[proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, query: uint32, index: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdEndQueryIndexedEXT")) - vkCmdDrawIndirectByteCountEXT = cast[proc(commandBuffer: VkCommandBuffer, instanceCount: uint32, firstInstance: uint32, counterBuffer: VkBuffer, counterBufferOffset: VkDeviceSize, counterOffset: uint32, vertexStride: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawIndirectByteCountEXT")) - -proc loadVK_AMD_shader_early_and_late_fragment_tests*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -proc loadVK_AMD_shader_core_properties2*(instance: VkInstance) = - loadVK_AMD_shader_core_properties(instance) - -proc loadVK_GOOGLE_hlsl_functionality1*(instance: VkInstance) = - discard - -proc loadVK_EXT_robustness2*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -proc loadVK_EXT_image_view_min_lod*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -proc loadVK_AMD_shader_trinary_minmax*(instance: VkInstance) = - discard - -proc loadVK_EXT_custom_border_color*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -proc loadVK_AMD_rasterization_order*(instance: VkInstance) = - discard - -# extension VK_EXT_vertex_input_dynamic_state -var - vkCmdSetVertexInputEXT*: proc(commandBuffer: VkCommandBuffer, vertexBindingDescriptionCount: uint32, pVertexBindingDescriptions: ptr VkVertexInputBindingDescription2EXT, vertexAttributeDescriptionCount: uint32, pVertexAttributeDescriptions: ptr VkVertexInputAttributeDescription2EXT): void {.stdcall.} -proc loadVK_EXT_vertex_input_dynamic_state*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - vkCmdSetVertexInputEXT = cast[proc(commandBuffer: VkCommandBuffer, vertexBindingDescriptionCount: uint32, pVertexBindingDescriptions: ptr VkVertexInputBindingDescription2EXT, vertexAttributeDescriptionCount: uint32, pVertexAttributeDescriptions: ptr VkVertexInputAttributeDescription2EXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetVertexInputEXT")) - -# extension VK_KHR_fragment_shading_rate -var - vkGetPhysicalDeviceFragmentShadingRatesKHR*: proc(physicalDevice: VkPhysicalDevice, pFragmentShadingRateCount: ptr uint32, pFragmentShadingRates: ptr VkPhysicalDeviceFragmentShadingRateKHR): VkResult {.stdcall.} - vkCmdSetFragmentShadingRateKHR*: proc(commandBuffer: VkCommandBuffer, pFragmentSize: ptr VkExtent2D, combinerOps: array[2, VkFragmentShadingRateCombinerOpKHR]): void {.stdcall.} -proc loadVK_KHR_fragment_shading_rate*(instance: VkInstance) = - loadVK_VERSION_1_2(instance) - loadVK_VERSION_1_1(instance) - vkGetPhysicalDeviceFragmentShadingRatesKHR = cast[proc(physicalDevice: VkPhysicalDevice, pFragmentShadingRateCount: ptr uint32, pFragmentShadingRates: ptr VkPhysicalDeviceFragmentShadingRateKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceFragmentShadingRatesKHR")) - vkCmdSetFragmentShadingRateKHR = cast[proc(commandBuffer: VkCommandBuffer, pFragmentSize: ptr VkExtent2D, combinerOps: array[2, VkFragmentShadingRateCombinerOpKHR]): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetFragmentShadingRateKHR")) - -proc loadVK_EXT_depth_clip_enable*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -proc loadVK_EXT_subpass_merge_feedback*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -# extension VK_KHR_external_semaphore_fd -var - vkImportSemaphoreFdKHR*: proc(device: VkDevice, pImportSemaphoreFdInfo: ptr VkImportSemaphoreFdInfoKHR): VkResult {.stdcall.} - vkGetSemaphoreFdKHR*: proc(device: VkDevice, pGetFdInfo: ptr VkSemaphoreGetFdInfoKHR, pFd: ptr cint): VkResult {.stdcall.} -proc loadVK_KHR_external_semaphore_fd*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - vkImportSemaphoreFdKHR = cast[proc(device: VkDevice, pImportSemaphoreFdInfo: ptr VkImportSemaphoreFdInfoKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkImportSemaphoreFdKHR")) - vkGetSemaphoreFdKHR = cast[proc(device: VkDevice, pGetFdInfo: ptr VkSemaphoreGetFdInfoKHR, pFd: ptr cint): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetSemaphoreFdKHR")) - -proc loadVK_KHR_fragment_shader_barycentric*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -proc loadVK_EXT_memory_budget*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -proc loadVK_AMD_device_coherent_memory*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -proc loadVK_EXT_device_memory_report*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -proc loadVK_AMD_memory_overallocation_behavior*(instance: VkInstance) = - discard - -# extension VK_NV_mesh_shader -var - vkCmdDrawMeshTasksNV*: proc(commandBuffer: VkCommandBuffer, taskCount: uint32, firstTask: uint32): void {.stdcall.} - vkCmdDrawMeshTasksIndirectNV*: proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, drawCount: uint32, stride: uint32): void {.stdcall.} - vkCmdDrawMeshTasksIndirectCountNV*: proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, countBuffer: VkBuffer, countBufferOffset: VkDeviceSize, maxDrawCount: uint32, stride: uint32): void {.stdcall.} -proc loadVK_NV_mesh_shader*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - vkCmdDrawMeshTasksNV = cast[proc(commandBuffer: VkCommandBuffer, taskCount: uint32, firstTask: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawMeshTasksNV")) - vkCmdDrawMeshTasksIndirectNV = cast[proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, drawCount: uint32, stride: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawMeshTasksIndirectNV")) - vkCmdDrawMeshTasksIndirectCountNV = cast[proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, countBuffer: VkBuffer, countBufferOffset: VkDeviceSize, maxDrawCount: uint32, stride: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawMeshTasksIndirectCountNV")) - -# extension VK_EXT_image_compression_control -var - vkGetImageSubresourceLayout2EXT*: proc(device: VkDevice, image: VkImage, pSubresource: ptr VkImageSubresource2EXT, pLayout: ptr VkSubresourceLayout2EXT): void {.stdcall.} -proc loadVK_EXT_image_compression_control*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - vkGetImageSubresourceLayout2EXT = cast[proc(device: VkDevice, image: VkImage, pSubresource: ptr VkImageSubresource2EXT, pLayout: ptr VkSubresourceLayout2EXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetImageSubresourceLayout2EXT")) - -# extension VK_EXT_buffer_device_address -var - vkGetBufferDeviceAddressEXT*: proc(device: VkDevice, pInfo: ptr VkBufferDeviceAddressInfo): VkDeviceAddress {.stdcall.} -proc loadVK_EXT_buffer_device_address*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - vkGetBufferDeviceAddressEXT = vkGetBufferDeviceAddress - -proc loadVK_QCOM_render_pass_shader_resolve*(instance: VkInstance) = - discard - -proc loadVK_EXT_depth_range_unrestricted*(instance: VkInstance) = - discard - -# extension VK_HUAWEI_subpass_shading -var - vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI*: proc(device: VkDevice, renderpass: VkRenderPass, pMaxWorkgroupSize: ptr VkExtent2D): VkResult {.stdcall.} - vkCmdSubpassShadingHUAWEI*: proc(commandBuffer: VkCommandBuffer): void {.stdcall.} -proc loadVK_HUAWEI_subpass_shading*(instance: VkInstance) = - loadVK_VERSION_1_2(instance) - loadVK_VERSION_1_3(instance) - vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = cast[proc(device: VkDevice, renderpass: VkRenderPass, pMaxWorkgroupSize: ptr VkExtent2D): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI")) - vkCmdSubpassShadingHUAWEI = cast[proc(commandBuffer: VkCommandBuffer): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSubpassShadingHUAWEI")) - -# extension VK_VALVE_descriptor_set_host_mapping -var - vkGetDescriptorSetLayoutHostMappingInfoVALVE*: proc(device: VkDevice, pBindingReference: ptr VkDescriptorSetBindingReferenceVALVE, pHostMapping: ptr VkDescriptorSetLayoutHostMappingInfoVALVE): void {.stdcall.} - vkGetDescriptorSetHostMappingVALVE*: proc(device: VkDevice, descriptorSet: VkDescriptorSet, ppData: ptr pointer): void {.stdcall.} -proc loadVK_VALVE_descriptor_set_host_mapping*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - vkGetDescriptorSetLayoutHostMappingInfoVALVE = cast[proc(device: VkDevice, pBindingReference: ptr VkDescriptorSetBindingReferenceVALVE, pHostMapping: ptr VkDescriptorSetLayoutHostMappingInfoVALVE): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDescriptorSetLayoutHostMappingInfoVALVE")) - vkGetDescriptorSetHostMappingVALVE = cast[proc(device: VkDevice, descriptorSet: VkDescriptorSet, ppData: ptr pointer): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDescriptorSetHostMappingVALVE")) - -# extension VK_NV_external_memory_capabilities -var - vkGetPhysicalDeviceExternalImageFormatPropertiesNV*: proc(physicalDevice: VkPhysicalDevice, format: VkFormat, thetype: VkImageType, tiling: VkImageTiling, usage: VkImageUsageFlags, flags: VkImageCreateFlags, externalHandleType: VkExternalMemoryHandleTypeFlagsNV, pExternalImageFormatProperties: ptr VkExternalImageFormatPropertiesNV): VkResult {.stdcall.} -proc loadVK_NV_external_memory_capabilities*(instance: VkInstance) = - vkGetPhysicalDeviceExternalImageFormatPropertiesNV = cast[proc(physicalDevice: VkPhysicalDevice, format: VkFormat, thetype: VkImageType, tiling: VkImageTiling, usage: VkImageUsageFlags, flags: VkImageCreateFlags, externalHandleType: VkExternalMemoryHandleTypeFlagsNV, pExternalImageFormatProperties: ptr VkExternalImageFormatPropertiesNV): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV")) - -# extension VK_NV_optical_flow -var - vkGetPhysicalDeviceOpticalFlowImageFormatsNV*: proc(physicalDevice: VkPhysicalDevice, pOpticalFlowImageFormatInfo: ptr VkOpticalFlowImageFormatInfoNV, pFormatCount: ptr uint32, pImageFormatProperties: ptr VkOpticalFlowImageFormatPropertiesNV): VkResult {.stdcall.} - vkCreateOpticalFlowSessionNV*: proc(device: VkDevice, pCreateInfo: ptr VkOpticalFlowSessionCreateInfoNV, pAllocator: ptr VkAllocationCallbacks, pSession: ptr VkOpticalFlowSessionNV): VkResult {.stdcall.} - vkDestroyOpticalFlowSessionNV*: proc(device: VkDevice, session: VkOpticalFlowSessionNV, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkBindOpticalFlowSessionImageNV*: proc(device: VkDevice, session: VkOpticalFlowSessionNV, bindingPoint: VkOpticalFlowSessionBindingPointNV, view: VkImageView, layout: VkImageLayout): VkResult {.stdcall.} - vkCmdOpticalFlowExecuteNV*: proc(commandBuffer: VkCommandBuffer, session: VkOpticalFlowSessionNV, pExecuteInfo: ptr VkOpticalFlowExecuteInfoNV): void {.stdcall.} -proc loadVK_NV_optical_flow*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - loadVK_VERSION_1_3(instance) - loadVK_VERSION_1_3(instance) - vkGetPhysicalDeviceOpticalFlowImageFormatsNV = cast[proc(physicalDevice: VkPhysicalDevice, pOpticalFlowImageFormatInfo: ptr VkOpticalFlowImageFormatInfoNV, pFormatCount: ptr uint32, pImageFormatProperties: ptr VkOpticalFlowImageFormatPropertiesNV): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceOpticalFlowImageFormatsNV")) - vkCreateOpticalFlowSessionNV = cast[proc(device: VkDevice, pCreateInfo: ptr VkOpticalFlowSessionCreateInfoNV, pAllocator: ptr VkAllocationCallbacks, pSession: ptr VkOpticalFlowSessionNV): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateOpticalFlowSessionNV")) - vkDestroyOpticalFlowSessionNV = cast[proc(device: VkDevice, session: VkOpticalFlowSessionNV, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyOpticalFlowSessionNV")) - vkBindOpticalFlowSessionImageNV = cast[proc(device: VkDevice, session: VkOpticalFlowSessionNV, bindingPoint: VkOpticalFlowSessionBindingPointNV, view: VkImageView, layout: VkImageLayout): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkBindOpticalFlowSessionImageNV")) - vkCmdOpticalFlowExecuteNV = cast[proc(commandBuffer: VkCommandBuffer, session: VkOpticalFlowSessionNV, pExecuteInfo: ptr VkOpticalFlowExecuteInfoNV): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdOpticalFlowExecuteNV")) - -proc loadVK_EXT_vertex_attribute_divisor*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -# extension VK_EXT_line_rasterization -var - vkCmdSetLineStippleEXT*: proc(commandBuffer: VkCommandBuffer, lineStippleFactor: uint32, lineStipplePattern: uint16): void {.stdcall.} -proc loadVK_EXT_line_rasterization*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - vkCmdSetLineStippleEXT = cast[proc(commandBuffer: VkCommandBuffer, lineStippleFactor: uint32, lineStipplePattern: uint16): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetLineStippleEXT")) - -proc loadVK_AMD_texture_gather_bias_lod*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -proc loadVK_KHR_shader_subgroup_uniform_control_flow*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -proc loadVK_EXT_external_memory_dma_buf*(instance: VkInstance) = - loadVK_KHR_external_memory_fd(instance) - -proc loadVK_IMG_filter_cubic*(instance: VkInstance) = - discard - -proc loadVK_AMD_shader_ballot*(instance: VkInstance) = - discard - -# extension VK_AMD_buffer_marker -var - vkCmdWriteBufferMarkerAMD*: proc(commandBuffer: VkCommandBuffer, pipelineStage: VkPipelineStageFlagBits, dstBuffer: VkBuffer, dstOffset: VkDeviceSize, marker: uint32): void {.stdcall.} -proc loadVK_AMD_buffer_marker*(instance: VkInstance) = - vkCmdWriteBufferMarkerAMD = cast[proc(commandBuffer: VkCommandBuffer, pipelineStage: VkPipelineStageFlagBits, dstBuffer: VkBuffer, dstOffset: VkDeviceSize, marker: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdWriteBufferMarkerAMD")) - -proc loadVK_NV_corner_sampled_image*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -proc loadVK_KHR_pipeline_library*(instance: VkInstance) = - discard - -proc loadVK_EXT_blend_operation_advanced*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -# extension VK_NV_scissor_exclusive -var - vkCmdSetExclusiveScissorEnableNV*: proc(commandBuffer: VkCommandBuffer, firstExclusiveScissor: uint32, exclusiveScissorCount: uint32, pExclusiveScissorEnables: ptr VkBool32): void {.stdcall.} - vkCmdSetExclusiveScissorNV*: proc(commandBuffer: VkCommandBuffer, firstExclusiveScissor: uint32, exclusiveScissorCount: uint32, pExclusiveScissors: ptr VkRect2D): void {.stdcall.} -proc loadVK_NV_scissor_exclusive*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - vkCmdSetExclusiveScissorEnableNV = cast[proc(commandBuffer: VkCommandBuffer, firstExclusiveScissor: uint32, exclusiveScissorCount: uint32, pExclusiveScissorEnables: ptr VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetExclusiveScissorEnableNV")) - vkCmdSetExclusiveScissorNV = cast[proc(commandBuffer: VkCommandBuffer, firstExclusiveScissor: uint32, exclusiveScissorCount: uint32, pExclusiveScissors: ptr VkRect2D): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetExclusiveScissorNV")) - -proc loadVK_NV_framebuffer_mixed_samples*(instance: VkInstance) = - discard - -proc loadVK_NV_sample_mask_override_coverage*(instance: VkInstance) = - discard - -proc loadVK_EXT_filter_cubic*(instance: VkInstance) = - discard - -# extension VK_KHR_pipeline_executable_properties -var - vkGetPipelineExecutablePropertiesKHR*: proc(device: VkDevice, pPipelineInfo: ptr VkPipelineInfoKHR, pExecutableCount: ptr uint32, pProperties: ptr VkPipelineExecutablePropertiesKHR): VkResult {.stdcall.} - vkGetPipelineExecutableStatisticsKHR*: proc(device: VkDevice, pExecutableInfo: ptr VkPipelineExecutableInfoKHR, pStatisticCount: ptr uint32, pStatistics: ptr VkPipelineExecutableStatisticKHR): VkResult {.stdcall.} - vkGetPipelineExecutableInternalRepresentationsKHR*: proc(device: VkDevice, pExecutableInfo: ptr VkPipelineExecutableInfoKHR, pInternalRepresentationCount: ptr uint32, pInternalRepresentations: ptr VkPipelineExecutableInternalRepresentationKHR): VkResult {.stdcall.} -proc loadVK_KHR_pipeline_executable_properties*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - vkGetPipelineExecutablePropertiesKHR = cast[proc(device: VkDevice, pPipelineInfo: ptr VkPipelineInfoKHR, pExecutableCount: ptr uint32, pProperties: ptr VkPipelineExecutablePropertiesKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPipelineExecutablePropertiesKHR")) - vkGetPipelineExecutableStatisticsKHR = cast[proc(device: VkDevice, pExecutableInfo: ptr VkPipelineExecutableInfoKHR, pStatisticCount: ptr uint32, pStatistics: ptr VkPipelineExecutableStatisticKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPipelineExecutableStatisticsKHR")) - vkGetPipelineExecutableInternalRepresentationsKHR = cast[proc(device: VkDevice, pExecutableInfo: ptr VkPipelineExecutableInfoKHR, pInternalRepresentationCount: ptr uint32, pInternalRepresentations: ptr VkPipelineExecutableInternalRepresentationKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPipelineExecutableInternalRepresentationsKHR")) - -# extension VK_EXT_extended_dynamic_state3 -var - vkCmdSetTessellationDomainOriginEXT*: proc(commandBuffer: VkCommandBuffer, domainOrigin: VkTessellationDomainOrigin): void {.stdcall.} - vkCmdSetDepthClampEnableEXT*: proc(commandBuffer: VkCommandBuffer, depthClampEnable: VkBool32): void {.stdcall.} - vkCmdSetPolygonModeEXT*: proc(commandBuffer: VkCommandBuffer, polygonMode: VkPolygonMode): void {.stdcall.} - vkCmdSetRasterizationSamplesEXT*: proc(commandBuffer: VkCommandBuffer, rasterizationSamples: VkSampleCountFlagBits): void {.stdcall.} - vkCmdSetSampleMaskEXT*: proc(commandBuffer: VkCommandBuffer, samples: VkSampleCountFlagBits, pSampleMask: ptr VkSampleMask): void {.stdcall.} - vkCmdSetAlphaToCoverageEnableEXT*: proc(commandBuffer: VkCommandBuffer, alphaToCoverageEnable: VkBool32): void {.stdcall.} - vkCmdSetAlphaToOneEnableEXT*: proc(commandBuffer: VkCommandBuffer, alphaToOneEnable: VkBool32): void {.stdcall.} - vkCmdSetLogicOpEnableEXT*: proc(commandBuffer: VkCommandBuffer, logicOpEnable: VkBool32): void {.stdcall.} - vkCmdSetColorBlendEnableEXT*: proc(commandBuffer: VkCommandBuffer, firstAttachment: uint32, attachmentCount: uint32, pColorBlendEnables: ptr VkBool32): void {.stdcall.} - vkCmdSetColorBlendEquationEXT*: proc(commandBuffer: VkCommandBuffer, firstAttachment: uint32, attachmentCount: uint32, pColorBlendEquations: ptr VkColorBlendEquationEXT): void {.stdcall.} - vkCmdSetColorWriteMaskEXT*: proc(commandBuffer: VkCommandBuffer, firstAttachment: uint32, attachmentCount: uint32, pColorWriteMasks: ptr VkColorComponentFlags): void {.stdcall.} - vkCmdSetRasterizationStreamEXT*: proc(commandBuffer: VkCommandBuffer, rasterizationStream: uint32): void {.stdcall.} - vkCmdSetConservativeRasterizationModeEXT*: proc(commandBuffer: VkCommandBuffer, conservativeRasterizationMode: VkConservativeRasterizationModeEXT): void {.stdcall.} - vkCmdSetExtraPrimitiveOverestimationSizeEXT*: proc(commandBuffer: VkCommandBuffer, extraPrimitiveOverestimationSize: float32): void {.stdcall.} - vkCmdSetDepthClipEnableEXT*: proc(commandBuffer: VkCommandBuffer, depthClipEnable: VkBool32): void {.stdcall.} - vkCmdSetSampleLocationsEnableEXT*: proc(commandBuffer: VkCommandBuffer, sampleLocationsEnable: VkBool32): void {.stdcall.} - vkCmdSetColorBlendAdvancedEXT*: proc(commandBuffer: VkCommandBuffer, firstAttachment: uint32, attachmentCount: uint32, pColorBlendAdvanced: ptr VkColorBlendAdvancedEXT): void {.stdcall.} - vkCmdSetProvokingVertexModeEXT*: proc(commandBuffer: VkCommandBuffer, provokingVertexMode: VkProvokingVertexModeEXT): void {.stdcall.} - vkCmdSetLineRasterizationModeEXT*: proc(commandBuffer: VkCommandBuffer, lineRasterizationMode: VkLineRasterizationModeEXT): void {.stdcall.} - vkCmdSetLineStippleEnableEXT*: proc(commandBuffer: VkCommandBuffer, stippledLineEnable: VkBool32): void {.stdcall.} - vkCmdSetDepthClipNegativeOneToOneEXT*: proc(commandBuffer: VkCommandBuffer, negativeOneToOne: VkBool32): void {.stdcall.} - vkCmdSetViewportWScalingEnableNV*: proc(commandBuffer: VkCommandBuffer, viewportWScalingEnable: VkBool32): void {.stdcall.} - vkCmdSetViewportSwizzleNV*: proc(commandBuffer: VkCommandBuffer, firstViewport: uint32, viewportCount: uint32, pViewportSwizzles: ptr VkViewportSwizzleNV): void {.stdcall.} - vkCmdSetCoverageToColorEnableNV*: proc(commandBuffer: VkCommandBuffer, coverageToColorEnable: VkBool32): void {.stdcall.} - vkCmdSetCoverageToColorLocationNV*: proc(commandBuffer: VkCommandBuffer, coverageToColorLocation: uint32): void {.stdcall.} - vkCmdSetCoverageModulationModeNV*: proc(commandBuffer: VkCommandBuffer, coverageModulationMode: VkCoverageModulationModeNV): void {.stdcall.} - vkCmdSetCoverageModulationTableEnableNV*: proc(commandBuffer: VkCommandBuffer, coverageModulationTableEnable: VkBool32): void {.stdcall.} - vkCmdSetCoverageModulationTableNV*: proc(commandBuffer: VkCommandBuffer, coverageModulationTableCount: uint32, pCoverageModulationTable: ptr float32): void {.stdcall.} - vkCmdSetShadingRateImageEnableNV*: proc(commandBuffer: VkCommandBuffer, shadingRateImageEnable: VkBool32): void {.stdcall.} - vkCmdSetRepresentativeFragmentTestEnableNV*: proc(commandBuffer: VkCommandBuffer, representativeFragmentTestEnable: VkBool32): void {.stdcall.} - vkCmdSetCoverageReductionModeNV*: proc(commandBuffer: VkCommandBuffer, coverageReductionMode: VkCoverageReductionModeNV): void {.stdcall.} -proc loadVK_EXT_extended_dynamic_state3*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - vkCmdSetTessellationDomainOriginEXT = cast[proc(commandBuffer: VkCommandBuffer, domainOrigin: VkTessellationDomainOrigin): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetTessellationDomainOriginEXT")) - vkCmdSetDepthClampEnableEXT = cast[proc(commandBuffer: VkCommandBuffer, depthClampEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDepthClampEnableEXT")) - vkCmdSetPolygonModeEXT = cast[proc(commandBuffer: VkCommandBuffer, polygonMode: VkPolygonMode): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetPolygonModeEXT")) - vkCmdSetRasterizationSamplesEXT = cast[proc(commandBuffer: VkCommandBuffer, rasterizationSamples: VkSampleCountFlagBits): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetRasterizationSamplesEXT")) - vkCmdSetSampleMaskEXT = cast[proc(commandBuffer: VkCommandBuffer, samples: VkSampleCountFlagBits, pSampleMask: ptr VkSampleMask): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetSampleMaskEXT")) - vkCmdSetAlphaToCoverageEnableEXT = cast[proc(commandBuffer: VkCommandBuffer, alphaToCoverageEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetAlphaToCoverageEnableEXT")) - vkCmdSetAlphaToOneEnableEXT = cast[proc(commandBuffer: VkCommandBuffer, alphaToOneEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetAlphaToOneEnableEXT")) - vkCmdSetLogicOpEnableEXT = cast[proc(commandBuffer: VkCommandBuffer, logicOpEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetLogicOpEnableEXT")) - vkCmdSetColorBlendEnableEXT = cast[proc(commandBuffer: VkCommandBuffer, firstAttachment: uint32, attachmentCount: uint32, pColorBlendEnables: ptr VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetColorBlendEnableEXT")) - vkCmdSetColorBlendEquationEXT = cast[proc(commandBuffer: VkCommandBuffer, firstAttachment: uint32, attachmentCount: uint32, pColorBlendEquations: ptr VkColorBlendEquationEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetColorBlendEquationEXT")) - vkCmdSetColorWriteMaskEXT = cast[proc(commandBuffer: VkCommandBuffer, firstAttachment: uint32, attachmentCount: uint32, pColorWriteMasks: ptr VkColorComponentFlags): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetColorWriteMaskEXT")) - vkCmdSetRasterizationStreamEXT = cast[proc(commandBuffer: VkCommandBuffer, rasterizationStream: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetRasterizationStreamEXT")) - vkCmdSetConservativeRasterizationModeEXT = cast[proc(commandBuffer: VkCommandBuffer, conservativeRasterizationMode: VkConservativeRasterizationModeEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetConservativeRasterizationModeEXT")) - vkCmdSetExtraPrimitiveOverestimationSizeEXT = cast[proc(commandBuffer: VkCommandBuffer, extraPrimitiveOverestimationSize: float32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetExtraPrimitiveOverestimationSizeEXT")) - vkCmdSetDepthClipEnableEXT = cast[proc(commandBuffer: VkCommandBuffer, depthClipEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDepthClipEnableEXT")) - vkCmdSetSampleLocationsEnableEXT = cast[proc(commandBuffer: VkCommandBuffer, sampleLocationsEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetSampleLocationsEnableEXT")) - vkCmdSetColorBlendAdvancedEXT = cast[proc(commandBuffer: VkCommandBuffer, firstAttachment: uint32, attachmentCount: uint32, pColorBlendAdvanced: ptr VkColorBlendAdvancedEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetColorBlendAdvancedEXT")) - vkCmdSetProvokingVertexModeEXT = cast[proc(commandBuffer: VkCommandBuffer, provokingVertexMode: VkProvokingVertexModeEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetProvokingVertexModeEXT")) - vkCmdSetLineRasterizationModeEXT = cast[proc(commandBuffer: VkCommandBuffer, lineRasterizationMode: VkLineRasterizationModeEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetLineRasterizationModeEXT")) - vkCmdSetLineStippleEnableEXT = cast[proc(commandBuffer: VkCommandBuffer, stippledLineEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetLineStippleEnableEXT")) - vkCmdSetDepthClipNegativeOneToOneEXT = cast[proc(commandBuffer: VkCommandBuffer, negativeOneToOne: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDepthClipNegativeOneToOneEXT")) - vkCmdSetViewportWScalingEnableNV = cast[proc(commandBuffer: VkCommandBuffer, viewportWScalingEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetViewportWScalingEnableNV")) - vkCmdSetViewportSwizzleNV = cast[proc(commandBuffer: VkCommandBuffer, firstViewport: uint32, viewportCount: uint32, pViewportSwizzles: ptr VkViewportSwizzleNV): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetViewportSwizzleNV")) - vkCmdSetCoverageToColorEnableNV = cast[proc(commandBuffer: VkCommandBuffer, coverageToColorEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetCoverageToColorEnableNV")) - vkCmdSetCoverageToColorLocationNV = cast[proc(commandBuffer: VkCommandBuffer, coverageToColorLocation: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetCoverageToColorLocationNV")) - vkCmdSetCoverageModulationModeNV = cast[proc(commandBuffer: VkCommandBuffer, coverageModulationMode: VkCoverageModulationModeNV): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetCoverageModulationModeNV")) - vkCmdSetCoverageModulationTableEnableNV = cast[proc(commandBuffer: VkCommandBuffer, coverageModulationTableEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetCoverageModulationTableEnableNV")) - vkCmdSetCoverageModulationTableNV = cast[proc(commandBuffer: VkCommandBuffer, coverageModulationTableCount: uint32, pCoverageModulationTable: ptr float32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetCoverageModulationTableNV")) - vkCmdSetShadingRateImageEnableNV = cast[proc(commandBuffer: VkCommandBuffer, shadingRateImageEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetShadingRateImageEnableNV")) - vkCmdSetRepresentativeFragmentTestEnableNV = cast[proc(commandBuffer: VkCommandBuffer, representativeFragmentTestEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetRepresentativeFragmentTestEnableNV")) - vkCmdSetCoverageReductionModeNV = cast[proc(commandBuffer: VkCommandBuffer, coverageReductionMode: VkCoverageReductionModeNV): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetCoverageReductionModeNV")) - -proc loadVK_EXT_device_address_binding_report*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - loadVK_EXT_debug_utils(instance) - -# extension VK_NV_clip_space_w_scaling -var - vkCmdSetViewportWScalingNV*: proc(commandBuffer: VkCommandBuffer, firstViewport: uint32, viewportCount: uint32, pViewportWScalings: ptr VkViewportWScalingNV): void {.stdcall.} -proc loadVK_NV_clip_space_w_scaling*(instance: VkInstance) = - vkCmdSetViewportWScalingNV = cast[proc(commandBuffer: VkCommandBuffer, firstViewport: uint32, viewportCount: uint32, pViewportWScalings: ptr VkViewportWScalingNV): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetViewportWScalingNV")) - -proc loadVK_NV_fill_rectangle*(instance: VkInstance) = - discard - -proc loadVK_EXT_shader_image_atomic_int64*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -proc loadVK_EXT_ycbcr_image_arrays*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -# extension VK_EXT_calibrated_timestamps -var - vkGetPhysicalDeviceCalibrateableTimeDomainsEXT*: proc(physicalDevice: VkPhysicalDevice, pTimeDomainCount: ptr uint32, pTimeDomains: ptr VkTimeDomainEXT): VkResult {.stdcall.} - vkGetCalibratedTimestampsEXT*: proc(device: VkDevice, timestampCount: uint32, pTimestampInfos: ptr VkCalibratedTimestampInfoEXT, pTimestamps: ptr uint64, pMaxDeviation: ptr uint64): VkResult {.stdcall.} -proc loadVK_EXT_calibrated_timestamps*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = cast[proc(physicalDevice: VkPhysicalDevice, pTimeDomainCount: ptr uint32, pTimeDomains: ptr VkTimeDomainEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT")) - vkGetCalibratedTimestampsEXT = cast[proc(device: VkDevice, timestampCount: uint32, pTimestampInfos: ptr VkCalibratedTimestampInfoEXT, pTimestamps: ptr uint64, pMaxDeviation: ptr uint64): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetCalibratedTimestampsEXT")) - -proc loadVK_EXT_attachment_feedback_loop_layout*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -proc loadVK_AMD_mixed_attachment_samples*(instance: VkInstance) = - discard - -# extension VK_EXT_external_memory_host -var - vkGetMemoryHostPointerPropertiesEXT*: proc(device: VkDevice, handleType: VkExternalMemoryHandleTypeFlagBits, pHostPointer: pointer, pMemoryHostPointerProperties: ptr VkMemoryHostPointerPropertiesEXT): VkResult {.stdcall.} -proc loadVK_EXT_external_memory_host*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - vkGetMemoryHostPointerPropertiesEXT = cast[proc(device: VkDevice, handleType: VkExternalMemoryHandleTypeFlagBits, pHostPointer: pointer, pMemoryHostPointerProperties: ptr VkMemoryHostPointerPropertiesEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetMemoryHostPointerPropertiesEXT")) - -proc loadVK_ARM_shader_core_properties*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -# extension VK_EXT_shader_module_identifier -var - vkGetShaderModuleIdentifierEXT*: proc(device: VkDevice, shaderModule: VkShaderModule, pIdentifier: ptr VkShaderModuleIdentifierEXT): void {.stdcall.} - vkGetShaderModuleCreateInfoIdentifierEXT*: proc(device: VkDevice, pCreateInfo: ptr VkShaderModuleCreateInfo, pIdentifier: ptr VkShaderModuleIdentifierEXT): void {.stdcall.} -proc loadVK_EXT_shader_module_identifier*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - loadVK_VERSION_1_3(instance) - vkGetShaderModuleIdentifierEXT = cast[proc(device: VkDevice, shaderModule: VkShaderModule, pIdentifier: ptr VkShaderModuleIdentifierEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetShaderModuleIdentifierEXT")) - vkGetShaderModuleCreateInfoIdentifierEXT = cast[proc(device: VkDevice, pCreateInfo: ptr VkShaderModuleCreateInfo, pIdentifier: ptr VkShaderModuleIdentifierEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetShaderModuleCreateInfoIdentifierEXT")) - -proc loadVK_EXT_border_color_swizzle*(instance: VkInstance) = - loadVK_EXT_custom_border_color(instance) - -# extension VK_NV_memory_decompression -var - vkCmdDecompressMemoryNV*: proc(commandBuffer: VkCommandBuffer, decompressRegionCount: uint32, pDecompressMemoryRegions: ptr VkDecompressMemoryRegionNV): void {.stdcall.} - vkCmdDecompressMemoryIndirectCountNV*: proc(commandBuffer: VkCommandBuffer, indirectCommandsAddress: VkDeviceAddress, indirectCommandsCountAddress: VkDeviceAddress, stride: uint32): void {.stdcall.} -proc loadVK_NV_memory_decompression*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - loadVK_VERSION_1_2(instance) - vkCmdDecompressMemoryNV = cast[proc(commandBuffer: VkCommandBuffer, decompressRegionCount: uint32, pDecompressMemoryRegions: ptr VkDecompressMemoryRegionNV): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDecompressMemoryNV")) - vkCmdDecompressMemoryIndirectCountNV = cast[proc(commandBuffer: VkCommandBuffer, indirectCommandsAddress: VkDeviceAddress, indirectCommandsCountAddress: VkDeviceAddress, stride: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDecompressMemoryIndirectCountNV")) - -proc loadVK_EXT_fragment_shader_interlock*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -# extension VK_NV_coverage_reduction_mode -var - vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV*: proc(physicalDevice: VkPhysicalDevice, pCombinationCount: ptr uint32, pCombinations: ptr VkFramebufferMixedSamplesCombinationNV): VkResult {.stdcall.} -proc loadVK_NV_coverage_reduction_mode*(instance: VkInstance) = - loadVK_NV_framebuffer_mixed_samples(instance) - loadVK_VERSION_1_1(instance) - vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = cast[proc(physicalDevice: VkPhysicalDevice, pCombinationCount: ptr uint32, pCombinations: ptr VkFramebufferMixedSamplesCombinationNV): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV")) - -proc loadVK_NV_glsl_shader*(instance: VkInstance) = - discard - -proc loadVK_KHR_shader_clock*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -# extension VK_QCOM_tile_properties -var - vkGetFramebufferTilePropertiesQCOM*: proc(device: VkDevice, framebuffer: VkFramebuffer, pPropertiesCount: ptr uint32, pProperties: ptr VkTilePropertiesQCOM): VkResult {.stdcall.} - vkGetDynamicRenderingTilePropertiesQCOM*: proc(device: VkDevice, pRenderingInfo: ptr VkRenderingInfo, pProperties: ptr VkTilePropertiesQCOM): VkResult {.stdcall.} -proc loadVK_QCOM_tile_properties*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - vkGetFramebufferTilePropertiesQCOM = cast[proc(device: VkDevice, framebuffer: VkFramebuffer, pPropertiesCount: ptr uint32, pProperties: ptr VkTilePropertiesQCOM): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetFramebufferTilePropertiesQCOM")) - vkGetDynamicRenderingTilePropertiesQCOM = cast[proc(device: VkDevice, pRenderingInfo: ptr VkRenderingInfo, pProperties: ptr VkTilePropertiesQCOM): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDynamicRenderingTilePropertiesQCOM")) - -# extension VK_KHR_push_descriptor -var - vkCmdPushDescriptorSetKHR*: proc(commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, layout: VkPipelineLayout, set: uint32, descriptorWriteCount: uint32, pDescriptorWrites: ptr VkWriteDescriptorSet): void {.stdcall.} - vkCmdPushDescriptorSetWithTemplateKHR*: proc(commandBuffer: VkCommandBuffer, descriptorUpdateTemplate: VkDescriptorUpdateTemplate, layout: VkPipelineLayout, set: uint32, pData: pointer): void {.stdcall.} -proc loadVK_KHR_push_descriptor*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - vkCmdPushDescriptorSetKHR = cast[proc(commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, layout: VkPipelineLayout, set: uint32, descriptorWriteCount: uint32, pDescriptorWrites: ptr VkWriteDescriptorSet): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdPushDescriptorSetKHR")) - vkCmdPushDescriptorSetWithTemplateKHR = cast[proc(commandBuffer: VkCommandBuffer, descriptorUpdateTemplate: VkDescriptorUpdateTemplate, layout: VkPipelineLayout, set: uint32, pData: pointer): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdPushDescriptorSetWithTemplateKHR")) - vkCmdPushDescriptorSetWithTemplateKHR = cast[proc(commandBuffer: VkCommandBuffer, descriptorUpdateTemplate: VkDescriptorUpdateTemplate, layout: VkPipelineLayout, set: uint32, pData: pointer): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdPushDescriptorSetWithTemplateKHR")) - -proc loadVK_NV_viewport_swizzle*(instance: VkInstance) = - discard - -proc loadVK_NV_external_memory*(instance: VkInstance) = - loadVK_NV_external_memory_capabilities(instance) - -proc loadVK_EXT_depth_clip_control*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -proc loadVK_EXT_validation_flags*(instance: VkInstance) = - discard - -proc loadVK_EXT_conservative_rasterization*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -proc loadVK_AMD_gcn_shader*(instance: VkInstance) = - discard - -# extension VK_INTEL_performance_query -var - vkInitializePerformanceApiINTEL*: proc(device: VkDevice, pInitializeInfo: ptr VkInitializePerformanceApiInfoINTEL): VkResult {.stdcall.} - vkUninitializePerformanceApiINTEL*: proc(device: VkDevice): void {.stdcall.} - vkCmdSetPerformanceMarkerINTEL*: proc(commandBuffer: VkCommandBuffer, pMarkerInfo: ptr VkPerformanceMarkerInfoINTEL): VkResult {.stdcall.} - vkCmdSetPerformanceStreamMarkerINTEL*: proc(commandBuffer: VkCommandBuffer, pMarkerInfo: ptr VkPerformanceStreamMarkerInfoINTEL): VkResult {.stdcall.} - vkCmdSetPerformanceOverrideINTEL*: proc(commandBuffer: VkCommandBuffer, pOverrideInfo: ptr VkPerformanceOverrideInfoINTEL): VkResult {.stdcall.} - vkAcquirePerformanceConfigurationINTEL*: proc(device: VkDevice, pAcquireInfo: ptr VkPerformanceConfigurationAcquireInfoINTEL, pConfiguration: ptr VkPerformanceConfigurationINTEL): VkResult {.stdcall.} - vkReleasePerformanceConfigurationINTEL*: proc(device: VkDevice, configuration: VkPerformanceConfigurationINTEL): VkResult {.stdcall.} - vkQueueSetPerformanceConfigurationINTEL*: proc(queue: VkQueue, configuration: VkPerformanceConfigurationINTEL): VkResult {.stdcall.} - vkGetPerformanceParameterINTEL*: proc(device: VkDevice, parameter: VkPerformanceParameterTypeINTEL, pValue: ptr VkPerformanceValueINTEL): VkResult {.stdcall.} -proc loadVK_INTEL_performance_query*(instance: VkInstance) = - vkInitializePerformanceApiINTEL = cast[proc(device: VkDevice, pInitializeInfo: ptr VkInitializePerformanceApiInfoINTEL): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkInitializePerformanceApiINTEL")) - vkUninitializePerformanceApiINTEL = cast[proc(device: VkDevice): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkUninitializePerformanceApiINTEL")) - vkCmdSetPerformanceMarkerINTEL = cast[proc(commandBuffer: VkCommandBuffer, pMarkerInfo: ptr VkPerformanceMarkerInfoINTEL): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetPerformanceMarkerINTEL")) - vkCmdSetPerformanceStreamMarkerINTEL = cast[proc(commandBuffer: VkCommandBuffer, pMarkerInfo: ptr VkPerformanceStreamMarkerInfoINTEL): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetPerformanceStreamMarkerINTEL")) - vkCmdSetPerformanceOverrideINTEL = cast[proc(commandBuffer: VkCommandBuffer, pOverrideInfo: ptr VkPerformanceOverrideInfoINTEL): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetPerformanceOverrideINTEL")) - vkAcquirePerformanceConfigurationINTEL = cast[proc(device: VkDevice, pAcquireInfo: ptr VkPerformanceConfigurationAcquireInfoINTEL, pConfiguration: ptr VkPerformanceConfigurationINTEL): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkAcquirePerformanceConfigurationINTEL")) - vkReleasePerformanceConfigurationINTEL = cast[proc(device: VkDevice, configuration: VkPerformanceConfigurationINTEL): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkReleasePerformanceConfigurationINTEL")) - vkQueueSetPerformanceConfigurationINTEL = cast[proc(queue: VkQueue, configuration: VkPerformanceConfigurationINTEL): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkQueueSetPerformanceConfigurationINTEL")) - vkGetPerformanceParameterINTEL = cast[proc(device: VkDevice, parameter: VkPerformanceParameterTypeINTEL, pValue: ptr VkPerformanceValueINTEL): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPerformanceParameterINTEL")) - -proc loadVK_EXT_primitives_generated_query*(instance: VkInstance) = - loadVK_EXT_transform_feedback(instance) - -proc loadVK_AMD_pipeline_compiler_control*(instance: VkInstance) = - discard - -proc loadVK_EXT_post_depth_coverage*(instance: VkInstance) = - discard - -# extension VK_EXT_conditional_rendering -var - vkCmdBeginConditionalRenderingEXT*: proc(commandBuffer: VkCommandBuffer, pConditionalRenderingBegin: ptr VkConditionalRenderingBeginInfoEXT): void {.stdcall.} - vkCmdEndConditionalRenderingEXT*: proc(commandBuffer: VkCommandBuffer): void {.stdcall.} -proc loadVK_EXT_conditional_rendering*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - vkCmdBeginConditionalRenderingEXT = cast[proc(commandBuffer: VkCommandBuffer, pConditionalRenderingBegin: ptr VkConditionalRenderingBeginInfoEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBeginConditionalRenderingEXT")) - vkCmdEndConditionalRenderingEXT = cast[proc(commandBuffer: VkCommandBuffer): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdEndConditionalRenderingEXT")) - -proc loadVK_QCOM_multiview_per_view_viewports*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -# extension VK_EXT_multi_draw -var - vkCmdDrawMultiEXT*: proc(commandBuffer: VkCommandBuffer, drawCount: uint32, pVertexInfo: ptr VkMultiDrawInfoEXT, instanceCount: uint32, firstInstance: uint32, stride: uint32): void {.stdcall.} - vkCmdDrawMultiIndexedEXT*: proc(commandBuffer: VkCommandBuffer, drawCount: uint32, pIndexInfo: ptr VkMultiDrawIndexedInfoEXT, instanceCount: uint32, firstInstance: uint32, stride: uint32, pVertexOffset: ptr int32): void {.stdcall.} -proc loadVK_EXT_multi_draw*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - vkCmdDrawMultiEXT = cast[proc(commandBuffer: VkCommandBuffer, drawCount: uint32, pVertexInfo: ptr VkMultiDrawInfoEXT, instanceCount: uint32, firstInstance: uint32, stride: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawMultiEXT")) - vkCmdDrawMultiIndexedEXT = cast[proc(commandBuffer: VkCommandBuffer, drawCount: uint32, pIndexInfo: ptr VkMultiDrawIndexedInfoEXT, instanceCount: uint32, firstInstance: uint32, stride: uint32, pVertexOffset: ptr int32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawMultiIndexedEXT")) - -proc loadVK_NV_fragment_coverage_to_color*(instance: VkInstance) = - discard - -proc loadVK_EXT_load_store_op_none*(instance: VkInstance) = - discard - -proc loadVK_EXT_validation_features*(instance: VkInstance) = - discard - -proc loadVK_KHR_workgroup_memory_explicit_layout*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -proc loadVK_EXT_index_type_uint8*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -proc loadVK_GOOGLE_decorate_string*(instance: VkInstance) = - discard - -proc loadVK_EXT_shader_atomic_float*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -# extension VK_EXT_pipeline_properties -var - vkGetPipelinePropertiesEXT*: proc(device: VkDevice, pPipelineInfo: ptr VkPipelineInfoEXT, pPipelineProperties: ptr VkBaseOutStructure): VkResult {.stdcall.} -proc loadVK_EXT_pipeline_properties*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - vkGetPipelinePropertiesEXT = cast[proc(device: VkDevice, pPipelineInfo: ptr VkPipelineInfoEXT, pPipelineProperties: ptr VkBaseOutStructure): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPipelinePropertiesEXT")) - -proc loadVK_EXT_graphics_pipeline_library*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - loadVK_KHR_pipeline_library(instance) - -# extension VK_KHR_surface -var - vkDestroySurfaceKHR*: proc(instance: VkInstance, surface: VkSurfaceKHR, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkGetPhysicalDeviceSurfaceSupportKHR*: proc(physicalDevice: VkPhysicalDevice, queueFamilyIndex: uint32, surface: VkSurfaceKHR, pSupported: ptr VkBool32): VkResult {.stdcall.} - vkGetPhysicalDeviceSurfaceCapabilitiesKHR*: proc(physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pSurfaceCapabilities: ptr VkSurfaceCapabilitiesKHR): VkResult {.stdcall.} - vkGetPhysicalDeviceSurfaceFormatsKHR*: proc(physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pSurfaceFormatCount: ptr uint32, pSurfaceFormats: ptr VkSurfaceFormatKHR): VkResult {.stdcall.} - vkGetPhysicalDeviceSurfacePresentModesKHR*: proc(physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pPresentModeCount: ptr uint32, pPresentModes: ptr VkPresentModeKHR): VkResult {.stdcall.} -proc loadVK_KHR_surface*(instance: VkInstance) = - vkDestroySurfaceKHR = cast[proc(instance: VkInstance, surface: VkSurfaceKHR, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroySurfaceKHR")) - vkGetPhysicalDeviceSurfaceSupportKHR = cast[proc(physicalDevice: VkPhysicalDevice, queueFamilyIndex: uint32, surface: VkSurfaceKHR, pSupported: ptr VkBool32): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSurfaceSupportKHR")) - vkGetPhysicalDeviceSurfaceCapabilitiesKHR = cast[proc(physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pSurfaceCapabilities: ptr VkSurfaceCapabilitiesKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR")) - vkGetPhysicalDeviceSurfaceFormatsKHR = cast[proc(physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pSurfaceFormatCount: ptr uint32, pSurfaceFormats: ptr VkSurfaceFormatKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSurfaceFormatsKHR")) - vkGetPhysicalDeviceSurfacePresentModesKHR = cast[proc(physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pPresentModeCount: ptr uint32, pPresentModes: ptr VkPresentModeKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSurfacePresentModesKHR")) - -proc loadVK_AMD_gpu_shader_half_float*(instance: VkInstance) = - discard - -# extension VK_KHR_deferred_host_operations -var - vkCreateDeferredOperationKHR*: proc(device: VkDevice, pAllocator: ptr VkAllocationCallbacks, pDeferredOperation: ptr VkDeferredOperationKHR): VkResult {.stdcall.} - vkDestroyDeferredOperationKHR*: proc(device: VkDevice, operation: VkDeferredOperationKHR, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkGetDeferredOperationMaxConcurrencyKHR*: proc(device: VkDevice, operation: VkDeferredOperationKHR): uint32 {.stdcall.} - vkGetDeferredOperationResultKHR*: proc(device: VkDevice, operation: VkDeferredOperationKHR): VkResult {.stdcall.} - vkDeferredOperationJoinKHR*: proc(device: VkDevice, operation: VkDeferredOperationKHR): VkResult {.stdcall.} -proc loadVK_KHR_deferred_host_operations*(instance: VkInstance) = - vkCreateDeferredOperationKHR = cast[proc(device: VkDevice, pAllocator: ptr VkAllocationCallbacks, pDeferredOperation: ptr VkDeferredOperationKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateDeferredOperationKHR")) - vkDestroyDeferredOperationKHR = cast[proc(device: VkDevice, operation: VkDeferredOperationKHR, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyDeferredOperationKHR")) - vkGetDeferredOperationMaxConcurrencyKHR = cast[proc(device: VkDevice, operation: VkDeferredOperationKHR): uint32 {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeferredOperationMaxConcurrencyKHR")) - vkGetDeferredOperationResultKHR = cast[proc(device: VkDevice, operation: VkDeferredOperationKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeferredOperationResultKHR")) - vkDeferredOperationJoinKHR = cast[proc(device: VkDevice, operation: VkDeferredOperationKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDeferredOperationJoinKHR")) - -proc loadVK_NV_dedicated_allocation*(instance: VkInstance) = - discard - -# extension VK_NVX_image_view_handle -var - vkGetImageViewHandleNVX*: proc(device: VkDevice, pInfo: ptr VkImageViewHandleInfoNVX): uint32 {.stdcall.} - vkGetImageViewAddressNVX*: proc(device: VkDevice, imageView: VkImageView, pProperties: ptr VkImageViewAddressPropertiesNVX): VkResult {.stdcall.} -proc loadVK_NVX_image_view_handle*(instance: VkInstance) = - vkGetImageViewHandleNVX = cast[proc(device: VkDevice, pInfo: ptr VkImageViewHandleInfoNVX): uint32 {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetImageViewHandleNVX")) - vkGetImageViewAddressNVX = cast[proc(device: VkDevice, imageView: VkImageView, pProperties: ptr VkImageViewAddressPropertiesNVX): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetImageViewAddressNVX")) - -proc loadVK_EXT_non_seamless_cube_map*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -proc loadVK_QCOM_render_pass_store_ops*(instance: VkInstance) = - discard - -# extension VK_EXT_device_fault -var - vkGetDeviceFaultInfoEXT*: proc(device: VkDevice, pFaultCounts: ptr VkDeviceFaultCountsEXT, pFaultInfo: ptr VkDeviceFaultInfoEXT): VkResult {.stdcall.} -proc loadVK_EXT_device_fault*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - vkGetDeviceFaultInfoEXT = cast[proc(device: VkDevice, pFaultCounts: ptr VkDeviceFaultCountsEXT, pFaultInfo: ptr VkDeviceFaultInfoEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceFaultInfoEXT")) - -proc loadVK_EXT_mutable_descriptor_type*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -# extension VK_EXT_color_write_enable -var - vkCmdSetColorWriteEnableEXT*: proc(commandBuffer: VkCommandBuffer, attachmentCount: uint32, pColorWriteEnables: ptr VkBool32): void {.stdcall.} -proc loadVK_EXT_color_write_enable*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - vkCmdSetColorWriteEnableEXT = cast[proc(commandBuffer: VkCommandBuffer, attachmentCount: uint32, pColorWriteEnables: ptr VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetColorWriteEnableEXT")) - -proc loadVK_SEC_amigo_profiling*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -# extension VK_NVX_binary_import -var - vkCreateCuModuleNVX*: proc(device: VkDevice, pCreateInfo: ptr VkCuModuleCreateInfoNVX, pAllocator: ptr VkAllocationCallbacks, pModule: ptr VkCuModuleNVX): VkResult {.stdcall.} - vkCreateCuFunctionNVX*: proc(device: VkDevice, pCreateInfo: ptr VkCuFunctionCreateInfoNVX, pAllocator: ptr VkAllocationCallbacks, pFunction: ptr VkCuFunctionNVX): VkResult {.stdcall.} - vkDestroyCuModuleNVX*: proc(device: VkDevice, module: VkCuModuleNVX, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkDestroyCuFunctionNVX*: proc(device: VkDevice, function: VkCuFunctionNVX, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkCmdCuLaunchKernelNVX*: proc(commandBuffer: VkCommandBuffer, pLaunchInfo: ptr VkCuLaunchInfoNVX): void {.stdcall.} -proc loadVK_NVX_binary_import*(instance: VkInstance) = - vkCreateCuModuleNVX = cast[proc(device: VkDevice, pCreateInfo: ptr VkCuModuleCreateInfoNVX, pAllocator: ptr VkAllocationCallbacks, pModule: ptr VkCuModuleNVX): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateCuModuleNVX")) - vkCreateCuFunctionNVX = cast[proc(device: VkDevice, pCreateInfo: ptr VkCuFunctionCreateInfoNVX, pAllocator: ptr VkAllocationCallbacks, pFunction: ptr VkCuFunctionNVX): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateCuFunctionNVX")) - vkDestroyCuModuleNVX = cast[proc(device: VkDevice, module: VkCuModuleNVX, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyCuModuleNVX")) - vkDestroyCuFunctionNVX = cast[proc(device: VkDevice, function: VkCuFunctionNVX, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyCuFunctionNVX")) - vkCmdCuLaunchKernelNVX = cast[proc(commandBuffer: VkCommandBuffer, pLaunchInfo: ptr VkCuLaunchInfoNVX): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCuLaunchKernelNVX")) - -proc loadVK_NV_representative_fragment_test*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -# extension VK_EXT_validation_cache -var - vkCreateValidationCacheEXT*: proc(device: VkDevice, pCreateInfo: ptr VkValidationCacheCreateInfoEXT, pAllocator: ptr VkAllocationCallbacks, pValidationCache: ptr VkValidationCacheEXT): VkResult {.stdcall.} - vkDestroyValidationCacheEXT*: proc(device: VkDevice, validationCache: VkValidationCacheEXT, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkMergeValidationCachesEXT*: proc(device: VkDevice, dstCache: VkValidationCacheEXT, srcCacheCount: uint32, pSrcCaches: ptr VkValidationCacheEXT): VkResult {.stdcall.} - vkGetValidationCacheDataEXT*: proc(device: VkDevice, validationCache: VkValidationCacheEXT, pDataSize: ptr csize_t, pData: pointer): VkResult {.stdcall.} -proc loadVK_EXT_validation_cache*(instance: VkInstance) = - vkCreateValidationCacheEXT = cast[proc(device: VkDevice, pCreateInfo: ptr VkValidationCacheCreateInfoEXT, pAllocator: ptr VkAllocationCallbacks, pValidationCache: ptr VkValidationCacheEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateValidationCacheEXT")) - vkDestroyValidationCacheEXT = cast[proc(device: VkDevice, validationCache: VkValidationCacheEXT, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyValidationCacheEXT")) - vkMergeValidationCachesEXT = cast[proc(device: VkDevice, dstCache: VkValidationCacheEXT, srcCacheCount: uint32, pSrcCaches: ptr VkValidationCacheEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkMergeValidationCachesEXT")) - vkGetValidationCacheDataEXT = cast[proc(device: VkDevice, validationCache: VkValidationCacheEXT, pDataSize: ptr csize_t, pData: pointer): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetValidationCacheDataEXT")) - -proc loadVK_NV_inherited_viewport_scissor*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -proc loadVK_EXT_legacy_dithering*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -proc loadVK_EXT_physical_device_drm*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -proc loadVK_EXT_pipeline_protected_access*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -# extension VK_EXT_discard_rectangles -var - vkCmdSetDiscardRectangleEXT*: proc(commandBuffer: VkCommandBuffer, firstDiscardRectangle: uint32, discardRectangleCount: uint32, pDiscardRectangles: ptr VkRect2D): void {.stdcall.} - vkCmdSetDiscardRectangleEnableEXT*: proc(commandBuffer: VkCommandBuffer, discardRectangleEnable: VkBool32): void {.stdcall.} - vkCmdSetDiscardRectangleModeEXT*: proc(commandBuffer: VkCommandBuffer, discardRectangleMode: VkDiscardRectangleModeEXT): void {.stdcall.} -proc loadVK_EXT_discard_rectangles*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - vkCmdSetDiscardRectangleEXT = cast[proc(commandBuffer: VkCommandBuffer, firstDiscardRectangle: uint32, discardRectangleCount: uint32, pDiscardRectangles: ptr VkRect2D): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDiscardRectangleEXT")) - vkCmdSetDiscardRectangleEnableEXT = cast[proc(commandBuffer: VkCommandBuffer, discardRectangleEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDiscardRectangleEnableEXT")) - vkCmdSetDiscardRectangleModeEXT = cast[proc(commandBuffer: VkCommandBuffer, discardRectangleMode: VkDiscardRectangleModeEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDiscardRectangleModeEXT")) - -proc loadVK_EXT_shader_stencil_export*(instance: VkInstance) = - discard - -# extension VK_NV_external_memory_rdma -var - vkGetMemoryRemoteAddressNV*: proc(device: VkDevice, pMemoryGetRemoteAddressInfo: ptr VkMemoryGetRemoteAddressInfoNV, pAddress: ptr VkRemoteAddressNV): VkResult {.stdcall.} -proc loadVK_NV_external_memory_rdma*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - vkGetMemoryRemoteAddressNV = cast[proc(device: VkDevice, pMemoryGetRemoteAddressInfo: ptr VkMemoryGetRemoteAddressInfoNV, pAddress: ptr VkRemoteAddressNV): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetMemoryRemoteAddressNV")) - -proc loadVK_ARM_shader_core_builtins*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -proc loadVK_QCOM_multiview_per_view_render_areas*(instance: VkInstance) = - discard - -proc loadVK_LUNARG_direct_driver_loading*(instance: VkInstance) = - discard - -proc loadVK_AMD_shader_explicit_vertex_parameter*(instance: VkInstance) = - discard - -# extension VK_EXT_headless_surface -var - vkCreateHeadlessSurfaceEXT*: proc(instance: VkInstance, pCreateInfo: ptr VkHeadlessSurfaceCreateInfoEXT, pAllocator: ptr VkAllocationCallbacks, pSurface: ptr VkSurfaceKHR): VkResult {.stdcall.} -proc loadVK_EXT_headless_surface*(instance: VkInstance) = - loadVK_KHR_surface(instance) - vkCreateHeadlessSurfaceEXT = cast[proc(instance: VkInstance, pCreateInfo: ptr VkHeadlessSurfaceCreateInfoEXT, pAllocator: ptr VkAllocationCallbacks, pSurface: ptr VkSurfaceKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateHeadlessSurfaceEXT")) - -proc loadVK_NV_shader_sm_builtins*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -proc loadVK_EXT_shader_subgroup_vote*(instance: VkInstance) = - discard - -# extension VK_NV_copy_memory_indirect -var - vkCmdCopyMemoryIndirectNV*: proc(commandBuffer: VkCommandBuffer, copyBufferAddress: VkDeviceAddress, copyCount: uint32, stride: uint32): void {.stdcall.} - vkCmdCopyMemoryToImageIndirectNV*: proc(commandBuffer: VkCommandBuffer, copyBufferAddress: VkDeviceAddress, copyCount: uint32, stride: uint32, dstImage: VkImage, dstImageLayout: VkImageLayout, pImageSubresources: ptr VkImageSubresourceLayers): void {.stdcall.} -proc loadVK_NV_copy_memory_indirect*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - loadVK_VERSION_1_2(instance) - vkCmdCopyMemoryIndirectNV = cast[proc(commandBuffer: VkCommandBuffer, copyBufferAddress: VkDeviceAddress, copyCount: uint32, stride: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyMemoryIndirectNV")) - vkCmdCopyMemoryToImageIndirectNV = cast[proc(commandBuffer: VkCommandBuffer, copyBufferAddress: VkDeviceAddress, copyCount: uint32, stride: uint32, dstImage: VkImage, dstImageLayout: VkImageLayout, pImageSubresources: ptr VkImageSubresourceLayers): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyMemoryToImageIndirectNV")) - -proc loadVK_EXT_astc_decode_mode*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -# extension VK_KHR_get_surface_capabilities2 -var - vkGetPhysicalDeviceSurfaceCapabilities2KHR*: proc(physicalDevice: VkPhysicalDevice, pSurfaceInfo: ptr VkPhysicalDeviceSurfaceInfo2KHR, pSurfaceCapabilities: ptr VkSurfaceCapabilities2KHR): VkResult {.stdcall.} - vkGetPhysicalDeviceSurfaceFormats2KHR*: proc(physicalDevice: VkPhysicalDevice, pSurfaceInfo: ptr VkPhysicalDeviceSurfaceInfo2KHR, pSurfaceFormatCount: ptr uint32, pSurfaceFormats: ptr VkSurfaceFormat2KHR): VkResult {.stdcall.} -proc loadVK_KHR_get_surface_capabilities2*(instance: VkInstance) = - loadVK_KHR_surface(instance) - vkGetPhysicalDeviceSurfaceCapabilities2KHR = cast[proc(physicalDevice: VkPhysicalDevice, pSurfaceInfo: ptr VkPhysicalDeviceSurfaceInfo2KHR, pSurfaceCapabilities: ptr VkSurfaceCapabilities2KHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSurfaceCapabilities2KHR")) - vkGetPhysicalDeviceSurfaceFormats2KHR = cast[proc(physicalDevice: VkPhysicalDevice, pSurfaceInfo: ptr VkPhysicalDeviceSurfaceInfo2KHR, pSurfaceFormatCount: ptr uint32, pSurfaceFormats: ptr VkSurfaceFormat2KHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSurfaceFormats2KHR")) - -# extension VK_HUAWEI_cluster_culling_shader -var - vkCmdDrawClusterHUAWEI*: proc(commandBuffer: VkCommandBuffer, groupCountX: uint32, groupCountY: uint32, groupCountZ: uint32): void {.stdcall.} - vkCmdDrawClusterIndirectHUAWEI*: proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize): void {.stdcall.} -proc loadVK_HUAWEI_cluster_culling_shader*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - vkCmdDrawClusterHUAWEI = cast[proc(commandBuffer: VkCommandBuffer, groupCountX: uint32, groupCountY: uint32, groupCountZ: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawClusterHUAWEI")) - vkCmdDrawClusterIndirectHUAWEI = cast[proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawClusterIndirectHUAWEI")) - -proc loadVK_KHR_surface_protected_capabilities*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - loadVK_KHR_get_surface_capabilities2(instance) - -proc loadVK_NV_shader_image_footprint*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -proc loadVK_NV_compute_shader_derivatives*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - -proc loadVK_QCOM_fragment_density_map_offset*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - loadVK_EXT_fragment_density_map(instance) - -proc loadVK_EXT_shader_atomic_float2*(instance: VkInstance) = - loadVK_EXT_shader_atomic_float(instance) - -# extension VK_EXT_pageable_device_local_memory -var - vkSetDeviceMemoryPriorityEXT*: proc(device: VkDevice, memory: VkDeviceMemory, priority: float32): void {.stdcall.} -proc loadVK_EXT_pageable_device_local_memory*(instance: VkInstance) = - loadVK_EXT_memory_priority(instance) - vkSetDeviceMemoryPriorityEXT = cast[proc(device: VkDevice, memory: VkDeviceMemory, priority: float32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkSetDeviceMemoryPriorityEXT")) - -# extension VK_KHR_swapchain -var - vkCreateSwapchainKHR*: proc(device: VkDevice, pCreateInfo: ptr VkSwapchainCreateInfoKHR, pAllocator: ptr VkAllocationCallbacks, pSwapchain: ptr VkSwapchainKHR): VkResult {.stdcall.} - vkDestroySwapchainKHR*: proc(device: VkDevice, swapchain: VkSwapchainKHR, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkGetSwapchainImagesKHR*: proc(device: VkDevice, swapchain: VkSwapchainKHR, pSwapchainImageCount: ptr uint32, pSwapchainImages: ptr VkImage): VkResult {.stdcall.} - vkAcquireNextImageKHR*: proc(device: VkDevice, swapchain: VkSwapchainKHR, timeout: uint64, semaphore: VkSemaphore, fence: VkFence, pImageIndex: ptr uint32): VkResult {.stdcall.} - vkQueuePresentKHR*: proc(queue: VkQueue, pPresentInfo: ptr VkPresentInfoKHR): VkResult {.stdcall.} - vkGetDeviceGroupPresentCapabilitiesKHR*: proc(device: VkDevice, pDeviceGroupPresentCapabilities: ptr VkDeviceGroupPresentCapabilitiesKHR): VkResult {.stdcall.} - vkGetDeviceGroupSurfacePresentModesKHR*: proc(device: VkDevice, surface: VkSurfaceKHR, pModes: ptr VkDeviceGroupPresentModeFlagsKHR): VkResult {.stdcall.} - vkGetPhysicalDevicePresentRectanglesKHR*: proc(physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pRectCount: ptr uint32, pRects: ptr VkRect2D): VkResult {.stdcall.} - vkAcquireNextImage2KHR*: proc(device: VkDevice, pAcquireInfo: ptr VkAcquireNextImageInfoKHR, pImageIndex: ptr uint32): VkResult {.stdcall.} -proc loadVK_KHR_swapchain*(instance: VkInstance) = - loadVK_KHR_surface(instance) - vkCreateSwapchainKHR = cast[proc(device: VkDevice, pCreateInfo: ptr VkSwapchainCreateInfoKHR, pAllocator: ptr VkAllocationCallbacks, pSwapchain: ptr VkSwapchainKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateSwapchainKHR")) - vkDestroySwapchainKHR = cast[proc(device: VkDevice, swapchain: VkSwapchainKHR, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroySwapchainKHR")) - vkGetSwapchainImagesKHR = cast[proc(device: VkDevice, swapchain: VkSwapchainKHR, pSwapchainImageCount: ptr uint32, pSwapchainImages: ptr VkImage): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetSwapchainImagesKHR")) - vkAcquireNextImageKHR = cast[proc(device: VkDevice, swapchain: VkSwapchainKHR, timeout: uint64, semaphore: VkSemaphore, fence: VkFence, pImageIndex: ptr uint32): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkAcquireNextImageKHR")) - vkQueuePresentKHR = cast[proc(queue: VkQueue, pPresentInfo: ptr VkPresentInfoKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkQueuePresentKHR")) - vkGetDeviceGroupPresentCapabilitiesKHR = cast[proc(device: VkDevice, pDeviceGroupPresentCapabilities: ptr VkDeviceGroupPresentCapabilitiesKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceGroupPresentCapabilitiesKHR")) - vkGetDeviceGroupSurfacePresentModesKHR = cast[proc(device: VkDevice, surface: VkSurfaceKHR, pModes: ptr VkDeviceGroupPresentModeFlagsKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceGroupSurfacePresentModesKHR")) - vkGetPhysicalDevicePresentRectanglesKHR = cast[proc(physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pRectCount: ptr uint32, pRects: ptr VkRect2D): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDevicePresentRectanglesKHR")) - vkAcquireNextImage2KHR = cast[proc(device: VkDevice, pAcquireInfo: ptr VkAcquireNextImageInfoKHR, pImageIndex: ptr uint32): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkAcquireNextImage2KHR")) - -proc loadVK_EXT_fragment_density_map2*(instance: VkInstance) = - loadVK_EXT_fragment_density_map(instance) - -# extension VK_NV_fragment_shading_rate_enums -var - vkCmdSetFragmentShadingRateEnumNV*: proc(commandBuffer: VkCommandBuffer, shadingRate: VkFragmentShadingRateNV, combinerOps: array[2, VkFragmentShadingRateCombinerOpKHR]): void {.stdcall.} -proc loadVK_NV_fragment_shading_rate_enums*(instance: VkInstance) = - loadVK_KHR_fragment_shading_rate(instance) - vkCmdSetFragmentShadingRateEnumNV = cast[proc(commandBuffer: VkCommandBuffer, shadingRate: VkFragmentShadingRateNV, combinerOps: array[2, VkFragmentShadingRateCombinerOpKHR]): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetFragmentShadingRateEnumNV")) - -# extension VK_AMD_display_native_hdr -var - vkSetLocalDimmingAMD*: proc(device: VkDevice, swapChain: VkSwapchainKHR, localDimmingEnable: VkBool32): void {.stdcall.} -proc loadVK_AMD_display_native_hdr*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - loadVK_KHR_get_surface_capabilities2(instance) - loadVK_KHR_swapchain(instance) - vkSetLocalDimmingAMD = cast[proc(device: VkDevice, swapChain: VkSwapchainKHR, localDimmingEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkSetLocalDimmingAMD")) - -proc loadVK_NV_present_barrier*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - loadVK_KHR_surface(instance) - loadVK_KHR_get_surface_capabilities2(instance) - loadVK_KHR_swapchain(instance) - -proc loadVK_QCOM_rotated_copy_commands*(instance: VkInstance) = - loadVK_KHR_swapchain(instance) - loadVK_VERSION_1_3(instance) - -proc loadVK_EXT_surface_maintenance1*(instance: VkInstance) = - loadVK_KHR_surface(instance) - loadVK_KHR_get_surface_capabilities2(instance) - -# extension VK_KHR_acceleration_structure -var - vkCreateAccelerationStructureKHR*: proc(device: VkDevice, pCreateInfo: ptr VkAccelerationStructureCreateInfoKHR, pAllocator: ptr VkAllocationCallbacks, pAccelerationStructure: ptr VkAccelerationStructureKHR): VkResult {.stdcall.} - vkDestroyAccelerationStructureKHR*: proc(device: VkDevice, accelerationStructure: VkAccelerationStructureKHR, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkCmdBuildAccelerationStructuresKHR*: proc(commandBuffer: VkCommandBuffer, infoCount: uint32, pInfos: ptr VkAccelerationStructureBuildGeometryInfoKHR, ppBuildRangeInfos: ptr ptr VkAccelerationStructureBuildRangeInfoKHR): void {.stdcall.} - vkCmdBuildAccelerationStructuresIndirectKHR*: proc(commandBuffer: VkCommandBuffer, infoCount: uint32, pInfos: ptr VkAccelerationStructureBuildGeometryInfoKHR, pIndirectDeviceAddresses: ptr VkDeviceAddress, pIndirectStrides: ptr uint32, ppMaxPrimitiveCounts: ptr ptr uint32): void {.stdcall.} - vkBuildAccelerationStructuresKHR*: proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, infoCount: uint32, pInfos: ptr VkAccelerationStructureBuildGeometryInfoKHR, ppBuildRangeInfos: ptr ptr VkAccelerationStructureBuildRangeInfoKHR): VkResult {.stdcall.} - vkCopyAccelerationStructureKHR*: proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, pInfo: ptr VkCopyAccelerationStructureInfoKHR): VkResult {.stdcall.} - vkCopyAccelerationStructureToMemoryKHR*: proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, pInfo: ptr VkCopyAccelerationStructureToMemoryInfoKHR): VkResult {.stdcall.} - vkCopyMemoryToAccelerationStructureKHR*: proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, pInfo: ptr VkCopyMemoryToAccelerationStructureInfoKHR): VkResult {.stdcall.} - vkWriteAccelerationStructuresPropertiesKHR*: proc(device: VkDevice, accelerationStructureCount: uint32, pAccelerationStructures: ptr VkAccelerationStructureKHR, queryType: VkQueryType, dataSize: csize_t, pData: pointer, stride: csize_t): VkResult {.stdcall.} - vkCmdCopyAccelerationStructureKHR*: proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyAccelerationStructureInfoKHR): void {.stdcall.} - vkCmdCopyAccelerationStructureToMemoryKHR*: proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyAccelerationStructureToMemoryInfoKHR): void {.stdcall.} - vkCmdCopyMemoryToAccelerationStructureKHR*: proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyMemoryToAccelerationStructureInfoKHR): void {.stdcall.} - vkGetAccelerationStructureDeviceAddressKHR*: proc(device: VkDevice, pInfo: ptr VkAccelerationStructureDeviceAddressInfoKHR): VkDeviceAddress {.stdcall.} - vkCmdWriteAccelerationStructuresPropertiesKHR*: proc(commandBuffer: VkCommandBuffer, accelerationStructureCount: uint32, pAccelerationStructures: ptr VkAccelerationStructureKHR, queryType: VkQueryType, queryPool: VkQueryPool, firstQuery: uint32): void {.stdcall.} - vkGetDeviceAccelerationStructureCompatibilityKHR*: proc(device: VkDevice, pVersionInfo: ptr VkAccelerationStructureVersionInfoKHR, pCompatibility: ptr VkAccelerationStructureCompatibilityKHR): void {.stdcall.} - vkGetAccelerationStructureBuildSizesKHR*: proc(device: VkDevice, buildType: VkAccelerationStructureBuildTypeKHR, pBuildInfo: ptr VkAccelerationStructureBuildGeometryInfoKHR, pMaxPrimitiveCounts: ptr uint32, pSizeInfo: ptr VkAccelerationStructureBuildSizesInfoKHR): void {.stdcall.} -proc loadVK_KHR_acceleration_structure*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - loadVK_VERSION_1_2(instance) - loadVK_VERSION_1_2(instance) - loadVK_KHR_deferred_host_operations(instance) - vkCreateAccelerationStructureKHR = cast[proc(device: VkDevice, pCreateInfo: ptr VkAccelerationStructureCreateInfoKHR, pAllocator: ptr VkAllocationCallbacks, pAccelerationStructure: ptr VkAccelerationStructureKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateAccelerationStructureKHR")) - vkDestroyAccelerationStructureKHR = cast[proc(device: VkDevice, accelerationStructure: VkAccelerationStructureKHR, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyAccelerationStructureKHR")) - vkCmdBuildAccelerationStructuresKHR = cast[proc(commandBuffer: VkCommandBuffer, infoCount: uint32, pInfos: ptr VkAccelerationStructureBuildGeometryInfoKHR, ppBuildRangeInfos: ptr ptr VkAccelerationStructureBuildRangeInfoKHR): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBuildAccelerationStructuresKHR")) - vkCmdBuildAccelerationStructuresIndirectKHR = cast[proc(commandBuffer: VkCommandBuffer, infoCount: uint32, pInfos: ptr VkAccelerationStructureBuildGeometryInfoKHR, pIndirectDeviceAddresses: ptr VkDeviceAddress, pIndirectStrides: ptr uint32, ppMaxPrimitiveCounts: ptr ptr uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBuildAccelerationStructuresIndirectKHR")) - vkBuildAccelerationStructuresKHR = cast[proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, infoCount: uint32, pInfos: ptr VkAccelerationStructureBuildGeometryInfoKHR, ppBuildRangeInfos: ptr ptr VkAccelerationStructureBuildRangeInfoKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkBuildAccelerationStructuresKHR")) - vkCopyAccelerationStructureKHR = cast[proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, pInfo: ptr VkCopyAccelerationStructureInfoKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCopyAccelerationStructureKHR")) - vkCopyAccelerationStructureToMemoryKHR = cast[proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, pInfo: ptr VkCopyAccelerationStructureToMemoryInfoKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCopyAccelerationStructureToMemoryKHR")) - vkCopyMemoryToAccelerationStructureKHR = cast[proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, pInfo: ptr VkCopyMemoryToAccelerationStructureInfoKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCopyMemoryToAccelerationStructureKHR")) - vkWriteAccelerationStructuresPropertiesKHR = cast[proc(device: VkDevice, accelerationStructureCount: uint32, pAccelerationStructures: ptr VkAccelerationStructureKHR, queryType: VkQueryType, dataSize: csize_t, pData: pointer, stride: csize_t): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkWriteAccelerationStructuresPropertiesKHR")) - vkCmdCopyAccelerationStructureKHR = cast[proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyAccelerationStructureInfoKHR): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyAccelerationStructureKHR")) - vkCmdCopyAccelerationStructureToMemoryKHR = cast[proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyAccelerationStructureToMemoryInfoKHR): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyAccelerationStructureToMemoryKHR")) - vkCmdCopyMemoryToAccelerationStructureKHR = cast[proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyMemoryToAccelerationStructureInfoKHR): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyMemoryToAccelerationStructureKHR")) - vkGetAccelerationStructureDeviceAddressKHR = cast[proc(device: VkDevice, pInfo: ptr VkAccelerationStructureDeviceAddressInfoKHR): VkDeviceAddress {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetAccelerationStructureDeviceAddressKHR")) - vkCmdWriteAccelerationStructuresPropertiesKHR = cast[proc(commandBuffer: VkCommandBuffer, accelerationStructureCount: uint32, pAccelerationStructures: ptr VkAccelerationStructureKHR, queryType: VkQueryType, queryPool: VkQueryPool, firstQuery: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdWriteAccelerationStructuresPropertiesKHR")) - vkGetDeviceAccelerationStructureCompatibilityKHR = cast[proc(device: VkDevice, pVersionInfo: ptr VkAccelerationStructureVersionInfoKHR, pCompatibility: ptr VkAccelerationStructureCompatibilityKHR): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceAccelerationStructureCompatibilityKHR")) - vkGetAccelerationStructureBuildSizesKHR = cast[proc(device: VkDevice, buildType: VkAccelerationStructureBuildTypeKHR, pBuildInfo: ptr VkAccelerationStructureBuildGeometryInfoKHR, pMaxPrimitiveCounts: ptr uint32, pSizeInfo: ptr VkAccelerationStructureBuildSizesInfoKHR): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetAccelerationStructureBuildSizesKHR")) - -# extension VK_GOOGLE_display_timing -var - vkGetRefreshCycleDurationGOOGLE*: proc(device: VkDevice, swapchain: VkSwapchainKHR, pDisplayTimingProperties: ptr VkRefreshCycleDurationGOOGLE): VkResult {.stdcall.} - vkGetPastPresentationTimingGOOGLE*: proc(device: VkDevice, swapchain: VkSwapchainKHR, pPresentationTimingCount: ptr uint32, pPresentationTimings: ptr VkPastPresentationTimingGOOGLE): VkResult {.stdcall.} -proc loadVK_GOOGLE_display_timing*(instance: VkInstance) = - loadVK_KHR_swapchain(instance) - vkGetRefreshCycleDurationGOOGLE = cast[proc(device: VkDevice, swapchain: VkSwapchainKHR, pDisplayTimingProperties: ptr VkRefreshCycleDurationGOOGLE): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetRefreshCycleDurationGOOGLE")) - vkGetPastPresentationTimingGOOGLE = cast[proc(device: VkDevice, swapchain: VkSwapchainKHR, pPresentationTimingCount: ptr uint32, pPresentationTimings: ptr VkPastPresentationTimingGOOGLE): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPastPresentationTimingGOOGLE")) - -proc loadVK_QCOM_render_pass_transform*(instance: VkInstance) = - loadVK_KHR_swapchain(instance) - loadVK_KHR_surface(instance) - -proc loadVK_GOOGLE_surfaceless_query*(instance: VkInstance) = - loadVK_KHR_surface(instance) - -proc loadVK_EXT_image_compression_control_swapchain*(instance: VkInstance) = - loadVK_EXT_image_compression_control(instance) - -# extension VK_KHR_display -var - vkGetPhysicalDeviceDisplayPropertiesKHR*: proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32, pProperties: ptr VkDisplayPropertiesKHR): VkResult {.stdcall.} - vkGetPhysicalDeviceDisplayPlanePropertiesKHR*: proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32, pProperties: ptr VkDisplayPlanePropertiesKHR): VkResult {.stdcall.} - vkGetDisplayPlaneSupportedDisplaysKHR*: proc(physicalDevice: VkPhysicalDevice, planeIndex: uint32, pDisplayCount: ptr uint32, pDisplays: ptr VkDisplayKHR): VkResult {.stdcall.} - vkGetDisplayModePropertiesKHR*: proc(physicalDevice: VkPhysicalDevice, display: VkDisplayKHR, pPropertyCount: ptr uint32, pProperties: ptr VkDisplayModePropertiesKHR): VkResult {.stdcall.} - vkCreateDisplayModeKHR*: proc(physicalDevice: VkPhysicalDevice, display: VkDisplayKHR, pCreateInfo: ptr VkDisplayModeCreateInfoKHR, pAllocator: ptr VkAllocationCallbacks, pMode: ptr VkDisplayModeKHR): VkResult {.stdcall.} - vkGetDisplayPlaneCapabilitiesKHR*: proc(physicalDevice: VkPhysicalDevice, mode: VkDisplayModeKHR, planeIndex: uint32, pCapabilities: ptr VkDisplayPlaneCapabilitiesKHR): VkResult {.stdcall.} - vkCreateDisplayPlaneSurfaceKHR*: proc(instance: VkInstance, pCreateInfo: ptr VkDisplaySurfaceCreateInfoKHR, pAllocator: ptr VkAllocationCallbacks, pSurface: ptr VkSurfaceKHR): VkResult {.stdcall.} -proc loadVK_KHR_display*(instance: VkInstance) = - loadVK_KHR_surface(instance) - vkGetPhysicalDeviceDisplayPropertiesKHR = cast[proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32, pProperties: ptr VkDisplayPropertiesKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceDisplayPropertiesKHR")) - vkGetPhysicalDeviceDisplayPlanePropertiesKHR = cast[proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32, pProperties: ptr VkDisplayPlanePropertiesKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR")) - vkGetDisplayPlaneSupportedDisplaysKHR = cast[proc(physicalDevice: VkPhysicalDevice, planeIndex: uint32, pDisplayCount: ptr uint32, pDisplays: ptr VkDisplayKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDisplayPlaneSupportedDisplaysKHR")) - vkGetDisplayModePropertiesKHR = cast[proc(physicalDevice: VkPhysicalDevice, display: VkDisplayKHR, pPropertyCount: ptr uint32, pProperties: ptr VkDisplayModePropertiesKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDisplayModePropertiesKHR")) - vkCreateDisplayModeKHR = cast[proc(physicalDevice: VkPhysicalDevice, display: VkDisplayKHR, pCreateInfo: ptr VkDisplayModeCreateInfoKHR, pAllocator: ptr VkAllocationCallbacks, pMode: ptr VkDisplayModeKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateDisplayModeKHR")) - vkGetDisplayPlaneCapabilitiesKHR = cast[proc(physicalDevice: VkPhysicalDevice, mode: VkDisplayModeKHR, planeIndex: uint32, pCapabilities: ptr VkDisplayPlaneCapabilitiesKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDisplayPlaneCapabilitiesKHR")) - vkCreateDisplayPlaneSurfaceKHR = cast[proc(instance: VkInstance, pCreateInfo: ptr VkDisplaySurfaceCreateInfoKHR, pAllocator: ptr VkAllocationCallbacks, pSurface: ptr VkSurfaceKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateDisplayPlaneSurfaceKHR")) - -# extension VK_EXT_swapchain_maintenance1 -var - vkReleaseSwapchainImagesEXT*: proc(device: VkDevice, pReleaseInfo: ptr VkReleaseSwapchainImagesInfoEXT): VkResult {.stdcall.} -proc loadVK_EXT_swapchain_maintenance1*(instance: VkInstance) = - loadVK_KHR_swapchain(instance) - loadVK_EXT_surface_maintenance1(instance) - loadVK_VERSION_1_1(instance) - vkReleaseSwapchainImagesEXT = cast[proc(device: VkDevice, pReleaseInfo: ptr VkReleaseSwapchainImagesInfoEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkReleaseSwapchainImagesEXT")) - -# extension VK_EXT_direct_mode_display -var - vkReleaseDisplayEXT*: proc(physicalDevice: VkPhysicalDevice, display: VkDisplayKHR): VkResult {.stdcall.} -proc loadVK_EXT_direct_mode_display*(instance: VkInstance) = - loadVK_KHR_display(instance) - vkReleaseDisplayEXT = cast[proc(physicalDevice: VkPhysicalDevice, display: VkDisplayKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkReleaseDisplayEXT")) - -proc loadVK_KHR_swapchain_mutable_format*(instance: VkInstance) = - loadVK_KHR_swapchain(instance) - loadVK_VERSION_1_1(instance) - loadVK_VERSION_1_2(instance) - -proc loadVK_EXT_swapchain_colorspace*(instance: VkInstance) = - loadVK_KHR_surface(instance) - -# extension VK_EXT_opacity_micromap -var - vkCreateMicromapEXT*: proc(device: VkDevice, pCreateInfo: ptr VkMicromapCreateInfoEXT, pAllocator: ptr VkAllocationCallbacks, pMicromap: ptr VkMicromapEXT): VkResult {.stdcall.} - vkDestroyMicromapEXT*: proc(device: VkDevice, micromap: VkMicromapEXT, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkCmdBuildMicromapsEXT*: proc(commandBuffer: VkCommandBuffer, infoCount: uint32, pInfos: ptr VkMicromapBuildInfoEXT): void {.stdcall.} - vkBuildMicromapsEXT*: proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, infoCount: uint32, pInfos: ptr VkMicromapBuildInfoEXT): VkResult {.stdcall.} - vkCopyMicromapEXT*: proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, pInfo: ptr VkCopyMicromapInfoEXT): VkResult {.stdcall.} - vkCopyMicromapToMemoryEXT*: proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, pInfo: ptr VkCopyMicromapToMemoryInfoEXT): VkResult {.stdcall.} - vkCopyMemoryToMicromapEXT*: proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, pInfo: ptr VkCopyMemoryToMicromapInfoEXT): VkResult {.stdcall.} - vkWriteMicromapsPropertiesEXT*: proc(device: VkDevice, micromapCount: uint32, pMicromaps: ptr VkMicromapEXT, queryType: VkQueryType, dataSize: csize_t, pData: pointer, stride: csize_t): VkResult {.stdcall.} - vkCmdCopyMicromapEXT*: proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyMicromapInfoEXT): void {.stdcall.} - vkCmdCopyMicromapToMemoryEXT*: proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyMicromapToMemoryInfoEXT): void {.stdcall.} - vkCmdCopyMemoryToMicromapEXT*: proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyMemoryToMicromapInfoEXT): void {.stdcall.} - vkCmdWriteMicromapsPropertiesEXT*: proc(commandBuffer: VkCommandBuffer, micromapCount: uint32, pMicromaps: ptr VkMicromapEXT, queryType: VkQueryType, queryPool: VkQueryPool, firstQuery: uint32): void {.stdcall.} - vkGetDeviceMicromapCompatibilityEXT*: proc(device: VkDevice, pVersionInfo: ptr VkMicromapVersionInfoEXT, pCompatibility: ptr VkAccelerationStructureCompatibilityKHR): void {.stdcall.} - vkGetMicromapBuildSizesEXT*: proc(device: VkDevice, buildType: VkAccelerationStructureBuildTypeKHR, pBuildInfo: ptr VkMicromapBuildInfoEXT, pSizeInfo: ptr VkMicromapBuildSizesInfoEXT): void {.stdcall.} -proc loadVK_EXT_opacity_micromap*(instance: VkInstance) = - loadVK_KHR_acceleration_structure(instance) - loadVK_VERSION_1_3(instance) - vkCreateMicromapEXT = cast[proc(device: VkDevice, pCreateInfo: ptr VkMicromapCreateInfoEXT, pAllocator: ptr VkAllocationCallbacks, pMicromap: ptr VkMicromapEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateMicromapEXT")) - vkDestroyMicromapEXT = cast[proc(device: VkDevice, micromap: VkMicromapEXT, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyMicromapEXT")) - vkCmdBuildMicromapsEXT = cast[proc(commandBuffer: VkCommandBuffer, infoCount: uint32, pInfos: ptr VkMicromapBuildInfoEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBuildMicromapsEXT")) - vkBuildMicromapsEXT = cast[proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, infoCount: uint32, pInfos: ptr VkMicromapBuildInfoEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkBuildMicromapsEXT")) - vkCopyMicromapEXT = cast[proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, pInfo: ptr VkCopyMicromapInfoEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCopyMicromapEXT")) - vkCopyMicromapToMemoryEXT = cast[proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, pInfo: ptr VkCopyMicromapToMemoryInfoEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCopyMicromapToMemoryEXT")) - vkCopyMemoryToMicromapEXT = cast[proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, pInfo: ptr VkCopyMemoryToMicromapInfoEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCopyMemoryToMicromapEXT")) - vkWriteMicromapsPropertiesEXT = cast[proc(device: VkDevice, micromapCount: uint32, pMicromaps: ptr VkMicromapEXT, queryType: VkQueryType, dataSize: csize_t, pData: pointer, stride: csize_t): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkWriteMicromapsPropertiesEXT")) - vkCmdCopyMicromapEXT = cast[proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyMicromapInfoEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyMicromapEXT")) - vkCmdCopyMicromapToMemoryEXT = cast[proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyMicromapToMemoryInfoEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyMicromapToMemoryEXT")) - vkCmdCopyMemoryToMicromapEXT = cast[proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyMemoryToMicromapInfoEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyMemoryToMicromapEXT")) - vkCmdWriteMicromapsPropertiesEXT = cast[proc(commandBuffer: VkCommandBuffer, micromapCount: uint32, pMicromaps: ptr VkMicromapEXT, queryType: VkQueryType, queryPool: VkQueryPool, firstQuery: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdWriteMicromapsPropertiesEXT")) - vkGetDeviceMicromapCompatibilityEXT = cast[proc(device: VkDevice, pVersionInfo: ptr VkMicromapVersionInfoEXT, pCompatibility: ptr VkAccelerationStructureCompatibilityKHR): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceMicromapCompatibilityEXT")) - vkGetMicromapBuildSizesEXT = cast[proc(device: VkDevice, buildType: VkAccelerationStructureBuildTypeKHR, pBuildInfo: ptr VkMicromapBuildInfoEXT, pSizeInfo: ptr VkMicromapBuildSizesInfoEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetMicromapBuildSizesEXT")) - -proc loadVK_KHR_incremental_present*(instance: VkInstance) = - loadVK_KHR_swapchain(instance) - -# extension VK_KHR_shared_presentable_image -var - vkGetSwapchainStatusKHR*: proc(device: VkDevice, swapchain: VkSwapchainKHR): VkResult {.stdcall.} -proc loadVK_KHR_shared_presentable_image*(instance: VkInstance) = - loadVK_KHR_swapchain(instance) - loadVK_VERSION_1_1(instance) - loadVK_KHR_get_surface_capabilities2(instance) - vkGetSwapchainStatusKHR = cast[proc(device: VkDevice, swapchain: VkSwapchainKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetSwapchainStatusKHR")) - -# extension VK_EXT_hdr_metadata -var - vkSetHdrMetadataEXT*: proc(device: VkDevice, swapchainCount: uint32, pSwapchains: ptr VkSwapchainKHR, pMetadata: ptr VkHdrMetadataEXT): void {.stdcall.} -proc loadVK_EXT_hdr_metadata*(instance: VkInstance) = - loadVK_KHR_swapchain(instance) - vkSetHdrMetadataEXT = cast[proc(device: VkDevice, swapchainCount: uint32, pSwapchains: ptr VkSwapchainKHR, pMetadata: ptr VkHdrMetadataEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkSetHdrMetadataEXT")) - -proc loadVK_KHR_present_id*(instance: VkInstance) = - loadVK_KHR_swapchain(instance) - loadVK_VERSION_1_1(instance) - -# extension VK_KHR_ray_tracing_maintenance1 -var - vkCmdTraceRaysIndirect2KHR*: proc(commandBuffer: VkCommandBuffer, indirectDeviceAddress: VkDeviceAddress): void {.stdcall.} -proc loadVK_KHR_ray_tracing_maintenance1*(instance: VkInstance) = - loadVK_KHR_acceleration_structure(instance) - vkCmdTraceRaysIndirect2KHR = cast[proc(commandBuffer: VkCommandBuffer, indirectDeviceAddress: VkDeviceAddress): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdTraceRaysIndirect2KHR")) - -# extension VK_KHR_ray_tracing_pipeline -var - vkCmdTraceRaysKHR*: proc(commandBuffer: VkCommandBuffer, pRaygenShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, pMissShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, pHitShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, pCallableShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, width: uint32, height: uint32, depth: uint32): void {.stdcall.} - vkCreateRayTracingPipelinesKHR*: proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, pipelineCache: VkPipelineCache, createInfoCount: uint32, pCreateInfos: ptr VkRayTracingPipelineCreateInfoKHR, pAllocator: ptr VkAllocationCallbacks, pPipelines: ptr VkPipeline): VkResult {.stdcall.} - vkGetRayTracingShaderGroupHandlesKHR*: proc(device: VkDevice, pipeline: VkPipeline, firstGroup: uint32, groupCount: uint32, dataSize: csize_t, pData: pointer): VkResult {.stdcall.} - vkGetRayTracingCaptureReplayShaderGroupHandlesKHR*: proc(device: VkDevice, pipeline: VkPipeline, firstGroup: uint32, groupCount: uint32, dataSize: csize_t, pData: pointer): VkResult {.stdcall.} - vkCmdTraceRaysIndirectKHR*: proc(commandBuffer: VkCommandBuffer, pRaygenShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, pMissShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, pHitShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, pCallableShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, indirectDeviceAddress: VkDeviceAddress): void {.stdcall.} - vkGetRayTracingShaderGroupStackSizeKHR*: proc(device: VkDevice, pipeline: VkPipeline, group: uint32, groupShader: VkShaderGroupShaderKHR): VkDeviceSize {.stdcall.} - vkCmdSetRayTracingPipelineStackSizeKHR*: proc(commandBuffer: VkCommandBuffer, pipelineStackSize: uint32): void {.stdcall.} -proc loadVK_KHR_ray_tracing_pipeline*(instance: VkInstance) = - loadVK_VERSION_1_2(instance) - loadVK_KHR_acceleration_structure(instance) - vkCmdTraceRaysKHR = cast[proc(commandBuffer: VkCommandBuffer, pRaygenShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, pMissShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, pHitShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, pCallableShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, width: uint32, height: uint32, depth: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdTraceRaysKHR")) - vkCreateRayTracingPipelinesKHR = cast[proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, pipelineCache: VkPipelineCache, createInfoCount: uint32, pCreateInfos: ptr VkRayTracingPipelineCreateInfoKHR, pAllocator: ptr VkAllocationCallbacks, pPipelines: ptr VkPipeline): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateRayTracingPipelinesKHR")) - vkGetRayTracingShaderGroupHandlesKHR = cast[proc(device: VkDevice, pipeline: VkPipeline, firstGroup: uint32, groupCount: uint32, dataSize: csize_t, pData: pointer): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetRayTracingShaderGroupHandlesKHR")) - vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = cast[proc(device: VkDevice, pipeline: VkPipeline, firstGroup: uint32, groupCount: uint32, dataSize: csize_t, pData: pointer): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR")) - vkCmdTraceRaysIndirectKHR = cast[proc(commandBuffer: VkCommandBuffer, pRaygenShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, pMissShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, pHitShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, pCallableShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, indirectDeviceAddress: VkDeviceAddress): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdTraceRaysIndirectKHR")) - vkGetRayTracingShaderGroupStackSizeKHR = cast[proc(device: VkDevice, pipeline: VkPipeline, group: uint32, groupShader: VkShaderGroupShaderKHR): VkDeviceSize {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetRayTracingShaderGroupStackSizeKHR")) - vkCmdSetRayTracingPipelineStackSizeKHR = cast[proc(commandBuffer: VkCommandBuffer, pipelineStackSize: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetRayTracingPipelineStackSizeKHR")) - -# extension VK_HUAWEI_invocation_mask -var - vkCmdBindInvocationMaskHUAWEI*: proc(commandBuffer: VkCommandBuffer, imageView: VkImageView, imageLayout: VkImageLayout): void {.stdcall.} -proc loadVK_HUAWEI_invocation_mask*(instance: VkInstance) = - loadVK_KHR_ray_tracing_pipeline(instance) - loadVK_VERSION_1_3(instance) - vkCmdBindInvocationMaskHUAWEI = cast[proc(commandBuffer: VkCommandBuffer, imageView: VkImageView, imageLayout: VkImageLayout): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBindInvocationMaskHUAWEI")) - -# extension VK_EXT_display_surface_counter -var - vkGetPhysicalDeviceSurfaceCapabilities2EXT*: proc(physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pSurfaceCapabilities: ptr VkSurfaceCapabilities2EXT): VkResult {.stdcall.} -proc loadVK_EXT_display_surface_counter*(instance: VkInstance) = - loadVK_KHR_display(instance) - vkGetPhysicalDeviceSurfaceCapabilities2EXT = cast[proc(physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pSurfaceCapabilities: ptr VkSurfaceCapabilities2EXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSurfaceCapabilities2EXT")) - -# extension VK_KHR_get_display_properties2 -var - vkGetPhysicalDeviceDisplayProperties2KHR*: proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32, pProperties: ptr VkDisplayProperties2KHR): VkResult {.stdcall.} - vkGetPhysicalDeviceDisplayPlaneProperties2KHR*: proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32, pProperties: ptr VkDisplayPlaneProperties2KHR): VkResult {.stdcall.} - vkGetDisplayModeProperties2KHR*: proc(physicalDevice: VkPhysicalDevice, display: VkDisplayKHR, pPropertyCount: ptr uint32, pProperties: ptr VkDisplayModeProperties2KHR): VkResult {.stdcall.} - vkGetDisplayPlaneCapabilities2KHR*: proc(physicalDevice: VkPhysicalDevice, pDisplayPlaneInfo: ptr VkDisplayPlaneInfo2KHR, pCapabilities: ptr VkDisplayPlaneCapabilities2KHR): VkResult {.stdcall.} -proc loadVK_KHR_get_display_properties2*(instance: VkInstance) = - loadVK_KHR_display(instance) - vkGetPhysicalDeviceDisplayProperties2KHR = cast[proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32, pProperties: ptr VkDisplayProperties2KHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceDisplayProperties2KHR")) - vkGetPhysicalDeviceDisplayPlaneProperties2KHR = cast[proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32, pProperties: ptr VkDisplayPlaneProperties2KHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR")) - vkGetDisplayModeProperties2KHR = cast[proc(physicalDevice: VkPhysicalDevice, display: VkDisplayKHR, pPropertyCount: ptr uint32, pProperties: ptr VkDisplayModeProperties2KHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDisplayModeProperties2KHR")) - vkGetDisplayPlaneCapabilities2KHR = cast[proc(physicalDevice: VkPhysicalDevice, pDisplayPlaneInfo: ptr VkDisplayPlaneInfo2KHR, pCapabilities: ptr VkDisplayPlaneCapabilities2KHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDisplayPlaneCapabilities2KHR")) - -proc loadVK_KHR_ray_query*(instance: VkInstance) = - loadVK_VERSION_1_2(instance) - loadVK_KHR_acceleration_structure(instance) - -# extension VK_KHR_display_swapchain -var - vkCreateSharedSwapchainsKHR*: proc(device: VkDevice, swapchainCount: uint32, pCreateInfos: ptr VkSwapchainCreateInfoKHR, pAllocator: ptr VkAllocationCallbacks, pSwapchains: ptr VkSwapchainKHR): VkResult {.stdcall.} -proc loadVK_KHR_display_swapchain*(instance: VkInstance) = - loadVK_KHR_swapchain(instance) - loadVK_KHR_display(instance) - vkCreateSharedSwapchainsKHR = cast[proc(device: VkDevice, swapchainCount: uint32, pCreateInfos: ptr VkSwapchainCreateInfoKHR, pAllocator: ptr VkAllocationCallbacks, pSwapchains: ptr VkSwapchainKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateSharedSwapchainsKHR")) - -# extension VK_EXT_acquire_drm_display -var - vkAcquireDrmDisplayEXT*: proc(physicalDevice: VkPhysicalDevice, drmFd: int32, display: VkDisplayKHR): VkResult {.stdcall.} - vkGetDrmDisplayEXT*: proc(physicalDevice: VkPhysicalDevice, drmFd: int32, connectorId: uint32, display: ptr VkDisplayKHR): VkResult {.stdcall.} -proc loadVK_EXT_acquire_drm_display*(instance: VkInstance) = - loadVK_EXT_direct_mode_display(instance) - vkAcquireDrmDisplayEXT = cast[proc(physicalDevice: VkPhysicalDevice, drmFd: int32, display: VkDisplayKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkAcquireDrmDisplayEXT")) - vkGetDrmDisplayEXT = cast[proc(physicalDevice: VkPhysicalDevice, drmFd: int32, connectorId: uint32, display: ptr VkDisplayKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDrmDisplayEXT")) - -# extension VK_EXT_display_control -var - vkDisplayPowerControlEXT*: proc(device: VkDevice, display: VkDisplayKHR, pDisplayPowerInfo: ptr VkDisplayPowerInfoEXT): VkResult {.stdcall.} - vkRegisterDeviceEventEXT*: proc(device: VkDevice, pDeviceEventInfo: ptr VkDeviceEventInfoEXT, pAllocator: ptr VkAllocationCallbacks, pFence: ptr VkFence): VkResult {.stdcall.} - vkRegisterDisplayEventEXT*: proc(device: VkDevice, display: VkDisplayKHR, pDisplayEventInfo: ptr VkDisplayEventInfoEXT, pAllocator: ptr VkAllocationCallbacks, pFence: ptr VkFence): VkResult {.stdcall.} - vkGetSwapchainCounterEXT*: proc(device: VkDevice, swapchain: VkSwapchainKHR, counter: VkSurfaceCounterFlagBitsEXT, pCounterValue: ptr uint64): VkResult {.stdcall.} -proc loadVK_EXT_display_control*(instance: VkInstance) = - loadVK_EXT_display_surface_counter(instance) - loadVK_KHR_swapchain(instance) - vkDisplayPowerControlEXT = cast[proc(device: VkDevice, display: VkDisplayKHR, pDisplayPowerInfo: ptr VkDisplayPowerInfoEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDisplayPowerControlEXT")) - vkRegisterDeviceEventEXT = cast[proc(device: VkDevice, pDeviceEventInfo: ptr VkDeviceEventInfoEXT, pAllocator: ptr VkAllocationCallbacks, pFence: ptr VkFence): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkRegisterDeviceEventEXT")) - vkRegisterDisplayEventEXT = cast[proc(device: VkDevice, display: VkDisplayKHR, pDisplayEventInfo: ptr VkDisplayEventInfoEXT, pAllocator: ptr VkAllocationCallbacks, pFence: ptr VkFence): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkRegisterDisplayEventEXT")) - vkGetSwapchainCounterEXT = cast[proc(device: VkDevice, swapchain: VkSwapchainKHR, counter: VkSurfaceCounterFlagBitsEXT, pCounterValue: ptr uint64): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetSwapchainCounterEXT")) - -proc loadVK_NV_ray_tracing_motion_blur*(instance: VkInstance) = - loadVK_KHR_ray_tracing_pipeline(instance) - -proc loadVK_EXT_pipeline_library_group_handles*(instance: VkInstance) = - loadVK_KHR_ray_tracing_pipeline(instance) - loadVK_KHR_pipeline_library(instance) - -# extension VK_NV_ray_tracing -var - vkCreateAccelerationStructureNV*: proc(device: VkDevice, pCreateInfo: ptr VkAccelerationStructureCreateInfoNV, pAllocator: ptr VkAllocationCallbacks, pAccelerationStructure: ptr VkAccelerationStructureNV): VkResult {.stdcall.} - vkDestroyAccelerationStructureNV*: proc(device: VkDevice, accelerationStructure: VkAccelerationStructureNV, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkGetAccelerationStructureMemoryRequirementsNV*: proc(device: VkDevice, pInfo: ptr VkAccelerationStructureMemoryRequirementsInfoNV, pMemoryRequirements: ptr VkMemoryRequirements2KHR): void {.stdcall.} - vkBindAccelerationStructureMemoryNV*: proc(device: VkDevice, bindInfoCount: uint32, pBindInfos: ptr VkBindAccelerationStructureMemoryInfoNV): VkResult {.stdcall.} - vkCmdBuildAccelerationStructureNV*: proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkAccelerationStructureInfoNV, instanceData: VkBuffer, instanceOffset: VkDeviceSize, update: VkBool32, dst: VkAccelerationStructureNV, src: VkAccelerationStructureNV, scratch: VkBuffer, scratchOffset: VkDeviceSize): void {.stdcall.} - vkCmdCopyAccelerationStructureNV*: proc(commandBuffer: VkCommandBuffer, dst: VkAccelerationStructureNV, src: VkAccelerationStructureNV, mode: VkCopyAccelerationStructureModeKHR): void {.stdcall.} - vkCmdTraceRaysNV*: proc(commandBuffer: VkCommandBuffer, raygenShaderBindingTableBuffer: VkBuffer, raygenShaderBindingOffset: VkDeviceSize, missShaderBindingTableBuffer: VkBuffer, missShaderBindingOffset: VkDeviceSize, missShaderBindingStride: VkDeviceSize, hitShaderBindingTableBuffer: VkBuffer, hitShaderBindingOffset: VkDeviceSize, hitShaderBindingStride: VkDeviceSize, callableShaderBindingTableBuffer: VkBuffer, callableShaderBindingOffset: VkDeviceSize, callableShaderBindingStride: VkDeviceSize, width: uint32, height: uint32, depth: uint32): void {.stdcall.} - vkCreateRayTracingPipelinesNV*: proc(device: VkDevice, pipelineCache: VkPipelineCache, createInfoCount: uint32, pCreateInfos: ptr VkRayTracingPipelineCreateInfoNV, pAllocator: ptr VkAllocationCallbacks, pPipelines: ptr VkPipeline): VkResult {.stdcall.} - vkGetRayTracingShaderGroupHandlesNV*: proc(device: VkDevice, pipeline: VkPipeline, firstGroup: uint32, groupCount: uint32, dataSize: csize_t, pData: pointer): VkResult {.stdcall.} - vkGetAccelerationStructureHandleNV*: proc(device: VkDevice, accelerationStructure: VkAccelerationStructureNV, dataSize: csize_t, pData: pointer): VkResult {.stdcall.} - vkCmdWriteAccelerationStructuresPropertiesNV*: proc(commandBuffer: VkCommandBuffer, accelerationStructureCount: uint32, pAccelerationStructures: ptr VkAccelerationStructureNV, queryType: VkQueryType, queryPool: VkQueryPool, firstQuery: uint32): void {.stdcall.} - vkCompileDeferredNV*: proc(device: VkDevice, pipeline: VkPipeline, shader: uint32): VkResult {.stdcall.} -proc loadVK_NV_ray_tracing*(instance: VkInstance) = - loadVK_VERSION_1_1(instance) - loadVK_VERSION_1_1(instance) - vkCreateAccelerationStructureNV = cast[proc(device: VkDevice, pCreateInfo: ptr VkAccelerationStructureCreateInfoNV, pAllocator: ptr VkAllocationCallbacks, pAccelerationStructure: ptr VkAccelerationStructureNV): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateAccelerationStructureNV")) - vkDestroyAccelerationStructureNV = cast[proc(device: VkDevice, accelerationStructure: VkAccelerationStructureNV, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyAccelerationStructureNV")) - vkGetAccelerationStructureMemoryRequirementsNV = cast[proc(device: VkDevice, pInfo: ptr VkAccelerationStructureMemoryRequirementsInfoNV, pMemoryRequirements: ptr VkMemoryRequirements2KHR): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetAccelerationStructureMemoryRequirementsNV")) - vkBindAccelerationStructureMemoryNV = cast[proc(device: VkDevice, bindInfoCount: uint32, pBindInfos: ptr VkBindAccelerationStructureMemoryInfoNV): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkBindAccelerationStructureMemoryNV")) - vkCmdBuildAccelerationStructureNV = cast[proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkAccelerationStructureInfoNV, instanceData: VkBuffer, instanceOffset: VkDeviceSize, update: VkBool32, dst: VkAccelerationStructureNV, src: VkAccelerationStructureNV, scratch: VkBuffer, scratchOffset: VkDeviceSize): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBuildAccelerationStructureNV")) - vkCmdCopyAccelerationStructureNV = cast[proc(commandBuffer: VkCommandBuffer, dst: VkAccelerationStructureNV, src: VkAccelerationStructureNV, mode: VkCopyAccelerationStructureModeKHR): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyAccelerationStructureNV")) - vkCmdTraceRaysNV = cast[proc(commandBuffer: VkCommandBuffer, raygenShaderBindingTableBuffer: VkBuffer, raygenShaderBindingOffset: VkDeviceSize, missShaderBindingTableBuffer: VkBuffer, missShaderBindingOffset: VkDeviceSize, missShaderBindingStride: VkDeviceSize, hitShaderBindingTableBuffer: VkBuffer, hitShaderBindingOffset: VkDeviceSize, hitShaderBindingStride: VkDeviceSize, callableShaderBindingTableBuffer: VkBuffer, callableShaderBindingOffset: VkDeviceSize, callableShaderBindingStride: VkDeviceSize, width: uint32, height: uint32, depth: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdTraceRaysNV")) - vkCreateRayTracingPipelinesNV = cast[proc(device: VkDevice, pipelineCache: VkPipelineCache, createInfoCount: uint32, pCreateInfos: ptr VkRayTracingPipelineCreateInfoNV, pAllocator: ptr VkAllocationCallbacks, pPipelines: ptr VkPipeline): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateRayTracingPipelinesNV")) - vkGetRayTracingShaderGroupHandlesNV = vkGetRayTracingShaderGroupHandlesKHR - vkGetAccelerationStructureHandleNV = cast[proc(device: VkDevice, accelerationStructure: VkAccelerationStructureNV, dataSize: csize_t, pData: pointer): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetAccelerationStructureHandleNV")) - vkCmdWriteAccelerationStructuresPropertiesNV = cast[proc(commandBuffer: VkCommandBuffer, accelerationStructureCount: uint32, pAccelerationStructures: ptr VkAccelerationStructureNV, queryType: VkQueryType, queryPool: VkQueryPool, firstQuery: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdWriteAccelerationStructuresPropertiesNV")) - vkCompileDeferredNV = cast[proc(device: VkDevice, pipeline: VkPipeline, shader: uint32): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCompileDeferredNV")) - -# extension VK_KHR_present_wait -var - vkWaitForPresentKHR*: proc(device: VkDevice, swapchain: VkSwapchainKHR, presentId: uint64, timeout: uint64): VkResult {.stdcall.} -proc loadVK_KHR_present_wait*(instance: VkInstance) = - loadVK_KHR_swapchain(instance) - loadVK_KHR_present_id(instance) - vkWaitForPresentKHR = cast[proc(device: VkDevice, swapchain: VkSwapchainKHR, presentId: uint64, timeout: uint64): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkWaitForPresentKHR")) - -proc loadVK_NV_ray_tracing_invocation_reorder*(instance: VkInstance) = - loadVK_KHR_ray_tracing_pipeline(instance) - -var EXTENSION_LOADERS = { - "VK_NV_optical_flow": loadVK_NV_optical_flow, - "VK_EXT_vertex_attribute_divisor": loadVK_EXT_vertex_attribute_divisor, - "VK_EXT_pipeline_library_group_handles": loadVK_EXT_pipeline_library_group_handles, - "VK_NV_geometry_shader_passthrough": loadVK_NV_geometry_shader_passthrough, - "VK_EXT_line_rasterization": loadVK_EXT_line_rasterization, - "VK_EXT_rasterization_order_attachment_access": loadVK_EXT_rasterization_order_attachment_access, - "VK_EXT_shader_atomic_float2": loadVK_EXT_shader_atomic_float2, - "VK_IMG_format_pvrtc": loadVK_IMG_format_pvrtc, - "VK_AMD_texture_gather_bias_lod": loadVK_AMD_texture_gather_bias_lod, - "VK_KHR_shader_subgroup_uniform_control_flow": loadVK_KHR_shader_subgroup_uniform_control_flow, - "VK_AMD_shader_fragment_mask": loadVK_AMD_shader_fragment_mask, - "VK_EXT_external_memory_dma_buf": loadVK_EXT_external_memory_dma_buf, - "VK_IMG_filter_cubic": loadVK_IMG_filter_cubic, - "VK_EXT_pageable_device_local_memory": loadVK_EXT_pageable_device_local_memory, - "VK_EXT_primitive_topology_list_restart": loadVK_EXT_primitive_topology_list_restart, - "VK_KHR_global_priority": loadVK_KHR_global_priority, - "VK_AMD_shader_ballot": loadVK_AMD_shader_ballot, - "VK_AMD_buffer_marker": loadVK_AMD_buffer_marker, - "VK_NV_corner_sampled_image": loadVK_NV_corner_sampled_image, - "VK_NV_ray_tracing_invocation_reorder": loadVK_NV_ray_tracing_invocation_reorder, - "VK_QCOM_image_processing": loadVK_QCOM_image_processing, - "VK_AMD_shader_info": loadVK_AMD_shader_info, - "VK_KHR_pipeline_library": loadVK_KHR_pipeline_library, - "VK_EXT_blend_operation_advanced": loadVK_EXT_blend_operation_advanced, - "VK_AMD_gpu_shader_int16": loadVK_AMD_gpu_shader_int16, - "VK_EXT_pipeline_robustness": loadVK_EXT_pipeline_robustness, - "VK_NV_scissor_exclusive": loadVK_NV_scissor_exclusive, - "VK_EXT_sample_locations": loadVK_EXT_sample_locations, - "VK_NV_framebuffer_mixed_samples": loadVK_NV_framebuffer_mixed_samples, - "VK_NV_sample_mask_override_coverage": loadVK_NV_sample_mask_override_coverage, - "VK_KHR_present_id": loadVK_KHR_present_id, - "VK_EXT_descriptor_buffer": loadVK_EXT_descriptor_buffer, - "VK_EXT_filter_cubic": loadVK_EXT_filter_cubic, - "VK_KHR_pipeline_executable_properties": loadVK_KHR_pipeline_executable_properties, - "VK_EXT_extended_dynamic_state3": loadVK_EXT_extended_dynamic_state3, - "VK_KHR_performance_query": loadVK_KHR_performance_query, - "VK_GOOGLE_user_type": loadVK_GOOGLE_user_type, - "VK_KHR_ray_tracing_maintenance1": loadVK_KHR_ray_tracing_maintenance1, - "VK_EXT_debug_report": loadVK_EXT_debug_report, - "VK_EXT_multisampled_render_to_single_sampled": loadVK_EXT_multisampled_render_to_single_sampled, - "VK_EXT_device_address_binding_report": loadVK_EXT_device_address_binding_report, - "VK_NV_clip_space_w_scaling": loadVK_NV_clip_space_w_scaling, - "VK_NV_fill_rectangle": loadVK_NV_fill_rectangle, - "VK_EXT_shader_image_atomic_int64": loadVK_EXT_shader_image_atomic_int64, - "VK_KHR_swapchain": loadVK_KHR_swapchain, - "VK_NV_ray_tracing": loadVK_NV_ray_tracing, - "VK_EXT_swapchain_maintenance1": loadVK_EXT_swapchain_maintenance1, - "VK_KHR_ray_tracing_pipeline": loadVK_KHR_ray_tracing_pipeline, - "VK_EXT_ycbcr_image_arrays": loadVK_EXT_ycbcr_image_arrays, - "VK_AMD_negative_viewport_height": loadVK_AMD_negative_viewport_height, - "VK_EXT_provoking_vertex": loadVK_EXT_provoking_vertex, - "VK_EXT_calibrated_timestamps": loadVK_EXT_calibrated_timestamps, - "VK_EXT_attachment_feedback_loop_layout": loadVK_EXT_attachment_feedback_loop_layout, - "VK_AMD_mixed_attachment_samples": loadVK_AMD_mixed_attachment_samples, - "VK_HUAWEI_invocation_mask": loadVK_HUAWEI_invocation_mask, - "VK_EXT_external_memory_host": loadVK_EXT_external_memory_host, - "VK_NV_device_diagnostics_config": loadVK_NV_device_diagnostics_config, - "VK_EXT_fragment_density_map2": loadVK_EXT_fragment_density_map2, - "VK_NV_shader_subgroup_partitioned": loadVK_NV_shader_subgroup_partitioned, - "VK_EXT_image_sliced_view_of_3d": loadVK_EXT_image_sliced_view_of_3d, - "VK_NV_fragment_shading_rate_enums": loadVK_NV_fragment_shading_rate_enums, - "VK_EXT_display_surface_counter": loadVK_EXT_display_surface_counter, - "VK_ARM_shader_core_properties": loadVK_ARM_shader_core_properties, - "VK_EXT_shader_module_identifier": loadVK_EXT_shader_module_identifier, - "VK_EXT_border_color_swizzle": loadVK_EXT_border_color_swizzle, - "VK_AMD_shader_image_load_store_lod": loadVK_AMD_shader_image_load_store_lod, - "VK_AMD_display_native_hdr": loadVK_AMD_display_native_hdr, - "VK_NV_memory_decompression": loadVK_NV_memory_decompression, - "VK_EXT_direct_mode_display": loadVK_EXT_direct_mode_display, - "VK_EXT_fragment_shader_interlock": loadVK_EXT_fragment_shader_interlock, - "VK_NV_coverage_reduction_mode": loadVK_NV_coverage_reduction_mode, - "VK_KHR_get_display_properties2": loadVK_KHR_get_display_properties2, - "VK_INTEL_shader_integer_functions2": loadVK_INTEL_shader_integer_functions2, - "VK_NV_glsl_shader": loadVK_NV_glsl_shader, - "VK_KHR_shader_clock": loadVK_KHR_shader_clock, - "VK_EXT_image_2d_view_of_3d": loadVK_EXT_image_2d_view_of_3d, - "VK_QCOM_tile_properties": loadVK_QCOM_tile_properties, - "VK_KHR_push_descriptor": loadVK_KHR_push_descriptor, - "VK_NV_viewport_swizzle": loadVK_NV_viewport_swizzle, - "VK_KHR_ray_query": loadVK_KHR_ray_query, - "VK_KHR_present_wait": loadVK_KHR_present_wait, - "VK_NV_shading_rate_image": loadVK_NV_shading_rate_image, - "VK_EXT_fragment_density_map": loadVK_EXT_fragment_density_map, - "VK_NV_device_diagnostic_checkpoints": loadVK_NV_device_diagnostic_checkpoints, - "VK_EXT_pci_bus_info": loadVK_EXT_pci_bus_info, - "VK_NV_external_memory": loadVK_NV_external_memory, - "VK_EXT_queue_family_foreign": loadVK_EXT_queue_family_foreign, - "VK_KHR_swapchain_mutable_format": loadVK_KHR_swapchain_mutable_format, - "VK_EXT_depth_clip_control": loadVK_EXT_depth_clip_control, - "VK_EXT_debug_utils": loadVK_EXT_debug_utils, - "VK_KHR_portability_enumeration": loadVK_KHR_portability_enumeration, - "VK_EXT_memory_priority": loadVK_EXT_memory_priority, - "VK_EXT_validation_flags": loadVK_EXT_validation_flags, - "VK_AMD_shader_core_properties": loadVK_AMD_shader_core_properties, - "VK_EXT_conservative_rasterization": loadVK_EXT_conservative_rasterization, - "VK_KHR_external_fence_fd": loadVK_KHR_external_fence_fd, - "VK_NV_device_generated_commands": loadVK_NV_device_generated_commands, - "VK_NV_present_barrier": loadVK_NV_present_barrier, - "VK_AMD_gcn_shader": loadVK_AMD_gcn_shader, - "VK_NV_viewport_array2": loadVK_NV_viewport_array2, - "VK_INTEL_performance_query": loadVK_INTEL_performance_query, - "VK_NVX_multiview_per_view_attributes": loadVK_NVX_multiview_per_view_attributes, - "VK_EXT_primitives_generated_query": loadVK_EXT_primitives_generated_query, - "VK_AMD_pipeline_compiler_control": loadVK_AMD_pipeline_compiler_control, - "VK_EXT_post_depth_coverage": loadVK_EXT_post_depth_coverage, - "VK_EXT_rgba10x6_formats": loadVK_EXT_rgba10x6_formats, - "VK_KHR_external_memory_fd": loadVK_KHR_external_memory_fd, - "VK_NV_dedicated_allocation_image_aliasing": loadVK_NV_dedicated_allocation_image_aliasing, - "VK_NV_cooperative_matrix": loadVK_NV_cooperative_matrix, - "VK_EXT_depth_clamp_zero_one": loadVK_EXT_depth_clamp_zero_one, - "VK_EXT_conditional_rendering": loadVK_EXT_conditional_rendering, - "VK_QCOM_multiview_per_view_viewports": loadVK_QCOM_multiview_per_view_viewports, - "VK_NV_linear_color_attachment": loadVK_NV_linear_color_attachment, - "VK_EXT_shader_subgroup_ballot": loadVK_EXT_shader_subgroup_ballot, - "VK_EXT_multi_draw": loadVK_EXT_multi_draw, - "VK_NV_fragment_coverage_to_color": loadVK_NV_fragment_coverage_to_color, - "VK_EXT_load_store_op_none": loadVK_EXT_load_store_op_none, - "VK_QCOM_rotated_copy_commands": loadVK_QCOM_rotated_copy_commands, - "VK_EXT_surface_maintenance1": loadVK_EXT_surface_maintenance1, - "VK_EXT_swapchain_colorspace": loadVK_EXT_swapchain_colorspace, - "VK_EXT_image_drm_format_modifier": loadVK_EXT_image_drm_format_modifier, - "VK_EXT_validation_features": loadVK_EXT_validation_features, - "VK_KHR_workgroup_memory_explicit_layout": loadVK_KHR_workgroup_memory_explicit_layout, - "VK_EXT_index_type_uint8": loadVK_EXT_index_type_uint8, - "VK_EXT_mesh_shader": loadVK_EXT_mesh_shader, - "VK_AMD_shader_early_and_late_fragment_tests": loadVK_AMD_shader_early_and_late_fragment_tests, - "VK_KHR_display_swapchain": loadVK_KHR_display_swapchain, - "VK_EXT_transform_feedback": loadVK_EXT_transform_feedback, - "VK_GOOGLE_decorate_string": loadVK_GOOGLE_decorate_string, - "VK_EXT_shader_atomic_float": loadVK_EXT_shader_atomic_float, - "VK_EXT_acquire_drm_display": loadVK_EXT_acquire_drm_display, - "VK_EXT_pipeline_properties": loadVK_EXT_pipeline_properties, - "VK_EXT_graphics_pipeline_library": loadVK_EXT_graphics_pipeline_library, - "VK_KHR_acceleration_structure": loadVK_KHR_acceleration_structure, - "VK_AMD_shader_core_properties2": loadVK_AMD_shader_core_properties2, - "VK_KHR_surface": loadVK_KHR_surface, - "VK_AMD_gpu_shader_half_float": loadVK_AMD_gpu_shader_half_float, - "VK_KHR_deferred_host_operations": loadVK_KHR_deferred_host_operations, - "VK_NV_dedicated_allocation": loadVK_NV_dedicated_allocation, - "VK_GOOGLE_hlsl_functionality1": loadVK_GOOGLE_hlsl_functionality1, - "VK_EXT_robustness2": loadVK_EXT_robustness2, - "VK_NVX_image_view_handle": loadVK_NVX_image_view_handle, - "VK_EXT_non_seamless_cube_map": loadVK_EXT_non_seamless_cube_map, - "VK_EXT_opacity_micromap": loadVK_EXT_opacity_micromap, - "VK_EXT_image_view_min_lod": loadVK_EXT_image_view_min_lod, - "VK_AMD_shader_trinary_minmax": loadVK_AMD_shader_trinary_minmax, - "VK_QCOM_render_pass_store_ops": loadVK_QCOM_render_pass_store_ops, - "VK_EXT_device_fault": loadVK_EXT_device_fault, - "VK_EXT_custom_border_color": loadVK_EXT_custom_border_color, - "VK_EXT_mutable_descriptor_type": loadVK_EXT_mutable_descriptor_type, - "VK_AMD_rasterization_order": loadVK_AMD_rasterization_order, - "VK_EXT_vertex_input_dynamic_state": loadVK_EXT_vertex_input_dynamic_state, - "VK_KHR_incremental_present": loadVK_KHR_incremental_present, - "VK_KHR_fragment_shading_rate": loadVK_KHR_fragment_shading_rate, - "VK_EXT_color_write_enable": loadVK_EXT_color_write_enable, - "VK_SEC_amigo_profiling": loadVK_SEC_amigo_profiling, - "VK_GOOGLE_display_timing": loadVK_GOOGLE_display_timing, - "VK_NVX_binary_import": loadVK_NVX_binary_import, - "VK_EXT_depth_clip_enable": loadVK_EXT_depth_clip_enable, - "VK_EXT_subpass_merge_feedback": loadVK_EXT_subpass_merge_feedback, - "VK_NV_representative_fragment_test": loadVK_NV_representative_fragment_test, - "VK_EXT_validation_cache": loadVK_EXT_validation_cache, - "VK_EXT_display_control": loadVK_EXT_display_control, - "VK_KHR_external_semaphore_fd": loadVK_KHR_external_semaphore_fd, - "VK_KHR_fragment_shader_barycentric": loadVK_KHR_fragment_shader_barycentric, - "VK_NV_inherited_viewport_scissor": loadVK_NV_inherited_viewport_scissor, - "VK_EXT_legacy_dithering": loadVK_EXT_legacy_dithering, - "VK_NV_ray_tracing_motion_blur": loadVK_NV_ray_tracing_motion_blur, - "VK_EXT_physical_device_drm": loadVK_EXT_physical_device_drm, - "VK_EXT_pipeline_protected_access": loadVK_EXT_pipeline_protected_access, - "VK_QCOM_render_pass_transform": loadVK_QCOM_render_pass_transform, - "VK_GOOGLE_surfaceless_query": loadVK_GOOGLE_surfaceless_query, - "VK_EXT_memory_budget": loadVK_EXT_memory_budget, - "VK_EXT_discard_rectangles": loadVK_EXT_discard_rectangles, - "VK_EXT_shader_stencil_export": loadVK_EXT_shader_stencil_export, - "VK_KHR_shared_presentable_image": loadVK_KHR_shared_presentable_image, - "VK_NV_external_memory_rdma": loadVK_NV_external_memory_rdma, - "VK_EXT_image_compression_control_swapchain": loadVK_EXT_image_compression_control_swapchain, - "VK_EXT_hdr_metadata": loadVK_EXT_hdr_metadata, - "VK_AMD_device_coherent_memory": loadVK_AMD_device_coherent_memory, - "VK_EXT_device_memory_report": loadVK_EXT_device_memory_report, - "VK_ARM_shader_core_builtins": loadVK_ARM_shader_core_builtins, - "VK_QCOM_multiview_per_view_render_areas": loadVK_QCOM_multiview_per_view_render_areas, - "VK_LUNARG_direct_driver_loading": loadVK_LUNARG_direct_driver_loading, - "VK_AMD_memory_overallocation_behavior": loadVK_AMD_memory_overallocation_behavior, - "VK_NV_mesh_shader": loadVK_NV_mesh_shader, - "VK_AMD_shader_explicit_vertex_parameter": loadVK_AMD_shader_explicit_vertex_parameter, - "VK_EXT_headless_surface": loadVK_EXT_headless_surface, - "VK_NV_shader_sm_builtins": loadVK_NV_shader_sm_builtins, - "VK_EXT_shader_subgroup_vote": loadVK_EXT_shader_subgroup_vote, - "VK_NV_copy_memory_indirect": loadVK_NV_copy_memory_indirect, - "VK_EXT_image_compression_control": loadVK_EXT_image_compression_control, - "VK_EXT_astc_decode_mode": loadVK_EXT_astc_decode_mode, - "VK_EXT_buffer_device_address": loadVK_EXT_buffer_device_address, - "VK_KHR_get_surface_capabilities2": loadVK_KHR_get_surface_capabilities2, - "VK_KHR_display": loadVK_KHR_display, - "VK_QCOM_render_pass_shader_resolve": loadVK_QCOM_render_pass_shader_resolve, - "VK_EXT_depth_range_unrestricted": loadVK_EXT_depth_range_unrestricted, - "VK_HUAWEI_subpass_shading": loadVK_HUAWEI_subpass_shading, - "VK_VALVE_descriptor_set_host_mapping": loadVK_VALVE_descriptor_set_host_mapping, - "VK_HUAWEI_cluster_culling_shader": loadVK_HUAWEI_cluster_culling_shader, - "VK_KHR_surface_protected_capabilities": loadVK_KHR_surface_protected_capabilities, - "VK_NV_shader_image_footprint": loadVK_NV_shader_image_footprint, - "VK_NV_external_memory_capabilities": loadVK_NV_external_memory_capabilities, - "VK_NV_compute_shader_derivatives": loadVK_NV_compute_shader_derivatives, - "VK_QCOM_fragment_density_map_offset": loadVK_QCOM_fragment_density_map_offset, -}.toTable -when defined(VK_USE_PLATFORM_XLIB_KHR): - include platform/xlib - EXTENSION_LOADERS["VK_KHR_xlib_surface"] = loadVK_KHR_xlib_surface -when defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT): - include platform/xlib_xrandr - EXTENSION_LOADERS["VK_EXT_acquire_xlib_display"] = loadVK_EXT_acquire_xlib_display -when defined(VK_USE_PLATFORM_XCB_KHR): - include platform/xcb - EXTENSION_LOADERS["VK_KHR_xcb_surface"] = loadVK_KHR_xcb_surface -when defined(VK_USE_PLATFORM_WAYLAND_KHR): - include platform/wayland - EXTENSION_LOADERS["VK_KHR_wayland_surface"] = loadVK_KHR_wayland_surface -when defined(VK_USE_PLATFORM_DIRECTFB_EXT): - include platform/directfb - EXTENSION_LOADERS["VK_EXT_directfb_surface"] = loadVK_EXT_directfb_surface -when defined(VK_USE_PLATFORM_ANDROID_KHR): - include platform/android - EXTENSION_LOADERS["VK_KHR_android_surface"] = loadVK_KHR_android_surface - EXTENSION_LOADERS["VK_ANDROID_external_memory_android_hardware_buffer"] = loadVK_ANDROID_external_memory_android_hardware_buffer -when defined(VK_USE_PLATFORM_WIN32_KHR): - include platform/win32 - EXTENSION_LOADERS["VK_KHR_external_semaphore_win32"] = loadVK_KHR_external_semaphore_win32 - EXTENSION_LOADERS["VK_EXT_full_screen_exclusive"] = loadVK_EXT_full_screen_exclusive - EXTENSION_LOADERS["VK_NV_external_memory_win32"] = loadVK_NV_external_memory_win32 - EXTENSION_LOADERS["VK_KHR_external_memory_win32"] = loadVK_KHR_external_memory_win32 - EXTENSION_LOADERS["VK_NV_acquire_winrt_display"] = loadVK_NV_acquire_winrt_display - EXTENSION_LOADERS["VK_KHR_win32_surface"] = loadVK_KHR_win32_surface - EXTENSION_LOADERS["VK_KHR_external_fence_win32"] = loadVK_KHR_external_fence_win32 - EXTENSION_LOADERS["VK_KHR_win32_keyed_mutex"] = loadVK_KHR_win32_keyed_mutex -when defined(VK_USE_PLATFORM_VI_NN): - include platform/vi - EXTENSION_LOADERS["VK_NN_vi_surface"] = loadVK_NN_vi_surface -when defined(VK_USE_PLATFORM_IOS_MVK): - include platform/ios - EXTENSION_LOADERS["VK_MVK_ios_surface"] = loadVK_MVK_ios_surface -when defined(VK_USE_PLATFORM_MACOS_MVK): - include platform/macos - EXTENSION_LOADERS["VK_MVK_macos_surface"] = loadVK_MVK_macos_surface -when defined(VK_USE_PLATFORM_METAL_EXT): - include platform/metal - EXTENSION_LOADERS["VK_EXT_metal_objects"] = loadVK_EXT_metal_objects - EXTENSION_LOADERS["VK_EXT_metal_surface"] = loadVK_EXT_metal_surface -when defined(VK_USE_PLATFORM_FUCHSIA): - include platform/fuchsia - EXTENSION_LOADERS["VK_FUCHSIA_external_semaphore"] = loadVK_FUCHSIA_external_semaphore - EXTENSION_LOADERS["VK_FUCHSIA_imagepipe_surface"] = loadVK_FUCHSIA_imagepipe_surface - EXTENSION_LOADERS["VK_FUCHSIA_external_memory"] = loadVK_FUCHSIA_external_memory - EXTENSION_LOADERS["VK_FUCHSIA_buffer_collection"] = loadVK_FUCHSIA_buffer_collection -when defined(VK_USE_PLATFORM_GGP): - include platform/ggp - EXTENSION_LOADERS["VK_GGP_frame_token"] = loadVK_GGP_frame_token - EXTENSION_LOADERS["VK_GGP_stream_descriptor_surface"] = loadVK_GGP_stream_descriptor_surface -when defined(VK_USE_PLATFORM_SCI): - include platform/sci -when defined(VK_ENABLE_BETA_EXTENSIONS): - include platform/provisional - EXTENSION_LOADERS["VK_KHR_video_encode_queue"] = loadVK_KHR_video_encode_queue - EXTENSION_LOADERS["VK_KHR_video_queue"] = loadVK_KHR_video_queue - EXTENSION_LOADERS["VK_EXT_video_encode_h264"] = loadVK_EXT_video_encode_h264 - EXTENSION_LOADERS["VK_EXT_video_encode_h265"] = loadVK_EXT_video_encode_h265 - EXTENSION_LOADERS["VK_KHR_video_decode_queue"] = loadVK_KHR_video_decode_queue - EXTENSION_LOADERS["VK_KHR_video_decode_h264"] = loadVK_KHR_video_decode_h264 - EXTENSION_LOADERS["VK_KHR_portability_subset"] = loadVK_KHR_portability_subset - EXTENSION_LOADERS["VK_KHR_video_decode_h265"] = loadVK_KHR_video_decode_h265 -when defined(VK_USE_PLATFORM_SCREEN_QNX): - include platform/screen - EXTENSION_LOADERS["VK_QNX_screen_surface"] = loadVK_QNX_screen_surface - -proc loadExtension*(instance: VkInstance, extension: string) = EXTENSION_LOADERS[extension](instance) - -# load global functions immediately -block globalFunctions: - let instance = VkInstance(0) - vkEnumerateInstanceVersion = cast[proc(pApiVersion: ptr uint32): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkEnumerateInstanceVersion")) - vkEnumerateInstanceExtensionProperties = cast[proc(pLayerName: cstring, pPropertyCount: ptr uint32, pProperties: ptr VkExtensionProperties): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkEnumerateInstanceExtensionProperties")) - vkEnumerateInstanceLayerProperties = cast[proc(pPropertyCount: ptr uint32, pProperties: ptr VkLayerProperties): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkEnumerateInstanceLayerProperties")) - vkCreateInstance = cast[proc(pCreateInfo: ptr VkInstanceCreateInfo, pAllocator: ptr VkAllocationCallbacks, pInstance: ptr VkInstance): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateInstance")) - -converter VkBool2NimBool*(a: VkBool32): bool = a > 0 -converter NimBool2VkBool*(a: bool): VkBool32 = VkBool32(a) -proc `$`*(x: uint32): string {.raises: [].} = addInt(result, x) diff -r 24d18cd8be8a -r 7f921d7d0a2b src/semicongine/vulkan/buffer.nim --- a/src/semicongine/vulkan/buffer.nim Mon May 08 21:45:47 2023 +0700 +++ b/src/semicongine/vulkan/buffer.nim Tue May 09 01:11:51 2023 +0700 @@ -4,7 +4,7 @@ import std/tables import std/logging -import ./api +import ../core import ./device import ./memory import ./physicaldevice diff -r 24d18cd8be8a -r 7f921d7d0a2b src/semicongine/vulkan/commandbuffer.nim --- a/src/semicongine/vulkan/commandbuffer.nim Mon May 08 21:45:47 2023 +0700 +++ b/src/semicongine/vulkan/commandbuffer.nim Tue May 09 01:11:51 2023 +0700 @@ -1,4 +1,4 @@ -import ./api +import ../core import ./device import ./physicaldevice import ./utils diff -r 24d18cd8be8a -r 7f921d7d0a2b src/semicongine/vulkan/descriptor.nim --- a/src/semicongine/vulkan/descriptor.nim Mon May 08 21:45:47 2023 +0700 +++ b/src/semicongine/vulkan/descriptor.nim Tue May 09 01:11:51 2023 +0700 @@ -1,7 +1,7 @@ import std/enumerate import std/tables -import ./api +import ../core import ./device import ./buffer import ./utils diff -r 24d18cd8be8a -r 7f921d7d0a2b src/semicongine/vulkan/device.nim --- a/src/semicongine/vulkan/device.nim Mon May 08 21:45:47 2023 +0700 +++ b/src/semicongine/vulkan/device.nim Tue May 09 01:11:51 2023 +0700 @@ -2,7 +2,7 @@ import std/options import std/tables -import ./api +import ../core import ./utils import ./instance import ./physicaldevice diff -r 24d18cd8be8a -r 7f921d7d0a2b src/semicongine/vulkan/drawable.nim --- a/src/semicongine/vulkan/drawable.nim Mon May 08 21:45:47 2023 +0700 +++ b/src/semicongine/vulkan/drawable.nim Tue May 09 01:11:51 2023 +0700 @@ -2,12 +2,10 @@ import std/strformat import std/logging -import ./api +import ../core import ./utils import ./buffer -import ../gpu_data - type Drawable* = object elementCount*: uint32 # number of vertices or indices diff -r 24d18cd8be8a -r 7f921d7d0a2b src/semicongine/vulkan/framebuffer.nim --- a/src/semicongine/vulkan/framebuffer.nim Mon May 08 21:45:47 2023 +0700 +++ b/src/semicongine/vulkan/framebuffer.nim Tue May 09 01:11:51 2023 +0700 @@ -1,9 +1,8 @@ -import ./api +import ../core import ./device import ./utils import ./image -import ../math type Framebuffer* = object diff -r 24d18cd8be8a -r 7f921d7d0a2b src/semicongine/vulkan/image.nim --- a/src/semicongine/vulkan/image.nim Mon May 08 21:45:47 2023 +0700 +++ b/src/semicongine/vulkan/image.nim Tue May 09 01:11:51 2023 +0700 @@ -1,7 +1,7 @@ import std/tables import std/logging -import ./api +import ../core import ./device import ./physicaldevice import ./buffer diff -r 24d18cd8be8a -r 7f921d7d0a2b src/semicongine/vulkan/instance.nim --- a/src/semicongine/vulkan/instance.nim Mon May 08 21:45:47 2023 +0700 +++ b/src/semicongine/vulkan/instance.nim Tue May 09 01:11:51 2023 +0700 @@ -3,7 +3,7 @@ import std/sequtils import std/logging -import ./api +import ../core import ./utils import ../platform/vulkanExtensions diff -r 24d18cd8be8a -r 7f921d7d0a2b src/semicongine/vulkan/memory.nim --- a/src/semicongine/vulkan/memory.nim Mon May 08 21:45:47 2023 +0700 +++ b/src/semicongine/vulkan/memory.nim Tue May 09 01:11:51 2023 +0700 @@ -1,6 +1,6 @@ import std/strformat -import ./api +import ../core import ./device type diff -r 24d18cd8be8a -r 7f921d7d0a2b src/semicongine/vulkan/physicaldevice.nim --- a/src/semicongine/vulkan/physicaldevice.nim Mon May 08 21:45:47 2023 +0700 +++ b/src/semicongine/vulkan/physicaldevice.nim Tue May 09 01:11:51 2023 +0700 @@ -2,7 +2,7 @@ import std/tables import std/sequtils -import ./api +import ../core import ./utils import ./instance diff -r 24d18cd8be8a -r 7f921d7d0a2b src/semicongine/vulkan/pipeline.nim --- a/src/semicongine/vulkan/pipeline.nim Mon May 08 21:45:47 2023 +0700 +++ b/src/semicongine/vulkan/pipeline.nim Tue May 09 01:11:51 2023 +0700 @@ -2,7 +2,7 @@ import std/strformat import std/sequtils -import ./api +import ../core import ./device import ./descriptor import ./shader @@ -10,8 +10,6 @@ import ./utils import ./image -import ../gpu_data - type Pipeline* = object device*: Device diff -r 24d18cd8be8a -r 7f921d7d0a2b src/semicongine/vulkan/renderpass.nim --- a/src/semicongine/vulkan/renderpass.nim Mon May 08 21:45:47 2023 +0700 +++ b/src/semicongine/vulkan/renderpass.nim Tue May 09 01:11:51 2023 +0700 @@ -1,7 +1,7 @@ import std/options import std/logging -import ./api +import ../core import ./utils import ./device import ./physicaldevice @@ -9,8 +9,6 @@ import ./shader import ./framebuffer -import ../math - type Subpass* = object clearColor*: Vec4f diff -r 24d18cd8be8a -r 7f921d7d0a2b src/semicongine/vulkan/shader.nim --- a/src/semicongine/vulkan/shader.nim Mon May 08 21:45:47 2023 +0700 +++ b/src/semicongine/vulkan/shader.nim Tue May 09 01:11:51 2023 +0700 @@ -7,12 +7,10 @@ import std/strutils import std/compilesettings -import ./api +import ../core import ./device import ./utils -import ../gpu_data - const DEFAULT_SHADER_VERSION = 450 const DEFAULT_SHADER_ENTRYPOINT = "main" diff -r 24d18cd8be8a -r 7f921d7d0a2b src/semicongine/vulkan/swapchain.nim --- a/src/semicongine/vulkan/swapchain.nim Mon May 08 21:45:47 2023 +0700 +++ b/src/semicongine/vulkan/swapchain.nim Tue May 09 01:11:51 2023 +0700 @@ -2,7 +2,7 @@ import std/strformat import std/logging -import ./api +import ../core import ./utils import ./device import ./physicaldevice @@ -11,8 +11,6 @@ import ./commandbuffer import ./syncing -import ../math - type Swapchain* = object device*: Device diff -r 24d18cd8be8a -r 7f921d7d0a2b src/semicongine/vulkan/syncing.nim --- a/src/semicongine/vulkan/syncing.nim Mon May 08 21:45:47 2023 +0700 +++ b/src/semicongine/vulkan/syncing.nim Tue May 09 01:11:51 2023 +0700 @@ -1,4 +1,4 @@ -import ./api +import ../core import ./device type diff -r 24d18cd8be8a -r 7f921d7d0a2b src/vulkan_api/vulkan_api_generator.nim --- a/src/vulkan_api/vulkan_api_generator.nim Mon May 08 21:45:47 2023 +0700 +++ b/src/vulkan_api/vulkan_api_generator.nim Tue May 09 01:11:51 2023 +0700 @@ -647,7 +647,7 @@ mainout.add "}.toTable" for platform in api.findAll("platform"): mainout.add &"when defined({platform.attr(\"protect\")}):" - mainout.add &" include platform/{platform.attr(\"name\")}" + mainout.add &" ../vulkan/include platform/{platform.attr(\"name\")}" if platform.attr("name") in extensionLoaderMap: for extension, loader in extensionLoaderMap[platform.attr("name")].pairs: mainout.add &" EXTENSION_LOADERS[\"{extension}\"] = {loader}"