diff --git a/src/Aardvark.Rendering.Vulkan.Wrapper/Generator.fsx b/src/Aardvark.Rendering.Vulkan.Wrapper/Generator.fsx index 9a156fe1..bc3eb43e 100644 --- a/src/Aardvark.Rendering.Vulkan.Wrapper/Generator.fsx +++ b/src/Aardvark.Rendering.Vulkan.Wrapper/Generator.fsx @@ -7,6 +7,25 @@ open System open System.IO open System.Text.RegularExpressions +[] +module StringUtilities = + + let camelCase (str : string) = + let parts = System.Collections.Generic.List() + + let mutable str = str + let mutable fi = str.IndexOf '_' + while fi >= 0 do + parts.Add (str.Substring(0, fi)) + str <- str.Substring(fi + 1) + fi <- str.IndexOf '_' + + if str.Length > 0 then + parts.Add str + let parts = Seq.toList parts + + parts |> List.map (fun p -> p.Substring(0,1).ToUpper() + p.Substring(1).ToLower()) |> String.concat "" + [] module XmlStuff = let xname s = XName.op_Implicit s @@ -130,8 +149,12 @@ module XmlStuff = BitMask (System.Int32.Parse bp) | _, _, Some a -> - let comment = attrib e "comment" |> Option.defaultValue "" - if comment.Contains("Backwards-compatible") || comment.Contains("backwards compatibility") then + let deprecated = + match attrib e "deprecated" with + | Some "true" | Some "ignored" | Some "aliased" -> true + | _ -> false + + if deprecated then Failure else // Search the whole document for the alias. This is a bit crazy but perhaps the simplest @@ -180,6 +203,14 @@ module XmlStuff = f e + let private isVulkanApi e = + match attrib e "api" with + | Some api -> api.Split(',') |> Array.contains "vulkan" + | _ -> true + + type XContainer with + member x.Elements(name: string) = x.Elements(xname name) |> Seq.filter isVulkanApi + member x.Descendants(name: string) = x.Descendants(xname name) |> Seq.filter isVulkanApi type Type = | Literal of string @@ -274,7 +305,7 @@ module Type = let strangeName = e.Element(xname "name").Value e.Elements(xname "comment").Remove() let strangeType = - let v = e.Value.Trim() + let v = e.Value.Replace("typedef", "").Trim() let id = v.LastIndexOf(strangeName) if id < 0 then v else v.Substring(0, id).Trim() + v.Substring(id + strangeName.Length) @@ -344,7 +375,7 @@ module Enum = match attrib e "name" with | Some name -> let cases = - e.Descendants(xname "enum") + e.Descendants("enum") |> Seq.choose (fun kv -> let name = attrib kv "name" let comment = Comment.tryRead kv @@ -390,7 +421,7 @@ module Struct = Some { name = name; fields = []; isUnion = isUnion; alias = Some alias; comment = comment } | None -> let fields = - e.Descendants (xname "member") + e.Descendants ("member") |> Seq.map (fun m -> m.Elements(xname "comment").Remove() @@ -458,20 +489,16 @@ type Typedef = { name : string; baseType : Type } module Typedef = let tryRead (defines : Map) (e : XElement) = - match child e "name", child e "type" with - | Some n, Some t -> - let (t, n) = Type.parseTypeAndName defines t n - - let emit = - match t with - | Type.Literal t -> Enum.cleanName t <> Enum.cleanName n - | _ -> true - if emit then - Some { name = Enum.cleanName n; baseType = t} - else - None - | _ -> None - + let (t, n) = Type.readXmlTypeAndName defines e + + let emit = + match t with + | Type.Literal t -> Enum.cleanName t <> Enum.cleanName n + | _ -> true + if emit then + Some { name = Enum.cleanName n; baseType = t} + else + None type Alias = { @@ -503,7 +530,7 @@ module Command = let (returnType,name) = Type.readXmlTypeAndName defines proto let parameters = - e.Elements(xname "param") + e.Elements("param") |> Seq.map (Type.readXmlTypeAndName defines) |> Seq.toList @@ -588,56 +615,59 @@ type VkVersion = | VkVersion12 | VkVersion13 - static member All = - [VkVersion10; VkVersion11; VkVersion12; VkVersion13] - - static member Parse(str) = + static member TryParse(str) = match str with - | "VK_VERSION_1_0" -> VkVersion10 - | "VK_VERSION_1_1" -> VkVersion11 - | "VK_VERSION_1_2" -> VkVersion12 - | "VK_VERSION_1_3" -> VkVersion13 - | _ -> failwithf "failed to parse version %s" str + | "VK_VERSION_1_0" -> Some VkVersion10 + | "VK_VERSION_1_1" -> Some VkVersion11 + | "VK_VERSION_1_2" -> Some VkVersion12 + | "VK_VERSION_1_3" -> Some VkVersion13 + | _ -> None + +let (|VkVersion|_|) (str: string) = + VkVersion.TryParse str [] module VkVersion = - - let autoOpen = function - | VkVersion10 -> false - | VkVersion11 -> false - | VkVersion12 -> false - | VkVersion13 -> false - let toModuleName = function | VkVersion10 -> None | VkVersion11 -> Some "Vulkan11" | VkVersion12 -> Some "Vulkan12" | VkVersion13 -> Some "Vulkan13" - let getPriorModules (version : VkVersion) = - let index = VkVersion.All |> List.findIndex ((=) version) - VkVersion.All |> List.splitAt index |> fst |> List.choose toModuleName - - let allModules = - VkVersion.All |> List.choose toModuleName - [] -type RequiredBy = +type Module = | Core of VkVersion | Extension of string -[] -module RequiredBy = - - let autoOpen = function - | RequiredBy.Core v -> VkVersion.autoOpen v - | _ -> false +let (|ModuleName|_|) = function + | VkVersion v -> Some <| Module.Core v + | str when not <| String.IsNullOrEmpty str -> Some <| Module.Extension str + | _ -> None - let isCore (r : RequiredBy) = - match r with - | RequiredBy.Core _ -> true - | _ -> false +[] +type Dependency = + | Empty + | Expr of string + + member x.References = + match x with + | Empty -> Set.empty + | Expr expr -> + expr.Replace("(", "").Replace(")", "").Replace(",", "+").Split('+') + |> Set.ofArray + |> Set.map (function + | ModuleName name -> name + | _ -> failwithf "Invalid depdendency expression '%s'" expr + ) + member x.Extensions = + x.References + |> Set.toList + |> List.choose (function + | Module.Extension ext -> Some ext + | _ -> None + ) + |> Set.ofList type Require = { @@ -650,7 +680,7 @@ type Require = typedefs : list handles : list comment : string option - requiredBy : RequiredBy + depends : Dependency } [] @@ -667,7 +697,7 @@ module Require = | Some x -> map |> Map.add key (x @ values) ) - if x.requiredBy <> y.requiredBy then + if x.depends <> y.depends then failwith "cannot union interfaces required by different APIs" else { @@ -680,7 +710,7 @@ module Require = typedefs = x.typedefs @ y.typedefs |> List.distinct handles = x.handles @ y.handles comment = None - requiredBy = x.requiredBy + depends = x.depends } let unionMany (r : seq) = @@ -698,16 +728,50 @@ module Feature = let isEmpty (f : Feature) = f.requires |> List.forall Require.isEmpty +type Attribute = + | Disabled + | Obsolete of Module option + | Promoted of Module + | Deprecated of Module option + +type ExtensionType = + | Device + | Instance type Extension = { + typ : ExtensionType name : string number : int - dependencies : Set - references : Set - requires : List + depends : Dependency + requires : Require list + attributes : Attribute list } + member x.Disabled = + x.attributes |> List.contains Attribute.Disabled + + member x.Promoted = + x.attributes + |> List.tryPick (function + | Attribute.Promoted ref -> Some ref + | _ -> None + ) + + member x.Obsolete = + x.attributes + |> List.tryPick (function + | Attribute.Obsolete ref -> Some ref + | _ -> None + ) + + member x.Deprecated = + x.attributes + |> List.tryPick (function + | Attribute.Deprecated ref -> Some ref + | _ -> None + ) + [] module Extension = let private dummyRx = System.Text.RegularExpressions.Regex @"VK_[A-Za-z]+_extension_([0-9]+)" @@ -715,11 +779,46 @@ module Extension = let isEmpty (e : Extension) = dummyRx.IsMatch e.name && e.requires |> List.forall Require.isEmpty + let private regex = Regex @"^VK_(?[A-Z]+)_(?.*)$" + + let toModuleName (str: string) = + let m = regex.Match str + let kind = m.Groups.["kind"].Value + let name = m.Groups.["name"].Value + sprintf "%s%s" kind (camelCase name) + +module Module = + + let isCore = function + | Module.Core _ -> true + | _ -> false + + let toModuleName = function + | Module.Core v -> VkVersion.toModuleName v + | Module.Extension e -> Some <| Extension.toModuleName e + +module Dependency = + let ofOption = function + | Some expr -> Dependency.Expr expr + | _ -> Dependency.Empty + + let private regexFeatureName = Regex "[a-zA-Z0-9_]+" + + let toString = function + | Dependency.Empty -> None + | Dependency.Expr expr -> + Some <| regexFeatureName.Replace(expr, fun m -> + match m.Value with + | VkVersion v -> v |> VkVersion.toModuleName |> Option.get + | ext -> Extension.toModuleName ext + + ).Replace(",", " | ").Replace("+", ", ") + module XmlReader = let vendorTags (registry : XElement) = - registry.Elements(xname "tags") + registry.Elements("tags") |> Seq.collect (fun e -> - e.Elements(xname "tag") + e.Elements("tag") |> Seq.choose (fun c -> match attrib c "name" with | Some name -> Some name @@ -729,10 +828,10 @@ module XmlReader = |> List.ofSeq let defines (registry : XElement) = - registry.Elements(xname "enums") + registry.Elements("enums") |> Seq.filter (fun e -> attrib e "name" = Some "API Constants") |> Seq.collect (fun e -> - let choices = e.Elements(xname "enum") + let choices = e.Elements("enum") choices |> Seq.choose (fun c -> match attrib c "name", attrib c "value" with | Some name, Some value -> Some(name, toDefine value) @@ -743,7 +842,7 @@ module XmlReader = let readRequire (definitions : Definitions) (require : XElement) = let enumExtensions = - require.Elements(xname "enum") + require.Elements("enum") |> List.ofSeq |> List.choose (fun e -> match attrib e "extends", attrib e "name" with @@ -758,7 +857,7 @@ module XmlReader = ) let types = - require.Descendants(xname "type") + require.Descendants("type") |> Seq.toList |> List.choose (fun t -> match attrib t "name" with @@ -775,7 +874,7 @@ module XmlReader = ) let commands = - require.Descendants(xname "command") + require.Descendants("command") |> Seq.toList |> List.choose (fun c -> match attrib c "name" with @@ -795,12 +894,6 @@ module XmlReader = |> List.groupBy (fun (b, _) -> b) |> List.map (fun (g,l) -> g, l |> List.map (fun (_, c) -> c)) |> Map.ofList |> Map.filter (fun name _ -> name <> "VkStructureType") - let requiredBy = - match attrib require "feature", attrib require "extension" with - | Some f, _ -> RequiredBy.Core <| VkVersion.Parse(f) - | _, Some e -> RequiredBy.Extension e - | _ -> RequiredBy.Core VkVersion10 - { enumExtensions = groups enums = enums @@ -811,14 +904,14 @@ module XmlReader = typedefs = typedefs handles = handles comment = attrib require "comment" - requiredBy = requiredBy + depends = attrib require "depends" |> Dependency.ofOption } - let readFeature (definitions : Definitions) (feature : XElement) = + let tryReadFeature (definitions : Definitions) (feature : XElement) = match attrib feature "name" with - | Some name -> + | Some (VkVersion v) -> let requires = - feature.Elements(xname "require") + feature.Elements("require") |> List.ofSeq |> List.choose (fun r -> let r = r |> readRequire definitions @@ -829,38 +922,34 @@ module XmlReader = Some r ) - { - version = VkVersion.Parse(name) - requires = requires - } + if requires |> List.forall Require.isEmpty then + printfn "WARNING: Empty feature: %A" v + None + else + Some { + version = v + requires = requires + } | _ -> - failwith "Feature tag without name!" + None let features (definitions : Definitions) (registry : XElement) = - registry.Elements(xname "feature") + registry.Elements("feature") |> List.ofSeq - |> List.choose (fun f -> - let f = f |> readFeature definitions - - if Feature.isEmpty f then - None - else - Some f - ) + |> List.choose (tryReadFeature definitions) let readExtension (definitions : Definitions) (extension : XElement) = match attrib extension "name", attrib extension "number" with | Some name, Some number -> let number = Int32.Parse(number) - let dependencies = - match attrib extension "requires" with - | Some v -> v.Split(',') |> Set.ofArray - | None -> Set.empty + let depends = + attrib extension "depends" + |> Dependency.ofOption let requires = - extension.Elements(xname "require") + extension.Elements("require") |> List.ofSeq |> List.choose (fun r -> let r = r |> readRequire definitions @@ -871,38 +960,75 @@ module XmlReader = Some r ) + let attributes = + [ + match attrib extension "supported" with + | Some "disabled" -> + yield Attribute.Disabled + + | Some api when api.Split(",") |> Array.contains "vulkan" |> not -> + yield Attribute.Disabled + + | _ -> () + + match attrib extension "promotedto" with + | Some (ModuleName name) -> yield Attribute.Promoted name + | _ -> () + + match attrib extension "deprecatedby" with + | Some (ModuleName name) -> yield Attribute.Deprecated (Some name) + | Some _ -> yield Attribute.Deprecated None + | _ -> () + + match attrib extension "obsoletedby" with + | Some (ModuleName name) -> yield Attribute.Obsolete (Some name) + | Some _ -> yield Attribute.Obsolete None + | _ -> () + ] + + let typ = + match attrib extension "type" with + | Some "device" -> Device + | Some "instance" -> Instance + | Some t -> failwithf "Extension %s has unknown type '%s'" name t + | None -> + if attributes |> List.contains Attribute.Disabled |> not then + failwithf "Extension %s does not specify a type" name + Device + { + typ = typ name = name number = number - dependencies = dependencies - references = dependencies + depends = depends requires = requires + attributes = attributes } | _ -> failwith "Extension missing name or number" let extensions (definitions : Definitions) (registry : XElement) = - registry.Element(xname "extensions").Elements(xname "extension") + registry.Element(xname "extensions").Elements("extension") |> List.ofSeq |> List.filter (fun e -> attrib e "supported" <> Some "disabled") |> List.choose (fun e -> let e = e |> readExtension definitions - if Extension.isEmpty e then + if Extension.isEmpty e || e.Disabled then None else Some e ) let emptyBitfields (registry : XElement) = - registry.Element(xname "types").Elements(xname "type") + registry.Element(xname "types").Elements("type") |> List.ofSeq |> List.filter (fun e -> attrib e "category" = Some "bitmask" && attrib e "requires" = None) |> List.choose (fun e -> child e "name") let enums (registry : XElement) = - registry.Elements(xname "enums") + registry.Elements("enums") |> Seq.filter (fun e -> attrib e "name" <> Some "API Constants") |> Seq.choose Enum.tryRead |> Seq.map (fun e -> Enum.cleanName e.name, e) @@ -912,12 +1038,12 @@ module XmlReader = let name = "VkStructureType" let baseCases = - registry.Descendants(xname "enums") + registry.Descendants("enums") |> Seq.filter (fun e -> attrib e "name" = Some name) - |> Seq.collect (fun e -> e.Elements(xname "enum")) + |> Seq.collect (fun e -> e.Elements("enum")) let extensionCases = - registry.Descendants(xname "enum") + registry.Descendants("enum") |> Seq.filter (fun e -> attrib e "extends" = Some name) seq { baseCases; extensionCases} @@ -929,8 +1055,8 @@ module XmlReader = |> Map.ofSeq let funcpointers (registry : XElement) = - registry.Elements(xname "types") - |> Seq.collect (fun tc -> tc.Elements (xname "type")) + registry.Elements("types") + |> Seq.collect (fun tc -> tc.Elements ("type")) |> Seq.filter (fun t -> attrib t "category" = Some "funcpointer") |> Seq.choose (FuncPointer.tryRead) |> Seq.toList @@ -938,8 +1064,8 @@ module XmlReader = |> Map.ofSeq let structs (defines : Map) (registry : XElement) = - registry.Elements(xname "types") - |> Seq.collect (fun tc -> tc.Elements (xname "type")) + registry.Elements("types") + |> Seq.collect (fun tc -> tc.Elements ("type")) |> Seq.filter (fun t -> attrib t "category" = Some "struct" || attrib t "category" = Some "union") |> Seq.choose (Struct.tryRead defines) |> Seq.toList @@ -947,8 +1073,8 @@ module XmlReader = |> Map.ofSeq let typedefs (defines : Map) (registry : XElement) = - registry.Elements(xname "types") - |> Seq.collect (fun tc -> tc.Elements (xname "type")) + registry.Elements("types") + |> Seq.collect (fun tc -> tc.Elements ("type")) |> Seq.filter (fun t -> attrib t "category" = Some "basetype") |> Seq.choose (Typedef.tryRead defines) |> Seq.toList @@ -956,16 +1082,16 @@ module XmlReader = |> Map.ofSeq let aliases (registry : XElement) = - registry.Elements(xname "types") - |> Seq.collect (fun tc -> tc.Elements (xname "type")) + registry.Elements("types") + |> Seq.collect (fun tc -> tc.Elements ("type")) |> Seq.filter (fun t -> attrib t "alias" |> Option.isSome) |> Seq.choose Alias.tryRead |> Seq.map (fun t -> t.name, t) |> Map.ofSeq let handles (registry : XElement) = - registry.Elements(xname "types") - |> Seq.collect (fun tc -> tc.Elements (xname "type")) + registry.Elements("types") + |> Seq.collect (fun tc -> tc.Elements ("type")) |> Seq.filter (fun t -> attrib t "category" = Some "handle") |> Seq.choose (fun e -> match child e "name" with @@ -976,7 +1102,7 @@ module XmlReader = let commands (defines : Map) (registry : XElement) = let elems = - registry.Element(xname "commands").Elements(xname "command") + registry.Element(xname "commands").Elements("command") let cmdsAndAliases = elems @@ -1004,20 +1130,21 @@ module FSharpWriter = type Location = | Global of VkVersion - | Extension of name: string * requiredBy: RequiredBy + | Extension of name: string * requires: Dependency - member x.RelativePath(relativeTo : Location) = + member x.RelativePath(relativeTo: Location) = let sprintVersion = VkVersion.toModuleName >> Option.map (sprintf "%s.") >> Option.defaultValue "" - let sprintRequiredBy = function - | RequiredBy.Core v -> sprintVersion v - | RequiredBy.Extension e -> sprintf "%s." e - match x, relativeTo with + | Global v1, Global v2 when v1 = v2 -> "" + | Extension (n1, _), Extension (n2, _) when n1 = n2 -> "" | Global v, _ -> sprintVersion v - | Extension (n1, r1), Extension(n2, _) when n1 = n2 -> sprintRequiredBy r1 - | Extension (n1, r1), _ -> sprintf "%s.%s" n1 <| sprintRequiredBy r1 + | Extension(n, e), _ -> + let n = Extension.toModuleName n + match Dependency.toString e with + | Some e -> $"{n}.``{e}``." + | None -> $"{n}." let definitionLocations = Collections.Generic.Dictionary() @@ -1031,6 +1158,9 @@ module FSharpWriter = definitionLocations.Add(name, location) None + let getFullyQualifiedTypeName (location: Location) (name : string) = + tryGetTypeAlias location name |> Option.defaultValue name + let tryGetCommandAlias (location : Location) (name : string) = match definitionLocations.TryGetValue(name) with | true, alias -> @@ -1127,23 +1257,11 @@ module FSharpWriter = printfn "#nowarn \"9\"" printfn "#nowarn \"51\"" - let missingExtensionReferences = - [ - "VK_KHR_device_group", ["VK_KHR_swapchain"] - "VK_KHR_sampler_ycbcr_conversion", ["VK_EXT_debug_report"] - "VK_KHR_acceleration_structure", ["VK_EXT_debug_report"] - "VK_NV_ray_tracing", ["VK_EXT_debug_report"; "VK_KHR_acceleration_structure"; "VK_KHR_ray_tracing_pipeline"] - "VK_KHR_ray_tracing_pipeline", ["VK_KHR_pipeline_library"] - "VK_KHR_descriptor_update_template", ["VK_EXT_debug_report"] - ] - |> List.map (fun (n, d) -> n, Set.ofList d) - |> Map.ofList - let emptyBitfields (enums : List) = enums |> List.iter (fun e -> printfn "" printfn "[]" - printfn "type %s = | None = 0" e + printfn "type %s = | None = 0" (getFullyQualifiedTypeName (Global VkVersion10) e) ) let inlineArray (indent : string) (location : Location) (baseType : string) (baseTypeSize : int) (size : int) = @@ -1157,6 +1275,7 @@ module FSharpWriter = match tryGetTypeAlias location name with | None -> let totalSize = size * baseTypeSize + printfn "/// Array of %d %s values." size baseType printfn "[]" totalSize printfn "type %s =" name printfn " struct" @@ -1203,7 +1322,7 @@ module FSharpWriter = let apiConstants (map : Map) = printfn "" printfn "[]" - printfn "module Constants = " + printfn "module Constants =" for (n,v) in Map.toSeq map do printfn "" printfn " []" @@ -1244,8 +1363,8 @@ module FSharpWriter = "int16_t", "int16" "uint16_t", "uint16" "uint32_t", "uint32" - "int32_t", "int" - "int", "int" + "int32_t", "int32" + "int", "int32" "float", "float32" "double", "float" "int64_t", "int64" @@ -1293,63 +1412,63 @@ module FSharpWriter = if Set.contains n reservedKeywords then sprintf "_%s" n else n - let rec typeName (n : Type) = + let rec typeName (location: Location) (n: Type) = match n with - | FixedArray(Literal "int32_t", 2) -> "V2i" - | FixedArray(Literal "int32_t", 3) -> "V3i" - | FixedArray(Literal "int32_t", 4) -> "V4i" - | FixedArray(Literal "uint32_t", 2) -> "V2ui" - | FixedArray(Literal "uint32_t", 3) -> "V3ui" - | FixedArray(Literal "uint32_t", 4) -> "V4ui" - | FixedArray(Literal "float", 2) -> "V2f" - | FixedArray(Literal "float", 3) -> "V3f" - | FixedArray(Literal "float", 4) -> "V4f" - | FixedArray(Literal "uint8_t", 16) -> "Guid" - - | FixedArray2d(Literal "int32_t", 2, 2) -> "M22i" - | FixedArray2d(Literal "int32_t", 3, 3) -> "M33i" - | FixedArray2d(Literal "int32_t", 4, 4) -> "M44i" - | FixedArray2d(Literal "int32_t", 2, 3) -> "M23i" - | FixedArray2d(Literal "int32_t", 3, 4) -> "M34i" - | FixedArray2d(Literal "float", 2, 2) -> "M22f" - | FixedArray2d(Literal "float", 3, 3) -> "M33f" - | FixedArray2d(Literal "float", 4, 4) -> "M44f" - | FixedArray2d(Literal "float", 2, 3) -> "M23f" - | FixedArray2d(Literal "float", 3, 4) -> "M34f" - - | BitField(l, s) -> - match typeName l, s with - | "int32", 8 -> "int8" - | "uint32", 8 -> "uint8" - | "uint32", 24 -> "uint24" - | t, 8 -> System.Console.WriteLine("WARNING: Replacing {0}:8 with uint8", t); "uint8" - | t, 24 -> System.Console.WriteLine("WARNING: Replacing {0}:24 with uint24", t); "uint24" - | _ -> failwithf "unsupported bit field type %A:%A" l s - - | Ptr(Literal "char") -> "cstr" - | FixedArray(Literal "char", s) -> sprintf "String%d" s - | Ptr(Literal "void") -> "nativeint" - | Literal n -> - if n.Contains "FlagBits" then - n.Replace("FlagBits", "Flags") //.Substring(0, n.Length - 8) + "Flags" - else - match Map.tryFind n knownTypes with - | Some n -> n - | None -> - if n.StartsWith "Vk" || n.StartsWith "PFN" then n - elif n.StartsWith "structVk" then n.Substring("struct".Length) - elif n.StartsWith "Mir" || n.StartsWith "struct" then "nativeint" - else "nativeint" //failwithf "strange type: %A" n - | Ptr t -> - sprintf "nativeptr<%s>" (typeName t) - | FixedArray(t, s) -> - let t = typeName t - sprintf "%s_%d" t s - | FixedArray2d(t, w, h) -> - let t = typeName t - sprintf "%s_%d" t (w * h) - - let enumExtensions (indent : string) (vendorTags : list) (exts : Map>) = + | FixedArray(Literal "int32_t", 2) -> "V2i" + | FixedArray(Literal "int32_t", 3) -> "V3i" + | FixedArray(Literal "int32_t", 4) -> "V4i" + | FixedArray(Literal "uint32_t", 2) -> "V2ui" + | FixedArray(Literal "uint32_t", 3) -> "V3ui" + | FixedArray(Literal "uint32_t", 4) -> "V4ui" + | FixedArray(Literal "float", 2) -> "V2f" + | FixedArray(Literal "float", 3) -> "V3f" + | FixedArray(Literal "float", 4) -> "V4f" + | FixedArray(Literal "uint8_t", 16) -> "Guid" + + | FixedArray2d(Literal "int32_t", 2, 2) -> "M22i" + | FixedArray2d(Literal "int32_t", 3, 3) -> "M33i" + | FixedArray2d(Literal "int32_t", 4, 4) -> "M44i" + | FixedArray2d(Literal "int32_t", 2, 3) -> "M23i" + | FixedArray2d(Literal "int32_t", 3, 4) -> "M34i" + | FixedArray2d(Literal "float", 2, 2) -> "M22f" + | FixedArray2d(Literal "float", 3, 3) -> "M33f" + | FixedArray2d(Literal "float", 4, 4) -> "M44f" + | FixedArray2d(Literal "float", 2, 3) -> "M23f" + | FixedArray2d(Literal "float", 3, 4) -> "M34f" + + | BitField(l, s) -> + match typeName location l, s with + | "int32", 8 -> "int8" + | "uint32", 8 -> "uint8" + | "uint32", 24 -> "uint24" + | t, 8 -> System.Console.WriteLine("WARNING: Replacing {0}:8 with uint8", t); "uint8" + | t, 24 -> System.Console.WriteLine("WARNING: Replacing {0}:24 with uint24", t); "uint24" + | _ -> failwithf "unsupported bit field type %A:%A" l s + + | Ptr(Literal "char") -> "cstr" + | FixedArray(Literal "char", s) -> sprintf "String%d" s + | Ptr(Literal "void") -> "nativeint" + | Literal n -> + if n.Contains "FlagBits" then + n.Replace("FlagBits", "Flags") //.Substring(0, n.Length - 8) + "Flags" + else + match Map.tryFind n knownTypes with + | Some n -> n + | None -> + if n.StartsWith "Vk" || n.StartsWith "PFN" then getFullyQualifiedTypeName location n + elif n.StartsWith "structVk" then n.Substring("struct".Length) + elif n.StartsWith "Mir" || n.StartsWith "struct" then "nativeint" + else "nativeint" //failwithf "strange type: %A" n + | Ptr t -> + sprintf "nativeptr<%s>" (typeName location t) + | FixedArray(t, s) -> + let t = typeName location t + sprintf "%s_%d" t s + | FixedArray2d(t, w, h) -> + let t = typeName location t + sprintf "%s_%d" t (w * h) + + let enumExtensions (indent : string) (vendorTags : list) (location : Location) (exts : Map>) = let printfn fmt = Printf.kprintf (fun str -> @@ -1386,6 +1505,7 @@ module FSharpWriter = { c with name = baseEnumName enumSuff camelCase } ) + let name = getFullyQualifiedTypeName location name printfn " type %s with" name for c in exts do match c.comment with @@ -1451,9 +1571,7 @@ module FSharpWriter = if name = "VkQueueGlobalPriorityKHR" then printfn "" - inlineArray " " (Extension("VK_KHR_global_priority", RequiredBy.Core VkVersion13)) "VkQueueGlobalPriorityKHR" 4 16 - - + inlineArray " " (Extension("VK_KHR_global_priority", Dependency.Empty)) "VkQueueGlobalPriorityKHR" 4 16 | Some alias -> if name <> alias then @@ -1511,8 +1629,10 @@ module FSharpWriter = let typedefs (indent : string) (location : Location) (l : list) = for x in l do - if x.name <> typeName x.baseType then - printfn "%stype %s = %s" indent x.name (typeName x.baseType) + let name = getFullyQualifiedTypeName location x.name + let alias = typeName location x.baseType + if name <> alias then + printfn "%stype %s = %s" indent name alias for t in l do match vulkanTypeArrays |> Map.tryFind t.name with @@ -1586,7 +1706,7 @@ module FSharpWriter = let toFunctionDecl (indent : int) (functionName : string) (fields : StructField list) = fields |> List.map (fun f -> - sprintf "%s : %s" (fsharpName f.name) (typeName f.typ) + sprintf "%s : %s" (fsharpName f.name) (typeName location f.typ) ) |> toInlineFunction indent ", " (sprintf "%s(" functionName) ") =" @@ -1608,7 +1728,7 @@ module FSharpWriter = printfn "" | Some alias, _ -> if s.name <> alias then - printfn "type %s = %s" s.name alias + printfn "type %s = %s" s.name (getFullyQualifiedTypeName location alias) printfn "" | None, None -> @@ -1624,7 +1744,7 @@ module FSharpWriter = if s.isUnion then printfn' 2 "[]" - printfn' 2 "val mutable public %s : %s" n (typeName f.typ) + printfn' 2 "val mutable public %s : %s" n (typeName location f.typ) () // Set the sType field automatically @@ -1662,7 +1782,7 @@ module FSharpWriter = let values = fields |> List.map(fun f -> - sprintf "Unchecked.defaultof<%s>" (typeName f.typ) + sprintf "Unchecked.defaultof<%s>" (typeName location f.typ) ) printfn' 2 "static member Empty =" @@ -1673,7 +1793,7 @@ module FSharpWriter = let checks = fields |> List.map (fun f -> - sprintf "x.%s = Unchecked.defaultof<%s>" (fsharpName f.name) (typeName f.typ) + sprintf "x.%s = Unchecked.defaultof<%s>" (fsharpName f.name) (typeName location f.typ) ) printfn' 2 "member x.IsEmpty =" @@ -1708,7 +1828,7 @@ module FSharpWriter = fields |> List.mapi (fun i f -> if i = index then - sprintf "Unchecked.defaultof<%s>" (typeName f.typ) + sprintf "Unchecked.defaultof<%s>" (typeName location f.typ) else fsharpName f.name ) @@ -1777,13 +1897,17 @@ module FSharpWriter = printfn "" inlineArray "" (Global VkVersion10) "uint32" 4 32 + printfn "" + inlineArray "" (Global VkVersion10) "int32" 4 7 + printfn "" inlineArray "" (Global VkVersion10) "byte" 1 32 printfn "" inlineArray "" (Global VkVersion10) "byte" 1 8 + printfn "" - let rec externTypeName (n : Type) = + let rec externTypeName (location: Location) (n: Type) = match n with | FixedArray(Literal "int32_t", 2) -> "V2i" | FixedArray(Literal "int32_t", 3) -> "V3i" @@ -1797,7 +1921,7 @@ module FSharpWriter = | FixedArray(Literal "uint8_t", 16) -> "Guid" | BitField(l, s) -> - match typeName l, s with + match typeName location l, s with | "int32", 8 -> "int8" | "uint32", 8 -> "uint8" | "uint32", 24 -> "uint24" @@ -1816,17 +1940,17 @@ module FSharpWriter = match Map.tryFind n knownTypes with | Some n -> n | None -> - if n.StartsWith "Vk" || n.StartsWith "PFN" then n + if n.StartsWith "Vk" || n.StartsWith "PFN" then getFullyQualifiedTypeName location n elif n.StartsWith "Mir" || n.StartsWith "struct" then "nativeint" else "nativeint" //failwithf "strange type: %A" n | Ptr (Ptr t) -> "nativeint*" | Ptr t -> - sprintf "%s*" (externTypeName t) + sprintf "%s*" (externTypeName location t) | FixedArray(t, s) -> - let t = externTypeName t + let t = externTypeName location t sprintf "%s_%d" t s | FixedArray2d(t, w, h) -> - let t = externTypeName t + let t = externTypeName location t sprintf "%s_%d" t (w * h) let coreCommands (indent : string) (location : Location) (l : list) = @@ -1852,13 +1976,13 @@ module FSharpWriter = for c in l do if c.name = "vkCreateInstance" then - let args = c.parameters |> List.map (fun (t,n) -> sprintf "%s %s" (externTypeName t) (fsharpName n)) |> String.concat ", " + let args = c.parameters |> List.map (fun (t,n) -> sprintf "%s %s" (externTypeName location t) (fsharpName n)) |> String.concat ", " printfn " []" c.name - printfn " extern %s private _%s(%s)" (externTypeName c.returnType) c.name args + printfn " extern %s private _%s(%s)" (externTypeName location c.returnType) c.name args - let argDef = c.parameters |> List.map (fun (t,n) -> sprintf "%s : %s" (fsharpName n) (typeName t)) |> String.concat ", " + let argDef = c.parameters |> List.map (fun (t,n) -> sprintf "%s : %s" (fsharpName n) (typeName location t)) |> String.concat ", " let argUse = c.parameters |> List.map (fun (t,n) -> fsharpName n) |> String.concat ", " let instanceArgName = c.parameters |> List.pick (fun (t,n) -> match t with | Ptr(Literal "VkInstance") -> Some n | _ -> None) @@ -1871,9 +1995,9 @@ module FSharpWriter = else match tryGetCommandAlias location c.name with | None -> - let args = c.parameters |> List.map (fun (t,n) -> sprintf "%s %s" (externTypeName t) (fsharpName n)) |> String.concat ", " + let args = c.parameters |> List.map (fun (t,n) -> sprintf "%s %s" (externTypeName location t) (fsharpName n)) |> String.concat ", " printfn " []" - printfn " extern %s %s(%s)" (externTypeName c.returnType) c.name args + printfn " extern %s %s(%s)" (externTypeName location c.returnType) c.name args | Some alias -> printfn " let %s = %s" c.name alias @@ -1881,14 +2005,14 @@ module FSharpWriter = if isVersion10 then printfn " []" - printfn " let vkImportInstanceDelegate<'a>(name : string) = " + printfn " let vkImportInstanceDelegate<'T>(name : string) =" printfn " let ptr = vkGetInstanceProcAddr(activeInstance, name)" printfn " if ptr = 0n then" printfn " Log.warn \"could not load function: %%s\" name" - printfn " Unchecked.defaultof<'a>" + printfn " Unchecked.defaultof<'T>" printfn " else" printfn " Report.Line(3, sprintf \"loaded function %%s (0x%%08X)\" name ptr)" - printfn " Marshal.GetDelegateForFunctionPointer(ptr, typeof<'a>) |> unbox<'a>" + printfn " Marshal.GetDelegateForFunctionPointer(ptr, typeof<'T>) |> unbox<'T>" let extensionCommands (indent : string) (location : Location) (l : list) = let printfn fmt = @@ -1898,9 +2022,14 @@ module FSharpWriter = let extension = match location with - | Extension(name, RequiredBy.Core _) -> name - | Extension(name, RequiredBy.Extension ext) -> sprintf "%s -> %s" name ext - | _ -> "" + | Extension(name, dep) -> + let name = Extension.toModuleName name + match Dependency.toString dep with + | Some sub -> sprintf "%s -> %s" name sub + | _ -> name + + | _ -> + failwithf "Cannot invoke extensionCommands for location %A" location let exists name = definitionLocations.ContainsKey(name) let existAll = l |> List.map (fun c -> exists c.name) |> List.forall id @@ -1909,9 +2038,9 @@ module FSharpWriter = for c in l do if not (exists c.name) then let delegateName = c.name.Substring(0, 1).ToUpper() + c.name.Substring(1) + "Del" - let targs = c.parameters |> List.map (fun (t,n) -> (typeName t)) |> String.concat " * " + let targs = c.parameters |> List.map (fst >> typeName location) |> String.concat " * " let ret = - match typeName c.returnType with + match typeName location c.returnType with | "void" -> "unit" | n -> n @@ -1922,7 +2051,7 @@ module FSharpWriter = if not existAll then printfn "" printfn " []" - printfn " type private Loader<'d> private() =" + printfn " type private Loader<'T> private() =" printfn " static do Report.Begin(3, \"[Vulkan] loading %s\")" extension for c in l do @@ -1939,47 +2068,20 @@ module FSharpWriter = for c in l do match tryGetCommandAlias location c.name with | None -> - let argDef = c.parameters |> List.map (fun (t,n) -> sprintf "%s : %s" (fsharpName n) (typeName t)) |> String.concat ", " + let argDef = c.parameters |> List.map (fun (t,n) -> sprintf "%s : %s" (fsharpName n) (typeName location t)) |> String.concat ", " let argUse = c.parameters |> List.map (fun (_,n) -> (fsharpName n)) |> String.concat ", " printfn " let %s(%s) = Loader.%s.Invoke(%s)" c.name argDef c.name argUse | Some alias -> printfn " let %s = %s" c.name alias - let camelCase (str : string) = - let parts = System.Collections.Generic.List() - - let mutable str = str - let mutable fi = str.IndexOf '_' - while fi >= 0 do - parts.Add (str.Substring(0, fi)) - str <- str.Substring(fi + 1) - fi <- str.IndexOf '_' - - if str.Length > 0 then - parts.Add str - let parts = Seq.toList parts - - parts |> List.map (fun p -> p.Substring(0,1).ToUpper() + p.Substring(1).ToLower()) |> String.concat "" - - let extCamelCase (str : string) = - let regex = Text.RegularExpressions.Regex @"^VK_(?[A-Z]+)_(?.*)$" - let m = regex.Match str - let kind = m.Groups.["kind"].Value - let name = m.Groups.["name"].Value - sprintf "%s%s" kind (camelCase name) - - let require (indent : int) (vendorTags : list) (structureTypes : Map) (parent : RequiredBy) (require : Require) = - + let require (indent : int) (vendorTags : list) (structureTypes : Map) (parent : Module) (require : Require) = let name = - match require.requiredBy with - | RequiredBy.Core v -> VkVersion.toModuleName v - | RequiredBy.Extension ext -> Some (extCamelCase ext) + require.depends |> Dependency.toString let location = - match parent, require.requiredBy with - | RequiredBy.Core v, _ -> Global v - | RequiredBy.Extension name, RequiredBy.Core v -> Extension(extCamelCase name, RequiredBy.Core v) - | RequiredBy.Extension name, RequiredBy.Extension ext -> Extension(extCamelCase name, RequiredBy.Extension <| extCamelCase ext) + match parent with + | Module.Core v -> Global v + | Module.Extension name -> Extension(name, require.depends) let subindent n = String.replicate (if name.IsSome then indent + n + 1 else indent + n) " " let indent = String.replicate indent " " @@ -1991,9 +2093,8 @@ module FSharpWriter = match name with | Some name -> - if RequiredBy.autoOpen require.requiredBy then - printfn "[]" - printfn "module %s =" name + printfn "[]" + printfn "module ``%s`` =" name | _ -> () @@ -2003,10 +2104,10 @@ module FSharpWriter = aliases (subindent 0) location require.aliases enums (subindent 0) vendorTags location require.enums structs (subindent 0) structureTypes location (Struct.topologicalSort require.structs) - enumExtensions (subindent 0) vendorTags require.enumExtensions + enumExtensions (subindent 0) vendorTags location require.enumExtensions if not require.commands.IsEmpty then - if RequiredBy.isCore parent then + if Module.isCore parent then coreCommands (subindent 0) location require.commands else extensionCommands (subindent 0) location require.commands @@ -2014,25 +2115,16 @@ module FSharpWriter = printfn "" let feature (vendorTags : list) (structureTypes : Map) (feature : Feature) = - let name = VkVersion.toModuleName feature.version let indent = if name.IsSome then 1 else 0 match name with | Some name -> - if VkVersion.autoOpen feature.version then - printfn "[]" - printfn "module %s =" name - - for v in VkVersion.getPriorModules feature.version do - printfn " open %s" v - - printfn "" | _ -> () - feature.requires |> Require.unionMany |> require indent vendorTags structureTypes (RequiredBy.Core feature.version) + feature.requires |> Require.unionMany |> require indent vendorTags structureTypes (Module.Core feature.version) let features (vendorTags : list) (structureTypes : Map) (features : Feature list) = for f in features do @@ -2041,104 +2133,94 @@ module FSharpWriter = let extension (vendorTags : list) (structureTypes : Map) (e : Extension) = - let name = extCamelCase e.name + let name = Extension.toModuleName e.name if String.IsNullOrEmpty(name) then Console.WriteLine("WARNING: Ignoring extension '{0}'", e.name) else - printfn "module %s =" name - - // Extensions make use of types defined by extended core versions - // but do not declare it for some reason. Therefore we have to open all core - // modules. - for v in VkVersion.allModules do - printfn " open %s" v + match Dependency.toString e.depends with + | Some expr -> printfn "/// Requires %s." expr + | _ -> () - for r in e.references do - printfn " open %s" <| extCamelCase r + e.Promoted + |> Option.iter (fun name -> + match Module.toModuleName name with + | Some name -> printfn "/// Promoted to %s." name + | _ -> () + ) - printfn " let Name = \"%s\"" e.name - printfn " let Number = %d" e.number - printfn "" + e.Obsolete + |> Option.map (Option.bind Module.toModuleName) + |> Option.iter (function + | Some name -> printfn "/// Incompatible with %s." name + | _ -> printfn "/// Obsolete." + ) - if not (Set.isEmpty e.dependencies) then - let exts = e.dependencies |> Set.map (extCamelCase >> sprintf "%s.Name") |> String.concat "; " |> sprintf "[ %s ]" - printfn " let Required = %s" exts - printfn "" + e.Deprecated + |> Option.map (Option.bind Module.toModuleName) + |> Option.iter (function + | Some name -> printfn "/// Deprecated by %s." name + | _ -> printfn "/// Deprecated." + ) + printfn "module %s =" name + printfn " let Type = ExtensionType.%A" e.typ + printfn " let Name = \"%s\"" e.name + printfn " let Number = %d" e.number printfn "" - // Group requires by requiredBy property - // Not sure if this is necessary (i.e. if there can be multiple - // requires with the same requiredBy, for feature tags it's possible at least) let requires = - (([], []), e.requires) - ||> List.fold (fun (result, current) r -> - match current with - | [] -> result, [r] - | x::_ -> - if x.requiredBy = r.requiredBy then - result, current @ [r] - else - result @ [Require.unionMany current], [r] - ) - ||> List.append + e.requires + |> List.groupBy (fun r -> r.depends) + |> List.map (snd >> Require.unionMany) for r in requires do - r |> require 1 vendorTags structureTypes (RequiredBy.Extension e.name) + r |> require 1 vendorTags structureTypes (Module.Extension e.name) let topoExtensions (extensions : list) : list = let typeMap = extensions |> List.map (fun s -> s.name, s) |> Map.ofList let graph = extensions |> List.map (fun s -> - let dependencies = - s.dependencies |> Set.toList |> List.choose (fun m -> Map.tryFind m typeMap) - - let requires = - s.requires |> List.choose (fun r -> - match r.requiredBy with - | RequiredBy.Core _ -> None - | RequiredBy.Extension ext -> Map.tryFind ext typeMap - ) - - let usedTypes = - List.concat [dependencies; requires] - |> List.distinctBy (fun e -> e.name) + let dependencies = + s.depends.Extensions |> Set.toList |> List.choose (fun ext -> Map.tryFind ext typeMap) - s, usedTypes + let requires = + s.requires |> List.collect (fun r -> + r.depends.Extensions |> Set.toList |> List.choose (fun ext -> Map.tryFind ext typeMap) + ) + let promoted = + s.Promoted |> Option.toList |> List.choose (function + | Module.Extension ext -> Map.tryFind ext typeMap + | _ -> None ) - |> Map.ofList - Struct.toposort graph |> List.rev + let obsolete = + s.Obsolete |> Option.bind id |> Option.toList |> List.choose (function + | Module.Extension ext -> Map.tryFind ext typeMap + | _ -> None + ) - let extensions (vendorTags : list) (structureTypes : Map) (exts : Extension list) = + let deprecated = + s.Deprecated |> Option.bind id |> Option.toList |> List.choose (function + | Module.Extension ext -> Map.tryFind ext typeMap + | _ -> None + ) - // Transitive references - let directRefs = - let explicit = exts |> List.map (fun e -> e.name, e.dependencies) |> Map.ofList + let usedTypes = + List.concat [dependencies; requires; promoted; obsolete; deprecated] + |> List.distinctBy (fun e -> e.name) - (explicit, missingExtensionReferences) ||> Map.fold (fun map name deps -> - let cur = map |> Map.tryFind name |> Option.defaultValue Set.empty - map |> Map.add name (Set.union cur deps) + s, usedTypes ) + |> Map.ofList - let rec traverse (name : string) = - match Map.tryFind name directRefs with - | Some others -> - let children = others |> Seq.map traverse |> Seq.concat |> Set.ofSeq - others |> Set.union children - | None -> - Set.ofList [ name ] - - let exts = - let refs = directRefs |> Map.map (fun name _ -> traverse name |> Set.remove name) + Struct.toposort graph |> List.rev - exts |> List.map (fun e -> - { e with references = refs |> Map.find e.name } - ) + let extensions (vendorTags : list) (structureTypes : Map) (exts : Extension list) = + let sorted = topoExtensions exts - for e in topoExtensions exts do + for e in sorted do extension vendorTags structureTypes e let run () = @@ -2194,79 +2276,79 @@ let run () = File.WriteAllText(file, str) printfn "Generated 'Vulkan.fs' successfully!" -module PCI = - open System - open System.IO - let builder = System.Text.StringBuilder() - - let printfn fmt = - Printf.kprintf (fun str -> builder.AppendLine(str) |> ignore) fmt +//module PCI = +// open System +// open System.IO +// let builder = System.Text.StringBuilder() +// let printfn fmt = +// Printf.kprintf (fun str -> builder.AppendLine(str) |> ignore) fmt - let writeVendorAndDeviceEnum() = - let rx = System.Text.RegularExpressions.Regex "\"0x(?[0-9A-Fa-f]+)\",\"0x(?[0-9A-Fa-f]+)\",\"(?[^\"]+)\",\"(?[^\"]+)\"" +// let writeVendorAndDeviceEnum() = - let req = System.Net.HttpWebRequest.Create("http://pcidatabase.com/reports.php?type=csv") - let response = req.GetResponse() - let reader = new System.IO.StreamReader(response.GetResponseStream()) +// let rx = System.Text.RegularExpressions.Regex "\"0x(?[0-9A-Fa-f]+)\",\"0x(?[0-9A-Fa-f]+)\",\"(?[^\"]+)\",\"(?[^\"]+)\"" - let vendors = System.Collections.Generic.Dictionary() - let devices = System.Collections.Generic.Dictionary() +// let req = System.Net.HttpWebRequest.Create("http://pcidatabase.com/reports.php?type=csv") +// let response = req.GetResponse() +// let reader = new System.IO.StreamReader(response.GetResponseStream()) - let mutable line = reader.ReadLine() +// let vendors = System.Collections.Generic.Dictionary() +// let devices = System.Collections.Generic.Dictionary() - while not (isNull line) do - let m = rx.Match line +// let mutable line = reader.ReadLine() - if m.Success then - let vid = System.Int64.Parse(m.Groups.["vendor"].Value, System.Globalization.NumberStyles.HexNumber) - let did = System.Int64.Parse(m.Groups.["device"].Value, System.Globalization.NumberStyles.HexNumber) - let vname = m.Groups.["vendorName"].Value - let dname = m.Groups.["deviceName"].Value +// while not (isNull line) do +// let m = rx.Match line - vendors.[vid] <- vname.Replace("\\", "\\\\") - devices.[did] <- dname.Replace("\\", "\\\\") +// if m.Success then +// let vid = System.Int64.Parse(m.Groups.["vendor"].Value, System.Globalization.NumberStyles.HexNumber) +// let did = System.Int64.Parse(m.Groups.["device"].Value, System.Globalization.NumberStyles.HexNumber) +// let vname = m.Groups.["vendorName"].Value +// let dname = m.Groups.["deviceName"].Value - line <- reader.ReadLine() +// vendors.[vid] <- vname.Replace("\\", "\\\\") +// devices.[did] <- dname.Replace("\\", "\\\\") - printfn "namespace Aardvark.Rendering.Vulkan" - printfn "open System.Collections.Generic" - printfn "open Aardvark.Base" +// line <- reader.ReadLine() +// printfn "namespace Aardvark.Rendering.Vulkan" +// printfn "open System.Collections.Generic" +// printfn "open Aardvark.Base" - printfn "module PCI = " - printfn " let vendors =" - printfn " Dictionary.ofArray [|" - for (KeyValue(k,v)) in vendors do - if k <= int64 Int32.MaxValue then - printfn " 0x%08X, \"%s\"" k v - printfn " |]" -// printfn " let devices =" +// printfn "module PCI = " +// printfn " let vendors =" // printfn " Dictionary.ofArray [|" -// for (KeyValue(k,v)) in devices do +// for (KeyValue(k,v)) in vendors do // if k <= int64 Int32.MaxValue then // printfn " 0x%08X, \"%s\"" k v // printfn " |]" +//// printfn " let devices =" +//// printfn " Dictionary.ofArray [|" +//// for (KeyValue(k,v)) in devices do +//// if k <= int64 Int32.MaxValue then +//// printfn " 0x%08X, \"%s\"" k v +//// printfn " |]" - printfn " let vendorName (id : int) =" - printfn " match vendors.TryGetValue id with" - printfn " | (true, name) -> name" - printfn " | _ -> \"Unknown\"" -// printfn " let deviceName (id : int) =" -// printfn " match devices.TryGetValue id with" +// printfn " let vendorName (id : int) =" +// printfn " match vendors.TryGetValue id with" // printfn " | (true, name) -> name" // printfn " | _ -> \"Unknown\"" - let run() = - builder.Clear() |> ignore - writeVendorAndDeviceEnum() - let str = builder.ToString() - builder.Clear() |> ignore - let file = Path.Combine(__SOURCE_DIRECTORY__, "PCI.fs") - File.WriteAllText(file, str) +//// printfn " let deviceName (id : int) =" +//// printfn " match devices.TryGetValue id with" +//// printfn " | (true, name) -> name" +//// printfn " | _ -> \"Unknown\"" + +// let run() = +// builder.Clear() |> ignore +// writeVendorAndDeviceEnum() +// let str = builder.ToString() +// builder.Clear() |> ignore +// let file = Path.Combine(__SOURCE_DIRECTORY__, "PCI.fs") +// File.WriteAllText(file, str) do run() \ No newline at end of file diff --git a/src/Aardvark.Rendering.Vulkan.Wrapper/Types.fs b/src/Aardvark.Rendering.Vulkan.Wrapper/Types.fs index f5fcfc99..85b76ed6 100644 --- a/src/Aardvark.Rendering.Vulkan.Wrapper/Types.fs +++ b/src/Aardvark.Rendering.Vulkan.Wrapper/Types.fs @@ -6,6 +6,10 @@ open Microsoft.FSharp.NativeInterop #nowarn "9" #nowarn "51" +type ExtensionType = + | Device = 0 + | Instance = 1 + [] type uint24 = struct diff --git a/src/Aardvark.Rendering.Vulkan.Wrapper/Vulkan.fs b/src/Aardvark.Rendering.Vulkan.Wrapper/Vulkan.fs index 3165953d..e9b1e666 100644 --- a/src/Aardvark.Rendering.Vulkan.Wrapper/Vulkan.fs +++ b/src/Aardvark.Rendering.Vulkan.Wrapper/Vulkan.fs @@ -15,7 +15,7 @@ open Aardvark.Rendering.Vulkan #nowarn "51" [] -module Constants = +module Constants = [] let VkAttachmentUnused = 4294967295u @@ -59,6 +59,9 @@ module Constants = [] let VkMaxShaderModuleIdentifierSizeExt = 32 + [] + let VkMaxVideoAv1ReferencesPerFrameKhr = 7 + [] let VkQueueFamilyExternal = 4294967294u @@ -68,12 +71,18 @@ module Constants = [] let VkQueueFamilyIgnored = 4294967295u + [] + let VkRemaining3dSlicesExt = 4294967295u + [] let VkRemainingArrayLayers = 4294967295u [] let VkRemainingMipLevels = 4294967295u + [] + let VkShaderIndexUnusedAmdx = 4294967295u + [] let VkShaderUnusedKhr = 4294967295u @@ -120,9 +129,6 @@ type VkBufferViewCreateFlags = | None = 0 [] type VkDeviceCreateFlags = | None = 0 -[] -type VkMemoryMapFlags = | None = 0 - [] type VkDescriptorPoolResetFlags = | None = 0 @@ -135,6 +141,9 @@ type VkAccelerationStructureMotionInfoFlagsNV = | None = 0 [] type VkAccelerationStructureMotionInstanceFlagsNV = | None = 0 +[] +type VkDirectDriverLoadingFlagsLUNARG = | None = 0 + [] type VkDisplayModeCreateFlagsKHR = | None = 0 @@ -222,12 +231,22 @@ type VkPipelineRasterizationStateStreamCreateFlagsEXT = | None = 0 [] type VkPipelineRasterizationDepthClipStateCreateFlagsEXT = | None = 0 +[] +type VkVideoSessionParametersCreateFlagsKHR = | None = 0 + [] type VkVideoBeginCodingFlagsKHR = | None = 0 [] type VkVideoEndCodingFlagsKHR = | None = 0 +[] +type VkVideoDecodeFlagsKHR = | None = 0 + +[] +type VkVideoEncodeRateControlFlagsKHR = | None = 0 + +/// Array of 32 uint32 values. [] type uint32_32 = struct @@ -252,6 +271,32 @@ type uint32_32 = member x.GetEnumerator() = let x = x in (Seq.init 32 (fun i -> x.[i])).GetEnumerator() end +/// Array of 7 int32 values. +[] +type int32_7 = + struct + [] + val mutable public First : int32 + + member x.Item + with get (i : int) : int32 = + if i < 0 || i > 6 then raise <| IndexOutOfRangeException() + let ptr = &&x |> NativePtr.toNativeInt |> NativePtr.ofNativeInt + NativePtr.get ptr i + and set (i : int) (value : int32) = + if i < 0 || i > 6 then raise <| IndexOutOfRangeException() + let ptr = &&x |> NativePtr.toNativeInt |> NativePtr.ofNativeInt + NativePtr.set ptr i value + + member x.Length = 7 + + interface System.Collections.IEnumerable with + member x.GetEnumerator() = let x = x in (Seq.init 7 (fun i -> x.[i])).GetEnumerator() :> System.Collections.IEnumerator + interface System.Collections.Generic.IEnumerable with + member x.GetEnumerator() = let x = x in (Seq.init 7 (fun i -> x.[i])).GetEnumerator() + end + +/// Array of 32 byte values. [] type byte_32 = struct @@ -276,6 +321,7 @@ type byte_32 = member x.GetEnumerator() = let x = x in (Seq.init 32 (fun i -> x.[i])).GetEnumerator() end +/// Array of 8 byte values. [] type byte_8 = struct @@ -299,6 +345,7 @@ type byte_8 = interface System.Collections.Generic.IEnumerable with member x.GetEnumerator() = let x = x in (Seq.init 8 (fun i -> x.[i])).GetEnumerator() end + type PFN_vkAllocationFunction = nativeint type PFN_vkFreeFunction = nativeint type PFN_vkInternalAllocationNotification = nativeint @@ -512,6 +559,7 @@ type VkCommandPool = end type VkCommandBuffer = nativeint +/// Array of 32 VkPhysicalDevice values. [] type VkPhysicalDevice_32 = struct @@ -542,6 +590,7 @@ type VkDeviceSize = uint64 type VkFlags = uint32 type VkSampleMask = uint32 +/// Array of 16 VkDeviceSize values. [] type VkDeviceSize_16 = struct @@ -650,6 +699,8 @@ type VkVendorId = | Mesa = 65541 /// PoCL vendor ID | Pocl = 65542 + /// Mobileye vendor ID + | Mobileye = 65543 type VkFormat = | Undefined = 0 @@ -1034,6 +1085,11 @@ type VkPipelineStageFlags = /// All stages supported on the queue | AllCommandsBit = 0x00010000 +[] +type VkMemoryMapFlags = + | All = 0 + | None = 0 + [] type VkImageAspectFlags = | All = 15 @@ -1880,11 +1936,11 @@ type VkImageSubresource = [] type VkOffset3D = struct - val mutable public x : int - val mutable public y : int - val mutable public z : int + val mutable public x : int32 + val mutable public y : int32 + val mutable public z : int32 - new(x : int, y : int, z : int) = + new(x : int32, y : int32, z : int32) = { x = x y = y @@ -1892,10 +1948,10 @@ type VkOffset3D = } member x.IsEmpty = - x.x = Unchecked.defaultof && x.y = Unchecked.defaultof && x.z = Unchecked.defaultof + x.x = Unchecked.defaultof && x.y = Unchecked.defaultof && x.z = Unchecked.defaultof static member Empty = - VkOffset3D(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkOffset3D(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ @@ -1905,6 +1961,7 @@ type VkOffset3D = ] |> sprintf "VkOffset3D { %s }" end +/// Array of 2 VkOffset3D values. [] type VkOffset3D_2 = struct @@ -2431,20 +2488,20 @@ type VkClearAttachment = [] type VkOffset2D = struct - val mutable public x : int - val mutable public y : int + val mutable public x : int32 + val mutable public y : int32 - new(x : int, y : int) = + new(x : int32, y : int32) = { x = x y = y } member x.IsEmpty = - x.x = Unchecked.defaultof && x.y = Unchecked.defaultof + x.x = Unchecked.defaultof && x.y = Unchecked.defaultof static member Empty = - VkOffset2D(Unchecked.defaultof, Unchecked.defaultof) + VkOffset2D(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ @@ -2826,9 +2883,9 @@ type VkComputePipelineCreateInfo = val mutable public stage : VkPipelineShaderStageCreateInfo val mutable public layout : VkPipelineLayout val mutable public basePipelineHandle : VkPipeline - val mutable public basePipelineIndex : int + val mutable public basePipelineIndex : int32 - new(pNext : nativeint, flags : VkPipelineCreateFlags, stage : VkPipelineShaderStageCreateInfo, layout : VkPipelineLayout, basePipelineHandle : VkPipeline, basePipelineIndex : int) = + new(pNext : nativeint, flags : VkPipelineCreateFlags, stage : VkPipelineShaderStageCreateInfo, layout : VkPipelineLayout, basePipelineHandle : VkPipeline, basePipelineIndex : int32) = { sType = 29u pNext = pNext @@ -2839,14 +2896,14 @@ type VkComputePipelineCreateInfo = basePipelineIndex = basePipelineIndex } - new(flags : VkPipelineCreateFlags, stage : VkPipelineShaderStageCreateInfo, layout : VkPipelineLayout, basePipelineHandle : VkPipeline, basePipelineIndex : int) = + new(flags : VkPipelineCreateFlags, stage : VkPipelineShaderStageCreateInfo, layout : VkPipelineLayout, basePipelineHandle : VkPipeline, basePipelineIndex : int32) = VkComputePipelineCreateInfo(Unchecked.defaultof, flags, stage, layout, basePipelineHandle, basePipelineIndex) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.stage = Unchecked.defaultof && x.layout = Unchecked.defaultof && x.basePipelineHandle = Unchecked.defaultof && x.basePipelineIndex = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.stage = Unchecked.defaultof && x.layout = Unchecked.defaultof && x.basePipelineHandle = Unchecked.defaultof && x.basePipelineIndex = Unchecked.defaultof static member Empty = - VkComputePipelineCreateInfo(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkComputePipelineCreateInfo(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ @@ -3448,10 +3505,10 @@ type VkDrawIndexedIndirectCommand = val mutable public indexCount : uint32 val mutable public instanceCount : uint32 val mutable public firstIndex : uint32 - val mutable public vertexOffset : int + val mutable public vertexOffset : int32 val mutable public firstInstance : uint32 - new(indexCount : uint32, instanceCount : uint32, firstIndex : uint32, vertexOffset : int, firstInstance : uint32) = + new(indexCount : uint32, instanceCount : uint32, firstIndex : uint32, vertexOffset : int32, firstInstance : uint32) = { indexCount = indexCount instanceCount = instanceCount @@ -3461,10 +3518,10 @@ type VkDrawIndexedIndirectCommand = } member x.IsEmpty = - x.indexCount = Unchecked.defaultof && x.instanceCount = Unchecked.defaultof && x.firstIndex = Unchecked.defaultof && x.vertexOffset = Unchecked.defaultof && x.firstInstance = Unchecked.defaultof + x.indexCount = Unchecked.defaultof && x.instanceCount = Unchecked.defaultof && x.firstIndex = Unchecked.defaultof && x.vertexOffset = Unchecked.defaultof && x.firstInstance = Unchecked.defaultof static member Empty = - VkDrawIndexedIndirectCommand(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkDrawIndexedIndirectCommand(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ @@ -4279,9 +4336,9 @@ type VkGraphicsPipelineCreateInfo = val mutable public renderPass : VkRenderPass val mutable public subpass : uint32 val mutable public basePipelineHandle : VkPipeline - val mutable public basePipelineIndex : int + val mutable public basePipelineIndex : int32 - new(pNext : nativeint, flags : VkPipelineCreateFlags, stageCount : uint32, pStages : nativeptr, pVertexInputState : nativeptr, pInputAssemblyState : nativeptr, pTessellationState : nativeptr, pViewportState : nativeptr, pRasterizationState : nativeptr, pMultisampleState : nativeptr, pDepthStencilState : nativeptr, pColorBlendState : nativeptr, pDynamicState : nativeptr, layout : VkPipelineLayout, renderPass : VkRenderPass, subpass : uint32, basePipelineHandle : VkPipeline, basePipelineIndex : int) = + new(pNext : nativeint, flags : VkPipelineCreateFlags, stageCount : uint32, pStages : nativeptr, pVertexInputState : nativeptr, pInputAssemblyState : nativeptr, pTessellationState : nativeptr, pViewportState : nativeptr, pRasterizationState : nativeptr, pMultisampleState : nativeptr, pDepthStencilState : nativeptr, pColorBlendState : nativeptr, pDynamicState : nativeptr, layout : VkPipelineLayout, renderPass : VkRenderPass, subpass : uint32, basePipelineHandle : VkPipeline, basePipelineIndex : int32) = { sType = 28u pNext = pNext @@ -4304,14 +4361,14 @@ type VkGraphicsPipelineCreateInfo = basePipelineIndex = basePipelineIndex } - new(flags : VkPipelineCreateFlags, stageCount : uint32, pStages : nativeptr, pVertexInputState : nativeptr, pInputAssemblyState : nativeptr, pTessellationState : nativeptr, pViewportState : nativeptr, pRasterizationState : nativeptr, pMultisampleState : nativeptr, pDepthStencilState : nativeptr, pColorBlendState : nativeptr, pDynamicState : nativeptr, layout : VkPipelineLayout, renderPass : VkRenderPass, subpass : uint32, basePipelineHandle : VkPipeline, basePipelineIndex : int) = + new(flags : VkPipelineCreateFlags, stageCount : uint32, pStages : nativeptr, pVertexInputState : nativeptr, pInputAssemblyState : nativeptr, pTessellationState : nativeptr, pViewportState : nativeptr, pRasterizationState : nativeptr, pMultisampleState : nativeptr, pDepthStencilState : nativeptr, pColorBlendState : nativeptr, pDynamicState : nativeptr, layout : VkPipelineLayout, renderPass : VkRenderPass, subpass : uint32, basePipelineHandle : VkPipeline, basePipelineIndex : int32) = VkGraphicsPipelineCreateInfo(Unchecked.defaultof, flags, stageCount, pStages, pVertexInputState, pInputAssemblyState, pTessellationState, pViewportState, pRasterizationState, pMultisampleState, pDepthStencilState, pColorBlendState, pDynamicState, layout, renderPass, subpass, basePipelineHandle, basePipelineIndex) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.stageCount = Unchecked.defaultof && x.pStages = Unchecked.defaultof> && x.pVertexInputState = Unchecked.defaultof> && x.pInputAssemblyState = Unchecked.defaultof> && x.pTessellationState = Unchecked.defaultof> && x.pViewportState = Unchecked.defaultof> && x.pRasterizationState = Unchecked.defaultof> && x.pMultisampleState = Unchecked.defaultof> && x.pDepthStencilState = Unchecked.defaultof> && x.pColorBlendState = Unchecked.defaultof> && x.pDynamicState = Unchecked.defaultof> && x.layout = Unchecked.defaultof && x.renderPass = Unchecked.defaultof && x.subpass = Unchecked.defaultof && x.basePipelineHandle = Unchecked.defaultof && x.basePipelineIndex = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.stageCount = Unchecked.defaultof && x.pStages = Unchecked.defaultof> && x.pVertexInputState = Unchecked.defaultof> && x.pInputAssemblyState = Unchecked.defaultof> && x.pTessellationState = Unchecked.defaultof> && x.pViewportState = Unchecked.defaultof> && x.pRasterizationState = Unchecked.defaultof> && x.pMultisampleState = Unchecked.defaultof> && x.pDepthStencilState = Unchecked.defaultof> && x.pColorBlendState = Unchecked.defaultof> && x.pDynamicState = Unchecked.defaultof> && x.layout = Unchecked.defaultof && x.renderPass = Unchecked.defaultof && x.subpass = Unchecked.defaultof && x.basePipelineHandle = Unchecked.defaultof && x.basePipelineIndex = Unchecked.defaultof static member Empty = - VkGraphicsPipelineCreateInfo(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof>, Unchecked.defaultof>, Unchecked.defaultof>, Unchecked.defaultof>, Unchecked.defaultof>, Unchecked.defaultof>, Unchecked.defaultof>, Unchecked.defaultof>, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkGraphicsPipelineCreateInfo(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof>, Unchecked.defaultof>, Unchecked.defaultof>, Unchecked.defaultof>, Unchecked.defaultof>, Unchecked.defaultof>, Unchecked.defaultof>, Unchecked.defaultof>, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ @@ -4876,6 +4933,7 @@ type VkMemoryHeap = ] |> sprintf "VkMemoryHeap { %s }" end +/// Array of 16 VkMemoryHeap values. [] type VkMemoryHeap_16 = struct @@ -4952,6 +5010,7 @@ type VkMemoryType = ] |> sprintf "VkMemoryType { %s }" end +/// Array of 32 VkMemoryType values. [] type VkMemoryType_32 = struct @@ -5048,9 +5107,9 @@ type VkPhysicalDeviceLimits = val mutable public minTexelBufferOffsetAlignment : VkDeviceSize val mutable public minUniformBufferOffsetAlignment : VkDeviceSize val mutable public minStorageBufferOffsetAlignment : VkDeviceSize - val mutable public minTexelOffset : int + val mutable public minTexelOffset : int32 val mutable public maxTexelOffset : uint32 - val mutable public minTexelGatherOffset : int + val mutable public minTexelGatherOffset : int32 val mutable public maxTexelGatherOffset : uint32 val mutable public minInterpolationOffset : float32 val mutable public maxInterpolationOffset : float32 @@ -5085,7 +5144,7 @@ type VkPhysicalDeviceLimits = val mutable public optimalBufferCopyRowPitchAlignment : VkDeviceSize val mutable public nonCoherentAtomSize : VkDeviceSize - new(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 : V3ui, maxComputeWorkGroupInvocations : uint32, maxComputeWorkGroupSize : V3ui, subPixelPrecisionBits : uint32, subTexelPrecisionBits : uint32, mipmapPrecisionBits : uint32, maxDrawIndexedIndexValue : uint32, maxDrawIndirectCount : uint32, maxSamplerLodBias : float32, maxSamplerAnisotropy : float32, maxViewports : uint32, maxViewportDimensions : V2ui, viewportBoundsRange : V2f, viewportSubPixelBits : uint32, minMemoryMapAlignment : uint64, minTexelBufferOffsetAlignment : VkDeviceSize, minUniformBufferOffsetAlignment : VkDeviceSize, minStorageBufferOffsetAlignment : VkDeviceSize, minTexelOffset : int, maxTexelOffset : uint32, minTexelGatherOffset : int, 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 : V2f, lineWidthRange : V2f, pointSizeGranularity : float32, lineWidthGranularity : float32, strictLines : VkBool32, standardSampleLocations : VkBool32, optimalBufferCopyOffsetAlignment : VkDeviceSize, optimalBufferCopyRowPitchAlignment : VkDeviceSize, nonCoherentAtomSize : VkDeviceSize) = + new(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 : V3ui, maxComputeWorkGroupInvocations : uint32, maxComputeWorkGroupSize : V3ui, subPixelPrecisionBits : uint32, subTexelPrecisionBits : uint32, mipmapPrecisionBits : uint32, maxDrawIndexedIndexValue : uint32, maxDrawIndirectCount : uint32, maxSamplerLodBias : float32, maxSamplerAnisotropy : float32, maxViewports : uint32, maxViewportDimensions : V2ui, viewportBoundsRange : V2f, viewportSubPixelBits : uint32, minMemoryMapAlignment : uint64, 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 : V2f, lineWidthRange : V2f, pointSizeGranularity : float32, lineWidthGranularity : float32, strictLines : VkBool32, standardSampleLocations : VkBool32, optimalBufferCopyOffsetAlignment : VkDeviceSize, optimalBufferCopyRowPitchAlignment : VkDeviceSize, nonCoherentAtomSize : VkDeviceSize) = { maxImageDimension1D = maxImageDimension1D maxImageDimension2D = maxImageDimension2D @@ -5196,10 +5255,10 @@ type VkPhysicalDeviceLimits = } member x.IsEmpty = - x.maxImageDimension1D = Unchecked.defaultof && x.maxImageDimension2D = Unchecked.defaultof && x.maxImageDimension3D = Unchecked.defaultof && x.maxImageDimensionCube = Unchecked.defaultof && x.maxImageArrayLayers = Unchecked.defaultof && x.maxTexelBufferElements = Unchecked.defaultof && x.maxUniformBufferRange = Unchecked.defaultof && x.maxStorageBufferRange = Unchecked.defaultof && x.maxPushConstantsSize = Unchecked.defaultof && x.maxMemoryAllocationCount = Unchecked.defaultof && x.maxSamplerAllocationCount = Unchecked.defaultof && x.bufferImageGranularity = Unchecked.defaultof && x.sparseAddressSpaceSize = Unchecked.defaultof && x.maxBoundDescriptorSets = Unchecked.defaultof && x.maxPerStageDescriptorSamplers = Unchecked.defaultof && x.maxPerStageDescriptorUniformBuffers = Unchecked.defaultof && x.maxPerStageDescriptorStorageBuffers = Unchecked.defaultof && x.maxPerStageDescriptorSampledImages = Unchecked.defaultof && x.maxPerStageDescriptorStorageImages = Unchecked.defaultof && x.maxPerStageDescriptorInputAttachments = Unchecked.defaultof && x.maxPerStageResources = Unchecked.defaultof && x.maxDescriptorSetSamplers = Unchecked.defaultof && x.maxDescriptorSetUniformBuffers = Unchecked.defaultof && x.maxDescriptorSetUniformBuffersDynamic = Unchecked.defaultof && x.maxDescriptorSetStorageBuffers = Unchecked.defaultof && x.maxDescriptorSetStorageBuffersDynamic = Unchecked.defaultof && x.maxDescriptorSetSampledImages = Unchecked.defaultof && x.maxDescriptorSetStorageImages = Unchecked.defaultof && x.maxDescriptorSetInputAttachments = Unchecked.defaultof && x.maxVertexInputAttributes = Unchecked.defaultof && x.maxVertexInputBindings = Unchecked.defaultof && x.maxVertexInputAttributeOffset = Unchecked.defaultof && x.maxVertexInputBindingStride = Unchecked.defaultof && x.maxVertexOutputComponents = Unchecked.defaultof && x.maxTessellationGenerationLevel = Unchecked.defaultof && x.maxTessellationPatchSize = Unchecked.defaultof && x.maxTessellationControlPerVertexInputComponents = Unchecked.defaultof && x.maxTessellationControlPerVertexOutputComponents = Unchecked.defaultof && x.maxTessellationControlPerPatchOutputComponents = Unchecked.defaultof && x.maxTessellationControlTotalOutputComponents = Unchecked.defaultof && x.maxTessellationEvaluationInputComponents = Unchecked.defaultof && x.maxTessellationEvaluationOutputComponents = Unchecked.defaultof && x.maxGeometryShaderInvocations = Unchecked.defaultof && x.maxGeometryInputComponents = Unchecked.defaultof && x.maxGeometryOutputComponents = Unchecked.defaultof && x.maxGeometryOutputVertices = Unchecked.defaultof && x.maxGeometryTotalOutputComponents = Unchecked.defaultof && x.maxFragmentInputComponents = Unchecked.defaultof && x.maxFragmentOutputAttachments = Unchecked.defaultof && x.maxFragmentDualSrcAttachments = Unchecked.defaultof && x.maxFragmentCombinedOutputResources = Unchecked.defaultof && x.maxComputeSharedMemorySize = Unchecked.defaultof && x.maxComputeWorkGroupCount = Unchecked.defaultof && x.maxComputeWorkGroupInvocations = Unchecked.defaultof && x.maxComputeWorkGroupSize = Unchecked.defaultof && x.subPixelPrecisionBits = Unchecked.defaultof && x.subTexelPrecisionBits = Unchecked.defaultof && x.mipmapPrecisionBits = Unchecked.defaultof && x.maxDrawIndexedIndexValue = Unchecked.defaultof && x.maxDrawIndirectCount = Unchecked.defaultof && x.maxSamplerLodBias = Unchecked.defaultof && x.maxSamplerAnisotropy = Unchecked.defaultof && x.maxViewports = Unchecked.defaultof && x.maxViewportDimensions = Unchecked.defaultof && x.viewportBoundsRange = Unchecked.defaultof && x.viewportSubPixelBits = Unchecked.defaultof && x.minMemoryMapAlignment = Unchecked.defaultof && x.minTexelBufferOffsetAlignment = Unchecked.defaultof && x.minUniformBufferOffsetAlignment = Unchecked.defaultof && x.minStorageBufferOffsetAlignment = Unchecked.defaultof && x.minTexelOffset = Unchecked.defaultof && x.maxTexelOffset = Unchecked.defaultof && x.minTexelGatherOffset = Unchecked.defaultof && x.maxTexelGatherOffset = Unchecked.defaultof && x.minInterpolationOffset = Unchecked.defaultof && x.maxInterpolationOffset = Unchecked.defaultof && x.subPixelInterpolationOffsetBits = Unchecked.defaultof && x.maxFramebufferWidth = Unchecked.defaultof && x.maxFramebufferHeight = Unchecked.defaultof && x.maxFramebufferLayers = Unchecked.defaultof && x.framebufferColorSampleCounts = Unchecked.defaultof && x.framebufferDepthSampleCounts = Unchecked.defaultof && x.framebufferStencilSampleCounts = Unchecked.defaultof && x.framebufferNoAttachmentsSampleCounts = Unchecked.defaultof && x.maxColorAttachments = Unchecked.defaultof && x.sampledImageColorSampleCounts = Unchecked.defaultof && x.sampledImageIntegerSampleCounts = Unchecked.defaultof && x.sampledImageDepthSampleCounts = Unchecked.defaultof && x.sampledImageStencilSampleCounts = Unchecked.defaultof && x.storageImageSampleCounts = Unchecked.defaultof && x.maxSampleMaskWords = Unchecked.defaultof && x.timestampComputeAndGraphics = Unchecked.defaultof && x.timestampPeriod = Unchecked.defaultof && x.maxClipDistances = Unchecked.defaultof && x.maxCullDistances = Unchecked.defaultof && x.maxCombinedClipAndCullDistances = Unchecked.defaultof && x.discreteQueuePriorities = Unchecked.defaultof && x.pointSizeRange = Unchecked.defaultof && x.lineWidthRange = Unchecked.defaultof && x.pointSizeGranularity = Unchecked.defaultof && x.lineWidthGranularity = Unchecked.defaultof && x.strictLines = Unchecked.defaultof && x.standardSampleLocations = Unchecked.defaultof && x.optimalBufferCopyOffsetAlignment = Unchecked.defaultof && x.optimalBufferCopyRowPitchAlignment = Unchecked.defaultof && x.nonCoherentAtomSize = Unchecked.defaultof + x.maxImageDimension1D = Unchecked.defaultof && x.maxImageDimension2D = Unchecked.defaultof && x.maxImageDimension3D = Unchecked.defaultof && x.maxImageDimensionCube = Unchecked.defaultof && x.maxImageArrayLayers = Unchecked.defaultof && x.maxTexelBufferElements = Unchecked.defaultof && x.maxUniformBufferRange = Unchecked.defaultof && x.maxStorageBufferRange = Unchecked.defaultof && x.maxPushConstantsSize = Unchecked.defaultof && x.maxMemoryAllocationCount = Unchecked.defaultof && x.maxSamplerAllocationCount = Unchecked.defaultof && x.bufferImageGranularity = Unchecked.defaultof && x.sparseAddressSpaceSize = Unchecked.defaultof && x.maxBoundDescriptorSets = Unchecked.defaultof && x.maxPerStageDescriptorSamplers = Unchecked.defaultof && x.maxPerStageDescriptorUniformBuffers = Unchecked.defaultof && x.maxPerStageDescriptorStorageBuffers = Unchecked.defaultof && x.maxPerStageDescriptorSampledImages = Unchecked.defaultof && x.maxPerStageDescriptorStorageImages = Unchecked.defaultof && x.maxPerStageDescriptorInputAttachments = Unchecked.defaultof && x.maxPerStageResources = Unchecked.defaultof && x.maxDescriptorSetSamplers = Unchecked.defaultof && x.maxDescriptorSetUniformBuffers = Unchecked.defaultof && x.maxDescriptorSetUniformBuffersDynamic = Unchecked.defaultof && x.maxDescriptorSetStorageBuffers = Unchecked.defaultof && x.maxDescriptorSetStorageBuffersDynamic = Unchecked.defaultof && x.maxDescriptorSetSampledImages = Unchecked.defaultof && x.maxDescriptorSetStorageImages = Unchecked.defaultof && x.maxDescriptorSetInputAttachments = Unchecked.defaultof && x.maxVertexInputAttributes = Unchecked.defaultof && x.maxVertexInputBindings = Unchecked.defaultof && x.maxVertexInputAttributeOffset = Unchecked.defaultof && x.maxVertexInputBindingStride = Unchecked.defaultof && x.maxVertexOutputComponents = Unchecked.defaultof && x.maxTessellationGenerationLevel = Unchecked.defaultof && x.maxTessellationPatchSize = Unchecked.defaultof && x.maxTessellationControlPerVertexInputComponents = Unchecked.defaultof && x.maxTessellationControlPerVertexOutputComponents = Unchecked.defaultof && x.maxTessellationControlPerPatchOutputComponents = Unchecked.defaultof && x.maxTessellationControlTotalOutputComponents = Unchecked.defaultof && x.maxTessellationEvaluationInputComponents = Unchecked.defaultof && x.maxTessellationEvaluationOutputComponents = Unchecked.defaultof && x.maxGeometryShaderInvocations = Unchecked.defaultof && x.maxGeometryInputComponents = Unchecked.defaultof && x.maxGeometryOutputComponents = Unchecked.defaultof && x.maxGeometryOutputVertices = Unchecked.defaultof && x.maxGeometryTotalOutputComponents = Unchecked.defaultof && x.maxFragmentInputComponents = Unchecked.defaultof && x.maxFragmentOutputAttachments = Unchecked.defaultof && x.maxFragmentDualSrcAttachments = Unchecked.defaultof && x.maxFragmentCombinedOutputResources = Unchecked.defaultof && x.maxComputeSharedMemorySize = Unchecked.defaultof && x.maxComputeWorkGroupCount = Unchecked.defaultof && x.maxComputeWorkGroupInvocations = Unchecked.defaultof && x.maxComputeWorkGroupSize = Unchecked.defaultof && x.subPixelPrecisionBits = Unchecked.defaultof && x.subTexelPrecisionBits = Unchecked.defaultof && x.mipmapPrecisionBits = Unchecked.defaultof && x.maxDrawIndexedIndexValue = Unchecked.defaultof && x.maxDrawIndirectCount = Unchecked.defaultof && x.maxSamplerLodBias = Unchecked.defaultof && x.maxSamplerAnisotropy = Unchecked.defaultof && x.maxViewports = Unchecked.defaultof && x.maxViewportDimensions = Unchecked.defaultof && x.viewportBoundsRange = Unchecked.defaultof && x.viewportSubPixelBits = Unchecked.defaultof && x.minMemoryMapAlignment = Unchecked.defaultof && x.minTexelBufferOffsetAlignment = Unchecked.defaultof && x.minUniformBufferOffsetAlignment = Unchecked.defaultof && x.minStorageBufferOffsetAlignment = Unchecked.defaultof && x.minTexelOffset = Unchecked.defaultof && x.maxTexelOffset = Unchecked.defaultof && x.minTexelGatherOffset = Unchecked.defaultof && x.maxTexelGatherOffset = Unchecked.defaultof && x.minInterpolationOffset = Unchecked.defaultof && x.maxInterpolationOffset = Unchecked.defaultof && x.subPixelInterpolationOffsetBits = Unchecked.defaultof && x.maxFramebufferWidth = Unchecked.defaultof && x.maxFramebufferHeight = Unchecked.defaultof && x.maxFramebufferLayers = Unchecked.defaultof && x.framebufferColorSampleCounts = Unchecked.defaultof && x.framebufferDepthSampleCounts = Unchecked.defaultof && x.framebufferStencilSampleCounts = Unchecked.defaultof && x.framebufferNoAttachmentsSampleCounts = Unchecked.defaultof && x.maxColorAttachments = Unchecked.defaultof && x.sampledImageColorSampleCounts = Unchecked.defaultof && x.sampledImageIntegerSampleCounts = Unchecked.defaultof && x.sampledImageDepthSampleCounts = Unchecked.defaultof && x.sampledImageStencilSampleCounts = Unchecked.defaultof && x.storageImageSampleCounts = Unchecked.defaultof && x.maxSampleMaskWords = Unchecked.defaultof && x.timestampComputeAndGraphics = Unchecked.defaultof && x.timestampPeriod = Unchecked.defaultof && x.maxClipDistances = Unchecked.defaultof && x.maxCullDistances = Unchecked.defaultof && x.maxCombinedClipAndCullDistances = Unchecked.defaultof && x.discreteQueuePriorities = Unchecked.defaultof && x.pointSizeRange = Unchecked.defaultof && x.lineWidthRange = Unchecked.defaultof && x.pointSizeGranularity = Unchecked.defaultof && x.lineWidthGranularity = Unchecked.defaultof && x.strictLines = Unchecked.defaultof && x.standardSampleLocations = Unchecked.defaultof && x.optimalBufferCopyOffsetAlignment = Unchecked.defaultof && x.optimalBufferCopyRowPitchAlignment = Unchecked.defaultof && x.nonCoherentAtomSize = Unchecked.defaultof static member Empty = - VkPhysicalDeviceLimits(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceLimits(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ @@ -6493,7 +6552,7 @@ module VkRaw = extern void vkCmdDraw(VkCommandBuffer commandBuffer, uint32 vertexCount, uint32 instanceCount, uint32 firstVertex, uint32 firstInstance) [] - extern void vkCmdDrawIndexed(VkCommandBuffer commandBuffer, uint32 indexCount, uint32 instanceCount, uint32 firstIndex, int vertexOffset, uint32 firstInstance) + extern void vkCmdDrawIndexed(VkCommandBuffer commandBuffer, uint32 indexCount, uint32 instanceCount, uint32 firstIndex, int32 vertexOffset, uint32 firstInstance) [] extern void vkCmdDrawIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32 drawCount, uint32 stride) @@ -6583,19 +6642,18 @@ module VkRaw = extern void vkCmdExecuteCommands(VkCommandBuffer commandBuffer, uint32 commandBufferCount, VkCommandBuffer* pCommandBuffers) [] - let vkImportInstanceDelegate<'a>(name : string) = + let vkImportInstanceDelegate<'T>(name : string) = let ptr = vkGetInstanceProcAddr(activeInstance, name) if ptr = 0n then Log.warn "could not load function: %s" name - Unchecked.defaultof<'a> + Unchecked.defaultof<'T> else Report.Line(3, sprintf "loaded function %s (0x%08X)" name ptr) - Marshal.GetDelegateForFunctionPointer(ptr, typeof<'a>) |> unbox<'a> + Marshal.GetDelegateForFunctionPointer(ptr, typeof<'T>) |> unbox<'T> module Vulkan11 = - [] type VkSamplerYcbcrConversion = struct @@ -8874,11 +8932,11 @@ module Vulkan11 = val mutable public subpassCount : uint32 val mutable public pViewMasks : nativeptr val mutable public dependencyCount : uint32 - val mutable public pViewOffsets : nativeptr + val mutable public pViewOffsets : nativeptr val mutable public correlationMaskCount : uint32 val mutable public pCorrelationMasks : nativeptr - new(pNext : nativeint, subpassCount : uint32, pViewMasks : nativeptr, dependencyCount : uint32, pViewOffsets : nativeptr, correlationMaskCount : uint32, pCorrelationMasks : nativeptr) = + new(pNext : nativeint, subpassCount : uint32, pViewMasks : nativeptr, dependencyCount : uint32, pViewOffsets : nativeptr, correlationMaskCount : uint32, pCorrelationMasks : nativeptr) = { sType = 1000053000u pNext = pNext @@ -8890,14 +8948,14 @@ module Vulkan11 = pCorrelationMasks = pCorrelationMasks } - new(subpassCount : uint32, pViewMasks : nativeptr, dependencyCount : uint32, pViewOffsets : nativeptr, correlationMaskCount : uint32, pCorrelationMasks : nativeptr) = + new(subpassCount : uint32, pViewMasks : nativeptr, dependencyCount : uint32, pViewOffsets : nativeptr, correlationMaskCount : uint32, pCorrelationMasks : nativeptr) = VkRenderPassMultiviewCreateInfo(Unchecked.defaultof, subpassCount, pViewMasks, dependencyCount, pViewOffsets, correlationMaskCount, pCorrelationMasks) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.subpassCount = Unchecked.defaultof && x.pViewMasks = Unchecked.defaultof> && x.dependencyCount = Unchecked.defaultof && x.pViewOffsets = Unchecked.defaultof> && x.correlationMaskCount = Unchecked.defaultof && x.pCorrelationMasks = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.subpassCount = Unchecked.defaultof && x.pViewMasks = Unchecked.defaultof> && x.dependencyCount = Unchecked.defaultof && x.pViewOffsets = Unchecked.defaultof> && x.correlationMaskCount = Unchecked.defaultof && x.pCorrelationMasks = Unchecked.defaultof> static member Empty = - VkRenderPassMultiviewCreateInfo(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>) + VkRenderPassMultiviewCreateInfo(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ @@ -9284,8 +9342,6 @@ module Vulkan11 = module Vulkan12 = - open Vulkan11 - type VkDriverId = /// Advanced Micro Devices, Inc. | AmdProprietary = 1 @@ -9333,6 +9389,12 @@ module Vulkan12 = | MesaVenus = 22 /// Mesa open source project | MesaDozen = 23 + /// Mesa open source project + | MesaNvk = 24 + /// Imagination Technologies + | ImaginationOpenSource = 25 + /// Mesa open source project + | MesaAgxv = 26 type VkShaderFloatControlsIndependence = | D32BitOnly = 0 @@ -10776,16 +10838,16 @@ module Vulkan12 = val mutable public deviceLUIDValid : VkBool32 val mutable public subgroupSize : uint32 val mutable public subgroupSupportedStages : VkShaderStageFlags - val mutable public subgroupSupportedOperations : VkSubgroupFeatureFlags + val mutable public subgroupSupportedOperations : Vulkan11.VkSubgroupFeatureFlags val mutable public subgroupQuadOperationsInAllStages : VkBool32 - val mutable public pointClippingBehavior : VkPointClippingBehavior + val mutable public pointClippingBehavior : Vulkan11.VkPointClippingBehavior val mutable public maxMultiviewViewCount : uint32 val mutable public maxMultiviewInstanceIndex : uint32 val mutable public protectedNoFault : VkBool32 val mutable public maxPerSetDescriptors : uint32 val mutable public maxMemoryAllocationSize : VkDeviceSize - new(pNext : nativeint, deviceUUID : Guid, driverUUID : Guid, deviceLUID : byte_8, deviceNodeMask : uint32, deviceLUIDValid : VkBool32, subgroupSize : uint32, subgroupSupportedStages : VkShaderStageFlags, subgroupSupportedOperations : VkSubgroupFeatureFlags, subgroupQuadOperationsInAllStages : VkBool32, pointClippingBehavior : VkPointClippingBehavior, maxMultiviewViewCount : uint32, maxMultiviewInstanceIndex : uint32, protectedNoFault : VkBool32, maxPerSetDescriptors : uint32, maxMemoryAllocationSize : VkDeviceSize) = + new(pNext : nativeint, deviceUUID : Guid, driverUUID : Guid, deviceLUID : byte_8, deviceNodeMask : uint32, deviceLUIDValid : VkBool32, subgroupSize : uint32, subgroupSupportedStages : VkShaderStageFlags, subgroupSupportedOperations : Vulkan11.VkSubgroupFeatureFlags, subgroupQuadOperationsInAllStages : VkBool32, pointClippingBehavior : Vulkan11.VkPointClippingBehavior, maxMultiviewViewCount : uint32, maxMultiviewInstanceIndex : uint32, protectedNoFault : VkBool32, maxPerSetDescriptors : uint32, maxMemoryAllocationSize : VkDeviceSize) = { sType = 50u pNext = pNext @@ -10806,14 +10868,14 @@ module Vulkan12 = maxMemoryAllocationSize = maxMemoryAllocationSize } - new(deviceUUID : Guid, driverUUID : Guid, deviceLUID : byte_8, deviceNodeMask : uint32, deviceLUIDValid : VkBool32, subgroupSize : uint32, subgroupSupportedStages : VkShaderStageFlags, subgroupSupportedOperations : VkSubgroupFeatureFlags, subgroupQuadOperationsInAllStages : VkBool32, pointClippingBehavior : VkPointClippingBehavior, maxMultiviewViewCount : uint32, maxMultiviewInstanceIndex : uint32, protectedNoFault : VkBool32, maxPerSetDescriptors : uint32, maxMemoryAllocationSize : VkDeviceSize) = + new(deviceUUID : Guid, driverUUID : Guid, deviceLUID : byte_8, deviceNodeMask : uint32, deviceLUIDValid : VkBool32, subgroupSize : uint32, subgroupSupportedStages : VkShaderStageFlags, subgroupSupportedOperations : Vulkan11.VkSubgroupFeatureFlags, subgroupQuadOperationsInAllStages : VkBool32, pointClippingBehavior : Vulkan11.VkPointClippingBehavior, maxMultiviewViewCount : uint32, maxMultiviewInstanceIndex : uint32, protectedNoFault : VkBool32, maxPerSetDescriptors : uint32, maxMemoryAllocationSize : VkDeviceSize) = VkPhysicalDeviceVulkan11Properties(Unchecked.defaultof, deviceUUID, driverUUID, deviceLUID, deviceNodeMask, deviceLUIDValid, subgroupSize, subgroupSupportedStages, subgroupSupportedOperations, subgroupQuadOperationsInAllStages, pointClippingBehavior, maxMultiviewViewCount, maxMultiviewInstanceIndex, protectedNoFault, maxPerSetDescriptors, maxMemoryAllocationSize) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.deviceUUID = Unchecked.defaultof && x.driverUUID = Unchecked.defaultof && x.deviceLUID = Unchecked.defaultof && x.deviceNodeMask = Unchecked.defaultof && x.deviceLUIDValid = Unchecked.defaultof && x.subgroupSize = Unchecked.defaultof && x.subgroupSupportedStages = Unchecked.defaultof && x.subgroupSupportedOperations = Unchecked.defaultof && x.subgroupQuadOperationsInAllStages = Unchecked.defaultof && x.pointClippingBehavior = Unchecked.defaultof && x.maxMultiviewViewCount = Unchecked.defaultof && x.maxMultiviewInstanceIndex = Unchecked.defaultof && x.protectedNoFault = Unchecked.defaultof && x.maxPerSetDescriptors = Unchecked.defaultof && x.maxMemoryAllocationSize = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.deviceUUID = Unchecked.defaultof && x.driverUUID = Unchecked.defaultof && x.deviceLUID = Unchecked.defaultof && x.deviceNodeMask = Unchecked.defaultof && x.deviceLUIDValid = Unchecked.defaultof && x.subgroupSize = Unchecked.defaultof && x.subgroupSupportedStages = Unchecked.defaultof && x.subgroupSupportedOperations = Unchecked.defaultof && x.subgroupQuadOperationsInAllStages = Unchecked.defaultof && x.pointClippingBehavior = Unchecked.defaultof && x.maxMultiviewViewCount = Unchecked.defaultof && x.maxMultiviewInstanceIndex = Unchecked.defaultof && x.protectedNoFault = Unchecked.defaultof && x.maxPerSetDescriptors = Unchecked.defaultof && x.maxMemoryAllocationSize = Unchecked.defaultof static member Empty = - VkPhysicalDeviceVulkan11Properties(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceVulkan11Properties(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ @@ -11334,9 +11396,9 @@ module Vulkan12 = val mutable public srcAccessMask : VkAccessFlags val mutable public dstAccessMask : VkAccessFlags val mutable public dependencyFlags : VkDependencyFlags - val mutable public viewOffset : int + val mutable public viewOffset : int32 - new(pNext : nativeint, srcSubpass : uint32, dstSubpass : uint32, srcStageMask : VkPipelineStageFlags, dstStageMask : VkPipelineStageFlags, srcAccessMask : VkAccessFlags, dstAccessMask : VkAccessFlags, dependencyFlags : VkDependencyFlags, viewOffset : int) = + new(pNext : nativeint, srcSubpass : uint32, dstSubpass : uint32, srcStageMask : VkPipelineStageFlags, dstStageMask : VkPipelineStageFlags, srcAccessMask : VkAccessFlags, dstAccessMask : VkAccessFlags, dependencyFlags : VkDependencyFlags, viewOffset : int32) = { sType = 1000109003u pNext = pNext @@ -11350,14 +11412,14 @@ module Vulkan12 = viewOffset = viewOffset } - new(srcSubpass : uint32, dstSubpass : uint32, srcStageMask : VkPipelineStageFlags, dstStageMask : VkPipelineStageFlags, srcAccessMask : VkAccessFlags, dstAccessMask : VkAccessFlags, dependencyFlags : VkDependencyFlags, viewOffset : int) = + new(srcSubpass : uint32, dstSubpass : uint32, srcStageMask : VkPipelineStageFlags, dstStageMask : VkPipelineStageFlags, srcAccessMask : VkAccessFlags, dstAccessMask : VkAccessFlags, dependencyFlags : VkDependencyFlags, viewOffset : int32) = VkSubpassDependency2(Unchecked.defaultof, srcSubpass, dstSubpass, srcStageMask, dstStageMask, srcAccessMask, dstAccessMask, dependencyFlags, viewOffset) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.srcSubpass = Unchecked.defaultof && x.dstSubpass = Unchecked.defaultof && x.srcStageMask = Unchecked.defaultof && x.dstStageMask = Unchecked.defaultof && x.srcAccessMask = Unchecked.defaultof && x.dstAccessMask = Unchecked.defaultof && x.dependencyFlags = Unchecked.defaultof && x.viewOffset = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.srcSubpass = Unchecked.defaultof && x.dstSubpass = Unchecked.defaultof && x.srcStageMask = Unchecked.defaultof && x.dstStageMask = Unchecked.defaultof && x.srcAccessMask = Unchecked.defaultof && x.dstAccessMask = Unchecked.defaultof && x.dependencyFlags = Unchecked.defaultof && x.viewOffset = Unchecked.defaultof static member Empty = - VkSubpassDependency2(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkSubpassDependency2(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ @@ -11722,9 +11784,9 @@ module Vulkan12 = static member inline DepthReadOnlyOptimal = unbox 1000241001 static member inline StencilAttachmentOptimal = unbox 1000241002 static member inline StencilReadOnlyOptimal = unbox 1000241003 - type VkMemoryAllocateFlags with - static member inline DeviceAddressBit = unbox 0x00000002 - static member inline DeviceAddressCaptureReplayBit = unbox 0x00000004 + type Vulkan11.VkMemoryAllocateFlags with + static member inline DeviceAddressBit = unbox 0x00000002 + static member inline DeviceAddressCaptureReplayBit = unbox 0x00000004 type VkResult with static member inline ErrorFragmentation = unbox -1000161000 static member inline ErrorInvalidOpaqueCaptureAddress = unbox -1000257000 @@ -11777,9 +11839,6 @@ module Vulkan12 = module Vulkan13 = - open Vulkan11 - open Vulkan12 - [] type VkPrivateDataSlot = @@ -13929,14 +13988,14 @@ module Vulkan13 = val mutable public pNext : nativeint val mutable public imageView : VkImageView val mutable public imageLayout : VkImageLayout - val mutable public resolveMode : VkResolveModeFlags + val mutable public resolveMode : Vulkan12.VkResolveModeFlags val mutable public resolveImageView : VkImageView val mutable public resolveImageLayout : VkImageLayout val mutable public loadOp : VkAttachmentLoadOp val mutable public storeOp : VkAttachmentStoreOp val mutable public clearValue : VkClearValue - new(pNext : nativeint, imageView : VkImageView, imageLayout : VkImageLayout, resolveMode : VkResolveModeFlags, resolveImageView : VkImageView, resolveImageLayout : VkImageLayout, loadOp : VkAttachmentLoadOp, storeOp : VkAttachmentStoreOp, clearValue : VkClearValue) = + new(pNext : nativeint, imageView : VkImageView, imageLayout : VkImageLayout, resolveMode : Vulkan12.VkResolveModeFlags, resolveImageView : VkImageView, resolveImageLayout : VkImageLayout, loadOp : VkAttachmentLoadOp, storeOp : VkAttachmentStoreOp, clearValue : VkClearValue) = { sType = 1000044001u pNext = pNext @@ -13950,14 +14009,14 @@ module Vulkan13 = clearValue = clearValue } - new(imageView : VkImageView, imageLayout : VkImageLayout, resolveMode : VkResolveModeFlags, resolveImageView : VkImageView, resolveImageLayout : VkImageLayout, loadOp : VkAttachmentLoadOp, storeOp : VkAttachmentStoreOp, clearValue : VkClearValue) = + new(imageView : VkImageView, imageLayout : VkImageLayout, resolveMode : Vulkan12.VkResolveModeFlags, resolveImageView : VkImageView, resolveImageLayout : VkImageLayout, loadOp : VkAttachmentLoadOp, storeOp : VkAttachmentStoreOp, clearValue : VkClearValue) = VkRenderingAttachmentInfo(Unchecked.defaultof, imageView, imageLayout, resolveMode, resolveImageView, resolveImageLayout, loadOp, storeOp, clearValue) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.imageView = Unchecked.defaultof && x.imageLayout = Unchecked.defaultof && x.resolveMode = Unchecked.defaultof && x.resolveImageView = Unchecked.defaultof && x.resolveImageLayout = Unchecked.defaultof && x.loadOp = Unchecked.defaultof && x.storeOp = Unchecked.defaultof && x.clearValue = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.imageView = Unchecked.defaultof && x.imageLayout = Unchecked.defaultof && x.resolveMode = Unchecked.defaultof && x.resolveImageView = Unchecked.defaultof && x.resolveImageLayout = Unchecked.defaultof && x.loadOp = Unchecked.defaultof && x.storeOp = Unchecked.defaultof && x.clearValue = Unchecked.defaultof static member Empty = - VkRenderingAttachmentInfo(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkRenderingAttachmentInfo(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ @@ -14369,161 +14428,552 @@ module Vulkan13 = extern void vkCmdSetPrimitiveRestartEnable(VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable) [] - extern void vkGetDeviceBufferMemoryRequirements(VkDevice device, VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements) + extern void vkGetDeviceBufferMemoryRequirements(VkDevice device, VkDeviceBufferMemoryRequirements* pInfo, Vulkan11.VkMemoryRequirements2* pMemoryRequirements) [] - extern void vkGetDeviceImageMemoryRequirements(VkDevice device, VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements) + extern void vkGetDeviceImageMemoryRequirements(VkDevice device, VkDeviceImageMemoryRequirements* pInfo, Vulkan11.VkMemoryRequirements2* pMemoryRequirements) [] - extern void vkGetDeviceImageSparseMemoryRequirements(VkDevice device, VkDeviceImageMemoryRequirements* pInfo, uint32* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) + extern void vkGetDeviceImageSparseMemoryRequirements(VkDevice device, VkDeviceImageMemoryRequirements* pInfo, uint32* pSparseMemoryRequirementCount, Vulkan11.VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) -module AMDBufferMarker = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_AMD_buffer_marker" - let Number = 180 +/// Promoted to Vulkan11. +module KHRGetPhysicalDeviceProperties2 = + let Type = ExtensionType.Instance + let Name = "VK_KHR_get_physical_device_properties2" + let Number = 60 + + type VkFormatProperties2KHR = Vulkan11.VkFormatProperties2 + + type VkImageFormatProperties2KHR = Vulkan11.VkImageFormatProperties2 + + type VkPhysicalDeviceFeatures2KHR = Vulkan11.VkPhysicalDeviceFeatures2 + + type VkPhysicalDeviceImageFormatInfo2KHR = Vulkan11.VkPhysicalDeviceImageFormatInfo2 + + type VkPhysicalDeviceMemoryProperties2KHR = Vulkan11.VkPhysicalDeviceMemoryProperties2 + + type VkPhysicalDeviceProperties2KHR = Vulkan11.VkPhysicalDeviceProperties2 + + type VkPhysicalDeviceSparseImageFormatInfo2KHR = Vulkan11.VkPhysicalDeviceSparseImageFormatInfo2 + + type VkQueueFamilyProperties2KHR = Vulkan11.VkQueueFamilyProperties2 + + type VkSparseImageFormatProperties2KHR = Vulkan11.VkSparseImageFormatProperties2 module VkRaw = [] - type VkCmdWriteBufferMarkerAMDDel = delegate of VkCommandBuffer * VkPipelineStageFlags * VkBuffer * VkDeviceSize * uint32 -> unit + type VkGetPhysicalDeviceFeatures2KHRDel = delegate of VkPhysicalDevice * nativeptr -> unit + [] + type VkGetPhysicalDeviceProperties2KHRDel = delegate of VkPhysicalDevice * nativeptr -> unit + [] + type VkGetPhysicalDeviceFormatProperties2KHRDel = delegate of VkPhysicalDevice * VkFormat * nativeptr -> unit + [] + type VkGetPhysicalDeviceImageFormatProperties2KHRDel = delegate of VkPhysicalDevice * nativeptr * nativeptr -> VkResult + [] + type VkGetPhysicalDeviceQueueFamilyProperties2KHRDel = delegate of VkPhysicalDevice * nativeptr * nativeptr -> unit + [] + type VkGetPhysicalDeviceMemoryProperties2KHRDel = delegate of VkPhysicalDevice * nativeptr -> unit + [] + type VkGetPhysicalDeviceSparseImageFormatProperties2KHRDel = delegate of VkPhysicalDevice * nativeptr * nativeptr * nativeptr -> unit [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading AMDBufferMarker") - static let s_vkCmdWriteBufferMarkerAMDDel = VkRaw.vkImportInstanceDelegate "vkCmdWriteBufferMarkerAMD" + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRGetPhysicalDeviceProperties2") + static let s_vkGetPhysicalDeviceFeatures2KHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceFeatures2KHR" + static let s_vkGetPhysicalDeviceProperties2KHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceProperties2KHR" + static let s_vkGetPhysicalDeviceFormatProperties2KHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceFormatProperties2KHR" + static let s_vkGetPhysicalDeviceImageFormatProperties2KHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceImageFormatProperties2KHR" + static let s_vkGetPhysicalDeviceQueueFamilyProperties2KHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceQueueFamilyProperties2KHR" + static let s_vkGetPhysicalDeviceMemoryProperties2KHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceMemoryProperties2KHR" + static let s_vkGetPhysicalDeviceSparseImageFormatProperties2KHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceSparseImageFormatProperties2KHR" static do Report.End(3) |> ignore - static member vkCmdWriteBufferMarkerAMD = s_vkCmdWriteBufferMarkerAMDDel - let vkCmdWriteBufferMarkerAMD(commandBuffer : VkCommandBuffer, pipelineStage : VkPipelineStageFlags, dstBuffer : VkBuffer, dstOffset : VkDeviceSize, marker : uint32) = Loader.vkCmdWriteBufferMarkerAMD.Invoke(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) - -module AMDDeviceCoherentMemory = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_AMD_device_coherent_memory" - let Number = 230 + static member vkGetPhysicalDeviceFeatures2KHR = s_vkGetPhysicalDeviceFeatures2KHRDel + static member vkGetPhysicalDeviceProperties2KHR = s_vkGetPhysicalDeviceProperties2KHRDel + static member vkGetPhysicalDeviceFormatProperties2KHR = s_vkGetPhysicalDeviceFormatProperties2KHRDel + static member vkGetPhysicalDeviceImageFormatProperties2KHR = s_vkGetPhysicalDeviceImageFormatProperties2KHRDel + static member vkGetPhysicalDeviceQueueFamilyProperties2KHR = s_vkGetPhysicalDeviceQueueFamilyProperties2KHRDel + static member vkGetPhysicalDeviceMemoryProperties2KHR = s_vkGetPhysicalDeviceMemoryProperties2KHRDel + static member vkGetPhysicalDeviceSparseImageFormatProperties2KHR = s_vkGetPhysicalDeviceSparseImageFormatProperties2KHRDel + let vkGetPhysicalDeviceFeatures2KHR(physicalDevice : VkPhysicalDevice, pFeatures : nativeptr) = Loader.vkGetPhysicalDeviceFeatures2KHR.Invoke(physicalDevice, pFeatures) + let vkGetPhysicalDeviceProperties2KHR(physicalDevice : VkPhysicalDevice, pProperties : nativeptr) = Loader.vkGetPhysicalDeviceProperties2KHR.Invoke(physicalDevice, pProperties) + let vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice : VkPhysicalDevice, format : VkFormat, pFormatProperties : nativeptr) = Loader.vkGetPhysicalDeviceFormatProperties2KHR.Invoke(physicalDevice, format, pFormatProperties) + let vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice : VkPhysicalDevice, pImageFormatInfo : nativeptr, pImageFormatProperties : nativeptr) = Loader.vkGetPhysicalDeviceImageFormatProperties2KHR.Invoke(physicalDevice, pImageFormatInfo, pImageFormatProperties) + let vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice : VkPhysicalDevice, pQueueFamilyPropertyCount : nativeptr, pQueueFamilyProperties : nativeptr) = Loader.vkGetPhysicalDeviceQueueFamilyProperties2KHR.Invoke(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) + let vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice : VkPhysicalDevice, pMemoryProperties : nativeptr) = Loader.vkGetPhysicalDeviceMemoryProperties2KHR.Invoke(physicalDevice, pMemoryProperties) + let vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice : VkPhysicalDevice, pFormatInfo : nativeptr, pPropertyCount : nativeptr, pProperties : nativeptr) = Loader.vkGetPhysicalDeviceSparseImageFormatProperties2KHR.Invoke(physicalDevice, pFormatInfo, pPropertyCount, pProperties) +module KHRPipelineLibrary = + let Type = ExtensionType.Device + let Name = "VK_KHR_pipeline_library" + let Number = 291 [] - type VkPhysicalDeviceCoherentMemoryFeaturesAMD = + type VkPipelineLibraryCreateInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public deviceCoherentMemory : VkBool32 + val mutable public libraryCount : uint32 + val mutable public pLibraries : nativeptr - new(pNext : nativeint, deviceCoherentMemory : VkBool32) = + new(pNext : nativeint, libraryCount : uint32, pLibraries : nativeptr) = { - sType = 1000229000u + sType = 1000290000u pNext = pNext - deviceCoherentMemory = deviceCoherentMemory + libraryCount = libraryCount + pLibraries = pLibraries } - new(deviceCoherentMemory : VkBool32) = - VkPhysicalDeviceCoherentMemoryFeaturesAMD(Unchecked.defaultof, deviceCoherentMemory) + new(libraryCount : uint32, pLibraries : nativeptr) = + VkPipelineLibraryCreateInfoKHR(Unchecked.defaultof, libraryCount, pLibraries) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.deviceCoherentMemory = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.libraryCount = Unchecked.defaultof && x.pLibraries = Unchecked.defaultof> static member Empty = - VkPhysicalDeviceCoherentMemoryFeaturesAMD(Unchecked.defaultof, Unchecked.defaultof) + VkPipelineLibraryCreateInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "deviceCoherentMemory = %A" x.deviceCoherentMemory - ] |> sprintf "VkPhysicalDeviceCoherentMemoryFeaturesAMD { %s }" + sprintf "libraryCount = %A" x.libraryCount + sprintf "pLibraries = %A" x.pLibraries + ] |> sprintf "VkPipelineLibraryCreateInfoKHR { %s }" end [] module EnumExtensions = - type VkMemoryPropertyFlags with - static member inline DeviceCoherentBitAmd = unbox 0x00000040 - static member inline DeviceUncachedBitAmd = unbox 0x00000080 + type VkPipelineCreateFlags with + static member inline LibraryBitKhr = unbox 0x00000800 -module KHRGetPhysicalDeviceProperties2 = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_KHR_get_physical_device_properties2" - let Number = 60 +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +/// Promoted to Vulkan12. +module KHRShaderFloatControls = + let Type = ExtensionType.Device + let Name = "VK_KHR_shader_float_controls" + let Number = 198 + type VkShaderFloatControlsIndependenceKHR = Vulkan12.VkShaderFloatControlsIndependence - type VkFormatProperties2KHR = VkFormatProperties2 + type VkPhysicalDeviceFloatControlsPropertiesKHR = Vulkan12.VkPhysicalDeviceFloatControlsProperties - type VkImageFormatProperties2KHR = VkImageFormatProperties2 - type VkPhysicalDeviceFeatures2KHR = VkPhysicalDeviceFeatures2 + [] + module EnumExtensions = + type Vulkan12.VkShaderFloatControlsIndependence with + static member inline D32BitOnlyKhr = unbox 0 + static member inline AllKhr = unbox 1 + static member inline NoneKhr = unbox 2 + + +/// Requires Vulkan11, KHRShaderFloatControls. +/// Promoted to Vulkan12. +module KHRSpirv14 = + let Type = ExtensionType.Device + let Name = "VK_KHR_spirv_1_4" + let Number = 237 + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module EXTTransformFeedback = + let Type = ExtensionType.Device + let Name = "VK_EXT_transform_feedback" + let Number = 29 + + [] + type VkPhysicalDeviceTransformFeedbackFeaturesEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public transformFeedback : VkBool32 + val mutable public geometryStreams : VkBool32 + + new(pNext : nativeint, transformFeedback : VkBool32, geometryStreams : VkBool32) = + { + sType = 1000028000u + pNext = pNext + transformFeedback = transformFeedback + geometryStreams = geometryStreams + } + + new(transformFeedback : VkBool32, geometryStreams : VkBool32) = + VkPhysicalDeviceTransformFeedbackFeaturesEXT(Unchecked.defaultof, transformFeedback, geometryStreams) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.transformFeedback = Unchecked.defaultof && x.geometryStreams = Unchecked.defaultof + + static member Empty = + VkPhysicalDeviceTransformFeedbackFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "transformFeedback = %A" x.transformFeedback + sprintf "geometryStreams = %A" x.geometryStreams + ] |> sprintf "VkPhysicalDeviceTransformFeedbackFeaturesEXT { %s }" + end + + [] + type VkPhysicalDeviceTransformFeedbackPropertiesEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public maxTransformFeedbackStreams : uint32 + val mutable public maxTransformFeedbackBuffers : uint32 + val mutable public maxTransformFeedbackBufferSize : VkDeviceSize + val mutable public maxTransformFeedbackStreamDataSize : uint32 + val mutable public maxTransformFeedbackBufferDataSize : uint32 + val mutable public maxTransformFeedbackBufferDataStride : uint32 + val mutable public transformFeedbackQueries : VkBool32 + val mutable public transformFeedbackStreamsLinesTriangles : VkBool32 + val mutable public transformFeedbackRasterizationStreamSelect : VkBool32 + val mutable public transformFeedbackDraw : VkBool32 + + new(pNext : nativeint, maxTransformFeedbackStreams : uint32, maxTransformFeedbackBuffers : uint32, maxTransformFeedbackBufferSize : VkDeviceSize, maxTransformFeedbackStreamDataSize : uint32, maxTransformFeedbackBufferDataSize : uint32, maxTransformFeedbackBufferDataStride : uint32, transformFeedbackQueries : VkBool32, transformFeedbackStreamsLinesTriangles : VkBool32, transformFeedbackRasterizationStreamSelect : VkBool32, transformFeedbackDraw : VkBool32) = + { + sType = 1000028001u + pNext = pNext + maxTransformFeedbackStreams = maxTransformFeedbackStreams + maxTransformFeedbackBuffers = maxTransformFeedbackBuffers + maxTransformFeedbackBufferSize = maxTransformFeedbackBufferSize + maxTransformFeedbackStreamDataSize = maxTransformFeedbackStreamDataSize + maxTransformFeedbackBufferDataSize = maxTransformFeedbackBufferDataSize + maxTransformFeedbackBufferDataStride = maxTransformFeedbackBufferDataStride + transformFeedbackQueries = transformFeedbackQueries + transformFeedbackStreamsLinesTriangles = transformFeedbackStreamsLinesTriangles + transformFeedbackRasterizationStreamSelect = transformFeedbackRasterizationStreamSelect + transformFeedbackDraw = transformFeedbackDraw + } - type VkPhysicalDeviceImageFormatInfo2KHR = VkPhysicalDeviceImageFormatInfo2 + new(maxTransformFeedbackStreams : uint32, maxTransformFeedbackBuffers : uint32, maxTransformFeedbackBufferSize : VkDeviceSize, maxTransformFeedbackStreamDataSize : uint32, maxTransformFeedbackBufferDataSize : uint32, maxTransformFeedbackBufferDataStride : uint32, transformFeedbackQueries : VkBool32, transformFeedbackStreamsLinesTriangles : VkBool32, transformFeedbackRasterizationStreamSelect : VkBool32, transformFeedbackDraw : VkBool32) = + VkPhysicalDeviceTransformFeedbackPropertiesEXT(Unchecked.defaultof, maxTransformFeedbackStreams, maxTransformFeedbackBuffers, maxTransformFeedbackBufferSize, maxTransformFeedbackStreamDataSize, maxTransformFeedbackBufferDataSize, maxTransformFeedbackBufferDataStride, transformFeedbackQueries, transformFeedbackStreamsLinesTriangles, transformFeedbackRasterizationStreamSelect, transformFeedbackDraw) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.maxTransformFeedbackStreams = Unchecked.defaultof && x.maxTransformFeedbackBuffers = Unchecked.defaultof && x.maxTransformFeedbackBufferSize = Unchecked.defaultof && x.maxTransformFeedbackStreamDataSize = Unchecked.defaultof && x.maxTransformFeedbackBufferDataSize = Unchecked.defaultof && x.maxTransformFeedbackBufferDataStride = Unchecked.defaultof && x.transformFeedbackQueries = Unchecked.defaultof && x.transformFeedbackStreamsLinesTriangles = Unchecked.defaultof && x.transformFeedbackRasterizationStreamSelect = Unchecked.defaultof && x.transformFeedbackDraw = Unchecked.defaultof - type VkPhysicalDeviceMemoryProperties2KHR = VkPhysicalDeviceMemoryProperties2 + static member Empty = + VkPhysicalDeviceTransformFeedbackPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "maxTransformFeedbackStreams = %A" x.maxTransformFeedbackStreams + sprintf "maxTransformFeedbackBuffers = %A" x.maxTransformFeedbackBuffers + sprintf "maxTransformFeedbackBufferSize = %A" x.maxTransformFeedbackBufferSize + sprintf "maxTransformFeedbackStreamDataSize = %A" x.maxTransformFeedbackStreamDataSize + sprintf "maxTransformFeedbackBufferDataSize = %A" x.maxTransformFeedbackBufferDataSize + sprintf "maxTransformFeedbackBufferDataStride = %A" x.maxTransformFeedbackBufferDataStride + sprintf "transformFeedbackQueries = %A" x.transformFeedbackQueries + sprintf "transformFeedbackStreamsLinesTriangles = %A" x.transformFeedbackStreamsLinesTriangles + sprintf "transformFeedbackRasterizationStreamSelect = %A" x.transformFeedbackRasterizationStreamSelect + sprintf "transformFeedbackDraw = %A" x.transformFeedbackDraw + ] |> sprintf "VkPhysicalDeviceTransformFeedbackPropertiesEXT { %s }" + end - type VkPhysicalDeviceProperties2KHR = VkPhysicalDeviceProperties2 + [] + type VkPipelineRasterizationStateStreamCreateInfoEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public flags : VkPipelineRasterizationStateStreamCreateFlagsEXT + val mutable public rasterizationStream : uint32 - type VkPhysicalDeviceSparseImageFormatInfo2KHR = VkPhysicalDeviceSparseImageFormatInfo2 + new(pNext : nativeint, flags : VkPipelineRasterizationStateStreamCreateFlagsEXT, rasterizationStream : uint32) = + { + sType = 1000028002u + pNext = pNext + flags = flags + rasterizationStream = rasterizationStream + } - type VkQueueFamilyProperties2KHR = VkQueueFamilyProperties2 + new(flags : VkPipelineRasterizationStateStreamCreateFlagsEXT, rasterizationStream : uint32) = + VkPipelineRasterizationStateStreamCreateInfoEXT(Unchecked.defaultof, flags, rasterizationStream) - type VkSparseImageFormatProperties2KHR = VkSparseImageFormatProperties2 + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.rasterizationStream = Unchecked.defaultof + static member Empty = + VkPipelineRasterizationStateStreamCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "flags = %A" x.flags + sprintf "rasterizationStream = %A" x.rasterizationStream + ] |> sprintf "VkPipelineRasterizationStateStreamCreateInfoEXT { %s }" + end + + + [] + module EnumExtensions = + type VkAccessFlags with + static member inline TransformFeedbackWriteBitExt = unbox 0x02000000 + static member inline TransformFeedbackCounterReadBitExt = unbox 0x04000000 + static member inline TransformFeedbackCounterWriteBitExt = unbox 0x08000000 + type VkBufferUsageFlags with + static member inline TransformFeedbackBufferBitExt = unbox 0x00000800 + static member inline TransformFeedbackCounterBufferBitExt = unbox 0x00001000 + type VkPipelineStageFlags with + static member inline TransformFeedbackBitExt = unbox 0x01000000 + type VkQueryType with + static member inline TransformFeedbackStreamExt = unbox 1000028004 module VkRaw = [] - type VkGetPhysicalDeviceFeatures2KHRDel = delegate of VkPhysicalDevice * nativeptr -> unit + type VkCmdBindTransformFeedbackBuffersEXTDel = delegate of VkCommandBuffer * uint32 * uint32 * nativeptr * nativeptr * nativeptr -> unit + [] + type VkCmdBeginTransformFeedbackEXTDel = delegate of VkCommandBuffer * uint32 * uint32 * nativeptr * nativeptr -> unit [] - type VkGetPhysicalDeviceProperties2KHRDel = delegate of VkPhysicalDevice * nativeptr -> unit + type VkCmdEndTransformFeedbackEXTDel = delegate of VkCommandBuffer * uint32 * uint32 * nativeptr * nativeptr -> unit + [] + type VkCmdBeginQueryIndexedEXTDel = delegate of VkCommandBuffer * VkQueryPool * uint32 * VkQueryControlFlags * uint32 -> unit + [] + type VkCmdEndQueryIndexedEXTDel = delegate of VkCommandBuffer * VkQueryPool * uint32 * uint32 -> unit + [] + type VkCmdDrawIndirectByteCountEXTDel = delegate of VkCommandBuffer * uint32 * uint32 * VkBuffer * VkDeviceSize * uint32 * uint32 -> unit + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTTransformFeedback") + static let s_vkCmdBindTransformFeedbackBuffersEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdBindTransformFeedbackBuffersEXT" + static let s_vkCmdBeginTransformFeedbackEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdBeginTransformFeedbackEXT" + static let s_vkCmdEndTransformFeedbackEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdEndTransformFeedbackEXT" + static let s_vkCmdBeginQueryIndexedEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdBeginQueryIndexedEXT" + static let s_vkCmdEndQueryIndexedEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdEndQueryIndexedEXT" + static let s_vkCmdDrawIndirectByteCountEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdDrawIndirectByteCountEXT" + static do Report.End(3) |> ignore + static member vkCmdBindTransformFeedbackBuffersEXT = s_vkCmdBindTransformFeedbackBuffersEXTDel + static member vkCmdBeginTransformFeedbackEXT = s_vkCmdBeginTransformFeedbackEXTDel + static member vkCmdEndTransformFeedbackEXT = s_vkCmdEndTransformFeedbackEXTDel + static member vkCmdBeginQueryIndexedEXT = s_vkCmdBeginQueryIndexedEXTDel + static member vkCmdEndQueryIndexedEXT = s_vkCmdEndQueryIndexedEXTDel + static member vkCmdDrawIndirectByteCountEXT = s_vkCmdDrawIndirectByteCountEXTDel + let vkCmdBindTransformFeedbackBuffersEXT(commandBuffer : VkCommandBuffer, firstBinding : uint32, bindingCount : uint32, pBuffers : nativeptr, pOffsets : nativeptr, pSizes : nativeptr) = Loader.vkCmdBindTransformFeedbackBuffersEXT.Invoke(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) + let vkCmdBeginTransformFeedbackEXT(commandBuffer : VkCommandBuffer, firstCounterBuffer : uint32, counterBufferCount : uint32, pCounterBuffers : nativeptr, pCounterBufferOffsets : nativeptr) = Loader.vkCmdBeginTransformFeedbackEXT.Invoke(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) + let vkCmdEndTransformFeedbackEXT(commandBuffer : VkCommandBuffer, firstCounterBuffer : uint32, counterBufferCount : uint32, pCounterBuffers : nativeptr, pCounterBufferOffsets : nativeptr) = Loader.vkCmdEndTransformFeedbackEXT.Invoke(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) + let vkCmdBeginQueryIndexedEXT(commandBuffer : VkCommandBuffer, queryPool : VkQueryPool, query : uint32, flags : VkQueryControlFlags, index : uint32) = Loader.vkCmdBeginQueryIndexedEXT.Invoke(commandBuffer, queryPool, query, flags, index) + let vkCmdEndQueryIndexedEXT(commandBuffer : VkCommandBuffer, queryPool : VkQueryPool, query : uint32, index : uint32) = Loader.vkCmdEndQueryIndexedEXT.Invoke(commandBuffer, queryPool, query, index) + let vkCmdDrawIndirectByteCountEXT(commandBuffer : VkCommandBuffer, instanceCount : uint32, firstInstance : uint32, counterBuffer : VkBuffer, counterBufferOffset : VkDeviceSize, counterOffset : uint32, vertexStride : uint32) = Loader.vkCmdDrawIndirectByteCountEXT.Invoke(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module EXTConditionalRendering = + let Type = ExtensionType.Device + let Name = "VK_EXT_conditional_rendering" + let Number = 82 + + [] + type VkConditionalRenderingFlagsEXT = + | All = 1 + | None = 0 + | InvertedBit = 0x00000001 + + + [] + type VkCommandBufferInheritanceConditionalRenderingInfoEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public conditionalRenderingEnable : VkBool32 + + new(pNext : nativeint, conditionalRenderingEnable : VkBool32) = + { + sType = 1000081000u + pNext = pNext + conditionalRenderingEnable = conditionalRenderingEnable + } + + new(conditionalRenderingEnable : VkBool32) = + VkCommandBufferInheritanceConditionalRenderingInfoEXT(Unchecked.defaultof, conditionalRenderingEnable) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.conditionalRenderingEnable = Unchecked.defaultof + + static member Empty = + VkCommandBufferInheritanceConditionalRenderingInfoEXT(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "conditionalRenderingEnable = %A" x.conditionalRenderingEnable + ] |> sprintf "VkCommandBufferInheritanceConditionalRenderingInfoEXT { %s }" + end + + [] + type VkConditionalRenderingBeginInfoEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public buffer : VkBuffer + val mutable public offset : VkDeviceSize + val mutable public flags : VkConditionalRenderingFlagsEXT + + new(pNext : nativeint, buffer : VkBuffer, offset : VkDeviceSize, flags : VkConditionalRenderingFlagsEXT) = + { + sType = 1000081002u + pNext = pNext + buffer = buffer + offset = offset + flags = flags + } + + new(buffer : VkBuffer, offset : VkDeviceSize, flags : VkConditionalRenderingFlagsEXT) = + VkConditionalRenderingBeginInfoEXT(Unchecked.defaultof, buffer, offset, flags) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.buffer = Unchecked.defaultof && x.offset = Unchecked.defaultof && x.flags = Unchecked.defaultof + + static member Empty = + VkConditionalRenderingBeginInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "buffer = %A" x.buffer + sprintf "offset = %A" x.offset + sprintf "flags = %A" x.flags + ] |> sprintf "VkConditionalRenderingBeginInfoEXT { %s }" + end + + [] + type VkPhysicalDeviceConditionalRenderingFeaturesEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public conditionalRendering : VkBool32 + val mutable public inheritedConditionalRendering : VkBool32 + + new(pNext : nativeint, conditionalRendering : VkBool32, inheritedConditionalRendering : VkBool32) = + { + sType = 1000081001u + pNext = pNext + conditionalRendering = conditionalRendering + inheritedConditionalRendering = inheritedConditionalRendering + } + + new(conditionalRendering : VkBool32, inheritedConditionalRendering : VkBool32) = + VkPhysicalDeviceConditionalRenderingFeaturesEXT(Unchecked.defaultof, conditionalRendering, inheritedConditionalRendering) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.conditionalRendering = Unchecked.defaultof && x.inheritedConditionalRendering = Unchecked.defaultof + + static member Empty = + VkPhysicalDeviceConditionalRenderingFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "conditionalRendering = %A" x.conditionalRendering + sprintf "inheritedConditionalRendering = %A" x.inheritedConditionalRendering + ] |> sprintf "VkPhysicalDeviceConditionalRenderingFeaturesEXT { %s }" + end + + + [] + module EnumExtensions = + type VkAccessFlags with + /// read access flag for reading conditional rendering predicate + static member inline ConditionalRenderingReadBitExt = unbox 0x00100000 + type VkBufferUsageFlags with + /// Specifies the buffer can be used as predicate in conditional rendering + static member inline ConditionalRenderingBitExt = unbox 0x00000200 + type VkPipelineStageFlags with + /// A pipeline stage for conditional rendering predicate fetch + static member inline ConditionalRenderingBitExt = unbox 0x00040000 + + module VkRaw = [] - type VkGetPhysicalDeviceFormatProperties2KHRDel = delegate of VkPhysicalDevice * VkFormat * nativeptr -> unit + type VkCmdBeginConditionalRenderingEXTDel = delegate of VkCommandBuffer * nativeptr -> unit [] - type VkGetPhysicalDeviceImageFormatProperties2KHRDel = delegate of VkPhysicalDevice * nativeptr * nativeptr -> VkResult + type VkCmdEndConditionalRenderingEXTDel = delegate of VkCommandBuffer -> unit + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTConditionalRendering") + static let s_vkCmdBeginConditionalRenderingEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdBeginConditionalRenderingEXT" + static let s_vkCmdEndConditionalRenderingEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdEndConditionalRenderingEXT" + static do Report.End(3) |> ignore + static member vkCmdBeginConditionalRenderingEXT = s_vkCmdBeginConditionalRenderingEXTDel + static member vkCmdEndConditionalRenderingEXT = s_vkCmdEndConditionalRenderingEXTDel + let vkCmdBeginConditionalRenderingEXT(commandBuffer : VkCommandBuffer, pConditionalRenderingBegin : nativeptr) = Loader.vkCmdBeginConditionalRenderingEXT.Invoke(commandBuffer, pConditionalRenderingBegin) + let vkCmdEndConditionalRenderingEXT(commandBuffer : VkCommandBuffer) = Loader.vkCmdEndConditionalRenderingEXT.Invoke(commandBuffer) + +/// Promoted to Vulkan11. +module KHRDeviceGroupCreation = + let Type = ExtensionType.Instance + let Name = "VK_KHR_device_group_creation" + let Number = 71 + + type VkDeviceGroupDeviceCreateInfoKHR = Vulkan11.VkDeviceGroupDeviceCreateInfo + + type VkPhysicalDeviceGroupPropertiesKHR = Vulkan11.VkPhysicalDeviceGroupProperties + + + [] + module EnumExtensions = + type VkMemoryHeapFlags with + static member inline MultiInstanceBitKhr = unbox 0x00000002 + + module VkRaw = [] - type VkGetPhysicalDeviceQueueFamilyProperties2KHRDel = delegate of VkPhysicalDevice * nativeptr * nativeptr -> unit + type VkEnumeratePhysicalDeviceGroupsKHRDel = delegate of VkInstance * nativeptr * nativeptr -> VkResult + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRDeviceGroupCreation") + static let s_vkEnumeratePhysicalDeviceGroupsKHRDel = VkRaw.vkImportInstanceDelegate "vkEnumeratePhysicalDeviceGroupsKHR" + static do Report.End(3) |> ignore + static member vkEnumeratePhysicalDeviceGroupsKHR = s_vkEnumeratePhysicalDeviceGroupsKHRDel + let vkEnumeratePhysicalDeviceGroupsKHR(instance : VkInstance, pPhysicalDeviceGroupCount : nativeptr, pPhysicalDeviceGroupProperties : nativeptr) = Loader.vkEnumeratePhysicalDeviceGroupsKHR.Invoke(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) + +/// Promoted to Vulkan11. +module KHRBindMemory2 = + let Type = ExtensionType.Device + let Name = "VK_KHR_bind_memory2" + let Number = 158 + + type VkBindBufferMemoryInfoKHR = Vulkan11.VkBindBufferMemoryInfo + + type VkBindImageMemoryInfoKHR = Vulkan11.VkBindImageMemoryInfo + + + [] + module EnumExtensions = + type VkImageCreateFlags with + static member inline AliasBitKhr = unbox 0x00000400 + + module VkRaw = [] - type VkGetPhysicalDeviceMemoryProperties2KHRDel = delegate of VkPhysicalDevice * nativeptr -> unit + type VkBindBufferMemory2KHRDel = delegate of VkDevice * uint32 * nativeptr -> VkResult [] - type VkGetPhysicalDeviceSparseImageFormatProperties2KHRDel = delegate of VkPhysicalDevice * nativeptr * nativeptr * nativeptr -> unit + type VkBindImageMemory2KHRDel = delegate of VkDevice * uint32 * nativeptr -> VkResult [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRGetPhysicalDeviceProperties2") - static let s_vkGetPhysicalDeviceFeatures2KHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceFeatures2KHR" - static let s_vkGetPhysicalDeviceProperties2KHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceProperties2KHR" - static let s_vkGetPhysicalDeviceFormatProperties2KHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceFormatProperties2KHR" - static let s_vkGetPhysicalDeviceImageFormatProperties2KHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceImageFormatProperties2KHR" - static let s_vkGetPhysicalDeviceQueueFamilyProperties2KHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceQueueFamilyProperties2KHR" - static let s_vkGetPhysicalDeviceMemoryProperties2KHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceMemoryProperties2KHR" - static let s_vkGetPhysicalDeviceSparseImageFormatProperties2KHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceSparseImageFormatProperties2KHR" + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRBindMemory2") + static let s_vkBindBufferMemory2KHRDel = VkRaw.vkImportInstanceDelegate "vkBindBufferMemory2KHR" + static let s_vkBindImageMemory2KHRDel = VkRaw.vkImportInstanceDelegate "vkBindImageMemory2KHR" static do Report.End(3) |> ignore - static member vkGetPhysicalDeviceFeatures2KHR = s_vkGetPhysicalDeviceFeatures2KHRDel - static member vkGetPhysicalDeviceProperties2KHR = s_vkGetPhysicalDeviceProperties2KHRDel - static member vkGetPhysicalDeviceFormatProperties2KHR = s_vkGetPhysicalDeviceFormatProperties2KHRDel - static member vkGetPhysicalDeviceImageFormatProperties2KHR = s_vkGetPhysicalDeviceImageFormatProperties2KHRDel - static member vkGetPhysicalDeviceQueueFamilyProperties2KHR = s_vkGetPhysicalDeviceQueueFamilyProperties2KHRDel - static member vkGetPhysicalDeviceMemoryProperties2KHR = s_vkGetPhysicalDeviceMemoryProperties2KHRDel - static member vkGetPhysicalDeviceSparseImageFormatProperties2KHR = s_vkGetPhysicalDeviceSparseImageFormatProperties2KHRDel - let vkGetPhysicalDeviceFeatures2KHR(physicalDevice : VkPhysicalDevice, pFeatures : nativeptr) = Loader.vkGetPhysicalDeviceFeatures2KHR.Invoke(physicalDevice, pFeatures) - let vkGetPhysicalDeviceProperties2KHR(physicalDevice : VkPhysicalDevice, pProperties : nativeptr) = Loader.vkGetPhysicalDeviceProperties2KHR.Invoke(physicalDevice, pProperties) - let vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice : VkPhysicalDevice, format : VkFormat, pFormatProperties : nativeptr) = Loader.vkGetPhysicalDeviceFormatProperties2KHR.Invoke(physicalDevice, format, pFormatProperties) - let vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice : VkPhysicalDevice, pImageFormatInfo : nativeptr, pImageFormatProperties : nativeptr) = Loader.vkGetPhysicalDeviceImageFormatProperties2KHR.Invoke(physicalDevice, pImageFormatInfo, pImageFormatProperties) - let vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice : VkPhysicalDevice, pQueueFamilyPropertyCount : nativeptr, pQueueFamilyProperties : nativeptr) = Loader.vkGetPhysicalDeviceQueueFamilyProperties2KHR.Invoke(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) - let vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice : VkPhysicalDevice, pMemoryProperties : nativeptr) = Loader.vkGetPhysicalDeviceMemoryProperties2KHR.Invoke(physicalDevice, pMemoryProperties) - let vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice : VkPhysicalDevice, pFormatInfo : nativeptr, pPropertyCount : nativeptr, pProperties : nativeptr) = Loader.vkGetPhysicalDeviceSparseImageFormatProperties2KHR.Invoke(physicalDevice, pFormatInfo, pPropertyCount, pProperties) + static member vkBindBufferMemory2KHR = s_vkBindBufferMemory2KHRDel + static member vkBindImageMemory2KHR = s_vkBindImageMemory2KHRDel + let vkBindBufferMemory2KHR(device : VkDevice, bindInfoCount : uint32, pBindInfos : nativeptr) = Loader.vkBindBufferMemory2KHR.Invoke(device, bindInfoCount, pBindInfos) + let vkBindImageMemory2KHR(device : VkDevice, bindInfoCount : uint32, pBindInfos : nativeptr) = Loader.vkBindImageMemory2KHR.Invoke(device, bindInfoCount, pBindInfos) module KHRSurface = - open Vulkan11 - open Vulkan12 - open Vulkan13 + let Type = ExtensionType.Instance let Name = "VK_KHR_surface" let Number = 1 - [] type VkSurfaceKHR = struct @@ -14663,7 +15113,7 @@ module KHRSurface = type VkGetPhysicalDeviceSurfacePresentModesKHRDel = delegate of VkPhysicalDevice * VkSurfaceKHR * nativeptr * nativeptr -> VkResult [] - type private Loader<'d> private() = + type private Loader<'T> private() = static do Report.Begin(3, "[Vulkan] loading KHRSurface") static let s_vkDestroySurfaceKHRDel = VkRaw.vkImportInstanceDelegate "vkDestroySurfaceKHR" static let s_vkGetPhysicalDeviceSurfaceSupportKHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceSurfaceSupportKHR" @@ -14682,139 +15132,12 @@ module KHRSurface = let vkGetPhysicalDeviceSurfaceFormatsKHR(physicalDevice : VkPhysicalDevice, surface : VkSurfaceKHR, pSurfaceFormatCount : nativeptr, pSurfaceFormats : nativeptr) = Loader.vkGetPhysicalDeviceSurfaceFormatsKHR.Invoke(physicalDevice, surface, pSurfaceFormatCount, pSurfaceFormats) let vkGetPhysicalDeviceSurfacePresentModesKHR(physicalDevice : VkPhysicalDevice, surface : VkSurfaceKHR, pPresentModeCount : nativeptr, pPresentModes : nativeptr) = Loader.vkGetPhysicalDeviceSurfacePresentModesKHR.Invoke(physicalDevice, surface, pPresentModeCount, pPresentModes) -module KHRGetSurfaceCapabilities2 = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRSurface - let Name = "VK_KHR_get_surface_capabilities2" - let Number = 120 - - let Required = [ KHRSurface.Name ] - - - [] - type VkPhysicalDeviceSurfaceInfo2KHR = - struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public surface : VkSurfaceKHR - - new(pNext : nativeint, surface : VkSurfaceKHR) = - { - sType = 1000119000u - pNext = pNext - surface = surface - } - - new(surface : VkSurfaceKHR) = - VkPhysicalDeviceSurfaceInfo2KHR(Unchecked.defaultof, surface) - - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.surface = Unchecked.defaultof - - static member Empty = - VkPhysicalDeviceSurfaceInfo2KHR(Unchecked.defaultof, Unchecked.defaultof) - - override x.ToString() = - String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "surface = %A" x.surface - ] |> sprintf "VkPhysicalDeviceSurfaceInfo2KHR { %s }" - end - - [] - type VkSurfaceCapabilities2KHR = - struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public surfaceCapabilities : VkSurfaceCapabilitiesKHR - - new(pNext : nativeint, surfaceCapabilities : VkSurfaceCapabilitiesKHR) = - { - sType = 1000119001u - pNext = pNext - surfaceCapabilities = surfaceCapabilities - } - - new(surfaceCapabilities : VkSurfaceCapabilitiesKHR) = - VkSurfaceCapabilities2KHR(Unchecked.defaultof, surfaceCapabilities) - - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.surfaceCapabilities = Unchecked.defaultof - - static member Empty = - VkSurfaceCapabilities2KHR(Unchecked.defaultof, Unchecked.defaultof) - - override x.ToString() = - String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "surfaceCapabilities = %A" x.surfaceCapabilities - ] |> sprintf "VkSurfaceCapabilities2KHR { %s }" - end - - [] - type VkSurfaceFormat2KHR = - struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public surfaceFormat : VkSurfaceFormatKHR - - new(pNext : nativeint, surfaceFormat : VkSurfaceFormatKHR) = - { - sType = 1000119002u - pNext = pNext - surfaceFormat = surfaceFormat - } - - new(surfaceFormat : VkSurfaceFormatKHR) = - VkSurfaceFormat2KHR(Unchecked.defaultof, surfaceFormat) - - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.surfaceFormat = Unchecked.defaultof - - static member Empty = - VkSurfaceFormat2KHR(Unchecked.defaultof, Unchecked.defaultof) - - override x.ToString() = - String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "surfaceFormat = %A" x.surfaceFormat - ] |> sprintf "VkSurfaceFormat2KHR { %s }" - end - - - module VkRaw = - [] - type VkGetPhysicalDeviceSurfaceCapabilities2KHRDel = delegate of VkPhysicalDevice * nativeptr * nativeptr -> VkResult - [] - type VkGetPhysicalDeviceSurfaceFormats2KHRDel = delegate of VkPhysicalDevice * nativeptr * nativeptr * nativeptr -> VkResult - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRGetSurfaceCapabilities2") - static let s_vkGetPhysicalDeviceSurfaceCapabilities2KHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceSurfaceCapabilities2KHR" - static let s_vkGetPhysicalDeviceSurfaceFormats2KHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceSurfaceFormats2KHR" - static do Report.End(3) |> ignore - static member vkGetPhysicalDeviceSurfaceCapabilities2KHR = s_vkGetPhysicalDeviceSurfaceCapabilities2KHRDel - static member vkGetPhysicalDeviceSurfaceFormats2KHR = s_vkGetPhysicalDeviceSurfaceFormats2KHRDel - let vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice : VkPhysicalDevice, pSurfaceInfo : nativeptr, pSurfaceCapabilities : nativeptr) = Loader.vkGetPhysicalDeviceSurfaceCapabilities2KHR.Invoke(physicalDevice, pSurfaceInfo, pSurfaceCapabilities) - let vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice : VkPhysicalDevice, pSurfaceInfo : nativeptr, pSurfaceFormatCount : nativeptr, pSurfaceFormats : nativeptr) = Loader.vkGetPhysicalDeviceSurfaceFormats2KHR.Invoke(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) - +/// Requires KHRSurface. module KHRSwapchain = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRSurface + let Type = ExtensionType.Device let Name = "VK_KHR_swapchain" let Number = 2 - let Required = [ KHRSurface.Name ] - - [] type VkSwapchainKHR = @@ -14884,23 +15207,23 @@ module KHRSwapchain = val mutable public sType : uint32 val mutable public pNext : nativeint val mutable public flags : VkSwapchainCreateFlagsKHR - val mutable public surface : VkSurfaceKHR + val mutable public surface : KHRSurface.VkSurfaceKHR val mutable public minImageCount : uint32 val mutable public imageFormat : VkFormat - val mutable public imageColorSpace : VkColorSpaceKHR + val mutable public imageColorSpace : KHRSurface.VkColorSpaceKHR val mutable public imageExtent : VkExtent2D val mutable public imageArrayLayers : uint32 val mutable public imageUsage : VkImageUsageFlags val mutable public imageSharingMode : VkSharingMode val mutable public queueFamilyIndexCount : uint32 val mutable public pQueueFamilyIndices : nativeptr - val mutable public preTransform : VkSurfaceTransformFlagsKHR - val mutable public compositeAlpha : VkCompositeAlphaFlagsKHR - val mutable public presentMode : VkPresentModeKHR + val mutable public preTransform : KHRSurface.VkSurfaceTransformFlagsKHR + val mutable public compositeAlpha : KHRSurface.VkCompositeAlphaFlagsKHR + val mutable public presentMode : KHRSurface.VkPresentModeKHR val mutable public clipped : VkBool32 val mutable public oldSwapchain : VkSwapchainKHR - new(pNext : nativeint, flags : VkSwapchainCreateFlagsKHR, surface : VkSurfaceKHR, minImageCount : uint32, imageFormat : VkFormat, imageColorSpace : VkColorSpaceKHR, imageExtent : VkExtent2D, imageArrayLayers : uint32, imageUsage : VkImageUsageFlags, imageSharingMode : VkSharingMode, queueFamilyIndexCount : uint32, pQueueFamilyIndices : nativeptr, preTransform : VkSurfaceTransformFlagsKHR, compositeAlpha : VkCompositeAlphaFlagsKHR, presentMode : VkPresentModeKHR, clipped : VkBool32, oldSwapchain : VkSwapchainKHR) = + new(pNext : nativeint, flags : VkSwapchainCreateFlagsKHR, surface : KHRSurface.VkSurfaceKHR, minImageCount : uint32, imageFormat : VkFormat, imageColorSpace : KHRSurface.VkColorSpaceKHR, imageExtent : VkExtent2D, imageArrayLayers : uint32, imageUsage : VkImageUsageFlags, imageSharingMode : VkSharingMode, queueFamilyIndexCount : uint32, pQueueFamilyIndices : nativeptr, preTransform : KHRSurface.VkSurfaceTransformFlagsKHR, compositeAlpha : KHRSurface.VkCompositeAlphaFlagsKHR, presentMode : KHRSurface.VkPresentModeKHR, clipped : VkBool32, oldSwapchain : VkSwapchainKHR) = { sType = 1000001000u pNext = pNext @@ -14922,14 +15245,14 @@ module KHRSwapchain = oldSwapchain = oldSwapchain } - new(flags : VkSwapchainCreateFlagsKHR, surface : VkSurfaceKHR, minImageCount : uint32, imageFormat : VkFormat, imageColorSpace : VkColorSpaceKHR, imageExtent : VkExtent2D, imageArrayLayers : uint32, imageUsage : VkImageUsageFlags, imageSharingMode : VkSharingMode, queueFamilyIndexCount : uint32, pQueueFamilyIndices : nativeptr, preTransform : VkSurfaceTransformFlagsKHR, compositeAlpha : VkCompositeAlphaFlagsKHR, presentMode : VkPresentModeKHR, clipped : VkBool32, oldSwapchain : VkSwapchainKHR) = + new(flags : VkSwapchainCreateFlagsKHR, surface : KHRSurface.VkSurfaceKHR, minImageCount : uint32, imageFormat : VkFormat, imageColorSpace : KHRSurface.VkColorSpaceKHR, imageExtent : VkExtent2D, imageArrayLayers : uint32, imageUsage : VkImageUsageFlags, imageSharingMode : VkSharingMode, queueFamilyIndexCount : uint32, pQueueFamilyIndices : nativeptr, preTransform : KHRSurface.VkSurfaceTransformFlagsKHR, compositeAlpha : KHRSurface.VkCompositeAlphaFlagsKHR, presentMode : KHRSurface.VkPresentModeKHR, clipped : VkBool32, oldSwapchain : VkSwapchainKHR) = VkSwapchainCreateInfoKHR(Unchecked.defaultof, flags, surface, minImageCount, imageFormat, imageColorSpace, imageExtent, imageArrayLayers, imageUsage, imageSharingMode, queueFamilyIndexCount, pQueueFamilyIndices, preTransform, compositeAlpha, presentMode, clipped, oldSwapchain) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.surface = Unchecked.defaultof && x.minImageCount = Unchecked.defaultof && x.imageFormat = Unchecked.defaultof && x.imageColorSpace = Unchecked.defaultof && x.imageExtent = Unchecked.defaultof && x.imageArrayLayers = Unchecked.defaultof && x.imageUsage = Unchecked.defaultof && x.imageSharingMode = Unchecked.defaultof && x.queueFamilyIndexCount = Unchecked.defaultof && x.pQueueFamilyIndices = Unchecked.defaultof> && x.preTransform = Unchecked.defaultof && x.compositeAlpha = Unchecked.defaultof && x.presentMode = Unchecked.defaultof && x.clipped = Unchecked.defaultof && x.oldSwapchain = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.surface = Unchecked.defaultof && x.minImageCount = Unchecked.defaultof && x.imageFormat = Unchecked.defaultof && x.imageColorSpace = Unchecked.defaultof && x.imageExtent = Unchecked.defaultof && x.imageArrayLayers = Unchecked.defaultof && x.imageUsage = Unchecked.defaultof && x.imageSharingMode = Unchecked.defaultof && x.queueFamilyIndexCount = Unchecked.defaultof && x.pQueueFamilyIndices = Unchecked.defaultof> && x.preTransform = Unchecked.defaultof && x.compositeAlpha = Unchecked.defaultof && x.presentMode = Unchecked.defaultof && x.clipped = Unchecked.defaultof && x.oldSwapchain = Unchecked.defaultof static member Empty = - VkSwapchainCreateInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkSwapchainCreateInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ @@ -14978,7 +15301,7 @@ module KHRSwapchain = type VkQueuePresentKHRDel = delegate of VkQueue * nativeptr -> VkResult [] - type private Loader<'d> private() = + type private Loader<'T> private() = static do Report.Begin(3, "[Vulkan] loading KHRSwapchain") static let s_vkCreateSwapchainKHRDel = VkRaw.vkImportInstanceDelegate "vkCreateSwapchainKHR" static let s_vkDestroySwapchainKHRDel = VkRaw.vkImportInstanceDelegate "vkDestroySwapchainKHR" @@ -14997,7 +15320,8 @@ module KHRSwapchain = let vkAcquireNextImageKHR(device : VkDevice, swapchain : VkSwapchainKHR, timeout : uint64, semaphore : VkSemaphore, fence : VkFence, pImageIndex : nativeptr) = Loader.vkAcquireNextImageKHR.Invoke(device, swapchain, timeout, semaphore, fence, pImageIndex) let vkQueuePresentKHR(queue : VkQueue, pPresentInfo : nativeptr) = Loader.vkQueuePresentKHR.Invoke(queue, pPresentInfo) - module Vulkan11 = + [] + module ``Vulkan11`` = [] type VkDeviceGroupPresentModeFlagsKHR = | All = 15 @@ -15235,15 +15559,15 @@ module KHRSwapchain = [] type VkGetDeviceGroupPresentCapabilitiesKHRDel = delegate of VkDevice * nativeptr -> VkResult [] - type VkGetDeviceGroupSurfacePresentModesKHRDel = delegate of VkDevice * VkSurfaceKHR * nativeptr -> VkResult + type VkGetDeviceGroupSurfacePresentModesKHRDel = delegate of VkDevice * KHRSurface.VkSurfaceKHR * nativeptr -> VkResult [] - type VkGetPhysicalDevicePresentRectanglesKHRDel = delegate of VkPhysicalDevice * VkSurfaceKHR * nativeptr * nativeptr -> VkResult + type VkGetPhysicalDevicePresentRectanglesKHRDel = delegate of VkPhysicalDevice * KHRSurface.VkSurfaceKHR * nativeptr * nativeptr -> VkResult [] type VkAcquireNextImage2KHRDel = delegate of VkDevice * nativeptr * nativeptr -> VkResult [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRSwapchain") + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRSwapchain -> Vulkan11") static let s_vkGetDeviceGroupPresentCapabilitiesKHRDel = VkRaw.vkImportInstanceDelegate "vkGetDeviceGroupPresentCapabilitiesKHR" static let s_vkGetDeviceGroupSurfacePresentModesKHRDel = VkRaw.vkImportInstanceDelegate "vkGetDeviceGroupSurfacePresentModesKHR" static let s_vkGetPhysicalDevicePresentRectanglesKHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDevicePresentRectanglesKHR" @@ -15254,26964 +15578,36992 @@ module KHRSwapchain = static member vkGetPhysicalDevicePresentRectanglesKHR = s_vkGetPhysicalDevicePresentRectanglesKHRDel static member vkAcquireNextImage2KHR = s_vkAcquireNextImage2KHRDel let vkGetDeviceGroupPresentCapabilitiesKHR(device : VkDevice, pDeviceGroupPresentCapabilities : nativeptr) = Loader.vkGetDeviceGroupPresentCapabilitiesKHR.Invoke(device, pDeviceGroupPresentCapabilities) - let vkGetDeviceGroupSurfacePresentModesKHR(device : VkDevice, surface : VkSurfaceKHR, pModes : nativeptr) = Loader.vkGetDeviceGroupSurfacePresentModesKHR.Invoke(device, surface, pModes) - let vkGetPhysicalDevicePresentRectanglesKHR(physicalDevice : VkPhysicalDevice, surface : VkSurfaceKHR, pRectCount : nativeptr, pRects : nativeptr) = Loader.vkGetPhysicalDevicePresentRectanglesKHR.Invoke(physicalDevice, surface, pRectCount, pRects) + let vkGetDeviceGroupSurfacePresentModesKHR(device : VkDevice, surface : KHRSurface.VkSurfaceKHR, pModes : nativeptr) = Loader.vkGetDeviceGroupSurfacePresentModesKHR.Invoke(device, surface, pModes) + let vkGetPhysicalDevicePresentRectanglesKHR(physicalDevice : VkPhysicalDevice, surface : KHRSurface.VkSurfaceKHR, pRectCount : nativeptr, pRects : nativeptr) = Loader.vkGetPhysicalDevicePresentRectanglesKHR.Invoke(physicalDevice, surface, pRectCount, pRects) let vkAcquireNextImage2KHR(device : VkDevice, pAcquireInfo : nativeptr, pImageIndex : nativeptr) = Loader.vkAcquireNextImage2KHR.Invoke(device, pAcquireInfo, pImageIndex) -module AMDDisplayNativeHdr = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - open KHRGetSurfaceCapabilities2 - open KHRSurface - open KHRSwapchain - let Name = "VK_AMD_display_native_hdr" - let Number = 214 - - let Required = [ KHRGetPhysicalDeviceProperties2.Name; KHRGetSurfaceCapabilities2.Name; KHRSwapchain.Name ] - - - [] - type VkDisplayNativeHdrSurfaceCapabilitiesAMD = - struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public localDimmingSupport : VkBool32 - - new(pNext : nativeint, localDimmingSupport : VkBool32) = - { - sType = 1000213000u - pNext = pNext - localDimmingSupport = localDimmingSupport - } - - new(localDimmingSupport : VkBool32) = - VkDisplayNativeHdrSurfaceCapabilitiesAMD(Unchecked.defaultof, localDimmingSupport) - - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.localDimmingSupport = Unchecked.defaultof - - static member Empty = - VkDisplayNativeHdrSurfaceCapabilitiesAMD(Unchecked.defaultof, Unchecked.defaultof) - - override x.ToString() = - String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "localDimmingSupport = %A" x.localDimmingSupport - ] |> sprintf "VkDisplayNativeHdrSurfaceCapabilitiesAMD { %s }" - end +/// Requires KHRDeviceGroupCreation. +/// Promoted to Vulkan11. +module KHRDeviceGroup = + let Type = ExtensionType.Device + let Name = "VK_KHR_device_group" + let Number = 61 - [] - type VkSwapchainDisplayNativeHdrCreateInfoAMD = - struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public localDimmingEnable : VkBool32 + type VkPeerMemoryFeatureFlagsKHR = Vulkan11.VkPeerMemoryFeatureFlags + type VkMemoryAllocateFlagsKHR = Vulkan11.VkMemoryAllocateFlags - new(pNext : nativeint, localDimmingEnable : VkBool32) = - { - sType = 1000213001u - pNext = pNext - localDimmingEnable = localDimmingEnable - } + type VkDeviceGroupBindSparseInfoKHR = Vulkan11.VkDeviceGroupBindSparseInfo - new(localDimmingEnable : VkBool32) = - VkSwapchainDisplayNativeHdrCreateInfoAMD(Unchecked.defaultof, localDimmingEnable) + type VkDeviceGroupCommandBufferBeginInfoKHR = Vulkan11.VkDeviceGroupCommandBufferBeginInfo - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.localDimmingEnable = Unchecked.defaultof + type VkDeviceGroupRenderPassBeginInfoKHR = Vulkan11.VkDeviceGroupRenderPassBeginInfo - static member Empty = - VkSwapchainDisplayNativeHdrCreateInfoAMD(Unchecked.defaultof, Unchecked.defaultof) + type VkDeviceGroupSubmitInfoKHR = Vulkan11.VkDeviceGroupSubmitInfo - override x.ToString() = - String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "localDimmingEnable = %A" x.localDimmingEnable - ] |> sprintf "VkSwapchainDisplayNativeHdrCreateInfoAMD { %s }" - end + type VkMemoryAllocateFlagsInfoKHR = Vulkan11.VkMemoryAllocateFlagsInfo [] module EnumExtensions = - type VkColorSpaceKHR with - static member inline DisplayNativeAmd = unbox 1000213000 + type VkDependencyFlags with + static member inline DeviceGroupBitKhr = unbox 0x00000004 + type Vulkan11.VkMemoryAllocateFlags with + static member inline DeviceMaskBitKhr = unbox 0x00000001 + type Vulkan11.VkPeerMemoryFeatureFlags with + static member inline CopySrcBitKhr = unbox 0x00000001 + static member inline CopyDstBitKhr = unbox 0x00000002 + static member inline GenericSrcBitKhr = unbox 0x00000004 + static member inline GenericDstBitKhr = unbox 0x00000008 + type VkPipelineCreateFlags with + static member inline ViewIndexFromDeviceIndexBitKhr = unbox 0x00000008 + static member inline DispatchBaseKhr = unbox 0x00000010 module VkRaw = [] - type VkSetLocalDimmingAMDDel = delegate of VkDevice * VkSwapchainKHR * VkBool32 -> unit + type VkGetDeviceGroupPeerMemoryFeaturesKHRDel = delegate of VkDevice * uint32 * uint32 * uint32 * nativeptr -> unit + [] + type VkCmdSetDeviceMaskKHRDel = delegate of VkCommandBuffer * uint32 -> unit + [] + type VkCmdDispatchBaseKHRDel = delegate of VkCommandBuffer * uint32 * uint32 * uint32 * uint32 * uint32 * uint32 -> unit [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading AMDDisplayNativeHdr") - static let s_vkSetLocalDimmingAMDDel = VkRaw.vkImportInstanceDelegate "vkSetLocalDimmingAMD" + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRDeviceGroup") + static let s_vkGetDeviceGroupPeerMemoryFeaturesKHRDel = VkRaw.vkImportInstanceDelegate "vkGetDeviceGroupPeerMemoryFeaturesKHR" + static let s_vkCmdSetDeviceMaskKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdSetDeviceMaskKHR" + static let s_vkCmdDispatchBaseKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdDispatchBaseKHR" static do Report.End(3) |> ignore - static member vkSetLocalDimmingAMD = s_vkSetLocalDimmingAMDDel - let vkSetLocalDimmingAMD(device : VkDevice, swapChain : VkSwapchainKHR, localDimmingEnable : VkBool32) = Loader.vkSetLocalDimmingAMD.Invoke(device, swapChain, localDimmingEnable) + static member vkGetDeviceGroupPeerMemoryFeaturesKHR = s_vkGetDeviceGroupPeerMemoryFeaturesKHRDel + static member vkCmdSetDeviceMaskKHR = s_vkCmdSetDeviceMaskKHRDel + static member vkCmdDispatchBaseKHR = s_vkCmdDispatchBaseKHRDel + let vkGetDeviceGroupPeerMemoryFeaturesKHR(device : VkDevice, heapIndex : uint32, localDeviceIndex : uint32, remoteDeviceIndex : uint32, pPeerMemoryFeatures : nativeptr) = Loader.vkGetDeviceGroupPeerMemoryFeaturesKHR.Invoke(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) + let vkCmdSetDeviceMaskKHR(commandBuffer : VkCommandBuffer, deviceMask : uint32) = Loader.vkCmdSetDeviceMaskKHR.Invoke(commandBuffer, deviceMask) + let vkCmdDispatchBaseKHR(commandBuffer : VkCommandBuffer, baseGroupX : uint32, baseGroupY : uint32, baseGroupZ : uint32, groupCountX : uint32, groupCountY : uint32, groupCountZ : uint32) = Loader.vkCmdDispatchBaseKHR.Invoke(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) -module AMDDrawIndirectCount = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_AMD_draw_indirect_count" - let Number = 34 + [] + module ``KHRBindMemory2`` = + type VkBindBufferMemoryDeviceGroupInfoKHR = Vulkan11.VkBindBufferMemoryDeviceGroupInfo + type VkBindImageMemoryDeviceGroupInfoKHR = Vulkan11.VkBindImageMemoryDeviceGroupInfo - module VkRaw = - [] - type VkCmdDrawIndirectCountAMDDel = delegate of VkCommandBuffer * VkBuffer * VkDeviceSize * VkBuffer * VkDeviceSize * uint32 * uint32 -> unit - [] - type VkCmdDrawIndexedIndirectCountAMDDel = delegate of VkCommandBuffer * VkBuffer * VkDeviceSize * VkBuffer * VkDeviceSize * uint32 * uint32 -> unit - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading AMDDrawIndirectCount") - static let s_vkCmdDrawIndirectCountAMDDel = VkRaw.vkImportInstanceDelegate "vkCmdDrawIndirectCountAMD" - static let s_vkCmdDrawIndexedIndirectCountAMDDel = VkRaw.vkImportInstanceDelegate "vkCmdDrawIndexedIndirectCountAMD" - static do Report.End(3) |> ignore - static member vkCmdDrawIndirectCountAMD = s_vkCmdDrawIndirectCountAMDDel - static member vkCmdDrawIndexedIndirectCountAMD = s_vkCmdDrawIndexedIndirectCountAMDDel - let vkCmdDrawIndirectCountAMD(commandBuffer : VkCommandBuffer, buffer : VkBuffer, offset : VkDeviceSize, countBuffer : VkBuffer, countBufferOffset : VkDeviceSize, maxDrawCount : uint32, stride : uint32) = Loader.vkCmdDrawIndirectCountAMD.Invoke(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - let vkCmdDrawIndexedIndirectCountAMD(commandBuffer : VkCommandBuffer, buffer : VkBuffer, offset : VkDeviceSize, countBuffer : VkBuffer, countBufferOffset : VkDeviceSize, maxDrawCount : uint32, stride : uint32) = Loader.vkCmdDrawIndexedIndirectCountAMD.Invoke(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + [] + module EnumExtensions = + type VkImageCreateFlags with + static member inline SplitInstanceBindRegionsBitKhr = unbox 0x00000040 -module AMDGcnShader = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_AMD_gcn_shader" - let Number = 26 + [] + module ``KHRSurface`` = + type VkDeviceGroupPresentModeFlagsKHR = KHRSwapchain.``Vulkan11``.VkDeviceGroupPresentModeFlagsKHR -module AMDGpuShaderHalfFloat = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_AMD_gpu_shader_half_float" - let Number = 37 + type VkDeviceGroupPresentCapabilitiesKHR = KHRSwapchain.``Vulkan11``.VkDeviceGroupPresentCapabilitiesKHR -module AMDGpuShaderInt16 = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_AMD_gpu_shader_int16" - let Number = 133 + module VkRaw = + let vkGetDeviceGroupPresentCapabilitiesKHR = KHRSwapchain.``Vulkan11``.VkRaw.vkGetDeviceGroupPresentCapabilitiesKHR + let vkGetDeviceGroupSurfacePresentModesKHR = KHRSwapchain.``Vulkan11``.VkRaw.vkGetDeviceGroupSurfacePresentModesKHR + let vkGetPhysicalDevicePresentRectanglesKHR = KHRSwapchain.``Vulkan11``.VkRaw.vkGetPhysicalDevicePresentRectanglesKHR + [] + module ``KHRSwapchain`` = + type VkAcquireNextImageInfoKHR = KHRSwapchain.``Vulkan11``.VkAcquireNextImageInfoKHR -module AMDMemoryOverallocationBehavior = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_AMD_memory_overallocation_behavior" - let Number = 190 + type VkBindImageMemorySwapchainInfoKHR = KHRSwapchain.``Vulkan11``.VkBindImageMemorySwapchainInfoKHR + type VkDeviceGroupPresentInfoKHR = KHRSwapchain.``Vulkan11``.VkDeviceGroupPresentInfoKHR - type VkMemoryOverallocationBehaviorAMD = - | Default = 0 - | Allowed = 1 - | Disallowed = 2 + type VkDeviceGroupSwapchainCreateInfoKHR = KHRSwapchain.``Vulkan11``.VkDeviceGroupSwapchainCreateInfoKHR + type VkImageSwapchainCreateInfoKHR = KHRSwapchain.``Vulkan11``.VkImageSwapchainCreateInfoKHR - [] - type VkDeviceMemoryOverallocationCreateInfoAMD = - struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public overallocationBehavior : VkMemoryOverallocationBehaviorAMD - new(pNext : nativeint, overallocationBehavior : VkMemoryOverallocationBehaviorAMD) = - { - sType = 1000189000u - pNext = pNext - overallocationBehavior = overallocationBehavior - } + [] + module EnumExtensions = + type KHRSwapchain.VkSwapchainCreateFlagsKHR with + /// Allow images with VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT + static member inline SplitInstanceBindRegionsBit = unbox 0x00000001 - new(overallocationBehavior : VkMemoryOverallocationBehaviorAMD) = - VkDeviceMemoryOverallocationCreateInfoAMD(Unchecked.defaultof, overallocationBehavior) + module VkRaw = + let vkAcquireNextImage2KHR = KHRSwapchain.``Vulkan11``.VkRaw.vkAcquireNextImage2KHR - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.overallocationBehavior = Unchecked.defaultof +/// Requires (KHRGetPhysicalDeviceProperties2, KHRDeviceGroup) | Vulkan11. +/// Promoted to Vulkan12. +module KHRBufferDeviceAddress = + let Type = ExtensionType.Device + let Name = "VK_KHR_buffer_device_address" + let Number = 258 - static member Empty = - VkDeviceMemoryOverallocationCreateInfoAMD(Unchecked.defaultof, Unchecked.defaultof) + type VkBufferDeviceAddressInfoKHR = Vulkan12.VkBufferDeviceAddressInfo - override x.ToString() = - String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "overallocationBehavior = %A" x.overallocationBehavior - ] |> sprintf "VkDeviceMemoryOverallocationCreateInfoAMD { %s }" - end + type VkBufferOpaqueCaptureAddressCreateInfoKHR = Vulkan12.VkBufferOpaqueCaptureAddressCreateInfo + type VkDeviceMemoryOpaqueCaptureAddressInfoKHR = Vulkan12.VkDeviceMemoryOpaqueCaptureAddressInfo + type VkMemoryOpaqueCaptureAddressAllocateInfoKHR = Vulkan12.VkMemoryOpaqueCaptureAddressAllocateInfo -module AMDMixedAttachmentSamples = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_AMD_mixed_attachment_samples" - let Number = 137 + type VkPhysicalDeviceBufferDeviceAddressFeaturesKHR = Vulkan12.VkPhysicalDeviceBufferDeviceAddressFeatures -module AMDNegativeViewportHeight = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_AMD_negative_viewport_height" - let Number = 36 + [] + module EnumExtensions = + type VkBufferCreateFlags with + static member inline DeviceAddressCaptureReplayBitKhr = unbox 0x00000010 + type VkBufferUsageFlags with + static member inline ShaderDeviceAddressBitKhr = unbox 0x00020000 + type Vulkan11.VkMemoryAllocateFlags with + static member inline DeviceAddressBitKhr = unbox 0x00000002 + static member inline DeviceAddressCaptureReplayBitKhr = unbox 0x00000004 + type VkResult with + static member inline ErrorInvalidOpaqueCaptureAddressKhr = unbox 1000257000 + module VkRaw = + [] + type VkGetBufferDeviceAddressKHRDel = delegate of VkDevice * nativeptr -> VkDeviceAddress + [] + type VkGetBufferOpaqueCaptureAddressKHRDel = delegate of VkDevice * nativeptr -> uint64 + [] + type VkGetDeviceMemoryOpaqueCaptureAddressKHRDel = delegate of VkDevice * nativeptr -> uint64 -module AMDPipelineCompilerControl = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_AMD_pipeline_compiler_control" - let Number = 184 + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRBufferDeviceAddress") + static let s_vkGetBufferDeviceAddressKHRDel = VkRaw.vkImportInstanceDelegate "vkGetBufferDeviceAddressKHR" + static let s_vkGetBufferOpaqueCaptureAddressKHRDel = VkRaw.vkImportInstanceDelegate "vkGetBufferOpaqueCaptureAddressKHR" + static let s_vkGetDeviceMemoryOpaqueCaptureAddressKHRDel = VkRaw.vkImportInstanceDelegate "vkGetDeviceMemoryOpaqueCaptureAddressKHR" + static do Report.End(3) |> ignore + static member vkGetBufferDeviceAddressKHR = s_vkGetBufferDeviceAddressKHRDel + static member vkGetBufferOpaqueCaptureAddressKHR = s_vkGetBufferOpaqueCaptureAddressKHRDel + static member vkGetDeviceMemoryOpaqueCaptureAddressKHR = s_vkGetDeviceMemoryOpaqueCaptureAddressKHRDel + let vkGetBufferDeviceAddressKHR(device : VkDevice, pInfo : nativeptr) = Loader.vkGetBufferDeviceAddressKHR.Invoke(device, pInfo) + let vkGetBufferOpaqueCaptureAddressKHR(device : VkDevice, pInfo : nativeptr) = Loader.vkGetBufferOpaqueCaptureAddressKHR.Invoke(device, pInfo) + let vkGetDeviceMemoryOpaqueCaptureAddressKHR(device : VkDevice, pInfo : nativeptr) = Loader.vkGetDeviceMemoryOpaqueCaptureAddressKHR.Invoke(device, pInfo) + +/// Requires (Vulkan11, KHRBufferDeviceAddress) | Vulkan12. +module NVDeviceGeneratedCommands = + let Type = ExtensionType.Device + let Name = "VK_NV_device_generated_commands" + let Number = 278 + [] + type VkIndirectCommandsLayoutNV = + struct + val mutable public Handle : uint64 + new(h) = { Handle = h } + static member Null = VkIndirectCommandsLayoutNV(0UL) + member x.IsNull = x.Handle = 0UL + member x.IsValid = x.Handle <> 0UL + end + [] - type VkPipelineCompilerControlFlagsAMD = - | All = 0 + type VkIndirectStateFlagsNV = + | All = 1 + | None = 0 + | FlagFrontfaceBit = 0x00000001 + + type VkIndirectCommandsTokenTypeNV = + | ShaderGroup = 0 + | State = 1 + | IndexBuffer = 2 + | VertexBuffer = 3 + | PushConstant = 4 + | DrawIndexed = 5 + | Draw = 6 + | DrawTasks = 7 + + [] + type VkIndirectCommandsLayoutUsageFlagsNV = + | All = 7 | None = 0 + | ExplicitPreprocessBit = 0x00000001 + | IndexedSequencesBit = 0x00000002 + | UnorderedSequencesBit = 0x00000004 [] - type VkPipelineCompilerControlCreateInfoAMD = + type VkBindIndexBufferIndirectCommandNV = struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public compilerControlFlags : VkPipelineCompilerControlFlagsAMD + val mutable public bufferAddress : VkDeviceAddress + val mutable public size : uint32 + val mutable public indexType : VkIndexType - new(pNext : nativeint, compilerControlFlags : VkPipelineCompilerControlFlagsAMD) = + new(bufferAddress : VkDeviceAddress, size : uint32, indexType : VkIndexType) = { - sType = 1000183000u - pNext = pNext - compilerControlFlags = compilerControlFlags + bufferAddress = bufferAddress + size = size + indexType = indexType } - new(compilerControlFlags : VkPipelineCompilerControlFlagsAMD) = - VkPipelineCompilerControlCreateInfoAMD(Unchecked.defaultof, compilerControlFlags) - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.compilerControlFlags = Unchecked.defaultof + x.bufferAddress = Unchecked.defaultof && x.size = Unchecked.defaultof && x.indexType = Unchecked.defaultof static member Empty = - VkPipelineCompilerControlCreateInfoAMD(Unchecked.defaultof, Unchecked.defaultof) + VkBindIndexBufferIndirectCommandNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "compilerControlFlags = %A" x.compilerControlFlags - ] |> sprintf "VkPipelineCompilerControlCreateInfoAMD { %s }" + sprintf "bufferAddress = %A" x.bufferAddress + sprintf "size = %A" x.size + sprintf "indexType = %A" x.indexType + ] |> sprintf "VkBindIndexBufferIndirectCommandNV { %s }" end + [] + type VkBindShaderGroupIndirectCommandNV = + struct + val mutable public groupIndex : uint32 + new(groupIndex : uint32) = + { + groupIndex = groupIndex + } -module AMDRasterizationOrder = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_AMD_rasterization_order" - let Number = 19 - + member x.IsEmpty = + x.groupIndex = Unchecked.defaultof - type VkRasterizationOrderAMD = - | Strict = 0 - | Relaxed = 1 + static member Empty = + VkBindShaderGroupIndirectCommandNV(Unchecked.defaultof) + override x.ToString() = + String.concat "; " [ + sprintf "groupIndex = %A" x.groupIndex + ] |> sprintf "VkBindShaderGroupIndirectCommandNV { %s }" + end [] - type VkPipelineRasterizationStateRasterizationOrderAMD = + type VkBindVertexBufferIndirectCommandNV = struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public rasterizationOrder : VkRasterizationOrderAMD + val mutable public bufferAddress : VkDeviceAddress + val mutable public size : uint32 + val mutable public stride : uint32 - new(pNext : nativeint, rasterizationOrder : VkRasterizationOrderAMD) = + new(bufferAddress : VkDeviceAddress, size : uint32, stride : uint32) = { - sType = 1000018000u - pNext = pNext - rasterizationOrder = rasterizationOrder + bufferAddress = bufferAddress + size = size + stride = stride } - new(rasterizationOrder : VkRasterizationOrderAMD) = - VkPipelineRasterizationStateRasterizationOrderAMD(Unchecked.defaultof, rasterizationOrder) - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.rasterizationOrder = Unchecked.defaultof + x.bufferAddress = Unchecked.defaultof && x.size = Unchecked.defaultof && x.stride = Unchecked.defaultof static member Empty = - VkPipelineRasterizationStateRasterizationOrderAMD(Unchecked.defaultof, Unchecked.defaultof) + VkBindVertexBufferIndirectCommandNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "rasterizationOrder = %A" x.rasterizationOrder - ] |> sprintf "VkPipelineRasterizationStateRasterizationOrderAMD { %s }" + sprintf "bufferAddress = %A" x.bufferAddress + sprintf "size = %A" x.size + sprintf "stride = %A" x.stride + ] |> sprintf "VkBindVertexBufferIndirectCommandNV { %s }" end + [] + type VkIndirectCommandsStreamNV = + struct + val mutable public buffer : VkBuffer + val mutable public offset : VkDeviceSize + new(buffer : VkBuffer, offset : VkDeviceSize) = + { + buffer = buffer + offset = offset + } -module AMDShaderBallot = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_AMD_shader_ballot" - let Number = 38 - - -module AMDShaderCoreProperties = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_AMD_shader_core_properties" - let Number = 186 + member x.IsEmpty = + x.buffer = Unchecked.defaultof && x.offset = Unchecked.defaultof - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] + static member Empty = + VkIndirectCommandsStreamNV(Unchecked.defaultof, Unchecked.defaultof) + override x.ToString() = + String.concat "; " [ + sprintf "buffer = %A" x.buffer + sprintf "offset = %A" x.offset + ] |> sprintf "VkIndirectCommandsStreamNV { %s }" + end [] - type VkPhysicalDeviceShaderCorePropertiesAMD = + type VkGeneratedCommandsInfoNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public shaderEngineCount : uint32 - val mutable public shaderArraysPerEngineCount : uint32 - val mutable public computeUnitsPerShaderArray : uint32 - val mutable public simdPerComputeUnit : uint32 - val mutable public wavefrontsPerSimd : uint32 - val mutable public wavefrontSize : uint32 - val mutable public sgprsPerSimd : uint32 - val mutable public minSgprAllocation : uint32 - val mutable public maxSgprAllocation : uint32 - val mutable public sgprAllocationGranularity : uint32 - val mutable public vgprsPerSimd : uint32 - val mutable public minVgprAllocation : uint32 - val mutable public maxVgprAllocation : uint32 - val mutable public vgprAllocationGranularity : uint32 + val mutable public pipelineBindPoint : VkPipelineBindPoint + val mutable public pipeline : VkPipeline + val mutable public indirectCommandsLayout : VkIndirectCommandsLayoutNV + val mutable public streamCount : uint32 + val mutable public pStreams : nativeptr + val mutable public sequencesCount : uint32 + val mutable public preprocessBuffer : VkBuffer + val mutable public preprocessOffset : VkDeviceSize + val mutable public preprocessSize : VkDeviceSize + val mutable public sequencesCountBuffer : VkBuffer + val mutable public sequencesCountOffset : VkDeviceSize + val mutable public sequencesIndexBuffer : VkBuffer + val mutable public sequencesIndexOffset : VkDeviceSize - new(pNext : nativeint, 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) = + new(pNext : nativeint, pipelineBindPoint : VkPipelineBindPoint, pipeline : VkPipeline, indirectCommandsLayout : VkIndirectCommandsLayoutNV, streamCount : uint32, pStreams : nativeptr, sequencesCount : uint32, preprocessBuffer : VkBuffer, preprocessOffset : VkDeviceSize, preprocessSize : VkDeviceSize, sequencesCountBuffer : VkBuffer, sequencesCountOffset : VkDeviceSize, sequencesIndexBuffer : VkBuffer, sequencesIndexOffset : VkDeviceSize) = { - sType = 1000185000u + sType = 1000277005u pNext = pNext - shaderEngineCount = shaderEngineCount - shaderArraysPerEngineCount = shaderArraysPerEngineCount - computeUnitsPerShaderArray = computeUnitsPerShaderArray - simdPerComputeUnit = simdPerComputeUnit - wavefrontsPerSimd = wavefrontsPerSimd - wavefrontSize = wavefrontSize - sgprsPerSimd = sgprsPerSimd - minSgprAllocation = minSgprAllocation - maxSgprAllocation = maxSgprAllocation - sgprAllocationGranularity = sgprAllocationGranularity - vgprsPerSimd = vgprsPerSimd - minVgprAllocation = minVgprAllocation - maxVgprAllocation = maxVgprAllocation - vgprAllocationGranularity = vgprAllocationGranularity + pipelineBindPoint = pipelineBindPoint + pipeline = pipeline + indirectCommandsLayout = indirectCommandsLayout + streamCount = streamCount + pStreams = pStreams + sequencesCount = sequencesCount + preprocessBuffer = preprocessBuffer + preprocessOffset = preprocessOffset + preprocessSize = preprocessSize + sequencesCountBuffer = sequencesCountBuffer + sequencesCountOffset = sequencesCountOffset + sequencesIndexBuffer = sequencesIndexBuffer + sequencesIndexOffset = sequencesIndexOffset } - new(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) = - VkPhysicalDeviceShaderCorePropertiesAMD(Unchecked.defaultof, shaderEngineCount, shaderArraysPerEngineCount, computeUnitsPerShaderArray, simdPerComputeUnit, wavefrontsPerSimd, wavefrontSize, sgprsPerSimd, minSgprAllocation, maxSgprAllocation, sgprAllocationGranularity, vgprsPerSimd, minVgprAllocation, maxVgprAllocation, vgprAllocationGranularity) + new(pipelineBindPoint : VkPipelineBindPoint, pipeline : VkPipeline, indirectCommandsLayout : VkIndirectCommandsLayoutNV, streamCount : uint32, pStreams : nativeptr, sequencesCount : uint32, preprocessBuffer : VkBuffer, preprocessOffset : VkDeviceSize, preprocessSize : VkDeviceSize, sequencesCountBuffer : VkBuffer, sequencesCountOffset : VkDeviceSize, sequencesIndexBuffer : VkBuffer, sequencesIndexOffset : VkDeviceSize) = + VkGeneratedCommandsInfoNV(Unchecked.defaultof, pipelineBindPoint, pipeline, indirectCommandsLayout, streamCount, pStreams, sequencesCount, preprocessBuffer, preprocessOffset, preprocessSize, sequencesCountBuffer, sequencesCountOffset, sequencesIndexBuffer, sequencesIndexOffset) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.shaderEngineCount = Unchecked.defaultof && x.shaderArraysPerEngineCount = Unchecked.defaultof && x.computeUnitsPerShaderArray = Unchecked.defaultof && x.simdPerComputeUnit = Unchecked.defaultof && x.wavefrontsPerSimd = Unchecked.defaultof && x.wavefrontSize = Unchecked.defaultof && x.sgprsPerSimd = Unchecked.defaultof && x.minSgprAllocation = Unchecked.defaultof && x.maxSgprAllocation = Unchecked.defaultof && x.sgprAllocationGranularity = Unchecked.defaultof && x.vgprsPerSimd = Unchecked.defaultof && x.minVgprAllocation = Unchecked.defaultof && x.maxVgprAllocation = Unchecked.defaultof && x.vgprAllocationGranularity = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.pipelineBindPoint = Unchecked.defaultof && x.pipeline = Unchecked.defaultof && x.indirectCommandsLayout = Unchecked.defaultof && x.streamCount = Unchecked.defaultof && x.pStreams = Unchecked.defaultof> && x.sequencesCount = Unchecked.defaultof && x.preprocessBuffer = Unchecked.defaultof && x.preprocessOffset = Unchecked.defaultof && x.preprocessSize = Unchecked.defaultof && x.sequencesCountBuffer = Unchecked.defaultof && x.sequencesCountOffset = Unchecked.defaultof && x.sequencesIndexBuffer = Unchecked.defaultof && x.sequencesIndexOffset = Unchecked.defaultof static member Empty = - VkPhysicalDeviceShaderCorePropertiesAMD(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkGeneratedCommandsInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "shaderEngineCount = %A" x.shaderEngineCount - sprintf "shaderArraysPerEngineCount = %A" x.shaderArraysPerEngineCount - sprintf "computeUnitsPerShaderArray = %A" x.computeUnitsPerShaderArray - sprintf "simdPerComputeUnit = %A" x.simdPerComputeUnit - sprintf "wavefrontsPerSimd = %A" x.wavefrontsPerSimd - sprintf "wavefrontSize = %A" x.wavefrontSize - sprintf "sgprsPerSimd = %A" x.sgprsPerSimd - sprintf "minSgprAllocation = %A" x.minSgprAllocation - sprintf "maxSgprAllocation = %A" x.maxSgprAllocation - sprintf "sgprAllocationGranularity = %A" x.sgprAllocationGranularity - sprintf "vgprsPerSimd = %A" x.vgprsPerSimd - sprintf "minVgprAllocation = %A" x.minVgprAllocation - sprintf "maxVgprAllocation = %A" x.maxVgprAllocation - sprintf "vgprAllocationGranularity = %A" x.vgprAllocationGranularity - ] |> sprintf "VkPhysicalDeviceShaderCorePropertiesAMD { %s }" + sprintf "pipelineBindPoint = %A" x.pipelineBindPoint + sprintf "pipeline = %A" x.pipeline + sprintf "indirectCommandsLayout = %A" x.indirectCommandsLayout + sprintf "streamCount = %A" x.streamCount + sprintf "pStreams = %A" x.pStreams + sprintf "sequencesCount = %A" x.sequencesCount + sprintf "preprocessBuffer = %A" x.preprocessBuffer + sprintf "preprocessOffset = %A" x.preprocessOffset + sprintf "preprocessSize = %A" x.preprocessSize + sprintf "sequencesCountBuffer = %A" x.sequencesCountBuffer + sprintf "sequencesCountOffset = %A" x.sequencesCountOffset + sprintf "sequencesIndexBuffer = %A" x.sequencesIndexBuffer + sprintf "sequencesIndexOffset = %A" x.sequencesIndexOffset + ] |> sprintf "VkGeneratedCommandsInfoNV { %s }" end - - -module AMDShaderCoreProperties2 = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open AMDShaderCoreProperties - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_AMD_shader_core_properties2" - let Number = 228 - - let Required = [ AMDShaderCoreProperties.Name ] - - - [] - type VkShaderCorePropertiesFlagsAMD = - | All = 0 - | None = 0 - - [] - type VkPhysicalDeviceShaderCoreProperties2AMD = + type VkGeneratedCommandsMemoryRequirementsInfoNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public shaderCoreFeatures : VkShaderCorePropertiesFlagsAMD - val mutable public activeComputeUnitCount : uint32 + val mutable public pipelineBindPoint : VkPipelineBindPoint + val mutable public pipeline : VkPipeline + val mutable public indirectCommandsLayout : VkIndirectCommandsLayoutNV + val mutable public maxSequencesCount : uint32 - new(pNext : nativeint, shaderCoreFeatures : VkShaderCorePropertiesFlagsAMD, activeComputeUnitCount : uint32) = + new(pNext : nativeint, pipelineBindPoint : VkPipelineBindPoint, pipeline : VkPipeline, indirectCommandsLayout : VkIndirectCommandsLayoutNV, maxSequencesCount : uint32) = { - sType = 1000227000u + sType = 1000277006u pNext = pNext - shaderCoreFeatures = shaderCoreFeatures - activeComputeUnitCount = activeComputeUnitCount + pipelineBindPoint = pipelineBindPoint + pipeline = pipeline + indirectCommandsLayout = indirectCommandsLayout + maxSequencesCount = maxSequencesCount } - new(shaderCoreFeatures : VkShaderCorePropertiesFlagsAMD, activeComputeUnitCount : uint32) = - VkPhysicalDeviceShaderCoreProperties2AMD(Unchecked.defaultof, shaderCoreFeatures, activeComputeUnitCount) + new(pipelineBindPoint : VkPipelineBindPoint, pipeline : VkPipeline, indirectCommandsLayout : VkIndirectCommandsLayoutNV, maxSequencesCount : uint32) = + VkGeneratedCommandsMemoryRequirementsInfoNV(Unchecked.defaultof, pipelineBindPoint, pipeline, indirectCommandsLayout, maxSequencesCount) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.shaderCoreFeatures = Unchecked.defaultof && x.activeComputeUnitCount = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.pipelineBindPoint = Unchecked.defaultof && x.pipeline = Unchecked.defaultof && x.indirectCommandsLayout = Unchecked.defaultof && x.maxSequencesCount = Unchecked.defaultof static member Empty = - VkPhysicalDeviceShaderCoreProperties2AMD(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkGeneratedCommandsMemoryRequirementsInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "shaderCoreFeatures = %A" x.shaderCoreFeatures - sprintf "activeComputeUnitCount = %A" x.activeComputeUnitCount - ] |> sprintf "VkPhysicalDeviceShaderCoreProperties2AMD { %s }" + sprintf "pipelineBindPoint = %A" x.pipelineBindPoint + sprintf "pipeline = %A" x.pipeline + sprintf "indirectCommandsLayout = %A" x.indirectCommandsLayout + sprintf "maxSequencesCount = %A" x.maxSequencesCount + ] |> sprintf "VkGeneratedCommandsMemoryRequirementsInfoNV { %s }" end - - -module AMDShaderEarlyAndLateFragmentTests = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_AMD_shader_early_and_late_fragment_tests" - let Number = 322 - - [] - type VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD = + type VkGraphicsShaderGroupCreateInfoNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public shaderEarlyAndLateFragmentTests : VkBool32 + val mutable public stageCount : uint32 + val mutable public pStages : nativeptr + val mutable public pVertexInputState : nativeptr + val mutable public pTessellationState : nativeptr - new(pNext : nativeint, shaderEarlyAndLateFragmentTests : VkBool32) = + new(pNext : nativeint, stageCount : uint32, pStages : nativeptr, pVertexInputState : nativeptr, pTessellationState : nativeptr) = { - sType = 1000321000u + sType = 1000277001u pNext = pNext - shaderEarlyAndLateFragmentTests = shaderEarlyAndLateFragmentTests + stageCount = stageCount + pStages = pStages + pVertexInputState = pVertexInputState + pTessellationState = pTessellationState } - new(shaderEarlyAndLateFragmentTests : VkBool32) = - VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD(Unchecked.defaultof, shaderEarlyAndLateFragmentTests) + new(stageCount : uint32, pStages : nativeptr, pVertexInputState : nativeptr, pTessellationState : nativeptr) = + VkGraphicsShaderGroupCreateInfoNV(Unchecked.defaultof, stageCount, pStages, pVertexInputState, pTessellationState) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.shaderEarlyAndLateFragmentTests = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.stageCount = Unchecked.defaultof && x.pStages = Unchecked.defaultof> && x.pVertexInputState = Unchecked.defaultof> && x.pTessellationState = Unchecked.defaultof> static member Empty = - VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD(Unchecked.defaultof, Unchecked.defaultof) + VkGraphicsShaderGroupCreateInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof>, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "shaderEarlyAndLateFragmentTests = %A" x.shaderEarlyAndLateFragmentTests - ] |> sprintf "VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD { %s }" + sprintf "stageCount = %A" x.stageCount + sprintf "pStages = %A" x.pStages + sprintf "pVertexInputState = %A" x.pVertexInputState + sprintf "pTessellationState = %A" x.pTessellationState + ] |> sprintf "VkGraphicsShaderGroupCreateInfoNV { %s }" end - - -module AMDShaderExplicitVertexParameter = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_AMD_shader_explicit_vertex_parameter" - let Number = 22 - - -module AMDShaderFragmentMask = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_AMD_shader_fragment_mask" - let Number = 138 - - -module AMDShaderImageLoadStoreLod = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_AMD_shader_image_load_store_lod" - let Number = 47 - - -module AMDShaderInfo = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_AMD_shader_info" - let Number = 43 - - - type VkShaderInfoTypeAMD = - | Statistics = 0 - | Binary = 1 - | Disassembly = 2 - - [] - type VkShaderResourceUsageAMD = + type VkGraphicsPipelineShaderGroupsCreateInfoNV = struct - val mutable public numUsedVgprs : uint32 - val mutable public numUsedSgprs : uint32 - val mutable public ldsSizePerLocalWorkGroup : uint32 - val mutable public ldsUsageSizeInBytes : uint64 - val mutable public scratchMemUsageInBytes : uint64 + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public groupCount : uint32 + val mutable public pGroups : nativeptr + val mutable public pipelineCount : uint32 + val mutable public pPipelines : nativeptr - new(numUsedVgprs : uint32, numUsedSgprs : uint32, ldsSizePerLocalWorkGroup : uint32, ldsUsageSizeInBytes : uint64, scratchMemUsageInBytes : uint64) = + new(pNext : nativeint, groupCount : uint32, pGroups : nativeptr, pipelineCount : uint32, pPipelines : nativeptr) = { - numUsedVgprs = numUsedVgprs - numUsedSgprs = numUsedSgprs - ldsSizePerLocalWorkGroup = ldsSizePerLocalWorkGroup - ldsUsageSizeInBytes = ldsUsageSizeInBytes - scratchMemUsageInBytes = scratchMemUsageInBytes + sType = 1000277002u + pNext = pNext + groupCount = groupCount + pGroups = pGroups + pipelineCount = pipelineCount + pPipelines = pPipelines } + new(groupCount : uint32, pGroups : nativeptr, pipelineCount : uint32, pPipelines : nativeptr) = + VkGraphicsPipelineShaderGroupsCreateInfoNV(Unchecked.defaultof, groupCount, pGroups, pipelineCount, pPipelines) + member x.IsEmpty = - x.numUsedVgprs = Unchecked.defaultof && x.numUsedSgprs = Unchecked.defaultof && x.ldsSizePerLocalWorkGroup = Unchecked.defaultof && x.ldsUsageSizeInBytes = Unchecked.defaultof && x.scratchMemUsageInBytes = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.groupCount = Unchecked.defaultof && x.pGroups = Unchecked.defaultof> && x.pipelineCount = Unchecked.defaultof && x.pPipelines = Unchecked.defaultof> static member Empty = - VkShaderResourceUsageAMD(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkGraphicsPipelineShaderGroupsCreateInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ - sprintf "numUsedVgprs = %A" x.numUsedVgprs - sprintf "numUsedSgprs = %A" x.numUsedSgprs - sprintf "ldsSizePerLocalWorkGroup = %A" x.ldsSizePerLocalWorkGroup - sprintf "ldsUsageSizeInBytes = %A" x.ldsUsageSizeInBytes - sprintf "scratchMemUsageInBytes = %A" x.scratchMemUsageInBytes - ] |> sprintf "VkShaderResourceUsageAMD { %s }" + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "groupCount = %A" x.groupCount + sprintf "pGroups = %A" x.pGroups + sprintf "pipelineCount = %A" x.pipelineCount + sprintf "pPipelines = %A" x.pPipelines + ] |> sprintf "VkGraphicsPipelineShaderGroupsCreateInfoNV { %s }" end [] - type VkShaderStatisticsInfoAMD = + type VkIndirectCommandsLayoutTokenNV = struct - val mutable public shaderStageMask : VkShaderStageFlags - val mutable public resourceUsage : VkShaderResourceUsageAMD - val mutable public numPhysicalVgprs : uint32 - val mutable public numPhysicalSgprs : uint32 - val mutable public numAvailableVgprs : uint32 - val mutable public numAvailableSgprs : uint32 - val mutable public computeWorkGroupSize : V3ui + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public tokenType : VkIndirectCommandsTokenTypeNV + val mutable public stream : uint32 + val mutable public offset : uint32 + val mutable public vertexBindingUnit : uint32 + val mutable public vertexDynamicStride : VkBool32 + val mutable public pushconstantPipelineLayout : VkPipelineLayout + val mutable public pushconstantShaderStageFlags : VkShaderStageFlags + val mutable public pushconstantOffset : uint32 + val mutable public pushconstantSize : uint32 + val mutable public indirectStateFlags : VkIndirectStateFlagsNV + val mutable public indexTypeCount : uint32 + val mutable public pIndexTypes : nativeptr + val mutable public pIndexTypeValues : nativeptr - new(shaderStageMask : VkShaderStageFlags, resourceUsage : VkShaderResourceUsageAMD, numPhysicalVgprs : uint32, numPhysicalSgprs : uint32, numAvailableVgprs : uint32, numAvailableSgprs : uint32, computeWorkGroupSize : V3ui) = + new(pNext : nativeint, tokenType : VkIndirectCommandsTokenTypeNV, stream : uint32, offset : uint32, vertexBindingUnit : uint32, vertexDynamicStride : VkBool32, pushconstantPipelineLayout : VkPipelineLayout, pushconstantShaderStageFlags : VkShaderStageFlags, pushconstantOffset : uint32, pushconstantSize : uint32, indirectStateFlags : VkIndirectStateFlagsNV, indexTypeCount : uint32, pIndexTypes : nativeptr, pIndexTypeValues : nativeptr) = { - shaderStageMask = shaderStageMask - resourceUsage = resourceUsage - numPhysicalVgprs = numPhysicalVgprs - numPhysicalSgprs = numPhysicalSgprs - numAvailableVgprs = numAvailableVgprs - numAvailableSgprs = numAvailableSgprs - computeWorkGroupSize = computeWorkGroupSize + sType = 1000277003u + pNext = pNext + tokenType = tokenType + stream = stream + offset = offset + vertexBindingUnit = vertexBindingUnit + vertexDynamicStride = vertexDynamicStride + pushconstantPipelineLayout = pushconstantPipelineLayout + pushconstantShaderStageFlags = pushconstantShaderStageFlags + pushconstantOffset = pushconstantOffset + pushconstantSize = pushconstantSize + indirectStateFlags = indirectStateFlags + indexTypeCount = indexTypeCount + pIndexTypes = pIndexTypes + pIndexTypeValues = pIndexTypeValues } + new(tokenType : VkIndirectCommandsTokenTypeNV, stream : uint32, offset : uint32, vertexBindingUnit : uint32, vertexDynamicStride : VkBool32, pushconstantPipelineLayout : VkPipelineLayout, pushconstantShaderStageFlags : VkShaderStageFlags, pushconstantOffset : uint32, pushconstantSize : uint32, indirectStateFlags : VkIndirectStateFlagsNV, indexTypeCount : uint32, pIndexTypes : nativeptr, pIndexTypeValues : nativeptr) = + VkIndirectCommandsLayoutTokenNV(Unchecked.defaultof, tokenType, stream, offset, vertexBindingUnit, vertexDynamicStride, pushconstantPipelineLayout, pushconstantShaderStageFlags, pushconstantOffset, pushconstantSize, indirectStateFlags, indexTypeCount, pIndexTypes, pIndexTypeValues) + member x.IsEmpty = - x.shaderStageMask = Unchecked.defaultof && x.resourceUsage = Unchecked.defaultof && x.numPhysicalVgprs = Unchecked.defaultof && x.numPhysicalSgprs = Unchecked.defaultof && x.numAvailableVgprs = Unchecked.defaultof && x.numAvailableSgprs = Unchecked.defaultof && x.computeWorkGroupSize = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.tokenType = Unchecked.defaultof && x.stream = Unchecked.defaultof && x.offset = Unchecked.defaultof && x.vertexBindingUnit = Unchecked.defaultof && x.vertexDynamicStride = Unchecked.defaultof && x.pushconstantPipelineLayout = Unchecked.defaultof && x.pushconstantShaderStageFlags = Unchecked.defaultof && x.pushconstantOffset = Unchecked.defaultof && x.pushconstantSize = Unchecked.defaultof && x.indirectStateFlags = Unchecked.defaultof && x.indexTypeCount = Unchecked.defaultof && x.pIndexTypes = Unchecked.defaultof> && x.pIndexTypeValues = Unchecked.defaultof> static member Empty = - VkShaderStatisticsInfoAMD(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkIndirectCommandsLayoutTokenNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ - sprintf "shaderStageMask = %A" x.shaderStageMask - sprintf "resourceUsage = %A" x.resourceUsage - sprintf "numPhysicalVgprs = %A" x.numPhysicalVgprs - sprintf "numPhysicalSgprs = %A" x.numPhysicalSgprs - sprintf "numAvailableVgprs = %A" x.numAvailableVgprs - sprintf "numAvailableSgprs = %A" x.numAvailableSgprs - sprintf "computeWorkGroupSize = %A" x.computeWorkGroupSize - ] |> sprintf "VkShaderStatisticsInfoAMD { %s }" + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "tokenType = %A" x.tokenType + sprintf "stream = %A" x.stream + sprintf "offset = %A" x.offset + sprintf "vertexBindingUnit = %A" x.vertexBindingUnit + sprintf "vertexDynamicStride = %A" x.vertexDynamicStride + sprintf "pushconstantPipelineLayout = %A" x.pushconstantPipelineLayout + sprintf "pushconstantShaderStageFlags = %A" x.pushconstantShaderStageFlags + sprintf "pushconstantOffset = %A" x.pushconstantOffset + sprintf "pushconstantSize = %A" x.pushconstantSize + sprintf "indirectStateFlags = %A" x.indirectStateFlags + sprintf "indexTypeCount = %A" x.indexTypeCount + sprintf "pIndexTypes = %A" x.pIndexTypes + sprintf "pIndexTypeValues = %A" x.pIndexTypeValues + ] |> sprintf "VkIndirectCommandsLayoutTokenNV { %s }" end + [] + type VkIndirectCommandsLayoutCreateInfoNV = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public flags : VkIndirectCommandsLayoutUsageFlagsNV + val mutable public pipelineBindPoint : VkPipelineBindPoint + val mutable public tokenCount : uint32 + val mutable public pTokens : nativeptr + val mutable public streamCount : uint32 + val mutable public pStreamStrides : nativeptr - module VkRaw = - [] - type VkGetShaderInfoAMDDel = delegate of VkDevice * VkPipeline * VkShaderStageFlags * VkShaderInfoTypeAMD * nativeptr * nativeint -> VkResult - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading AMDShaderInfo") - static let s_vkGetShaderInfoAMDDel = VkRaw.vkImportInstanceDelegate "vkGetShaderInfoAMD" - static do Report.End(3) |> ignore - static member vkGetShaderInfoAMD = s_vkGetShaderInfoAMDDel - let vkGetShaderInfoAMD(device : VkDevice, pipeline : VkPipeline, shaderStage : VkShaderStageFlags, infoType : VkShaderInfoTypeAMD, pInfoSize : nativeptr, pInfo : nativeint) = Loader.vkGetShaderInfoAMD.Invoke(device, pipeline, shaderStage, infoType, pInfoSize, pInfo) - -module AMDShaderTrinaryMinmax = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_AMD_shader_trinary_minmax" - let Number = 21 + new(pNext : nativeint, flags : VkIndirectCommandsLayoutUsageFlagsNV, pipelineBindPoint : VkPipelineBindPoint, tokenCount : uint32, pTokens : nativeptr, streamCount : uint32, pStreamStrides : nativeptr) = + { + sType = 1000277004u + pNext = pNext + flags = flags + pipelineBindPoint = pipelineBindPoint + tokenCount = tokenCount + pTokens = pTokens + streamCount = streamCount + pStreamStrides = pStreamStrides + } + new(flags : VkIndirectCommandsLayoutUsageFlagsNV, pipelineBindPoint : VkPipelineBindPoint, tokenCount : uint32, pTokens : nativeptr, streamCount : uint32, pStreamStrides : nativeptr) = + VkIndirectCommandsLayoutCreateInfoNV(Unchecked.defaultof, flags, pipelineBindPoint, tokenCount, pTokens, streamCount, pStreamStrides) -module AMDTextureGatherBiasLod = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_AMD_texture_gather_bias_lod" - let Number = 42 + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.pipelineBindPoint = Unchecked.defaultof && x.tokenCount = Unchecked.defaultof && x.pTokens = Unchecked.defaultof> && x.streamCount = Unchecked.defaultof && x.pStreamStrides = Unchecked.defaultof> - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] + static member Empty = + VkIndirectCommandsLayoutCreateInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>) + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "flags = %A" x.flags + sprintf "pipelineBindPoint = %A" x.pipelineBindPoint + sprintf "tokenCount = %A" x.tokenCount + sprintf "pTokens = %A" x.pTokens + sprintf "streamCount = %A" x.streamCount + sprintf "pStreamStrides = %A" x.pStreamStrides + ] |> sprintf "VkIndirectCommandsLayoutCreateInfoNV { %s }" + end [] - type VkTextureLODGatherFormatPropertiesAMD = + type VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public supportsTextureGatherLODBiasAMD : VkBool32 + val mutable public deviceGeneratedCommands : VkBool32 - new(pNext : nativeint, supportsTextureGatherLODBiasAMD : VkBool32) = + new(pNext : nativeint, deviceGeneratedCommands : VkBool32) = { - sType = 1000041000u + sType = 1000277007u pNext = pNext - supportsTextureGatherLODBiasAMD = supportsTextureGatherLODBiasAMD + deviceGeneratedCommands = deviceGeneratedCommands } - new(supportsTextureGatherLODBiasAMD : VkBool32) = - VkTextureLODGatherFormatPropertiesAMD(Unchecked.defaultof, supportsTextureGatherLODBiasAMD) + new(deviceGeneratedCommands : VkBool32) = + VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV(Unchecked.defaultof, deviceGeneratedCommands) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.supportsTextureGatherLODBiasAMD = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.deviceGeneratedCommands = Unchecked.defaultof static member Empty = - VkTextureLODGatherFormatPropertiesAMD(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "supportsTextureGatherLODBiasAMD = %A" x.supportsTextureGatherLODBiasAMD - ] |> sprintf "VkTextureLODGatherFormatPropertiesAMD { %s }" + sprintf "deviceGeneratedCommands = %A" x.deviceGeneratedCommands + ] |> sprintf "VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV { %s }" end + [] + type VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public maxGraphicsShaderGroupCount : uint32 + val mutable public maxIndirectSequenceCount : uint32 + val mutable public maxIndirectCommandsTokenCount : uint32 + val mutable public maxIndirectCommandsStreamCount : uint32 + val mutable public maxIndirectCommandsTokenOffset : uint32 + val mutable public maxIndirectCommandsStreamStride : uint32 + val mutable public minSequencesCountBufferOffsetAlignment : uint32 + val mutable public minSequencesIndexBufferOffsetAlignment : uint32 + val mutable public minIndirectCommandsBufferOffsetAlignment : uint32 + new(pNext : nativeint, maxGraphicsShaderGroupCount : uint32, maxIndirectSequenceCount : uint32, maxIndirectCommandsTokenCount : uint32, maxIndirectCommandsStreamCount : uint32, maxIndirectCommandsTokenOffset : uint32, maxIndirectCommandsStreamStride : uint32, minSequencesCountBufferOffsetAlignment : uint32, minSequencesIndexBufferOffsetAlignment : uint32, minIndirectCommandsBufferOffsetAlignment : uint32) = + { + sType = 1000277000u + pNext = pNext + maxGraphicsShaderGroupCount = maxGraphicsShaderGroupCount + maxIndirectSequenceCount = maxIndirectSequenceCount + maxIndirectCommandsTokenCount = maxIndirectCommandsTokenCount + maxIndirectCommandsStreamCount = maxIndirectCommandsStreamCount + maxIndirectCommandsTokenOffset = maxIndirectCommandsTokenOffset + maxIndirectCommandsStreamStride = maxIndirectCommandsStreamStride + minSequencesCountBufferOffsetAlignment = minSequencesCountBufferOffsetAlignment + minSequencesIndexBufferOffsetAlignment = minSequencesIndexBufferOffsetAlignment + minIndirectCommandsBufferOffsetAlignment = minIndirectCommandsBufferOffsetAlignment + } -module KHRExternalMemoryCapabilities = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_KHR_external_memory_capabilities" - let Number = 72 - - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] + new(maxGraphicsShaderGroupCount : uint32, maxIndirectSequenceCount : uint32, maxIndirectCommandsTokenCount : uint32, maxIndirectCommandsStreamCount : uint32, maxIndirectCommandsTokenOffset : uint32, maxIndirectCommandsStreamStride : uint32, minSequencesCountBufferOffsetAlignment : uint32, minSequencesIndexBufferOffsetAlignment : uint32, minIndirectCommandsBufferOffsetAlignment : uint32) = + VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV(Unchecked.defaultof, maxGraphicsShaderGroupCount, maxIndirectSequenceCount, maxIndirectCommandsTokenCount, maxIndirectCommandsStreamCount, maxIndirectCommandsTokenOffset, maxIndirectCommandsStreamStride, minSequencesCountBufferOffsetAlignment, minSequencesIndexBufferOffsetAlignment, minIndirectCommandsBufferOffsetAlignment) + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.maxGraphicsShaderGroupCount = Unchecked.defaultof && x.maxIndirectSequenceCount = Unchecked.defaultof && x.maxIndirectCommandsTokenCount = Unchecked.defaultof && x.maxIndirectCommandsStreamCount = Unchecked.defaultof && x.maxIndirectCommandsTokenOffset = Unchecked.defaultof && x.maxIndirectCommandsStreamStride = Unchecked.defaultof && x.minSequencesCountBufferOffsetAlignment = Unchecked.defaultof && x.minSequencesIndexBufferOffsetAlignment = Unchecked.defaultof && x.minIndirectCommandsBufferOffsetAlignment = Unchecked.defaultof - type VkExternalMemoryHandleTypeFlagsKHR = VkExternalMemoryHandleTypeFlags - type VkExternalMemoryFeatureFlagsKHR = VkExternalMemoryFeatureFlags + static member Empty = + VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) - type VkExternalBufferPropertiesKHR = VkExternalBufferProperties + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "maxGraphicsShaderGroupCount = %A" x.maxGraphicsShaderGroupCount + sprintf "maxIndirectSequenceCount = %A" x.maxIndirectSequenceCount + sprintf "maxIndirectCommandsTokenCount = %A" x.maxIndirectCommandsTokenCount + sprintf "maxIndirectCommandsStreamCount = %A" x.maxIndirectCommandsStreamCount + sprintf "maxIndirectCommandsTokenOffset = %A" x.maxIndirectCommandsTokenOffset + sprintf "maxIndirectCommandsStreamStride = %A" x.maxIndirectCommandsStreamStride + sprintf "minSequencesCountBufferOffsetAlignment = %A" x.minSequencesCountBufferOffsetAlignment + sprintf "minSequencesIndexBufferOffsetAlignment = %A" x.minSequencesIndexBufferOffsetAlignment + sprintf "minIndirectCommandsBufferOffsetAlignment = %A" x.minIndirectCommandsBufferOffsetAlignment + ] |> sprintf "VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV { %s }" + end - type VkExternalImageFormatPropertiesKHR = VkExternalImageFormatProperties + [] + type VkSetStateFlagsIndirectCommandNV = + struct + val mutable public data : uint32 - type VkExternalMemoryPropertiesKHR = VkExternalMemoryProperties + new(data : uint32) = + { + data = data + } - type VkPhysicalDeviceExternalBufferInfoKHR = VkPhysicalDeviceExternalBufferInfo + member x.IsEmpty = + x.data = Unchecked.defaultof - type VkPhysicalDeviceExternalImageFormatInfoKHR = VkPhysicalDeviceExternalImageFormatInfo + static member Empty = + VkSetStateFlagsIndirectCommandNV(Unchecked.defaultof) - type VkPhysicalDeviceIDPropertiesKHR = VkPhysicalDeviceIDProperties + override x.ToString() = + String.concat "; " [ + sprintf "data = %A" x.data + ] |> sprintf "VkSetStateFlagsIndirectCommandNV { %s }" + end [] module EnumExtensions = - type VkExternalMemoryFeatureFlags with - static member inline DedicatedOnlyBitKhr = unbox 0x00000001 - static member inline ExportableBitKhr = unbox 0x00000002 - static member inline ImportableBitKhr = unbox 0x00000004 - type VkExternalMemoryHandleTypeFlags with - static member inline OpaqueFdBitKhr = unbox 0x00000001 - static member inline OpaqueWin32BitKhr = unbox 0x00000002 - static member inline OpaqueWin32KmtBitKhr = unbox 0x00000004 - static member inline D3d11TextureBitKhr = unbox 0x00000008 - static member inline D3d11TextureKmtBitKhr = unbox 0x00000010 - static member inline D3d12HeapBitKhr = unbox 0x00000020 - static member inline D3d12ResourceBitKhr = unbox 0x00000040 + type VkAccessFlags with + static member inline CommandPreprocessReadBitNv = unbox 0x00020000 + static member inline CommandPreprocessWriteBitNv = unbox 0x00040000 + type VkObjectType with + static member inline IndirectCommandsLayoutNv = unbox 1000277000 + type VkPipelineCreateFlags with + static member inline IndirectBindableBitNv = unbox 0x00040000 + type VkPipelineStageFlags with + static member inline CommandPreprocessBitNv = unbox 0x00020000 module VkRaw = [] - type VkGetPhysicalDeviceExternalBufferPropertiesKHRDel = delegate of VkPhysicalDevice * nativeptr * nativeptr -> unit + type VkGetGeneratedCommandsMemoryRequirementsNVDel = delegate of VkDevice * nativeptr * nativeptr -> unit + [] + type VkCmdPreprocessGeneratedCommandsNVDel = delegate of VkCommandBuffer * nativeptr -> unit + [] + type VkCmdExecuteGeneratedCommandsNVDel = delegate of VkCommandBuffer * VkBool32 * nativeptr -> unit + [] + type VkCmdBindPipelineShaderGroupNVDel = delegate of VkCommandBuffer * VkPipelineBindPoint * VkPipeline * uint32 -> unit + [] + type VkCreateIndirectCommandsLayoutNVDel = delegate of VkDevice * nativeptr * nativeptr * nativeptr -> VkResult + [] + type VkDestroyIndirectCommandsLayoutNVDel = delegate of VkDevice * VkIndirectCommandsLayoutNV * nativeptr -> unit [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRExternalMemoryCapabilities") - static let s_vkGetPhysicalDeviceExternalBufferPropertiesKHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceExternalBufferPropertiesKHR" + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading NVDeviceGeneratedCommands") + static let s_vkGetGeneratedCommandsMemoryRequirementsNVDel = VkRaw.vkImportInstanceDelegate "vkGetGeneratedCommandsMemoryRequirementsNV" + static let s_vkCmdPreprocessGeneratedCommandsNVDel = VkRaw.vkImportInstanceDelegate "vkCmdPreprocessGeneratedCommandsNV" + static let s_vkCmdExecuteGeneratedCommandsNVDel = VkRaw.vkImportInstanceDelegate "vkCmdExecuteGeneratedCommandsNV" + static let s_vkCmdBindPipelineShaderGroupNVDel = VkRaw.vkImportInstanceDelegate "vkCmdBindPipelineShaderGroupNV" + static let s_vkCreateIndirectCommandsLayoutNVDel = VkRaw.vkImportInstanceDelegate "vkCreateIndirectCommandsLayoutNV" + static let s_vkDestroyIndirectCommandsLayoutNVDel = VkRaw.vkImportInstanceDelegate "vkDestroyIndirectCommandsLayoutNV" static do Report.End(3) |> ignore - static member vkGetPhysicalDeviceExternalBufferPropertiesKHR = s_vkGetPhysicalDeviceExternalBufferPropertiesKHRDel - let vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice : VkPhysicalDevice, pExternalBufferInfo : nativeptr, pExternalBufferProperties : nativeptr) = Loader.vkGetPhysicalDeviceExternalBufferPropertiesKHR.Invoke(physicalDevice, pExternalBufferInfo, pExternalBufferProperties) + static member vkGetGeneratedCommandsMemoryRequirementsNV = s_vkGetGeneratedCommandsMemoryRequirementsNVDel + static member vkCmdPreprocessGeneratedCommandsNV = s_vkCmdPreprocessGeneratedCommandsNVDel + static member vkCmdExecuteGeneratedCommandsNV = s_vkCmdExecuteGeneratedCommandsNVDel + static member vkCmdBindPipelineShaderGroupNV = s_vkCmdBindPipelineShaderGroupNVDel + static member vkCreateIndirectCommandsLayoutNV = s_vkCreateIndirectCommandsLayoutNVDel + static member vkDestroyIndirectCommandsLayoutNV = s_vkDestroyIndirectCommandsLayoutNVDel + let vkGetGeneratedCommandsMemoryRequirementsNV(device : VkDevice, pInfo : nativeptr, pMemoryRequirements : nativeptr) = Loader.vkGetGeneratedCommandsMemoryRequirementsNV.Invoke(device, pInfo, pMemoryRequirements) + let vkCmdPreprocessGeneratedCommandsNV(commandBuffer : VkCommandBuffer, pGeneratedCommandsInfo : nativeptr) = Loader.vkCmdPreprocessGeneratedCommandsNV.Invoke(commandBuffer, pGeneratedCommandsInfo) + let vkCmdExecuteGeneratedCommandsNV(commandBuffer : VkCommandBuffer, isPreprocessed : VkBool32, pGeneratedCommandsInfo : nativeptr) = Loader.vkCmdExecuteGeneratedCommandsNV.Invoke(commandBuffer, isPreprocessed, pGeneratedCommandsInfo) + let vkCmdBindPipelineShaderGroupNV(commandBuffer : VkCommandBuffer, pipelineBindPoint : VkPipelineBindPoint, pipeline : VkPipeline, groupIndex : uint32) = Loader.vkCmdBindPipelineShaderGroupNV.Invoke(commandBuffer, pipelineBindPoint, pipeline, groupIndex) + let vkCreateIndirectCommandsLayoutNV(device : VkDevice, pCreateInfo : nativeptr, pAllocator : nativeptr, pIndirectCommandsLayout : nativeptr) = Loader.vkCreateIndirectCommandsLayoutNV.Invoke(device, pCreateInfo, pAllocator, pIndirectCommandsLayout) + let vkDestroyIndirectCommandsLayoutNV(device : VkDevice, indirectCommandsLayout : VkIndirectCommandsLayoutNV, pAllocator : nativeptr) = Loader.vkDestroyIndirectCommandsLayoutNV.Invoke(device, indirectCommandsLayout, pAllocator) -module KHRExternalMemory = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRExternalMemoryCapabilities - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_KHR_external_memory" - let Number = 73 +/// Promoted to Vulkan11. +module KHRMaintenance2 = + let Type = ExtensionType.Device + let Name = "VK_KHR_maintenance2" + let Number = 118 - let Required = [ KHRExternalMemoryCapabilities.Name ] + type VkPointClippingBehaviorKHR = Vulkan11.VkPointClippingBehavior + type VkTessellationDomainOriginKHR = Vulkan11.VkTessellationDomainOrigin + type VkImageViewUsageCreateInfoKHR = Vulkan11.VkImageViewUsageCreateInfo - type VkExportMemoryAllocateInfoKHR = VkExportMemoryAllocateInfo + type VkInputAttachmentAspectReferenceKHR = Vulkan11.VkInputAttachmentAspectReference - type VkExternalMemoryBufferCreateInfoKHR = VkExternalMemoryBufferCreateInfo + type VkPhysicalDevicePointClippingPropertiesKHR = Vulkan11.VkPhysicalDevicePointClippingProperties - type VkExternalMemoryImageCreateInfoKHR = VkExternalMemoryImageCreateInfo + type VkPipelineTessellationDomainOriginStateCreateInfoKHR = Vulkan11.VkPipelineTessellationDomainOriginStateCreateInfo + + type VkRenderPassInputAttachmentAspectCreateInfoKHR = Vulkan11.VkRenderPassInputAttachmentAspectCreateInfo [] module EnumExtensions = - type VkResult with - static member inline ErrorInvalidExternalHandleKhr = unbox 1000072003 + type VkImageCreateFlags with + static member inline BlockTexelViewCompatibleBitKhr = unbox 0x00000080 + static member inline ExtendedUsageBitKhr = unbox 0x00000100 + type VkImageLayout with + static member inline DepthReadOnlyStencilAttachmentOptimalKhr = unbox 1000117000 + static member inline DepthAttachmentStencilReadOnlyOptimalKhr = unbox 1000117001 + type Vulkan11.VkPointClippingBehavior with + static member inline AllClipPlanesKhr = unbox 0 + static member inline UserClipPlanesOnlyKhr = unbox 1 + type Vulkan11.VkTessellationDomainOrigin with + static member inline UpperLeftKhr = unbox 0 + static member inline LowerLeftKhr = unbox 1 -module EXTQueueFamilyForeign = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRExternalMemory - open KHRExternalMemoryCapabilities - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_EXT_queue_family_foreign" - let Number = 127 +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +/// Promoted to Vulkan11. +module KHRMultiview = + let Type = ExtensionType.Device + let Name = "VK_KHR_multiview" + let Number = 54 - let Required = [ KHRExternalMemory.Name ] + type VkPhysicalDeviceMultiviewFeaturesKHR = Vulkan11.VkPhysicalDeviceMultiviewFeatures + type VkPhysicalDeviceMultiviewPropertiesKHR = Vulkan11.VkPhysicalDeviceMultiviewProperties -module KHRGetMemoryRequirements2 = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_KHR_get_memory_requirements2" - let Number = 147 + type VkRenderPassMultiviewCreateInfoKHR = Vulkan11.VkRenderPassMultiviewCreateInfo - type VkBufferMemoryRequirementsInfo2KHR = VkBufferMemoryRequirementsInfo2 + [] + module EnumExtensions = + type VkDependencyFlags with + static member inline ViewLocalBitKhr = unbox 0x00000002 + + +/// Requires (KHRMultiview, KHRMaintenance2) | Vulkan11. +/// Promoted to Vulkan12. +module KHRCreateRenderpass2 = + let Type = ExtensionType.Device + let Name = "VK_KHR_create_renderpass2" + let Number = 110 + + type VkAttachmentDescription2KHR = Vulkan12.VkAttachmentDescription2 + + type VkAttachmentReference2KHR = Vulkan12.VkAttachmentReference2 + + type VkRenderPassCreateInfo2KHR = Vulkan12.VkRenderPassCreateInfo2 - type VkImageMemoryRequirementsInfo2KHR = VkImageMemoryRequirementsInfo2 + type VkSubpassBeginInfoKHR = Vulkan12.VkSubpassBeginInfo - type VkImageSparseMemoryRequirementsInfo2KHR = VkImageSparseMemoryRequirementsInfo2 + type VkSubpassDependency2KHR = Vulkan12.VkSubpassDependency2 - type VkMemoryRequirements2KHR = VkMemoryRequirements2 + type VkSubpassDescription2KHR = Vulkan12.VkSubpassDescription2 - type VkSparseImageMemoryRequirements2KHR = VkSparseImageMemoryRequirements2 + type VkSubpassEndInfoKHR = Vulkan12.VkSubpassEndInfo module VkRaw = [] - type VkGetImageMemoryRequirements2KHRDel = delegate of VkDevice * nativeptr * nativeptr -> unit + type VkCreateRenderPass2KHRDel = delegate of VkDevice * nativeptr * nativeptr * nativeptr -> VkResult [] - type VkGetBufferMemoryRequirements2KHRDel = delegate of VkDevice * nativeptr * nativeptr -> unit + type VkCmdBeginRenderPass2KHRDel = delegate of VkCommandBuffer * nativeptr * nativeptr -> unit [] - type VkGetImageSparseMemoryRequirements2KHRDel = delegate of VkDevice * nativeptr * nativeptr * nativeptr -> unit + type VkCmdNextSubpass2KHRDel = delegate of VkCommandBuffer * nativeptr * nativeptr -> unit + [] + type VkCmdEndRenderPass2KHRDel = delegate of VkCommandBuffer * nativeptr -> unit [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRGetMemoryRequirements2") - static let s_vkGetImageMemoryRequirements2KHRDel = VkRaw.vkImportInstanceDelegate "vkGetImageMemoryRequirements2KHR" - static let s_vkGetBufferMemoryRequirements2KHRDel = VkRaw.vkImportInstanceDelegate "vkGetBufferMemoryRequirements2KHR" - static let s_vkGetImageSparseMemoryRequirements2KHRDel = VkRaw.vkImportInstanceDelegate "vkGetImageSparseMemoryRequirements2KHR" + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRCreateRenderpass2") + static let s_vkCreateRenderPass2KHRDel = VkRaw.vkImportInstanceDelegate "vkCreateRenderPass2KHR" + static let s_vkCmdBeginRenderPass2KHRDel = VkRaw.vkImportInstanceDelegate "vkCmdBeginRenderPass2KHR" + static let s_vkCmdNextSubpass2KHRDel = VkRaw.vkImportInstanceDelegate "vkCmdNextSubpass2KHR" + static let s_vkCmdEndRenderPass2KHRDel = VkRaw.vkImportInstanceDelegate "vkCmdEndRenderPass2KHR" static do Report.End(3) |> ignore - static member vkGetImageMemoryRequirements2KHR = s_vkGetImageMemoryRequirements2KHRDel - static member vkGetBufferMemoryRequirements2KHR = s_vkGetBufferMemoryRequirements2KHRDel - static member vkGetImageSparseMemoryRequirements2KHR = s_vkGetImageSparseMemoryRequirements2KHRDel - let vkGetImageMemoryRequirements2KHR(device : VkDevice, pInfo : nativeptr, pMemoryRequirements : nativeptr) = Loader.vkGetImageMemoryRequirements2KHR.Invoke(device, pInfo, pMemoryRequirements) - let vkGetBufferMemoryRequirements2KHR(device : VkDevice, pInfo : nativeptr, pMemoryRequirements : nativeptr) = Loader.vkGetBufferMemoryRequirements2KHR.Invoke(device, pInfo, pMemoryRequirements) - let vkGetImageSparseMemoryRequirements2KHR(device : VkDevice, pInfo : nativeptr, pSparseMemoryRequirementCount : nativeptr, pSparseMemoryRequirements : nativeptr) = Loader.vkGetImageSparseMemoryRequirements2KHR.Invoke(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) + static member vkCreateRenderPass2KHR = s_vkCreateRenderPass2KHRDel + static member vkCmdBeginRenderPass2KHR = s_vkCmdBeginRenderPass2KHRDel + static member vkCmdNextSubpass2KHR = s_vkCmdNextSubpass2KHRDel + static member vkCmdEndRenderPass2KHR = s_vkCmdEndRenderPass2KHRDel + let vkCreateRenderPass2KHR(device : VkDevice, pCreateInfo : nativeptr, pAllocator : nativeptr, pRenderPass : nativeptr) = Loader.vkCreateRenderPass2KHR.Invoke(device, pCreateInfo, pAllocator, pRenderPass) + let vkCmdBeginRenderPass2KHR(commandBuffer : VkCommandBuffer, pRenderPassBegin : nativeptr, pSubpassBeginInfo : nativeptr) = Loader.vkCmdBeginRenderPass2KHR.Invoke(commandBuffer, pRenderPassBegin, pSubpassBeginInfo) + let vkCmdNextSubpass2KHR(commandBuffer : VkCommandBuffer, pSubpassBeginInfo : nativeptr, pSubpassEndInfo : nativeptr) = Loader.vkCmdNextSubpass2KHR.Invoke(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) + let vkCmdEndRenderPass2KHR(commandBuffer : VkCommandBuffer, pSubpassEndInfo : nativeptr) = Loader.vkCmdEndRenderPass2KHR.Invoke(commandBuffer, pSubpassEndInfo) + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +/// Promoted to Vulkan13. +module KHRFormatFeatureFlags2 = + let Type = ExtensionType.Device + let Name = "VK_KHR_format_feature_flags2" + let Number = 361 + + type VkFormatFeatureFlags2KHR = Vulkan13.VkFormatFeatureFlags2 + + type VkFormatProperties3KHR = Vulkan13.VkFormatProperties3 + + + +/// Requires ((KHRGetPhysicalDeviceProperties2 | Vulkan11), KHRCreateRenderpass2) | Vulkan12. +module KHRFragmentShadingRate = + let Type = ExtensionType.Device + let Name = "VK_KHR_fragment_shading_rate" + let Number = 227 + + type VkFragmentShadingRateCombinerOpKHR = + | Keep = 0 + | Replace = 1 + | Min = 2 + | Max = 3 + | Mul = 4 + + /// Array of 2 VkFragmentShadingRateCombinerOpKHR values. + [] + type VkFragmentShadingRateCombinerOpKHR_2 = + struct + [] + val mutable public First : VkFragmentShadingRateCombinerOpKHR + + member x.Item + with get (i : int) : VkFragmentShadingRateCombinerOpKHR = + if i < 0 || i > 1 then raise <| IndexOutOfRangeException() + let ptr = &&x |> NativePtr.toNativeInt |> NativePtr.ofNativeInt + NativePtr.get ptr i + and set (i : int) (value : VkFragmentShadingRateCombinerOpKHR) = + if i < 0 || i > 1 then raise <| IndexOutOfRangeException() + let ptr = &&x |> NativePtr.toNativeInt |> NativePtr.ofNativeInt + NativePtr.set ptr i value + + member x.Length = 2 + + interface System.Collections.IEnumerable with + member x.GetEnumerator() = let x = x in (Seq.init 2 (fun i -> x.[i])).GetEnumerator() :> System.Collections.IEnumerator + interface System.Collections.Generic.IEnumerable with + member x.GetEnumerator() = let x = x in (Seq.init 2 (fun i -> x.[i])).GetEnumerator() + end + + [] + type VkFragmentShadingRateAttachmentInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public pFragmentShadingRateAttachment : nativeptr + val mutable public shadingRateAttachmentTexelSize : VkExtent2D + + new(pNext : nativeint, pFragmentShadingRateAttachment : nativeptr, shadingRateAttachmentTexelSize : VkExtent2D) = + { + sType = 1000226000u + pNext = pNext + pFragmentShadingRateAttachment = pFragmentShadingRateAttachment + shadingRateAttachmentTexelSize = shadingRateAttachmentTexelSize + } + + new(pFragmentShadingRateAttachment : nativeptr, shadingRateAttachmentTexelSize : VkExtent2D) = + VkFragmentShadingRateAttachmentInfoKHR(Unchecked.defaultof, pFragmentShadingRateAttachment, shadingRateAttachmentTexelSize) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.pFragmentShadingRateAttachment = Unchecked.defaultof> && x.shadingRateAttachmentTexelSize = Unchecked.defaultof + + static member Empty = + VkFragmentShadingRateAttachmentInfoKHR(Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "pFragmentShadingRateAttachment = %A" x.pFragmentShadingRateAttachment + sprintf "shadingRateAttachmentTexelSize = %A" x.shadingRateAttachmentTexelSize + ] |> sprintf "VkFragmentShadingRateAttachmentInfoKHR { %s }" + end + + [] + type VkPhysicalDeviceFragmentShadingRateFeaturesKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public pipelineFragmentShadingRate : VkBool32 + val mutable public primitiveFragmentShadingRate : VkBool32 + val mutable public attachmentFragmentShadingRate : VkBool32 + + new(pNext : nativeint, pipelineFragmentShadingRate : VkBool32, primitiveFragmentShadingRate : VkBool32, attachmentFragmentShadingRate : VkBool32) = + { + sType = 1000226003u + pNext = pNext + pipelineFragmentShadingRate = pipelineFragmentShadingRate + primitiveFragmentShadingRate = primitiveFragmentShadingRate + attachmentFragmentShadingRate = attachmentFragmentShadingRate + } + + new(pipelineFragmentShadingRate : VkBool32, primitiveFragmentShadingRate : VkBool32, attachmentFragmentShadingRate : VkBool32) = + VkPhysicalDeviceFragmentShadingRateFeaturesKHR(Unchecked.defaultof, pipelineFragmentShadingRate, primitiveFragmentShadingRate, attachmentFragmentShadingRate) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.pipelineFragmentShadingRate = Unchecked.defaultof && x.primitiveFragmentShadingRate = Unchecked.defaultof && x.attachmentFragmentShadingRate = Unchecked.defaultof + + static member Empty = + VkPhysicalDeviceFragmentShadingRateFeaturesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "pipelineFragmentShadingRate = %A" x.pipelineFragmentShadingRate + sprintf "primitiveFragmentShadingRate = %A" x.primitiveFragmentShadingRate + sprintf "attachmentFragmentShadingRate = %A" x.attachmentFragmentShadingRate + ] |> sprintf "VkPhysicalDeviceFragmentShadingRateFeaturesKHR { %s }" + end + + [] + type VkPhysicalDeviceFragmentShadingRateKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public sampleCounts : VkSampleCountFlags + val mutable public fragmentSize : VkExtent2D + + new(pNext : nativeint, sampleCounts : VkSampleCountFlags, fragmentSize : VkExtent2D) = + { + sType = 1000226004u + pNext = pNext + sampleCounts = sampleCounts + fragmentSize = fragmentSize + } + + new(sampleCounts : VkSampleCountFlags, fragmentSize : VkExtent2D) = + VkPhysicalDeviceFragmentShadingRateKHR(Unchecked.defaultof, sampleCounts, fragmentSize) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.sampleCounts = Unchecked.defaultof && x.fragmentSize = Unchecked.defaultof + + static member Empty = + VkPhysicalDeviceFragmentShadingRateKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "sampleCounts = %A" x.sampleCounts + sprintf "fragmentSize = %A" x.fragmentSize + ] |> sprintf "VkPhysicalDeviceFragmentShadingRateKHR { %s }" + end + + [] + type VkPhysicalDeviceFragmentShadingRatePropertiesKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public minFragmentShadingRateAttachmentTexelSize : VkExtent2D + val mutable public maxFragmentShadingRateAttachmentTexelSize : VkExtent2D + val mutable public maxFragmentShadingRateAttachmentTexelSizeAspectRatio : uint32 + val mutable public primitiveFragmentShadingRateWithMultipleViewports : VkBool32 + val mutable public layeredShadingRateAttachments : VkBool32 + val mutable public fragmentShadingRateNonTrivialCombinerOps : VkBool32 + val mutable public maxFragmentSize : VkExtent2D + val mutable public maxFragmentSizeAspectRatio : uint32 + val mutable public maxFragmentShadingRateCoverageSamples : uint32 + val mutable public maxFragmentShadingRateRasterizationSamples : VkSampleCountFlags + val mutable public fragmentShadingRateWithShaderDepthStencilWrites : VkBool32 + val mutable public fragmentShadingRateWithSampleMask : VkBool32 + val mutable public fragmentShadingRateWithShaderSampleMask : VkBool32 + val mutable public fragmentShadingRateWithConservativeRasterization : VkBool32 + val mutable public fragmentShadingRateWithFragmentShaderInterlock : VkBool32 + val mutable public fragmentShadingRateWithCustomSampleLocations : VkBool32 + val mutable public fragmentShadingRateStrictMultiplyCombiner : VkBool32 + + new(pNext : nativeint, minFragmentShadingRateAttachmentTexelSize : VkExtent2D, maxFragmentShadingRateAttachmentTexelSize : VkExtent2D, maxFragmentShadingRateAttachmentTexelSizeAspectRatio : uint32, primitiveFragmentShadingRateWithMultipleViewports : VkBool32, layeredShadingRateAttachments : VkBool32, fragmentShadingRateNonTrivialCombinerOps : VkBool32, maxFragmentSize : VkExtent2D, maxFragmentSizeAspectRatio : uint32, maxFragmentShadingRateCoverageSamples : uint32, maxFragmentShadingRateRasterizationSamples : VkSampleCountFlags, fragmentShadingRateWithShaderDepthStencilWrites : VkBool32, fragmentShadingRateWithSampleMask : VkBool32, fragmentShadingRateWithShaderSampleMask : VkBool32, fragmentShadingRateWithConservativeRasterization : VkBool32, fragmentShadingRateWithFragmentShaderInterlock : VkBool32, fragmentShadingRateWithCustomSampleLocations : VkBool32, fragmentShadingRateStrictMultiplyCombiner : VkBool32) = + { + sType = 1000226002u + pNext = pNext + minFragmentShadingRateAttachmentTexelSize = minFragmentShadingRateAttachmentTexelSize + maxFragmentShadingRateAttachmentTexelSize = maxFragmentShadingRateAttachmentTexelSize + maxFragmentShadingRateAttachmentTexelSizeAspectRatio = maxFragmentShadingRateAttachmentTexelSizeAspectRatio + primitiveFragmentShadingRateWithMultipleViewports = primitiveFragmentShadingRateWithMultipleViewports + layeredShadingRateAttachments = layeredShadingRateAttachments + fragmentShadingRateNonTrivialCombinerOps = fragmentShadingRateNonTrivialCombinerOps + maxFragmentSize = maxFragmentSize + maxFragmentSizeAspectRatio = maxFragmentSizeAspectRatio + maxFragmentShadingRateCoverageSamples = maxFragmentShadingRateCoverageSamples + maxFragmentShadingRateRasterizationSamples = maxFragmentShadingRateRasterizationSamples + fragmentShadingRateWithShaderDepthStencilWrites = fragmentShadingRateWithShaderDepthStencilWrites + fragmentShadingRateWithSampleMask = fragmentShadingRateWithSampleMask + fragmentShadingRateWithShaderSampleMask = fragmentShadingRateWithShaderSampleMask + fragmentShadingRateWithConservativeRasterization = fragmentShadingRateWithConservativeRasterization + fragmentShadingRateWithFragmentShaderInterlock = fragmentShadingRateWithFragmentShaderInterlock + fragmentShadingRateWithCustomSampleLocations = fragmentShadingRateWithCustomSampleLocations + fragmentShadingRateStrictMultiplyCombiner = fragmentShadingRateStrictMultiplyCombiner + } + + new(minFragmentShadingRateAttachmentTexelSize : VkExtent2D, maxFragmentShadingRateAttachmentTexelSize : VkExtent2D, maxFragmentShadingRateAttachmentTexelSizeAspectRatio : uint32, primitiveFragmentShadingRateWithMultipleViewports : VkBool32, layeredShadingRateAttachments : VkBool32, fragmentShadingRateNonTrivialCombinerOps : VkBool32, maxFragmentSize : VkExtent2D, maxFragmentSizeAspectRatio : uint32, maxFragmentShadingRateCoverageSamples : uint32, maxFragmentShadingRateRasterizationSamples : VkSampleCountFlags, fragmentShadingRateWithShaderDepthStencilWrites : VkBool32, fragmentShadingRateWithSampleMask : VkBool32, fragmentShadingRateWithShaderSampleMask : VkBool32, fragmentShadingRateWithConservativeRasterization : VkBool32, fragmentShadingRateWithFragmentShaderInterlock : VkBool32, fragmentShadingRateWithCustomSampleLocations : VkBool32, fragmentShadingRateStrictMultiplyCombiner : VkBool32) = + VkPhysicalDeviceFragmentShadingRatePropertiesKHR(Unchecked.defaultof, minFragmentShadingRateAttachmentTexelSize, maxFragmentShadingRateAttachmentTexelSize, maxFragmentShadingRateAttachmentTexelSizeAspectRatio, primitiveFragmentShadingRateWithMultipleViewports, layeredShadingRateAttachments, fragmentShadingRateNonTrivialCombinerOps, maxFragmentSize, maxFragmentSizeAspectRatio, maxFragmentShadingRateCoverageSamples, maxFragmentShadingRateRasterizationSamples, fragmentShadingRateWithShaderDepthStencilWrites, fragmentShadingRateWithSampleMask, fragmentShadingRateWithShaderSampleMask, fragmentShadingRateWithConservativeRasterization, fragmentShadingRateWithFragmentShaderInterlock, fragmentShadingRateWithCustomSampleLocations, fragmentShadingRateStrictMultiplyCombiner) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.minFragmentShadingRateAttachmentTexelSize = Unchecked.defaultof && x.maxFragmentShadingRateAttachmentTexelSize = Unchecked.defaultof && x.maxFragmentShadingRateAttachmentTexelSizeAspectRatio = Unchecked.defaultof && x.primitiveFragmentShadingRateWithMultipleViewports = Unchecked.defaultof && x.layeredShadingRateAttachments = Unchecked.defaultof && x.fragmentShadingRateNonTrivialCombinerOps = Unchecked.defaultof && x.maxFragmentSize = Unchecked.defaultof && x.maxFragmentSizeAspectRatio = Unchecked.defaultof && x.maxFragmentShadingRateCoverageSamples = Unchecked.defaultof && x.maxFragmentShadingRateRasterizationSamples = Unchecked.defaultof && x.fragmentShadingRateWithShaderDepthStencilWrites = Unchecked.defaultof && x.fragmentShadingRateWithSampleMask = Unchecked.defaultof && x.fragmentShadingRateWithShaderSampleMask = Unchecked.defaultof && x.fragmentShadingRateWithConservativeRasterization = Unchecked.defaultof && x.fragmentShadingRateWithFragmentShaderInterlock = Unchecked.defaultof && x.fragmentShadingRateWithCustomSampleLocations = Unchecked.defaultof && x.fragmentShadingRateStrictMultiplyCombiner = Unchecked.defaultof + + static member Empty = + VkPhysicalDeviceFragmentShadingRatePropertiesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "minFragmentShadingRateAttachmentTexelSize = %A" x.minFragmentShadingRateAttachmentTexelSize + sprintf "maxFragmentShadingRateAttachmentTexelSize = %A" x.maxFragmentShadingRateAttachmentTexelSize + sprintf "maxFragmentShadingRateAttachmentTexelSizeAspectRatio = %A" x.maxFragmentShadingRateAttachmentTexelSizeAspectRatio + sprintf "primitiveFragmentShadingRateWithMultipleViewports = %A" x.primitiveFragmentShadingRateWithMultipleViewports + sprintf "layeredShadingRateAttachments = %A" x.layeredShadingRateAttachments + sprintf "fragmentShadingRateNonTrivialCombinerOps = %A" x.fragmentShadingRateNonTrivialCombinerOps + sprintf "maxFragmentSize = %A" x.maxFragmentSize + sprintf "maxFragmentSizeAspectRatio = %A" x.maxFragmentSizeAspectRatio + sprintf "maxFragmentShadingRateCoverageSamples = %A" x.maxFragmentShadingRateCoverageSamples + sprintf "maxFragmentShadingRateRasterizationSamples = %A" x.maxFragmentShadingRateRasterizationSamples + sprintf "fragmentShadingRateWithShaderDepthStencilWrites = %A" x.fragmentShadingRateWithShaderDepthStencilWrites + sprintf "fragmentShadingRateWithSampleMask = %A" x.fragmentShadingRateWithSampleMask + sprintf "fragmentShadingRateWithShaderSampleMask = %A" x.fragmentShadingRateWithShaderSampleMask + sprintf "fragmentShadingRateWithConservativeRasterization = %A" x.fragmentShadingRateWithConservativeRasterization + sprintf "fragmentShadingRateWithFragmentShaderInterlock = %A" x.fragmentShadingRateWithFragmentShaderInterlock + sprintf "fragmentShadingRateWithCustomSampleLocations = %A" x.fragmentShadingRateWithCustomSampleLocations + sprintf "fragmentShadingRateStrictMultiplyCombiner = %A" x.fragmentShadingRateStrictMultiplyCombiner + ] |> sprintf "VkPhysicalDeviceFragmentShadingRatePropertiesKHR { %s }" + end + + [] + type VkPipelineFragmentShadingRateStateCreateInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public fragmentSize : VkExtent2D + val mutable public combinerOps : VkFragmentShadingRateCombinerOpKHR_2 + + new(pNext : nativeint, fragmentSize : VkExtent2D, combinerOps : VkFragmentShadingRateCombinerOpKHR_2) = + { + sType = 1000226001u + pNext = pNext + fragmentSize = fragmentSize + combinerOps = combinerOps + } + + new(fragmentSize : VkExtent2D, combinerOps : VkFragmentShadingRateCombinerOpKHR_2) = + VkPipelineFragmentShadingRateStateCreateInfoKHR(Unchecked.defaultof, fragmentSize, combinerOps) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.fragmentSize = Unchecked.defaultof && x.combinerOps = Unchecked.defaultof + + static member Empty = + VkPipelineFragmentShadingRateStateCreateInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "fragmentSize = %A" x.fragmentSize + sprintf "combinerOps = %A" x.combinerOps + ] |> sprintf "VkPipelineFragmentShadingRateStateCreateInfoKHR { %s }" + end + + + [] + module EnumExtensions = + type VkAccessFlags with + static member inline FragmentShadingRateAttachmentReadBitKhr = unbox 0x00800000 + type VkDynamicState with + static member inline FragmentShadingRateKhr = unbox 1000226000 + type VkFormatFeatureFlags with + static member inline FragmentShadingRateAttachmentBitKhr = unbox 0x40000000 + type VkImageLayout with + static member inline FragmentShadingRateAttachmentOptimalKhr = unbox 1000164003 + type VkImageUsageFlags with + static member inline FragmentShadingRateAttachmentBitKhr = unbox 0x00000100 + type VkPipelineStageFlags with + static member inline FragmentShadingRateAttachmentBitKhr = unbox 0x00400000 + + module VkRaw = + [] + type VkGetPhysicalDeviceFragmentShadingRatesKHRDel = delegate of VkPhysicalDevice * nativeptr * nativeptr -> VkResult + [] + type VkCmdSetFragmentShadingRateKHRDel = delegate of VkCommandBuffer * nativeptr * VkFragmentShadingRateCombinerOpKHR_2 -> unit + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRFragmentShadingRate") + static let s_vkGetPhysicalDeviceFragmentShadingRatesKHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceFragmentShadingRatesKHR" + static let s_vkCmdSetFragmentShadingRateKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdSetFragmentShadingRateKHR" + static do Report.End(3) |> ignore + static member vkGetPhysicalDeviceFragmentShadingRatesKHR = s_vkGetPhysicalDeviceFragmentShadingRatesKHRDel + static member vkCmdSetFragmentShadingRateKHR = s_vkCmdSetFragmentShadingRateKHRDel + let vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice : VkPhysicalDevice, pFragmentShadingRateCount : nativeptr, pFragmentShadingRates : nativeptr) = Loader.vkGetPhysicalDeviceFragmentShadingRatesKHR.Invoke(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) + let vkCmdSetFragmentShadingRateKHR(commandBuffer : VkCommandBuffer, pFragmentSize : nativeptr, combinerOps : VkFragmentShadingRateCombinerOpKHR_2) = Loader.vkCmdSetFragmentShadingRateKHR.Invoke(commandBuffer, pFragmentSize, combinerOps) + + [] + module ``KHRFormatFeatureFlags2 | Vulkan13`` = + [] + module EnumExtensions = + type Vulkan13.VkFormatFeatureFlags2 with + static member inline FormatFeature2FragmentShadingRateAttachmentBitKhr = unbox 0x40000000 + + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module NVShadingRateImage = + let Type = ExtensionType.Device + let Name = "VK_NV_shading_rate_image" + let Number = 165 + + type VkShadingRatePaletteEntryNV = + | NoInvocations = 0 + | D16InvocationsPerPixel = 1 + | D8InvocationsPerPixel = 2 + | D4InvocationsPerPixel = 3 + | D2InvocationsPerPixel = 4 + | D1InvocationPerPixel = 5 + | D1InvocationPer2x1Pixels = 6 + | D1InvocationPer1x2Pixels = 7 + | D1InvocationPer2x2Pixels = 8 + | D1InvocationPer4x2Pixels = 9 + | D1InvocationPer2x4Pixels = 10 + | D1InvocationPer4x4Pixels = 11 + + type VkCoarseSampleOrderTypeNV = + | Default = 0 + | Custom = 1 + | PixelMajor = 2 + | SampleMajor = 3 + + + [] + type VkCoarseSampleLocationNV = + struct + val mutable public pixelX : uint32 + val mutable public pixelY : uint32 + val mutable public sample : uint32 + + new(pixelX : uint32, pixelY : uint32, sample : uint32) = + { + pixelX = pixelX + pixelY = pixelY + sample = sample + } + + member x.IsEmpty = + x.pixelX = Unchecked.defaultof && x.pixelY = Unchecked.defaultof && x.sample = Unchecked.defaultof + + static member Empty = + VkCoarseSampleLocationNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "pixelX = %A" x.pixelX + sprintf "pixelY = %A" x.pixelY + sprintf "sample = %A" x.sample + ] |> sprintf "VkCoarseSampleLocationNV { %s }" + end + + [] + type VkCoarseSampleOrderCustomNV = + struct + val mutable public shadingRate : VkShadingRatePaletteEntryNV + val mutable public sampleCount : uint32 + val mutable public sampleLocationCount : uint32 + val mutable public pSampleLocations : nativeptr + + new(shadingRate : VkShadingRatePaletteEntryNV, sampleCount : uint32, sampleLocationCount : uint32, pSampleLocations : nativeptr) = + { + shadingRate = shadingRate + sampleCount = sampleCount + sampleLocationCount = sampleLocationCount + pSampleLocations = pSampleLocations + } + + member x.IsEmpty = + x.shadingRate = Unchecked.defaultof && x.sampleCount = Unchecked.defaultof && x.sampleLocationCount = Unchecked.defaultof && x.pSampleLocations = Unchecked.defaultof> + + static member Empty = + VkCoarseSampleOrderCustomNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + + override x.ToString() = + String.concat "; " [ + sprintf "shadingRate = %A" x.shadingRate + sprintf "sampleCount = %A" x.sampleCount + sprintf "sampleLocationCount = %A" x.sampleLocationCount + sprintf "pSampleLocations = %A" x.pSampleLocations + ] |> sprintf "VkCoarseSampleOrderCustomNV { %s }" + end + + [] + type VkPhysicalDeviceShadingRateImageFeaturesNV = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public shadingRateImage : VkBool32 + val mutable public shadingRateCoarseSampleOrder : VkBool32 + + new(pNext : nativeint, shadingRateImage : VkBool32, shadingRateCoarseSampleOrder : VkBool32) = + { + sType = 1000164001u + pNext = pNext + shadingRateImage = shadingRateImage + shadingRateCoarseSampleOrder = shadingRateCoarseSampleOrder + } + + new(shadingRateImage : VkBool32, shadingRateCoarseSampleOrder : VkBool32) = + VkPhysicalDeviceShadingRateImageFeaturesNV(Unchecked.defaultof, shadingRateImage, shadingRateCoarseSampleOrder) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.shadingRateImage = Unchecked.defaultof && x.shadingRateCoarseSampleOrder = Unchecked.defaultof + + static member Empty = + VkPhysicalDeviceShadingRateImageFeaturesNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "shadingRateImage = %A" x.shadingRateImage + sprintf "shadingRateCoarseSampleOrder = %A" x.shadingRateCoarseSampleOrder + ] |> sprintf "VkPhysicalDeviceShadingRateImageFeaturesNV { %s }" + end + + [] + type VkPhysicalDeviceShadingRateImagePropertiesNV = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public shadingRateTexelSize : VkExtent2D + val mutable public shadingRatePaletteSize : uint32 + val mutable public shadingRateMaxCoarseSamples : uint32 + + new(pNext : nativeint, shadingRateTexelSize : VkExtent2D, shadingRatePaletteSize : uint32, shadingRateMaxCoarseSamples : uint32) = + { + sType = 1000164002u + pNext = pNext + shadingRateTexelSize = shadingRateTexelSize + shadingRatePaletteSize = shadingRatePaletteSize + shadingRateMaxCoarseSamples = shadingRateMaxCoarseSamples + } + + new(shadingRateTexelSize : VkExtent2D, shadingRatePaletteSize : uint32, shadingRateMaxCoarseSamples : uint32) = + VkPhysicalDeviceShadingRateImagePropertiesNV(Unchecked.defaultof, shadingRateTexelSize, shadingRatePaletteSize, shadingRateMaxCoarseSamples) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.shadingRateTexelSize = Unchecked.defaultof && x.shadingRatePaletteSize = Unchecked.defaultof && x.shadingRateMaxCoarseSamples = Unchecked.defaultof + + static member Empty = + VkPhysicalDeviceShadingRateImagePropertiesNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "shadingRateTexelSize = %A" x.shadingRateTexelSize + sprintf "shadingRatePaletteSize = %A" x.shadingRatePaletteSize + sprintf "shadingRateMaxCoarseSamples = %A" x.shadingRateMaxCoarseSamples + ] |> sprintf "VkPhysicalDeviceShadingRateImagePropertiesNV { %s }" + end + + [] + type VkPipelineViewportCoarseSampleOrderStateCreateInfoNV = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public sampleOrderType : VkCoarseSampleOrderTypeNV + val mutable public customSampleOrderCount : uint32 + val mutable public pCustomSampleOrders : nativeptr + + new(pNext : nativeint, sampleOrderType : VkCoarseSampleOrderTypeNV, customSampleOrderCount : uint32, pCustomSampleOrders : nativeptr) = + { + sType = 1000164005u + pNext = pNext + sampleOrderType = sampleOrderType + customSampleOrderCount = customSampleOrderCount + pCustomSampleOrders = pCustomSampleOrders + } + + new(sampleOrderType : VkCoarseSampleOrderTypeNV, customSampleOrderCount : uint32, pCustomSampleOrders : nativeptr) = + VkPipelineViewportCoarseSampleOrderStateCreateInfoNV(Unchecked.defaultof, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.sampleOrderType = Unchecked.defaultof && x.customSampleOrderCount = Unchecked.defaultof && x.pCustomSampleOrders = Unchecked.defaultof> + + static member Empty = + VkPipelineViewportCoarseSampleOrderStateCreateInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "sampleOrderType = %A" x.sampleOrderType + sprintf "customSampleOrderCount = %A" x.customSampleOrderCount + sprintf "pCustomSampleOrders = %A" x.pCustomSampleOrders + ] |> sprintf "VkPipelineViewportCoarseSampleOrderStateCreateInfoNV { %s }" + end + + [] + type VkShadingRatePaletteNV = + struct + val mutable public shadingRatePaletteEntryCount : uint32 + val mutable public pShadingRatePaletteEntries : nativeptr + + new(shadingRatePaletteEntryCount : uint32, pShadingRatePaletteEntries : nativeptr) = + { + shadingRatePaletteEntryCount = shadingRatePaletteEntryCount + pShadingRatePaletteEntries = pShadingRatePaletteEntries + } + + member x.IsEmpty = + x.shadingRatePaletteEntryCount = Unchecked.defaultof && x.pShadingRatePaletteEntries = Unchecked.defaultof> + + static member Empty = + VkShadingRatePaletteNV(Unchecked.defaultof, Unchecked.defaultof>) + + override x.ToString() = + String.concat "; " [ + sprintf "shadingRatePaletteEntryCount = %A" x.shadingRatePaletteEntryCount + sprintf "pShadingRatePaletteEntries = %A" x.pShadingRatePaletteEntries + ] |> sprintf "VkShadingRatePaletteNV { %s }" + end + + [] + type VkPipelineViewportShadingRateImageStateCreateInfoNV = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public shadingRateImageEnable : VkBool32 + val mutable public viewportCount : uint32 + val mutable public pShadingRatePalettes : nativeptr + + new(pNext : nativeint, shadingRateImageEnable : VkBool32, viewportCount : uint32, pShadingRatePalettes : nativeptr) = + { + sType = 1000164000u + pNext = pNext + shadingRateImageEnable = shadingRateImageEnable + viewportCount = viewportCount + pShadingRatePalettes = pShadingRatePalettes + } + + new(shadingRateImageEnable : VkBool32, viewportCount : uint32, pShadingRatePalettes : nativeptr) = + VkPipelineViewportShadingRateImageStateCreateInfoNV(Unchecked.defaultof, shadingRateImageEnable, viewportCount, pShadingRatePalettes) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.shadingRateImageEnable = Unchecked.defaultof && x.viewportCount = Unchecked.defaultof && x.pShadingRatePalettes = Unchecked.defaultof> + + static member Empty = + VkPipelineViewportShadingRateImageStateCreateInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "shadingRateImageEnable = %A" x.shadingRateImageEnable + sprintf "viewportCount = %A" x.viewportCount + sprintf "pShadingRatePalettes = %A" x.pShadingRatePalettes + ] |> sprintf "VkPipelineViewportShadingRateImageStateCreateInfoNV { %s }" + end + + + [] + module EnumExtensions = + type VkAccessFlags with + static member inline ShadingRateImageReadBitNv = unbox 0x00800000 + type VkDynamicState with + static member inline ViewportShadingRatePaletteNv = unbox 1000164004 + static member inline ViewportCoarseSampleOrderNv = unbox 1000164006 + type VkImageLayout with + static member inline ShadingRateOptimalNv = unbox 1000164003 + type VkImageUsageFlags with + static member inline ShadingRateImageBitNv = unbox 0x00000100 + type VkPipelineStageFlags with + static member inline ShadingRateImageBitNv = unbox 0x00400000 + + module VkRaw = + [] + type VkCmdBindShadingRateImageNVDel = delegate of VkCommandBuffer * VkImageView * VkImageLayout -> unit + [] + type VkCmdSetViewportShadingRatePaletteNVDel = delegate of VkCommandBuffer * uint32 * uint32 * nativeptr -> unit + [] + type VkCmdSetCoarseSampleOrderNVDel = delegate of VkCommandBuffer * VkCoarseSampleOrderTypeNV * uint32 * nativeptr -> unit + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading NVShadingRateImage") + static let s_vkCmdBindShadingRateImageNVDel = VkRaw.vkImportInstanceDelegate "vkCmdBindShadingRateImageNV" + static let s_vkCmdSetViewportShadingRatePaletteNVDel = VkRaw.vkImportInstanceDelegate "vkCmdSetViewportShadingRatePaletteNV" + static let s_vkCmdSetCoarseSampleOrderNVDel = VkRaw.vkImportInstanceDelegate "vkCmdSetCoarseSampleOrderNV" + static do Report.End(3) |> ignore + static member vkCmdBindShadingRateImageNV = s_vkCmdBindShadingRateImageNVDel + static member vkCmdSetViewportShadingRatePaletteNV = s_vkCmdSetViewportShadingRatePaletteNVDel + static member vkCmdSetCoarseSampleOrderNV = s_vkCmdSetCoarseSampleOrderNVDel + let vkCmdBindShadingRateImageNV(commandBuffer : VkCommandBuffer, imageView : VkImageView, imageLayout : VkImageLayout) = Loader.vkCmdBindShadingRateImageNV.Invoke(commandBuffer, imageView, imageLayout) + let vkCmdSetViewportShadingRatePaletteNV(commandBuffer : VkCommandBuffer, firstViewport : uint32, viewportCount : uint32, pShadingRatePalettes : nativeptr) = Loader.vkCmdSetViewportShadingRatePaletteNV.Invoke(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) + let vkCmdSetCoarseSampleOrderNV(commandBuffer : VkCommandBuffer, sampleOrderType : VkCoarseSampleOrderTypeNV, customSampleOrderCount : uint32, pCustomSampleOrders : nativeptr) = Loader.vkCmdSetCoarseSampleOrderNV.Invoke(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +/// Promoted to Vulkan11. +module KHRMaintenance3 = + let Type = ExtensionType.Device + let Name = "VK_KHR_maintenance3" + let Number = 169 + + type VkDescriptorSetLayoutSupportKHR = Vulkan11.VkDescriptorSetLayoutSupport + + type VkPhysicalDeviceMaintenance3PropertiesKHR = Vulkan11.VkPhysicalDeviceMaintenance3Properties + + + module VkRaw = + [] + type VkGetDescriptorSetLayoutSupportKHRDel = delegate of VkDevice * nativeptr * nativeptr -> unit + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRMaintenance3") + static let s_vkGetDescriptorSetLayoutSupportKHRDel = VkRaw.vkImportInstanceDelegate "vkGetDescriptorSetLayoutSupportKHR" + static do Report.End(3) |> ignore + static member vkGetDescriptorSetLayoutSupportKHR = s_vkGetDescriptorSetLayoutSupportKHRDel + let vkGetDescriptorSetLayoutSupportKHR(device : VkDevice, pCreateInfo : nativeptr, pSupport : nativeptr) = Loader.vkGetDescriptorSetLayoutSupportKHR.Invoke(device, pCreateInfo, pSupport) + +/// Requires (KHRGetPhysicalDeviceProperties2, KHRMaintenance3) | Vulkan11. +/// Promoted to Vulkan12. +module EXTDescriptorIndexing = + let Type = ExtensionType.Device + let Name = "VK_EXT_descriptor_indexing" + let Number = 162 + + type VkDescriptorBindingFlagsEXT = Vulkan12.VkDescriptorBindingFlags + + type VkDescriptorSetLayoutBindingFlagsCreateInfoEXT = Vulkan12.VkDescriptorSetLayoutBindingFlagsCreateInfo + + type VkDescriptorSetVariableDescriptorCountAllocateInfoEXT = Vulkan12.VkDescriptorSetVariableDescriptorCountAllocateInfo + + type VkDescriptorSetVariableDescriptorCountLayoutSupportEXT = Vulkan12.VkDescriptorSetVariableDescriptorCountLayoutSupport + + type VkPhysicalDeviceDescriptorIndexingFeaturesEXT = Vulkan12.VkPhysicalDeviceDescriptorIndexingFeatures + + type VkPhysicalDeviceDescriptorIndexingPropertiesEXT = Vulkan12.VkPhysicalDeviceDescriptorIndexingProperties + + + [] + module EnumExtensions = + type Vulkan12.VkDescriptorBindingFlags with + static member inline UpdateAfterBindBitExt = unbox 0x00000001 + static member inline UpdateUnusedWhilePendingBitExt = unbox 0x00000002 + static member inline PartiallyBoundBitExt = unbox 0x00000004 + static member inline VariableDescriptorCountBitExt = unbox 0x00000008 + type VkDescriptorPoolCreateFlags with + static member inline UpdateAfterBindBitExt = unbox 0x00000002 + type VkDescriptorSetLayoutCreateFlags with + static member inline UpdateAfterBindPoolBitExt = unbox 0x00000002 + type VkResult with + static member inline ErrorFragmentationExt = unbox 1000161000 + + +module KHRDeferredHostOperations = + let Type = ExtensionType.Device + let Name = "VK_KHR_deferred_host_operations" + let Number = 269 + + + [] + type VkDeferredOperationKHR = + struct + val mutable public Handle : uint64 + new(h) = { Handle = h } + static member Null = VkDeferredOperationKHR(0UL) + member x.IsNull = x.Handle = 0UL + member x.IsValid = x.Handle <> 0UL + end + + [] + module EnumExtensions = + type VkObjectType with + static member inline DeferredOperationKhr = unbox 1000268000 + type VkResult with + static member inline ThreadIdleKhr = unbox 1000268000 + static member inline ThreadDoneKhr = unbox 1000268001 + static member inline OperationDeferredKhr = unbox 1000268002 + static member inline OperationNotDeferredKhr = unbox 1000268003 + + module VkRaw = + [] + type VkCreateDeferredOperationKHRDel = delegate of VkDevice * nativeptr * nativeptr -> VkResult + [] + type VkDestroyDeferredOperationKHRDel = delegate of VkDevice * VkDeferredOperationKHR * nativeptr -> unit + [] + type VkGetDeferredOperationMaxConcurrencyKHRDel = delegate of VkDevice * VkDeferredOperationKHR -> uint32 + [] + type VkGetDeferredOperationResultKHRDel = delegate of VkDevice * VkDeferredOperationKHR -> VkResult + [] + type VkDeferredOperationJoinKHRDel = delegate of VkDevice * VkDeferredOperationKHR -> VkResult + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRDeferredHostOperations") + static let s_vkCreateDeferredOperationKHRDel = VkRaw.vkImportInstanceDelegate "vkCreateDeferredOperationKHR" + static let s_vkDestroyDeferredOperationKHRDel = VkRaw.vkImportInstanceDelegate "vkDestroyDeferredOperationKHR" + static let s_vkGetDeferredOperationMaxConcurrencyKHRDel = VkRaw.vkImportInstanceDelegate "vkGetDeferredOperationMaxConcurrencyKHR" + static let s_vkGetDeferredOperationResultKHRDel = VkRaw.vkImportInstanceDelegate "vkGetDeferredOperationResultKHR" + static let s_vkDeferredOperationJoinKHRDel = VkRaw.vkImportInstanceDelegate "vkDeferredOperationJoinKHR" + static do Report.End(3) |> ignore + static member vkCreateDeferredOperationKHR = s_vkCreateDeferredOperationKHRDel + static member vkDestroyDeferredOperationKHR = s_vkDestroyDeferredOperationKHRDel + static member vkGetDeferredOperationMaxConcurrencyKHR = s_vkGetDeferredOperationMaxConcurrencyKHRDel + static member vkGetDeferredOperationResultKHR = s_vkGetDeferredOperationResultKHRDel + static member vkDeferredOperationJoinKHR = s_vkDeferredOperationJoinKHRDel + let vkCreateDeferredOperationKHR(device : VkDevice, pAllocator : nativeptr, pDeferredOperation : nativeptr) = Loader.vkCreateDeferredOperationKHR.Invoke(device, pAllocator, pDeferredOperation) + let vkDestroyDeferredOperationKHR(device : VkDevice, operation : VkDeferredOperationKHR, pAllocator : nativeptr) = Loader.vkDestroyDeferredOperationKHR.Invoke(device, operation, pAllocator) + let vkGetDeferredOperationMaxConcurrencyKHR(device : VkDevice, operation : VkDeferredOperationKHR) = Loader.vkGetDeferredOperationMaxConcurrencyKHR.Invoke(device, operation) + let vkGetDeferredOperationResultKHR(device : VkDevice, operation : VkDeferredOperationKHR) = Loader.vkGetDeferredOperationResultKHR.Invoke(device, operation) + let vkDeferredOperationJoinKHR(device : VkDevice, operation : VkDeferredOperationKHR) = Loader.vkDeferredOperationJoinKHR.Invoke(device, operation) + +module EXTDebugUtils = + let Type = ExtensionType.Instance + let Name = "VK_EXT_debug_utils" + let Number = 129 + + type PFN_vkDebugUtilsMessengerCallbackEXT = nativeint + + + [] + type VkDebugUtilsMessengerEXT = + struct + val mutable public Handle : uint64 + new(h) = { Handle = h } + static member Null = VkDebugUtilsMessengerEXT(0UL) + member x.IsNull = x.Handle = 0UL + member x.IsValid = x.Handle <> 0UL + end + + [] + type VkDebugUtilsMessageSeverityFlagsEXT = + | All = 4369 + | None = 0 + | VerboseBit = 0x00000001 + | InfoBit = 0x00000010 + | WarningBit = 0x00000100 + | ErrorBit = 0x00001000 + + [] + type VkDebugUtilsMessageTypeFlagsEXT = + | All = 7 + | None = 0 + | GeneralBit = 0x00000001 + | ValidationBit = 0x00000002 + | PerformanceBit = 0x00000004 + + + [] + type VkDebugUtilsLabelEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public pLabelName : cstr + val mutable public color : V4f + + new(pNext : nativeint, pLabelName : cstr, color : V4f) = + { + sType = 1000128002u + pNext = pNext + pLabelName = pLabelName + color = color + } + + new(pLabelName : cstr, color : V4f) = + VkDebugUtilsLabelEXT(Unchecked.defaultof, pLabelName, color) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.pLabelName = Unchecked.defaultof && x.color = Unchecked.defaultof + + static member Empty = + VkDebugUtilsLabelEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "pLabelName = %A" x.pLabelName + sprintf "color = %A" x.color + ] |> sprintf "VkDebugUtilsLabelEXT { %s }" + end + + [] + type VkDebugUtilsObjectNameInfoEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public objectType : VkObjectType + val mutable public objectHandle : uint64 + val mutable public pObjectName : cstr + + new(pNext : nativeint, objectType : VkObjectType, objectHandle : uint64, pObjectName : cstr) = + { + sType = 1000128000u + pNext = pNext + objectType = objectType + objectHandle = objectHandle + pObjectName = pObjectName + } + + new(objectType : VkObjectType, objectHandle : uint64, pObjectName : cstr) = + VkDebugUtilsObjectNameInfoEXT(Unchecked.defaultof, objectType, objectHandle, pObjectName) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.objectType = Unchecked.defaultof && x.objectHandle = Unchecked.defaultof && x.pObjectName = Unchecked.defaultof + + static member Empty = + VkDebugUtilsObjectNameInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "objectType = %A" x.objectType + sprintf "objectHandle = %A" x.objectHandle + sprintf "pObjectName = %A" x.pObjectName + ] |> sprintf "VkDebugUtilsObjectNameInfoEXT { %s }" + end + + [] + type VkDebugUtilsMessengerCallbackDataEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public flags : VkDebugUtilsMessengerCallbackDataFlagsEXT + val mutable public pMessageIdName : cstr + val mutable public messageIdNumber : int32 + val mutable public pMessage : cstr + val mutable public queueLabelCount : uint32 + val mutable public pQueueLabels : nativeptr + val mutable public cmdBufLabelCount : uint32 + val mutable public pCmdBufLabels : nativeptr + val mutable public objectCount : uint32 + val mutable public pObjects : nativeptr + + new(pNext : nativeint, flags : VkDebugUtilsMessengerCallbackDataFlagsEXT, pMessageIdName : cstr, messageIdNumber : int32, pMessage : cstr, queueLabelCount : uint32, pQueueLabels : nativeptr, cmdBufLabelCount : uint32, pCmdBufLabels : nativeptr, objectCount : uint32, pObjects : nativeptr) = + { + sType = 1000128003u + pNext = pNext + flags = flags + pMessageIdName = pMessageIdName + messageIdNumber = messageIdNumber + pMessage = pMessage + queueLabelCount = queueLabelCount + pQueueLabels = pQueueLabels + cmdBufLabelCount = cmdBufLabelCount + pCmdBufLabels = pCmdBufLabels + objectCount = objectCount + pObjects = pObjects + } + + new(flags : VkDebugUtilsMessengerCallbackDataFlagsEXT, pMessageIdName : cstr, messageIdNumber : int32, pMessage : cstr, queueLabelCount : uint32, pQueueLabels : nativeptr, cmdBufLabelCount : uint32, pCmdBufLabels : nativeptr, objectCount : uint32, pObjects : nativeptr) = + VkDebugUtilsMessengerCallbackDataEXT(Unchecked.defaultof, flags, pMessageIdName, messageIdNumber, pMessage, queueLabelCount, pQueueLabels, cmdBufLabelCount, pCmdBufLabels, objectCount, pObjects) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.pMessageIdName = Unchecked.defaultof && x.messageIdNumber = Unchecked.defaultof && x.pMessage = Unchecked.defaultof && x.queueLabelCount = Unchecked.defaultof && x.pQueueLabels = Unchecked.defaultof> && x.cmdBufLabelCount = Unchecked.defaultof && x.pCmdBufLabels = Unchecked.defaultof> && x.objectCount = Unchecked.defaultof && x.pObjects = Unchecked.defaultof> + + static member Empty = + VkDebugUtilsMessengerCallbackDataEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "flags = %A" x.flags + sprintf "pMessageIdName = %A" x.pMessageIdName + sprintf "messageIdNumber = %A" x.messageIdNumber + sprintf "pMessage = %A" x.pMessage + sprintf "queueLabelCount = %A" x.queueLabelCount + sprintf "pQueueLabels = %A" x.pQueueLabels + sprintf "cmdBufLabelCount = %A" x.cmdBufLabelCount + sprintf "pCmdBufLabels = %A" x.pCmdBufLabels + sprintf "objectCount = %A" x.objectCount + sprintf "pObjects = %A" x.pObjects + ] |> sprintf "VkDebugUtilsMessengerCallbackDataEXT { %s }" + end + + [] + type VkDebugUtilsMessengerCreateInfoEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public flags : VkDebugUtilsMessengerCreateFlagsEXT + val mutable public messageSeverity : VkDebugUtilsMessageSeverityFlagsEXT + val mutable public messageType : VkDebugUtilsMessageTypeFlagsEXT + val mutable public pfnUserCallback : PFN_vkDebugUtilsMessengerCallbackEXT + val mutable public pUserData : nativeint + + new(pNext : nativeint, flags : VkDebugUtilsMessengerCreateFlagsEXT, messageSeverity : VkDebugUtilsMessageSeverityFlagsEXT, messageType : VkDebugUtilsMessageTypeFlagsEXT, pfnUserCallback : PFN_vkDebugUtilsMessengerCallbackEXT, pUserData : nativeint) = + { + sType = 1000128004u + pNext = pNext + flags = flags + messageSeverity = messageSeverity + messageType = messageType + pfnUserCallback = pfnUserCallback + pUserData = pUserData + } + + new(flags : VkDebugUtilsMessengerCreateFlagsEXT, messageSeverity : VkDebugUtilsMessageSeverityFlagsEXT, messageType : VkDebugUtilsMessageTypeFlagsEXT, pfnUserCallback : PFN_vkDebugUtilsMessengerCallbackEXT, pUserData : nativeint) = + VkDebugUtilsMessengerCreateInfoEXT(Unchecked.defaultof, flags, messageSeverity, messageType, pfnUserCallback, pUserData) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.messageSeverity = Unchecked.defaultof && x.messageType = Unchecked.defaultof && x.pfnUserCallback = Unchecked.defaultof && x.pUserData = Unchecked.defaultof + + static member Empty = + VkDebugUtilsMessengerCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "flags = %A" x.flags + sprintf "messageSeverity = %A" x.messageSeverity + sprintf "messageType = %A" x.messageType + sprintf "pfnUserCallback = %A" x.pfnUserCallback + sprintf "pUserData = %A" x.pUserData + ] |> sprintf "VkDebugUtilsMessengerCreateInfoEXT { %s }" + end + + [] + type VkDebugUtilsObjectTagInfoEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public objectType : VkObjectType + val mutable public objectHandle : uint64 + val mutable public tagName : uint64 + val mutable public tagSize : uint64 + val mutable public pTag : nativeint + + new(pNext : nativeint, objectType : VkObjectType, objectHandle : uint64, tagName : uint64, tagSize : uint64, pTag : nativeint) = + { + sType = 1000128001u + pNext = pNext + objectType = objectType + objectHandle = objectHandle + tagName = tagName + tagSize = tagSize + pTag = pTag + } + + new(objectType : VkObjectType, objectHandle : uint64, tagName : uint64, tagSize : uint64, pTag : nativeint) = + VkDebugUtilsObjectTagInfoEXT(Unchecked.defaultof, objectType, objectHandle, tagName, tagSize, pTag) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.objectType = Unchecked.defaultof && x.objectHandle = Unchecked.defaultof && x.tagName = Unchecked.defaultof && x.tagSize = Unchecked.defaultof && x.pTag = Unchecked.defaultof + + static member Empty = + VkDebugUtilsObjectTagInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "objectType = %A" x.objectType + sprintf "objectHandle = %A" x.objectHandle + sprintf "tagName = %A" x.tagName + sprintf "tagSize = %A" x.tagSize + sprintf "pTag = %A" x.pTag + ] |> sprintf "VkDebugUtilsObjectTagInfoEXT { %s }" + end + + + [] + module EnumExtensions = + type VkObjectType with + static member inline DebugUtilsMessengerExt = unbox 1000128000 + + module VkRaw = + [] + type VkSetDebugUtilsObjectNameEXTDel = delegate of VkDevice * nativeptr -> VkResult + [] + type VkSetDebugUtilsObjectTagEXTDel = delegate of VkDevice * nativeptr -> VkResult + [] + type VkQueueBeginDebugUtilsLabelEXTDel = delegate of VkQueue * nativeptr -> unit + [] + type VkQueueEndDebugUtilsLabelEXTDel = delegate of VkQueue -> unit + [] + type VkQueueInsertDebugUtilsLabelEXTDel = delegate of VkQueue * nativeptr -> unit + [] + type VkCmdBeginDebugUtilsLabelEXTDel = delegate of VkCommandBuffer * nativeptr -> unit + [] + type VkCmdEndDebugUtilsLabelEXTDel = delegate of VkCommandBuffer -> unit + [] + type VkCmdInsertDebugUtilsLabelEXTDel = delegate of VkCommandBuffer * nativeptr -> unit + [] + type VkCreateDebugUtilsMessengerEXTDel = delegate of VkInstance * nativeptr * nativeptr * nativeptr -> VkResult + [] + type VkDestroyDebugUtilsMessengerEXTDel = delegate of VkInstance * VkDebugUtilsMessengerEXT * nativeptr -> unit + [] + type VkSubmitDebugUtilsMessageEXTDel = delegate of VkInstance * VkDebugUtilsMessageSeverityFlagsEXT * VkDebugUtilsMessageTypeFlagsEXT * nativeptr -> unit + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTDebugUtils") + static let s_vkSetDebugUtilsObjectNameEXTDel = VkRaw.vkImportInstanceDelegate "vkSetDebugUtilsObjectNameEXT" + static let s_vkSetDebugUtilsObjectTagEXTDel = VkRaw.vkImportInstanceDelegate "vkSetDebugUtilsObjectTagEXT" + static let s_vkQueueBeginDebugUtilsLabelEXTDel = VkRaw.vkImportInstanceDelegate "vkQueueBeginDebugUtilsLabelEXT" + static let s_vkQueueEndDebugUtilsLabelEXTDel = VkRaw.vkImportInstanceDelegate "vkQueueEndDebugUtilsLabelEXT" + static let s_vkQueueInsertDebugUtilsLabelEXTDel = VkRaw.vkImportInstanceDelegate "vkQueueInsertDebugUtilsLabelEXT" + static let s_vkCmdBeginDebugUtilsLabelEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdBeginDebugUtilsLabelEXT" + static let s_vkCmdEndDebugUtilsLabelEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdEndDebugUtilsLabelEXT" + static let s_vkCmdInsertDebugUtilsLabelEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdInsertDebugUtilsLabelEXT" + static let s_vkCreateDebugUtilsMessengerEXTDel = VkRaw.vkImportInstanceDelegate "vkCreateDebugUtilsMessengerEXT" + static let s_vkDestroyDebugUtilsMessengerEXTDel = VkRaw.vkImportInstanceDelegate "vkDestroyDebugUtilsMessengerEXT" + static let s_vkSubmitDebugUtilsMessageEXTDel = VkRaw.vkImportInstanceDelegate "vkSubmitDebugUtilsMessageEXT" + static do Report.End(3) |> ignore + static member vkSetDebugUtilsObjectNameEXT = s_vkSetDebugUtilsObjectNameEXTDel + static member vkSetDebugUtilsObjectTagEXT = s_vkSetDebugUtilsObjectTagEXTDel + static member vkQueueBeginDebugUtilsLabelEXT = s_vkQueueBeginDebugUtilsLabelEXTDel + static member vkQueueEndDebugUtilsLabelEXT = s_vkQueueEndDebugUtilsLabelEXTDel + static member vkQueueInsertDebugUtilsLabelEXT = s_vkQueueInsertDebugUtilsLabelEXTDel + static member vkCmdBeginDebugUtilsLabelEXT = s_vkCmdBeginDebugUtilsLabelEXTDel + static member vkCmdEndDebugUtilsLabelEXT = s_vkCmdEndDebugUtilsLabelEXTDel + static member vkCmdInsertDebugUtilsLabelEXT = s_vkCmdInsertDebugUtilsLabelEXTDel + static member vkCreateDebugUtilsMessengerEXT = s_vkCreateDebugUtilsMessengerEXTDel + static member vkDestroyDebugUtilsMessengerEXT = s_vkDestroyDebugUtilsMessengerEXTDel + static member vkSubmitDebugUtilsMessageEXT = s_vkSubmitDebugUtilsMessageEXTDel + let vkSetDebugUtilsObjectNameEXT(device : VkDevice, pNameInfo : nativeptr) = Loader.vkSetDebugUtilsObjectNameEXT.Invoke(device, pNameInfo) + let vkSetDebugUtilsObjectTagEXT(device : VkDevice, pTagInfo : nativeptr) = Loader.vkSetDebugUtilsObjectTagEXT.Invoke(device, pTagInfo) + let vkQueueBeginDebugUtilsLabelEXT(queue : VkQueue, pLabelInfo : nativeptr) = Loader.vkQueueBeginDebugUtilsLabelEXT.Invoke(queue, pLabelInfo) + let vkQueueEndDebugUtilsLabelEXT(queue : VkQueue) = Loader.vkQueueEndDebugUtilsLabelEXT.Invoke(queue) + let vkQueueInsertDebugUtilsLabelEXT(queue : VkQueue, pLabelInfo : nativeptr) = Loader.vkQueueInsertDebugUtilsLabelEXT.Invoke(queue, pLabelInfo) + let vkCmdBeginDebugUtilsLabelEXT(commandBuffer : VkCommandBuffer, pLabelInfo : nativeptr) = Loader.vkCmdBeginDebugUtilsLabelEXT.Invoke(commandBuffer, pLabelInfo) + let vkCmdEndDebugUtilsLabelEXT(commandBuffer : VkCommandBuffer) = Loader.vkCmdEndDebugUtilsLabelEXT.Invoke(commandBuffer) + let vkCmdInsertDebugUtilsLabelEXT(commandBuffer : VkCommandBuffer, pLabelInfo : nativeptr) = Loader.vkCmdInsertDebugUtilsLabelEXT.Invoke(commandBuffer, pLabelInfo) + let vkCreateDebugUtilsMessengerEXT(instance : VkInstance, pCreateInfo : nativeptr, pAllocator : nativeptr, pMessenger : nativeptr) = Loader.vkCreateDebugUtilsMessengerEXT.Invoke(instance, pCreateInfo, pAllocator, pMessenger) + let vkDestroyDebugUtilsMessengerEXT(instance : VkInstance, messenger : VkDebugUtilsMessengerEXT, pAllocator : nativeptr) = Loader.vkDestroyDebugUtilsMessengerEXT.Invoke(instance, messenger, pAllocator) + let vkSubmitDebugUtilsMessageEXT(instance : VkInstance, messageSeverity : VkDebugUtilsMessageSeverityFlagsEXT, messageTypes : VkDebugUtilsMessageTypeFlagsEXT, pCallbackData : nativeptr) = Loader.vkSubmitDebugUtilsMessageEXT.Invoke(instance, messageSeverity, messageTypes, pCallbackData) + +/// Deprecated by EXTDebugUtils. +module EXTDebugReport = + let Type = ExtensionType.Instance + let Name = "VK_EXT_debug_report" + let Number = 12 + + type PFN_vkDebugReportCallbackEXT = nativeint + + + [] + type VkDebugReportCallbackEXT = + struct + val mutable public Handle : uint64 + new(h) = { Handle = h } + static member Null = VkDebugReportCallbackEXT(0UL) + member x.IsNull = x.Handle = 0UL + member x.IsValid = x.Handle <> 0UL + end + + [] + type VkDebugReportFlagsEXT = + | All = 31 + | None = 0 + | InformationBit = 0x00000001 + | WarningBit = 0x00000002 + | PerformanceWarningBit = 0x00000004 + | ErrorBit = 0x00000008 + | DebugBit = 0x00000010 + + type VkDebugReportObjectTypeEXT = + | Unknown = 0 + | Instance = 1 + | PhysicalDevice = 2 + | Device = 3 + | Queue = 4 + | Semaphore = 5 + | CommandBuffer = 6 + | Fence = 7 + | DeviceMemory = 8 + | Buffer = 9 + | Image = 10 + | Event = 11 + | QueryPool = 12 + | BufferView = 13 + | ImageView = 14 + | ShaderModule = 15 + | PipelineCache = 16 + | PipelineLayout = 17 + | RenderPass = 18 + | Pipeline = 19 + | DescriptorSetLayout = 20 + | Sampler = 21 + | DescriptorPool = 22 + | DescriptorSet = 23 + | Framebuffer = 24 + | CommandPool = 25 + | Surface = 26 + | Swapchain = 27 + | DebugReportCallback = 28 + | Display = 29 + | DisplayMode = 30 + | ValidationCache = 33 + + + [] + type VkDebugReportCallbackCreateInfoEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public flags : VkDebugReportFlagsEXT + val mutable public pfnCallback : PFN_vkDebugReportCallbackEXT + val mutable public pUserData : nativeint + + new(pNext : nativeint, flags : VkDebugReportFlagsEXT, pfnCallback : PFN_vkDebugReportCallbackEXT, pUserData : nativeint) = + { + sType = 1000011000u + pNext = pNext + flags = flags + pfnCallback = pfnCallback + pUserData = pUserData + } + + new(flags : VkDebugReportFlagsEXT, pfnCallback : PFN_vkDebugReportCallbackEXT, pUserData : nativeint) = + VkDebugReportCallbackCreateInfoEXT(Unchecked.defaultof, flags, pfnCallback, pUserData) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.pfnCallback = Unchecked.defaultof && x.pUserData = Unchecked.defaultof + + static member Empty = + VkDebugReportCallbackCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "flags = %A" x.flags + sprintf "pfnCallback = %A" x.pfnCallback + sprintf "pUserData = %A" x.pUserData + ] |> sprintf "VkDebugReportCallbackCreateInfoEXT { %s }" + end + + + [] + module EnumExtensions = + type VkObjectType with + static member inline DebugReportCallbackExt = unbox 1000011000 + type VkResult with + static member inline ErrorValidationFailedExt = unbox -1000011001 + + module VkRaw = + [] + type VkCreateDebugReportCallbackEXTDel = delegate of VkInstance * nativeptr * nativeptr * nativeptr -> VkResult + [] + type VkDestroyDebugReportCallbackEXTDel = delegate of VkInstance * VkDebugReportCallbackEXT * nativeptr -> unit + [] + type VkDebugReportMessageEXTDel = delegate of VkInstance * VkDebugReportFlagsEXT * VkDebugReportObjectTypeEXT * uint64 * uint64 * int32 * cstr * cstr -> unit + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTDebugReport") + static let s_vkCreateDebugReportCallbackEXTDel = VkRaw.vkImportInstanceDelegate "vkCreateDebugReportCallbackEXT" + static let s_vkDestroyDebugReportCallbackEXTDel = VkRaw.vkImportInstanceDelegate "vkDestroyDebugReportCallbackEXT" + static let s_vkDebugReportMessageEXTDel = VkRaw.vkImportInstanceDelegate "vkDebugReportMessageEXT" + static do Report.End(3) |> ignore + static member vkCreateDebugReportCallbackEXT = s_vkCreateDebugReportCallbackEXTDel + static member vkDestroyDebugReportCallbackEXT = s_vkDestroyDebugReportCallbackEXTDel + static member vkDebugReportMessageEXT = s_vkDebugReportMessageEXTDel + let vkCreateDebugReportCallbackEXT(instance : VkInstance, pCreateInfo : nativeptr, pAllocator : nativeptr, pCallback : nativeptr) = Loader.vkCreateDebugReportCallbackEXT.Invoke(instance, pCreateInfo, pAllocator, pCallback) + let vkDestroyDebugReportCallbackEXT(instance : VkInstance, callback : VkDebugReportCallbackEXT, pAllocator : nativeptr) = Loader.vkDestroyDebugReportCallbackEXT.Invoke(instance, callback, pAllocator) + let vkDebugReportMessageEXT(instance : VkInstance, flags : VkDebugReportFlagsEXT, objectType : VkDebugReportObjectTypeEXT, _object : uint64, location : uint64, messageCode : int32, pLayerPrefix : cstr, pMessage : cstr) = Loader.vkDebugReportMessageEXT.Invoke(instance, flags, objectType, _object, location, messageCode, pLayerPrefix, pMessage) + + [] + module ``Vulkan11`` = + [] + module EnumExtensions = + type VkDebugReportObjectTypeEXT with + static member inline SamplerYcbcrConversion = unbox 1000156000 + static member inline DescriptorUpdateTemplate = unbox 1000085000 + + +/// Requires ((Vulkan11, EXTDescriptorIndexing, KHRBufferDeviceAddress) | Vulkan12), KHRDeferredHostOperations. +module KHRAccelerationStructure = + let Type = ExtensionType.Device + let Name = "VK_KHR_acceleration_structure" + let Number = 151 + + + [] + type VkAccelerationStructureKHR = + struct + val mutable public Handle : uint64 + new(h) = { Handle = h } + static member Null = VkAccelerationStructureKHR(0UL) + member x.IsNull = x.Handle = 0UL + member x.IsValid = x.Handle <> 0UL + end + + type VkAccelerationStructureTypeKHR = + | TopLevel = 0 + | BottomLevel = 1 + | Generic = 2 + + type VkAccelerationStructureBuildTypeKHR = + | Host = 0 + | Device = 1 + | HostOrDevice = 2 + + [] + type VkGeometryFlagsKHR = + | All = 3 + | None = 0 + | OpaqueBit = 0x00000001 + | NoDuplicateAnyHitInvocationBit = 0x00000002 + + [] + type VkGeometryInstanceFlagsKHR = + | All = 15 + | None = 0 + | TriangleFacingCullDisableBit = 0x00000001 + | TriangleFlipFacingBit = 0x00000002 + | ForceOpaqueBit = 0x00000004 + | ForceNoOpaqueBit = 0x00000008 + | TriangleFrontCounterclockwiseBit = 0x00000002 + + [] + type VkBuildAccelerationStructureFlagsKHR = + | All = 31 + | None = 0 + | AllowUpdateBit = 0x00000001 + | AllowCompactionBit = 0x00000002 + | PreferFastTraceBit = 0x00000004 + | PreferFastBuildBit = 0x00000008 + | LowMemoryBit = 0x00000010 + + type VkCopyAccelerationStructureModeKHR = + | Clone = 0 + | Compact = 1 + | Serialize = 2 + | Deserialize = 3 + + type VkGeometryTypeKHR = + | Triangles = 0 + | Aabbs = 1 + | Instances = 2 + + type VkAccelerationStructureCompatibilityKHR = + | Compatible = 0 + | Incompatible = 1 + + [] + type VkAccelerationStructureCreateFlagsKHR = + | All = 1 + | None = 0 + | DeviceAddressCaptureReplayBit = 0x00000001 + + type VkBuildAccelerationStructureModeKHR = + | Build = 0 + | Update = 1 + + + [] + type VkAabbPositionsKHR = + struct + val mutable public minX : float32 + val mutable public minY : float32 + val mutable public minZ : float32 + val mutable public maxX : float32 + val mutable public maxY : float32 + val mutable public maxZ : float32 + + new(minX : float32, minY : float32, minZ : float32, maxX : float32, maxY : float32, maxZ : float32) = + { + minX = minX + minY = minY + minZ = minZ + maxX = maxX + maxY = maxY + maxZ = maxZ + } + + member x.IsEmpty = + x.minX = Unchecked.defaultof && x.minY = Unchecked.defaultof && x.minZ = Unchecked.defaultof && x.maxX = Unchecked.defaultof && x.maxY = Unchecked.defaultof && x.maxZ = Unchecked.defaultof + + static member Empty = + VkAabbPositionsKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "minX = %A" x.minX + sprintf "minY = %A" x.minY + sprintf "minZ = %A" x.minZ + sprintf "maxX = %A" x.maxX + sprintf "maxY = %A" x.maxY + sprintf "maxZ = %A" x.maxZ + ] |> sprintf "VkAabbPositionsKHR { %s }" + end + + [] + type VkDeviceOrHostAddressConstKHR = + struct + [] + val mutable public deviceAddress : VkDeviceAddress + [] + val mutable public hostAddress : nativeint + + static member DeviceAddress(value : VkDeviceAddress) = + let mutable result = Unchecked.defaultof + result.deviceAddress <- value + result + + static member HostAddress(value : nativeint) = + let mutable result = Unchecked.defaultof + result.hostAddress <- value + result + + override x.ToString() = + String.concat "; " [ + sprintf "deviceAddress = %A" x.deviceAddress + sprintf "hostAddress = %A" x.hostAddress + ] |> sprintf "VkDeviceOrHostAddressConstKHR { %s }" + end + + [] + type VkAccelerationStructureGeometryTrianglesDataKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public vertexFormat : VkFormat + val mutable public vertexData : VkDeviceOrHostAddressConstKHR + val mutable public vertexStride : VkDeviceSize + val mutable public maxVertex : uint32 + val mutable public indexType : VkIndexType + val mutable public indexData : VkDeviceOrHostAddressConstKHR + val mutable public transformData : VkDeviceOrHostAddressConstKHR + + new(pNext : nativeint, vertexFormat : VkFormat, vertexData : VkDeviceOrHostAddressConstKHR, vertexStride : VkDeviceSize, maxVertex : uint32, indexType : VkIndexType, indexData : VkDeviceOrHostAddressConstKHR, transformData : VkDeviceOrHostAddressConstKHR) = + { + sType = 1000150005u + pNext = pNext + vertexFormat = vertexFormat + vertexData = vertexData + vertexStride = vertexStride + maxVertex = maxVertex + indexType = indexType + indexData = indexData + transformData = transformData + } + + new(vertexFormat : VkFormat, vertexData : VkDeviceOrHostAddressConstKHR, vertexStride : VkDeviceSize, maxVertex : uint32, indexType : VkIndexType, indexData : VkDeviceOrHostAddressConstKHR, transformData : VkDeviceOrHostAddressConstKHR) = + VkAccelerationStructureGeometryTrianglesDataKHR(Unchecked.defaultof, vertexFormat, vertexData, vertexStride, maxVertex, indexType, indexData, transformData) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.vertexFormat = Unchecked.defaultof && x.vertexData = Unchecked.defaultof && x.vertexStride = Unchecked.defaultof && x.maxVertex = Unchecked.defaultof && x.indexType = Unchecked.defaultof && x.indexData = Unchecked.defaultof && x.transformData = Unchecked.defaultof + + static member Empty = + VkAccelerationStructureGeometryTrianglesDataKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "vertexFormat = %A" x.vertexFormat + sprintf "vertexData = %A" x.vertexData + sprintf "vertexStride = %A" x.vertexStride + sprintf "maxVertex = %A" x.maxVertex + sprintf "indexType = %A" x.indexType + sprintf "indexData = %A" x.indexData + sprintf "transformData = %A" x.transformData + ] |> sprintf "VkAccelerationStructureGeometryTrianglesDataKHR { %s }" + end + + [] + type VkAccelerationStructureGeometryAabbsDataKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public data : VkDeviceOrHostAddressConstKHR + val mutable public stride : VkDeviceSize + + new(pNext : nativeint, data : VkDeviceOrHostAddressConstKHR, stride : VkDeviceSize) = + { + sType = 1000150003u + pNext = pNext + data = data + stride = stride + } + + new(data : VkDeviceOrHostAddressConstKHR, stride : VkDeviceSize) = + VkAccelerationStructureGeometryAabbsDataKHR(Unchecked.defaultof, data, stride) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.data = Unchecked.defaultof && x.stride = Unchecked.defaultof + + static member Empty = + VkAccelerationStructureGeometryAabbsDataKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "data = %A" x.data + sprintf "stride = %A" x.stride + ] |> sprintf "VkAccelerationStructureGeometryAabbsDataKHR { %s }" + end + + [] + type VkAccelerationStructureGeometryInstancesDataKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public arrayOfPointers : VkBool32 + val mutable public data : VkDeviceOrHostAddressConstKHR + + new(pNext : nativeint, arrayOfPointers : VkBool32, data : VkDeviceOrHostAddressConstKHR) = + { + sType = 1000150004u + pNext = pNext + arrayOfPointers = arrayOfPointers + data = data + } + + new(arrayOfPointers : VkBool32, data : VkDeviceOrHostAddressConstKHR) = + VkAccelerationStructureGeometryInstancesDataKHR(Unchecked.defaultof, arrayOfPointers, data) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.arrayOfPointers = Unchecked.defaultof && x.data = Unchecked.defaultof + + static member Empty = + VkAccelerationStructureGeometryInstancesDataKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "arrayOfPointers = %A" x.arrayOfPointers + sprintf "data = %A" x.data + ] |> sprintf "VkAccelerationStructureGeometryInstancesDataKHR { %s }" + end + + [] + type VkAccelerationStructureGeometryDataKHR = + struct + [] + val mutable public triangles : VkAccelerationStructureGeometryTrianglesDataKHR + [] + val mutable public aabbs : VkAccelerationStructureGeometryAabbsDataKHR + [] + val mutable public instances : VkAccelerationStructureGeometryInstancesDataKHR + + static member Triangles(value : VkAccelerationStructureGeometryTrianglesDataKHR) = + let mutable result = Unchecked.defaultof + result.triangles <- value + result + + static member Aabbs(value : VkAccelerationStructureGeometryAabbsDataKHR) = + let mutable result = Unchecked.defaultof + result.aabbs <- value + result + + static member Instances(value : VkAccelerationStructureGeometryInstancesDataKHR) = + let mutable result = Unchecked.defaultof + result.instances <- value + result + + override x.ToString() = + String.concat "; " [ + sprintf "triangles = %A" x.triangles + sprintf "aabbs = %A" x.aabbs + sprintf "instances = %A" x.instances + ] |> sprintf "VkAccelerationStructureGeometryDataKHR { %s }" + end + + [] + type VkAccelerationStructureGeometryKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public geometryType : VkGeometryTypeKHR + val mutable public geometry : VkAccelerationStructureGeometryDataKHR + val mutable public flags : VkGeometryFlagsKHR + + new(pNext : nativeint, geometryType : VkGeometryTypeKHR, geometry : VkAccelerationStructureGeometryDataKHR, flags : VkGeometryFlagsKHR) = + { + sType = 1000150006u + pNext = pNext + geometryType = geometryType + geometry = geometry + flags = flags + } + + new(geometryType : VkGeometryTypeKHR, geometry : VkAccelerationStructureGeometryDataKHR, flags : VkGeometryFlagsKHR) = + VkAccelerationStructureGeometryKHR(Unchecked.defaultof, geometryType, geometry, flags) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.geometryType = Unchecked.defaultof && x.geometry = Unchecked.defaultof && x.flags = Unchecked.defaultof + + static member Empty = + VkAccelerationStructureGeometryKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "geometryType = %A" x.geometryType + sprintf "geometry = %A" x.geometry + sprintf "flags = %A" x.flags + ] |> sprintf "VkAccelerationStructureGeometryKHR { %s }" + end + + [] + type VkDeviceOrHostAddressKHR = + struct + [] + val mutable public deviceAddress : VkDeviceAddress + [] + val mutable public hostAddress : nativeint + + static member DeviceAddress(value : VkDeviceAddress) = + let mutable result = Unchecked.defaultof + result.deviceAddress <- value + result + + static member HostAddress(value : nativeint) = + let mutable result = Unchecked.defaultof + result.hostAddress <- value + result + + override x.ToString() = + String.concat "; " [ + sprintf "deviceAddress = %A" x.deviceAddress + sprintf "hostAddress = %A" x.hostAddress + ] |> sprintf "VkDeviceOrHostAddressKHR { %s }" + end + + [] + type VkAccelerationStructureBuildGeometryInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public _type : VkAccelerationStructureTypeKHR + val mutable public flags : VkBuildAccelerationStructureFlagsKHR + val mutable public mode : VkBuildAccelerationStructureModeKHR + val mutable public srcAccelerationStructure : VkAccelerationStructureKHR + val mutable public dstAccelerationStructure : VkAccelerationStructureKHR + val mutable public geometryCount : uint32 + val mutable public pGeometries : nativeptr + val mutable public ppGeometries : nativeptr> + val mutable public scratchData : VkDeviceOrHostAddressKHR + + new(pNext : nativeint, _type : VkAccelerationStructureTypeKHR, flags : VkBuildAccelerationStructureFlagsKHR, mode : VkBuildAccelerationStructureModeKHR, srcAccelerationStructure : VkAccelerationStructureKHR, dstAccelerationStructure : VkAccelerationStructureKHR, geometryCount : uint32, pGeometries : nativeptr, ppGeometries : nativeptr>, scratchData : VkDeviceOrHostAddressKHR) = + { + sType = 1000150000u + pNext = pNext + _type = _type + flags = flags + mode = mode + srcAccelerationStructure = srcAccelerationStructure + dstAccelerationStructure = dstAccelerationStructure + geometryCount = geometryCount + pGeometries = pGeometries + ppGeometries = ppGeometries + scratchData = scratchData + } + + new(_type : VkAccelerationStructureTypeKHR, flags : VkBuildAccelerationStructureFlagsKHR, mode : VkBuildAccelerationStructureModeKHR, srcAccelerationStructure : VkAccelerationStructureKHR, dstAccelerationStructure : VkAccelerationStructureKHR, geometryCount : uint32, pGeometries : nativeptr, ppGeometries : nativeptr>, scratchData : VkDeviceOrHostAddressKHR) = + VkAccelerationStructureBuildGeometryInfoKHR(Unchecked.defaultof, _type, flags, mode, srcAccelerationStructure, dstAccelerationStructure, geometryCount, pGeometries, ppGeometries, scratchData) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x._type = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.mode = Unchecked.defaultof && x.srcAccelerationStructure = Unchecked.defaultof && x.dstAccelerationStructure = Unchecked.defaultof && x.geometryCount = Unchecked.defaultof && x.pGeometries = Unchecked.defaultof> && x.ppGeometries = Unchecked.defaultof>> && x.scratchData = Unchecked.defaultof + + static member Empty = + VkAccelerationStructureBuildGeometryInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof>>, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "_type = %A" x._type + sprintf "flags = %A" x.flags + sprintf "mode = %A" x.mode + sprintf "srcAccelerationStructure = %A" x.srcAccelerationStructure + sprintf "dstAccelerationStructure = %A" x.dstAccelerationStructure + sprintf "geometryCount = %A" x.geometryCount + sprintf "pGeometries = %A" x.pGeometries + sprintf "ppGeometries = %A" x.ppGeometries + sprintf "scratchData = %A" x.scratchData + ] |> sprintf "VkAccelerationStructureBuildGeometryInfoKHR { %s }" + end + + [] + type VkAccelerationStructureBuildRangeInfoKHR = + struct + val mutable public primitiveCount : uint32 + val mutable public primitiveOffset : uint32 + val mutable public firstVertex : uint32 + val mutable public transformOffset : uint32 + + new(primitiveCount : uint32, primitiveOffset : uint32, firstVertex : uint32, transformOffset : uint32) = + { + primitiveCount = primitiveCount + primitiveOffset = primitiveOffset + firstVertex = firstVertex + transformOffset = transformOffset + } + + member x.IsEmpty = + x.primitiveCount = Unchecked.defaultof && x.primitiveOffset = Unchecked.defaultof && x.firstVertex = Unchecked.defaultof && x.transformOffset = Unchecked.defaultof + + static member Empty = + VkAccelerationStructureBuildRangeInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "primitiveCount = %A" x.primitiveCount + sprintf "primitiveOffset = %A" x.primitiveOffset + sprintf "firstVertex = %A" x.firstVertex + sprintf "transformOffset = %A" x.transformOffset + ] |> sprintf "VkAccelerationStructureBuildRangeInfoKHR { %s }" + end + + [] + type VkAccelerationStructureBuildSizesInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public accelerationStructureSize : VkDeviceSize + val mutable public updateScratchSize : VkDeviceSize + val mutable public buildScratchSize : VkDeviceSize + + new(pNext : nativeint, accelerationStructureSize : VkDeviceSize, updateScratchSize : VkDeviceSize, buildScratchSize : VkDeviceSize) = + { + sType = 1000150020u + pNext = pNext + accelerationStructureSize = accelerationStructureSize + updateScratchSize = updateScratchSize + buildScratchSize = buildScratchSize + } + + new(accelerationStructureSize : VkDeviceSize, updateScratchSize : VkDeviceSize, buildScratchSize : VkDeviceSize) = + VkAccelerationStructureBuildSizesInfoKHR(Unchecked.defaultof, accelerationStructureSize, updateScratchSize, buildScratchSize) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.accelerationStructureSize = Unchecked.defaultof && x.updateScratchSize = Unchecked.defaultof && x.buildScratchSize = Unchecked.defaultof + + static member Empty = + VkAccelerationStructureBuildSizesInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "accelerationStructureSize = %A" x.accelerationStructureSize + sprintf "updateScratchSize = %A" x.updateScratchSize + sprintf "buildScratchSize = %A" x.buildScratchSize + ] |> sprintf "VkAccelerationStructureBuildSizesInfoKHR { %s }" + end + + [] + type VkAccelerationStructureCreateInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public createFlags : VkAccelerationStructureCreateFlagsKHR + val mutable public buffer : VkBuffer + val mutable public offset : VkDeviceSize + val mutable public size : VkDeviceSize + val mutable public _type : VkAccelerationStructureTypeKHR + val mutable public deviceAddress : VkDeviceAddress + + new(pNext : nativeint, createFlags : VkAccelerationStructureCreateFlagsKHR, buffer : VkBuffer, offset : VkDeviceSize, size : VkDeviceSize, _type : VkAccelerationStructureTypeKHR, deviceAddress : VkDeviceAddress) = + { + sType = 1000150017u + pNext = pNext + createFlags = createFlags + buffer = buffer + offset = offset + size = size + _type = _type + deviceAddress = deviceAddress + } + + new(createFlags : VkAccelerationStructureCreateFlagsKHR, buffer : VkBuffer, offset : VkDeviceSize, size : VkDeviceSize, _type : VkAccelerationStructureTypeKHR, deviceAddress : VkDeviceAddress) = + VkAccelerationStructureCreateInfoKHR(Unchecked.defaultof, createFlags, buffer, offset, size, _type, deviceAddress) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.createFlags = Unchecked.defaultof && x.buffer = Unchecked.defaultof && x.offset = Unchecked.defaultof && x.size = Unchecked.defaultof && x._type = Unchecked.defaultof && x.deviceAddress = Unchecked.defaultof + + static member Empty = + VkAccelerationStructureCreateInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "createFlags = %A" x.createFlags + sprintf "buffer = %A" x.buffer + sprintf "offset = %A" x.offset + sprintf "size = %A" x.size + sprintf "_type = %A" x._type + sprintf "deviceAddress = %A" x.deviceAddress + ] |> sprintf "VkAccelerationStructureCreateInfoKHR { %s }" + end + + [] + type VkAccelerationStructureDeviceAddressInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public accelerationStructure : VkAccelerationStructureKHR + + new(pNext : nativeint, accelerationStructure : VkAccelerationStructureKHR) = + { + sType = 1000150002u + pNext = pNext + accelerationStructure = accelerationStructure + } + + new(accelerationStructure : VkAccelerationStructureKHR) = + VkAccelerationStructureDeviceAddressInfoKHR(Unchecked.defaultof, accelerationStructure) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.accelerationStructure = Unchecked.defaultof + + static member Empty = + VkAccelerationStructureDeviceAddressInfoKHR(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "accelerationStructure = %A" x.accelerationStructure + ] |> sprintf "VkAccelerationStructureDeviceAddressInfoKHR { %s }" + end + + [] + type VkTransformMatrixKHR = + struct + val mutable public matrix : M34f + + new(matrix : M34f) = + { + matrix = matrix + } + + member x.IsEmpty = + x.matrix = Unchecked.defaultof + + static member Empty = + VkTransformMatrixKHR(Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "matrix = %A" x.matrix + ] |> sprintf "VkTransformMatrixKHR { %s }" + end + + [] + type VkAccelerationStructureInstanceKHR = + struct + val mutable public transform : VkTransformMatrixKHR + val mutable public instanceCustomIndex : uint24 + val mutable public mask : uint8 + val mutable public instanceShaderBindingTableRecordOffset : uint24 + val mutable public flags : uint8 + val mutable public accelerationStructureReference : uint64 + + new(transform : VkTransformMatrixKHR, instanceCustomIndex : uint24, mask : uint8, instanceShaderBindingTableRecordOffset : uint24, flags : uint8, accelerationStructureReference : uint64) = + { + transform = transform + instanceCustomIndex = instanceCustomIndex + mask = mask + instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset + flags = flags + accelerationStructureReference = accelerationStructureReference + } + + member x.IsEmpty = + x.transform = Unchecked.defaultof && x.instanceCustomIndex = Unchecked.defaultof && x.mask = Unchecked.defaultof && x.instanceShaderBindingTableRecordOffset = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.accelerationStructureReference = Unchecked.defaultof + + static member Empty = + VkAccelerationStructureInstanceKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "transform = %A" x.transform + sprintf "instanceCustomIndex = %A" x.instanceCustomIndex + sprintf "mask = %A" x.mask + sprintf "instanceShaderBindingTableRecordOffset = %A" x.instanceShaderBindingTableRecordOffset + sprintf "flags = %A" x.flags + sprintf "accelerationStructureReference = %A" x.accelerationStructureReference + ] |> sprintf "VkAccelerationStructureInstanceKHR { %s }" + end + + [] + type VkAccelerationStructureVersionInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public pVersionData : nativeptr + + new(pNext : nativeint, pVersionData : nativeptr) = + { + sType = 1000150009u + pNext = pNext + pVersionData = pVersionData + } + + new(pVersionData : nativeptr) = + VkAccelerationStructureVersionInfoKHR(Unchecked.defaultof, pVersionData) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.pVersionData = Unchecked.defaultof> + + static member Empty = + VkAccelerationStructureVersionInfoKHR(Unchecked.defaultof, Unchecked.defaultof>) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "pVersionData = %A" x.pVersionData + ] |> sprintf "VkAccelerationStructureVersionInfoKHR { %s }" + end + + [] + type VkCopyAccelerationStructureInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public src : VkAccelerationStructureKHR + val mutable public dst : VkAccelerationStructureKHR + val mutable public mode : VkCopyAccelerationStructureModeKHR + + new(pNext : nativeint, src : VkAccelerationStructureKHR, dst : VkAccelerationStructureKHR, mode : VkCopyAccelerationStructureModeKHR) = + { + sType = 1000150010u + pNext = pNext + src = src + dst = dst + mode = mode + } + + new(src : VkAccelerationStructureKHR, dst : VkAccelerationStructureKHR, mode : VkCopyAccelerationStructureModeKHR) = + VkCopyAccelerationStructureInfoKHR(Unchecked.defaultof, src, dst, mode) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.src = Unchecked.defaultof && x.dst = Unchecked.defaultof && x.mode = Unchecked.defaultof + + static member Empty = + VkCopyAccelerationStructureInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "src = %A" x.src + sprintf "dst = %A" x.dst + sprintf "mode = %A" x.mode + ] |> sprintf "VkCopyAccelerationStructureInfoKHR { %s }" + end + + [] + type VkCopyAccelerationStructureToMemoryInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public src : VkAccelerationStructureKHR + val mutable public dst : VkDeviceOrHostAddressKHR + val mutable public mode : VkCopyAccelerationStructureModeKHR + + new(pNext : nativeint, src : VkAccelerationStructureKHR, dst : VkDeviceOrHostAddressKHR, mode : VkCopyAccelerationStructureModeKHR) = + { + sType = 1000150011u + pNext = pNext + src = src + dst = dst + mode = mode + } + + new(src : VkAccelerationStructureKHR, dst : VkDeviceOrHostAddressKHR, mode : VkCopyAccelerationStructureModeKHR) = + VkCopyAccelerationStructureToMemoryInfoKHR(Unchecked.defaultof, src, dst, mode) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.src = Unchecked.defaultof && x.dst = Unchecked.defaultof && x.mode = Unchecked.defaultof + + static member Empty = + VkCopyAccelerationStructureToMemoryInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "src = %A" x.src + sprintf "dst = %A" x.dst + sprintf "mode = %A" x.mode + ] |> sprintf "VkCopyAccelerationStructureToMemoryInfoKHR { %s }" + end + + [] + type VkCopyMemoryToAccelerationStructureInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public src : VkDeviceOrHostAddressConstKHR + val mutable public dst : VkAccelerationStructureKHR + val mutable public mode : VkCopyAccelerationStructureModeKHR + + new(pNext : nativeint, src : VkDeviceOrHostAddressConstKHR, dst : VkAccelerationStructureKHR, mode : VkCopyAccelerationStructureModeKHR) = + { + sType = 1000150012u + pNext = pNext + src = src + dst = dst + mode = mode + } + + new(src : VkDeviceOrHostAddressConstKHR, dst : VkAccelerationStructureKHR, mode : VkCopyAccelerationStructureModeKHR) = + VkCopyMemoryToAccelerationStructureInfoKHR(Unchecked.defaultof, src, dst, mode) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.src = Unchecked.defaultof && x.dst = Unchecked.defaultof && x.mode = Unchecked.defaultof + + static member Empty = + VkCopyMemoryToAccelerationStructureInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "src = %A" x.src + sprintf "dst = %A" x.dst + sprintf "mode = %A" x.mode + ] |> sprintf "VkCopyMemoryToAccelerationStructureInfoKHR { %s }" + end + + [] + type VkPhysicalDeviceAccelerationStructureFeaturesKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public accelerationStructure : VkBool32 + val mutable public accelerationStructureCaptureReplay : VkBool32 + val mutable public accelerationStructureIndirectBuild : VkBool32 + val mutable public accelerationStructureHostCommands : VkBool32 + val mutable public descriptorBindingAccelerationStructureUpdateAfterBind : VkBool32 + + new(pNext : nativeint, accelerationStructure : VkBool32, accelerationStructureCaptureReplay : VkBool32, accelerationStructureIndirectBuild : VkBool32, accelerationStructureHostCommands : VkBool32, descriptorBindingAccelerationStructureUpdateAfterBind : VkBool32) = + { + sType = 1000150013u + pNext = pNext + accelerationStructure = accelerationStructure + accelerationStructureCaptureReplay = accelerationStructureCaptureReplay + accelerationStructureIndirectBuild = accelerationStructureIndirectBuild + accelerationStructureHostCommands = accelerationStructureHostCommands + descriptorBindingAccelerationStructureUpdateAfterBind = descriptorBindingAccelerationStructureUpdateAfterBind + } + + new(accelerationStructure : VkBool32, accelerationStructureCaptureReplay : VkBool32, accelerationStructureIndirectBuild : VkBool32, accelerationStructureHostCommands : VkBool32, descriptorBindingAccelerationStructureUpdateAfterBind : VkBool32) = + VkPhysicalDeviceAccelerationStructureFeaturesKHR(Unchecked.defaultof, accelerationStructure, accelerationStructureCaptureReplay, accelerationStructureIndirectBuild, accelerationStructureHostCommands, descriptorBindingAccelerationStructureUpdateAfterBind) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.accelerationStructure = Unchecked.defaultof && x.accelerationStructureCaptureReplay = Unchecked.defaultof && x.accelerationStructureIndirectBuild = Unchecked.defaultof && x.accelerationStructureHostCommands = Unchecked.defaultof && x.descriptorBindingAccelerationStructureUpdateAfterBind = Unchecked.defaultof + + static member Empty = + VkPhysicalDeviceAccelerationStructureFeaturesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "accelerationStructure = %A" x.accelerationStructure + sprintf "accelerationStructureCaptureReplay = %A" x.accelerationStructureCaptureReplay + sprintf "accelerationStructureIndirectBuild = %A" x.accelerationStructureIndirectBuild + sprintf "accelerationStructureHostCommands = %A" x.accelerationStructureHostCommands + sprintf "descriptorBindingAccelerationStructureUpdateAfterBind = %A" x.descriptorBindingAccelerationStructureUpdateAfterBind + ] |> sprintf "VkPhysicalDeviceAccelerationStructureFeaturesKHR { %s }" + end + + [] + type VkPhysicalDeviceAccelerationStructurePropertiesKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public maxGeometryCount : uint64 + val mutable public maxInstanceCount : uint64 + val mutable public maxPrimitiveCount : uint64 + val mutable public maxPerStageDescriptorAccelerationStructures : uint32 + val mutable public maxPerStageDescriptorUpdateAfterBindAccelerationStructures : uint32 + val mutable public maxDescriptorSetAccelerationStructures : uint32 + val mutable public maxDescriptorSetUpdateAfterBindAccelerationStructures : uint32 + val mutable public minAccelerationStructureScratchOffsetAlignment : uint32 + + new(pNext : nativeint, maxGeometryCount : uint64, maxInstanceCount : uint64, maxPrimitiveCount : uint64, maxPerStageDescriptorAccelerationStructures : uint32, maxPerStageDescriptorUpdateAfterBindAccelerationStructures : uint32, maxDescriptorSetAccelerationStructures : uint32, maxDescriptorSetUpdateAfterBindAccelerationStructures : uint32, minAccelerationStructureScratchOffsetAlignment : uint32) = + { + sType = 1000150014u + pNext = pNext + maxGeometryCount = maxGeometryCount + maxInstanceCount = maxInstanceCount + maxPrimitiveCount = maxPrimitiveCount + maxPerStageDescriptorAccelerationStructures = maxPerStageDescriptorAccelerationStructures + maxPerStageDescriptorUpdateAfterBindAccelerationStructures = maxPerStageDescriptorUpdateAfterBindAccelerationStructures + maxDescriptorSetAccelerationStructures = maxDescriptorSetAccelerationStructures + maxDescriptorSetUpdateAfterBindAccelerationStructures = maxDescriptorSetUpdateAfterBindAccelerationStructures + minAccelerationStructureScratchOffsetAlignment = minAccelerationStructureScratchOffsetAlignment + } + + new(maxGeometryCount : uint64, maxInstanceCount : uint64, maxPrimitiveCount : uint64, maxPerStageDescriptorAccelerationStructures : uint32, maxPerStageDescriptorUpdateAfterBindAccelerationStructures : uint32, maxDescriptorSetAccelerationStructures : uint32, maxDescriptorSetUpdateAfterBindAccelerationStructures : uint32, minAccelerationStructureScratchOffsetAlignment : uint32) = + VkPhysicalDeviceAccelerationStructurePropertiesKHR(Unchecked.defaultof, maxGeometryCount, maxInstanceCount, maxPrimitiveCount, maxPerStageDescriptorAccelerationStructures, maxPerStageDescriptorUpdateAfterBindAccelerationStructures, maxDescriptorSetAccelerationStructures, maxDescriptorSetUpdateAfterBindAccelerationStructures, minAccelerationStructureScratchOffsetAlignment) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.maxGeometryCount = Unchecked.defaultof && x.maxInstanceCount = Unchecked.defaultof && x.maxPrimitiveCount = Unchecked.defaultof && x.maxPerStageDescriptorAccelerationStructures = Unchecked.defaultof && x.maxPerStageDescriptorUpdateAfterBindAccelerationStructures = Unchecked.defaultof && x.maxDescriptorSetAccelerationStructures = Unchecked.defaultof && x.maxDescriptorSetUpdateAfterBindAccelerationStructures = Unchecked.defaultof && x.minAccelerationStructureScratchOffsetAlignment = Unchecked.defaultof + + static member Empty = + VkPhysicalDeviceAccelerationStructurePropertiesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "maxGeometryCount = %A" x.maxGeometryCount + sprintf "maxInstanceCount = %A" x.maxInstanceCount + sprintf "maxPrimitiveCount = %A" x.maxPrimitiveCount + sprintf "maxPerStageDescriptorAccelerationStructures = %A" x.maxPerStageDescriptorAccelerationStructures + sprintf "maxPerStageDescriptorUpdateAfterBindAccelerationStructures = %A" x.maxPerStageDescriptorUpdateAfterBindAccelerationStructures + sprintf "maxDescriptorSetAccelerationStructures = %A" x.maxDescriptorSetAccelerationStructures + sprintf "maxDescriptorSetUpdateAfterBindAccelerationStructures = %A" x.maxDescriptorSetUpdateAfterBindAccelerationStructures + sprintf "minAccelerationStructureScratchOffsetAlignment = %A" x.minAccelerationStructureScratchOffsetAlignment + ] |> sprintf "VkPhysicalDeviceAccelerationStructurePropertiesKHR { %s }" + end + + [] + type VkWriteDescriptorSetAccelerationStructureKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public accelerationStructureCount : uint32 + val mutable public pAccelerationStructures : nativeptr + + new(pNext : nativeint, accelerationStructureCount : uint32, pAccelerationStructures : nativeptr) = + { + sType = 1000150007u + pNext = pNext + accelerationStructureCount = accelerationStructureCount + pAccelerationStructures = pAccelerationStructures + } + + new(accelerationStructureCount : uint32, pAccelerationStructures : nativeptr) = + VkWriteDescriptorSetAccelerationStructureKHR(Unchecked.defaultof, accelerationStructureCount, pAccelerationStructures) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.accelerationStructureCount = Unchecked.defaultof && x.pAccelerationStructures = Unchecked.defaultof> + + static member Empty = + VkWriteDescriptorSetAccelerationStructureKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "accelerationStructureCount = %A" x.accelerationStructureCount + sprintf "pAccelerationStructures = %A" x.pAccelerationStructures + ] |> sprintf "VkWriteDescriptorSetAccelerationStructureKHR { %s }" + end + + + [] + module EnumExtensions = + type VkAccessFlags with + static member inline AccelerationStructureReadBitKhr = unbox 0x00200000 + static member inline AccelerationStructureWriteBitKhr = unbox 0x00400000 + type VkBufferUsageFlags with + static member inline AccelerationStructureBuildInputReadOnlyBitKhr = unbox 0x00080000 + static member inline AccelerationStructureStorageBitKhr = unbox 0x00100000 + type VkDescriptorType with + static member inline AccelerationStructureKhr = unbox 1000150000 + type VkFormatFeatureFlags with + static member inline AccelerationStructureVertexBufferBitKhr = unbox 0x20000000 + type VkIndexType with + static member inline NoneKhr = unbox 1000165000 + type VkObjectType with + static member inline AccelerationStructureKhr = unbox 1000150000 + type VkPipelineStageFlags with + static member inline AccelerationStructureBuildBitKhr = unbox 0x02000000 + type VkQueryType with + static member inline AccelerationStructureCompactedSizeKhr = unbox 1000150000 + static member inline AccelerationStructureSerializationSizeKhr = unbox 1000150001 + + module VkRaw = + [] + type VkCreateAccelerationStructureKHRDel = delegate of VkDevice * nativeptr * nativeptr * nativeptr -> VkResult + [] + type VkDestroyAccelerationStructureKHRDel = delegate of VkDevice * VkAccelerationStructureKHR * nativeptr -> unit + [] + type VkCmdBuildAccelerationStructuresKHRDel = delegate of VkCommandBuffer * uint32 * nativeptr * nativeptr> -> unit + [] + type VkCmdBuildAccelerationStructuresIndirectKHRDel = delegate of VkCommandBuffer * uint32 * nativeptr * nativeptr * nativeptr * nativeptr> -> unit + [] + type VkBuildAccelerationStructuresKHRDel = delegate of VkDevice * KHRDeferredHostOperations.VkDeferredOperationKHR * uint32 * nativeptr * nativeptr> -> VkResult + [] + type VkCopyAccelerationStructureKHRDel = delegate of VkDevice * KHRDeferredHostOperations.VkDeferredOperationKHR * nativeptr -> VkResult + [] + type VkCopyAccelerationStructureToMemoryKHRDel = delegate of VkDevice * KHRDeferredHostOperations.VkDeferredOperationKHR * nativeptr -> VkResult + [] + type VkCopyMemoryToAccelerationStructureKHRDel = delegate of VkDevice * KHRDeferredHostOperations.VkDeferredOperationKHR * nativeptr -> VkResult + [] + type VkWriteAccelerationStructuresPropertiesKHRDel = delegate of VkDevice * uint32 * nativeptr * VkQueryType * uint64 * nativeint * uint64 -> VkResult + [] + type VkCmdCopyAccelerationStructureKHRDel = delegate of VkCommandBuffer * nativeptr -> unit + [] + type VkCmdCopyAccelerationStructureToMemoryKHRDel = delegate of VkCommandBuffer * nativeptr -> unit + [] + type VkCmdCopyMemoryToAccelerationStructureKHRDel = delegate of VkCommandBuffer * nativeptr -> unit + [] + type VkGetAccelerationStructureDeviceAddressKHRDel = delegate of VkDevice * nativeptr -> VkDeviceAddress + [] + type VkCmdWriteAccelerationStructuresPropertiesKHRDel = delegate of VkCommandBuffer * uint32 * nativeptr * VkQueryType * VkQueryPool * uint32 -> unit + [] + type VkGetDeviceAccelerationStructureCompatibilityKHRDel = delegate of VkDevice * nativeptr * nativeptr -> unit + [] + type VkGetAccelerationStructureBuildSizesKHRDel = delegate of VkDevice * VkAccelerationStructureBuildTypeKHR * nativeptr * nativeptr * nativeptr -> unit + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRAccelerationStructure") + static let s_vkCreateAccelerationStructureKHRDel = VkRaw.vkImportInstanceDelegate "vkCreateAccelerationStructureKHR" + static let s_vkDestroyAccelerationStructureKHRDel = VkRaw.vkImportInstanceDelegate "vkDestroyAccelerationStructureKHR" + static let s_vkCmdBuildAccelerationStructuresKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdBuildAccelerationStructuresKHR" + static let s_vkCmdBuildAccelerationStructuresIndirectKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdBuildAccelerationStructuresIndirectKHR" + static let s_vkBuildAccelerationStructuresKHRDel = VkRaw.vkImportInstanceDelegate "vkBuildAccelerationStructuresKHR" + static let s_vkCopyAccelerationStructureKHRDel = VkRaw.vkImportInstanceDelegate "vkCopyAccelerationStructureKHR" + static let s_vkCopyAccelerationStructureToMemoryKHRDel = VkRaw.vkImportInstanceDelegate "vkCopyAccelerationStructureToMemoryKHR" + static let s_vkCopyMemoryToAccelerationStructureKHRDel = VkRaw.vkImportInstanceDelegate "vkCopyMemoryToAccelerationStructureKHR" + static let s_vkWriteAccelerationStructuresPropertiesKHRDel = VkRaw.vkImportInstanceDelegate "vkWriteAccelerationStructuresPropertiesKHR" + static let s_vkCmdCopyAccelerationStructureKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdCopyAccelerationStructureKHR" + static let s_vkCmdCopyAccelerationStructureToMemoryKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdCopyAccelerationStructureToMemoryKHR" + static let s_vkCmdCopyMemoryToAccelerationStructureKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdCopyMemoryToAccelerationStructureKHR" + static let s_vkGetAccelerationStructureDeviceAddressKHRDel = VkRaw.vkImportInstanceDelegate "vkGetAccelerationStructureDeviceAddressKHR" + static let s_vkCmdWriteAccelerationStructuresPropertiesKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdWriteAccelerationStructuresPropertiesKHR" + static let s_vkGetDeviceAccelerationStructureCompatibilityKHRDel = VkRaw.vkImportInstanceDelegate "vkGetDeviceAccelerationStructureCompatibilityKHR" + static let s_vkGetAccelerationStructureBuildSizesKHRDel = VkRaw.vkImportInstanceDelegate "vkGetAccelerationStructureBuildSizesKHR" + static do Report.End(3) |> ignore + static member vkCreateAccelerationStructureKHR = s_vkCreateAccelerationStructureKHRDel + static member vkDestroyAccelerationStructureKHR = s_vkDestroyAccelerationStructureKHRDel + static member vkCmdBuildAccelerationStructuresKHR = s_vkCmdBuildAccelerationStructuresKHRDel + static member vkCmdBuildAccelerationStructuresIndirectKHR = s_vkCmdBuildAccelerationStructuresIndirectKHRDel + static member vkBuildAccelerationStructuresKHR = s_vkBuildAccelerationStructuresKHRDel + static member vkCopyAccelerationStructureKHR = s_vkCopyAccelerationStructureKHRDel + static member vkCopyAccelerationStructureToMemoryKHR = s_vkCopyAccelerationStructureToMemoryKHRDel + static member vkCopyMemoryToAccelerationStructureKHR = s_vkCopyMemoryToAccelerationStructureKHRDel + static member vkWriteAccelerationStructuresPropertiesKHR = s_vkWriteAccelerationStructuresPropertiesKHRDel + static member vkCmdCopyAccelerationStructureKHR = s_vkCmdCopyAccelerationStructureKHRDel + static member vkCmdCopyAccelerationStructureToMemoryKHR = s_vkCmdCopyAccelerationStructureToMemoryKHRDel + static member vkCmdCopyMemoryToAccelerationStructureKHR = s_vkCmdCopyMemoryToAccelerationStructureKHRDel + static member vkGetAccelerationStructureDeviceAddressKHR = s_vkGetAccelerationStructureDeviceAddressKHRDel + static member vkCmdWriteAccelerationStructuresPropertiesKHR = s_vkCmdWriteAccelerationStructuresPropertiesKHRDel + static member vkGetDeviceAccelerationStructureCompatibilityKHR = s_vkGetDeviceAccelerationStructureCompatibilityKHRDel + static member vkGetAccelerationStructureBuildSizesKHR = s_vkGetAccelerationStructureBuildSizesKHRDel + let vkCreateAccelerationStructureKHR(device : VkDevice, pCreateInfo : nativeptr, pAllocator : nativeptr, pAccelerationStructure : nativeptr) = Loader.vkCreateAccelerationStructureKHR.Invoke(device, pCreateInfo, pAllocator, pAccelerationStructure) + let vkDestroyAccelerationStructureKHR(device : VkDevice, accelerationStructure : VkAccelerationStructureKHR, pAllocator : nativeptr) = Loader.vkDestroyAccelerationStructureKHR.Invoke(device, accelerationStructure, pAllocator) + let vkCmdBuildAccelerationStructuresKHR(commandBuffer : VkCommandBuffer, infoCount : uint32, pInfos : nativeptr, ppBuildRangeInfos : nativeptr>) = Loader.vkCmdBuildAccelerationStructuresKHR.Invoke(commandBuffer, infoCount, pInfos, ppBuildRangeInfos) + let vkCmdBuildAccelerationStructuresIndirectKHR(commandBuffer : VkCommandBuffer, infoCount : uint32, pInfos : nativeptr, pIndirectDeviceAddresses : nativeptr, pIndirectStrides : nativeptr, ppMaxPrimitiveCounts : nativeptr>) = Loader.vkCmdBuildAccelerationStructuresIndirectKHR.Invoke(commandBuffer, infoCount, pInfos, pIndirectDeviceAddresses, pIndirectStrides, ppMaxPrimitiveCounts) + let vkBuildAccelerationStructuresKHR(device : VkDevice, deferredOperation : KHRDeferredHostOperations.VkDeferredOperationKHR, infoCount : uint32, pInfos : nativeptr, ppBuildRangeInfos : nativeptr>) = Loader.vkBuildAccelerationStructuresKHR.Invoke(device, deferredOperation, infoCount, pInfos, ppBuildRangeInfos) + let vkCopyAccelerationStructureKHR(device : VkDevice, deferredOperation : KHRDeferredHostOperations.VkDeferredOperationKHR, pInfo : nativeptr) = Loader.vkCopyAccelerationStructureKHR.Invoke(device, deferredOperation, pInfo) + let vkCopyAccelerationStructureToMemoryKHR(device : VkDevice, deferredOperation : KHRDeferredHostOperations.VkDeferredOperationKHR, pInfo : nativeptr) = Loader.vkCopyAccelerationStructureToMemoryKHR.Invoke(device, deferredOperation, pInfo) + let vkCopyMemoryToAccelerationStructureKHR(device : VkDevice, deferredOperation : KHRDeferredHostOperations.VkDeferredOperationKHR, pInfo : nativeptr) = Loader.vkCopyMemoryToAccelerationStructureKHR.Invoke(device, deferredOperation, pInfo) + let vkWriteAccelerationStructuresPropertiesKHR(device : VkDevice, accelerationStructureCount : uint32, pAccelerationStructures : nativeptr, queryType : VkQueryType, dataSize : uint64, pData : nativeint, stride : uint64) = Loader.vkWriteAccelerationStructuresPropertiesKHR.Invoke(device, accelerationStructureCount, pAccelerationStructures, queryType, dataSize, pData, stride) + let vkCmdCopyAccelerationStructureKHR(commandBuffer : VkCommandBuffer, pInfo : nativeptr) = Loader.vkCmdCopyAccelerationStructureKHR.Invoke(commandBuffer, pInfo) + let vkCmdCopyAccelerationStructureToMemoryKHR(commandBuffer : VkCommandBuffer, pInfo : nativeptr) = Loader.vkCmdCopyAccelerationStructureToMemoryKHR.Invoke(commandBuffer, pInfo) + let vkCmdCopyMemoryToAccelerationStructureKHR(commandBuffer : VkCommandBuffer, pInfo : nativeptr) = Loader.vkCmdCopyMemoryToAccelerationStructureKHR.Invoke(commandBuffer, pInfo) + let vkGetAccelerationStructureDeviceAddressKHR(device : VkDevice, pInfo : nativeptr) = Loader.vkGetAccelerationStructureDeviceAddressKHR.Invoke(device, pInfo) + let vkCmdWriteAccelerationStructuresPropertiesKHR(commandBuffer : VkCommandBuffer, accelerationStructureCount : uint32, pAccelerationStructures : nativeptr, queryType : VkQueryType, queryPool : VkQueryPool, firstQuery : uint32) = Loader.vkCmdWriteAccelerationStructuresPropertiesKHR.Invoke(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) + let vkGetDeviceAccelerationStructureCompatibilityKHR(device : VkDevice, pVersionInfo : nativeptr, pCompatibility : nativeptr) = Loader.vkGetDeviceAccelerationStructureCompatibilityKHR.Invoke(device, pVersionInfo, pCompatibility) + let vkGetAccelerationStructureBuildSizesKHR(device : VkDevice, buildType : VkAccelerationStructureBuildTypeKHR, pBuildInfo : nativeptr, pMaxPrimitiveCounts : nativeptr, pSizeInfo : nativeptr) = Loader.vkGetAccelerationStructureBuildSizesKHR.Invoke(device, buildType, pBuildInfo, pMaxPrimitiveCounts, pSizeInfo) + + [] + module ``KHRFormatFeatureFlags2 | Vulkan13`` = + [] + module EnumExtensions = + type Vulkan13.VkFormatFeatureFlags2 with + static member inline FormatFeature2AccelerationStructureVertexBufferBitKhr = unbox 0x20000000 + + + [] + module ``EXTDebugReport`` = + [] + module EnumExtensions = + type EXTDebugReport.VkDebugReportObjectTypeEXT with + static member inline AccelerationStructureKhr = unbox 1000150000 + + +/// Requires KHRSpirv14, KHRAccelerationStructure. +module KHRRayTracingPipeline = + let Type = ExtensionType.Device + let Name = "VK_KHR_ray_tracing_pipeline" + let Number = 348 + + type VkRayTracingShaderGroupTypeKHR = + | General = 0 + | TrianglesHitGroup = 1 + | ProceduralHitGroup = 2 + + type VkShaderGroupShaderKHR = + | General = 0 + | ClosestHit = 1 + | AnyHit = 2 + | Intersection = 3 + + + [] + type VkPhysicalDeviceRayTracingPipelineFeaturesKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public rayTracingPipeline : VkBool32 + val mutable public rayTracingPipelineShaderGroupHandleCaptureReplay : VkBool32 + val mutable public rayTracingPipelineShaderGroupHandleCaptureReplayMixed : VkBool32 + val mutable public rayTracingPipelineTraceRaysIndirect : VkBool32 + val mutable public rayTraversalPrimitiveCulling : VkBool32 + + new(pNext : nativeint, rayTracingPipeline : VkBool32, rayTracingPipelineShaderGroupHandleCaptureReplay : VkBool32, rayTracingPipelineShaderGroupHandleCaptureReplayMixed : VkBool32, rayTracingPipelineTraceRaysIndirect : VkBool32, rayTraversalPrimitiveCulling : VkBool32) = + { + sType = 1000347000u + pNext = pNext + rayTracingPipeline = rayTracingPipeline + rayTracingPipelineShaderGroupHandleCaptureReplay = rayTracingPipelineShaderGroupHandleCaptureReplay + rayTracingPipelineShaderGroupHandleCaptureReplayMixed = rayTracingPipelineShaderGroupHandleCaptureReplayMixed + rayTracingPipelineTraceRaysIndirect = rayTracingPipelineTraceRaysIndirect + rayTraversalPrimitiveCulling = rayTraversalPrimitiveCulling + } + + new(rayTracingPipeline : VkBool32, rayTracingPipelineShaderGroupHandleCaptureReplay : VkBool32, rayTracingPipelineShaderGroupHandleCaptureReplayMixed : VkBool32, rayTracingPipelineTraceRaysIndirect : VkBool32, rayTraversalPrimitiveCulling : VkBool32) = + VkPhysicalDeviceRayTracingPipelineFeaturesKHR(Unchecked.defaultof, rayTracingPipeline, rayTracingPipelineShaderGroupHandleCaptureReplay, rayTracingPipelineShaderGroupHandleCaptureReplayMixed, rayTracingPipelineTraceRaysIndirect, rayTraversalPrimitiveCulling) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.rayTracingPipeline = Unchecked.defaultof && x.rayTracingPipelineShaderGroupHandleCaptureReplay = Unchecked.defaultof && x.rayTracingPipelineShaderGroupHandleCaptureReplayMixed = Unchecked.defaultof && x.rayTracingPipelineTraceRaysIndirect = Unchecked.defaultof && x.rayTraversalPrimitiveCulling = Unchecked.defaultof + + static member Empty = + VkPhysicalDeviceRayTracingPipelineFeaturesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "rayTracingPipeline = %A" x.rayTracingPipeline + sprintf "rayTracingPipelineShaderGroupHandleCaptureReplay = %A" x.rayTracingPipelineShaderGroupHandleCaptureReplay + sprintf "rayTracingPipelineShaderGroupHandleCaptureReplayMixed = %A" x.rayTracingPipelineShaderGroupHandleCaptureReplayMixed + sprintf "rayTracingPipelineTraceRaysIndirect = %A" x.rayTracingPipelineTraceRaysIndirect + sprintf "rayTraversalPrimitiveCulling = %A" x.rayTraversalPrimitiveCulling + ] |> sprintf "VkPhysicalDeviceRayTracingPipelineFeaturesKHR { %s }" + end + + [] + type VkPhysicalDeviceRayTracingPipelinePropertiesKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public shaderGroupHandleSize : uint32 + val mutable public maxRayRecursionDepth : uint32 + val mutable public maxShaderGroupStride : uint32 + val mutable public shaderGroupBaseAlignment : uint32 + val mutable public shaderGroupHandleCaptureReplaySize : uint32 + val mutable public maxRayDispatchInvocationCount : uint32 + val mutable public shaderGroupHandleAlignment : uint32 + val mutable public maxRayHitAttributeSize : uint32 + + new(pNext : nativeint, shaderGroupHandleSize : uint32, maxRayRecursionDepth : uint32, maxShaderGroupStride : uint32, shaderGroupBaseAlignment : uint32, shaderGroupHandleCaptureReplaySize : uint32, maxRayDispatchInvocationCount : uint32, shaderGroupHandleAlignment : uint32, maxRayHitAttributeSize : uint32) = + { + sType = 1000347001u + pNext = pNext + shaderGroupHandleSize = shaderGroupHandleSize + maxRayRecursionDepth = maxRayRecursionDepth + maxShaderGroupStride = maxShaderGroupStride + shaderGroupBaseAlignment = shaderGroupBaseAlignment + shaderGroupHandleCaptureReplaySize = shaderGroupHandleCaptureReplaySize + maxRayDispatchInvocationCount = maxRayDispatchInvocationCount + shaderGroupHandleAlignment = shaderGroupHandleAlignment + maxRayHitAttributeSize = maxRayHitAttributeSize + } + + new(shaderGroupHandleSize : uint32, maxRayRecursionDepth : uint32, maxShaderGroupStride : uint32, shaderGroupBaseAlignment : uint32, shaderGroupHandleCaptureReplaySize : uint32, maxRayDispatchInvocationCount : uint32, shaderGroupHandleAlignment : uint32, maxRayHitAttributeSize : uint32) = + VkPhysicalDeviceRayTracingPipelinePropertiesKHR(Unchecked.defaultof, shaderGroupHandleSize, maxRayRecursionDepth, maxShaderGroupStride, shaderGroupBaseAlignment, shaderGroupHandleCaptureReplaySize, maxRayDispatchInvocationCount, shaderGroupHandleAlignment, maxRayHitAttributeSize) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.shaderGroupHandleSize = Unchecked.defaultof && x.maxRayRecursionDepth = Unchecked.defaultof && x.maxShaderGroupStride = Unchecked.defaultof && x.shaderGroupBaseAlignment = Unchecked.defaultof && x.shaderGroupHandleCaptureReplaySize = Unchecked.defaultof && x.maxRayDispatchInvocationCount = Unchecked.defaultof && x.shaderGroupHandleAlignment = Unchecked.defaultof && x.maxRayHitAttributeSize = Unchecked.defaultof + + static member Empty = + VkPhysicalDeviceRayTracingPipelinePropertiesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "shaderGroupHandleSize = %A" x.shaderGroupHandleSize + sprintf "maxRayRecursionDepth = %A" x.maxRayRecursionDepth + sprintf "maxShaderGroupStride = %A" x.maxShaderGroupStride + sprintf "shaderGroupBaseAlignment = %A" x.shaderGroupBaseAlignment + sprintf "shaderGroupHandleCaptureReplaySize = %A" x.shaderGroupHandleCaptureReplaySize + sprintf "maxRayDispatchInvocationCount = %A" x.maxRayDispatchInvocationCount + sprintf "shaderGroupHandleAlignment = %A" x.shaderGroupHandleAlignment + sprintf "maxRayHitAttributeSize = %A" x.maxRayHitAttributeSize + ] |> sprintf "VkPhysicalDeviceRayTracingPipelinePropertiesKHR { %s }" + end + + [] + type VkRayTracingShaderGroupCreateInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public _type : VkRayTracingShaderGroupTypeKHR + val mutable public generalShader : uint32 + val mutable public closestHitShader : uint32 + val mutable public anyHitShader : uint32 + val mutable public intersectionShader : uint32 + val mutable public pShaderGroupCaptureReplayHandle : nativeint + + new(pNext : nativeint, _type : VkRayTracingShaderGroupTypeKHR, generalShader : uint32, closestHitShader : uint32, anyHitShader : uint32, intersectionShader : uint32, pShaderGroupCaptureReplayHandle : nativeint) = + { + sType = 1000150016u + pNext = pNext + _type = _type + generalShader = generalShader + closestHitShader = closestHitShader + anyHitShader = anyHitShader + intersectionShader = intersectionShader + pShaderGroupCaptureReplayHandle = pShaderGroupCaptureReplayHandle + } + + new(_type : VkRayTracingShaderGroupTypeKHR, generalShader : uint32, closestHitShader : uint32, anyHitShader : uint32, intersectionShader : uint32, pShaderGroupCaptureReplayHandle : nativeint) = + VkRayTracingShaderGroupCreateInfoKHR(Unchecked.defaultof, _type, generalShader, closestHitShader, anyHitShader, intersectionShader, pShaderGroupCaptureReplayHandle) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x._type = Unchecked.defaultof && x.generalShader = Unchecked.defaultof && x.closestHitShader = Unchecked.defaultof && x.anyHitShader = Unchecked.defaultof && x.intersectionShader = Unchecked.defaultof && x.pShaderGroupCaptureReplayHandle = Unchecked.defaultof + + static member Empty = + VkRayTracingShaderGroupCreateInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "_type = %A" x._type + sprintf "generalShader = %A" x.generalShader + sprintf "closestHitShader = %A" x.closestHitShader + sprintf "anyHitShader = %A" x.anyHitShader + sprintf "intersectionShader = %A" x.intersectionShader + sprintf "pShaderGroupCaptureReplayHandle = %A" x.pShaderGroupCaptureReplayHandle + ] |> sprintf "VkRayTracingShaderGroupCreateInfoKHR { %s }" + end + + [] + type VkRayTracingPipelineInterfaceCreateInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public maxPipelineRayPayloadSize : uint32 + val mutable public maxPipelineRayHitAttributeSize : uint32 + + new(pNext : nativeint, maxPipelineRayPayloadSize : uint32, maxPipelineRayHitAttributeSize : uint32) = + { + sType = 1000150018u + pNext = pNext + maxPipelineRayPayloadSize = maxPipelineRayPayloadSize + maxPipelineRayHitAttributeSize = maxPipelineRayHitAttributeSize + } + + new(maxPipelineRayPayloadSize : uint32, maxPipelineRayHitAttributeSize : uint32) = + VkRayTracingPipelineInterfaceCreateInfoKHR(Unchecked.defaultof, maxPipelineRayPayloadSize, maxPipelineRayHitAttributeSize) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.maxPipelineRayPayloadSize = Unchecked.defaultof && x.maxPipelineRayHitAttributeSize = Unchecked.defaultof + + static member Empty = + VkRayTracingPipelineInterfaceCreateInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "maxPipelineRayPayloadSize = %A" x.maxPipelineRayPayloadSize + sprintf "maxPipelineRayHitAttributeSize = %A" x.maxPipelineRayHitAttributeSize + ] |> sprintf "VkRayTracingPipelineInterfaceCreateInfoKHR { %s }" + end + + [] + type VkRayTracingPipelineCreateInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public flags : VkPipelineCreateFlags + val mutable public stageCount : uint32 + val mutable public pStages : nativeptr + val mutable public groupCount : uint32 + val mutable public pGroups : nativeptr + val mutable public maxPipelineRayRecursionDepth : uint32 + val mutable public pLibraryInfo : nativeptr + val mutable public pLibraryInterface : nativeptr + val mutable public pDynamicState : nativeptr + val mutable public layout : VkPipelineLayout + val mutable public basePipelineHandle : VkPipeline + val mutable public basePipelineIndex : int32 + + new(pNext : nativeint, flags : VkPipelineCreateFlags, stageCount : uint32, pStages : nativeptr, groupCount : uint32, pGroups : nativeptr, maxPipelineRayRecursionDepth : uint32, pLibraryInfo : nativeptr, pLibraryInterface : nativeptr, pDynamicState : nativeptr, layout : VkPipelineLayout, basePipelineHandle : VkPipeline, basePipelineIndex : int32) = + { + sType = 1000150015u + pNext = pNext + flags = flags + stageCount = stageCount + pStages = pStages + groupCount = groupCount + pGroups = pGroups + maxPipelineRayRecursionDepth = maxPipelineRayRecursionDepth + pLibraryInfo = pLibraryInfo + pLibraryInterface = pLibraryInterface + pDynamicState = pDynamicState + layout = layout + basePipelineHandle = basePipelineHandle + basePipelineIndex = basePipelineIndex + } + + new(flags : VkPipelineCreateFlags, stageCount : uint32, pStages : nativeptr, groupCount : uint32, pGroups : nativeptr, maxPipelineRayRecursionDepth : uint32, pLibraryInfo : nativeptr, pLibraryInterface : nativeptr, pDynamicState : nativeptr, layout : VkPipelineLayout, basePipelineHandle : VkPipeline, basePipelineIndex : int32) = + VkRayTracingPipelineCreateInfoKHR(Unchecked.defaultof, flags, stageCount, pStages, groupCount, pGroups, maxPipelineRayRecursionDepth, pLibraryInfo, pLibraryInterface, pDynamicState, layout, basePipelineHandle, basePipelineIndex) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.stageCount = Unchecked.defaultof && x.pStages = Unchecked.defaultof> && x.groupCount = Unchecked.defaultof && x.pGroups = Unchecked.defaultof> && x.maxPipelineRayRecursionDepth = Unchecked.defaultof && x.pLibraryInfo = Unchecked.defaultof> && x.pLibraryInterface = Unchecked.defaultof> && x.pDynamicState = Unchecked.defaultof> && x.layout = Unchecked.defaultof && x.basePipelineHandle = Unchecked.defaultof && x.basePipelineIndex = Unchecked.defaultof + + static member Empty = + VkRayTracingPipelineCreateInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof>, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "flags = %A" x.flags + sprintf "stageCount = %A" x.stageCount + sprintf "pStages = %A" x.pStages + sprintf "groupCount = %A" x.groupCount + sprintf "pGroups = %A" x.pGroups + sprintf "maxPipelineRayRecursionDepth = %A" x.maxPipelineRayRecursionDepth + sprintf "pLibraryInfo = %A" x.pLibraryInfo + sprintf "pLibraryInterface = %A" x.pLibraryInterface + sprintf "pDynamicState = %A" x.pDynamicState + sprintf "layout = %A" x.layout + sprintf "basePipelineHandle = %A" x.basePipelineHandle + sprintf "basePipelineIndex = %A" x.basePipelineIndex + ] |> sprintf "VkRayTracingPipelineCreateInfoKHR { %s }" + end + + [] + type VkStridedDeviceAddressRegionKHR = + struct + val mutable public deviceAddress : VkDeviceAddress + val mutable public stride : VkDeviceSize + val mutable public size : VkDeviceSize + + new(deviceAddress : VkDeviceAddress, stride : VkDeviceSize, size : VkDeviceSize) = + { + deviceAddress = deviceAddress + stride = stride + size = size + } + + member x.IsEmpty = + x.deviceAddress = Unchecked.defaultof && x.stride = Unchecked.defaultof && x.size = Unchecked.defaultof + + static member Empty = + VkStridedDeviceAddressRegionKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "deviceAddress = %A" x.deviceAddress + sprintf "stride = %A" x.stride + sprintf "size = %A" x.size + ] |> sprintf "VkStridedDeviceAddressRegionKHR { %s }" + end + + [] + type VkTraceRaysIndirectCommandKHR = + struct + val mutable public width : uint32 + val mutable public height : uint32 + val mutable public depth : uint32 + + new(width : uint32, height : uint32, depth : uint32) = + { + width = width + height = height + depth = depth + } + + member x.IsEmpty = + x.width = Unchecked.defaultof && x.height = Unchecked.defaultof && x.depth = Unchecked.defaultof + + static member Empty = + VkTraceRaysIndirectCommandKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "width = %A" x.width + sprintf "height = %A" x.height + sprintf "depth = %A" x.depth + ] |> sprintf "VkTraceRaysIndirectCommandKHR { %s }" + end + + + [] + module EnumExtensions = + type VkBufferUsageFlags with + static member inline ShaderBindingTableBitKhr = unbox 0x00000400 + type VkDynamicState with + static member inline RayTracingPipelineStackSizeKhr = unbox 1000347000 + type VkPipelineBindPoint with + static member inline RayTracingKhr = unbox 1000165000 + type VkPipelineCreateFlags with + static member inline RayTracingNoNullAnyHitShadersBitKhr = unbox 0x00004000 + static member inline RayTracingNoNullClosestHitShadersBitKhr = unbox 0x00008000 + static member inline RayTracingNoNullMissShadersBitKhr = unbox 0x00010000 + static member inline RayTracingNoNullIntersectionShadersBitKhr = unbox 0x00020000 + static member inline RayTracingSkipTrianglesBitKhr = unbox 0x00001000 + static member inline RayTracingSkipAabbsBitKhr = unbox 0x00002000 + static member inline RayTracingShaderGroupHandleCaptureReplayBitKhr = unbox 0x00080000 + type VkPipelineStageFlags with + static member inline RayTracingShaderBitKhr = unbox 0x00200000 + type VkShaderStageFlags with + static member inline RaygenBitKhr = unbox 0x00000100 + static member inline AnyHitBitKhr = unbox 0x00000200 + static member inline ClosestHitBitKhr = unbox 0x00000400 + static member inline MissBitKhr = unbox 0x00000800 + static member inline IntersectionBitKhr = unbox 0x00001000 + static member inline CallableBitKhr = unbox 0x00002000 + + module VkRaw = + [] + type VkCmdTraceRaysKHRDel = delegate of VkCommandBuffer * nativeptr * nativeptr * nativeptr * nativeptr * uint32 * uint32 * uint32 -> unit + [] + type VkCreateRayTracingPipelinesKHRDel = delegate of VkDevice * KHRDeferredHostOperations.VkDeferredOperationKHR * VkPipelineCache * uint32 * nativeptr * nativeptr * nativeptr -> VkResult + [] + type VkGetRayTracingShaderGroupHandlesKHRDel = delegate of VkDevice * VkPipeline * uint32 * uint32 * uint64 * nativeint -> VkResult + [] + type VkGetRayTracingCaptureReplayShaderGroupHandlesKHRDel = delegate of VkDevice * VkPipeline * uint32 * uint32 * uint64 * nativeint -> VkResult + [] + type VkCmdTraceRaysIndirectKHRDel = delegate of VkCommandBuffer * nativeptr * nativeptr * nativeptr * nativeptr * VkDeviceAddress -> unit + [] + type VkGetRayTracingShaderGroupStackSizeKHRDel = delegate of VkDevice * VkPipeline * uint32 * VkShaderGroupShaderKHR -> VkDeviceSize + [] + type VkCmdSetRayTracingPipelineStackSizeKHRDel = delegate of VkCommandBuffer * uint32 -> unit + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRRayTracingPipeline") + static let s_vkCmdTraceRaysKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdTraceRaysKHR" + static let s_vkCreateRayTracingPipelinesKHRDel = VkRaw.vkImportInstanceDelegate "vkCreateRayTracingPipelinesKHR" + static let s_vkGetRayTracingShaderGroupHandlesKHRDel = VkRaw.vkImportInstanceDelegate "vkGetRayTracingShaderGroupHandlesKHR" + static let s_vkGetRayTracingCaptureReplayShaderGroupHandlesKHRDel = VkRaw.vkImportInstanceDelegate "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" + static let s_vkCmdTraceRaysIndirectKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdTraceRaysIndirectKHR" + static let s_vkGetRayTracingShaderGroupStackSizeKHRDel = VkRaw.vkImportInstanceDelegate "vkGetRayTracingShaderGroupStackSizeKHR" + static let s_vkCmdSetRayTracingPipelineStackSizeKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdSetRayTracingPipelineStackSizeKHR" + static do Report.End(3) |> ignore + static member vkCmdTraceRaysKHR = s_vkCmdTraceRaysKHRDel + static member vkCreateRayTracingPipelinesKHR = s_vkCreateRayTracingPipelinesKHRDel + static member vkGetRayTracingShaderGroupHandlesKHR = s_vkGetRayTracingShaderGroupHandlesKHRDel + static member vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = s_vkGetRayTracingCaptureReplayShaderGroupHandlesKHRDel + static member vkCmdTraceRaysIndirectKHR = s_vkCmdTraceRaysIndirectKHRDel + static member vkGetRayTracingShaderGroupStackSizeKHR = s_vkGetRayTracingShaderGroupStackSizeKHRDel + static member vkCmdSetRayTracingPipelineStackSizeKHR = s_vkCmdSetRayTracingPipelineStackSizeKHRDel + let vkCmdTraceRaysKHR(commandBuffer : VkCommandBuffer, pRaygenShaderBindingTable : nativeptr, pMissShaderBindingTable : nativeptr, pHitShaderBindingTable : nativeptr, pCallableShaderBindingTable : nativeptr, width : uint32, height : uint32, depth : uint32) = Loader.vkCmdTraceRaysKHR.Invoke(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, width, height, depth) + let vkCreateRayTracingPipelinesKHR(device : VkDevice, deferredOperation : KHRDeferredHostOperations.VkDeferredOperationKHR, pipelineCache : VkPipelineCache, createInfoCount : uint32, pCreateInfos : nativeptr, pAllocator : nativeptr, pPipelines : nativeptr) = Loader.vkCreateRayTracingPipelinesKHR.Invoke(device, deferredOperation, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) + let vkGetRayTracingShaderGroupHandlesKHR(device : VkDevice, pipeline : VkPipeline, firstGroup : uint32, groupCount : uint32, dataSize : uint64, pData : nativeint) = Loader.vkGetRayTracingShaderGroupHandlesKHR.Invoke(device, pipeline, firstGroup, groupCount, dataSize, pData) + let vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(device : VkDevice, pipeline : VkPipeline, firstGroup : uint32, groupCount : uint32, dataSize : uint64, pData : nativeint) = Loader.vkGetRayTracingCaptureReplayShaderGroupHandlesKHR.Invoke(device, pipeline, firstGroup, groupCount, dataSize, pData) + let vkCmdTraceRaysIndirectKHR(commandBuffer : VkCommandBuffer, pRaygenShaderBindingTable : nativeptr, pMissShaderBindingTable : nativeptr, pHitShaderBindingTable : nativeptr, pCallableShaderBindingTable : nativeptr, indirectDeviceAddress : VkDeviceAddress) = Loader.vkCmdTraceRaysIndirectKHR.Invoke(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress) + let vkGetRayTracingShaderGroupStackSizeKHR(device : VkDevice, pipeline : VkPipeline, group : uint32, groupShader : VkShaderGroupShaderKHR) = Loader.vkGetRayTracingShaderGroupStackSizeKHR.Invoke(device, pipeline, group, groupShader) + let vkCmdSetRayTracingPipelineStackSizeKHR(commandBuffer : VkCommandBuffer, pipelineStackSize : uint32) = Loader.vkCmdSetRayTracingPipelineStackSizeKHR.Invoke(commandBuffer, pipelineStackSize) + +/// Promoted to Vulkan11. +module KHRGetMemoryRequirements2 = + let Type = ExtensionType.Device + let Name = "VK_KHR_get_memory_requirements2" + let Number = 147 + + type VkBufferMemoryRequirementsInfo2KHR = Vulkan11.VkBufferMemoryRequirementsInfo2 + + type VkImageMemoryRequirementsInfo2KHR = Vulkan11.VkImageMemoryRequirementsInfo2 + + type VkImageSparseMemoryRequirementsInfo2KHR = Vulkan11.VkImageSparseMemoryRequirementsInfo2 + + type VkMemoryRequirements2KHR = Vulkan11.VkMemoryRequirements2 + + type VkSparseImageMemoryRequirements2KHR = Vulkan11.VkSparseImageMemoryRequirements2 + + + module VkRaw = + [] + type VkGetImageMemoryRequirements2KHRDel = delegate of VkDevice * nativeptr * nativeptr -> unit + [] + type VkGetBufferMemoryRequirements2KHRDel = delegate of VkDevice * nativeptr * nativeptr -> unit + [] + type VkGetImageSparseMemoryRequirements2KHRDel = delegate of VkDevice * nativeptr * nativeptr * nativeptr -> unit + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRGetMemoryRequirements2") + static let s_vkGetImageMemoryRequirements2KHRDel = VkRaw.vkImportInstanceDelegate "vkGetImageMemoryRequirements2KHR" + static let s_vkGetBufferMemoryRequirements2KHRDel = VkRaw.vkImportInstanceDelegate "vkGetBufferMemoryRequirements2KHR" + static let s_vkGetImageSparseMemoryRequirements2KHRDel = VkRaw.vkImportInstanceDelegate "vkGetImageSparseMemoryRequirements2KHR" + static do Report.End(3) |> ignore + static member vkGetImageMemoryRequirements2KHR = s_vkGetImageMemoryRequirements2KHRDel + static member vkGetBufferMemoryRequirements2KHR = s_vkGetBufferMemoryRequirements2KHRDel + static member vkGetImageSparseMemoryRequirements2KHR = s_vkGetImageSparseMemoryRequirements2KHRDel + let vkGetImageMemoryRequirements2KHR(device : VkDevice, pInfo : nativeptr, pMemoryRequirements : nativeptr) = Loader.vkGetImageMemoryRequirements2KHR.Invoke(device, pInfo, pMemoryRequirements) + let vkGetBufferMemoryRequirements2KHR(device : VkDevice, pInfo : nativeptr, pMemoryRequirements : nativeptr) = Loader.vkGetBufferMemoryRequirements2KHR.Invoke(device, pInfo, pMemoryRequirements) + let vkGetImageSparseMemoryRequirements2KHR(device : VkDevice, pInfo : nativeptr, pSparseMemoryRequirementCount : nativeptr, pSparseMemoryRequirements : nativeptr) = Loader.vkGetImageSparseMemoryRequirements2KHR.Invoke(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) + +/// Requires (KHRGetPhysicalDeviceProperties2, KHRGetMemoryRequirements2) | Vulkan11. +module NVRayTracing = + let Type = ExtensionType.Device + let Name = "VK_NV_ray_tracing" + let Number = 166 + + + [] + type VkAccelerationStructureNV = + struct + val mutable public Handle : uint64 + new(h) = { Handle = h } + static member Null = VkAccelerationStructureNV(0UL) + member x.IsNull = x.Handle = 0UL + member x.IsValid = x.Handle <> 0UL + end + + type VkRayTracingShaderGroupTypeNV = KHRRayTracingPipeline.VkRayTracingShaderGroupTypeKHR + type VkGeometryTypeNV = KHRAccelerationStructure.VkGeometryTypeKHR + type VkAccelerationStructureTypeNV = KHRAccelerationStructure.VkAccelerationStructureTypeKHR + type VkGeometryFlagsNV = KHRAccelerationStructure.VkGeometryFlagsKHR + type VkGeometryInstanceFlagsNV = KHRAccelerationStructure.VkGeometryInstanceFlagsKHR + type VkBuildAccelerationStructureFlagsNV = KHRAccelerationStructure.VkBuildAccelerationStructureFlagsKHR + type VkCopyAccelerationStructureModeNV = KHRAccelerationStructure.VkCopyAccelerationStructureModeKHR + + type VkAccelerationStructureMemoryRequirementsTypeNV = + | Object = 0 + | BuildScratch = 1 + | UpdateScratch = 2 + + + type VkAabbPositionsNV = KHRAccelerationStructure.VkAabbPositionsKHR + + [] + type VkGeometryTrianglesNV = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public vertexData : VkBuffer + val mutable public vertexOffset : VkDeviceSize + val mutable public vertexCount : uint32 + val mutable public vertexStride : VkDeviceSize + val mutable public vertexFormat : VkFormat + val mutable public indexData : VkBuffer + val mutable public indexOffset : VkDeviceSize + val mutable public indexCount : uint32 + val mutable public indexType : VkIndexType + val mutable public transformData : VkBuffer + val mutable public transformOffset : VkDeviceSize + + new(pNext : nativeint, vertexData : VkBuffer, vertexOffset : VkDeviceSize, vertexCount : uint32, vertexStride : VkDeviceSize, vertexFormat : VkFormat, indexData : VkBuffer, indexOffset : VkDeviceSize, indexCount : uint32, indexType : VkIndexType, transformData : VkBuffer, transformOffset : VkDeviceSize) = + { + sType = 1000165004u + pNext = pNext + vertexData = vertexData + vertexOffset = vertexOffset + vertexCount = vertexCount + vertexStride = vertexStride + vertexFormat = vertexFormat + indexData = indexData + indexOffset = indexOffset + indexCount = indexCount + indexType = indexType + transformData = transformData + transformOffset = transformOffset + } + + new(vertexData : VkBuffer, vertexOffset : VkDeviceSize, vertexCount : uint32, vertexStride : VkDeviceSize, vertexFormat : VkFormat, indexData : VkBuffer, indexOffset : VkDeviceSize, indexCount : uint32, indexType : VkIndexType, transformData : VkBuffer, transformOffset : VkDeviceSize) = + VkGeometryTrianglesNV(Unchecked.defaultof, vertexData, vertexOffset, vertexCount, vertexStride, vertexFormat, indexData, indexOffset, indexCount, indexType, transformData, transformOffset) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.vertexData = Unchecked.defaultof && x.vertexOffset = Unchecked.defaultof && x.vertexCount = Unchecked.defaultof && x.vertexStride = Unchecked.defaultof && x.vertexFormat = Unchecked.defaultof && x.indexData = Unchecked.defaultof && x.indexOffset = Unchecked.defaultof && x.indexCount = Unchecked.defaultof && x.indexType = Unchecked.defaultof && x.transformData = Unchecked.defaultof && x.transformOffset = Unchecked.defaultof + + static member Empty = + VkGeometryTrianglesNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "vertexData = %A" x.vertexData + sprintf "vertexOffset = %A" x.vertexOffset + sprintf "vertexCount = %A" x.vertexCount + sprintf "vertexStride = %A" x.vertexStride + sprintf "vertexFormat = %A" x.vertexFormat + sprintf "indexData = %A" x.indexData + sprintf "indexOffset = %A" x.indexOffset + sprintf "indexCount = %A" x.indexCount + sprintf "indexType = %A" x.indexType + sprintf "transformData = %A" x.transformData + sprintf "transformOffset = %A" x.transformOffset + ] |> sprintf "VkGeometryTrianglesNV { %s }" + end + + [] + type VkGeometryAABBNV = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public aabbData : VkBuffer + val mutable public numAABBs : uint32 + val mutable public stride : uint32 + val mutable public offset : VkDeviceSize + + new(pNext : nativeint, aabbData : VkBuffer, numAABBs : uint32, stride : uint32, offset : VkDeviceSize) = + { + sType = 1000165005u + pNext = pNext + aabbData = aabbData + numAABBs = numAABBs + stride = stride + offset = offset + } + + new(aabbData : VkBuffer, numAABBs : uint32, stride : uint32, offset : VkDeviceSize) = + VkGeometryAABBNV(Unchecked.defaultof, aabbData, numAABBs, stride, offset) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.aabbData = Unchecked.defaultof && x.numAABBs = Unchecked.defaultof && x.stride = Unchecked.defaultof && x.offset = Unchecked.defaultof + + static member Empty = + VkGeometryAABBNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "aabbData = %A" x.aabbData + sprintf "numAABBs = %A" x.numAABBs + sprintf "stride = %A" x.stride + sprintf "offset = %A" x.offset + ] |> sprintf "VkGeometryAABBNV { %s }" + end + + [] + type VkGeometryDataNV = + struct + val mutable public triangles : VkGeometryTrianglesNV + val mutable public aabbs : VkGeometryAABBNV + + new(triangles : VkGeometryTrianglesNV, aabbs : VkGeometryAABBNV) = + { + triangles = triangles + aabbs = aabbs + } + + member x.IsEmpty = + x.triangles = Unchecked.defaultof && x.aabbs = Unchecked.defaultof + + static member Empty = + VkGeometryDataNV(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "triangles = %A" x.triangles + sprintf "aabbs = %A" x.aabbs + ] |> sprintf "VkGeometryDataNV { %s }" + end + + [] + type VkGeometryNV = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public geometryType : KHRAccelerationStructure.VkGeometryTypeKHR + val mutable public geometry : VkGeometryDataNV + val mutable public flags : KHRAccelerationStructure.VkGeometryFlagsKHR + + new(pNext : nativeint, geometryType : KHRAccelerationStructure.VkGeometryTypeKHR, geometry : VkGeometryDataNV, flags : KHRAccelerationStructure.VkGeometryFlagsKHR) = + { + sType = 1000165003u + pNext = pNext + geometryType = geometryType + geometry = geometry + flags = flags + } + + new(geometryType : KHRAccelerationStructure.VkGeometryTypeKHR, geometry : VkGeometryDataNV, flags : KHRAccelerationStructure.VkGeometryFlagsKHR) = + VkGeometryNV(Unchecked.defaultof, geometryType, geometry, flags) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.geometryType = Unchecked.defaultof && x.geometry = Unchecked.defaultof && x.flags = Unchecked.defaultof + + static member Empty = + VkGeometryNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "geometryType = %A" x.geometryType + sprintf "geometry = %A" x.geometry + sprintf "flags = %A" x.flags + ] |> sprintf "VkGeometryNV { %s }" + end + + [] + type VkAccelerationStructureInfoNV = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public _type : VkAccelerationStructureTypeNV + val mutable public flags : VkBuildAccelerationStructureFlagsNV + val mutable public instanceCount : uint32 + val mutable public geometryCount : uint32 + val mutable public pGeometries : nativeptr + + new(pNext : nativeint, _type : VkAccelerationStructureTypeNV, flags : VkBuildAccelerationStructureFlagsNV, instanceCount : uint32, geometryCount : uint32, pGeometries : nativeptr) = + { + sType = 1000165012u + pNext = pNext + _type = _type + flags = flags + instanceCount = instanceCount + geometryCount = geometryCount + pGeometries = pGeometries + } + + new(_type : VkAccelerationStructureTypeNV, flags : VkBuildAccelerationStructureFlagsNV, instanceCount : uint32, geometryCount : uint32, pGeometries : nativeptr) = + VkAccelerationStructureInfoNV(Unchecked.defaultof, _type, flags, instanceCount, geometryCount, pGeometries) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x._type = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.instanceCount = Unchecked.defaultof && x.geometryCount = Unchecked.defaultof && x.pGeometries = Unchecked.defaultof> + + static member Empty = + VkAccelerationStructureInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "_type = %A" x._type + sprintf "flags = %A" x.flags + sprintf "instanceCount = %A" x.instanceCount + sprintf "geometryCount = %A" x.geometryCount + sprintf "pGeometries = %A" x.pGeometries + ] |> sprintf "VkAccelerationStructureInfoNV { %s }" + end + + [] + type VkAccelerationStructureCreateInfoNV = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public compactedSize : VkDeviceSize + val mutable public info : VkAccelerationStructureInfoNV + + new(pNext : nativeint, compactedSize : VkDeviceSize, info : VkAccelerationStructureInfoNV) = + { + sType = 1000165001u + pNext = pNext + compactedSize = compactedSize + info = info + } + + new(compactedSize : VkDeviceSize, info : VkAccelerationStructureInfoNV) = + VkAccelerationStructureCreateInfoNV(Unchecked.defaultof, compactedSize, info) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.compactedSize = Unchecked.defaultof && x.info = Unchecked.defaultof + + static member Empty = + VkAccelerationStructureCreateInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "compactedSize = %A" x.compactedSize + sprintf "info = %A" x.info + ] |> sprintf "VkAccelerationStructureCreateInfoNV { %s }" + end + + type VkAccelerationStructureInstanceNV = KHRAccelerationStructure.VkAccelerationStructureInstanceKHR + + [] + type VkAccelerationStructureMemoryRequirementsInfoNV = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public _type : VkAccelerationStructureMemoryRequirementsTypeNV + val mutable public accelerationStructure : VkAccelerationStructureNV + + new(pNext : nativeint, _type : VkAccelerationStructureMemoryRequirementsTypeNV, accelerationStructure : VkAccelerationStructureNV) = + { + sType = 1000165008u + pNext = pNext + _type = _type + accelerationStructure = accelerationStructure + } + + new(_type : VkAccelerationStructureMemoryRequirementsTypeNV, accelerationStructure : VkAccelerationStructureNV) = + VkAccelerationStructureMemoryRequirementsInfoNV(Unchecked.defaultof, _type, accelerationStructure) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x._type = Unchecked.defaultof && x.accelerationStructure = Unchecked.defaultof + + static member Empty = + VkAccelerationStructureMemoryRequirementsInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "_type = %A" x._type + sprintf "accelerationStructure = %A" x.accelerationStructure + ] |> sprintf "VkAccelerationStructureMemoryRequirementsInfoNV { %s }" + end + + [] + type VkBindAccelerationStructureMemoryInfoNV = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public accelerationStructure : VkAccelerationStructureNV + val mutable public memory : VkDeviceMemory + val mutable public memoryOffset : VkDeviceSize + val mutable public deviceIndexCount : uint32 + val mutable public pDeviceIndices : nativeptr + + new(pNext : nativeint, accelerationStructure : VkAccelerationStructureNV, memory : VkDeviceMemory, memoryOffset : VkDeviceSize, deviceIndexCount : uint32, pDeviceIndices : nativeptr) = + { + sType = 1000165006u + pNext = pNext + accelerationStructure = accelerationStructure + memory = memory + memoryOffset = memoryOffset + deviceIndexCount = deviceIndexCount + pDeviceIndices = pDeviceIndices + } + + new(accelerationStructure : VkAccelerationStructureNV, memory : VkDeviceMemory, memoryOffset : VkDeviceSize, deviceIndexCount : uint32, pDeviceIndices : nativeptr) = + VkBindAccelerationStructureMemoryInfoNV(Unchecked.defaultof, accelerationStructure, memory, memoryOffset, deviceIndexCount, pDeviceIndices) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.accelerationStructure = Unchecked.defaultof && x.memory = Unchecked.defaultof && x.memoryOffset = Unchecked.defaultof && x.deviceIndexCount = Unchecked.defaultof && x.pDeviceIndices = Unchecked.defaultof> + + static member Empty = + VkBindAccelerationStructureMemoryInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "accelerationStructure = %A" x.accelerationStructure + sprintf "memory = %A" x.memory + sprintf "memoryOffset = %A" x.memoryOffset + sprintf "deviceIndexCount = %A" x.deviceIndexCount + sprintf "pDeviceIndices = %A" x.pDeviceIndices + ] |> sprintf "VkBindAccelerationStructureMemoryInfoNV { %s }" + end + + [] + type VkPhysicalDeviceRayTracingPropertiesNV = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public shaderGroupHandleSize : uint32 + val mutable public maxRecursionDepth : uint32 + val mutable public maxShaderGroupStride : uint32 + val mutable public shaderGroupBaseAlignment : uint32 + val mutable public maxGeometryCount : uint64 + val mutable public maxInstanceCount : uint64 + val mutable public maxTriangleCount : uint64 + val mutable public maxDescriptorSetAccelerationStructures : uint32 + + new(pNext : nativeint, shaderGroupHandleSize : uint32, maxRecursionDepth : uint32, maxShaderGroupStride : uint32, shaderGroupBaseAlignment : uint32, maxGeometryCount : uint64, maxInstanceCount : uint64, maxTriangleCount : uint64, maxDescriptorSetAccelerationStructures : uint32) = + { + sType = 1000165009u + pNext = pNext + shaderGroupHandleSize = shaderGroupHandleSize + maxRecursionDepth = maxRecursionDepth + maxShaderGroupStride = maxShaderGroupStride + shaderGroupBaseAlignment = shaderGroupBaseAlignment + maxGeometryCount = maxGeometryCount + maxInstanceCount = maxInstanceCount + maxTriangleCount = maxTriangleCount + maxDescriptorSetAccelerationStructures = maxDescriptorSetAccelerationStructures + } + + new(shaderGroupHandleSize : uint32, maxRecursionDepth : uint32, maxShaderGroupStride : uint32, shaderGroupBaseAlignment : uint32, maxGeometryCount : uint64, maxInstanceCount : uint64, maxTriangleCount : uint64, maxDescriptorSetAccelerationStructures : uint32) = + VkPhysicalDeviceRayTracingPropertiesNV(Unchecked.defaultof, shaderGroupHandleSize, maxRecursionDepth, maxShaderGroupStride, shaderGroupBaseAlignment, maxGeometryCount, maxInstanceCount, maxTriangleCount, maxDescriptorSetAccelerationStructures) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.shaderGroupHandleSize = Unchecked.defaultof && x.maxRecursionDepth = Unchecked.defaultof && x.maxShaderGroupStride = Unchecked.defaultof && x.shaderGroupBaseAlignment = Unchecked.defaultof && x.maxGeometryCount = Unchecked.defaultof && x.maxInstanceCount = Unchecked.defaultof && x.maxTriangleCount = Unchecked.defaultof && x.maxDescriptorSetAccelerationStructures = Unchecked.defaultof + + static member Empty = + VkPhysicalDeviceRayTracingPropertiesNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "shaderGroupHandleSize = %A" x.shaderGroupHandleSize + sprintf "maxRecursionDepth = %A" x.maxRecursionDepth + sprintf "maxShaderGroupStride = %A" x.maxShaderGroupStride + sprintf "shaderGroupBaseAlignment = %A" x.shaderGroupBaseAlignment + sprintf "maxGeometryCount = %A" x.maxGeometryCount + sprintf "maxInstanceCount = %A" x.maxInstanceCount + sprintf "maxTriangleCount = %A" x.maxTriangleCount + sprintf "maxDescriptorSetAccelerationStructures = %A" x.maxDescriptorSetAccelerationStructures + ] |> sprintf "VkPhysicalDeviceRayTracingPropertiesNV { %s }" + end + + [] + type VkRayTracingShaderGroupCreateInfoNV = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public _type : KHRRayTracingPipeline.VkRayTracingShaderGroupTypeKHR + val mutable public generalShader : uint32 + val mutable public closestHitShader : uint32 + val mutable public anyHitShader : uint32 + val mutable public intersectionShader : uint32 + + new(pNext : nativeint, _type : KHRRayTracingPipeline.VkRayTracingShaderGroupTypeKHR, generalShader : uint32, closestHitShader : uint32, anyHitShader : uint32, intersectionShader : uint32) = + { + sType = 1000165011u + pNext = pNext + _type = _type + generalShader = generalShader + closestHitShader = closestHitShader + anyHitShader = anyHitShader + intersectionShader = intersectionShader + } + + new(_type : KHRRayTracingPipeline.VkRayTracingShaderGroupTypeKHR, generalShader : uint32, closestHitShader : uint32, anyHitShader : uint32, intersectionShader : uint32) = + VkRayTracingShaderGroupCreateInfoNV(Unchecked.defaultof, _type, generalShader, closestHitShader, anyHitShader, intersectionShader) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x._type = Unchecked.defaultof && x.generalShader = Unchecked.defaultof && x.closestHitShader = Unchecked.defaultof && x.anyHitShader = Unchecked.defaultof && x.intersectionShader = Unchecked.defaultof + + static member Empty = + VkRayTracingShaderGroupCreateInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "_type = %A" x._type + sprintf "generalShader = %A" x.generalShader + sprintf "closestHitShader = %A" x.closestHitShader + sprintf "anyHitShader = %A" x.anyHitShader + sprintf "intersectionShader = %A" x.intersectionShader + ] |> sprintf "VkRayTracingShaderGroupCreateInfoNV { %s }" + end + + [] + type VkRayTracingPipelineCreateInfoNV = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public flags : VkPipelineCreateFlags + val mutable public stageCount : uint32 + val mutable public pStages : nativeptr + val mutable public groupCount : uint32 + val mutable public pGroups : nativeptr + val mutable public maxRecursionDepth : uint32 + val mutable public layout : VkPipelineLayout + val mutable public basePipelineHandle : VkPipeline + val mutable public basePipelineIndex : int32 + + new(pNext : nativeint, flags : VkPipelineCreateFlags, stageCount : uint32, pStages : nativeptr, groupCount : uint32, pGroups : nativeptr, maxRecursionDepth : uint32, layout : VkPipelineLayout, basePipelineHandle : VkPipeline, basePipelineIndex : int32) = + { + sType = 1000165000u + pNext = pNext + flags = flags + stageCount = stageCount + pStages = pStages + groupCount = groupCount + pGroups = pGroups + maxRecursionDepth = maxRecursionDepth + layout = layout + basePipelineHandle = basePipelineHandle + basePipelineIndex = basePipelineIndex + } + + new(flags : VkPipelineCreateFlags, stageCount : uint32, pStages : nativeptr, groupCount : uint32, pGroups : nativeptr, maxRecursionDepth : uint32, layout : VkPipelineLayout, basePipelineHandle : VkPipeline, basePipelineIndex : int32) = + VkRayTracingPipelineCreateInfoNV(Unchecked.defaultof, flags, stageCount, pStages, groupCount, pGroups, maxRecursionDepth, layout, basePipelineHandle, basePipelineIndex) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.stageCount = Unchecked.defaultof && x.pStages = Unchecked.defaultof> && x.groupCount = Unchecked.defaultof && x.pGroups = Unchecked.defaultof> && x.maxRecursionDepth = Unchecked.defaultof && x.layout = Unchecked.defaultof && x.basePipelineHandle = Unchecked.defaultof && x.basePipelineIndex = Unchecked.defaultof + + static member Empty = + VkRayTracingPipelineCreateInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "flags = %A" x.flags + sprintf "stageCount = %A" x.stageCount + sprintf "pStages = %A" x.pStages + sprintf "groupCount = %A" x.groupCount + sprintf "pGroups = %A" x.pGroups + sprintf "maxRecursionDepth = %A" x.maxRecursionDepth + sprintf "layout = %A" x.layout + sprintf "basePipelineHandle = %A" x.basePipelineHandle + sprintf "basePipelineIndex = %A" x.basePipelineIndex + ] |> sprintf "VkRayTracingPipelineCreateInfoNV { %s }" + end + + type VkTransformMatrixNV = KHRAccelerationStructure.VkTransformMatrixKHR + + [] + type VkWriteDescriptorSetAccelerationStructureNV = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public accelerationStructureCount : uint32 + val mutable public pAccelerationStructures : nativeptr + + new(pNext : nativeint, accelerationStructureCount : uint32, pAccelerationStructures : nativeptr) = + { + sType = 1000165007u + pNext = pNext + accelerationStructureCount = accelerationStructureCount + pAccelerationStructures = pAccelerationStructures + } + + new(accelerationStructureCount : uint32, pAccelerationStructures : nativeptr) = + VkWriteDescriptorSetAccelerationStructureNV(Unchecked.defaultof, accelerationStructureCount, pAccelerationStructures) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.accelerationStructureCount = Unchecked.defaultof && x.pAccelerationStructures = Unchecked.defaultof> + + static member Empty = + VkWriteDescriptorSetAccelerationStructureNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "accelerationStructureCount = %A" x.accelerationStructureCount + sprintf "pAccelerationStructures = %A" x.pAccelerationStructures + ] |> sprintf "VkWriteDescriptorSetAccelerationStructureNV { %s }" + end + + + [] + module EnumExtensions = + type KHRAccelerationStructure.VkAccelerationStructureTypeKHR with + static member inline TopLevelNv = unbox 0 + static member inline BottomLevelNv = unbox 1 + type VkAccessFlags with + static member inline AccelerationStructureReadBitNv = unbox 0x00200000 + static member inline AccelerationStructureWriteBitNv = unbox 0x00400000 + type VkBufferUsageFlags with + static member inline RayTracingBitNv = unbox 0x00000400 + type KHRAccelerationStructure.VkBuildAccelerationStructureFlagsKHR with + static member inline AllowUpdateBitNv = unbox 0x00000001 + static member inline AllowCompactionBitNv = unbox 0x00000002 + static member inline PreferFastTraceBitNv = unbox 0x00000004 + static member inline PreferFastBuildBitNv = unbox 0x00000008 + static member inline LowMemoryBitNv = unbox 0x00000010 + type KHRAccelerationStructure.VkCopyAccelerationStructureModeKHR with + static member inline CloneNv = unbox 0 + static member inline CompactNv = unbox 1 + type VkDescriptorType with + static member inline AccelerationStructureNv = unbox 1000165000 + type KHRAccelerationStructure.VkGeometryFlagsKHR with + static member inline OpaqueBitNv = unbox 0x00000001 + static member inline NoDuplicateAnyHitInvocationBitNv = unbox 0x00000002 + type KHRAccelerationStructure.VkGeometryInstanceFlagsKHR with + static member inline TriangleCullDisableBitNv = unbox 0x00000001 + static member inline TriangleFrontCounterclockwiseBitNv = unbox 0x00000002 + static member inline ForceOpaqueBitNv = unbox 0x00000004 + static member inline ForceNoOpaqueBitNv = unbox 0x00000008 + type KHRAccelerationStructure.VkGeometryTypeKHR with + static member inline TrianglesNv = unbox 0 + static member inline AabbsNv = unbox 1 + type VkIndexType with + static member inline NoneNv = unbox 1000165000 + type VkObjectType with + static member inline AccelerationStructureNv = unbox 1000165000 + type VkPipelineBindPoint with + static member inline RayTracingNv = unbox 1000165000 + type VkPipelineCreateFlags with + static member inline DeferCompileBitNv = unbox 0x00000020 + type VkPipelineStageFlags with + static member inline RayTracingShaderBitNv = unbox 0x00200000 + static member inline AccelerationStructureBuildBitNv = unbox 0x02000000 + type VkQueryType with + static member inline AccelerationStructureCompactedSizeNv = unbox 1000165000 + type KHRRayTracingPipeline.VkRayTracingShaderGroupTypeKHR with + static member inline GeneralNv = unbox 0 + static member inline TrianglesHitGroupNv = unbox 1 + static member inline ProceduralHitGroupNv = unbox 2 + type VkShaderStageFlags with + static member inline RaygenBitNv = unbox 0x00000100 + static member inline AnyHitBitNv = unbox 0x00000200 + static member inline ClosestHitBitNv = unbox 0x00000400 + static member inline MissBitNv = unbox 0x00000800 + static member inline IntersectionBitNv = unbox 0x00001000 + static member inline CallableBitNv = unbox 0x00002000 + + module VkRaw = + [] + type VkCreateAccelerationStructureNVDel = delegate of VkDevice * nativeptr * nativeptr * nativeptr -> VkResult + [] + type VkDestroyAccelerationStructureNVDel = delegate of VkDevice * VkAccelerationStructureNV * nativeptr -> unit + [] + type VkGetAccelerationStructureMemoryRequirementsNVDel = delegate of VkDevice * nativeptr * nativeptr -> unit + [] + type VkBindAccelerationStructureMemoryNVDel = delegate of VkDevice * uint32 * nativeptr -> VkResult + [] + type VkCmdBuildAccelerationStructureNVDel = delegate of VkCommandBuffer * nativeptr * VkBuffer * VkDeviceSize * VkBool32 * VkAccelerationStructureNV * VkAccelerationStructureNV * VkBuffer * VkDeviceSize -> unit + [] + type VkCmdCopyAccelerationStructureNVDel = delegate of VkCommandBuffer * VkAccelerationStructureNV * VkAccelerationStructureNV * KHRAccelerationStructure.VkCopyAccelerationStructureModeKHR -> unit + [] + type VkCmdTraceRaysNVDel = delegate of VkCommandBuffer * VkBuffer * VkDeviceSize * VkBuffer * VkDeviceSize * VkDeviceSize * VkBuffer * VkDeviceSize * VkDeviceSize * VkBuffer * VkDeviceSize * VkDeviceSize * uint32 * uint32 * uint32 -> unit + [] + type VkCreateRayTracingPipelinesNVDel = delegate of VkDevice * VkPipelineCache * uint32 * nativeptr * nativeptr * nativeptr -> VkResult + [] + type VkGetRayTracingShaderGroupHandlesNVDel = delegate of VkDevice * VkPipeline * uint32 * uint32 * uint64 * nativeint -> VkResult + [] + type VkGetAccelerationStructureHandleNVDel = delegate of VkDevice * VkAccelerationStructureNV * uint64 * nativeint -> VkResult + [] + type VkCmdWriteAccelerationStructuresPropertiesNVDel = delegate of VkCommandBuffer * uint32 * nativeptr * VkQueryType * VkQueryPool * uint32 -> unit + [] + type VkCompileDeferredNVDel = delegate of VkDevice * VkPipeline * uint32 -> VkResult + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading NVRayTracing") + static let s_vkCreateAccelerationStructureNVDel = VkRaw.vkImportInstanceDelegate "vkCreateAccelerationStructureNV" + static let s_vkDestroyAccelerationStructureNVDel = VkRaw.vkImportInstanceDelegate "vkDestroyAccelerationStructureNV" + static let s_vkGetAccelerationStructureMemoryRequirementsNVDel = VkRaw.vkImportInstanceDelegate "vkGetAccelerationStructureMemoryRequirementsNV" + static let s_vkBindAccelerationStructureMemoryNVDel = VkRaw.vkImportInstanceDelegate "vkBindAccelerationStructureMemoryNV" + static let s_vkCmdBuildAccelerationStructureNVDel = VkRaw.vkImportInstanceDelegate "vkCmdBuildAccelerationStructureNV" + static let s_vkCmdCopyAccelerationStructureNVDel = VkRaw.vkImportInstanceDelegate "vkCmdCopyAccelerationStructureNV" + static let s_vkCmdTraceRaysNVDel = VkRaw.vkImportInstanceDelegate "vkCmdTraceRaysNV" + static let s_vkCreateRayTracingPipelinesNVDel = VkRaw.vkImportInstanceDelegate "vkCreateRayTracingPipelinesNV" + static let s_vkGetRayTracingShaderGroupHandlesNVDel = VkRaw.vkImportInstanceDelegate "vkGetRayTracingShaderGroupHandlesNV" + static let s_vkGetAccelerationStructureHandleNVDel = VkRaw.vkImportInstanceDelegate "vkGetAccelerationStructureHandleNV" + static let s_vkCmdWriteAccelerationStructuresPropertiesNVDel = VkRaw.vkImportInstanceDelegate "vkCmdWriteAccelerationStructuresPropertiesNV" + static let s_vkCompileDeferredNVDel = VkRaw.vkImportInstanceDelegate "vkCompileDeferredNV" + static do Report.End(3) |> ignore + static member vkCreateAccelerationStructureNV = s_vkCreateAccelerationStructureNVDel + static member vkDestroyAccelerationStructureNV = s_vkDestroyAccelerationStructureNVDel + static member vkGetAccelerationStructureMemoryRequirementsNV = s_vkGetAccelerationStructureMemoryRequirementsNVDel + static member vkBindAccelerationStructureMemoryNV = s_vkBindAccelerationStructureMemoryNVDel + static member vkCmdBuildAccelerationStructureNV = s_vkCmdBuildAccelerationStructureNVDel + static member vkCmdCopyAccelerationStructureNV = s_vkCmdCopyAccelerationStructureNVDel + static member vkCmdTraceRaysNV = s_vkCmdTraceRaysNVDel + static member vkCreateRayTracingPipelinesNV = s_vkCreateRayTracingPipelinesNVDel + static member vkGetRayTracingShaderGroupHandlesNV = s_vkGetRayTracingShaderGroupHandlesNVDel + static member vkGetAccelerationStructureHandleNV = s_vkGetAccelerationStructureHandleNVDel + static member vkCmdWriteAccelerationStructuresPropertiesNV = s_vkCmdWriteAccelerationStructuresPropertiesNVDel + static member vkCompileDeferredNV = s_vkCompileDeferredNVDel + let vkCreateAccelerationStructureNV(device : VkDevice, pCreateInfo : nativeptr, pAllocator : nativeptr, pAccelerationStructure : nativeptr) = Loader.vkCreateAccelerationStructureNV.Invoke(device, pCreateInfo, pAllocator, pAccelerationStructure) + let vkDestroyAccelerationStructureNV(device : VkDevice, accelerationStructure : VkAccelerationStructureNV, pAllocator : nativeptr) = Loader.vkDestroyAccelerationStructureNV.Invoke(device, accelerationStructure, pAllocator) + let vkGetAccelerationStructureMemoryRequirementsNV(device : VkDevice, pInfo : nativeptr, pMemoryRequirements : nativeptr) = Loader.vkGetAccelerationStructureMemoryRequirementsNV.Invoke(device, pInfo, pMemoryRequirements) + let vkBindAccelerationStructureMemoryNV(device : VkDevice, bindInfoCount : uint32, pBindInfos : nativeptr) = Loader.vkBindAccelerationStructureMemoryNV.Invoke(device, bindInfoCount, pBindInfos) + let vkCmdBuildAccelerationStructureNV(commandBuffer : VkCommandBuffer, pInfo : nativeptr, instanceData : VkBuffer, instanceOffset : VkDeviceSize, update : VkBool32, dst : VkAccelerationStructureNV, src : VkAccelerationStructureNV, scratch : VkBuffer, scratchOffset : VkDeviceSize) = Loader.vkCmdBuildAccelerationStructureNV.Invoke(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) + let vkCmdCopyAccelerationStructureNV(commandBuffer : VkCommandBuffer, dst : VkAccelerationStructureNV, src : VkAccelerationStructureNV, mode : KHRAccelerationStructure.VkCopyAccelerationStructureModeKHR) = Loader.vkCmdCopyAccelerationStructureNV.Invoke(commandBuffer, dst, src, mode) + let vkCmdTraceRaysNV(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) = Loader.vkCmdTraceRaysNV.Invoke(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) + let vkCreateRayTracingPipelinesNV(device : VkDevice, pipelineCache : VkPipelineCache, createInfoCount : uint32, pCreateInfos : nativeptr, pAllocator : nativeptr, pPipelines : nativeptr) = Loader.vkCreateRayTracingPipelinesNV.Invoke(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) + let vkGetRayTracingShaderGroupHandlesNV(device : VkDevice, pipeline : VkPipeline, firstGroup : uint32, groupCount : uint32, dataSize : uint64, pData : nativeint) = Loader.vkGetRayTracingShaderGroupHandlesNV.Invoke(device, pipeline, firstGroup, groupCount, dataSize, pData) + let vkGetAccelerationStructureHandleNV(device : VkDevice, accelerationStructure : VkAccelerationStructureNV, dataSize : uint64, pData : nativeint) = Loader.vkGetAccelerationStructureHandleNV.Invoke(device, accelerationStructure, dataSize, pData) + let vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer : VkCommandBuffer, accelerationStructureCount : uint32, pAccelerationStructures : nativeptr, queryType : VkQueryType, queryPool : VkQueryPool, firstQuery : uint32) = Loader.vkCmdWriteAccelerationStructuresPropertiesNV.Invoke(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) + let vkCompileDeferredNV(device : VkDevice, pipeline : VkPipeline, shader : uint32) = Loader.vkCompileDeferredNV.Invoke(device, pipeline, shader) + + [] + module ``KHRGetMemoryRequirements2 | Vulkan11`` = + type VkMemoryRequirements2KHR = KHRGetMemoryRequirements2.VkMemoryRequirements2KHR + + + + [] + module ``EXTDebugReport`` = + [] + module EnumExtensions = + type EXTDebugReport.VkDebugReportObjectTypeEXT with + static member inline AccelerationStructureNv = unbox 1000165000 + + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module EXTFragmentDensityMap = + let Type = ExtensionType.Device + let Name = "VK_EXT_fragment_density_map" + let Number = 219 + + [] + type VkPhysicalDeviceFragmentDensityMapFeaturesEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public fragmentDensityMap : VkBool32 + val mutable public fragmentDensityMapDynamic : VkBool32 + val mutable public fragmentDensityMapNonSubsampledImages : VkBool32 + + new(pNext : nativeint, fragmentDensityMap : VkBool32, fragmentDensityMapDynamic : VkBool32, fragmentDensityMapNonSubsampledImages : VkBool32) = + { + sType = 1000218000u + pNext = pNext + fragmentDensityMap = fragmentDensityMap + fragmentDensityMapDynamic = fragmentDensityMapDynamic + fragmentDensityMapNonSubsampledImages = fragmentDensityMapNonSubsampledImages + } + + new(fragmentDensityMap : VkBool32, fragmentDensityMapDynamic : VkBool32, fragmentDensityMapNonSubsampledImages : VkBool32) = + VkPhysicalDeviceFragmentDensityMapFeaturesEXT(Unchecked.defaultof, fragmentDensityMap, fragmentDensityMapDynamic, fragmentDensityMapNonSubsampledImages) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.fragmentDensityMap = Unchecked.defaultof && x.fragmentDensityMapDynamic = Unchecked.defaultof && x.fragmentDensityMapNonSubsampledImages = Unchecked.defaultof + + static member Empty = + VkPhysicalDeviceFragmentDensityMapFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "fragmentDensityMap = %A" x.fragmentDensityMap + sprintf "fragmentDensityMapDynamic = %A" x.fragmentDensityMapDynamic + sprintf "fragmentDensityMapNonSubsampledImages = %A" x.fragmentDensityMapNonSubsampledImages + ] |> sprintf "VkPhysicalDeviceFragmentDensityMapFeaturesEXT { %s }" + end + + [] + type VkPhysicalDeviceFragmentDensityMapPropertiesEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public minFragmentDensityTexelSize : VkExtent2D + val mutable public maxFragmentDensityTexelSize : VkExtent2D + val mutable public fragmentDensityInvocations : VkBool32 + + new(pNext : nativeint, minFragmentDensityTexelSize : VkExtent2D, maxFragmentDensityTexelSize : VkExtent2D, fragmentDensityInvocations : VkBool32) = + { + sType = 1000218001u + pNext = pNext + minFragmentDensityTexelSize = minFragmentDensityTexelSize + maxFragmentDensityTexelSize = maxFragmentDensityTexelSize + fragmentDensityInvocations = fragmentDensityInvocations + } + + new(minFragmentDensityTexelSize : VkExtent2D, maxFragmentDensityTexelSize : VkExtent2D, fragmentDensityInvocations : VkBool32) = + VkPhysicalDeviceFragmentDensityMapPropertiesEXT(Unchecked.defaultof, minFragmentDensityTexelSize, maxFragmentDensityTexelSize, fragmentDensityInvocations) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.minFragmentDensityTexelSize = Unchecked.defaultof && x.maxFragmentDensityTexelSize = Unchecked.defaultof && x.fragmentDensityInvocations = Unchecked.defaultof + + static member Empty = + VkPhysicalDeviceFragmentDensityMapPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "minFragmentDensityTexelSize = %A" x.minFragmentDensityTexelSize + sprintf "maxFragmentDensityTexelSize = %A" x.maxFragmentDensityTexelSize + sprintf "fragmentDensityInvocations = %A" x.fragmentDensityInvocations + ] |> sprintf "VkPhysicalDeviceFragmentDensityMapPropertiesEXT { %s }" + end + + [] + type VkRenderPassFragmentDensityMapCreateInfoEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public fragmentDensityMapAttachment : VkAttachmentReference + + new(pNext : nativeint, fragmentDensityMapAttachment : VkAttachmentReference) = + { + sType = 1000218002u + pNext = pNext + fragmentDensityMapAttachment = fragmentDensityMapAttachment + } + + new(fragmentDensityMapAttachment : VkAttachmentReference) = + VkRenderPassFragmentDensityMapCreateInfoEXT(Unchecked.defaultof, fragmentDensityMapAttachment) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.fragmentDensityMapAttachment = Unchecked.defaultof + + static member Empty = + VkRenderPassFragmentDensityMapCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "fragmentDensityMapAttachment = %A" x.fragmentDensityMapAttachment + ] |> sprintf "VkRenderPassFragmentDensityMapCreateInfoEXT { %s }" + end + + + [] + module EnumExtensions = + type VkAccessFlags with + static member inline FragmentDensityMapReadBitExt = unbox 0x01000000 + type VkFormatFeatureFlags with + static member inline FragmentDensityMapBitExt = unbox 0x01000000 + type VkImageCreateFlags with + static member inline SubsampledBitExt = unbox 0x00004000 + type VkImageLayout with + static member inline FragmentDensityMapOptimalExt = unbox 1000218000 + type VkImageUsageFlags with + static member inline FragmentDensityMapBitExt = unbox 0x00000200 + type VkImageViewCreateFlags with + static member inline FragmentDensityMapDynamicBitExt = unbox 0x00000001 + type VkPipelineStageFlags with + static member inline FragmentDensityProcessBitExt = unbox 0x00800000 + type VkSamplerCreateFlags with + static member inline SubsampledBitExt = unbox 0x00000001 + static member inline SubsampledCoarseReconstructionBitExt = unbox 0x00000002 + + + [] + module ``KHRFormatFeatureFlags2 | Vulkan13`` = + [] + module EnumExtensions = + type Vulkan13.VkFormatFeatureFlags2 with + static member inline FormatFeature2FragmentDensityMapBitExt = unbox 0x01000000 + + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module EXTBlendOperationAdvanced = + let Type = ExtensionType.Device + let Name = "VK_EXT_blend_operation_advanced" + let Number = 149 + + type VkBlendOverlapEXT = + | Uncorrelated = 0 + | Disjoint = 1 + | Conjoint = 2 + + + [] + type VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public advancedBlendCoherentOperations : VkBool32 + + new(pNext : nativeint, advancedBlendCoherentOperations : VkBool32) = + { + sType = 1000148000u + pNext = pNext + advancedBlendCoherentOperations = advancedBlendCoherentOperations + } + + new(advancedBlendCoherentOperations : VkBool32) = + VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(Unchecked.defaultof, advancedBlendCoherentOperations) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.advancedBlendCoherentOperations = Unchecked.defaultof + + static member Empty = + VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "advancedBlendCoherentOperations = %A" x.advancedBlendCoherentOperations + ] |> sprintf "VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT { %s }" + end + + [] + type VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public advancedBlendMaxColorAttachments : uint32 + val mutable public advancedBlendIndependentBlend : VkBool32 + val mutable public advancedBlendNonPremultipliedSrcColor : VkBool32 + val mutable public advancedBlendNonPremultipliedDstColor : VkBool32 + val mutable public advancedBlendCorrelatedOverlap : VkBool32 + val mutable public advancedBlendAllOperations : VkBool32 + + new(pNext : nativeint, advancedBlendMaxColorAttachments : uint32, advancedBlendIndependentBlend : VkBool32, advancedBlendNonPremultipliedSrcColor : VkBool32, advancedBlendNonPremultipliedDstColor : VkBool32, advancedBlendCorrelatedOverlap : VkBool32, advancedBlendAllOperations : VkBool32) = + { + sType = 1000148001u + pNext = pNext + advancedBlendMaxColorAttachments = advancedBlendMaxColorAttachments + advancedBlendIndependentBlend = advancedBlendIndependentBlend + advancedBlendNonPremultipliedSrcColor = advancedBlendNonPremultipliedSrcColor + advancedBlendNonPremultipliedDstColor = advancedBlendNonPremultipliedDstColor + advancedBlendCorrelatedOverlap = advancedBlendCorrelatedOverlap + advancedBlendAllOperations = advancedBlendAllOperations + } + + new(advancedBlendMaxColorAttachments : uint32, advancedBlendIndependentBlend : VkBool32, advancedBlendNonPremultipliedSrcColor : VkBool32, advancedBlendNonPremultipliedDstColor : VkBool32, advancedBlendCorrelatedOverlap : VkBool32, advancedBlendAllOperations : VkBool32) = + VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(Unchecked.defaultof, advancedBlendMaxColorAttachments, advancedBlendIndependentBlend, advancedBlendNonPremultipliedSrcColor, advancedBlendNonPremultipliedDstColor, advancedBlendCorrelatedOverlap, advancedBlendAllOperations) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.advancedBlendMaxColorAttachments = Unchecked.defaultof && x.advancedBlendIndependentBlend = Unchecked.defaultof && x.advancedBlendNonPremultipliedSrcColor = Unchecked.defaultof && x.advancedBlendNonPremultipliedDstColor = Unchecked.defaultof && x.advancedBlendCorrelatedOverlap = Unchecked.defaultof && x.advancedBlendAllOperations = Unchecked.defaultof + + static member Empty = + VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "advancedBlendMaxColorAttachments = %A" x.advancedBlendMaxColorAttachments + sprintf "advancedBlendIndependentBlend = %A" x.advancedBlendIndependentBlend + sprintf "advancedBlendNonPremultipliedSrcColor = %A" x.advancedBlendNonPremultipliedSrcColor + sprintf "advancedBlendNonPremultipliedDstColor = %A" x.advancedBlendNonPremultipliedDstColor + sprintf "advancedBlendCorrelatedOverlap = %A" x.advancedBlendCorrelatedOverlap + sprintf "advancedBlendAllOperations = %A" x.advancedBlendAllOperations + ] |> sprintf "VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT { %s }" + end + + [] + type VkPipelineColorBlendAdvancedStateCreateInfoEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public srcPremultiplied : VkBool32 + val mutable public dstPremultiplied : VkBool32 + val mutable public blendOverlap : VkBlendOverlapEXT + + new(pNext : nativeint, srcPremultiplied : VkBool32, dstPremultiplied : VkBool32, blendOverlap : VkBlendOverlapEXT) = + { + sType = 1000148002u + pNext = pNext + srcPremultiplied = srcPremultiplied + dstPremultiplied = dstPremultiplied + blendOverlap = blendOverlap + } + + new(srcPremultiplied : VkBool32, dstPremultiplied : VkBool32, blendOverlap : VkBlendOverlapEXT) = + VkPipelineColorBlendAdvancedStateCreateInfoEXT(Unchecked.defaultof, srcPremultiplied, dstPremultiplied, blendOverlap) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.srcPremultiplied = Unchecked.defaultof && x.dstPremultiplied = Unchecked.defaultof && x.blendOverlap = Unchecked.defaultof + + static member Empty = + VkPipelineColorBlendAdvancedStateCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "srcPremultiplied = %A" x.srcPremultiplied + sprintf "dstPremultiplied = %A" x.dstPremultiplied + sprintf "blendOverlap = %A" x.blendOverlap + ] |> sprintf "VkPipelineColorBlendAdvancedStateCreateInfoEXT { %s }" + end + + + [] + module EnumExtensions = + type VkAccessFlags with + static member inline ColorAttachmentReadNoncoherentBitExt = unbox 0x00080000 + type VkBlendOp with + static member inline ZeroExt = unbox 1000148000 + static member inline SrcExt = unbox 1000148001 + static member inline DstExt = unbox 1000148002 + static member inline SrcOverExt = unbox 1000148003 + static member inline DstOverExt = unbox 1000148004 + static member inline SrcInExt = unbox 1000148005 + static member inline DstInExt = unbox 1000148006 + static member inline SrcOutExt = unbox 1000148007 + static member inline DstOutExt = unbox 1000148008 + static member inline SrcAtopExt = unbox 1000148009 + static member inline DstAtopExt = unbox 1000148010 + static member inline XorExt = unbox 1000148011 + static member inline MultiplyExt = unbox 1000148012 + static member inline ScreenExt = unbox 1000148013 + static member inline OverlayExt = unbox 1000148014 + static member inline DarkenExt = unbox 1000148015 + static member inline LightenExt = unbox 1000148016 + static member inline ColordodgeExt = unbox 1000148017 + static member inline ColorburnExt = unbox 1000148018 + static member inline HardlightExt = unbox 1000148019 + static member inline SoftlightExt = unbox 1000148020 + static member inline DifferenceExt = unbox 1000148021 + static member inline ExclusionExt = unbox 1000148022 + static member inline InvertExt = unbox 1000148023 + static member inline InvertRgbExt = unbox 1000148024 + static member inline LineardodgeExt = unbox 1000148025 + static member inline LinearburnExt = unbox 1000148026 + static member inline VividlightExt = unbox 1000148027 + static member inline LinearlightExt = unbox 1000148028 + static member inline PinlightExt = unbox 1000148029 + static member inline HardmixExt = unbox 1000148030 + static member inline HslHueExt = unbox 1000148031 + static member inline HslSaturationExt = unbox 1000148032 + static member inline HslColorExt = unbox 1000148033 + static member inline HslLuminosityExt = unbox 1000148034 + static member inline PlusExt = unbox 1000148035 + static member inline PlusClampedExt = unbox 1000148036 + static member inline PlusClampedAlphaExt = unbox 1000148037 + static member inline PlusDarkerExt = unbox 1000148038 + static member inline MinusExt = unbox 1000148039 + static member inline MinusClampedExt = unbox 1000148040 + static member inline ContrastExt = unbox 1000148041 + static member inline InvertOvgExt = unbox 1000148042 + static member inline RedExt = unbox 1000148043 + static member inline GreenExt = unbox 1000148044 + static member inline BlueExt = unbox 1000148045 + + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module NVMeshShader = + let Type = ExtensionType.Device + let Name = "VK_NV_mesh_shader" + let Number = 203 + + [] + type VkDrawMeshTasksIndirectCommandNV = + struct + val mutable public taskCount : uint32 + val mutable public firstTask : uint32 + + new(taskCount : uint32, firstTask : uint32) = + { + taskCount = taskCount + firstTask = firstTask + } + + member x.IsEmpty = + x.taskCount = Unchecked.defaultof && x.firstTask = Unchecked.defaultof + + static member Empty = + VkDrawMeshTasksIndirectCommandNV(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "taskCount = %A" x.taskCount + sprintf "firstTask = %A" x.firstTask + ] |> sprintf "VkDrawMeshTasksIndirectCommandNV { %s }" + end + + [] + type VkPhysicalDeviceMeshShaderFeaturesNV = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public taskShader : VkBool32 + val mutable public meshShader : VkBool32 + + new(pNext : nativeint, taskShader : VkBool32, meshShader : VkBool32) = + { + sType = 1000202000u + pNext = pNext + taskShader = taskShader + meshShader = meshShader + } + + new(taskShader : VkBool32, meshShader : VkBool32) = + VkPhysicalDeviceMeshShaderFeaturesNV(Unchecked.defaultof, taskShader, meshShader) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.taskShader = Unchecked.defaultof && x.meshShader = Unchecked.defaultof + + static member Empty = + VkPhysicalDeviceMeshShaderFeaturesNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "taskShader = %A" x.taskShader + sprintf "meshShader = %A" x.meshShader + ] |> sprintf "VkPhysicalDeviceMeshShaderFeaturesNV { %s }" + end + + [] + type VkPhysicalDeviceMeshShaderPropertiesNV = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public maxDrawMeshTasksCount : uint32 + val mutable public maxTaskWorkGroupInvocations : uint32 + val mutable public maxTaskWorkGroupSize : V3ui + val mutable public maxTaskTotalMemorySize : uint32 + val mutable public maxTaskOutputCount : uint32 + val mutable public maxMeshWorkGroupInvocations : uint32 + val mutable public maxMeshWorkGroupSize : V3ui + val mutable public maxMeshTotalMemorySize : uint32 + val mutable public maxMeshOutputVertices : uint32 + val mutable public maxMeshOutputPrimitives : uint32 + val mutable public maxMeshMultiviewViewCount : uint32 + val mutable public meshOutputPerVertexGranularity : uint32 + val mutable public meshOutputPerPrimitiveGranularity : uint32 + + new(pNext : nativeint, maxDrawMeshTasksCount : uint32, maxTaskWorkGroupInvocations : uint32, maxTaskWorkGroupSize : V3ui, maxTaskTotalMemorySize : uint32, maxTaskOutputCount : uint32, maxMeshWorkGroupInvocations : uint32, maxMeshWorkGroupSize : V3ui, maxMeshTotalMemorySize : uint32, maxMeshOutputVertices : uint32, maxMeshOutputPrimitives : uint32, maxMeshMultiviewViewCount : uint32, meshOutputPerVertexGranularity : uint32, meshOutputPerPrimitiveGranularity : uint32) = + { + sType = 1000202001u + pNext = pNext + maxDrawMeshTasksCount = maxDrawMeshTasksCount + maxTaskWorkGroupInvocations = maxTaskWorkGroupInvocations + maxTaskWorkGroupSize = maxTaskWorkGroupSize + maxTaskTotalMemorySize = maxTaskTotalMemorySize + maxTaskOutputCount = maxTaskOutputCount + maxMeshWorkGroupInvocations = maxMeshWorkGroupInvocations + maxMeshWorkGroupSize = maxMeshWorkGroupSize + maxMeshTotalMemorySize = maxMeshTotalMemorySize + maxMeshOutputVertices = maxMeshOutputVertices + maxMeshOutputPrimitives = maxMeshOutputPrimitives + maxMeshMultiviewViewCount = maxMeshMultiviewViewCount + meshOutputPerVertexGranularity = meshOutputPerVertexGranularity + meshOutputPerPrimitiveGranularity = meshOutputPerPrimitiveGranularity + } + + new(maxDrawMeshTasksCount : uint32, maxTaskWorkGroupInvocations : uint32, maxTaskWorkGroupSize : V3ui, maxTaskTotalMemorySize : uint32, maxTaskOutputCount : uint32, maxMeshWorkGroupInvocations : uint32, maxMeshWorkGroupSize : V3ui, maxMeshTotalMemorySize : uint32, maxMeshOutputVertices : uint32, maxMeshOutputPrimitives : uint32, maxMeshMultiviewViewCount : uint32, meshOutputPerVertexGranularity : uint32, meshOutputPerPrimitiveGranularity : uint32) = + VkPhysicalDeviceMeshShaderPropertiesNV(Unchecked.defaultof, maxDrawMeshTasksCount, maxTaskWorkGroupInvocations, maxTaskWorkGroupSize, maxTaskTotalMemorySize, maxTaskOutputCount, maxMeshWorkGroupInvocations, maxMeshWorkGroupSize, maxMeshTotalMemorySize, maxMeshOutputVertices, maxMeshOutputPrimitives, maxMeshMultiviewViewCount, meshOutputPerVertexGranularity, meshOutputPerPrimitiveGranularity) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.maxDrawMeshTasksCount = Unchecked.defaultof && x.maxTaskWorkGroupInvocations = Unchecked.defaultof && x.maxTaskWorkGroupSize = Unchecked.defaultof && x.maxTaskTotalMemorySize = Unchecked.defaultof && x.maxTaskOutputCount = Unchecked.defaultof && x.maxMeshWorkGroupInvocations = Unchecked.defaultof && x.maxMeshWorkGroupSize = Unchecked.defaultof && x.maxMeshTotalMemorySize = Unchecked.defaultof && x.maxMeshOutputVertices = Unchecked.defaultof && x.maxMeshOutputPrimitives = Unchecked.defaultof && x.maxMeshMultiviewViewCount = Unchecked.defaultof && x.meshOutputPerVertexGranularity = Unchecked.defaultof && x.meshOutputPerPrimitiveGranularity = Unchecked.defaultof + + static member Empty = + VkPhysicalDeviceMeshShaderPropertiesNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "maxDrawMeshTasksCount = %A" x.maxDrawMeshTasksCount + sprintf "maxTaskWorkGroupInvocations = %A" x.maxTaskWorkGroupInvocations + sprintf "maxTaskWorkGroupSize = %A" x.maxTaskWorkGroupSize + sprintf "maxTaskTotalMemorySize = %A" x.maxTaskTotalMemorySize + sprintf "maxTaskOutputCount = %A" x.maxTaskOutputCount + sprintf "maxMeshWorkGroupInvocations = %A" x.maxMeshWorkGroupInvocations + sprintf "maxMeshWorkGroupSize = %A" x.maxMeshWorkGroupSize + sprintf "maxMeshTotalMemorySize = %A" x.maxMeshTotalMemorySize + sprintf "maxMeshOutputVertices = %A" x.maxMeshOutputVertices + sprintf "maxMeshOutputPrimitives = %A" x.maxMeshOutputPrimitives + sprintf "maxMeshMultiviewViewCount = %A" x.maxMeshMultiviewViewCount + sprintf "meshOutputPerVertexGranularity = %A" x.meshOutputPerVertexGranularity + sprintf "meshOutputPerPrimitiveGranularity = %A" x.meshOutputPerPrimitiveGranularity + ] |> sprintf "VkPhysicalDeviceMeshShaderPropertiesNV { %s }" + end + + + [] + module EnumExtensions = + type VkPipelineStageFlags with + static member inline TaskShaderBitNv = unbox 0x00080000 + static member inline MeshShaderBitNv = unbox 0x00100000 + type VkShaderStageFlags with + static member inline TaskBitNv = unbox 0x00000040 + static member inline MeshBitNv = unbox 0x00000080 + + module VkRaw = + [] + type VkCmdDrawMeshTasksNVDel = delegate of VkCommandBuffer * uint32 * uint32 -> unit + [] + type VkCmdDrawMeshTasksIndirectNVDel = delegate of VkCommandBuffer * VkBuffer * VkDeviceSize * uint32 * uint32 -> unit + [] + type VkCmdDrawMeshTasksIndirectCountNVDel = delegate of VkCommandBuffer * VkBuffer * VkDeviceSize * VkBuffer * VkDeviceSize * uint32 * uint32 -> unit + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading NVMeshShader") + static let s_vkCmdDrawMeshTasksNVDel = VkRaw.vkImportInstanceDelegate "vkCmdDrawMeshTasksNV" + static let s_vkCmdDrawMeshTasksIndirectNVDel = VkRaw.vkImportInstanceDelegate "vkCmdDrawMeshTasksIndirectNV" + static let s_vkCmdDrawMeshTasksIndirectCountNVDel = VkRaw.vkImportInstanceDelegate "vkCmdDrawMeshTasksIndirectCountNV" + static do Report.End(3) |> ignore + static member vkCmdDrawMeshTasksNV = s_vkCmdDrawMeshTasksNVDel + static member vkCmdDrawMeshTasksIndirectNV = s_vkCmdDrawMeshTasksIndirectNVDel + static member vkCmdDrawMeshTasksIndirectCountNV = s_vkCmdDrawMeshTasksIndirectCountNVDel + let vkCmdDrawMeshTasksNV(commandBuffer : VkCommandBuffer, taskCount : uint32, firstTask : uint32) = Loader.vkCmdDrawMeshTasksNV.Invoke(commandBuffer, taskCount, firstTask) + let vkCmdDrawMeshTasksIndirectNV(commandBuffer : VkCommandBuffer, buffer : VkBuffer, offset : VkDeviceSize, drawCount : uint32, stride : uint32) = Loader.vkCmdDrawMeshTasksIndirectNV.Invoke(commandBuffer, buffer, offset, drawCount, stride) + let vkCmdDrawMeshTasksIndirectCountNV(commandBuffer : VkCommandBuffer, buffer : VkBuffer, offset : VkDeviceSize, countBuffer : VkBuffer, countBufferOffset : VkDeviceSize, maxDrawCount : uint32, stride : uint32) = Loader.vkCmdDrawMeshTasksIndirectCountNV.Invoke(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + +module AMDBufferMarker = + let Type = ExtensionType.Device + let Name = "VK_AMD_buffer_marker" + let Number = 180 + + module VkRaw = + [] + type VkCmdWriteBufferMarkerAMDDel = delegate of VkCommandBuffer * VkPipelineStageFlags * VkBuffer * VkDeviceSize * uint32 -> unit + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading AMDBufferMarker") + static let s_vkCmdWriteBufferMarkerAMDDel = VkRaw.vkImportInstanceDelegate "vkCmdWriteBufferMarkerAMD" + static do Report.End(3) |> ignore + static member vkCmdWriteBufferMarkerAMD = s_vkCmdWriteBufferMarkerAMDDel + let vkCmdWriteBufferMarkerAMD(commandBuffer : VkCommandBuffer, pipelineStage : VkPipelineStageFlags, dstBuffer : VkBuffer, dstOffset : VkDeviceSize, marker : uint32) = Loader.vkCmdWriteBufferMarkerAMD.Invoke(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker) + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module NVDeviceDiagnosticCheckpoints = + let Type = ExtensionType.Device + let Name = "VK_NV_device_diagnostic_checkpoints" + let Number = 207 + + [] + type VkCheckpointDataNV = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public stage : VkPipelineStageFlags + val mutable public pCheckpointMarker : nativeint + + new(pNext : nativeint, stage : VkPipelineStageFlags, pCheckpointMarker : nativeint) = + { + sType = 1000206000u + pNext = pNext + stage = stage + pCheckpointMarker = pCheckpointMarker + } + + new(stage : VkPipelineStageFlags, pCheckpointMarker : nativeint) = + VkCheckpointDataNV(Unchecked.defaultof, stage, pCheckpointMarker) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.stage = Unchecked.defaultof && x.pCheckpointMarker = Unchecked.defaultof + + static member Empty = + VkCheckpointDataNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "stage = %A" x.stage + sprintf "pCheckpointMarker = %A" x.pCheckpointMarker + ] |> sprintf "VkCheckpointDataNV { %s }" + end + + [] + type VkQueueFamilyCheckpointPropertiesNV = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public checkpointExecutionStageMask : VkPipelineStageFlags + + new(pNext : nativeint, checkpointExecutionStageMask : VkPipelineStageFlags) = + { + sType = 1000206001u + pNext = pNext + checkpointExecutionStageMask = checkpointExecutionStageMask + } + + new(checkpointExecutionStageMask : VkPipelineStageFlags) = + VkQueueFamilyCheckpointPropertiesNV(Unchecked.defaultof, checkpointExecutionStageMask) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.checkpointExecutionStageMask = Unchecked.defaultof + + static member Empty = + VkQueueFamilyCheckpointPropertiesNV(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "checkpointExecutionStageMask = %A" x.checkpointExecutionStageMask + ] |> sprintf "VkQueueFamilyCheckpointPropertiesNV { %s }" + end + + + module VkRaw = + [] + type VkCmdSetCheckpointNVDel = delegate of VkCommandBuffer * nativeint -> unit + [] + type VkGetQueueCheckpointDataNVDel = delegate of VkQueue * nativeptr * nativeptr -> unit + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading NVDeviceDiagnosticCheckpoints") + static let s_vkCmdSetCheckpointNVDel = VkRaw.vkImportInstanceDelegate "vkCmdSetCheckpointNV" + static let s_vkGetQueueCheckpointDataNVDel = VkRaw.vkImportInstanceDelegate "vkGetQueueCheckpointDataNV" + static do Report.End(3) |> ignore + static member vkCmdSetCheckpointNV = s_vkCmdSetCheckpointNVDel + static member vkGetQueueCheckpointDataNV = s_vkGetQueueCheckpointDataNVDel + let vkCmdSetCheckpointNV(commandBuffer : VkCommandBuffer, pCheckpointMarker : nativeint) = Loader.vkCmdSetCheckpointNV.Invoke(commandBuffer, pCheckpointMarker) + let vkGetQueueCheckpointDataNV(queue : VkQueue, pCheckpointDataCount : nativeptr, pCheckpointData : nativeptr) = Loader.vkGetQueueCheckpointDataNV.Invoke(queue, pCheckpointDataCount, pCheckpointData) + +/// Requires KHRSpirv14. +module EXTMeshShader = + let Type = ExtensionType.Device + let Name = "VK_EXT_mesh_shader" + let Number = 329 + + [] + type VkDrawMeshTasksIndirectCommandEXT = + struct + val mutable public groupCountX : uint32 + val mutable public groupCountY : uint32 + val mutable public groupCountZ : uint32 + + new(groupCountX : uint32, groupCountY : uint32, groupCountZ : uint32) = + { + groupCountX = groupCountX + groupCountY = groupCountY + groupCountZ = groupCountZ + } + + member x.IsEmpty = + x.groupCountX = Unchecked.defaultof && x.groupCountY = Unchecked.defaultof && x.groupCountZ = Unchecked.defaultof + + static member Empty = + VkDrawMeshTasksIndirectCommandEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "groupCountX = %A" x.groupCountX + sprintf "groupCountY = %A" x.groupCountY + sprintf "groupCountZ = %A" x.groupCountZ + ] |> sprintf "VkDrawMeshTasksIndirectCommandEXT { %s }" + end + + [] + type VkPhysicalDeviceMeshShaderFeaturesEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public taskShader : VkBool32 + val mutable public meshShader : VkBool32 + val mutable public multiviewMeshShader : VkBool32 + val mutable public primitiveFragmentShadingRateMeshShader : VkBool32 + val mutable public meshShaderQueries : VkBool32 + + new(pNext : nativeint, taskShader : VkBool32, meshShader : VkBool32, multiviewMeshShader : VkBool32, primitiveFragmentShadingRateMeshShader : VkBool32, meshShaderQueries : VkBool32) = + { + sType = 1000328000u + pNext = pNext + taskShader = taskShader + meshShader = meshShader + multiviewMeshShader = multiviewMeshShader + primitiveFragmentShadingRateMeshShader = primitiveFragmentShadingRateMeshShader + meshShaderQueries = meshShaderQueries + } + + new(taskShader : VkBool32, meshShader : VkBool32, multiviewMeshShader : VkBool32, primitiveFragmentShadingRateMeshShader : VkBool32, meshShaderQueries : VkBool32) = + VkPhysicalDeviceMeshShaderFeaturesEXT(Unchecked.defaultof, taskShader, meshShader, multiviewMeshShader, primitiveFragmentShadingRateMeshShader, meshShaderQueries) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.taskShader = Unchecked.defaultof && x.meshShader = Unchecked.defaultof && x.multiviewMeshShader = Unchecked.defaultof && x.primitiveFragmentShadingRateMeshShader = Unchecked.defaultof && x.meshShaderQueries = Unchecked.defaultof + + static member Empty = + VkPhysicalDeviceMeshShaderFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "taskShader = %A" x.taskShader + sprintf "meshShader = %A" x.meshShader + sprintf "multiviewMeshShader = %A" x.multiviewMeshShader + sprintf "primitiveFragmentShadingRateMeshShader = %A" x.primitiveFragmentShadingRateMeshShader + sprintf "meshShaderQueries = %A" x.meshShaderQueries + ] |> sprintf "VkPhysicalDeviceMeshShaderFeaturesEXT { %s }" + end + + [] + type VkPhysicalDeviceMeshShaderPropertiesEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public maxTaskWorkGroupTotalCount : uint32 + val mutable public maxTaskWorkGroupCount : V3ui + val mutable public maxTaskWorkGroupInvocations : uint32 + val mutable public maxTaskWorkGroupSize : V3ui + val mutable public maxTaskPayloadSize : uint32 + val mutable public maxTaskSharedMemorySize : uint32 + val mutable public maxTaskPayloadAndSharedMemorySize : uint32 + val mutable public maxMeshWorkGroupTotalCount : uint32 + val mutable public maxMeshWorkGroupCount : V3ui + val mutable public maxMeshWorkGroupInvocations : uint32 + val mutable public maxMeshWorkGroupSize : V3ui + val mutable public maxMeshSharedMemorySize : uint32 + val mutable public maxMeshPayloadAndSharedMemorySize : uint32 + val mutable public maxMeshOutputMemorySize : uint32 + val mutable public maxMeshPayloadAndOutputMemorySize : uint32 + val mutable public maxMeshOutputComponents : uint32 + val mutable public maxMeshOutputVertices : uint32 + val mutable public maxMeshOutputPrimitives : uint32 + val mutable public maxMeshOutputLayers : uint32 + val mutable public maxMeshMultiviewViewCount : uint32 + val mutable public meshOutputPerVertexGranularity : uint32 + val mutable public meshOutputPerPrimitiveGranularity : uint32 + val mutable public maxPreferredTaskWorkGroupInvocations : uint32 + val mutable public maxPreferredMeshWorkGroupInvocations : uint32 + val mutable public prefersLocalInvocationVertexOutput : VkBool32 + val mutable public prefersLocalInvocationPrimitiveOutput : VkBool32 + val mutable public prefersCompactVertexOutput : VkBool32 + val mutable public prefersCompactPrimitiveOutput : VkBool32 + + new(pNext : nativeint, maxTaskWorkGroupTotalCount : uint32, maxTaskWorkGroupCount : V3ui, maxTaskWorkGroupInvocations : uint32, maxTaskWorkGroupSize : V3ui, maxTaskPayloadSize : uint32, maxTaskSharedMemorySize : uint32, maxTaskPayloadAndSharedMemorySize : uint32, maxMeshWorkGroupTotalCount : uint32, maxMeshWorkGroupCount : V3ui, maxMeshWorkGroupInvocations : uint32, maxMeshWorkGroupSize : V3ui, 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) = + { + sType = 1000328001u + pNext = pNext + maxTaskWorkGroupTotalCount = maxTaskWorkGroupTotalCount + maxTaskWorkGroupCount = maxTaskWorkGroupCount + maxTaskWorkGroupInvocations = maxTaskWorkGroupInvocations + maxTaskWorkGroupSize = maxTaskWorkGroupSize + maxTaskPayloadSize = maxTaskPayloadSize + maxTaskSharedMemorySize = maxTaskSharedMemorySize + maxTaskPayloadAndSharedMemorySize = maxTaskPayloadAndSharedMemorySize + maxMeshWorkGroupTotalCount = maxMeshWorkGroupTotalCount + maxMeshWorkGroupCount = maxMeshWorkGroupCount + maxMeshWorkGroupInvocations = maxMeshWorkGroupInvocations + maxMeshWorkGroupSize = maxMeshWorkGroupSize + maxMeshSharedMemorySize = maxMeshSharedMemorySize + maxMeshPayloadAndSharedMemorySize = maxMeshPayloadAndSharedMemorySize + maxMeshOutputMemorySize = maxMeshOutputMemorySize + maxMeshPayloadAndOutputMemorySize = maxMeshPayloadAndOutputMemorySize + maxMeshOutputComponents = maxMeshOutputComponents + maxMeshOutputVertices = maxMeshOutputVertices + maxMeshOutputPrimitives = maxMeshOutputPrimitives + maxMeshOutputLayers = maxMeshOutputLayers + maxMeshMultiviewViewCount = maxMeshMultiviewViewCount + meshOutputPerVertexGranularity = meshOutputPerVertexGranularity + meshOutputPerPrimitiveGranularity = meshOutputPerPrimitiveGranularity + maxPreferredTaskWorkGroupInvocations = maxPreferredTaskWorkGroupInvocations + maxPreferredMeshWorkGroupInvocations = maxPreferredMeshWorkGroupInvocations + prefersLocalInvocationVertexOutput = prefersLocalInvocationVertexOutput + prefersLocalInvocationPrimitiveOutput = prefersLocalInvocationPrimitiveOutput + prefersCompactVertexOutput = prefersCompactVertexOutput + prefersCompactPrimitiveOutput = prefersCompactPrimitiveOutput + } + + new(maxTaskWorkGroupTotalCount : uint32, maxTaskWorkGroupCount : V3ui, maxTaskWorkGroupInvocations : uint32, maxTaskWorkGroupSize : V3ui, maxTaskPayloadSize : uint32, maxTaskSharedMemorySize : uint32, maxTaskPayloadAndSharedMemorySize : uint32, maxMeshWorkGroupTotalCount : uint32, maxMeshWorkGroupCount : V3ui, maxMeshWorkGroupInvocations : uint32, maxMeshWorkGroupSize : V3ui, 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) = + VkPhysicalDeviceMeshShaderPropertiesEXT(Unchecked.defaultof, maxTaskWorkGroupTotalCount, maxTaskWorkGroupCount, maxTaskWorkGroupInvocations, maxTaskWorkGroupSize, maxTaskPayloadSize, maxTaskSharedMemorySize, maxTaskPayloadAndSharedMemorySize, maxMeshWorkGroupTotalCount, maxMeshWorkGroupCount, maxMeshWorkGroupInvocations, maxMeshWorkGroupSize, maxMeshSharedMemorySize, maxMeshPayloadAndSharedMemorySize, maxMeshOutputMemorySize, maxMeshPayloadAndOutputMemorySize, maxMeshOutputComponents, maxMeshOutputVertices, maxMeshOutputPrimitives, maxMeshOutputLayers, maxMeshMultiviewViewCount, meshOutputPerVertexGranularity, meshOutputPerPrimitiveGranularity, maxPreferredTaskWorkGroupInvocations, maxPreferredMeshWorkGroupInvocations, prefersLocalInvocationVertexOutput, prefersLocalInvocationPrimitiveOutput, prefersCompactVertexOutput, prefersCompactPrimitiveOutput) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.maxTaskWorkGroupTotalCount = Unchecked.defaultof && x.maxTaskWorkGroupCount = Unchecked.defaultof && x.maxTaskWorkGroupInvocations = Unchecked.defaultof && x.maxTaskWorkGroupSize = Unchecked.defaultof && x.maxTaskPayloadSize = Unchecked.defaultof && x.maxTaskSharedMemorySize = Unchecked.defaultof && x.maxTaskPayloadAndSharedMemorySize = Unchecked.defaultof && x.maxMeshWorkGroupTotalCount = Unchecked.defaultof && x.maxMeshWorkGroupCount = Unchecked.defaultof && x.maxMeshWorkGroupInvocations = Unchecked.defaultof && x.maxMeshWorkGroupSize = Unchecked.defaultof && x.maxMeshSharedMemorySize = Unchecked.defaultof && x.maxMeshPayloadAndSharedMemorySize = Unchecked.defaultof && x.maxMeshOutputMemorySize = Unchecked.defaultof && x.maxMeshPayloadAndOutputMemorySize = Unchecked.defaultof && x.maxMeshOutputComponents = Unchecked.defaultof && x.maxMeshOutputVertices = Unchecked.defaultof && x.maxMeshOutputPrimitives = Unchecked.defaultof && x.maxMeshOutputLayers = Unchecked.defaultof && x.maxMeshMultiviewViewCount = Unchecked.defaultof && x.meshOutputPerVertexGranularity = Unchecked.defaultof && x.meshOutputPerPrimitiveGranularity = Unchecked.defaultof && x.maxPreferredTaskWorkGroupInvocations = Unchecked.defaultof && x.maxPreferredMeshWorkGroupInvocations = Unchecked.defaultof && x.prefersLocalInvocationVertexOutput = Unchecked.defaultof && x.prefersLocalInvocationPrimitiveOutput = Unchecked.defaultof && x.prefersCompactVertexOutput = Unchecked.defaultof && x.prefersCompactPrimitiveOutput = Unchecked.defaultof + + static member Empty = + VkPhysicalDeviceMeshShaderPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "maxTaskWorkGroupTotalCount = %A" x.maxTaskWorkGroupTotalCount + sprintf "maxTaskWorkGroupCount = %A" x.maxTaskWorkGroupCount + sprintf "maxTaskWorkGroupInvocations = %A" x.maxTaskWorkGroupInvocations + sprintf "maxTaskWorkGroupSize = %A" x.maxTaskWorkGroupSize + sprintf "maxTaskPayloadSize = %A" x.maxTaskPayloadSize + sprintf "maxTaskSharedMemorySize = %A" x.maxTaskSharedMemorySize + sprintf "maxTaskPayloadAndSharedMemorySize = %A" x.maxTaskPayloadAndSharedMemorySize + sprintf "maxMeshWorkGroupTotalCount = %A" x.maxMeshWorkGroupTotalCount + sprintf "maxMeshWorkGroupCount = %A" x.maxMeshWorkGroupCount + sprintf "maxMeshWorkGroupInvocations = %A" x.maxMeshWorkGroupInvocations + sprintf "maxMeshWorkGroupSize = %A" x.maxMeshWorkGroupSize + sprintf "maxMeshSharedMemorySize = %A" x.maxMeshSharedMemorySize + sprintf "maxMeshPayloadAndSharedMemorySize = %A" x.maxMeshPayloadAndSharedMemorySize + sprintf "maxMeshOutputMemorySize = %A" x.maxMeshOutputMemorySize + sprintf "maxMeshPayloadAndOutputMemorySize = %A" x.maxMeshPayloadAndOutputMemorySize + sprintf "maxMeshOutputComponents = %A" x.maxMeshOutputComponents + sprintf "maxMeshOutputVertices = %A" x.maxMeshOutputVertices + sprintf "maxMeshOutputPrimitives = %A" x.maxMeshOutputPrimitives + sprintf "maxMeshOutputLayers = %A" x.maxMeshOutputLayers + sprintf "maxMeshMultiviewViewCount = %A" x.maxMeshMultiviewViewCount + sprintf "meshOutputPerVertexGranularity = %A" x.meshOutputPerVertexGranularity + sprintf "meshOutputPerPrimitiveGranularity = %A" x.meshOutputPerPrimitiveGranularity + sprintf "maxPreferredTaskWorkGroupInvocations = %A" x.maxPreferredTaskWorkGroupInvocations + sprintf "maxPreferredMeshWorkGroupInvocations = %A" x.maxPreferredMeshWorkGroupInvocations + sprintf "prefersLocalInvocationVertexOutput = %A" x.prefersLocalInvocationVertexOutput + sprintf "prefersLocalInvocationPrimitiveOutput = %A" x.prefersLocalInvocationPrimitiveOutput + sprintf "prefersCompactVertexOutput = %A" x.prefersCompactVertexOutput + sprintf "prefersCompactPrimitiveOutput = %A" x.prefersCompactPrimitiveOutput + ] |> sprintf "VkPhysicalDeviceMeshShaderPropertiesEXT { %s }" + end + + + [] + module EnumExtensions = + type VkPipelineStageFlags with + static member inline TaskShaderBitExt = unbox 0x00080000 + static member inline MeshShaderBitExt = unbox 0x00100000 + type VkQueryPipelineStatisticFlags with + static member inline TaskShaderInvocationsBitExt = unbox 0x00000800 + static member inline MeshShaderInvocationsBitExt = unbox 0x00001000 + type VkQueryType with + static member inline MeshPrimitivesGeneratedExt = unbox 1000328000 + type VkShaderStageFlags with + static member inline TaskBitExt = unbox 0x00000040 + static member inline MeshBitExt = unbox 0x00000080 + + module VkRaw = + [] + type VkCmdDrawMeshTasksEXTDel = delegate of VkCommandBuffer * uint32 * uint32 * uint32 -> unit + [] + type VkCmdDrawMeshTasksIndirectEXTDel = delegate of VkCommandBuffer * VkBuffer * VkDeviceSize * uint32 * uint32 -> unit + [] + type VkCmdDrawMeshTasksIndirectCountEXTDel = delegate of VkCommandBuffer * VkBuffer * VkDeviceSize * VkBuffer * VkDeviceSize * uint32 * uint32 -> unit + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTMeshShader") + static let s_vkCmdDrawMeshTasksEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdDrawMeshTasksEXT" + static let s_vkCmdDrawMeshTasksIndirectEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdDrawMeshTasksIndirectEXT" + static let s_vkCmdDrawMeshTasksIndirectCountEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdDrawMeshTasksIndirectCountEXT" + static do Report.End(3) |> ignore + static member vkCmdDrawMeshTasksEXT = s_vkCmdDrawMeshTasksEXTDel + static member vkCmdDrawMeshTasksIndirectEXT = s_vkCmdDrawMeshTasksIndirectEXTDel + static member vkCmdDrawMeshTasksIndirectCountEXT = s_vkCmdDrawMeshTasksIndirectCountEXTDel + let vkCmdDrawMeshTasksEXT(commandBuffer : VkCommandBuffer, groupCountX : uint32, groupCountY : uint32, groupCountZ : uint32) = Loader.vkCmdDrawMeshTasksEXT.Invoke(commandBuffer, groupCountX, groupCountY, groupCountZ) + let vkCmdDrawMeshTasksIndirectEXT(commandBuffer : VkCommandBuffer, buffer : VkBuffer, offset : VkDeviceSize, drawCount : uint32, stride : uint32) = Loader.vkCmdDrawMeshTasksIndirectEXT.Invoke(commandBuffer, buffer, offset, drawCount, stride) + let vkCmdDrawMeshTasksIndirectCountEXT(commandBuffer : VkCommandBuffer, buffer : VkBuffer, offset : VkDeviceSize, countBuffer : VkBuffer, countBufferOffset : VkDeviceSize, maxDrawCount : uint32, stride : uint32) = Loader.vkCmdDrawMeshTasksIndirectCountEXT.Invoke(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + + [] + module ``NVDeviceGeneratedCommands`` = + [] + module EnumExtensions = + type NVDeviceGeneratedCommands.VkIndirectCommandsTokenTypeNV with + static member inline DrawMeshTasks = unbox 1000328000 + + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +/// Promoted to Vulkan13. +module KHRSynchronization2 = + let Type = ExtensionType.Device + let Name = "VK_KHR_synchronization2" + let Number = 315 + + type VkFlags64 = uint64 + type VkPipelineStageFlags2KHR = Vulkan13.VkPipelineStageFlags2 + type VkAccessFlags2KHR = Vulkan13.VkAccessFlags2 + type VkSubmitFlagsKHR = Vulkan13.VkSubmitFlags + + type VkBufferMemoryBarrier2KHR = Vulkan13.VkBufferMemoryBarrier2 + + type VkCommandBufferSubmitInfoKHR = Vulkan13.VkCommandBufferSubmitInfo + + type VkDependencyInfoKHR = Vulkan13.VkDependencyInfo + + type VkImageMemoryBarrier2KHR = Vulkan13.VkImageMemoryBarrier2 + + type VkMemoryBarrier2KHR = Vulkan13.VkMemoryBarrier2 + + type VkPhysicalDeviceSynchronization2FeaturesKHR = Vulkan13.VkPhysicalDeviceSynchronization2Features + + type VkSemaphoreSubmitInfoKHR = Vulkan13.VkSemaphoreSubmitInfo + + type VkSubmitInfo2KHR = Vulkan13.VkSubmitInfo2 + + + [] + module EnumExtensions = + type VkAccessFlags with + static member inline NoneKhr = unbox 0 + type VkEventCreateFlags with + static member inline DeviceOnlyBitKhr = unbox 0x00000001 + type VkImageLayout with + static member inline ReadOnlyOptimalKhr = unbox 1000314000 + static member inline AttachmentOptimalKhr = unbox 1000314001 + type VkPipelineStageFlags with + static member inline NoneKhr = unbox 0 + + module VkRaw = + [] + type VkCmdSetEvent2KHRDel = delegate of VkCommandBuffer * VkEvent * nativeptr -> unit + [] + type VkCmdResetEvent2KHRDel = delegate of VkCommandBuffer * VkEvent * Vulkan13.VkPipelineStageFlags2 -> unit + [] + type VkCmdWaitEvents2KHRDel = delegate of VkCommandBuffer * uint32 * nativeptr * nativeptr -> unit + [] + type VkCmdPipelineBarrier2KHRDel = delegate of VkCommandBuffer * nativeptr -> unit + [] + type VkCmdWriteTimestamp2KHRDel = delegate of VkCommandBuffer * Vulkan13.VkPipelineStageFlags2 * VkQueryPool * uint32 -> unit + [] + type VkQueueSubmit2KHRDel = delegate of VkQueue * uint32 * nativeptr * VkFence -> VkResult + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRSynchronization2") + static let s_vkCmdSetEvent2KHRDel = VkRaw.vkImportInstanceDelegate "vkCmdSetEvent2KHR" + static let s_vkCmdResetEvent2KHRDel = VkRaw.vkImportInstanceDelegate "vkCmdResetEvent2KHR" + static let s_vkCmdWaitEvents2KHRDel = VkRaw.vkImportInstanceDelegate "vkCmdWaitEvents2KHR" + static let s_vkCmdPipelineBarrier2KHRDel = VkRaw.vkImportInstanceDelegate "vkCmdPipelineBarrier2KHR" + static let s_vkCmdWriteTimestamp2KHRDel = VkRaw.vkImportInstanceDelegate "vkCmdWriteTimestamp2KHR" + static let s_vkQueueSubmit2KHRDel = VkRaw.vkImportInstanceDelegate "vkQueueSubmit2KHR" + static do Report.End(3) |> ignore + static member vkCmdSetEvent2KHR = s_vkCmdSetEvent2KHRDel + static member vkCmdResetEvent2KHR = s_vkCmdResetEvent2KHRDel + static member vkCmdWaitEvents2KHR = s_vkCmdWaitEvents2KHRDel + static member vkCmdPipelineBarrier2KHR = s_vkCmdPipelineBarrier2KHRDel + static member vkCmdWriteTimestamp2KHR = s_vkCmdWriteTimestamp2KHRDel + static member vkQueueSubmit2KHR = s_vkQueueSubmit2KHRDel + let vkCmdSetEvent2KHR(commandBuffer : VkCommandBuffer, event : VkEvent, pDependencyInfo : nativeptr) = Loader.vkCmdSetEvent2KHR.Invoke(commandBuffer, event, pDependencyInfo) + let vkCmdResetEvent2KHR(commandBuffer : VkCommandBuffer, event : VkEvent, stageMask : Vulkan13.VkPipelineStageFlags2) = Loader.vkCmdResetEvent2KHR.Invoke(commandBuffer, event, stageMask) + let vkCmdWaitEvents2KHR(commandBuffer : VkCommandBuffer, eventCount : uint32, pEvents : nativeptr, pDependencyInfos : nativeptr) = Loader.vkCmdWaitEvents2KHR.Invoke(commandBuffer, eventCount, pEvents, pDependencyInfos) + let vkCmdPipelineBarrier2KHR(commandBuffer : VkCommandBuffer, pDependencyInfo : nativeptr) = Loader.vkCmdPipelineBarrier2KHR.Invoke(commandBuffer, pDependencyInfo) + let vkCmdWriteTimestamp2KHR(commandBuffer : VkCommandBuffer, stage : Vulkan13.VkPipelineStageFlags2, queryPool : VkQueryPool, query : uint32) = Loader.vkCmdWriteTimestamp2KHR.Invoke(commandBuffer, stage, queryPool, query) + let vkQueueSubmit2KHR(queue : VkQueue, submitCount : uint32, pSubmits : nativeptr, fence : VkFence) = Loader.vkQueueSubmit2KHR.Invoke(queue, submitCount, pSubmits, fence) + + [] + module ``EXTTransformFeedback`` = + [] + module EnumExtensions = + type Vulkan13.VkAccessFlags2 with + static member inline Access2TransformFeedbackWriteBitExt = unbox 0x02000000 + static member inline Access2TransformFeedbackCounterReadBitExt = unbox 0x04000000 + static member inline Access2TransformFeedbackCounterWriteBitExt = unbox 0x08000000 + type Vulkan13.VkPipelineStageFlags2 with + static member inline PipelineStage2TransformFeedbackBitExt = unbox 0x01000000 + + + [] + module ``EXTConditionalRendering`` = + [] + module EnumExtensions = + type Vulkan13.VkAccessFlags2 with + /// read access flag for reading conditional rendering predicate + static member inline Access2ConditionalRenderingReadBitExt = unbox 0x00100000 + type Vulkan13.VkPipelineStageFlags2 with + /// A pipeline stage for conditional rendering predicate fetch + static member inline PipelineStage2ConditionalRenderingBitExt = unbox 0x00040000 + + + [] + module ``NVDeviceGeneratedCommands`` = + [] + module EnumExtensions = + type Vulkan13.VkAccessFlags2 with + static member inline Access2CommandPreprocessReadBitNv = unbox 0x00020000 + static member inline Access2CommandPreprocessWriteBitNv = unbox 0x00040000 + type Vulkan13.VkPipelineStageFlags2 with + static member inline PipelineStage2CommandPreprocessBitNv = unbox 0x00020000 + + + [] + module ``KHRFragmentShadingRate`` = + [] + module EnumExtensions = + type Vulkan13.VkAccessFlags2 with + static member inline Access2FragmentShadingRateAttachmentReadBitKhr = unbox 0x00800000 + type Vulkan13.VkPipelineStageFlags2 with + static member inline PipelineStage2FragmentShadingRateAttachmentBitKhr = unbox 0x00400000 + + + [] + module ``NVShadingRateImage`` = + [] + module EnumExtensions = + type Vulkan13.VkAccessFlags2 with + static member inline Access2ShadingRateImageReadBitNv = unbox 0x00800000 + type Vulkan13.VkPipelineStageFlags2 with + static member inline PipelineStage2ShadingRateImageBitNv = unbox 0x00400000 + + + [] + module ``KHRAccelerationStructure`` = + [] + module EnumExtensions = + type Vulkan13.VkAccessFlags2 with + static member inline Access2AccelerationStructureReadBitKhr = unbox 0x00200000 + static member inline Access2AccelerationStructureWriteBitKhr = unbox 0x00400000 + type Vulkan13.VkPipelineStageFlags2 with + static member inline PipelineStage2AccelerationStructureBuildBitKhr = unbox 0x02000000 + + + [] + module ``KHRRayTracingPipeline`` = + [] + module EnumExtensions = + type Vulkan13.VkPipelineStageFlags2 with + static member inline PipelineStage2RayTracingShaderBitKhr = unbox 0x00200000 + + + [] + module ``NVRayTracing`` = + [] + module EnumExtensions = + type Vulkan13.VkAccessFlags2 with + static member inline Access2AccelerationStructureReadBitNv = unbox 0x00200000 + static member inline Access2AccelerationStructureWriteBitNv = unbox 0x00400000 + type Vulkan13.VkPipelineStageFlags2 with + static member inline PipelineStage2RayTracingShaderBitNv = unbox 0x00200000 + static member inline PipelineStage2AccelerationStructureBuildBitNv = unbox 0x02000000 + + + [] + module ``EXTFragmentDensityMap`` = + [] + module EnumExtensions = + type Vulkan13.VkAccessFlags2 with + static member inline Access2FragmentDensityMapReadBitExt = unbox 0x01000000 + type Vulkan13.VkPipelineStageFlags2 with + static member inline PipelineStage2FragmentDensityProcessBitExt = unbox 0x00800000 + + + [] + module ``EXTBlendOperationAdvanced`` = + [] + module EnumExtensions = + type Vulkan13.VkAccessFlags2 with + static member inline Access2ColorAttachmentReadNoncoherentBitExt = unbox 0x00080000 + + + [] + module ``NVMeshShader`` = + [] + module EnumExtensions = + type Vulkan13.VkPipelineStageFlags2 with + static member inline PipelineStage2TaskShaderBitNv = unbox 0x00080000 + static member inline PipelineStage2MeshShaderBitNv = unbox 0x00100000 + + + [] + module ``AMDBufferMarker`` = + module VkRaw = + [] + type VkCmdWriteBufferMarker2AMDDel = delegate of VkCommandBuffer * Vulkan13.VkPipelineStageFlags2 * VkBuffer * VkDeviceSize * uint32 -> unit + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRSynchronization2 -> AMDBufferMarker") + static let s_vkCmdWriteBufferMarker2AMDDel = VkRaw.vkImportInstanceDelegate "vkCmdWriteBufferMarker2AMD" + static do Report.End(3) |> ignore + static member vkCmdWriteBufferMarker2AMD = s_vkCmdWriteBufferMarker2AMDDel + let vkCmdWriteBufferMarker2AMD(commandBuffer : VkCommandBuffer, stage : Vulkan13.VkPipelineStageFlags2, dstBuffer : VkBuffer, dstOffset : VkDeviceSize, marker : uint32) = Loader.vkCmdWriteBufferMarker2AMD.Invoke(commandBuffer, stage, dstBuffer, dstOffset, marker) + + [] + module ``NVDeviceDiagnosticCheckpoints`` = + [] + type VkCheckpointData2NV = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public stage : Vulkan13.VkPipelineStageFlags2 + val mutable public pCheckpointMarker : nativeint + + new(pNext : nativeint, stage : Vulkan13.VkPipelineStageFlags2, pCheckpointMarker : nativeint) = + { + sType = 1000314009u + pNext = pNext + stage = stage + pCheckpointMarker = pCheckpointMarker + } + + new(stage : Vulkan13.VkPipelineStageFlags2, pCheckpointMarker : nativeint) = + VkCheckpointData2NV(Unchecked.defaultof, stage, pCheckpointMarker) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.stage = Unchecked.defaultof && x.pCheckpointMarker = Unchecked.defaultof + + static member Empty = + VkCheckpointData2NV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "stage = %A" x.stage + sprintf "pCheckpointMarker = %A" x.pCheckpointMarker + ] |> sprintf "VkCheckpointData2NV { %s }" + end + + [] + type VkQueueFamilyCheckpointProperties2NV = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public checkpointExecutionStageMask : Vulkan13.VkPipelineStageFlags2 + + new(pNext : nativeint, checkpointExecutionStageMask : Vulkan13.VkPipelineStageFlags2) = + { + sType = 1000314008u + pNext = pNext + checkpointExecutionStageMask = checkpointExecutionStageMask + } + + new(checkpointExecutionStageMask : Vulkan13.VkPipelineStageFlags2) = + VkQueueFamilyCheckpointProperties2NV(Unchecked.defaultof, checkpointExecutionStageMask) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.checkpointExecutionStageMask = Unchecked.defaultof + + static member Empty = + VkQueueFamilyCheckpointProperties2NV(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "checkpointExecutionStageMask = %A" x.checkpointExecutionStageMask + ] |> sprintf "VkQueueFamilyCheckpointProperties2NV { %s }" + end + + + module VkRaw = + [] + type VkGetQueueCheckpointData2NVDel = delegate of VkQueue * nativeptr * nativeptr -> unit + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRSynchronization2 -> NVDeviceDiagnosticCheckpoints") + static let s_vkGetQueueCheckpointData2NVDel = VkRaw.vkImportInstanceDelegate "vkGetQueueCheckpointData2NV" + static do Report.End(3) |> ignore + static member vkGetQueueCheckpointData2NV = s_vkGetQueueCheckpointData2NVDel + let vkGetQueueCheckpointData2NV(queue : VkQueue, pCheckpointDataCount : nativeptr, pCheckpointData : nativeptr) = Loader.vkGetQueueCheckpointData2NV.Invoke(queue, pCheckpointDataCount, pCheckpointData) + + [] + module ``EXTMeshShader`` = + [] + module EnumExtensions = + type Vulkan13.VkPipelineStageFlags2 with + static member inline PipelineStage2TaskShaderBitExt = unbox 0x00080000 + static member inline PipelineStage2MeshShaderBitExt = unbox 0x00100000 + + +/// Requires KHRCreateRenderpass2 | Vulkan12. +/// Promoted to Vulkan12. +module KHRDepthStencilResolve = + let Type = ExtensionType.Device + let Name = "VK_KHR_depth_stencil_resolve" + let Number = 200 + + type VkResolveModeFlagsKHR = Vulkan12.VkResolveModeFlags + + type VkPhysicalDeviceDepthStencilResolvePropertiesKHR = Vulkan12.VkPhysicalDeviceDepthStencilResolveProperties + + type VkSubpassDescriptionDepthStencilResolveKHR = Vulkan12.VkSubpassDescriptionDepthStencilResolve + + + [] + module EnumExtensions = + type Vulkan12.VkResolveModeFlags with + static member inline NoneKhr = unbox 0 + static member inline SampleZeroBitKhr = unbox 0x00000001 + static member inline AverageBitKhr = unbox 0x00000002 + static member inline MinBitKhr = unbox 0x00000004 + static member inline MaxBitKhr = unbox 0x00000008 + + +module AMDMixedAttachmentSamples = + let Type = ExtensionType.Device + let Name = "VK_AMD_mixed_attachment_samples" + let Number = 137 + +module NVFramebufferMixedSamples = + let Type = ExtensionType.Device + let Name = "VK_NV_framebuffer_mixed_samples" + let Number = 153 + + type VkCoverageModulationModeNV = + | None = 0 + | Rgb = 1 + | Alpha = 2 + | Rgba = 3 + + + [] + type VkPipelineCoverageModulationStateCreateInfoNV = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public flags : VkPipelineCoverageModulationStateCreateFlagsNV + val mutable public coverageModulationMode : VkCoverageModulationModeNV + val mutable public coverageModulationTableEnable : VkBool32 + val mutable public coverageModulationTableCount : uint32 + val mutable public pCoverageModulationTable : nativeptr + + new(pNext : nativeint, flags : VkPipelineCoverageModulationStateCreateFlagsNV, coverageModulationMode : VkCoverageModulationModeNV, coverageModulationTableEnable : VkBool32, coverageModulationTableCount : uint32, pCoverageModulationTable : nativeptr) = + { + sType = 1000152000u + pNext = pNext + flags = flags + coverageModulationMode = coverageModulationMode + coverageModulationTableEnable = coverageModulationTableEnable + coverageModulationTableCount = coverageModulationTableCount + pCoverageModulationTable = pCoverageModulationTable + } + + new(flags : VkPipelineCoverageModulationStateCreateFlagsNV, coverageModulationMode : VkCoverageModulationModeNV, coverageModulationTableEnable : VkBool32, coverageModulationTableCount : uint32, pCoverageModulationTable : nativeptr) = + VkPipelineCoverageModulationStateCreateInfoNV(Unchecked.defaultof, flags, coverageModulationMode, coverageModulationTableEnable, coverageModulationTableCount, pCoverageModulationTable) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.coverageModulationMode = Unchecked.defaultof && x.coverageModulationTableEnable = Unchecked.defaultof && x.coverageModulationTableCount = Unchecked.defaultof && x.pCoverageModulationTable = Unchecked.defaultof> + + static member Empty = + VkPipelineCoverageModulationStateCreateInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "flags = %A" x.flags + sprintf "coverageModulationMode = %A" x.coverageModulationMode + sprintf "coverageModulationTableEnable = %A" x.coverageModulationTableEnable + sprintf "coverageModulationTableCount = %A" x.coverageModulationTableCount + sprintf "pCoverageModulationTable = %A" x.pCoverageModulationTable + ] |> sprintf "VkPipelineCoverageModulationStateCreateInfoNV { %s }" + end + + + +/// Requires KHRMultiview | Vulkan11. +module NVXMultiviewPerViewAttributes = + let Type = ExtensionType.Device + let Name = "VK_NVX_multiview_per_view_attributes" + let Number = 98 + + [] + type VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public perViewPositionAllComponents : VkBool32 + + new(pNext : nativeint, perViewPositionAllComponents : VkBool32) = + { + sType = 1000097000u + pNext = pNext + perViewPositionAllComponents = perViewPositionAllComponents + } + + new(perViewPositionAllComponents : VkBool32) = + VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(Unchecked.defaultof, perViewPositionAllComponents) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.perViewPositionAllComponents = Unchecked.defaultof + + static member Empty = + VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "perViewPositionAllComponents = %A" x.perViewPositionAllComponents + ] |> sprintf "VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX { %s }" + end + + + [] + module EnumExtensions = + type VkSubpassDescriptionFlags with + static member inline PerViewAttributesBitNvx = unbox 0x00000001 + static member inline PerViewPositionXOnlyBitNvx = unbox 0x00000002 + + +/// Requires ((KHRGetPhysicalDeviceProperties2 | Vulkan11), KHRDepthStencilResolve) | Vulkan12. +/// Promoted to Vulkan13. +module KHRDynamicRendering = + let Type = ExtensionType.Device + let Name = "VK_KHR_dynamic_rendering" + let Number = 45 + + type VkRenderingFlagsKHR = Vulkan13.VkRenderingFlags + + type VkCommandBufferInheritanceRenderingInfoKHR = Vulkan13.VkCommandBufferInheritanceRenderingInfo + + type VkPhysicalDeviceDynamicRenderingFeaturesKHR = Vulkan13.VkPhysicalDeviceDynamicRenderingFeatures + + type VkPipelineRenderingCreateInfoKHR = Vulkan13.VkPipelineRenderingCreateInfo + + type VkRenderingAttachmentInfoKHR = Vulkan13.VkRenderingAttachmentInfo + + type VkRenderingInfoKHR = Vulkan13.VkRenderingInfo + + + [] + module EnumExtensions = + type VkAttachmentStoreOp with + static member inline NoneKhr = unbox 1000301000 + + module VkRaw = + [] + type VkCmdBeginRenderingKHRDel = delegate of VkCommandBuffer * nativeptr -> unit + [] + type VkCmdEndRenderingKHRDel = delegate of VkCommandBuffer -> unit + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRDynamicRendering") + static let s_vkCmdBeginRenderingKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdBeginRenderingKHR" + static let s_vkCmdEndRenderingKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdEndRenderingKHR" + static do Report.End(3) |> ignore + static member vkCmdBeginRenderingKHR = s_vkCmdBeginRenderingKHRDel + static member vkCmdEndRenderingKHR = s_vkCmdEndRenderingKHRDel + let vkCmdBeginRenderingKHR(commandBuffer : VkCommandBuffer, pRenderingInfo : nativeptr) = Loader.vkCmdBeginRenderingKHR.Invoke(commandBuffer, pRenderingInfo) + let vkCmdEndRenderingKHR(commandBuffer : VkCommandBuffer) = Loader.vkCmdEndRenderingKHR.Invoke(commandBuffer) + + [] + module ``KHRFragmentShadingRate`` = + [] + type VkRenderingFragmentShadingRateAttachmentInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public imageView : VkImageView + val mutable public imageLayout : VkImageLayout + val mutable public shadingRateAttachmentTexelSize : VkExtent2D + + new(pNext : nativeint, imageView : VkImageView, imageLayout : VkImageLayout, shadingRateAttachmentTexelSize : VkExtent2D) = + { + sType = 1000044006u + pNext = pNext + imageView = imageView + imageLayout = imageLayout + shadingRateAttachmentTexelSize = shadingRateAttachmentTexelSize + } + + new(imageView : VkImageView, imageLayout : VkImageLayout, shadingRateAttachmentTexelSize : VkExtent2D) = + VkRenderingFragmentShadingRateAttachmentInfoKHR(Unchecked.defaultof, imageView, imageLayout, shadingRateAttachmentTexelSize) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.imageView = Unchecked.defaultof && x.imageLayout = Unchecked.defaultof && x.shadingRateAttachmentTexelSize = Unchecked.defaultof + + static member Empty = + VkRenderingFragmentShadingRateAttachmentInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "imageView = %A" x.imageView + sprintf "imageLayout = %A" x.imageLayout + sprintf "shadingRateAttachmentTexelSize = %A" x.shadingRateAttachmentTexelSize + ] |> sprintf "VkRenderingFragmentShadingRateAttachmentInfoKHR { %s }" + end + + + [] + module EnumExtensions = + type VkPipelineCreateFlags with + static member inline RenderingFragmentShadingRateAttachmentBitKhr = unbox 0x00200000 + + + [] + module ``EXTFragmentDensityMap`` = + [] + type VkRenderingFragmentDensityMapAttachmentInfoEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public imageView : VkImageView + val mutable public imageLayout : VkImageLayout + + new(pNext : nativeint, imageView : VkImageView, imageLayout : VkImageLayout) = + { + sType = 1000044007u + pNext = pNext + imageView = imageView + imageLayout = imageLayout + } + + new(imageView : VkImageView, imageLayout : VkImageLayout) = + VkRenderingFragmentDensityMapAttachmentInfoEXT(Unchecked.defaultof, imageView, imageLayout) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.imageView = Unchecked.defaultof && x.imageLayout = Unchecked.defaultof + + static member Empty = + VkRenderingFragmentDensityMapAttachmentInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "imageView = %A" x.imageView + sprintf "imageLayout = %A" x.imageLayout + ] |> sprintf "VkRenderingFragmentDensityMapAttachmentInfoEXT { %s }" + end + + + [] + module EnumExtensions = + type VkPipelineCreateFlags with + static member inline RenderingFragmentDensityMapAttachmentBitExt = unbox 0x00400000 + + + [] + module ``AMDMixedAttachmentSamples`` = + [] + type VkAttachmentSampleCountInfoAMD = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public colorAttachmentCount : uint32 + val mutable public pColorAttachmentSamples : nativeptr + val mutable public depthStencilAttachmentSamples : VkSampleCountFlags + + new(pNext : nativeint, colorAttachmentCount : uint32, pColorAttachmentSamples : nativeptr, depthStencilAttachmentSamples : VkSampleCountFlags) = + { + sType = 1000044008u + pNext = pNext + colorAttachmentCount = colorAttachmentCount + pColorAttachmentSamples = pColorAttachmentSamples + depthStencilAttachmentSamples = depthStencilAttachmentSamples + } + + new(colorAttachmentCount : uint32, pColorAttachmentSamples : nativeptr, depthStencilAttachmentSamples : VkSampleCountFlags) = + VkAttachmentSampleCountInfoAMD(Unchecked.defaultof, colorAttachmentCount, pColorAttachmentSamples, depthStencilAttachmentSamples) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.colorAttachmentCount = Unchecked.defaultof && x.pColorAttachmentSamples = Unchecked.defaultof> && x.depthStencilAttachmentSamples = Unchecked.defaultof + + static member Empty = + VkAttachmentSampleCountInfoAMD(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "colorAttachmentCount = %A" x.colorAttachmentCount + sprintf "pColorAttachmentSamples = %A" x.pColorAttachmentSamples + sprintf "depthStencilAttachmentSamples = %A" x.depthStencilAttachmentSamples + ] |> sprintf "VkAttachmentSampleCountInfoAMD { %s }" + end + + + + [] + module ``NVFramebufferMixedSamples`` = + type VkAttachmentSampleCountInfoNV = VkAttachmentSampleCountInfoAMD + + + + [] + module ``NVXMultiviewPerViewAttributes`` = + [] + type VkMultiviewPerViewAttributesInfoNVX = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public perViewAttributes : VkBool32 + val mutable public perViewAttributesPositionXOnly : VkBool32 + + new(pNext : nativeint, perViewAttributes : VkBool32, perViewAttributesPositionXOnly : VkBool32) = + { + sType = 1000044009u + pNext = pNext + perViewAttributes = perViewAttributes + perViewAttributesPositionXOnly = perViewAttributesPositionXOnly + } + + new(perViewAttributes : VkBool32, perViewAttributesPositionXOnly : VkBool32) = + VkMultiviewPerViewAttributesInfoNVX(Unchecked.defaultof, perViewAttributes, perViewAttributesPositionXOnly) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.perViewAttributes = Unchecked.defaultof && x.perViewAttributesPositionXOnly = Unchecked.defaultof + + static member Empty = + VkMultiviewPerViewAttributesInfoNVX(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "perViewAttributes = %A" x.perViewAttributes + sprintf "perViewAttributesPositionXOnly = %A" x.perViewAttributesPositionXOnly + ] |> sprintf "VkMultiviewPerViewAttributesInfoNVX { %s }" + end + + + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module KHRPipelineExecutableProperties = + let Type = ExtensionType.Device + let Name = "VK_KHR_pipeline_executable_properties" + let Number = 270 + + type VkPipelineExecutableStatisticFormatKHR = + | Bool32 = 0 + | Int64 = 1 + | Uint64 = 2 + | Float64 = 3 + + + [] + type VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public pipelineExecutableInfo : VkBool32 + + new(pNext : nativeint, pipelineExecutableInfo : VkBool32) = + { + sType = 1000269000u + pNext = pNext + pipelineExecutableInfo = pipelineExecutableInfo + } + + new(pipelineExecutableInfo : VkBool32) = + VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(Unchecked.defaultof, pipelineExecutableInfo) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.pipelineExecutableInfo = Unchecked.defaultof + + static member Empty = + VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "pipelineExecutableInfo = %A" x.pipelineExecutableInfo + ] |> sprintf "VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR { %s }" + end + + [] + type VkPipelineExecutableInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public pipeline : VkPipeline + val mutable public executableIndex : uint32 + + new(pNext : nativeint, pipeline : VkPipeline, executableIndex : uint32) = + { + sType = 1000269003u + pNext = pNext + pipeline = pipeline + executableIndex = executableIndex + } + + new(pipeline : VkPipeline, executableIndex : uint32) = + VkPipelineExecutableInfoKHR(Unchecked.defaultof, pipeline, executableIndex) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.pipeline = Unchecked.defaultof && x.executableIndex = Unchecked.defaultof + + static member Empty = + VkPipelineExecutableInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "pipeline = %A" x.pipeline + sprintf "executableIndex = %A" x.executableIndex + ] |> sprintf "VkPipelineExecutableInfoKHR { %s }" + end + + [] + type VkPipelineExecutableInternalRepresentationKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public name : String256 + val mutable public description : String256 + val mutable public isText : VkBool32 + val mutable public dataSize : uint64 + val mutable public pData : nativeint + + new(pNext : nativeint, name : String256, description : String256, isText : VkBool32, dataSize : uint64, pData : nativeint) = + { + sType = 1000269005u + pNext = pNext + name = name + description = description + isText = isText + dataSize = dataSize + pData = pData + } + + new(name : String256, description : String256, isText : VkBool32, dataSize : uint64, pData : nativeint) = + VkPipelineExecutableInternalRepresentationKHR(Unchecked.defaultof, name, description, isText, dataSize, pData) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.name = Unchecked.defaultof && x.description = Unchecked.defaultof && x.isText = Unchecked.defaultof && x.dataSize = Unchecked.defaultof && x.pData = Unchecked.defaultof + + static member Empty = + VkPipelineExecutableInternalRepresentationKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "name = %A" x.name + sprintf "description = %A" x.description + sprintf "isText = %A" x.isText + sprintf "dataSize = %A" x.dataSize + sprintf "pData = %A" x.pData + ] |> sprintf "VkPipelineExecutableInternalRepresentationKHR { %s }" + end + + [] + type VkPipelineExecutablePropertiesKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public stages : VkShaderStageFlags + val mutable public name : String256 + val mutable public description : String256 + val mutable public subgroupSize : uint32 + + new(pNext : nativeint, stages : VkShaderStageFlags, name : String256, description : String256, subgroupSize : uint32) = + { + sType = 1000269002u + pNext = pNext + stages = stages + name = name + description = description + subgroupSize = subgroupSize + } + + new(stages : VkShaderStageFlags, name : String256, description : String256, subgroupSize : uint32) = + VkPipelineExecutablePropertiesKHR(Unchecked.defaultof, stages, name, description, subgroupSize) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.stages = Unchecked.defaultof && x.name = Unchecked.defaultof && x.description = Unchecked.defaultof && x.subgroupSize = Unchecked.defaultof + + static member Empty = + VkPipelineExecutablePropertiesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "stages = %A" x.stages + sprintf "name = %A" x.name + sprintf "description = %A" x.description + sprintf "subgroupSize = %A" x.subgroupSize + ] |> sprintf "VkPipelineExecutablePropertiesKHR { %s }" + end + + [] + type VkPipelineExecutableStatisticValueKHR = + struct + [] + val mutable public b32 : VkBool32 + [] + val mutable public i64 : int64 + [] + val mutable public u64 : uint64 + [] + val mutable public f64 : float + + static member B32(value : VkBool32) = + let mutable result = Unchecked.defaultof + result.b32 <- value + result + + static member I64(value : int64) = + let mutable result = Unchecked.defaultof + result.i64 <- value + result + + static member U64(value : uint64) = + let mutable result = Unchecked.defaultof + result.u64 <- value + result + + static member F64(value : float) = + let mutable result = Unchecked.defaultof + result.f64 <- value + result + + override x.ToString() = + String.concat "; " [ + sprintf "b32 = %A" x.b32 + sprintf "i64 = %A" x.i64 + sprintf "u64 = %A" x.u64 + sprintf "f64 = %A" x.f64 + ] |> sprintf "VkPipelineExecutableStatisticValueKHR { %s }" + end + + [] + type VkPipelineExecutableStatisticKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public name : String256 + val mutable public description : String256 + val mutable public format : VkPipelineExecutableStatisticFormatKHR + val mutable public value : VkPipelineExecutableStatisticValueKHR + + new(pNext : nativeint, name : String256, description : String256, format : VkPipelineExecutableStatisticFormatKHR, value : VkPipelineExecutableStatisticValueKHR) = + { + sType = 1000269004u + pNext = pNext + name = name + description = description + format = format + value = value + } + + new(name : String256, description : String256, format : VkPipelineExecutableStatisticFormatKHR, value : VkPipelineExecutableStatisticValueKHR) = + VkPipelineExecutableStatisticKHR(Unchecked.defaultof, name, description, format, value) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.name = Unchecked.defaultof && x.description = Unchecked.defaultof && x.format = Unchecked.defaultof && x.value = Unchecked.defaultof + + static member Empty = + VkPipelineExecutableStatisticKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "name = %A" x.name + sprintf "description = %A" x.description + sprintf "format = %A" x.format + sprintf "value = %A" x.value + ] |> sprintf "VkPipelineExecutableStatisticKHR { %s }" + end + + [] + type VkPipelineInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public pipeline : VkPipeline + + new(pNext : nativeint, pipeline : VkPipeline) = + { + sType = 1000269001u + pNext = pNext + pipeline = pipeline + } + + new(pipeline : VkPipeline) = + VkPipelineInfoKHR(Unchecked.defaultof, pipeline) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.pipeline = Unchecked.defaultof + + static member Empty = + VkPipelineInfoKHR(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "pipeline = %A" x.pipeline + ] |> sprintf "VkPipelineInfoKHR { %s }" + end + + + [] + module EnumExtensions = + type VkPipelineCreateFlags with + static member inline CaptureStatisticsBitKhr = unbox 0x00000040 + static member inline CaptureInternalRepresentationsBitKhr = unbox 0x00000080 + + module VkRaw = + [] + type VkGetPipelineExecutablePropertiesKHRDel = delegate of VkDevice * nativeptr * nativeptr * nativeptr -> VkResult + [] + type VkGetPipelineExecutableStatisticsKHRDel = delegate of VkDevice * nativeptr * nativeptr * nativeptr -> VkResult + [] + type VkGetPipelineExecutableInternalRepresentationsKHRDel = delegate of VkDevice * nativeptr * nativeptr * nativeptr -> VkResult + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRPipelineExecutableProperties") + static let s_vkGetPipelineExecutablePropertiesKHRDel = VkRaw.vkImportInstanceDelegate "vkGetPipelineExecutablePropertiesKHR" + static let s_vkGetPipelineExecutableStatisticsKHRDel = VkRaw.vkImportInstanceDelegate "vkGetPipelineExecutableStatisticsKHR" + static let s_vkGetPipelineExecutableInternalRepresentationsKHRDel = VkRaw.vkImportInstanceDelegate "vkGetPipelineExecutableInternalRepresentationsKHR" + static do Report.End(3) |> ignore + static member vkGetPipelineExecutablePropertiesKHR = s_vkGetPipelineExecutablePropertiesKHRDel + static member vkGetPipelineExecutableStatisticsKHR = s_vkGetPipelineExecutableStatisticsKHRDel + static member vkGetPipelineExecutableInternalRepresentationsKHR = s_vkGetPipelineExecutableInternalRepresentationsKHRDel + let vkGetPipelineExecutablePropertiesKHR(device : VkDevice, pPipelineInfo : nativeptr, pExecutableCount : nativeptr, pProperties : nativeptr) = Loader.vkGetPipelineExecutablePropertiesKHR.Invoke(device, pPipelineInfo, pExecutableCount, pProperties) + let vkGetPipelineExecutableStatisticsKHR(device : VkDevice, pExecutableInfo : nativeptr, pStatisticCount : nativeptr, pStatistics : nativeptr) = Loader.vkGetPipelineExecutableStatisticsKHR.Invoke(device, pExecutableInfo, pStatisticCount, pStatistics) + let vkGetPipelineExecutableInternalRepresentationsKHR(device : VkDevice, pExecutableInfo : nativeptr, pInternalRepresentationCount : nativeptr, pInternalRepresentations : nativeptr) = Loader.vkGetPipelineExecutableInternalRepresentationsKHR.Invoke(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +/// Promoted to Vulkan13. +module EXTPipelineCreationCacheControl = + let Type = ExtensionType.Device + let Name = "VK_EXT_pipeline_creation_cache_control" + let Number = 298 + + + type VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT = Vulkan13.VkPhysicalDevicePipelineCreationCacheControlFeatures + + + [] + module EnumExtensions = + type VkPipelineCacheCreateFlags with + static member inline ExternallySynchronizedBitExt = unbox 0x00000001 + type VkPipelineCreateFlags with + static member inline FailOnPipelineCompileRequiredBitExt = unbox 0x00000100 + static member inline EarlyReturnOnFailureBitExt = unbox 0x00000200 + type VkResult with + static member inline PipelineCompileRequiredExt = unbox 1000297000 + static member inline ErrorPipelineCompileRequiredExt = unbox 1000297000 + + +/// Requires (KHRGetPhysicalDeviceProperties2 | Vulkan11), KHRPipelineLibrary. +module EXTGraphicsPipelineLibrary = + let Type = ExtensionType.Device + let Name = "VK_EXT_graphics_pipeline_library" + let Number = 321 + + [] + type VkGraphicsPipelineLibraryFlagsEXT = + | All = 15 + | None = 0 + | VertexInputInterfaceBit = 0x00000001 + | PreRasterizationShadersBit = 0x00000002 + | FragmentShaderBit = 0x00000004 + | FragmentOutputInterfaceBit = 0x00000008 + + + [] + type VkGraphicsPipelineLibraryCreateInfoEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public flags : VkGraphicsPipelineLibraryFlagsEXT + + new(pNext : nativeint, flags : VkGraphicsPipelineLibraryFlagsEXT) = + { + sType = 1000320002u + pNext = pNext + flags = flags + } + + new(flags : VkGraphicsPipelineLibraryFlagsEXT) = + VkGraphicsPipelineLibraryCreateInfoEXT(Unchecked.defaultof, flags) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof + + static member Empty = + VkGraphicsPipelineLibraryCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "flags = %A" x.flags + ] |> sprintf "VkGraphicsPipelineLibraryCreateInfoEXT { %s }" + end + + [] + type VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public graphicsPipelineLibrary : VkBool32 + + new(pNext : nativeint, graphicsPipelineLibrary : VkBool32) = + { + sType = 1000320000u + pNext = pNext + graphicsPipelineLibrary = graphicsPipelineLibrary + } + + new(graphicsPipelineLibrary : VkBool32) = + VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT(Unchecked.defaultof, graphicsPipelineLibrary) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.graphicsPipelineLibrary = Unchecked.defaultof + + static member Empty = + VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "graphicsPipelineLibrary = %A" x.graphicsPipelineLibrary + ] |> sprintf "VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT { %s }" + end + + [] + type VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public graphicsPipelineLibraryFastLinking : VkBool32 + val mutable public graphicsPipelineLibraryIndependentInterpolationDecoration : VkBool32 + + new(pNext : nativeint, graphicsPipelineLibraryFastLinking : VkBool32, graphicsPipelineLibraryIndependentInterpolationDecoration : VkBool32) = + { + sType = 1000320001u + pNext = pNext + graphicsPipelineLibraryFastLinking = graphicsPipelineLibraryFastLinking + graphicsPipelineLibraryIndependentInterpolationDecoration = graphicsPipelineLibraryIndependentInterpolationDecoration + } + + new(graphicsPipelineLibraryFastLinking : VkBool32, graphicsPipelineLibraryIndependentInterpolationDecoration : VkBool32) = + VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT(Unchecked.defaultof, graphicsPipelineLibraryFastLinking, graphicsPipelineLibraryIndependentInterpolationDecoration) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.graphicsPipelineLibraryFastLinking = Unchecked.defaultof && x.graphicsPipelineLibraryIndependentInterpolationDecoration = Unchecked.defaultof + + static member Empty = + VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "graphicsPipelineLibraryFastLinking = %A" x.graphicsPipelineLibraryFastLinking + sprintf "graphicsPipelineLibraryIndependentInterpolationDecoration = %A" x.graphicsPipelineLibraryIndependentInterpolationDecoration + ] |> sprintf "VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT { %s }" + end + + + [] + module EnumExtensions = + type VkPipelineCreateFlags with + static member inline RetainLinkTimeOptimizationInfoBitExt = unbox 0x00800000 + static member inline LinkTimeOptimizationBitExt = unbox 0x00000400 + type VkPipelineLayoutCreateFlags with + static member inline IndependentSetsBitExt = unbox 0x00000002 + + +/// Requires KHRRayTracingPipeline. +module NVRayTracingMotionBlur = + let Type = ExtensionType.Device + let Name = "VK_NV_ray_tracing_motion_blur" + let Number = 328 + + type VkAccelerationStructureMotionInstanceTypeNV = + | Static = 0 + | MatrixMotion = 1 + | SrtMotion = 2 + + + [] + type VkAccelerationStructureGeometryMotionTrianglesDataNV = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public vertexData : KHRAccelerationStructure.VkDeviceOrHostAddressConstKHR + + new(pNext : nativeint, vertexData : KHRAccelerationStructure.VkDeviceOrHostAddressConstKHR) = + { + sType = 1000327000u + pNext = pNext + vertexData = vertexData + } + + new(vertexData : KHRAccelerationStructure.VkDeviceOrHostAddressConstKHR) = + VkAccelerationStructureGeometryMotionTrianglesDataNV(Unchecked.defaultof, vertexData) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.vertexData = Unchecked.defaultof + + static member Empty = + VkAccelerationStructureGeometryMotionTrianglesDataNV(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "vertexData = %A" x.vertexData + ] |> sprintf "VkAccelerationStructureGeometryMotionTrianglesDataNV { %s }" + end + + [] + type VkAccelerationStructureMatrixMotionInstanceNV = + struct + val mutable public transformT0 : KHRAccelerationStructure.VkTransformMatrixKHR + val mutable public transformT1 : KHRAccelerationStructure.VkTransformMatrixKHR + val mutable public instanceCustomIndex : uint24 + val mutable public mask : uint8 + val mutable public instanceShaderBindingTableRecordOffset : uint24 + val mutable public flags : uint8 + val mutable public accelerationStructureReference : uint64 + + new(transformT0 : KHRAccelerationStructure.VkTransformMatrixKHR, transformT1 : KHRAccelerationStructure.VkTransformMatrixKHR, instanceCustomIndex : uint24, mask : uint8, instanceShaderBindingTableRecordOffset : uint24, flags : uint8, accelerationStructureReference : uint64) = + { + transformT0 = transformT0 + transformT1 = transformT1 + instanceCustomIndex = instanceCustomIndex + mask = mask + instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset + flags = flags + accelerationStructureReference = accelerationStructureReference + } + + member x.IsEmpty = + x.transformT0 = Unchecked.defaultof && x.transformT1 = Unchecked.defaultof && x.instanceCustomIndex = Unchecked.defaultof && x.mask = Unchecked.defaultof && x.instanceShaderBindingTableRecordOffset = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.accelerationStructureReference = Unchecked.defaultof + + static member Empty = + VkAccelerationStructureMatrixMotionInstanceNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "transformT0 = %A" x.transformT0 + sprintf "transformT1 = %A" x.transformT1 + sprintf "instanceCustomIndex = %A" x.instanceCustomIndex + sprintf "mask = %A" x.mask + sprintf "instanceShaderBindingTableRecordOffset = %A" x.instanceShaderBindingTableRecordOffset + sprintf "flags = %A" x.flags + sprintf "accelerationStructureReference = %A" x.accelerationStructureReference + ] |> sprintf "VkAccelerationStructureMatrixMotionInstanceNV { %s }" + end + + [] + type VkAccelerationStructureMotionInfoNV = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public maxInstances : uint32 + val mutable public flags : VkAccelerationStructureMotionInfoFlagsNV + + new(pNext : nativeint, maxInstances : uint32, flags : VkAccelerationStructureMotionInfoFlagsNV) = + { + sType = 1000327002u + pNext = pNext + maxInstances = maxInstances + flags = flags + } + + new(maxInstances : uint32, flags : VkAccelerationStructureMotionInfoFlagsNV) = + VkAccelerationStructureMotionInfoNV(Unchecked.defaultof, maxInstances, flags) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.maxInstances = Unchecked.defaultof && x.flags = Unchecked.defaultof + + static member Empty = + VkAccelerationStructureMotionInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "maxInstances = %A" x.maxInstances + sprintf "flags = %A" x.flags + ] |> sprintf "VkAccelerationStructureMotionInfoNV { %s }" + end + + [] + type VkSRTDataNV = + struct + val mutable public sx : float32 + val mutable public a : float32 + val mutable public b : float32 + val mutable public pvx : float32 + val mutable public sy : float32 + val mutable public c : float32 + val mutable public pvy : float32 + val mutable public sz : float32 + val mutable public pvz : float32 + val mutable public qx : float32 + val mutable public qy : float32 + val mutable public qz : float32 + val mutable public qw : float32 + val mutable public tx : float32 + val mutable public ty : float32 + val mutable public tz : float32 + + new(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) = + { + sx = sx + a = a + b = b + pvx = pvx + sy = sy + c = c + pvy = pvy + sz = sz + pvz = pvz + qx = qx + qy = qy + qz = qz + qw = qw + tx = tx + ty = ty + tz = tz + } + + member x.IsEmpty = + x.sx = Unchecked.defaultof && x.a = Unchecked.defaultof && x.b = Unchecked.defaultof && x.pvx = Unchecked.defaultof && x.sy = Unchecked.defaultof && x.c = Unchecked.defaultof && x.pvy = Unchecked.defaultof && x.sz = Unchecked.defaultof && x.pvz = Unchecked.defaultof && x.qx = Unchecked.defaultof && x.qy = Unchecked.defaultof && x.qz = Unchecked.defaultof && x.qw = Unchecked.defaultof && x.tx = Unchecked.defaultof && x.ty = Unchecked.defaultof && x.tz = Unchecked.defaultof + + static member Empty = + VkSRTDataNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sx = %A" x.sx + sprintf "a = %A" x.a + sprintf "b = %A" x.b + sprintf "pvx = %A" x.pvx + sprintf "sy = %A" x.sy + sprintf "c = %A" x.c + sprintf "pvy = %A" x.pvy + sprintf "sz = %A" x.sz + sprintf "pvz = %A" x.pvz + sprintf "qx = %A" x.qx + sprintf "qy = %A" x.qy + sprintf "qz = %A" x.qz + sprintf "qw = %A" x.qw + sprintf "tx = %A" x.tx + sprintf "ty = %A" x.ty + sprintf "tz = %A" x.tz + ] |> sprintf "VkSRTDataNV { %s }" + end + + [] + type VkAccelerationStructureSRTMotionInstanceNV = + struct + val mutable public transformT0 : VkSRTDataNV + val mutable public transformT1 : VkSRTDataNV + val mutable public instanceCustomIndex : uint24 + val mutable public mask : uint8 + val mutable public instanceShaderBindingTableRecordOffset : uint24 + val mutable public flags : uint8 + val mutable public accelerationStructureReference : uint64 + + new(transformT0 : VkSRTDataNV, transformT1 : VkSRTDataNV, instanceCustomIndex : uint24, mask : uint8, instanceShaderBindingTableRecordOffset : uint24, flags : uint8, accelerationStructureReference : uint64) = + { + transformT0 = transformT0 + transformT1 = transformT1 + instanceCustomIndex = instanceCustomIndex + mask = mask + instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset + flags = flags + accelerationStructureReference = accelerationStructureReference + } + + member x.IsEmpty = + x.transformT0 = Unchecked.defaultof && x.transformT1 = Unchecked.defaultof && x.instanceCustomIndex = Unchecked.defaultof && x.mask = Unchecked.defaultof && x.instanceShaderBindingTableRecordOffset = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.accelerationStructureReference = Unchecked.defaultof + + static member Empty = + VkAccelerationStructureSRTMotionInstanceNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "transformT0 = %A" x.transformT0 + sprintf "transformT1 = %A" x.transformT1 + sprintf "instanceCustomIndex = %A" x.instanceCustomIndex + sprintf "mask = %A" x.mask + sprintf "instanceShaderBindingTableRecordOffset = %A" x.instanceShaderBindingTableRecordOffset + sprintf "flags = %A" x.flags + sprintf "accelerationStructureReference = %A" x.accelerationStructureReference + ] |> sprintf "VkAccelerationStructureSRTMotionInstanceNV { %s }" + end + + [] + type VkAccelerationStructureMotionInstanceDataNV = + struct + [] + val mutable public staticInstance : KHRAccelerationStructure.VkAccelerationStructureInstanceKHR + [] + val mutable public matrixMotionInstance : VkAccelerationStructureMatrixMotionInstanceNV + [] + val mutable public srtMotionInstance : VkAccelerationStructureSRTMotionInstanceNV + + static member StaticInstance(value : KHRAccelerationStructure.VkAccelerationStructureInstanceKHR) = + let mutable result = Unchecked.defaultof + result.staticInstance <- value + result + + static member MatrixMotionInstance(value : VkAccelerationStructureMatrixMotionInstanceNV) = + let mutable result = Unchecked.defaultof + result.matrixMotionInstance <- value + result + + static member SrtMotionInstance(value : VkAccelerationStructureSRTMotionInstanceNV) = + let mutable result = Unchecked.defaultof + result.srtMotionInstance <- value + result + + override x.ToString() = + String.concat "; " [ + sprintf "staticInstance = %A" x.staticInstance + sprintf "matrixMotionInstance = %A" x.matrixMotionInstance + sprintf "srtMotionInstance = %A" x.srtMotionInstance + ] |> sprintf "VkAccelerationStructureMotionInstanceDataNV { %s }" + end + + [] + type VkAccelerationStructureMotionInstanceNV = + struct + val mutable public _type : VkAccelerationStructureMotionInstanceTypeNV + val mutable public flags : VkAccelerationStructureMotionInstanceFlagsNV + val mutable public data : VkAccelerationStructureMotionInstanceDataNV + + new(_type : VkAccelerationStructureMotionInstanceTypeNV, flags : VkAccelerationStructureMotionInstanceFlagsNV, data : VkAccelerationStructureMotionInstanceDataNV) = + { + _type = _type + flags = flags + data = data + } + + member x.IsEmpty = + x._type = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.data = Unchecked.defaultof + + static member Empty = + VkAccelerationStructureMotionInstanceNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "_type = %A" x._type + sprintf "flags = %A" x.flags + sprintf "data = %A" x.data + ] |> sprintf "VkAccelerationStructureMotionInstanceNV { %s }" + end + + [] + type VkPhysicalDeviceRayTracingMotionBlurFeaturesNV = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public rayTracingMotionBlur : VkBool32 + val mutable public rayTracingMotionBlurPipelineTraceRaysIndirect : VkBool32 + + new(pNext : nativeint, rayTracingMotionBlur : VkBool32, rayTracingMotionBlurPipelineTraceRaysIndirect : VkBool32) = + { + sType = 1000327001u + pNext = pNext + rayTracingMotionBlur = rayTracingMotionBlur + rayTracingMotionBlurPipelineTraceRaysIndirect = rayTracingMotionBlurPipelineTraceRaysIndirect + } + + new(rayTracingMotionBlur : VkBool32, rayTracingMotionBlurPipelineTraceRaysIndirect : VkBool32) = + VkPhysicalDeviceRayTracingMotionBlurFeaturesNV(Unchecked.defaultof, rayTracingMotionBlur, rayTracingMotionBlurPipelineTraceRaysIndirect) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.rayTracingMotionBlur = Unchecked.defaultof && x.rayTracingMotionBlurPipelineTraceRaysIndirect = Unchecked.defaultof + + static member Empty = + VkPhysicalDeviceRayTracingMotionBlurFeaturesNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "rayTracingMotionBlur = %A" x.rayTracingMotionBlur + sprintf "rayTracingMotionBlurPipelineTraceRaysIndirect = %A" x.rayTracingMotionBlurPipelineTraceRaysIndirect + ] |> sprintf "VkPhysicalDeviceRayTracingMotionBlurFeaturesNV { %s }" + end + + + [] + module EnumExtensions = + type KHRAccelerationStructure.VkAccelerationStructureCreateFlagsKHR with + static member inline MotionBitNv = unbox 0x00000004 + type KHRAccelerationStructure.VkBuildAccelerationStructureFlagsKHR with + static member inline MotionBitNv = unbox 0x00000020 + type VkPipelineCreateFlags with + static member inline RayTracingAllowMotionBitNv = unbox 0x00100000 + + +/// Requires KHRAccelerationStructure, (KHRSynchronization2 | Vulkan13). +module EXTOpacityMicromap = + let Type = ExtensionType.Device + let Name = "VK_EXT_opacity_micromap" + let Number = 397 + + + [] + type VkMicromapEXT = + struct + val mutable public Handle : uint64 + new(h) = { Handle = h } + static member Null = VkMicromapEXT(0UL) + member x.IsNull = x.Handle = 0UL + member x.IsValid = x.Handle <> 0UL + end + + type VkMicromapTypeEXT = + | OpacityMicromap = 0 + + [] + type VkBuildMicromapFlagsEXT = + | All = 7 + | None = 0 + | PreferFastTraceBit = 0x00000001 + | PreferFastBuildBit = 0x00000002 + | AllowCompactionBit = 0x00000004 + + type VkCopyMicromapModeEXT = + | Clone = 0 + | Serialize = 1 + | Deserialize = 2 + | Compact = 3 + + [] + type VkMicromapCreateFlagsEXT = + | All = 1 + | None = 0 + | DeviceAddressCaptureReplayBit = 0x00000001 + + type VkBuildMicromapModeEXT = + | Build = 0 + + type VkOpacityMicromapFormatEXT = + | D2State = 1 + | D4State = 2 + + type VkOpacityMicromapSpecialIndexEXT = + | FullyTransparent = -1 + | FullyOpaque = -2 + | FullyUnknownTransparent = -3 + | FullyUnknownOpaque = -4 + + + [] + type VkMicromapUsageEXT = + struct + val mutable public count : uint32 + val mutable public subdivisionLevel : uint32 + val mutable public format : uint32 + + new(count : uint32, subdivisionLevel : uint32, format : uint32) = + { + count = count + subdivisionLevel = subdivisionLevel + format = format + } + + member x.IsEmpty = + x.count = Unchecked.defaultof && x.subdivisionLevel = Unchecked.defaultof && x.format = Unchecked.defaultof + + static member Empty = + VkMicromapUsageEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "count = %A" x.count + sprintf "subdivisionLevel = %A" x.subdivisionLevel + sprintf "format = %A" x.format + ] |> sprintf "VkMicromapUsageEXT { %s }" + end + + [] + type VkAccelerationStructureTrianglesOpacityMicromapEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public indexType : VkIndexType + val mutable public indexBuffer : KHRAccelerationStructure.VkDeviceOrHostAddressConstKHR + val mutable public indexStride : VkDeviceSize + val mutable public baseTriangle : uint32 + val mutable public usageCountsCount : uint32 + val mutable public pUsageCounts : nativeptr + val mutable public ppUsageCounts : nativeptr> + val mutable public micromap : VkMicromapEXT + + new(pNext : nativeint, indexType : VkIndexType, indexBuffer : KHRAccelerationStructure.VkDeviceOrHostAddressConstKHR, indexStride : VkDeviceSize, baseTriangle : uint32, usageCountsCount : uint32, pUsageCounts : nativeptr, ppUsageCounts : nativeptr>, micromap : VkMicromapEXT) = + { + sType = 1000396009u + pNext = pNext + indexType = indexType + indexBuffer = indexBuffer + indexStride = indexStride + baseTriangle = baseTriangle + usageCountsCount = usageCountsCount + pUsageCounts = pUsageCounts + ppUsageCounts = ppUsageCounts + micromap = micromap + } + + new(indexType : VkIndexType, indexBuffer : KHRAccelerationStructure.VkDeviceOrHostAddressConstKHR, indexStride : VkDeviceSize, baseTriangle : uint32, usageCountsCount : uint32, pUsageCounts : nativeptr, ppUsageCounts : nativeptr>, micromap : VkMicromapEXT) = + VkAccelerationStructureTrianglesOpacityMicromapEXT(Unchecked.defaultof, indexType, indexBuffer, indexStride, baseTriangle, usageCountsCount, pUsageCounts, ppUsageCounts, micromap) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.indexType = Unchecked.defaultof && x.indexBuffer = Unchecked.defaultof && x.indexStride = Unchecked.defaultof && x.baseTriangle = Unchecked.defaultof && x.usageCountsCount = Unchecked.defaultof && x.pUsageCounts = Unchecked.defaultof> && x.ppUsageCounts = Unchecked.defaultof>> && x.micromap = Unchecked.defaultof + + static member Empty = + VkAccelerationStructureTrianglesOpacityMicromapEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof>>, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "indexType = %A" x.indexType + sprintf "indexBuffer = %A" x.indexBuffer + sprintf "indexStride = %A" x.indexStride + sprintf "baseTriangle = %A" x.baseTriangle + sprintf "usageCountsCount = %A" x.usageCountsCount + sprintf "pUsageCounts = %A" x.pUsageCounts + sprintf "ppUsageCounts = %A" x.ppUsageCounts + sprintf "micromap = %A" x.micromap + ] |> sprintf "VkAccelerationStructureTrianglesOpacityMicromapEXT { %s }" + end + + [] + type VkCopyMemoryToMicromapInfoEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public src : KHRAccelerationStructure.VkDeviceOrHostAddressConstKHR + val mutable public dst : VkMicromapEXT + val mutable public mode : VkCopyMicromapModeEXT + + new(pNext : nativeint, src : KHRAccelerationStructure.VkDeviceOrHostAddressConstKHR, dst : VkMicromapEXT, mode : VkCopyMicromapModeEXT) = + { + sType = 1000396004u + pNext = pNext + src = src + dst = dst + mode = mode + } + + new(src : KHRAccelerationStructure.VkDeviceOrHostAddressConstKHR, dst : VkMicromapEXT, mode : VkCopyMicromapModeEXT) = + VkCopyMemoryToMicromapInfoEXT(Unchecked.defaultof, src, dst, mode) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.src = Unchecked.defaultof && x.dst = Unchecked.defaultof && x.mode = Unchecked.defaultof + + static member Empty = + VkCopyMemoryToMicromapInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "src = %A" x.src + sprintf "dst = %A" x.dst + sprintf "mode = %A" x.mode + ] |> sprintf "VkCopyMemoryToMicromapInfoEXT { %s }" + end + + [] + type VkCopyMicromapInfoEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public src : VkMicromapEXT + val mutable public dst : VkMicromapEXT + val mutable public mode : VkCopyMicromapModeEXT + + new(pNext : nativeint, src : VkMicromapEXT, dst : VkMicromapEXT, mode : VkCopyMicromapModeEXT) = + { + sType = 1000396002u + pNext = pNext + src = src + dst = dst + mode = mode + } + + new(src : VkMicromapEXT, dst : VkMicromapEXT, mode : VkCopyMicromapModeEXT) = + VkCopyMicromapInfoEXT(Unchecked.defaultof, src, dst, mode) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.src = Unchecked.defaultof && x.dst = Unchecked.defaultof && x.mode = Unchecked.defaultof + + static member Empty = + VkCopyMicromapInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "src = %A" x.src + sprintf "dst = %A" x.dst + sprintf "mode = %A" x.mode + ] |> sprintf "VkCopyMicromapInfoEXT { %s }" + end + + [] + type VkCopyMicromapToMemoryInfoEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public src : VkMicromapEXT + val mutable public dst : KHRAccelerationStructure.VkDeviceOrHostAddressKHR + val mutable public mode : VkCopyMicromapModeEXT + + new(pNext : nativeint, src : VkMicromapEXT, dst : KHRAccelerationStructure.VkDeviceOrHostAddressKHR, mode : VkCopyMicromapModeEXT) = + { + sType = 1000396003u + pNext = pNext + src = src + dst = dst + mode = mode + } + + new(src : VkMicromapEXT, dst : KHRAccelerationStructure.VkDeviceOrHostAddressKHR, mode : VkCopyMicromapModeEXT) = + VkCopyMicromapToMemoryInfoEXT(Unchecked.defaultof, src, dst, mode) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.src = Unchecked.defaultof && x.dst = Unchecked.defaultof && x.mode = Unchecked.defaultof + + static member Empty = + VkCopyMicromapToMemoryInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "src = %A" x.src + sprintf "dst = %A" x.dst + sprintf "mode = %A" x.mode + ] |> sprintf "VkCopyMicromapToMemoryInfoEXT { %s }" + end + + [] + type VkMicromapBuildInfoEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public _type : VkMicromapTypeEXT + val mutable public flags : VkBuildMicromapFlagsEXT + val mutable public mode : VkBuildMicromapModeEXT + val mutable public dstMicromap : VkMicromapEXT + val mutable public usageCountsCount : uint32 + val mutable public pUsageCounts : nativeptr + val mutable public ppUsageCounts : nativeptr> + val mutable public data : KHRAccelerationStructure.VkDeviceOrHostAddressConstKHR + val mutable public scratchData : KHRAccelerationStructure.VkDeviceOrHostAddressKHR + val mutable public triangleArray : KHRAccelerationStructure.VkDeviceOrHostAddressConstKHR + val mutable public triangleArrayStride : VkDeviceSize + + new(pNext : nativeint, _type : VkMicromapTypeEXT, flags : VkBuildMicromapFlagsEXT, mode : VkBuildMicromapModeEXT, dstMicromap : VkMicromapEXT, usageCountsCount : uint32, pUsageCounts : nativeptr, ppUsageCounts : nativeptr>, data : KHRAccelerationStructure.VkDeviceOrHostAddressConstKHR, scratchData : KHRAccelerationStructure.VkDeviceOrHostAddressKHR, triangleArray : KHRAccelerationStructure.VkDeviceOrHostAddressConstKHR, triangleArrayStride : VkDeviceSize) = + { + sType = 1000396000u + pNext = pNext + _type = _type + flags = flags + mode = mode + dstMicromap = dstMicromap + usageCountsCount = usageCountsCount + pUsageCounts = pUsageCounts + ppUsageCounts = ppUsageCounts + data = data + scratchData = scratchData + triangleArray = triangleArray + triangleArrayStride = triangleArrayStride + } + + new(_type : VkMicromapTypeEXT, flags : VkBuildMicromapFlagsEXT, mode : VkBuildMicromapModeEXT, dstMicromap : VkMicromapEXT, usageCountsCount : uint32, pUsageCounts : nativeptr, ppUsageCounts : nativeptr>, data : KHRAccelerationStructure.VkDeviceOrHostAddressConstKHR, scratchData : KHRAccelerationStructure.VkDeviceOrHostAddressKHR, triangleArray : KHRAccelerationStructure.VkDeviceOrHostAddressConstKHR, triangleArrayStride : VkDeviceSize) = + VkMicromapBuildInfoEXT(Unchecked.defaultof, _type, flags, mode, dstMicromap, usageCountsCount, pUsageCounts, ppUsageCounts, data, scratchData, triangleArray, triangleArrayStride) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x._type = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.mode = Unchecked.defaultof && x.dstMicromap = Unchecked.defaultof && x.usageCountsCount = Unchecked.defaultof && x.pUsageCounts = Unchecked.defaultof> && x.ppUsageCounts = Unchecked.defaultof>> && x.data = Unchecked.defaultof && x.scratchData = Unchecked.defaultof && x.triangleArray = Unchecked.defaultof && x.triangleArrayStride = Unchecked.defaultof + + static member Empty = + VkMicromapBuildInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof>>, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "_type = %A" x._type + sprintf "flags = %A" x.flags + sprintf "mode = %A" x.mode + sprintf "dstMicromap = %A" x.dstMicromap + sprintf "usageCountsCount = %A" x.usageCountsCount + sprintf "pUsageCounts = %A" x.pUsageCounts + sprintf "ppUsageCounts = %A" x.ppUsageCounts + sprintf "data = %A" x.data + sprintf "scratchData = %A" x.scratchData + sprintf "triangleArray = %A" x.triangleArray + sprintf "triangleArrayStride = %A" x.triangleArrayStride + ] |> sprintf "VkMicromapBuildInfoEXT { %s }" + end + + [] + type VkMicromapBuildSizesInfoEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public micromapSize : VkDeviceSize + val mutable public buildScratchSize : VkDeviceSize + val mutable public discardable : VkBool32 + + new(pNext : nativeint, micromapSize : VkDeviceSize, buildScratchSize : VkDeviceSize, discardable : VkBool32) = + { + sType = 1000396008u + pNext = pNext + micromapSize = micromapSize + buildScratchSize = buildScratchSize + discardable = discardable + } + + new(micromapSize : VkDeviceSize, buildScratchSize : VkDeviceSize, discardable : VkBool32) = + VkMicromapBuildSizesInfoEXT(Unchecked.defaultof, micromapSize, buildScratchSize, discardable) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.micromapSize = Unchecked.defaultof && x.buildScratchSize = Unchecked.defaultof && x.discardable = Unchecked.defaultof + + static member Empty = + VkMicromapBuildSizesInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "micromapSize = %A" x.micromapSize + sprintf "buildScratchSize = %A" x.buildScratchSize + sprintf "discardable = %A" x.discardable + ] |> sprintf "VkMicromapBuildSizesInfoEXT { %s }" + end + + [] + type VkMicromapCreateInfoEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public createFlags : VkMicromapCreateFlagsEXT + val mutable public buffer : VkBuffer + val mutable public offset : VkDeviceSize + val mutable public size : VkDeviceSize + val mutable public _type : VkMicromapTypeEXT + val mutable public deviceAddress : VkDeviceAddress + + new(pNext : nativeint, createFlags : VkMicromapCreateFlagsEXT, buffer : VkBuffer, offset : VkDeviceSize, size : VkDeviceSize, _type : VkMicromapTypeEXT, deviceAddress : VkDeviceAddress) = + { + sType = 1000396007u + pNext = pNext + createFlags = createFlags + buffer = buffer + offset = offset + size = size + _type = _type + deviceAddress = deviceAddress + } + + new(createFlags : VkMicromapCreateFlagsEXT, buffer : VkBuffer, offset : VkDeviceSize, size : VkDeviceSize, _type : VkMicromapTypeEXT, deviceAddress : VkDeviceAddress) = + VkMicromapCreateInfoEXT(Unchecked.defaultof, createFlags, buffer, offset, size, _type, deviceAddress) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.createFlags = Unchecked.defaultof && x.buffer = Unchecked.defaultof && x.offset = Unchecked.defaultof && x.size = Unchecked.defaultof && x._type = Unchecked.defaultof && x.deviceAddress = Unchecked.defaultof + + static member Empty = + VkMicromapCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "createFlags = %A" x.createFlags + sprintf "buffer = %A" x.buffer + sprintf "offset = %A" x.offset + sprintf "size = %A" x.size + sprintf "_type = %A" x._type + sprintf "deviceAddress = %A" x.deviceAddress + ] |> sprintf "VkMicromapCreateInfoEXT { %s }" + end + + [] + type VkMicromapTriangleEXT = + struct + val mutable public dataOffset : uint32 + val mutable public subdivisionLevel : uint16 + val mutable public format : uint16 + + new(dataOffset : uint32, subdivisionLevel : uint16, format : uint16) = + { + dataOffset = dataOffset + subdivisionLevel = subdivisionLevel + format = format + } + + member x.IsEmpty = + x.dataOffset = Unchecked.defaultof && x.subdivisionLevel = Unchecked.defaultof && x.format = Unchecked.defaultof + + static member Empty = + VkMicromapTriangleEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "dataOffset = %A" x.dataOffset + sprintf "subdivisionLevel = %A" x.subdivisionLevel + sprintf "format = %A" x.format + ] |> sprintf "VkMicromapTriangleEXT { %s }" + end + + [] + type VkMicromapVersionInfoEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public pVersionData : nativeptr + + new(pNext : nativeint, pVersionData : nativeptr) = + { + sType = 1000396001u + pNext = pNext + pVersionData = pVersionData + } + + new(pVersionData : nativeptr) = + VkMicromapVersionInfoEXT(Unchecked.defaultof, pVersionData) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.pVersionData = Unchecked.defaultof> + + static member Empty = + VkMicromapVersionInfoEXT(Unchecked.defaultof, Unchecked.defaultof>) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "pVersionData = %A" x.pVersionData + ] |> sprintf "VkMicromapVersionInfoEXT { %s }" + end + + [] + type VkPhysicalDeviceOpacityMicromapFeaturesEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public micromap : VkBool32 + val mutable public micromapCaptureReplay : VkBool32 + val mutable public micromapHostCommands : VkBool32 + + new(pNext : nativeint, micromap : VkBool32, micromapCaptureReplay : VkBool32, micromapHostCommands : VkBool32) = + { + sType = 1000396005u + pNext = pNext + micromap = micromap + micromapCaptureReplay = micromapCaptureReplay + micromapHostCommands = micromapHostCommands + } + + new(micromap : VkBool32, micromapCaptureReplay : VkBool32, micromapHostCommands : VkBool32) = + VkPhysicalDeviceOpacityMicromapFeaturesEXT(Unchecked.defaultof, micromap, micromapCaptureReplay, micromapHostCommands) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.micromap = Unchecked.defaultof && x.micromapCaptureReplay = Unchecked.defaultof && x.micromapHostCommands = Unchecked.defaultof + + static member Empty = + VkPhysicalDeviceOpacityMicromapFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "micromap = %A" x.micromap + sprintf "micromapCaptureReplay = %A" x.micromapCaptureReplay + sprintf "micromapHostCommands = %A" x.micromapHostCommands + ] |> sprintf "VkPhysicalDeviceOpacityMicromapFeaturesEXT { %s }" + end + + [] + type VkPhysicalDeviceOpacityMicromapPropertiesEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public maxOpacity2StateSubdivisionLevel : uint32 + val mutable public maxOpacity4StateSubdivisionLevel : uint32 + + new(pNext : nativeint, maxOpacity2StateSubdivisionLevel : uint32, maxOpacity4StateSubdivisionLevel : uint32) = + { + sType = 1000396006u + pNext = pNext + maxOpacity2StateSubdivisionLevel = maxOpacity2StateSubdivisionLevel + maxOpacity4StateSubdivisionLevel = maxOpacity4StateSubdivisionLevel + } + + new(maxOpacity2StateSubdivisionLevel : uint32, maxOpacity4StateSubdivisionLevel : uint32) = + VkPhysicalDeviceOpacityMicromapPropertiesEXT(Unchecked.defaultof, maxOpacity2StateSubdivisionLevel, maxOpacity4StateSubdivisionLevel) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.maxOpacity2StateSubdivisionLevel = Unchecked.defaultof && x.maxOpacity4StateSubdivisionLevel = Unchecked.defaultof + + static member Empty = + VkPhysicalDeviceOpacityMicromapPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "maxOpacity2StateSubdivisionLevel = %A" x.maxOpacity2StateSubdivisionLevel + sprintf "maxOpacity4StateSubdivisionLevel = %A" x.maxOpacity4StateSubdivisionLevel + ] |> sprintf "VkPhysicalDeviceOpacityMicromapPropertiesEXT { %s }" + end + + + [] + module EnumExtensions = + type Vulkan13.VkAccessFlags2 with + static member inline Access2MicromapReadBitExt = unbox 0x00001000 + static member inline Access2MicromapWriteBitExt = unbox 0x00002000 + type VkBufferUsageFlags with + static member inline MicromapBuildInputReadOnlyBitExt = unbox 0x00800000 + static member inline MicromapStorageBitExt = unbox 0x01000000 + type KHRAccelerationStructure.VkBuildAccelerationStructureFlagsKHR with + static member inline AllowOpacityMicromapUpdateExt = unbox 0x00000040 + static member inline AllowDisableOpacityMicromapsExt = unbox 0x00000080 + static member inline AllowOpacityMicromapDataUpdateExt = unbox 0x00000100 + type KHRAccelerationStructure.VkGeometryInstanceFlagsKHR with + static member inline ForceOpacityMicromap2StateExt = unbox 0x00000010 + static member inline DisableOpacityMicromapsExt = unbox 0x00000020 + type VkObjectType with + static member inline MicromapExt = unbox 1000396000 + type VkPipelineCreateFlags with + static member inline RayTracingOpacityMicromapBitExt = unbox 0x01000000 + type Vulkan13.VkPipelineStageFlags2 with + static member inline PipelineStage2MicromapBuildBitExt = unbox 0x40000000 + type VkQueryType with + static member inline MicromapSerializationSizeExt = unbox 1000396000 + static member inline MicromapCompactedSizeExt = unbox 1000396001 + + module VkRaw = + [] + type VkCreateMicromapEXTDel = delegate of VkDevice * nativeptr * nativeptr * nativeptr -> VkResult + [] + type VkDestroyMicromapEXTDel = delegate of VkDevice * VkMicromapEXT * nativeptr -> unit + [] + type VkCmdBuildMicromapsEXTDel = delegate of VkCommandBuffer * uint32 * nativeptr -> unit + [] + type VkBuildMicromapsEXTDel = delegate of VkDevice * KHRDeferredHostOperations.VkDeferredOperationKHR * uint32 * nativeptr -> VkResult + [] + type VkCopyMicromapEXTDel = delegate of VkDevice * KHRDeferredHostOperations.VkDeferredOperationKHR * nativeptr -> VkResult + [] + type VkCopyMicromapToMemoryEXTDel = delegate of VkDevice * KHRDeferredHostOperations.VkDeferredOperationKHR * nativeptr -> VkResult + [] + type VkCopyMemoryToMicromapEXTDel = delegate of VkDevice * KHRDeferredHostOperations.VkDeferredOperationKHR * nativeptr -> VkResult + [] + type VkWriteMicromapsPropertiesEXTDel = delegate of VkDevice * uint32 * nativeptr * VkQueryType * uint64 * nativeint * uint64 -> VkResult + [] + type VkCmdCopyMicromapEXTDel = delegate of VkCommandBuffer * nativeptr -> unit + [] + type VkCmdCopyMicromapToMemoryEXTDel = delegate of VkCommandBuffer * nativeptr -> unit + [] + type VkCmdCopyMemoryToMicromapEXTDel = delegate of VkCommandBuffer * nativeptr -> unit + [] + type VkCmdWriteMicromapsPropertiesEXTDel = delegate of VkCommandBuffer * uint32 * nativeptr * VkQueryType * VkQueryPool * uint32 -> unit + [] + type VkGetDeviceMicromapCompatibilityEXTDel = delegate of VkDevice * nativeptr * nativeptr -> unit + [] + type VkGetMicromapBuildSizesEXTDel = delegate of VkDevice * KHRAccelerationStructure.VkAccelerationStructureBuildTypeKHR * nativeptr * nativeptr -> unit + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTOpacityMicromap") + static let s_vkCreateMicromapEXTDel = VkRaw.vkImportInstanceDelegate "vkCreateMicromapEXT" + static let s_vkDestroyMicromapEXTDel = VkRaw.vkImportInstanceDelegate "vkDestroyMicromapEXT" + static let s_vkCmdBuildMicromapsEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdBuildMicromapsEXT" + static let s_vkBuildMicromapsEXTDel = VkRaw.vkImportInstanceDelegate "vkBuildMicromapsEXT" + static let s_vkCopyMicromapEXTDel = VkRaw.vkImportInstanceDelegate "vkCopyMicromapEXT" + static let s_vkCopyMicromapToMemoryEXTDel = VkRaw.vkImportInstanceDelegate "vkCopyMicromapToMemoryEXT" + static let s_vkCopyMemoryToMicromapEXTDel = VkRaw.vkImportInstanceDelegate "vkCopyMemoryToMicromapEXT" + static let s_vkWriteMicromapsPropertiesEXTDel = VkRaw.vkImportInstanceDelegate "vkWriteMicromapsPropertiesEXT" + static let s_vkCmdCopyMicromapEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdCopyMicromapEXT" + static let s_vkCmdCopyMicromapToMemoryEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdCopyMicromapToMemoryEXT" + static let s_vkCmdCopyMemoryToMicromapEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdCopyMemoryToMicromapEXT" + static let s_vkCmdWriteMicromapsPropertiesEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdWriteMicromapsPropertiesEXT" + static let s_vkGetDeviceMicromapCompatibilityEXTDel = VkRaw.vkImportInstanceDelegate "vkGetDeviceMicromapCompatibilityEXT" + static let s_vkGetMicromapBuildSizesEXTDel = VkRaw.vkImportInstanceDelegate "vkGetMicromapBuildSizesEXT" + static do Report.End(3) |> ignore + static member vkCreateMicromapEXT = s_vkCreateMicromapEXTDel + static member vkDestroyMicromapEXT = s_vkDestroyMicromapEXTDel + static member vkCmdBuildMicromapsEXT = s_vkCmdBuildMicromapsEXTDel + static member vkBuildMicromapsEXT = s_vkBuildMicromapsEXTDel + static member vkCopyMicromapEXT = s_vkCopyMicromapEXTDel + static member vkCopyMicromapToMemoryEXT = s_vkCopyMicromapToMemoryEXTDel + static member vkCopyMemoryToMicromapEXT = s_vkCopyMemoryToMicromapEXTDel + static member vkWriteMicromapsPropertiesEXT = s_vkWriteMicromapsPropertiesEXTDel + static member vkCmdCopyMicromapEXT = s_vkCmdCopyMicromapEXTDel + static member vkCmdCopyMicromapToMemoryEXT = s_vkCmdCopyMicromapToMemoryEXTDel + static member vkCmdCopyMemoryToMicromapEXT = s_vkCmdCopyMemoryToMicromapEXTDel + static member vkCmdWriteMicromapsPropertiesEXT = s_vkCmdWriteMicromapsPropertiesEXTDel + static member vkGetDeviceMicromapCompatibilityEXT = s_vkGetDeviceMicromapCompatibilityEXTDel + static member vkGetMicromapBuildSizesEXT = s_vkGetMicromapBuildSizesEXTDel + let vkCreateMicromapEXT(device : VkDevice, pCreateInfo : nativeptr, pAllocator : nativeptr, pMicromap : nativeptr) = Loader.vkCreateMicromapEXT.Invoke(device, pCreateInfo, pAllocator, pMicromap) + let vkDestroyMicromapEXT(device : VkDevice, micromap : VkMicromapEXT, pAllocator : nativeptr) = Loader.vkDestroyMicromapEXT.Invoke(device, micromap, pAllocator) + let vkCmdBuildMicromapsEXT(commandBuffer : VkCommandBuffer, infoCount : uint32, pInfos : nativeptr) = Loader.vkCmdBuildMicromapsEXT.Invoke(commandBuffer, infoCount, pInfos) + let vkBuildMicromapsEXT(device : VkDevice, deferredOperation : KHRDeferredHostOperations.VkDeferredOperationKHR, infoCount : uint32, pInfos : nativeptr) = Loader.vkBuildMicromapsEXT.Invoke(device, deferredOperation, infoCount, pInfos) + let vkCopyMicromapEXT(device : VkDevice, deferredOperation : KHRDeferredHostOperations.VkDeferredOperationKHR, pInfo : nativeptr) = Loader.vkCopyMicromapEXT.Invoke(device, deferredOperation, pInfo) + let vkCopyMicromapToMemoryEXT(device : VkDevice, deferredOperation : KHRDeferredHostOperations.VkDeferredOperationKHR, pInfo : nativeptr) = Loader.vkCopyMicromapToMemoryEXT.Invoke(device, deferredOperation, pInfo) + let vkCopyMemoryToMicromapEXT(device : VkDevice, deferredOperation : KHRDeferredHostOperations.VkDeferredOperationKHR, pInfo : nativeptr) = Loader.vkCopyMemoryToMicromapEXT.Invoke(device, deferredOperation, pInfo) + let vkWriteMicromapsPropertiesEXT(device : VkDevice, micromapCount : uint32, pMicromaps : nativeptr, queryType : VkQueryType, dataSize : uint64, pData : nativeint, stride : uint64) = Loader.vkWriteMicromapsPropertiesEXT.Invoke(device, micromapCount, pMicromaps, queryType, dataSize, pData, stride) + let vkCmdCopyMicromapEXT(commandBuffer : VkCommandBuffer, pInfo : nativeptr) = Loader.vkCmdCopyMicromapEXT.Invoke(commandBuffer, pInfo) + let vkCmdCopyMicromapToMemoryEXT(commandBuffer : VkCommandBuffer, pInfo : nativeptr) = Loader.vkCmdCopyMicromapToMemoryEXT.Invoke(commandBuffer, pInfo) + let vkCmdCopyMemoryToMicromapEXT(commandBuffer : VkCommandBuffer, pInfo : nativeptr) = Loader.vkCmdCopyMemoryToMicromapEXT.Invoke(commandBuffer, pInfo) + let vkCmdWriteMicromapsPropertiesEXT(commandBuffer : VkCommandBuffer, micromapCount : uint32, pMicromaps : nativeptr, queryType : VkQueryType, queryPool : VkQueryPool, firstQuery : uint32) = Loader.vkCmdWriteMicromapsPropertiesEXT.Invoke(commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery) + let vkGetDeviceMicromapCompatibilityEXT(device : VkDevice, pVersionInfo : nativeptr, pCompatibility : nativeptr) = Loader.vkGetDeviceMicromapCompatibilityEXT.Invoke(device, pVersionInfo, pCompatibility) + let vkGetMicromapBuildSizesEXT(device : VkDevice, buildType : KHRAccelerationStructure.VkAccelerationStructureBuildTypeKHR, pBuildInfo : nativeptr, pSizeInfo : nativeptr) = Loader.vkGetMicromapBuildSizesEXT.Invoke(device, buildType, pBuildInfo, pSizeInfo) + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module EXTAttachmentFeedbackLoopLayout = + let Type = ExtensionType.Device + let Name = "VK_EXT_attachment_feedback_loop_layout" + let Number = 340 + + [] + type VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public attachmentFeedbackLoopLayout : VkBool32 + + new(pNext : nativeint, attachmentFeedbackLoopLayout : VkBool32) = + { + sType = 1000339000u + pNext = pNext + attachmentFeedbackLoopLayout = attachmentFeedbackLoopLayout + } + + new(attachmentFeedbackLoopLayout : VkBool32) = + VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT(Unchecked.defaultof, attachmentFeedbackLoopLayout) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.attachmentFeedbackLoopLayout = Unchecked.defaultof + + static member Empty = + VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "attachmentFeedbackLoopLayout = %A" x.attachmentFeedbackLoopLayout + ] |> sprintf "VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT { %s }" + end + + + [] + module EnumExtensions = + type VkDependencyFlags with + /// Dependency may be a feedback loop + static member inline FeedbackLoopBitExt = unbox 0x00000008 + type VkImageLayout with + static member inline AttachmentFeedbackLoopOptimalExt = unbox 1000339000 + type VkImageUsageFlags with + static member inline AttachmentFeedbackLoopBitExt = unbox 0x00080000 + type VkPipelineCreateFlags with + static member inline ColorAttachmentFeedbackLoopBitExt = unbox 0x02000000 + static member inline DepthStencilAttachmentFeedbackLoopBitExt = unbox 0x04000000 + + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module EXTPipelineProtectedAccess = + let Type = ExtensionType.Device + let Name = "VK_EXT_pipeline_protected_access" + let Number = 467 + + [] + type VkPhysicalDevicePipelineProtectedAccessFeaturesEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public pipelineProtectedAccess : VkBool32 + + new(pNext : nativeint, pipelineProtectedAccess : VkBool32) = + { + sType = 1000466000u + pNext = pNext + pipelineProtectedAccess = pipelineProtectedAccess + } + + new(pipelineProtectedAccess : VkBool32) = + VkPhysicalDevicePipelineProtectedAccessFeaturesEXT(Unchecked.defaultof, pipelineProtectedAccess) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.pipelineProtectedAccess = Unchecked.defaultof + + static member Empty = + VkPhysicalDevicePipelineProtectedAccessFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "pipelineProtectedAccess = %A" x.pipelineProtectedAccess + ] |> sprintf "VkPhysicalDevicePipelineProtectedAccessFeaturesEXT { %s }" + end + + + [] + module EnumExtensions = + type VkPipelineCreateFlags with + static member inline NoProtectedAccessBitExt = unbox 0x08000000 + static member inline ProtectedAccessOnlyBitExt = unbox 0x40000000 + + +/// Requires EXTOpacityMicromap. +module NVDisplacementMicromap = + let Type = ExtensionType.Device + let Name = "VK_NV_displacement_micromap" + let Number = 398 + + type VkDisplacementMicromapFormatNV = + | D64Triangles64Bytes = 1 + | D256Triangles128Bytes = 2 + | D1024Triangles128Bytes = 3 + + + [] + type VkAccelerationStructureTrianglesDisplacementMicromapNV = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public displacementBiasAndScaleFormat : VkFormat + val mutable public displacementVectorFormat : VkFormat + val mutable public displacementBiasAndScaleBuffer : KHRAccelerationStructure.VkDeviceOrHostAddressConstKHR + val mutable public displacementBiasAndScaleStride : VkDeviceSize + val mutable public displacementVectorBuffer : KHRAccelerationStructure.VkDeviceOrHostAddressConstKHR + val mutable public displacementVectorStride : VkDeviceSize + val mutable public displacedMicromapPrimitiveFlags : KHRAccelerationStructure.VkDeviceOrHostAddressConstKHR + val mutable public displacedMicromapPrimitiveFlagsStride : VkDeviceSize + val mutable public indexType : VkIndexType + val mutable public indexBuffer : KHRAccelerationStructure.VkDeviceOrHostAddressConstKHR + val mutable public indexStride : VkDeviceSize + val mutable public baseTriangle : uint32 + val mutable public usageCountsCount : uint32 + val mutable public pUsageCounts : nativeptr + val mutable public ppUsageCounts : nativeptr> + val mutable public micromap : EXTOpacityMicromap.VkMicromapEXT + + new(pNext : nativeint, displacementBiasAndScaleFormat : VkFormat, displacementVectorFormat : VkFormat, displacementBiasAndScaleBuffer : KHRAccelerationStructure.VkDeviceOrHostAddressConstKHR, displacementBiasAndScaleStride : VkDeviceSize, displacementVectorBuffer : KHRAccelerationStructure.VkDeviceOrHostAddressConstKHR, displacementVectorStride : VkDeviceSize, displacedMicromapPrimitiveFlags : KHRAccelerationStructure.VkDeviceOrHostAddressConstKHR, displacedMicromapPrimitiveFlagsStride : VkDeviceSize, indexType : VkIndexType, indexBuffer : KHRAccelerationStructure.VkDeviceOrHostAddressConstKHR, indexStride : VkDeviceSize, baseTriangle : uint32, usageCountsCount : uint32, pUsageCounts : nativeptr, ppUsageCounts : nativeptr>, micromap : EXTOpacityMicromap.VkMicromapEXT) = + { + sType = 1000397002u + pNext = pNext + displacementBiasAndScaleFormat = displacementBiasAndScaleFormat + displacementVectorFormat = displacementVectorFormat + displacementBiasAndScaleBuffer = displacementBiasAndScaleBuffer + displacementBiasAndScaleStride = displacementBiasAndScaleStride + displacementVectorBuffer = displacementVectorBuffer + displacementVectorStride = displacementVectorStride + displacedMicromapPrimitiveFlags = displacedMicromapPrimitiveFlags + displacedMicromapPrimitiveFlagsStride = displacedMicromapPrimitiveFlagsStride + indexType = indexType + indexBuffer = indexBuffer + indexStride = indexStride + baseTriangle = baseTriangle + usageCountsCount = usageCountsCount + pUsageCounts = pUsageCounts + ppUsageCounts = ppUsageCounts + micromap = micromap + } + + new(displacementBiasAndScaleFormat : VkFormat, displacementVectorFormat : VkFormat, displacementBiasAndScaleBuffer : KHRAccelerationStructure.VkDeviceOrHostAddressConstKHR, displacementBiasAndScaleStride : VkDeviceSize, displacementVectorBuffer : KHRAccelerationStructure.VkDeviceOrHostAddressConstKHR, displacementVectorStride : VkDeviceSize, displacedMicromapPrimitiveFlags : KHRAccelerationStructure.VkDeviceOrHostAddressConstKHR, displacedMicromapPrimitiveFlagsStride : VkDeviceSize, indexType : VkIndexType, indexBuffer : KHRAccelerationStructure.VkDeviceOrHostAddressConstKHR, indexStride : VkDeviceSize, baseTriangle : uint32, usageCountsCount : uint32, pUsageCounts : nativeptr, ppUsageCounts : nativeptr>, micromap : EXTOpacityMicromap.VkMicromapEXT) = + VkAccelerationStructureTrianglesDisplacementMicromapNV(Unchecked.defaultof, displacementBiasAndScaleFormat, displacementVectorFormat, displacementBiasAndScaleBuffer, displacementBiasAndScaleStride, displacementVectorBuffer, displacementVectorStride, displacedMicromapPrimitiveFlags, displacedMicromapPrimitiveFlagsStride, indexType, indexBuffer, indexStride, baseTriangle, usageCountsCount, pUsageCounts, ppUsageCounts, micromap) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.displacementBiasAndScaleFormat = Unchecked.defaultof && x.displacementVectorFormat = Unchecked.defaultof && x.displacementBiasAndScaleBuffer = Unchecked.defaultof && x.displacementBiasAndScaleStride = Unchecked.defaultof && x.displacementVectorBuffer = Unchecked.defaultof && x.displacementVectorStride = Unchecked.defaultof && x.displacedMicromapPrimitiveFlags = Unchecked.defaultof && x.displacedMicromapPrimitiveFlagsStride = Unchecked.defaultof && x.indexType = Unchecked.defaultof && x.indexBuffer = Unchecked.defaultof && x.indexStride = Unchecked.defaultof && x.baseTriangle = Unchecked.defaultof && x.usageCountsCount = Unchecked.defaultof && x.pUsageCounts = Unchecked.defaultof> && x.ppUsageCounts = Unchecked.defaultof>> && x.micromap = Unchecked.defaultof + + static member Empty = + VkAccelerationStructureTrianglesDisplacementMicromapNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof>>, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "displacementBiasAndScaleFormat = %A" x.displacementBiasAndScaleFormat + sprintf "displacementVectorFormat = %A" x.displacementVectorFormat + sprintf "displacementBiasAndScaleBuffer = %A" x.displacementBiasAndScaleBuffer + sprintf "displacementBiasAndScaleStride = %A" x.displacementBiasAndScaleStride + sprintf "displacementVectorBuffer = %A" x.displacementVectorBuffer + sprintf "displacementVectorStride = %A" x.displacementVectorStride + sprintf "displacedMicromapPrimitiveFlags = %A" x.displacedMicromapPrimitiveFlags + sprintf "displacedMicromapPrimitiveFlagsStride = %A" x.displacedMicromapPrimitiveFlagsStride + sprintf "indexType = %A" x.indexType + sprintf "indexBuffer = %A" x.indexBuffer + sprintf "indexStride = %A" x.indexStride + sprintf "baseTriangle = %A" x.baseTriangle + sprintf "usageCountsCount = %A" x.usageCountsCount + sprintf "pUsageCounts = %A" x.pUsageCounts + sprintf "ppUsageCounts = %A" x.ppUsageCounts + sprintf "micromap = %A" x.micromap + ] |> sprintf "VkAccelerationStructureTrianglesDisplacementMicromapNV { %s }" + end + + [] + type VkPhysicalDeviceDisplacementMicromapFeaturesNV = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public displacementMicromap : VkBool32 + + new(pNext : nativeint, displacementMicromap : VkBool32) = + { + sType = 1000397000u + pNext = pNext + displacementMicromap = displacementMicromap + } + + new(displacementMicromap : VkBool32) = + VkPhysicalDeviceDisplacementMicromapFeaturesNV(Unchecked.defaultof, displacementMicromap) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.displacementMicromap = Unchecked.defaultof + + static member Empty = + VkPhysicalDeviceDisplacementMicromapFeaturesNV(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "displacementMicromap = %A" x.displacementMicromap + ] |> sprintf "VkPhysicalDeviceDisplacementMicromapFeaturesNV { %s }" + end + + [] + type VkPhysicalDeviceDisplacementMicromapPropertiesNV = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public maxDisplacementMicromapSubdivisionLevel : uint32 + + new(pNext : nativeint, maxDisplacementMicromapSubdivisionLevel : uint32) = + { + sType = 1000397001u + pNext = pNext + maxDisplacementMicromapSubdivisionLevel = maxDisplacementMicromapSubdivisionLevel + } + + new(maxDisplacementMicromapSubdivisionLevel : uint32) = + VkPhysicalDeviceDisplacementMicromapPropertiesNV(Unchecked.defaultof, maxDisplacementMicromapSubdivisionLevel) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.maxDisplacementMicromapSubdivisionLevel = Unchecked.defaultof + + static member Empty = + VkPhysicalDeviceDisplacementMicromapPropertiesNV(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "maxDisplacementMicromapSubdivisionLevel = %A" x.maxDisplacementMicromapSubdivisionLevel + ] |> sprintf "VkPhysicalDeviceDisplacementMicromapPropertiesNV { %s }" + end + + + [] + module EnumExtensions = + type KHRAccelerationStructure.VkBuildAccelerationStructureFlagsKHR with + static member inline AllowDisplacementMicromapUpdateNv = unbox 0x00000200 + type EXTOpacityMicromap.VkMicromapTypeEXT with + static member inline DisplacementMicromapNv = unbox 1000397000 + type VkPipelineCreateFlags with + static member inline RayTracingDisplacementMicromapBitNv = unbox 0x10000000 + + +/// Requires ((((KHRGetPhysicalDeviceProperties2 | Vulkan11), KHRBufferDeviceAddress, EXTDescriptorIndexing) | Vulkan12), KHRSynchronization2) | Vulkan13. +module EXTDescriptorBuffer = + let Type = ExtensionType.Device + let Name = "VK_EXT_descriptor_buffer" + let Number = 317 + + [] + type VkBufferCaptureDescriptorDataInfoEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public buffer : VkBuffer + + new(pNext : nativeint, buffer : VkBuffer) = + { + sType = 1000316005u + pNext = pNext + buffer = buffer + } + + new(buffer : VkBuffer) = + VkBufferCaptureDescriptorDataInfoEXT(Unchecked.defaultof, buffer) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.buffer = Unchecked.defaultof + + static member Empty = + VkBufferCaptureDescriptorDataInfoEXT(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "buffer = %A" x.buffer + ] |> sprintf "VkBufferCaptureDescriptorDataInfoEXT { %s }" + end + + [] + type VkDescriptorAddressInfoEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public address : VkDeviceAddress + val mutable public range : VkDeviceSize + val mutable public format : VkFormat + + new(pNext : nativeint, address : VkDeviceAddress, range : VkDeviceSize, format : VkFormat) = + { + sType = 1000316003u + pNext = pNext + address = address + range = range + format = format + } + + new(address : VkDeviceAddress, range : VkDeviceSize, format : VkFormat) = + VkDescriptorAddressInfoEXT(Unchecked.defaultof, address, range, format) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.address = Unchecked.defaultof && x.range = Unchecked.defaultof && x.format = Unchecked.defaultof + + static member Empty = + VkDescriptorAddressInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "address = %A" x.address + sprintf "range = %A" x.range + sprintf "format = %A" x.format + ] |> sprintf "VkDescriptorAddressInfoEXT { %s }" + end + + [] + type VkDescriptorBufferBindingInfoEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public address : VkDeviceAddress + val mutable public usage : VkBufferUsageFlags + + new(pNext : nativeint, address : VkDeviceAddress, usage : VkBufferUsageFlags) = + { + sType = 1000316011u + pNext = pNext + address = address + usage = usage + } + + new(address : VkDeviceAddress, usage : VkBufferUsageFlags) = + VkDescriptorBufferBindingInfoEXT(Unchecked.defaultof, address, usage) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.address = Unchecked.defaultof && x.usage = Unchecked.defaultof + + static member Empty = + VkDescriptorBufferBindingInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "address = %A" x.address + sprintf "usage = %A" x.usage + ] |> sprintf "VkDescriptorBufferBindingInfoEXT { %s }" + end + + [] + type VkDescriptorBufferBindingPushDescriptorBufferHandleEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public buffer : VkBuffer + + new(pNext : nativeint, buffer : VkBuffer) = + { + sType = 1000316012u + pNext = pNext + buffer = buffer + } + + new(buffer : VkBuffer) = + VkDescriptorBufferBindingPushDescriptorBufferHandleEXT(Unchecked.defaultof, buffer) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.buffer = Unchecked.defaultof + + static member Empty = + VkDescriptorBufferBindingPushDescriptorBufferHandleEXT(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "buffer = %A" x.buffer + ] |> sprintf "VkDescriptorBufferBindingPushDescriptorBufferHandleEXT { %s }" + end + + [] + type VkDescriptorDataEXT = + struct + [] + val mutable public pSampler : nativeptr + [] + val mutable public pCombinedImageSampler : nativeptr + [] + val mutable public pInputAttachmentImage : nativeptr + [] + val mutable public pSampledImage : nativeptr + [] + val mutable public pStorageImage : nativeptr + [] + val mutable public pUniformTexelBuffer : nativeptr + [] + val mutable public pStorageTexelBuffer : nativeptr + [] + val mutable public pUniformBuffer : nativeptr + [] + val mutable public pStorageBuffer : nativeptr + [] + val mutable public accelerationStructure : VkDeviceAddress + + static member PSampler(value : nativeptr) = + let mutable result = Unchecked.defaultof + result.pSampler <- value + result + + static member PCombinedImageSampler(value : nativeptr) = + let mutable result = Unchecked.defaultof + result.pCombinedImageSampler <- value + result + + static member PInputAttachmentImage(value : nativeptr) = + let mutable result = Unchecked.defaultof + result.pInputAttachmentImage <- value + result + + static member PSampledImage(value : nativeptr) = + let mutable result = Unchecked.defaultof + result.pSampledImage <- value + result + + static member PStorageImage(value : nativeptr) = + let mutable result = Unchecked.defaultof + result.pStorageImage <- value + result + + static member PUniformTexelBuffer(value : nativeptr) = + let mutable result = Unchecked.defaultof + result.pUniformTexelBuffer <- value + result + + static member PStorageTexelBuffer(value : nativeptr) = + let mutable result = Unchecked.defaultof + result.pStorageTexelBuffer <- value + result + + static member PUniformBuffer(value : nativeptr) = + let mutable result = Unchecked.defaultof + result.pUniformBuffer <- value + result + + static member PStorageBuffer(value : nativeptr) = + let mutable result = Unchecked.defaultof + result.pStorageBuffer <- value + result + + static member AccelerationStructure(value : VkDeviceAddress) = + let mutable result = Unchecked.defaultof + result.accelerationStructure <- value + result + + override x.ToString() = + String.concat "; " [ + sprintf "pSampler = %A" x.pSampler + sprintf "pCombinedImageSampler = %A" x.pCombinedImageSampler + sprintf "pInputAttachmentImage = %A" x.pInputAttachmentImage + sprintf "pSampledImage = %A" x.pSampledImage + sprintf "pStorageImage = %A" x.pStorageImage + sprintf "pUniformTexelBuffer = %A" x.pUniformTexelBuffer + sprintf "pStorageTexelBuffer = %A" x.pStorageTexelBuffer + sprintf "pUniformBuffer = %A" x.pUniformBuffer + sprintf "pStorageBuffer = %A" x.pStorageBuffer + sprintf "accelerationStructure = %A" x.accelerationStructure + ] |> sprintf "VkDescriptorDataEXT { %s }" + end + + [] + type VkDescriptorGetInfoEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public _type : VkDescriptorType + val mutable public data : VkDescriptorDataEXT + + new(pNext : nativeint, _type : VkDescriptorType, data : VkDescriptorDataEXT) = + { + sType = 1000316004u + pNext = pNext + _type = _type + data = data + } + + new(_type : VkDescriptorType, data : VkDescriptorDataEXT) = + VkDescriptorGetInfoEXT(Unchecked.defaultof, _type, data) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x._type = Unchecked.defaultof && x.data = Unchecked.defaultof + + static member Empty = + VkDescriptorGetInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "_type = %A" x._type + sprintf "data = %A" x.data + ] |> sprintf "VkDescriptorGetInfoEXT { %s }" + end + + [] + type VkImageCaptureDescriptorDataInfoEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public image : VkImage + + new(pNext : nativeint, image : VkImage) = + { + sType = 1000316006u + pNext = pNext + image = image + } + + new(image : VkImage) = + VkImageCaptureDescriptorDataInfoEXT(Unchecked.defaultof, image) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.image = Unchecked.defaultof + + static member Empty = + VkImageCaptureDescriptorDataInfoEXT(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "image = %A" x.image + ] |> sprintf "VkImageCaptureDescriptorDataInfoEXT { %s }" + end + + [] + type VkImageViewCaptureDescriptorDataInfoEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public imageView : VkImageView + + new(pNext : nativeint, imageView : VkImageView) = + { + sType = 1000316007u + pNext = pNext + imageView = imageView + } + + new(imageView : VkImageView) = + VkImageViewCaptureDescriptorDataInfoEXT(Unchecked.defaultof, imageView) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.imageView = Unchecked.defaultof + + static member Empty = + VkImageViewCaptureDescriptorDataInfoEXT(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "imageView = %A" x.imageView + ] |> sprintf "VkImageViewCaptureDescriptorDataInfoEXT { %s }" + end + + [] + type VkOpaqueCaptureDescriptorDataCreateInfoEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public opaqueCaptureDescriptorData : nativeint + + new(pNext : nativeint, opaqueCaptureDescriptorData : nativeint) = + { + sType = 1000316010u + pNext = pNext + opaqueCaptureDescriptorData = opaqueCaptureDescriptorData + } + + new(opaqueCaptureDescriptorData : nativeint) = + VkOpaqueCaptureDescriptorDataCreateInfoEXT(Unchecked.defaultof, opaqueCaptureDescriptorData) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.opaqueCaptureDescriptorData = Unchecked.defaultof + + static member Empty = + VkOpaqueCaptureDescriptorDataCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "opaqueCaptureDescriptorData = %A" x.opaqueCaptureDescriptorData + ] |> sprintf "VkOpaqueCaptureDescriptorDataCreateInfoEXT { %s }" + end + + [] + type VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public combinedImageSamplerDensityMapDescriptorSize : uint64 + + new(pNext : nativeint, combinedImageSamplerDensityMapDescriptorSize : uint64) = + { + sType = 1000316001u + pNext = pNext + combinedImageSamplerDensityMapDescriptorSize = combinedImageSamplerDensityMapDescriptorSize + } + + new(combinedImageSamplerDensityMapDescriptorSize : uint64) = + VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT(Unchecked.defaultof, combinedImageSamplerDensityMapDescriptorSize) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.combinedImageSamplerDensityMapDescriptorSize = Unchecked.defaultof + + static member Empty = + VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "combinedImageSamplerDensityMapDescriptorSize = %A" x.combinedImageSamplerDensityMapDescriptorSize + ] |> sprintf "VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT { %s }" + end + + [] + type VkPhysicalDeviceDescriptorBufferFeaturesEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public descriptorBuffer : VkBool32 + val mutable public descriptorBufferCaptureReplay : VkBool32 + val mutable public descriptorBufferImageLayoutIgnored : VkBool32 + val mutable public descriptorBufferPushDescriptors : VkBool32 + + new(pNext : nativeint, descriptorBuffer : VkBool32, descriptorBufferCaptureReplay : VkBool32, descriptorBufferImageLayoutIgnored : VkBool32, descriptorBufferPushDescriptors : VkBool32) = + { + sType = 1000316002u + pNext = pNext + descriptorBuffer = descriptorBuffer + descriptorBufferCaptureReplay = descriptorBufferCaptureReplay + descriptorBufferImageLayoutIgnored = descriptorBufferImageLayoutIgnored + descriptorBufferPushDescriptors = descriptorBufferPushDescriptors + } + + new(descriptorBuffer : VkBool32, descriptorBufferCaptureReplay : VkBool32, descriptorBufferImageLayoutIgnored : VkBool32, descriptorBufferPushDescriptors : VkBool32) = + VkPhysicalDeviceDescriptorBufferFeaturesEXT(Unchecked.defaultof, descriptorBuffer, descriptorBufferCaptureReplay, descriptorBufferImageLayoutIgnored, descriptorBufferPushDescriptors) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.descriptorBuffer = Unchecked.defaultof && x.descriptorBufferCaptureReplay = Unchecked.defaultof && x.descriptorBufferImageLayoutIgnored = Unchecked.defaultof && x.descriptorBufferPushDescriptors = Unchecked.defaultof + + static member Empty = + VkPhysicalDeviceDescriptorBufferFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "descriptorBuffer = %A" x.descriptorBuffer + sprintf "descriptorBufferCaptureReplay = %A" x.descriptorBufferCaptureReplay + sprintf "descriptorBufferImageLayoutIgnored = %A" x.descriptorBufferImageLayoutIgnored + sprintf "descriptorBufferPushDescriptors = %A" x.descriptorBufferPushDescriptors + ] |> sprintf "VkPhysicalDeviceDescriptorBufferFeaturesEXT { %s }" + end + + [] + type VkPhysicalDeviceDescriptorBufferPropertiesEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public combinedImageSamplerDescriptorSingleArray : VkBool32 + val mutable public bufferlessPushDescriptors : VkBool32 + val mutable public allowSamplerImageViewPostSubmitCreation : VkBool32 + val mutable public descriptorBufferOffsetAlignment : VkDeviceSize + val mutable public maxDescriptorBufferBindings : uint32 + val mutable public maxResourceDescriptorBufferBindings : uint32 + val mutable public maxSamplerDescriptorBufferBindings : uint32 + val mutable public maxEmbeddedImmutableSamplerBindings : uint32 + val mutable public maxEmbeddedImmutableSamplers : uint32 + val mutable public bufferCaptureReplayDescriptorDataSize : uint64 + val mutable public imageCaptureReplayDescriptorDataSize : uint64 + val mutable public imageViewCaptureReplayDescriptorDataSize : uint64 + val mutable public samplerCaptureReplayDescriptorDataSize : uint64 + val mutable public accelerationStructureCaptureReplayDescriptorDataSize : uint64 + val mutable public samplerDescriptorSize : uint64 + val mutable public combinedImageSamplerDescriptorSize : uint64 + val mutable public sampledImageDescriptorSize : uint64 + val mutable public storageImageDescriptorSize : uint64 + val mutable public uniformTexelBufferDescriptorSize : uint64 + val mutable public robustUniformTexelBufferDescriptorSize : uint64 + val mutable public storageTexelBufferDescriptorSize : uint64 + val mutable public robustStorageTexelBufferDescriptorSize : uint64 + val mutable public uniformBufferDescriptorSize : uint64 + val mutable public robustUniformBufferDescriptorSize : uint64 + val mutable public storageBufferDescriptorSize : uint64 + val mutable public robustStorageBufferDescriptorSize : uint64 + val mutable public inputAttachmentDescriptorSize : uint64 + val mutable public accelerationStructureDescriptorSize : uint64 + val mutable public maxSamplerDescriptorBufferRange : VkDeviceSize + val mutable public maxResourceDescriptorBufferRange : VkDeviceSize + val mutable public samplerDescriptorBufferAddressSpaceSize : VkDeviceSize + val mutable public resourceDescriptorBufferAddressSpaceSize : VkDeviceSize + val mutable public descriptorBufferAddressSpaceSize : VkDeviceSize + + new(pNext : nativeint, combinedImageSamplerDescriptorSingleArray : VkBool32, bufferlessPushDescriptors : VkBool32, allowSamplerImageViewPostSubmitCreation : VkBool32, descriptorBufferOffsetAlignment : VkDeviceSize, maxDescriptorBufferBindings : uint32, maxResourceDescriptorBufferBindings : uint32, maxSamplerDescriptorBufferBindings : uint32, maxEmbeddedImmutableSamplerBindings : uint32, maxEmbeddedImmutableSamplers : uint32, bufferCaptureReplayDescriptorDataSize : uint64, imageCaptureReplayDescriptorDataSize : uint64, imageViewCaptureReplayDescriptorDataSize : uint64, samplerCaptureReplayDescriptorDataSize : uint64, accelerationStructureCaptureReplayDescriptorDataSize : uint64, samplerDescriptorSize : uint64, combinedImageSamplerDescriptorSize : uint64, sampledImageDescriptorSize : uint64, storageImageDescriptorSize : uint64, uniformTexelBufferDescriptorSize : uint64, robustUniformTexelBufferDescriptorSize : uint64, storageTexelBufferDescriptorSize : uint64, robustStorageTexelBufferDescriptorSize : uint64, uniformBufferDescriptorSize : uint64, robustUniformBufferDescriptorSize : uint64, storageBufferDescriptorSize : uint64, robustStorageBufferDescriptorSize : uint64, inputAttachmentDescriptorSize : uint64, accelerationStructureDescriptorSize : uint64, maxSamplerDescriptorBufferRange : VkDeviceSize, maxResourceDescriptorBufferRange : VkDeviceSize, samplerDescriptorBufferAddressSpaceSize : VkDeviceSize, resourceDescriptorBufferAddressSpaceSize : VkDeviceSize, descriptorBufferAddressSpaceSize : VkDeviceSize) = + { + sType = 1000316000u + pNext = pNext + combinedImageSamplerDescriptorSingleArray = combinedImageSamplerDescriptorSingleArray + bufferlessPushDescriptors = bufferlessPushDescriptors + allowSamplerImageViewPostSubmitCreation = allowSamplerImageViewPostSubmitCreation + descriptorBufferOffsetAlignment = descriptorBufferOffsetAlignment + maxDescriptorBufferBindings = maxDescriptorBufferBindings + maxResourceDescriptorBufferBindings = maxResourceDescriptorBufferBindings + maxSamplerDescriptorBufferBindings = maxSamplerDescriptorBufferBindings + maxEmbeddedImmutableSamplerBindings = maxEmbeddedImmutableSamplerBindings + maxEmbeddedImmutableSamplers = maxEmbeddedImmutableSamplers + bufferCaptureReplayDescriptorDataSize = bufferCaptureReplayDescriptorDataSize + imageCaptureReplayDescriptorDataSize = imageCaptureReplayDescriptorDataSize + imageViewCaptureReplayDescriptorDataSize = imageViewCaptureReplayDescriptorDataSize + samplerCaptureReplayDescriptorDataSize = samplerCaptureReplayDescriptorDataSize + accelerationStructureCaptureReplayDescriptorDataSize = accelerationStructureCaptureReplayDescriptorDataSize + samplerDescriptorSize = samplerDescriptorSize + combinedImageSamplerDescriptorSize = combinedImageSamplerDescriptorSize + sampledImageDescriptorSize = sampledImageDescriptorSize + storageImageDescriptorSize = storageImageDescriptorSize + uniformTexelBufferDescriptorSize = uniformTexelBufferDescriptorSize + robustUniformTexelBufferDescriptorSize = robustUniformTexelBufferDescriptorSize + storageTexelBufferDescriptorSize = storageTexelBufferDescriptorSize + robustStorageTexelBufferDescriptorSize = robustStorageTexelBufferDescriptorSize + uniformBufferDescriptorSize = uniformBufferDescriptorSize + robustUniformBufferDescriptorSize = robustUniformBufferDescriptorSize + storageBufferDescriptorSize = storageBufferDescriptorSize + robustStorageBufferDescriptorSize = robustStorageBufferDescriptorSize + inputAttachmentDescriptorSize = inputAttachmentDescriptorSize + accelerationStructureDescriptorSize = accelerationStructureDescriptorSize + maxSamplerDescriptorBufferRange = maxSamplerDescriptorBufferRange + maxResourceDescriptorBufferRange = maxResourceDescriptorBufferRange + samplerDescriptorBufferAddressSpaceSize = samplerDescriptorBufferAddressSpaceSize + resourceDescriptorBufferAddressSpaceSize = resourceDescriptorBufferAddressSpaceSize + descriptorBufferAddressSpaceSize = descriptorBufferAddressSpaceSize + } + + new(combinedImageSamplerDescriptorSingleArray : VkBool32, bufferlessPushDescriptors : VkBool32, allowSamplerImageViewPostSubmitCreation : VkBool32, descriptorBufferOffsetAlignment : VkDeviceSize, maxDescriptorBufferBindings : uint32, maxResourceDescriptorBufferBindings : uint32, maxSamplerDescriptorBufferBindings : uint32, maxEmbeddedImmutableSamplerBindings : uint32, maxEmbeddedImmutableSamplers : uint32, bufferCaptureReplayDescriptorDataSize : uint64, imageCaptureReplayDescriptorDataSize : uint64, imageViewCaptureReplayDescriptorDataSize : uint64, samplerCaptureReplayDescriptorDataSize : uint64, accelerationStructureCaptureReplayDescriptorDataSize : uint64, samplerDescriptorSize : uint64, combinedImageSamplerDescriptorSize : uint64, sampledImageDescriptorSize : uint64, storageImageDescriptorSize : uint64, uniformTexelBufferDescriptorSize : uint64, robustUniformTexelBufferDescriptorSize : uint64, storageTexelBufferDescriptorSize : uint64, robustStorageTexelBufferDescriptorSize : uint64, uniformBufferDescriptorSize : uint64, robustUniformBufferDescriptorSize : uint64, storageBufferDescriptorSize : uint64, robustStorageBufferDescriptorSize : uint64, inputAttachmentDescriptorSize : uint64, accelerationStructureDescriptorSize : uint64, maxSamplerDescriptorBufferRange : VkDeviceSize, maxResourceDescriptorBufferRange : VkDeviceSize, samplerDescriptorBufferAddressSpaceSize : VkDeviceSize, resourceDescriptorBufferAddressSpaceSize : VkDeviceSize, descriptorBufferAddressSpaceSize : VkDeviceSize) = + VkPhysicalDeviceDescriptorBufferPropertiesEXT(Unchecked.defaultof, combinedImageSamplerDescriptorSingleArray, bufferlessPushDescriptors, allowSamplerImageViewPostSubmitCreation, descriptorBufferOffsetAlignment, maxDescriptorBufferBindings, maxResourceDescriptorBufferBindings, maxSamplerDescriptorBufferBindings, maxEmbeddedImmutableSamplerBindings, maxEmbeddedImmutableSamplers, bufferCaptureReplayDescriptorDataSize, imageCaptureReplayDescriptorDataSize, imageViewCaptureReplayDescriptorDataSize, samplerCaptureReplayDescriptorDataSize, accelerationStructureCaptureReplayDescriptorDataSize, samplerDescriptorSize, combinedImageSamplerDescriptorSize, sampledImageDescriptorSize, storageImageDescriptorSize, uniformTexelBufferDescriptorSize, robustUniformTexelBufferDescriptorSize, storageTexelBufferDescriptorSize, robustStorageTexelBufferDescriptorSize, uniformBufferDescriptorSize, robustUniformBufferDescriptorSize, storageBufferDescriptorSize, robustStorageBufferDescriptorSize, inputAttachmentDescriptorSize, accelerationStructureDescriptorSize, maxSamplerDescriptorBufferRange, maxResourceDescriptorBufferRange, samplerDescriptorBufferAddressSpaceSize, resourceDescriptorBufferAddressSpaceSize, descriptorBufferAddressSpaceSize) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.combinedImageSamplerDescriptorSingleArray = Unchecked.defaultof && x.bufferlessPushDescriptors = Unchecked.defaultof && x.allowSamplerImageViewPostSubmitCreation = Unchecked.defaultof && x.descriptorBufferOffsetAlignment = Unchecked.defaultof && x.maxDescriptorBufferBindings = Unchecked.defaultof && x.maxResourceDescriptorBufferBindings = Unchecked.defaultof && x.maxSamplerDescriptorBufferBindings = Unchecked.defaultof && x.maxEmbeddedImmutableSamplerBindings = Unchecked.defaultof && x.maxEmbeddedImmutableSamplers = Unchecked.defaultof && x.bufferCaptureReplayDescriptorDataSize = Unchecked.defaultof && x.imageCaptureReplayDescriptorDataSize = Unchecked.defaultof && x.imageViewCaptureReplayDescriptorDataSize = Unchecked.defaultof && x.samplerCaptureReplayDescriptorDataSize = Unchecked.defaultof && x.accelerationStructureCaptureReplayDescriptorDataSize = Unchecked.defaultof && x.samplerDescriptorSize = Unchecked.defaultof && x.combinedImageSamplerDescriptorSize = Unchecked.defaultof && x.sampledImageDescriptorSize = Unchecked.defaultof && x.storageImageDescriptorSize = Unchecked.defaultof && x.uniformTexelBufferDescriptorSize = Unchecked.defaultof && x.robustUniformTexelBufferDescriptorSize = Unchecked.defaultof && x.storageTexelBufferDescriptorSize = Unchecked.defaultof && x.robustStorageTexelBufferDescriptorSize = Unchecked.defaultof && x.uniformBufferDescriptorSize = Unchecked.defaultof && x.robustUniformBufferDescriptorSize = Unchecked.defaultof && x.storageBufferDescriptorSize = Unchecked.defaultof && x.robustStorageBufferDescriptorSize = Unchecked.defaultof && x.inputAttachmentDescriptorSize = Unchecked.defaultof && x.accelerationStructureDescriptorSize = Unchecked.defaultof && x.maxSamplerDescriptorBufferRange = Unchecked.defaultof && x.maxResourceDescriptorBufferRange = Unchecked.defaultof && x.samplerDescriptorBufferAddressSpaceSize = Unchecked.defaultof && x.resourceDescriptorBufferAddressSpaceSize = Unchecked.defaultof && x.descriptorBufferAddressSpaceSize = Unchecked.defaultof + + static member Empty = + VkPhysicalDeviceDescriptorBufferPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "combinedImageSamplerDescriptorSingleArray = %A" x.combinedImageSamplerDescriptorSingleArray + sprintf "bufferlessPushDescriptors = %A" x.bufferlessPushDescriptors + sprintf "allowSamplerImageViewPostSubmitCreation = %A" x.allowSamplerImageViewPostSubmitCreation + sprintf "descriptorBufferOffsetAlignment = %A" x.descriptorBufferOffsetAlignment + sprintf "maxDescriptorBufferBindings = %A" x.maxDescriptorBufferBindings + sprintf "maxResourceDescriptorBufferBindings = %A" x.maxResourceDescriptorBufferBindings + sprintf "maxSamplerDescriptorBufferBindings = %A" x.maxSamplerDescriptorBufferBindings + sprintf "maxEmbeddedImmutableSamplerBindings = %A" x.maxEmbeddedImmutableSamplerBindings + sprintf "maxEmbeddedImmutableSamplers = %A" x.maxEmbeddedImmutableSamplers + sprintf "bufferCaptureReplayDescriptorDataSize = %A" x.bufferCaptureReplayDescriptorDataSize + sprintf "imageCaptureReplayDescriptorDataSize = %A" x.imageCaptureReplayDescriptorDataSize + sprintf "imageViewCaptureReplayDescriptorDataSize = %A" x.imageViewCaptureReplayDescriptorDataSize + sprintf "samplerCaptureReplayDescriptorDataSize = %A" x.samplerCaptureReplayDescriptorDataSize + sprintf "accelerationStructureCaptureReplayDescriptorDataSize = %A" x.accelerationStructureCaptureReplayDescriptorDataSize + sprintf "samplerDescriptorSize = %A" x.samplerDescriptorSize + sprintf "combinedImageSamplerDescriptorSize = %A" x.combinedImageSamplerDescriptorSize + sprintf "sampledImageDescriptorSize = %A" x.sampledImageDescriptorSize + sprintf "storageImageDescriptorSize = %A" x.storageImageDescriptorSize + sprintf "uniformTexelBufferDescriptorSize = %A" x.uniformTexelBufferDescriptorSize + sprintf "robustUniformTexelBufferDescriptorSize = %A" x.robustUniformTexelBufferDescriptorSize + sprintf "storageTexelBufferDescriptorSize = %A" x.storageTexelBufferDescriptorSize + sprintf "robustStorageTexelBufferDescriptorSize = %A" x.robustStorageTexelBufferDescriptorSize + sprintf "uniformBufferDescriptorSize = %A" x.uniformBufferDescriptorSize + sprintf "robustUniformBufferDescriptorSize = %A" x.robustUniformBufferDescriptorSize + sprintf "storageBufferDescriptorSize = %A" x.storageBufferDescriptorSize + sprintf "robustStorageBufferDescriptorSize = %A" x.robustStorageBufferDescriptorSize + sprintf "inputAttachmentDescriptorSize = %A" x.inputAttachmentDescriptorSize + sprintf "accelerationStructureDescriptorSize = %A" x.accelerationStructureDescriptorSize + sprintf "maxSamplerDescriptorBufferRange = %A" x.maxSamplerDescriptorBufferRange + sprintf "maxResourceDescriptorBufferRange = %A" x.maxResourceDescriptorBufferRange + sprintf "samplerDescriptorBufferAddressSpaceSize = %A" x.samplerDescriptorBufferAddressSpaceSize + sprintf "resourceDescriptorBufferAddressSpaceSize = %A" x.resourceDescriptorBufferAddressSpaceSize + sprintf "descriptorBufferAddressSpaceSize = %A" x.descriptorBufferAddressSpaceSize + ] |> sprintf "VkPhysicalDeviceDescriptorBufferPropertiesEXT { %s }" + end + + [] + type VkSamplerCaptureDescriptorDataInfoEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public sampler : VkSampler + + new(pNext : nativeint, sampler : VkSampler) = + { + sType = 1000316008u + pNext = pNext + sampler = sampler + } + + new(sampler : VkSampler) = + VkSamplerCaptureDescriptorDataInfoEXT(Unchecked.defaultof, sampler) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.sampler = Unchecked.defaultof + + static member Empty = + VkSamplerCaptureDescriptorDataInfoEXT(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "sampler = %A" x.sampler + ] |> sprintf "VkSamplerCaptureDescriptorDataInfoEXT { %s }" + end + + + [] + module EnumExtensions = + type KHRAccelerationStructure.VkAccelerationStructureCreateFlagsKHR with + static member inline DescriptorBufferCaptureReplayBitExt = unbox 0x00000008 + type Vulkan13.VkAccessFlags2 with + static member inline Access2DescriptorBufferReadBitExt = unbox 0x00000200 + type VkBufferCreateFlags with + static member inline DescriptorBufferCaptureReplayBitExt = unbox 0x00000020 + type VkBufferUsageFlags with + static member inline SamplerDescriptorBufferBitExt = unbox 0x00200000 + static member inline ResourceDescriptorBufferBitExt = unbox 0x00400000 + static member inline PushDescriptorsDescriptorBufferBitExt = unbox 0x04000000 + type VkDescriptorSetLayoutCreateFlags with + static member inline DescriptorBufferBitExt = unbox 0x00000010 + static member inline EmbeddedImmutableSamplersBitExt = unbox 0x00000020 + type VkImageCreateFlags with + static member inline DescriptorBufferCaptureReplayBitExt = unbox 0x00010000 + type VkImageViewCreateFlags with + static member inline DescriptorBufferCaptureReplayBitExt = unbox 0x00000004 + type VkPipelineCreateFlags with + static member inline DescriptorBufferBitExt = unbox 0x20000000 + type VkSamplerCreateFlags with + static member inline DescriptorBufferCaptureReplayBitExt = unbox 0x00000008 + + module VkRaw = + [] + type VkGetDescriptorSetLayoutSizeEXTDel = delegate of VkDevice * VkDescriptorSetLayout * nativeptr -> unit + [] + type VkGetDescriptorSetLayoutBindingOffsetEXTDel = delegate of VkDevice * VkDescriptorSetLayout * uint32 * nativeptr -> unit + [] + type VkGetDescriptorEXTDel = delegate of VkDevice * nativeptr * uint64 * nativeint -> unit + [] + type VkCmdBindDescriptorBuffersEXTDel = delegate of VkCommandBuffer * uint32 * nativeptr -> unit + [] + type VkCmdSetDescriptorBufferOffsetsEXTDel = delegate of VkCommandBuffer * VkPipelineBindPoint * VkPipelineLayout * uint32 * uint32 * nativeptr * nativeptr -> unit + [] + type VkCmdBindDescriptorBufferEmbeddedSamplersEXTDel = delegate of VkCommandBuffer * VkPipelineBindPoint * VkPipelineLayout * uint32 -> unit + [] + type VkGetBufferOpaqueCaptureDescriptorDataEXTDel = delegate of VkDevice * nativeptr * nativeint -> VkResult + [] + type VkGetImageOpaqueCaptureDescriptorDataEXTDel = delegate of VkDevice * nativeptr * nativeint -> VkResult + [] + type VkGetImageViewOpaqueCaptureDescriptorDataEXTDel = delegate of VkDevice * nativeptr * nativeint -> VkResult + [] + type VkGetSamplerOpaqueCaptureDescriptorDataEXTDel = delegate of VkDevice * nativeptr * nativeint -> VkResult + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTDescriptorBuffer") + static let s_vkGetDescriptorSetLayoutSizeEXTDel = VkRaw.vkImportInstanceDelegate "vkGetDescriptorSetLayoutSizeEXT" + static let s_vkGetDescriptorSetLayoutBindingOffsetEXTDel = VkRaw.vkImportInstanceDelegate "vkGetDescriptorSetLayoutBindingOffsetEXT" + static let s_vkGetDescriptorEXTDel = VkRaw.vkImportInstanceDelegate "vkGetDescriptorEXT" + static let s_vkCmdBindDescriptorBuffersEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdBindDescriptorBuffersEXT" + static let s_vkCmdSetDescriptorBufferOffsetsEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetDescriptorBufferOffsetsEXT" + static let s_vkCmdBindDescriptorBufferEmbeddedSamplersEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdBindDescriptorBufferEmbeddedSamplersEXT" + static let s_vkGetBufferOpaqueCaptureDescriptorDataEXTDel = VkRaw.vkImportInstanceDelegate "vkGetBufferOpaqueCaptureDescriptorDataEXT" + static let s_vkGetImageOpaqueCaptureDescriptorDataEXTDel = VkRaw.vkImportInstanceDelegate "vkGetImageOpaqueCaptureDescriptorDataEXT" + static let s_vkGetImageViewOpaqueCaptureDescriptorDataEXTDel = VkRaw.vkImportInstanceDelegate "vkGetImageViewOpaqueCaptureDescriptorDataEXT" + static let s_vkGetSamplerOpaqueCaptureDescriptorDataEXTDel = VkRaw.vkImportInstanceDelegate "vkGetSamplerOpaqueCaptureDescriptorDataEXT" + static do Report.End(3) |> ignore + static member vkGetDescriptorSetLayoutSizeEXT = s_vkGetDescriptorSetLayoutSizeEXTDel + static member vkGetDescriptorSetLayoutBindingOffsetEXT = s_vkGetDescriptorSetLayoutBindingOffsetEXTDel + static member vkGetDescriptorEXT = s_vkGetDescriptorEXTDel + static member vkCmdBindDescriptorBuffersEXT = s_vkCmdBindDescriptorBuffersEXTDel + static member vkCmdSetDescriptorBufferOffsetsEXT = s_vkCmdSetDescriptorBufferOffsetsEXTDel + static member vkCmdBindDescriptorBufferEmbeddedSamplersEXT = s_vkCmdBindDescriptorBufferEmbeddedSamplersEXTDel + static member vkGetBufferOpaqueCaptureDescriptorDataEXT = s_vkGetBufferOpaqueCaptureDescriptorDataEXTDel + static member vkGetImageOpaqueCaptureDescriptorDataEXT = s_vkGetImageOpaqueCaptureDescriptorDataEXTDel + static member vkGetImageViewOpaqueCaptureDescriptorDataEXT = s_vkGetImageViewOpaqueCaptureDescriptorDataEXTDel + static member vkGetSamplerOpaqueCaptureDescriptorDataEXT = s_vkGetSamplerOpaqueCaptureDescriptorDataEXTDel + let vkGetDescriptorSetLayoutSizeEXT(device : VkDevice, layout : VkDescriptorSetLayout, pLayoutSizeInBytes : nativeptr) = Loader.vkGetDescriptorSetLayoutSizeEXT.Invoke(device, layout, pLayoutSizeInBytes) + let vkGetDescriptorSetLayoutBindingOffsetEXT(device : VkDevice, layout : VkDescriptorSetLayout, binding : uint32, pOffset : nativeptr) = Loader.vkGetDescriptorSetLayoutBindingOffsetEXT.Invoke(device, layout, binding, pOffset) + let vkGetDescriptorEXT(device : VkDevice, pDescriptorInfo : nativeptr, dataSize : uint64, pDescriptor : nativeint) = Loader.vkGetDescriptorEXT.Invoke(device, pDescriptorInfo, dataSize, pDescriptor) + let vkCmdBindDescriptorBuffersEXT(commandBuffer : VkCommandBuffer, bufferCount : uint32, pBindingInfos : nativeptr) = Loader.vkCmdBindDescriptorBuffersEXT.Invoke(commandBuffer, bufferCount, pBindingInfos) + let vkCmdSetDescriptorBufferOffsetsEXT(commandBuffer : VkCommandBuffer, pipelineBindPoint : VkPipelineBindPoint, layout : VkPipelineLayout, firstSet : uint32, setCount : uint32, pBufferIndices : nativeptr, pOffsets : nativeptr) = Loader.vkCmdSetDescriptorBufferOffsetsEXT.Invoke(commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets) + let vkCmdBindDescriptorBufferEmbeddedSamplersEXT(commandBuffer : VkCommandBuffer, pipelineBindPoint : VkPipelineBindPoint, layout : VkPipelineLayout, set : uint32) = Loader.vkCmdBindDescriptorBufferEmbeddedSamplersEXT.Invoke(commandBuffer, pipelineBindPoint, layout, set) + let vkGetBufferOpaqueCaptureDescriptorDataEXT(device : VkDevice, pInfo : nativeptr, pData : nativeint) = Loader.vkGetBufferOpaqueCaptureDescriptorDataEXT.Invoke(device, pInfo, pData) + let vkGetImageOpaqueCaptureDescriptorDataEXT(device : VkDevice, pInfo : nativeptr, pData : nativeint) = Loader.vkGetImageOpaqueCaptureDescriptorDataEXT.Invoke(device, pInfo, pData) + let vkGetImageViewOpaqueCaptureDescriptorDataEXT(device : VkDevice, pInfo : nativeptr, pData : nativeint) = Loader.vkGetImageViewOpaqueCaptureDescriptorDataEXT.Invoke(device, pInfo, pData) + let vkGetSamplerOpaqueCaptureDescriptorDataEXT(device : VkDevice, pInfo : nativeptr, pData : nativeint) = Loader.vkGetSamplerOpaqueCaptureDescriptorDataEXT.Invoke(device, pInfo, pData) + + [] + module ``KHRAccelerationStructure | NVRayTracing`` = + [] + type VkAccelerationStructureCaptureDescriptorDataInfoEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public accelerationStructure : KHRAccelerationStructure.VkAccelerationStructureKHR + val mutable public accelerationStructureNV : NVRayTracing.VkAccelerationStructureNV + + new(pNext : nativeint, accelerationStructure : KHRAccelerationStructure.VkAccelerationStructureKHR, accelerationStructureNV : NVRayTracing.VkAccelerationStructureNV) = + { + sType = 1000316009u + pNext = pNext + accelerationStructure = accelerationStructure + accelerationStructureNV = accelerationStructureNV + } + + new(accelerationStructure : KHRAccelerationStructure.VkAccelerationStructureKHR, accelerationStructureNV : NVRayTracing.VkAccelerationStructureNV) = + VkAccelerationStructureCaptureDescriptorDataInfoEXT(Unchecked.defaultof, accelerationStructure, accelerationStructureNV) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.accelerationStructure = Unchecked.defaultof && x.accelerationStructureNV = Unchecked.defaultof + + static member Empty = + VkAccelerationStructureCaptureDescriptorDataInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "accelerationStructure = %A" x.accelerationStructure + sprintf "accelerationStructureNV = %A" x.accelerationStructureNV + ] |> sprintf "VkAccelerationStructureCaptureDescriptorDataInfoEXT { %s }" + end + + + module VkRaw = + [] + type VkGetAccelerationStructureOpaqueCaptureDescriptorDataEXTDel = delegate of VkDevice * nativeptr * nativeint -> VkResult + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTDescriptorBuffer -> KHRAccelerationStructure | NVRayTracing") + static let s_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXTDel = VkRaw.vkImportInstanceDelegate "vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT" + static do Report.End(3) |> ignore + static member vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT = s_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXTDel + let vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(device : VkDevice, pInfo : nativeptr, pData : nativeint) = Loader.vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT.Invoke(device, pInfo, pData) + +/// Requires (Vulkan11, KHRSynchronization2) | Vulkan13. +module KHRVideoQueue = + let Type = ExtensionType.Device + let Name = "VK_KHR_video_queue" + let Number = 24 + + + [] + type VkVideoSessionKHR = + struct + val mutable public Handle : uint64 + new(h) = { Handle = h } + static member Null = VkVideoSessionKHR(0UL) + member x.IsNull = x.Handle = 0UL + member x.IsValid = x.Handle <> 0UL + end + + [] + type VkVideoSessionParametersKHR = + struct + val mutable public Handle : uint64 + new(h) = { Handle = h } + static member Null = VkVideoSessionParametersKHR(0UL) + member x.IsNull = x.Handle = 0UL + member x.IsValid = x.Handle <> 0UL + end + + [] + type VkVideoCodecOperationFlagsKHR = + | All = 0 + | None = 0 + + [] + type VkVideoChromaSubsamplingFlagsKHR = + | All = 15 + | Invalid = 0 + | MonochromeBit = 0x00000001 + | D420Bit = 0x00000002 + | D422Bit = 0x00000004 + | D444Bit = 0x00000008 + + [] + type VkVideoComponentBitDepthFlagsKHR = + | All = 21 + | Invalid = 0 + | D8Bit = 0x00000001 + | D10Bit = 0x00000004 + | D12Bit = 0x00000010 + + [] + type VkVideoCapabilityFlagsKHR = + | All = 3 + | None = 0 + | ProtectedContentBit = 0x00000001 + | SeparateReferenceImagesBit = 0x00000002 + + [] + type VkVideoSessionCreateFlagsKHR = + | All = 1 + | None = 0 + | ProtectedContentBit = 0x00000001 + + [] + type VkVideoCodingControlFlagsKHR = + | All = 1 + | None = 0 + | ResetBit = 0x00000001 + + type VkQueryResultStatusKHR = + | Error = -1 + | NotReady = 0 + | Complete = 1 + + + [] + type VkBindVideoSessionMemoryInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public memoryBindIndex : uint32 + val mutable public memory : VkDeviceMemory + val mutable public memoryOffset : VkDeviceSize + val mutable public memorySize : VkDeviceSize + + new(pNext : nativeint, memoryBindIndex : uint32, memory : VkDeviceMemory, memoryOffset : VkDeviceSize, memorySize : VkDeviceSize) = + { + sType = 1000023004u + pNext = pNext + memoryBindIndex = memoryBindIndex + memory = memory + memoryOffset = memoryOffset + memorySize = memorySize + } + + new(memoryBindIndex : uint32, memory : VkDeviceMemory, memoryOffset : VkDeviceSize, memorySize : VkDeviceSize) = + VkBindVideoSessionMemoryInfoKHR(Unchecked.defaultof, memoryBindIndex, memory, memoryOffset, memorySize) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.memoryBindIndex = Unchecked.defaultof && x.memory = Unchecked.defaultof && x.memoryOffset = Unchecked.defaultof && x.memorySize = Unchecked.defaultof + + static member Empty = + VkBindVideoSessionMemoryInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "memoryBindIndex = %A" x.memoryBindIndex + sprintf "memory = %A" x.memory + sprintf "memoryOffset = %A" x.memoryOffset + sprintf "memorySize = %A" x.memorySize + ] |> sprintf "VkBindVideoSessionMemoryInfoKHR { %s }" + end + + [] + type VkPhysicalDeviceVideoFormatInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public imageUsage : VkImageUsageFlags + + new(pNext : nativeint, imageUsage : VkImageUsageFlags) = + { + sType = 1000023014u + pNext = pNext + imageUsage = imageUsage + } + + new(imageUsage : VkImageUsageFlags) = + VkPhysicalDeviceVideoFormatInfoKHR(Unchecked.defaultof, imageUsage) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.imageUsage = Unchecked.defaultof + + static member Empty = + VkPhysicalDeviceVideoFormatInfoKHR(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "imageUsage = %A" x.imageUsage + ] |> sprintf "VkPhysicalDeviceVideoFormatInfoKHR { %s }" + end + + [] + type VkQueueFamilyQueryResultStatusPropertiesKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public queryResultStatusSupport : VkBool32 + + new(pNext : nativeint, queryResultStatusSupport : VkBool32) = + { + sType = 1000023016u + pNext = pNext + queryResultStatusSupport = queryResultStatusSupport + } + + new(queryResultStatusSupport : VkBool32) = + VkQueueFamilyQueryResultStatusPropertiesKHR(Unchecked.defaultof, queryResultStatusSupport) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.queryResultStatusSupport = Unchecked.defaultof + + static member Empty = + VkQueueFamilyQueryResultStatusPropertiesKHR(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "queryResultStatusSupport = %A" x.queryResultStatusSupport + ] |> sprintf "VkQueueFamilyQueryResultStatusPropertiesKHR { %s }" + end + + [] + type VkQueueFamilyVideoPropertiesKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public videoCodecOperations : VkVideoCodecOperationFlagsKHR + + new(pNext : nativeint, videoCodecOperations : VkVideoCodecOperationFlagsKHR) = + { + sType = 1000023012u + pNext = pNext + videoCodecOperations = videoCodecOperations + } + + new(videoCodecOperations : VkVideoCodecOperationFlagsKHR) = + VkQueueFamilyVideoPropertiesKHR(Unchecked.defaultof, videoCodecOperations) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.videoCodecOperations = Unchecked.defaultof + + static member Empty = + VkQueueFamilyVideoPropertiesKHR(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "videoCodecOperations = %A" x.videoCodecOperations + ] |> sprintf "VkQueueFamilyVideoPropertiesKHR { %s }" + end + + [] + type VkVideoPictureResourceInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public codedOffset : VkOffset2D + val mutable public codedExtent : VkExtent2D + val mutable public baseArrayLayer : uint32 + val mutable public imageViewBinding : VkImageView + + new(pNext : nativeint, codedOffset : VkOffset2D, codedExtent : VkExtent2D, baseArrayLayer : uint32, imageViewBinding : VkImageView) = + { + sType = 1000023002u + pNext = pNext + codedOffset = codedOffset + codedExtent = codedExtent + baseArrayLayer = baseArrayLayer + imageViewBinding = imageViewBinding + } + + new(codedOffset : VkOffset2D, codedExtent : VkExtent2D, baseArrayLayer : uint32, imageViewBinding : VkImageView) = + VkVideoPictureResourceInfoKHR(Unchecked.defaultof, codedOffset, codedExtent, baseArrayLayer, imageViewBinding) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.codedOffset = Unchecked.defaultof && x.codedExtent = Unchecked.defaultof && x.baseArrayLayer = Unchecked.defaultof && x.imageViewBinding = Unchecked.defaultof + + static member Empty = + VkVideoPictureResourceInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "codedOffset = %A" x.codedOffset + sprintf "codedExtent = %A" x.codedExtent + sprintf "baseArrayLayer = %A" x.baseArrayLayer + sprintf "imageViewBinding = %A" x.imageViewBinding + ] |> sprintf "VkVideoPictureResourceInfoKHR { %s }" + end + + [] + type VkVideoReferenceSlotInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public slotIndex : int32 + val mutable public pPictureResource : nativeptr + + new(pNext : nativeint, slotIndex : int32, pPictureResource : nativeptr) = + { + sType = 1000023011u + pNext = pNext + slotIndex = slotIndex + pPictureResource = pPictureResource + } + + new(slotIndex : int32, pPictureResource : nativeptr) = + VkVideoReferenceSlotInfoKHR(Unchecked.defaultof, slotIndex, pPictureResource) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.slotIndex = Unchecked.defaultof && x.pPictureResource = Unchecked.defaultof> + + static member Empty = + VkVideoReferenceSlotInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "slotIndex = %A" x.slotIndex + sprintf "pPictureResource = %A" x.pPictureResource + ] |> sprintf "VkVideoReferenceSlotInfoKHR { %s }" + end + + [] + type VkVideoBeginCodingInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public flags : VkVideoBeginCodingFlagsKHR + val mutable public videoSession : VkVideoSessionKHR + val mutable public videoSessionParameters : VkVideoSessionParametersKHR + val mutable public referenceSlotCount : uint32 + val mutable public pReferenceSlots : nativeptr + + new(pNext : nativeint, flags : VkVideoBeginCodingFlagsKHR, videoSession : VkVideoSessionKHR, videoSessionParameters : VkVideoSessionParametersKHR, referenceSlotCount : uint32, pReferenceSlots : nativeptr) = + { + sType = 1000023008u + pNext = pNext + flags = flags + videoSession = videoSession + videoSessionParameters = videoSessionParameters + referenceSlotCount = referenceSlotCount + pReferenceSlots = pReferenceSlots + } + + new(flags : VkVideoBeginCodingFlagsKHR, videoSession : VkVideoSessionKHR, videoSessionParameters : VkVideoSessionParametersKHR, referenceSlotCount : uint32, pReferenceSlots : nativeptr) = + VkVideoBeginCodingInfoKHR(Unchecked.defaultof, flags, videoSession, videoSessionParameters, referenceSlotCount, pReferenceSlots) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.videoSession = Unchecked.defaultof && x.videoSessionParameters = Unchecked.defaultof && x.referenceSlotCount = Unchecked.defaultof && x.pReferenceSlots = Unchecked.defaultof> + + static member Empty = + VkVideoBeginCodingInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "flags = %A" x.flags + sprintf "videoSession = %A" x.videoSession + sprintf "videoSessionParameters = %A" x.videoSessionParameters + sprintf "referenceSlotCount = %A" x.referenceSlotCount + sprintf "pReferenceSlots = %A" x.pReferenceSlots + ] |> sprintf "VkVideoBeginCodingInfoKHR { %s }" + end + + [] + type VkVideoCapabilitiesKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public flags : VkVideoCapabilityFlagsKHR + val mutable public minBitstreamBufferOffsetAlignment : VkDeviceSize + val mutable public minBitstreamBufferSizeAlignment : VkDeviceSize + val mutable public pictureAccessGranularity : VkExtent2D + val mutable public minCodedExtent : VkExtent2D + val mutable public maxCodedExtent : VkExtent2D + val mutable public maxDpbSlots : uint32 + val mutable public maxActiveReferencePictures : uint32 + val mutable public stdHeaderVersion : VkExtensionProperties + + new(pNext : nativeint, flags : VkVideoCapabilityFlagsKHR, minBitstreamBufferOffsetAlignment : VkDeviceSize, minBitstreamBufferSizeAlignment : VkDeviceSize, pictureAccessGranularity : VkExtent2D, minCodedExtent : VkExtent2D, maxCodedExtent : VkExtent2D, maxDpbSlots : uint32, maxActiveReferencePictures : uint32, stdHeaderVersion : VkExtensionProperties) = + { + sType = 1000023001u + pNext = pNext + flags = flags + minBitstreamBufferOffsetAlignment = minBitstreamBufferOffsetAlignment + minBitstreamBufferSizeAlignment = minBitstreamBufferSizeAlignment + pictureAccessGranularity = pictureAccessGranularity + minCodedExtent = minCodedExtent + maxCodedExtent = maxCodedExtent + maxDpbSlots = maxDpbSlots + maxActiveReferencePictures = maxActiveReferencePictures + stdHeaderVersion = stdHeaderVersion + } + + new(flags : VkVideoCapabilityFlagsKHR, minBitstreamBufferOffsetAlignment : VkDeviceSize, minBitstreamBufferSizeAlignment : VkDeviceSize, pictureAccessGranularity : VkExtent2D, minCodedExtent : VkExtent2D, maxCodedExtent : VkExtent2D, maxDpbSlots : uint32, maxActiveReferencePictures : uint32, stdHeaderVersion : VkExtensionProperties) = + VkVideoCapabilitiesKHR(Unchecked.defaultof, flags, minBitstreamBufferOffsetAlignment, minBitstreamBufferSizeAlignment, pictureAccessGranularity, minCodedExtent, maxCodedExtent, maxDpbSlots, maxActiveReferencePictures, stdHeaderVersion) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.minBitstreamBufferOffsetAlignment = Unchecked.defaultof && x.minBitstreamBufferSizeAlignment = Unchecked.defaultof && x.pictureAccessGranularity = Unchecked.defaultof && x.minCodedExtent = Unchecked.defaultof && x.maxCodedExtent = Unchecked.defaultof && x.maxDpbSlots = Unchecked.defaultof && x.maxActiveReferencePictures = Unchecked.defaultof && x.stdHeaderVersion = Unchecked.defaultof + + static member Empty = + VkVideoCapabilitiesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "flags = %A" x.flags + sprintf "minBitstreamBufferOffsetAlignment = %A" x.minBitstreamBufferOffsetAlignment + sprintf "minBitstreamBufferSizeAlignment = %A" x.minBitstreamBufferSizeAlignment + sprintf "pictureAccessGranularity = %A" x.pictureAccessGranularity + sprintf "minCodedExtent = %A" x.minCodedExtent + sprintf "maxCodedExtent = %A" x.maxCodedExtent + sprintf "maxDpbSlots = %A" x.maxDpbSlots + sprintf "maxActiveReferencePictures = %A" x.maxActiveReferencePictures + sprintf "stdHeaderVersion = %A" x.stdHeaderVersion + ] |> sprintf "VkVideoCapabilitiesKHR { %s }" + end + + [] + type VkVideoCodingControlInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public flags : VkVideoCodingControlFlagsKHR + + new(pNext : nativeint, flags : VkVideoCodingControlFlagsKHR) = + { + sType = 1000023010u + pNext = pNext + flags = flags + } + + new(flags : VkVideoCodingControlFlagsKHR) = + VkVideoCodingControlInfoKHR(Unchecked.defaultof, flags) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof + + static member Empty = + VkVideoCodingControlInfoKHR(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "flags = %A" x.flags + ] |> sprintf "VkVideoCodingControlInfoKHR { %s }" + end + + [] + type VkVideoEndCodingInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public flags : VkVideoEndCodingFlagsKHR + + new(pNext : nativeint, flags : VkVideoEndCodingFlagsKHR) = + { + sType = 1000023009u + pNext = pNext + flags = flags + } + + new(flags : VkVideoEndCodingFlagsKHR) = + VkVideoEndCodingInfoKHR(Unchecked.defaultof, flags) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof + + static member Empty = + VkVideoEndCodingInfoKHR(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "flags = %A" x.flags + ] |> sprintf "VkVideoEndCodingInfoKHR { %s }" + end + + [] + type VkVideoFormatPropertiesKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public format : VkFormat + val mutable public componentMapping : VkComponentMapping + val mutable public imageCreateFlags : VkImageCreateFlags + val mutable public imageType : VkImageType + val mutable public imageTiling : VkImageTiling + val mutable public imageUsageFlags : VkImageUsageFlags + + new(pNext : nativeint, format : VkFormat, componentMapping : VkComponentMapping, imageCreateFlags : VkImageCreateFlags, imageType : VkImageType, imageTiling : VkImageTiling, imageUsageFlags : VkImageUsageFlags) = + { + sType = 1000023015u + pNext = pNext + format = format + componentMapping = componentMapping + imageCreateFlags = imageCreateFlags + imageType = imageType + imageTiling = imageTiling + imageUsageFlags = imageUsageFlags + } + + new(format : VkFormat, componentMapping : VkComponentMapping, imageCreateFlags : VkImageCreateFlags, imageType : VkImageType, imageTiling : VkImageTiling, imageUsageFlags : VkImageUsageFlags) = + VkVideoFormatPropertiesKHR(Unchecked.defaultof, format, componentMapping, imageCreateFlags, imageType, imageTiling, imageUsageFlags) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.format = Unchecked.defaultof && x.componentMapping = Unchecked.defaultof && x.imageCreateFlags = Unchecked.defaultof && x.imageType = Unchecked.defaultof && x.imageTiling = Unchecked.defaultof && x.imageUsageFlags = Unchecked.defaultof + + static member Empty = + VkVideoFormatPropertiesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "format = %A" x.format + sprintf "componentMapping = %A" x.componentMapping + sprintf "imageCreateFlags = %A" x.imageCreateFlags + sprintf "imageType = %A" x.imageType + sprintf "imageTiling = %A" x.imageTiling + sprintf "imageUsageFlags = %A" x.imageUsageFlags + ] |> sprintf "VkVideoFormatPropertiesKHR { %s }" + end + + [] + type VkVideoProfileInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public videoCodecOperation : VkVideoCodecOperationFlagsKHR + val mutable public chromaSubsampling : VkVideoChromaSubsamplingFlagsKHR + val mutable public lumaBitDepth : VkVideoComponentBitDepthFlagsKHR + val mutable public chromaBitDepth : VkVideoComponentBitDepthFlagsKHR + + new(pNext : nativeint, videoCodecOperation : VkVideoCodecOperationFlagsKHR, chromaSubsampling : VkVideoChromaSubsamplingFlagsKHR, lumaBitDepth : VkVideoComponentBitDepthFlagsKHR, chromaBitDepth : VkVideoComponentBitDepthFlagsKHR) = + { + sType = 1000023000u + pNext = pNext + videoCodecOperation = videoCodecOperation + chromaSubsampling = chromaSubsampling + lumaBitDepth = lumaBitDepth + chromaBitDepth = chromaBitDepth + } + + new(videoCodecOperation : VkVideoCodecOperationFlagsKHR, chromaSubsampling : VkVideoChromaSubsamplingFlagsKHR, lumaBitDepth : VkVideoComponentBitDepthFlagsKHR, chromaBitDepth : VkVideoComponentBitDepthFlagsKHR) = + VkVideoProfileInfoKHR(Unchecked.defaultof, videoCodecOperation, chromaSubsampling, lumaBitDepth, chromaBitDepth) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.videoCodecOperation = Unchecked.defaultof && x.chromaSubsampling = Unchecked.defaultof && x.lumaBitDepth = Unchecked.defaultof && x.chromaBitDepth = Unchecked.defaultof + + static member Empty = + VkVideoProfileInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "videoCodecOperation = %A" x.videoCodecOperation + sprintf "chromaSubsampling = %A" x.chromaSubsampling + sprintf "lumaBitDepth = %A" x.lumaBitDepth + sprintf "chromaBitDepth = %A" x.chromaBitDepth + ] |> sprintf "VkVideoProfileInfoKHR { %s }" + end + + [] + type VkVideoProfileListInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public profileCount : uint32 + val mutable public pProfiles : nativeptr + + new(pNext : nativeint, profileCount : uint32, pProfiles : nativeptr) = + { + sType = 1000023013u + pNext = pNext + profileCount = profileCount + pProfiles = pProfiles + } + + new(profileCount : uint32, pProfiles : nativeptr) = + VkVideoProfileListInfoKHR(Unchecked.defaultof, profileCount, pProfiles) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.profileCount = Unchecked.defaultof && x.pProfiles = Unchecked.defaultof> + + static member Empty = + VkVideoProfileListInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "profileCount = %A" x.profileCount + sprintf "pProfiles = %A" x.pProfiles + ] |> sprintf "VkVideoProfileListInfoKHR { %s }" + end + + [] + type VkVideoSessionCreateInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public queueFamilyIndex : uint32 + val mutable public flags : VkVideoSessionCreateFlagsKHR + val mutable public pVideoProfile : nativeptr + val mutable public pictureFormat : VkFormat + val mutable public maxCodedExtent : VkExtent2D + val mutable public referencePictureFormat : VkFormat + val mutable public maxDpbSlots : uint32 + val mutable public maxActiveReferencePictures : uint32 + val mutable public pStdHeaderVersion : nativeptr + + new(pNext : nativeint, queueFamilyIndex : uint32, flags : VkVideoSessionCreateFlagsKHR, pVideoProfile : nativeptr, pictureFormat : VkFormat, maxCodedExtent : VkExtent2D, referencePictureFormat : VkFormat, maxDpbSlots : uint32, maxActiveReferencePictures : uint32, pStdHeaderVersion : nativeptr) = + { + sType = 1000023005u + pNext = pNext + queueFamilyIndex = queueFamilyIndex + flags = flags + pVideoProfile = pVideoProfile + pictureFormat = pictureFormat + maxCodedExtent = maxCodedExtent + referencePictureFormat = referencePictureFormat + maxDpbSlots = maxDpbSlots + maxActiveReferencePictures = maxActiveReferencePictures + pStdHeaderVersion = pStdHeaderVersion + } + + new(queueFamilyIndex : uint32, flags : VkVideoSessionCreateFlagsKHR, pVideoProfile : nativeptr, pictureFormat : VkFormat, maxCodedExtent : VkExtent2D, referencePictureFormat : VkFormat, maxDpbSlots : uint32, maxActiveReferencePictures : uint32, pStdHeaderVersion : nativeptr) = + VkVideoSessionCreateInfoKHR(Unchecked.defaultof, queueFamilyIndex, flags, pVideoProfile, pictureFormat, maxCodedExtent, referencePictureFormat, maxDpbSlots, maxActiveReferencePictures, pStdHeaderVersion) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.queueFamilyIndex = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.pVideoProfile = Unchecked.defaultof> && x.pictureFormat = Unchecked.defaultof && x.maxCodedExtent = Unchecked.defaultof && x.referencePictureFormat = Unchecked.defaultof && x.maxDpbSlots = Unchecked.defaultof && x.maxActiveReferencePictures = Unchecked.defaultof && x.pStdHeaderVersion = Unchecked.defaultof> + + static member Empty = + VkVideoSessionCreateInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "queueFamilyIndex = %A" x.queueFamilyIndex + sprintf "flags = %A" x.flags + sprintf "pVideoProfile = %A" x.pVideoProfile + sprintf "pictureFormat = %A" x.pictureFormat + sprintf "maxCodedExtent = %A" x.maxCodedExtent + sprintf "referencePictureFormat = %A" x.referencePictureFormat + sprintf "maxDpbSlots = %A" x.maxDpbSlots + sprintf "maxActiveReferencePictures = %A" x.maxActiveReferencePictures + sprintf "pStdHeaderVersion = %A" x.pStdHeaderVersion + ] |> sprintf "VkVideoSessionCreateInfoKHR { %s }" + end + + [] + type VkVideoSessionMemoryRequirementsKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public memoryBindIndex : uint32 + val mutable public memoryRequirements : VkMemoryRequirements + + new(pNext : nativeint, memoryBindIndex : uint32, memoryRequirements : VkMemoryRequirements) = + { + sType = 1000023003u + pNext = pNext + memoryBindIndex = memoryBindIndex + memoryRequirements = memoryRequirements + } + + new(memoryBindIndex : uint32, memoryRequirements : VkMemoryRequirements) = + VkVideoSessionMemoryRequirementsKHR(Unchecked.defaultof, memoryBindIndex, memoryRequirements) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.memoryBindIndex = Unchecked.defaultof && x.memoryRequirements = Unchecked.defaultof + + static member Empty = + VkVideoSessionMemoryRequirementsKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "memoryBindIndex = %A" x.memoryBindIndex + sprintf "memoryRequirements = %A" x.memoryRequirements + ] |> sprintf "VkVideoSessionMemoryRequirementsKHR { %s }" + end + + [] + type VkVideoSessionParametersCreateInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public flags : VkVideoSessionParametersCreateFlagsKHR + val mutable public videoSessionParametersTemplate : VkVideoSessionParametersKHR + val mutable public videoSession : VkVideoSessionKHR + + new(pNext : nativeint, flags : VkVideoSessionParametersCreateFlagsKHR, videoSessionParametersTemplate : VkVideoSessionParametersKHR, videoSession : VkVideoSessionKHR) = + { + sType = 1000023006u + pNext = pNext + flags = flags + videoSessionParametersTemplate = videoSessionParametersTemplate + videoSession = videoSession + } + + new(flags : VkVideoSessionParametersCreateFlagsKHR, videoSessionParametersTemplate : VkVideoSessionParametersKHR, videoSession : VkVideoSessionKHR) = + VkVideoSessionParametersCreateInfoKHR(Unchecked.defaultof, flags, videoSessionParametersTemplate, videoSession) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.videoSessionParametersTemplate = Unchecked.defaultof && x.videoSession = Unchecked.defaultof + + static member Empty = + VkVideoSessionParametersCreateInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "flags = %A" x.flags + sprintf "videoSessionParametersTemplate = %A" x.videoSessionParametersTemplate + sprintf "videoSession = %A" x.videoSession + ] |> sprintf "VkVideoSessionParametersCreateInfoKHR { %s }" + end + + [] + type VkVideoSessionParametersUpdateInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public updateSequenceCount : uint32 + + new(pNext : nativeint, updateSequenceCount : uint32) = + { + sType = 1000023007u + pNext = pNext + updateSequenceCount = updateSequenceCount + } + + new(updateSequenceCount : uint32) = + VkVideoSessionParametersUpdateInfoKHR(Unchecked.defaultof, updateSequenceCount) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.updateSequenceCount = Unchecked.defaultof + + static member Empty = + VkVideoSessionParametersUpdateInfoKHR(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "updateSequenceCount = %A" x.updateSequenceCount + ] |> sprintf "VkVideoSessionParametersUpdateInfoKHR { %s }" + end + + + [] + module EnumExtensions = + type VkObjectType with + /// VkVideoSessionKHR + static member inline VideoSessionKhr = unbox 1000023000 + /// VkVideoSessionParametersKHR + static member inline VideoSessionParametersKhr = unbox 1000023001 + type VkQueryResultFlags with + static member inline WithStatusBitKhr = unbox 0x00000010 + type VkQueryType with + static member inline ResultStatusOnlyKhr = unbox 1000023000 + type VkResult with + static member inline ErrorImageUsageNotSupportedKhr = unbox -1000023000 + static member inline ErrorVideoPictureLayoutNotSupportedKhr = unbox -1000023001 + static member inline ErrorVideoProfileOperationNotSupportedKhr = unbox -1000023002 + static member inline ErrorVideoProfileFormatNotSupportedKhr = unbox -1000023003 + static member inline ErrorVideoProfileCodecNotSupportedKhr = unbox -1000023004 + static member inline ErrorVideoStdVersionNotSupportedKhr = unbox -1000023005 + + module VkRaw = + [] + type VkGetPhysicalDeviceVideoCapabilitiesKHRDel = delegate of VkPhysicalDevice * nativeptr * nativeptr -> VkResult + [] + type VkGetPhysicalDeviceVideoFormatPropertiesKHRDel = delegate of VkPhysicalDevice * nativeptr * nativeptr * nativeptr -> VkResult + [] + type VkCreateVideoSessionKHRDel = delegate of VkDevice * nativeptr * nativeptr * nativeptr -> VkResult + [] + type VkDestroyVideoSessionKHRDel = delegate of VkDevice * VkVideoSessionKHR * nativeptr -> unit + [] + type VkGetVideoSessionMemoryRequirementsKHRDel = delegate of VkDevice * VkVideoSessionKHR * nativeptr * nativeptr -> VkResult + [] + type VkBindVideoSessionMemoryKHRDel = delegate of VkDevice * VkVideoSessionKHR * uint32 * nativeptr -> VkResult + [] + type VkCreateVideoSessionParametersKHRDel = delegate of VkDevice * nativeptr * nativeptr * nativeptr -> VkResult + [] + type VkUpdateVideoSessionParametersKHRDel = delegate of VkDevice * VkVideoSessionParametersKHR * nativeptr -> VkResult + [] + type VkDestroyVideoSessionParametersKHRDel = delegate of VkDevice * VkVideoSessionParametersKHR * nativeptr -> unit + [] + type VkCmdBeginVideoCodingKHRDel = delegate of VkCommandBuffer * nativeptr -> unit + [] + type VkCmdEndVideoCodingKHRDel = delegate of VkCommandBuffer * nativeptr -> unit + [] + type VkCmdControlVideoCodingKHRDel = delegate of VkCommandBuffer * nativeptr -> unit + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRVideoQueue") + static let s_vkGetPhysicalDeviceVideoCapabilitiesKHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceVideoCapabilitiesKHR" + static let s_vkGetPhysicalDeviceVideoFormatPropertiesKHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceVideoFormatPropertiesKHR" + static let s_vkCreateVideoSessionKHRDel = VkRaw.vkImportInstanceDelegate "vkCreateVideoSessionKHR" + static let s_vkDestroyVideoSessionKHRDel = VkRaw.vkImportInstanceDelegate "vkDestroyVideoSessionKHR" + static let s_vkGetVideoSessionMemoryRequirementsKHRDel = VkRaw.vkImportInstanceDelegate "vkGetVideoSessionMemoryRequirementsKHR" + static let s_vkBindVideoSessionMemoryKHRDel = VkRaw.vkImportInstanceDelegate "vkBindVideoSessionMemoryKHR" + static let s_vkCreateVideoSessionParametersKHRDel = VkRaw.vkImportInstanceDelegate "vkCreateVideoSessionParametersKHR" + static let s_vkUpdateVideoSessionParametersKHRDel = VkRaw.vkImportInstanceDelegate "vkUpdateVideoSessionParametersKHR" + static let s_vkDestroyVideoSessionParametersKHRDel = VkRaw.vkImportInstanceDelegate "vkDestroyVideoSessionParametersKHR" + static let s_vkCmdBeginVideoCodingKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdBeginVideoCodingKHR" + static let s_vkCmdEndVideoCodingKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdEndVideoCodingKHR" + static let s_vkCmdControlVideoCodingKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdControlVideoCodingKHR" + static do Report.End(3) |> ignore + static member vkGetPhysicalDeviceVideoCapabilitiesKHR = s_vkGetPhysicalDeviceVideoCapabilitiesKHRDel + static member vkGetPhysicalDeviceVideoFormatPropertiesKHR = s_vkGetPhysicalDeviceVideoFormatPropertiesKHRDel + static member vkCreateVideoSessionKHR = s_vkCreateVideoSessionKHRDel + static member vkDestroyVideoSessionKHR = s_vkDestroyVideoSessionKHRDel + static member vkGetVideoSessionMemoryRequirementsKHR = s_vkGetVideoSessionMemoryRequirementsKHRDel + static member vkBindVideoSessionMemoryKHR = s_vkBindVideoSessionMemoryKHRDel + static member vkCreateVideoSessionParametersKHR = s_vkCreateVideoSessionParametersKHRDel + static member vkUpdateVideoSessionParametersKHR = s_vkUpdateVideoSessionParametersKHRDel + static member vkDestroyVideoSessionParametersKHR = s_vkDestroyVideoSessionParametersKHRDel + static member vkCmdBeginVideoCodingKHR = s_vkCmdBeginVideoCodingKHRDel + static member vkCmdEndVideoCodingKHR = s_vkCmdEndVideoCodingKHRDel + static member vkCmdControlVideoCodingKHR = s_vkCmdControlVideoCodingKHRDel + let vkGetPhysicalDeviceVideoCapabilitiesKHR(physicalDevice : VkPhysicalDevice, pVideoProfile : nativeptr, pCapabilities : nativeptr) = Loader.vkGetPhysicalDeviceVideoCapabilitiesKHR.Invoke(physicalDevice, pVideoProfile, pCapabilities) + let vkGetPhysicalDeviceVideoFormatPropertiesKHR(physicalDevice : VkPhysicalDevice, pVideoFormatInfo : nativeptr, pVideoFormatPropertyCount : nativeptr, pVideoFormatProperties : nativeptr) = Loader.vkGetPhysicalDeviceVideoFormatPropertiesKHR.Invoke(physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties) + let vkCreateVideoSessionKHR(device : VkDevice, pCreateInfo : nativeptr, pAllocator : nativeptr, pVideoSession : nativeptr) = Loader.vkCreateVideoSessionKHR.Invoke(device, pCreateInfo, pAllocator, pVideoSession) + let vkDestroyVideoSessionKHR(device : VkDevice, videoSession : VkVideoSessionKHR, pAllocator : nativeptr) = Loader.vkDestroyVideoSessionKHR.Invoke(device, videoSession, pAllocator) + let vkGetVideoSessionMemoryRequirementsKHR(device : VkDevice, videoSession : VkVideoSessionKHR, pMemoryRequirementsCount : nativeptr, pMemoryRequirements : nativeptr) = Loader.vkGetVideoSessionMemoryRequirementsKHR.Invoke(device, videoSession, pMemoryRequirementsCount, pMemoryRequirements) + let vkBindVideoSessionMemoryKHR(device : VkDevice, videoSession : VkVideoSessionKHR, bindSessionMemoryInfoCount : uint32, pBindSessionMemoryInfos : nativeptr) = Loader.vkBindVideoSessionMemoryKHR.Invoke(device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos) + let vkCreateVideoSessionParametersKHR(device : VkDevice, pCreateInfo : nativeptr, pAllocator : nativeptr, pVideoSessionParameters : nativeptr) = Loader.vkCreateVideoSessionParametersKHR.Invoke(device, pCreateInfo, pAllocator, pVideoSessionParameters) + let vkUpdateVideoSessionParametersKHR(device : VkDevice, videoSessionParameters : VkVideoSessionParametersKHR, pUpdateInfo : nativeptr) = Loader.vkUpdateVideoSessionParametersKHR.Invoke(device, videoSessionParameters, pUpdateInfo) + let vkDestroyVideoSessionParametersKHR(device : VkDevice, videoSessionParameters : VkVideoSessionParametersKHR, pAllocator : nativeptr) = Loader.vkDestroyVideoSessionParametersKHR.Invoke(device, videoSessionParameters, pAllocator) + let vkCmdBeginVideoCodingKHR(commandBuffer : VkCommandBuffer, pBeginInfo : nativeptr) = Loader.vkCmdBeginVideoCodingKHR.Invoke(commandBuffer, pBeginInfo) + let vkCmdEndVideoCodingKHR(commandBuffer : VkCommandBuffer, pEndCodingInfo : nativeptr) = Loader.vkCmdEndVideoCodingKHR.Invoke(commandBuffer, pEndCodingInfo) + let vkCmdControlVideoCodingKHR(commandBuffer : VkCommandBuffer, pCodingControlInfo : nativeptr) = Loader.vkCmdControlVideoCodingKHR.Invoke(commandBuffer, pCodingControlInfo) + +/// Requires KHRVideoQueue, (KHRSynchronization2 | Vulkan13). +module KHRVideoDecodeQueue = + let Type = ExtensionType.Device + let Name = "VK_KHR_video_decode_queue" + let Number = 25 + + [] + type VkVideoDecodeCapabilityFlagsKHR = + | All = 3 + | None = 0 + | DpbAndOutputCoincideBit = 0x00000001 + | DpbAndOutputDistinctBit = 0x00000002 + + [] + type VkVideoDecodeUsageFlagsKHR = + | All = 7 + | Default = 0 + | TranscodingBit = 0x00000001 + | OfflineBit = 0x00000002 + | StreamingBit = 0x00000004 + + + [] + type VkVideoDecodeCapabilitiesKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public flags : VkVideoDecodeCapabilityFlagsKHR + + new(pNext : nativeint, flags : VkVideoDecodeCapabilityFlagsKHR) = + { + sType = 1000024001u + pNext = pNext + flags = flags + } + + new(flags : VkVideoDecodeCapabilityFlagsKHR) = + VkVideoDecodeCapabilitiesKHR(Unchecked.defaultof, flags) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof + + static member Empty = + VkVideoDecodeCapabilitiesKHR(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "flags = %A" x.flags + ] |> sprintf "VkVideoDecodeCapabilitiesKHR { %s }" + end + + [] + type VkVideoDecodeInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public flags : VkVideoDecodeFlagsKHR + val mutable public srcBuffer : VkBuffer + val mutable public srcBufferOffset : VkDeviceSize + val mutable public srcBufferRange : VkDeviceSize + val mutable public dstPictureResource : KHRVideoQueue.VkVideoPictureResourceInfoKHR + val mutable public pSetupReferenceSlot : nativeptr + val mutable public referenceSlotCount : uint32 + val mutable public pReferenceSlots : nativeptr + + new(pNext : nativeint, flags : VkVideoDecodeFlagsKHR, srcBuffer : VkBuffer, srcBufferOffset : VkDeviceSize, srcBufferRange : VkDeviceSize, dstPictureResource : KHRVideoQueue.VkVideoPictureResourceInfoKHR, pSetupReferenceSlot : nativeptr, referenceSlotCount : uint32, pReferenceSlots : nativeptr) = + { + sType = 1000024000u + pNext = pNext + flags = flags + srcBuffer = srcBuffer + srcBufferOffset = srcBufferOffset + srcBufferRange = srcBufferRange + dstPictureResource = dstPictureResource + pSetupReferenceSlot = pSetupReferenceSlot + referenceSlotCount = referenceSlotCount + pReferenceSlots = pReferenceSlots + } + + new(flags : VkVideoDecodeFlagsKHR, srcBuffer : VkBuffer, srcBufferOffset : VkDeviceSize, srcBufferRange : VkDeviceSize, dstPictureResource : KHRVideoQueue.VkVideoPictureResourceInfoKHR, pSetupReferenceSlot : nativeptr, referenceSlotCount : uint32, pReferenceSlots : nativeptr) = + VkVideoDecodeInfoKHR(Unchecked.defaultof, flags, srcBuffer, srcBufferOffset, srcBufferRange, dstPictureResource, pSetupReferenceSlot, referenceSlotCount, pReferenceSlots) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.srcBuffer = Unchecked.defaultof && x.srcBufferOffset = Unchecked.defaultof && x.srcBufferRange = Unchecked.defaultof && x.dstPictureResource = Unchecked.defaultof && x.pSetupReferenceSlot = Unchecked.defaultof> && x.referenceSlotCount = Unchecked.defaultof && x.pReferenceSlots = Unchecked.defaultof> + + static member Empty = + VkVideoDecodeInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "flags = %A" x.flags + sprintf "srcBuffer = %A" x.srcBuffer + sprintf "srcBufferOffset = %A" x.srcBufferOffset + sprintf "srcBufferRange = %A" x.srcBufferRange + sprintf "dstPictureResource = %A" x.dstPictureResource + sprintf "pSetupReferenceSlot = %A" x.pSetupReferenceSlot + sprintf "referenceSlotCount = %A" x.referenceSlotCount + sprintf "pReferenceSlots = %A" x.pReferenceSlots + ] |> sprintf "VkVideoDecodeInfoKHR { %s }" + end + + [] + type VkVideoDecodeUsageInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public videoUsageHints : VkVideoDecodeUsageFlagsKHR + + new(pNext : nativeint, videoUsageHints : VkVideoDecodeUsageFlagsKHR) = + { + sType = 1000024002u + pNext = pNext + videoUsageHints = videoUsageHints + } + + new(videoUsageHints : VkVideoDecodeUsageFlagsKHR) = + VkVideoDecodeUsageInfoKHR(Unchecked.defaultof, videoUsageHints) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.videoUsageHints = Unchecked.defaultof + + static member Empty = + VkVideoDecodeUsageInfoKHR(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "videoUsageHints = %A" x.videoUsageHints + ] |> sprintf "VkVideoDecodeUsageInfoKHR { %s }" + end + + + [] + module EnumExtensions = + type Vulkan13.VkAccessFlags2 with + static member inline Access2VideoDecodeReadBitKhr = unbox 0x00000008 + static member inline Access2VideoDecodeWriteBitKhr = unbox 0x00000010 + type VkBufferUsageFlags with + static member inline VideoDecodeSrcBitKhr = unbox 0x00002000 + static member inline VideoDecodeDstBitKhr = unbox 0x00004000 + type VkFormatFeatureFlags with + static member inline VideoDecodeOutputBitKhr = unbox 0x02000000 + static member inline VideoDecodeDpbBitKhr = unbox 0x04000000 + type VkImageLayout with + static member inline VideoDecodeDstKhr = unbox 1000024000 + static member inline VideoDecodeSrcKhr = unbox 1000024001 + static member inline VideoDecodeDpbKhr = unbox 1000024002 + type VkImageUsageFlags with + static member inline VideoDecodeDstBitKhr = unbox 0x00000400 + static member inline VideoDecodeSrcBitKhr = unbox 0x00000800 + static member inline VideoDecodeDpbBitKhr = unbox 0x00001000 + type Vulkan13.VkPipelineStageFlags2 with + static member inline PipelineStage2VideoDecodeBitKhr = unbox 0x04000000 + type VkQueueFlags with + static member inline VideoDecodeBitKhr = unbox 0x00000020 + + module VkRaw = + [] + type VkCmdDecodeVideoKHRDel = delegate of VkCommandBuffer * nativeptr -> unit + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRVideoDecodeQueue") + static let s_vkCmdDecodeVideoKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdDecodeVideoKHR" + static do Report.End(3) |> ignore + static member vkCmdDecodeVideoKHR = s_vkCmdDecodeVideoKHRDel + let vkCmdDecodeVideoKHR(commandBuffer : VkCommandBuffer, pDecodeInfo : nativeptr) = Loader.vkCmdDecodeVideoKHR.Invoke(commandBuffer, pDecodeInfo) + + [] + module ``KHRFormatFeatureFlags2 | Vulkan13`` = + [] + module EnumExtensions = + type Vulkan13.VkFormatFeatureFlags2 with + static member inline FormatFeature2VideoDecodeOutputBitKhr = unbox 0x02000000 + static member inline FormatFeature2VideoDecodeDpbBitKhr = unbox 0x04000000 + + +/// Requires KHRVideoQueue, (KHRSynchronization2 | Vulkan13). +module KHRVideoEncodeQueue = + let Type = ExtensionType.Device + let Name = "VK_KHR_video_encode_queue" + let Number = 300 + + [] + type VkVideoEncodeFlagsKHR = + | All = 0 + | None = 0 + + [] + type VkVideoEncodeCapabilityFlagsKHR = + | All = 3 + | None = 0 + | PrecedingExternallyEncodedBytesBit = 0x00000001 + | InsufficientBitstreamBufferRangeDetectionBit = 0x00000002 + + [] + type VkVideoEncodeFeedbackFlagsKHR = + | All = 7 + | None = 0 + | BitstreamBufferOffsetBit = 0x00000001 + | BitstreamBytesWrittenBit = 0x00000002 + | BitstreamHasOverridesBit = 0x00000004 + + [] + type VkVideoEncodeUsageFlagsKHR = + | All = 15 + | Default = 0 + | TranscodingBit = 0x00000001 + | StreamingBit = 0x00000002 + | RecordingBit = 0x00000004 + | ConferencingBit = 0x00000008 + + [] + type VkVideoEncodeContentFlagsKHR = + | All = 7 + | Default = 0 + | CameraBit = 0x00000001 + | DesktopBit = 0x00000002 + | RenderedBit = 0x00000004 + + type VkVideoEncodeTuningModeKHR = + | Default = 0 + | HighQuality = 1 + | LowLatency = 2 + | UltraLowLatency = 3 + | Lossless = 4 + + [] + type VkVideoEncodeRateControlModeFlagsKHR = + | All = 7 + | Default = 0 + | DisabledBit = 0x00000001 + | CbrBit = 0x00000002 + | VbrBit = 0x00000004 + + + [] + type VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public pVideoProfile : nativeptr + val mutable public qualityLevel : uint32 + + new(pNext : nativeint, pVideoProfile : nativeptr, qualityLevel : uint32) = + { + sType = 1000299006u + pNext = pNext + pVideoProfile = pVideoProfile + qualityLevel = qualityLevel + } + + new(pVideoProfile : nativeptr, qualityLevel : uint32) = + VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR(Unchecked.defaultof, pVideoProfile, qualityLevel) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.pVideoProfile = Unchecked.defaultof> && x.qualityLevel = Unchecked.defaultof + + static member Empty = + VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR(Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "pVideoProfile = %A" x.pVideoProfile + sprintf "qualityLevel = %A" x.qualityLevel + ] |> sprintf "VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR { %s }" + end + + [] + type VkQueryPoolVideoEncodeFeedbackCreateInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public encodeFeedbackFlags : VkVideoEncodeFeedbackFlagsKHR + + new(pNext : nativeint, encodeFeedbackFlags : VkVideoEncodeFeedbackFlagsKHR) = + { + sType = 1000299005u + pNext = pNext + encodeFeedbackFlags = encodeFeedbackFlags + } + + new(encodeFeedbackFlags : VkVideoEncodeFeedbackFlagsKHR) = + VkQueryPoolVideoEncodeFeedbackCreateInfoKHR(Unchecked.defaultof, encodeFeedbackFlags) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.encodeFeedbackFlags = Unchecked.defaultof + + static member Empty = + VkQueryPoolVideoEncodeFeedbackCreateInfoKHR(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "encodeFeedbackFlags = %A" x.encodeFeedbackFlags + ] |> sprintf "VkQueryPoolVideoEncodeFeedbackCreateInfoKHR { %s }" + end + + [] + type VkVideoEncodeCapabilitiesKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public flags : VkVideoEncodeCapabilityFlagsKHR + val mutable public rateControlModes : VkVideoEncodeRateControlModeFlagsKHR + val mutable public maxRateControlLayers : uint32 + val mutable public maxBitrate : uint64 + val mutable public maxQualityLevels : uint32 + val mutable public encodeInputPictureGranularity : VkExtent2D + val mutable public supportedEncodeFeedbackFlags : VkVideoEncodeFeedbackFlagsKHR + + new(pNext : nativeint, flags : VkVideoEncodeCapabilityFlagsKHR, rateControlModes : VkVideoEncodeRateControlModeFlagsKHR, maxRateControlLayers : uint32, maxBitrate : uint64, maxQualityLevels : uint32, encodeInputPictureGranularity : VkExtent2D, supportedEncodeFeedbackFlags : VkVideoEncodeFeedbackFlagsKHR) = + { + sType = 1000299003u + pNext = pNext + flags = flags + rateControlModes = rateControlModes + maxRateControlLayers = maxRateControlLayers + maxBitrate = maxBitrate + maxQualityLevels = maxQualityLevels + encodeInputPictureGranularity = encodeInputPictureGranularity + supportedEncodeFeedbackFlags = supportedEncodeFeedbackFlags + } + + new(flags : VkVideoEncodeCapabilityFlagsKHR, rateControlModes : VkVideoEncodeRateControlModeFlagsKHR, maxRateControlLayers : uint32, maxBitrate : uint64, maxQualityLevels : uint32, encodeInputPictureGranularity : VkExtent2D, supportedEncodeFeedbackFlags : VkVideoEncodeFeedbackFlagsKHR) = + VkVideoEncodeCapabilitiesKHR(Unchecked.defaultof, flags, rateControlModes, maxRateControlLayers, maxBitrate, maxQualityLevels, encodeInputPictureGranularity, supportedEncodeFeedbackFlags) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.rateControlModes = Unchecked.defaultof && x.maxRateControlLayers = Unchecked.defaultof && x.maxBitrate = Unchecked.defaultof && x.maxQualityLevels = Unchecked.defaultof && x.encodeInputPictureGranularity = Unchecked.defaultof && x.supportedEncodeFeedbackFlags = Unchecked.defaultof + + static member Empty = + VkVideoEncodeCapabilitiesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "flags = %A" x.flags + sprintf "rateControlModes = %A" x.rateControlModes + sprintf "maxRateControlLayers = %A" x.maxRateControlLayers + sprintf "maxBitrate = %A" x.maxBitrate + sprintf "maxQualityLevels = %A" x.maxQualityLevels + sprintf "encodeInputPictureGranularity = %A" x.encodeInputPictureGranularity + sprintf "supportedEncodeFeedbackFlags = %A" x.supportedEncodeFeedbackFlags + ] |> sprintf "VkVideoEncodeCapabilitiesKHR { %s }" + end + + [] + type VkVideoEncodeInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public flags : VkVideoEncodeFlagsKHR + val mutable public dstBuffer : VkBuffer + val mutable public dstBufferOffset : VkDeviceSize + val mutable public dstBufferRange : VkDeviceSize + val mutable public srcPictureResource : KHRVideoQueue.VkVideoPictureResourceInfoKHR + val mutable public pSetupReferenceSlot : nativeptr + val mutable public referenceSlotCount : uint32 + val mutable public pReferenceSlots : nativeptr + val mutable public precedingExternallyEncodedBytes : uint32 + + new(pNext : nativeint, flags : VkVideoEncodeFlagsKHR, dstBuffer : VkBuffer, dstBufferOffset : VkDeviceSize, dstBufferRange : VkDeviceSize, srcPictureResource : KHRVideoQueue.VkVideoPictureResourceInfoKHR, pSetupReferenceSlot : nativeptr, referenceSlotCount : uint32, pReferenceSlots : nativeptr, precedingExternallyEncodedBytes : uint32) = + { + sType = 1000299000u + pNext = pNext + flags = flags + dstBuffer = dstBuffer + dstBufferOffset = dstBufferOffset + dstBufferRange = dstBufferRange + srcPictureResource = srcPictureResource + pSetupReferenceSlot = pSetupReferenceSlot + referenceSlotCount = referenceSlotCount + pReferenceSlots = pReferenceSlots + precedingExternallyEncodedBytes = precedingExternallyEncodedBytes + } + + new(flags : VkVideoEncodeFlagsKHR, dstBuffer : VkBuffer, dstBufferOffset : VkDeviceSize, dstBufferRange : VkDeviceSize, srcPictureResource : KHRVideoQueue.VkVideoPictureResourceInfoKHR, pSetupReferenceSlot : nativeptr, referenceSlotCount : uint32, pReferenceSlots : nativeptr, precedingExternallyEncodedBytes : uint32) = + VkVideoEncodeInfoKHR(Unchecked.defaultof, flags, dstBuffer, dstBufferOffset, dstBufferRange, srcPictureResource, pSetupReferenceSlot, referenceSlotCount, pReferenceSlots, precedingExternallyEncodedBytes) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.dstBuffer = Unchecked.defaultof && x.dstBufferOffset = Unchecked.defaultof && x.dstBufferRange = Unchecked.defaultof && x.srcPictureResource = Unchecked.defaultof && x.pSetupReferenceSlot = Unchecked.defaultof> && x.referenceSlotCount = Unchecked.defaultof && x.pReferenceSlots = Unchecked.defaultof> && x.precedingExternallyEncodedBytes = Unchecked.defaultof + + static member Empty = + VkVideoEncodeInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "flags = %A" x.flags + sprintf "dstBuffer = %A" x.dstBuffer + sprintf "dstBufferOffset = %A" x.dstBufferOffset + sprintf "dstBufferRange = %A" x.dstBufferRange + sprintf "srcPictureResource = %A" x.srcPictureResource + sprintf "pSetupReferenceSlot = %A" x.pSetupReferenceSlot + sprintf "referenceSlotCount = %A" x.referenceSlotCount + sprintf "pReferenceSlots = %A" x.pReferenceSlots + sprintf "precedingExternallyEncodedBytes = %A" x.precedingExternallyEncodedBytes + ] |> sprintf "VkVideoEncodeInfoKHR { %s }" + end + + [] + type VkVideoEncodeQualityLevelInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public qualityLevel : uint32 + + new(pNext : nativeint, qualityLevel : uint32) = + { + sType = 1000299008u + pNext = pNext + qualityLevel = qualityLevel + } + + new(qualityLevel : uint32) = + VkVideoEncodeQualityLevelInfoKHR(Unchecked.defaultof, qualityLevel) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.qualityLevel = Unchecked.defaultof + + static member Empty = + VkVideoEncodeQualityLevelInfoKHR(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "qualityLevel = %A" x.qualityLevel + ] |> sprintf "VkVideoEncodeQualityLevelInfoKHR { %s }" + end + + [] + type VkVideoEncodeQualityLevelPropertiesKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public preferredRateControlMode : VkVideoEncodeRateControlModeFlagsKHR + val mutable public preferredRateControlLayerCount : uint32 + + new(pNext : nativeint, preferredRateControlMode : VkVideoEncodeRateControlModeFlagsKHR, preferredRateControlLayerCount : uint32) = + { + sType = 1000299007u + pNext = pNext + preferredRateControlMode = preferredRateControlMode + preferredRateControlLayerCount = preferredRateControlLayerCount + } + + new(preferredRateControlMode : VkVideoEncodeRateControlModeFlagsKHR, preferredRateControlLayerCount : uint32) = + VkVideoEncodeQualityLevelPropertiesKHR(Unchecked.defaultof, preferredRateControlMode, preferredRateControlLayerCount) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.preferredRateControlMode = Unchecked.defaultof && x.preferredRateControlLayerCount = Unchecked.defaultof + + static member Empty = + VkVideoEncodeQualityLevelPropertiesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "preferredRateControlMode = %A" x.preferredRateControlMode + sprintf "preferredRateControlLayerCount = %A" x.preferredRateControlLayerCount + ] |> sprintf "VkVideoEncodeQualityLevelPropertiesKHR { %s }" + end + + [] + type VkVideoEncodeRateControlLayerInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public averageBitrate : uint64 + val mutable public maxBitrate : uint64 + val mutable public frameRateNumerator : uint32 + val mutable public frameRateDenominator : uint32 + + new(pNext : nativeint, averageBitrate : uint64, maxBitrate : uint64, frameRateNumerator : uint32, frameRateDenominator : uint32) = + { + sType = 1000299002u + pNext = pNext + averageBitrate = averageBitrate + maxBitrate = maxBitrate + frameRateNumerator = frameRateNumerator + frameRateDenominator = frameRateDenominator + } + + new(averageBitrate : uint64, maxBitrate : uint64, frameRateNumerator : uint32, frameRateDenominator : uint32) = + VkVideoEncodeRateControlLayerInfoKHR(Unchecked.defaultof, averageBitrate, maxBitrate, frameRateNumerator, frameRateDenominator) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.averageBitrate = Unchecked.defaultof && x.maxBitrate = Unchecked.defaultof && x.frameRateNumerator = Unchecked.defaultof && x.frameRateDenominator = Unchecked.defaultof + + static member Empty = + VkVideoEncodeRateControlLayerInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "averageBitrate = %A" x.averageBitrate + sprintf "maxBitrate = %A" x.maxBitrate + sprintf "frameRateNumerator = %A" x.frameRateNumerator + sprintf "frameRateDenominator = %A" x.frameRateDenominator + ] |> sprintf "VkVideoEncodeRateControlLayerInfoKHR { %s }" + end + + [] + type VkVideoEncodeRateControlInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public flags : VkVideoEncodeRateControlFlagsKHR + val mutable public rateControlMode : VkVideoEncodeRateControlModeFlagsKHR + val mutable public layerCount : uint32 + val mutable public pLayers : nativeptr + val mutable public virtualBufferSizeInMs : uint32 + val mutable public initialVirtualBufferSizeInMs : uint32 + + new(pNext : nativeint, flags : VkVideoEncodeRateControlFlagsKHR, rateControlMode : VkVideoEncodeRateControlModeFlagsKHR, layerCount : uint32, pLayers : nativeptr, virtualBufferSizeInMs : uint32, initialVirtualBufferSizeInMs : uint32) = + { + sType = 1000299001u + pNext = pNext + flags = flags + rateControlMode = rateControlMode + layerCount = layerCount + pLayers = pLayers + virtualBufferSizeInMs = virtualBufferSizeInMs + initialVirtualBufferSizeInMs = initialVirtualBufferSizeInMs + } + + new(flags : VkVideoEncodeRateControlFlagsKHR, rateControlMode : VkVideoEncodeRateControlModeFlagsKHR, layerCount : uint32, pLayers : nativeptr, virtualBufferSizeInMs : uint32, initialVirtualBufferSizeInMs : uint32) = + VkVideoEncodeRateControlInfoKHR(Unchecked.defaultof, flags, rateControlMode, layerCount, pLayers, virtualBufferSizeInMs, initialVirtualBufferSizeInMs) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.rateControlMode = Unchecked.defaultof && x.layerCount = Unchecked.defaultof && x.pLayers = Unchecked.defaultof> && x.virtualBufferSizeInMs = Unchecked.defaultof && x.initialVirtualBufferSizeInMs = Unchecked.defaultof + + static member Empty = + VkVideoEncodeRateControlInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "flags = %A" x.flags + sprintf "rateControlMode = %A" x.rateControlMode + sprintf "layerCount = %A" x.layerCount + sprintf "pLayers = %A" x.pLayers + sprintf "virtualBufferSizeInMs = %A" x.virtualBufferSizeInMs + sprintf "initialVirtualBufferSizeInMs = %A" x.initialVirtualBufferSizeInMs + ] |> sprintf "VkVideoEncodeRateControlInfoKHR { %s }" + end + + [] + type VkVideoEncodeSessionParametersFeedbackInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public hasOverrides : VkBool32 + + new(pNext : nativeint, hasOverrides : VkBool32) = + { + sType = 1000299010u + pNext = pNext + hasOverrides = hasOverrides + } + + new(hasOverrides : VkBool32) = + VkVideoEncodeSessionParametersFeedbackInfoKHR(Unchecked.defaultof, hasOverrides) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.hasOverrides = Unchecked.defaultof + + static member Empty = + VkVideoEncodeSessionParametersFeedbackInfoKHR(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "hasOverrides = %A" x.hasOverrides + ] |> sprintf "VkVideoEncodeSessionParametersFeedbackInfoKHR { %s }" + end + + [] + type VkVideoEncodeSessionParametersGetInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public videoSessionParameters : KHRVideoQueue.VkVideoSessionParametersKHR + + new(pNext : nativeint, videoSessionParameters : KHRVideoQueue.VkVideoSessionParametersKHR) = + { + sType = 1000299009u + pNext = pNext + videoSessionParameters = videoSessionParameters + } + + new(videoSessionParameters : KHRVideoQueue.VkVideoSessionParametersKHR) = + VkVideoEncodeSessionParametersGetInfoKHR(Unchecked.defaultof, videoSessionParameters) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.videoSessionParameters = Unchecked.defaultof + + static member Empty = + VkVideoEncodeSessionParametersGetInfoKHR(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "videoSessionParameters = %A" x.videoSessionParameters + ] |> sprintf "VkVideoEncodeSessionParametersGetInfoKHR { %s }" + end + + [] + type VkVideoEncodeUsageInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public videoUsageHints : VkVideoEncodeUsageFlagsKHR + val mutable public videoContentHints : VkVideoEncodeContentFlagsKHR + val mutable public tuningMode : VkVideoEncodeTuningModeKHR + + new(pNext : nativeint, videoUsageHints : VkVideoEncodeUsageFlagsKHR, videoContentHints : VkVideoEncodeContentFlagsKHR, tuningMode : VkVideoEncodeTuningModeKHR) = + { + sType = 1000299004u + pNext = pNext + videoUsageHints = videoUsageHints + videoContentHints = videoContentHints + tuningMode = tuningMode + } + + new(videoUsageHints : VkVideoEncodeUsageFlagsKHR, videoContentHints : VkVideoEncodeContentFlagsKHR, tuningMode : VkVideoEncodeTuningModeKHR) = + VkVideoEncodeUsageInfoKHR(Unchecked.defaultof, videoUsageHints, videoContentHints, tuningMode) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.videoUsageHints = Unchecked.defaultof && x.videoContentHints = Unchecked.defaultof && x.tuningMode = Unchecked.defaultof + + static member Empty = + VkVideoEncodeUsageInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "videoUsageHints = %A" x.videoUsageHints + sprintf "videoContentHints = %A" x.videoContentHints + sprintf "tuningMode = %A" x.tuningMode + ] |> sprintf "VkVideoEncodeUsageInfoKHR { %s }" + end + + + [] + module EnumExtensions = + type Vulkan13.VkAccessFlags2 with + static member inline Access2VideoEncodeReadBitKhr = unbox 0x00000020 + static member inline Access2VideoEncodeWriteBitKhr = unbox 0x00000040 + type VkBufferUsageFlags with + static member inline VideoEncodeDstBitKhr = unbox 0x00008000 + static member inline VideoEncodeSrcBitKhr = unbox 0x00010000 + type VkFormatFeatureFlags with + static member inline VideoEncodeInputBitKhr = unbox 0x08000000 + static member inline VideoEncodeDpbBitKhr = unbox 0x10000000 + type VkImageLayout with + static member inline VideoEncodeDstKhr = unbox 1000299000 + static member inline VideoEncodeSrcKhr = unbox 1000299001 + static member inline VideoEncodeDpbKhr = unbox 1000299002 + type VkImageUsageFlags with + static member inline VideoEncodeDstBitKhr = unbox 0x00002000 + static member inline VideoEncodeSrcBitKhr = unbox 0x00004000 + static member inline VideoEncodeDpbBitKhr = unbox 0x00008000 + type Vulkan13.VkPipelineStageFlags2 with + static member inline PipelineStage2VideoEncodeBitKhr = unbox 0x08000000 + type KHRVideoQueue.VkQueryResultStatusKHR with + static member inline InsufficientBitstreamBufferRange = unbox -1000299000 + type VkQueryType with + static member inline VideoEncodeFeedbackKhr = unbox 1000299000 + type VkQueueFlags with + static member inline VideoEncodeBitKhr = unbox 0x00000040 + type VkResult with + static member inline ErrorInvalidVideoStdParametersKhr = unbox -1000299000 + type KHRVideoQueue.VkVideoCodingControlFlagsKHR with + static member inline EncodeRateControlBit = unbox 0x00000002 + static member inline EncodeQualityLevelBit = unbox 0x00000004 + type KHRVideoQueue.VkVideoSessionCreateFlagsKHR with + static member inline AllowEncodeParameterOptimizationsBit = unbox 0x00000002 + + module VkRaw = + [] + type VkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHRDel = delegate of VkPhysicalDevice * nativeptr * nativeptr -> VkResult + [] + type VkGetEncodedVideoSessionParametersKHRDel = delegate of VkDevice * nativeptr * nativeptr * nativeptr * nativeint -> VkResult + [] + type VkCmdEncodeVideoKHRDel = delegate of VkCommandBuffer * nativeptr -> unit + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRVideoEncodeQueue") + static let s_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR" + static let s_vkGetEncodedVideoSessionParametersKHRDel = VkRaw.vkImportInstanceDelegate "vkGetEncodedVideoSessionParametersKHR" + static let s_vkCmdEncodeVideoKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdEncodeVideoKHR" + static do Report.End(3) |> ignore + static member vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR = s_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHRDel + static member vkGetEncodedVideoSessionParametersKHR = s_vkGetEncodedVideoSessionParametersKHRDel + static member vkCmdEncodeVideoKHR = s_vkCmdEncodeVideoKHRDel + let vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(physicalDevice : VkPhysicalDevice, pQualityLevelInfo : nativeptr, pQualityLevelProperties : nativeptr) = Loader.vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR.Invoke(physicalDevice, pQualityLevelInfo, pQualityLevelProperties) + let vkGetEncodedVideoSessionParametersKHR(device : VkDevice, pVideoSessionParametersInfo : nativeptr, pFeedbackInfo : nativeptr, pDataSize : nativeptr, pData : nativeint) = Loader.vkGetEncodedVideoSessionParametersKHR.Invoke(device, pVideoSessionParametersInfo, pFeedbackInfo, pDataSize, pData) + let vkCmdEncodeVideoKHR(commandBuffer : VkCommandBuffer, pEncodeInfo : nativeptr) = Loader.vkCmdEncodeVideoKHR.Invoke(commandBuffer, pEncodeInfo) + + [] + module ``KHRFormatFeatureFlags2 | Vulkan13`` = + [] + module EnumExtensions = + type Vulkan13.VkFormatFeatureFlags2 with + static member inline FormatFeature2VideoEncodeInputBitKhr = unbox 0x08000000 + static member inline FormatFeature2VideoEncodeDpbBitKhr = unbox 0x10000000 + + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +/// Deprecated by KHRBufferDeviceAddress. +module EXTBufferDeviceAddress = + let Type = ExtensionType.Device + let Name = "VK_EXT_buffer_device_address" + let Number = 245 + + [] + type VkBufferDeviceAddressCreateInfoEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public deviceAddress : VkDeviceAddress + + new(pNext : nativeint, deviceAddress : VkDeviceAddress) = + { + sType = 1000244002u + pNext = pNext + deviceAddress = deviceAddress + } + + new(deviceAddress : VkDeviceAddress) = + VkBufferDeviceAddressCreateInfoEXT(Unchecked.defaultof, deviceAddress) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.deviceAddress = Unchecked.defaultof + + static member Empty = + VkBufferDeviceAddressCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "deviceAddress = %A" x.deviceAddress + ] |> sprintf "VkBufferDeviceAddressCreateInfoEXT { %s }" + end + + type VkBufferDeviceAddressInfoEXT = Vulkan12.VkBufferDeviceAddressInfo + + [] + type VkPhysicalDeviceBufferDeviceAddressFeaturesEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public bufferDeviceAddress : VkBool32 + val mutable public bufferDeviceAddressCaptureReplay : VkBool32 + val mutable public bufferDeviceAddressMultiDevice : VkBool32 + + new(pNext : nativeint, bufferDeviceAddress : VkBool32, bufferDeviceAddressCaptureReplay : VkBool32, bufferDeviceAddressMultiDevice : VkBool32) = + { + sType = 1000244000u + pNext = pNext + bufferDeviceAddress = bufferDeviceAddress + bufferDeviceAddressCaptureReplay = bufferDeviceAddressCaptureReplay + bufferDeviceAddressMultiDevice = bufferDeviceAddressMultiDevice + } + + new(bufferDeviceAddress : VkBool32, bufferDeviceAddressCaptureReplay : VkBool32, bufferDeviceAddressMultiDevice : VkBool32) = + VkPhysicalDeviceBufferDeviceAddressFeaturesEXT(Unchecked.defaultof, bufferDeviceAddress, bufferDeviceAddressCaptureReplay, bufferDeviceAddressMultiDevice) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.bufferDeviceAddress = Unchecked.defaultof && x.bufferDeviceAddressCaptureReplay = Unchecked.defaultof && x.bufferDeviceAddressMultiDevice = Unchecked.defaultof + + static member Empty = + VkPhysicalDeviceBufferDeviceAddressFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "bufferDeviceAddress = %A" x.bufferDeviceAddress + sprintf "bufferDeviceAddressCaptureReplay = %A" x.bufferDeviceAddressCaptureReplay + sprintf "bufferDeviceAddressMultiDevice = %A" x.bufferDeviceAddressMultiDevice + ] |> sprintf "VkPhysicalDeviceBufferDeviceAddressFeaturesEXT { %s }" + end + + type VkPhysicalDeviceBufferAddressFeaturesEXT = VkPhysicalDeviceBufferDeviceAddressFeaturesEXT -module KHRDedicatedAllocation = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetMemoryRequirements2 - let Name = "VK_KHR_dedicated_allocation" - let Number = 128 - let Required = [ KHRGetMemoryRequirements2.Name ] + [] + module EnumExtensions = + type VkBufferCreateFlags with + static member inline DeviceAddressCaptureReplayBitExt = unbox 0x00000010 + type VkBufferUsageFlags with + static member inline ShaderDeviceAddressBitExt = unbox 0x00020000 + type VkResult with + static member inline ErrorInvalidDeviceAddressExt = unbox 1000257000 + + module VkRaw = + [] + type VkGetBufferDeviceAddressEXTDel = delegate of VkDevice * nativeptr -> VkDeviceAddress + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTBufferDeviceAddress") + static let s_vkGetBufferDeviceAddressEXTDel = VkRaw.vkImportInstanceDelegate "vkGetBufferDeviceAddressEXT" + static do Report.End(3) |> ignore + static member vkGetBufferDeviceAddressEXT = s_vkGetBufferDeviceAddressEXTDel + let vkGetBufferDeviceAddressEXT(device : VkDevice, pInfo : nativeptr) = Loader.vkGetBufferDeviceAddressEXT.Invoke(device, pInfo) + +/// Requires (Vulkan11, KHRDynamicRendering) | Vulkan13. +module KHRMaintenance5 = + let Type = ExtensionType.Device + let Name = "VK_KHR_maintenance5" + let Number = 471 + + [] + type VkPipelineCreateFlags2KHR = + | All = 7 + | None = 0 + | PipelineCreate2DisableOptimizationBit = 0x00000001 + | PipelineCreate2AllowDerivativesBit = 0x00000002 + | PipelineCreate2DerivativeBit = 0x00000004 + + [] + type VkBufferUsageFlags2KHR = + | All = 511 + | None = 0 + | BufferUsage2TransferSrcBit = 0x00000001 + | BufferUsage2TransferDstBit = 0x00000002 + | BufferUsage2UniformTexelBufferBit = 0x00000004 + | BufferUsage2StorageTexelBufferBit = 0x00000008 + | BufferUsage2UniformBufferBit = 0x00000010 + | BufferUsage2StorageBufferBit = 0x00000020 + | BufferUsage2IndexBufferBit = 0x00000040 + | BufferUsage2VertexBufferBit = 0x00000080 + | BufferUsage2IndirectBufferBit = 0x00000100 + + + [] + type VkBufferUsageFlags2CreateInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public usage : VkBufferUsageFlags2KHR + new(pNext : nativeint, usage : VkBufferUsageFlags2KHR) = + { + sType = 1000470006u + pNext = pNext + usage = usage + } - type VkMemoryDedicatedAllocateInfoKHR = VkMemoryDedicatedAllocateInfo + new(usage : VkBufferUsageFlags2KHR) = + VkBufferUsageFlags2CreateInfoKHR(Unchecked.defaultof, usage) - type VkMemoryDedicatedRequirementsKHR = VkMemoryDedicatedRequirements + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.usage = Unchecked.defaultof + static member Empty = + VkBufferUsageFlags2CreateInfoKHR(Unchecked.defaultof, Unchecked.defaultof) + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "usage = %A" x.usage + ] |> sprintf "VkBufferUsageFlags2CreateInfoKHR { %s }" + end -module KHRBindMemory2 = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_KHR_bind_memory2" - let Number = 158 + [] + type VkImageSubresource2KHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public imageSubresource : VkImageSubresource + new(pNext : nativeint, imageSubresource : VkImageSubresource) = + { + sType = 1000338003u + pNext = pNext + imageSubresource = imageSubresource + } - type VkBindBufferMemoryInfoKHR = VkBindBufferMemoryInfo + new(imageSubresource : VkImageSubresource) = + VkImageSubresource2KHR(Unchecked.defaultof, imageSubresource) - type VkBindImageMemoryInfoKHR = VkBindImageMemoryInfo + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.imageSubresource = Unchecked.defaultof + static member Empty = + VkImageSubresource2KHR(Unchecked.defaultof, Unchecked.defaultof) - [] - module EnumExtensions = - type VkImageCreateFlags with - static member inline AliasBitKhr = unbox 0x00000400 + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "imageSubresource = %A" x.imageSubresource + ] |> sprintf "VkImageSubresource2KHR { %s }" + end - module VkRaw = - [] - type VkBindBufferMemory2KHRDel = delegate of VkDevice * uint32 * nativeptr -> VkResult - [] - type VkBindImageMemory2KHRDel = delegate of VkDevice * uint32 * nativeptr -> VkResult + [] + type VkDeviceImageSubresourceInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public pCreateInfo : nativeptr + val mutable public pSubresource : nativeptr - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRBindMemory2") - static let s_vkBindBufferMemory2KHRDel = VkRaw.vkImportInstanceDelegate "vkBindBufferMemory2KHR" - static let s_vkBindImageMemory2KHRDel = VkRaw.vkImportInstanceDelegate "vkBindImageMemory2KHR" - static do Report.End(3) |> ignore - static member vkBindBufferMemory2KHR = s_vkBindBufferMemory2KHRDel - static member vkBindImageMemory2KHR = s_vkBindImageMemory2KHRDel - let vkBindBufferMemory2KHR(device : VkDevice, bindInfoCount : uint32, pBindInfos : nativeptr) = Loader.vkBindBufferMemory2KHR.Invoke(device, bindInfoCount, pBindInfos) - let vkBindImageMemory2KHR(device : VkDevice, bindInfoCount : uint32, pBindInfos : nativeptr) = Loader.vkBindImageMemory2KHR.Invoke(device, bindInfoCount, pBindInfos) + new(pNext : nativeint, pCreateInfo : nativeptr, pSubresource : nativeptr) = + { + sType = 1000470004u + pNext = pNext + pCreateInfo = pCreateInfo + pSubresource = pSubresource + } -module KHRMaintenance1 = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_KHR_maintenance1" - let Number = 70 + new(pCreateInfo : nativeptr, pSubresource : nativeptr) = + VkDeviceImageSubresourceInfoKHR(Unchecked.defaultof, pCreateInfo, pSubresource) + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.pCreateInfo = Unchecked.defaultof> && x.pSubresource = Unchecked.defaultof> - type VkCommandPoolTrimFlagsKHR = VkCommandPoolTrimFlags + static member Empty = + VkDeviceImageSubresourceInfoKHR(Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof>) - [] - module EnumExtensions = - type VkFormatFeatureFlags with - static member inline TransferSrcBitKhr = unbox 0x00004000 - static member inline TransferDstBitKhr = unbox 0x00008000 - type VkImageCreateFlags with - static member inline D2dArrayCompatibleBitKhr = unbox 0x00000020 - type VkResult with - static member inline ErrorOutOfPoolMemoryKhr = unbox 1000069000 + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "pCreateInfo = %A" x.pCreateInfo + sprintf "pSubresource = %A" x.pSubresource + ] |> sprintf "VkDeviceImageSubresourceInfoKHR { %s }" + end - module VkRaw = - [] - type VkTrimCommandPoolKHRDel = delegate of VkDevice * VkCommandPool * VkCommandPoolTrimFlags -> unit + [] + type VkPhysicalDeviceMaintenance5FeaturesKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public maintenance5 : VkBool32 - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRMaintenance1") - static let s_vkTrimCommandPoolKHRDel = VkRaw.vkImportInstanceDelegate "vkTrimCommandPoolKHR" - static do Report.End(3) |> ignore - static member vkTrimCommandPoolKHR = s_vkTrimCommandPoolKHRDel - let vkTrimCommandPoolKHR(device : VkDevice, commandPool : VkCommandPool, flags : VkCommandPoolTrimFlags) = Loader.vkTrimCommandPoolKHR.Invoke(device, commandPool, flags) + new(pNext : nativeint, maintenance5 : VkBool32) = + { + sType = 1000470000u + pNext = pNext + maintenance5 = maintenance5 + } -module EXTDebugReport = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_EXT_debug_report" - let Number = 12 + new(maintenance5 : VkBool32) = + VkPhysicalDeviceMaintenance5FeaturesKHR(Unchecked.defaultof, maintenance5) + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.maintenance5 = Unchecked.defaultof - type PFN_vkDebugReportCallbackEXT = nativeint + static member Empty = + VkPhysicalDeviceMaintenance5FeaturesKHR(Unchecked.defaultof, Unchecked.defaultof) + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "maintenance5 = %A" x.maintenance5 + ] |> sprintf "VkPhysicalDeviceMaintenance5FeaturesKHR { %s }" + end [] - type VkDebugReportCallbackEXT = + type VkPhysicalDeviceMaintenance5PropertiesKHR = struct - val mutable public Handle : uint64 - new(h) = { Handle = h } - static member Null = VkDebugReportCallbackEXT(0UL) - member x.IsNull = x.Handle = 0UL - member x.IsValid = x.Handle <> 0UL - end + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public earlyFragmentMultisampleCoverageAfterSampleCounting : VkBool32 + val mutable public earlyFragmentSampleMaskTestBeforeSampleCounting : VkBool32 + val mutable public depthStencilSwizzleOneSupport : VkBool32 + val mutable public polygonModePointSize : VkBool32 + val mutable public nonStrictSinglePixelWideLinesUseParallelogram : VkBool32 + val mutable public nonStrictWideLinesUseParallelogram : VkBool32 - [] - type VkDebugReportFlagsEXT = - | All = 31 - | None = 0 - | InformationBit = 0x00000001 - | WarningBit = 0x00000002 - | PerformanceWarningBit = 0x00000004 - | ErrorBit = 0x00000008 - | DebugBit = 0x00000010 + new(pNext : nativeint, earlyFragmentMultisampleCoverageAfterSampleCounting : VkBool32, earlyFragmentSampleMaskTestBeforeSampleCounting : VkBool32, depthStencilSwizzleOneSupport : VkBool32, polygonModePointSize : VkBool32, nonStrictSinglePixelWideLinesUseParallelogram : VkBool32, nonStrictWideLinesUseParallelogram : VkBool32) = + { + sType = 1000470001u + pNext = pNext + earlyFragmentMultisampleCoverageAfterSampleCounting = earlyFragmentMultisampleCoverageAfterSampleCounting + earlyFragmentSampleMaskTestBeforeSampleCounting = earlyFragmentSampleMaskTestBeforeSampleCounting + depthStencilSwizzleOneSupport = depthStencilSwizzleOneSupport + polygonModePointSize = polygonModePointSize + nonStrictSinglePixelWideLinesUseParallelogram = nonStrictSinglePixelWideLinesUseParallelogram + nonStrictWideLinesUseParallelogram = nonStrictWideLinesUseParallelogram + } - type VkDebugReportObjectTypeEXT = - | Unknown = 0 - | Instance = 1 - | PhysicalDevice = 2 - | Device = 3 - | Queue = 4 - | Semaphore = 5 - | CommandBuffer = 6 - | Fence = 7 - | DeviceMemory = 8 - | Buffer = 9 - | Image = 10 - | Event = 11 - | QueryPool = 12 - | BufferView = 13 - | ImageView = 14 - | ShaderModule = 15 - | PipelineCache = 16 - | PipelineLayout = 17 - | RenderPass = 18 - | Pipeline = 19 - | DescriptorSetLayout = 20 - | Sampler = 21 - | DescriptorPool = 22 - | DescriptorSet = 23 - | Framebuffer = 24 - | CommandPool = 25 - | Surface = 26 - | Swapchain = 27 - | DebugReportCallback = 28 - | Display = 29 - | DisplayMode = 30 - | ValidationCache = 33 + new(earlyFragmentMultisampleCoverageAfterSampleCounting : VkBool32, earlyFragmentSampleMaskTestBeforeSampleCounting : VkBool32, depthStencilSwizzleOneSupport : VkBool32, polygonModePointSize : VkBool32, nonStrictSinglePixelWideLinesUseParallelogram : VkBool32, nonStrictWideLinesUseParallelogram : VkBool32) = + VkPhysicalDeviceMaintenance5PropertiesKHR(Unchecked.defaultof, earlyFragmentMultisampleCoverageAfterSampleCounting, earlyFragmentSampleMaskTestBeforeSampleCounting, depthStencilSwizzleOneSupport, polygonModePointSize, nonStrictSinglePixelWideLinesUseParallelogram, nonStrictWideLinesUseParallelogram) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.earlyFragmentMultisampleCoverageAfterSampleCounting = Unchecked.defaultof && x.earlyFragmentSampleMaskTestBeforeSampleCounting = Unchecked.defaultof && x.depthStencilSwizzleOneSupport = Unchecked.defaultof && x.polygonModePointSize = Unchecked.defaultof && x.nonStrictSinglePixelWideLinesUseParallelogram = Unchecked.defaultof && x.nonStrictWideLinesUseParallelogram = Unchecked.defaultof + + static member Empty = + VkPhysicalDeviceMaintenance5PropertiesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "earlyFragmentMultisampleCoverageAfterSampleCounting = %A" x.earlyFragmentMultisampleCoverageAfterSampleCounting + sprintf "earlyFragmentSampleMaskTestBeforeSampleCounting = %A" x.earlyFragmentSampleMaskTestBeforeSampleCounting + sprintf "depthStencilSwizzleOneSupport = %A" x.depthStencilSwizzleOneSupport + sprintf "polygonModePointSize = %A" x.polygonModePointSize + sprintf "nonStrictSinglePixelWideLinesUseParallelogram = %A" x.nonStrictSinglePixelWideLinesUseParallelogram + sprintf "nonStrictWideLinesUseParallelogram = %A" x.nonStrictWideLinesUseParallelogram + ] |> sprintf "VkPhysicalDeviceMaintenance5PropertiesKHR { %s }" + end [] - type VkDebugReportCallbackCreateInfoEXT = + type VkPipelineCreateFlags2CreateInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public flags : VkDebugReportFlagsEXT - val mutable public pfnCallback : PFN_vkDebugReportCallbackEXT - val mutable public pUserData : nativeint + val mutable public flags : VkPipelineCreateFlags2KHR - new(pNext : nativeint, flags : VkDebugReportFlagsEXT, pfnCallback : PFN_vkDebugReportCallbackEXT, pUserData : nativeint) = + new(pNext : nativeint, flags : VkPipelineCreateFlags2KHR) = { - sType = 1000011000u + sType = 1000470005u pNext = pNext flags = flags - pfnCallback = pfnCallback - pUserData = pUserData } - new(flags : VkDebugReportFlagsEXT, pfnCallback : PFN_vkDebugReportCallbackEXT, pUserData : nativeint) = - VkDebugReportCallbackCreateInfoEXT(Unchecked.defaultof, flags, pfnCallback, pUserData) + new(flags : VkPipelineCreateFlags2KHR) = + VkPipelineCreateFlags2CreateInfoKHR(Unchecked.defaultof, flags) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.pfnCallback = Unchecked.defaultof && x.pUserData = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof static member Empty = - VkDebugReportCallbackCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPipelineCreateFlags2CreateInfoKHR(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext sprintf "flags = %A" x.flags - sprintf "pfnCallback = %A" x.pfnCallback - sprintf "pUserData = %A" x.pUserData - ] |> sprintf "VkDebugReportCallbackCreateInfoEXT { %s }" + ] |> sprintf "VkPipelineCreateFlags2CreateInfoKHR { %s }" + end + + [] + type VkRenderingAreaInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public viewMask : uint32 + val mutable public colorAttachmentCount : uint32 + val mutable public pColorAttachmentFormats : nativeptr + val mutable public depthAttachmentFormat : VkFormat + val mutable public stencilAttachmentFormat : VkFormat + + new(pNext : nativeint, viewMask : uint32, colorAttachmentCount : uint32, pColorAttachmentFormats : nativeptr, depthAttachmentFormat : VkFormat, stencilAttachmentFormat : VkFormat) = + { + sType = 1000470003u + pNext = pNext + viewMask = viewMask + colorAttachmentCount = colorAttachmentCount + pColorAttachmentFormats = pColorAttachmentFormats + depthAttachmentFormat = depthAttachmentFormat + stencilAttachmentFormat = stencilAttachmentFormat + } + + new(viewMask : uint32, colorAttachmentCount : uint32, pColorAttachmentFormats : nativeptr, depthAttachmentFormat : VkFormat, stencilAttachmentFormat : VkFormat) = + VkRenderingAreaInfoKHR(Unchecked.defaultof, viewMask, colorAttachmentCount, pColorAttachmentFormats, depthAttachmentFormat, stencilAttachmentFormat) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.viewMask = Unchecked.defaultof && x.colorAttachmentCount = Unchecked.defaultof && x.pColorAttachmentFormats = Unchecked.defaultof> && x.depthAttachmentFormat = Unchecked.defaultof && x.stencilAttachmentFormat = Unchecked.defaultof + + static member Empty = + VkRenderingAreaInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "viewMask = %A" x.viewMask + sprintf "colorAttachmentCount = %A" x.colorAttachmentCount + sprintf "pColorAttachmentFormats = %A" x.pColorAttachmentFormats + sprintf "depthAttachmentFormat = %A" x.depthAttachmentFormat + sprintf "stencilAttachmentFormat = %A" x.stencilAttachmentFormat + ] |> sprintf "VkRenderingAreaInfoKHR { %s }" + end + + [] + type VkSubresourceLayout2KHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public subresourceLayout : VkSubresourceLayout + + new(pNext : nativeint, subresourceLayout : VkSubresourceLayout) = + { + sType = 1000338002u + pNext = pNext + subresourceLayout = subresourceLayout + } + + new(subresourceLayout : VkSubresourceLayout) = + VkSubresourceLayout2KHR(Unchecked.defaultof, subresourceLayout) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.subresourceLayout = Unchecked.defaultof + + static member Empty = + VkSubresourceLayout2KHR(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "subresourceLayout = %A" x.subresourceLayout + ] |> sprintf "VkSubresourceLayout2KHR { %s }" end [] module EnumExtensions = - type VkObjectType with - static member inline DebugReportCallbackExt = unbox 1000011000 - type VkResult with - static member inline ErrorValidationFailedExt = unbox -1000011001 + type VkFormat with + static member inline A1b5g5r5UnormPack16Khr = unbox 1000470000 + static member inline A8UnormKhr = unbox 1000470001 module VkRaw = [] - type VkCreateDebugReportCallbackEXTDel = delegate of VkInstance * nativeptr * nativeptr * nativeptr -> VkResult + type VkCmdBindIndexBuffer2KHRDel = delegate of VkCommandBuffer * VkBuffer * VkDeviceSize * VkDeviceSize * VkIndexType -> unit [] - type VkDestroyDebugReportCallbackEXTDel = delegate of VkInstance * VkDebugReportCallbackEXT * nativeptr -> unit + type VkGetRenderingAreaGranularityKHRDel = delegate of VkDevice * nativeptr * nativeptr -> unit + [] + type VkGetDeviceImageSubresourceLayoutKHRDel = delegate of VkDevice * nativeptr * nativeptr -> unit [] - type VkDebugReportMessageEXTDel = delegate of VkInstance * VkDebugReportFlagsEXT * VkDebugReportObjectTypeEXT * uint64 * uint64 * int * cstr * cstr -> unit + type VkGetImageSubresourceLayout2KHRDel = delegate of VkDevice * VkImage * nativeptr * nativeptr -> unit [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading EXTDebugReport") - static let s_vkCreateDebugReportCallbackEXTDel = VkRaw.vkImportInstanceDelegate "vkCreateDebugReportCallbackEXT" - static let s_vkDestroyDebugReportCallbackEXTDel = VkRaw.vkImportInstanceDelegate "vkDestroyDebugReportCallbackEXT" - static let s_vkDebugReportMessageEXTDel = VkRaw.vkImportInstanceDelegate "vkDebugReportMessageEXT" + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRMaintenance5") + static let s_vkCmdBindIndexBuffer2KHRDel = VkRaw.vkImportInstanceDelegate "vkCmdBindIndexBuffer2KHR" + static let s_vkGetRenderingAreaGranularityKHRDel = VkRaw.vkImportInstanceDelegate "vkGetRenderingAreaGranularityKHR" + static let s_vkGetDeviceImageSubresourceLayoutKHRDel = VkRaw.vkImportInstanceDelegate "vkGetDeviceImageSubresourceLayoutKHR" + static let s_vkGetImageSubresourceLayout2KHRDel = VkRaw.vkImportInstanceDelegate "vkGetImageSubresourceLayout2KHR" static do Report.End(3) |> ignore - static member vkCreateDebugReportCallbackEXT = s_vkCreateDebugReportCallbackEXTDel - static member vkDestroyDebugReportCallbackEXT = s_vkDestroyDebugReportCallbackEXTDel - static member vkDebugReportMessageEXT = s_vkDebugReportMessageEXTDel - let vkCreateDebugReportCallbackEXT(instance : VkInstance, pCreateInfo : nativeptr, pAllocator : nativeptr, pCallback : nativeptr) = Loader.vkCreateDebugReportCallbackEXT.Invoke(instance, pCreateInfo, pAllocator, pCallback) - let vkDestroyDebugReportCallbackEXT(instance : VkInstance, callback : VkDebugReportCallbackEXT, pAllocator : nativeptr) = Loader.vkDestroyDebugReportCallbackEXT.Invoke(instance, callback, pAllocator) - let vkDebugReportMessageEXT(instance : VkInstance, flags : VkDebugReportFlagsEXT, objectType : VkDebugReportObjectTypeEXT, _object : uint64, location : uint64, messageCode : int, pLayerPrefix : cstr, pMessage : cstr) = Loader.vkDebugReportMessageEXT.Invoke(instance, flags, objectType, _object, location, messageCode, pLayerPrefix, pMessage) + static member vkCmdBindIndexBuffer2KHR = s_vkCmdBindIndexBuffer2KHRDel + static member vkGetRenderingAreaGranularityKHR = s_vkGetRenderingAreaGranularityKHRDel + static member vkGetDeviceImageSubresourceLayoutKHR = s_vkGetDeviceImageSubresourceLayoutKHRDel + static member vkGetImageSubresourceLayout2KHR = s_vkGetImageSubresourceLayout2KHRDel + let vkCmdBindIndexBuffer2KHR(commandBuffer : VkCommandBuffer, buffer : VkBuffer, offset : VkDeviceSize, size : VkDeviceSize, indexType : VkIndexType) = Loader.vkCmdBindIndexBuffer2KHR.Invoke(commandBuffer, buffer, offset, size, indexType) + let vkGetRenderingAreaGranularityKHR(device : VkDevice, pRenderingAreaInfo : nativeptr, pGranularity : nativeptr) = Loader.vkGetRenderingAreaGranularityKHR.Invoke(device, pRenderingAreaInfo, pGranularity) + let vkGetDeviceImageSubresourceLayoutKHR(device : VkDevice, pInfo : nativeptr, pLayout : nativeptr) = Loader.vkGetDeviceImageSubresourceLayoutKHR.Invoke(device, pInfo, pLayout) + let vkGetImageSubresourceLayout2KHR(device : VkDevice, image : VkImage, pSubresource : nativeptr, pLayout : nativeptr) = Loader.vkGetImageSubresourceLayout2KHR.Invoke(device, image, pSubresource, pLayout) - module Vulkan11 = + [] + module ``Vulkan11 | KHRDeviceGroup`` = [] module EnumExtensions = - type VkDebugReportObjectTypeEXT with - static member inline SamplerYcbcrConversion = unbox 1000156000 - static member inline DescriptorUpdateTemplate = unbox 1000085000 + type VkPipelineCreateFlags2KHR with + static member inline PipelineCreate2ViewIndexFromDeviceIndexBit = unbox 0x00000008 + static member inline PipelineCreate2DispatchBaseBit = unbox 0x00000010 + + + [] + module ``NVRayTracing`` = + [] + module EnumExtensions = + type VkBufferUsageFlags2KHR with + static member inline BufferUsage2RayTracingBitNv = unbox 0x00000400 + type VkPipelineCreateFlags2KHR with + static member inline PipelineCreate2DeferCompileBitNv = unbox 0x00000020 + + + [] + module ``KHRPipelineExecutableProperties`` = + [] + module EnumExtensions = + type VkPipelineCreateFlags2KHR with + static member inline PipelineCreate2CaptureStatisticsBit = unbox 0x00000040 + static member inline PipelineCreate2CaptureInternalRepresentationsBit = unbox 0x00000080 + + + [] + module ``Vulkan13 | EXTPipelineCreationCacheControl`` = + [] + module EnumExtensions = + type VkPipelineCreateFlags2KHR with + static member inline PipelineCreate2FailOnPipelineCompileRequiredBit = unbox 0x00000100 + static member inline PipelineCreate2EarlyReturnOnFailureBit = unbox 0x00000200 + + + [] + module ``EXTGraphicsPipelineLibrary`` = + [] + module EnumExtensions = + type VkPipelineCreateFlags2KHR with + static member inline PipelineCreate2LinkTimeOptimizationBitExt = unbox 0x00000400 + static member inline PipelineCreate2RetainLinkTimeOptimizationInfoBitExt = unbox 0x00800000 + + + [] + module ``KHRPipelineLibrary`` = + [] + module EnumExtensions = + type VkPipelineCreateFlags2KHR with + static member inline PipelineCreate2LibraryBit = unbox 0x00000800 + + + [] + module ``KHRRayTracingPipeline`` = + [] + module EnumExtensions = + type VkBufferUsageFlags2KHR with + static member inline BufferUsage2ShaderBindingTableBit = unbox 0x00000400 + type VkPipelineCreateFlags2KHR with + static member inline PipelineCreate2RayTracingSkipTrianglesBit = unbox 0x00001000 + static member inline PipelineCreate2RayTracingSkipAabbsBit = unbox 0x00002000 + static member inline PipelineCreate2RayTracingNoNullAnyHitShadersBit = unbox 0x00004000 + static member inline PipelineCreate2RayTracingNoNullClosestHitShadersBit = unbox 0x00008000 + static member inline PipelineCreate2RayTracingNoNullMissShadersBit = unbox 0x00010000 + static member inline PipelineCreate2RayTracingNoNullIntersectionShadersBit = unbox 0x00020000 + static member inline PipelineCreate2RayTracingShaderGroupHandleCaptureReplayBit = unbox 0x00080000 + + + [] + module ``NVDeviceGeneratedCommands`` = + [] + module EnumExtensions = + type VkPipelineCreateFlags2KHR with + static member inline PipelineCreate2IndirectBindableBitNv = unbox 0x00040000 + + + [] + module ``NVRayTracingMotionBlur`` = + [] + module EnumExtensions = + type VkPipelineCreateFlags2KHR with + static member inline PipelineCreate2RayTracingAllowMotionBitNv = unbox 0x00100000 + + + [] + module ``(KHRDynamicRendering | Vulkan13), KHRFragmentShadingRate`` = + [] + module EnumExtensions = + type VkPipelineCreateFlags2KHR with + static member inline PipelineCreate2RenderingFragmentShadingRateAttachmentBit = unbox 0x00200000 + + + [] + module ``(KHRDynamicRendering | Vulkan13), EXTFragmentDensityMap`` = + [] + module EnumExtensions = + type VkPipelineCreateFlags2KHR with + static member inline PipelineCreate2RenderingFragmentDensityMapAttachmentBitExt = unbox 0x00400000 + + + [] + module ``EXTOpacityMicromap`` = + [] + module EnumExtensions = + type VkBufferUsageFlags2KHR with + static member inline BufferUsage2MicromapBuildInputReadOnlyBitExt = unbox 0x00800000 + static member inline BufferUsage2MicromapStorageBitExt = unbox 0x01000000 + type VkPipelineCreateFlags2KHR with + static member inline PipelineCreate2RayTracingOpacityMicromapBitExt = unbox 0x01000000 + + + [] + module ``EXTAttachmentFeedbackLoopLayout`` = + [] + module EnumExtensions = + type VkPipelineCreateFlags2KHR with + static member inline PipelineCreate2ColorAttachmentFeedbackLoopBitExt = unbox 0x02000000 + static member inline PipelineCreate2DepthStencilAttachmentFeedbackLoopBitExt = unbox 0x04000000 + + + [] + module ``EXTPipelineProtectedAccess`` = + [] + module EnumExtensions = + type VkPipelineCreateFlags2KHR with + static member inline PipelineCreate2NoProtectedAccessBitExt = unbox 0x08000000 + static member inline PipelineCreate2ProtectedAccessOnlyBitExt = unbox 0x40000000 + + + [] + module ``NVDisplacementMicromap`` = + [] + module EnumExtensions = + type VkPipelineCreateFlags2KHR with + static member inline PipelineCreate2RayTracingDisplacementMicromapBitNv = unbox 0x10000000 + + + [] + module ``EXTDescriptorBuffer`` = + [] + module EnumExtensions = + type VkBufferUsageFlags2KHR with + static member inline BufferUsage2SamplerDescriptorBufferBitExt = unbox 0x00200000 + static member inline BufferUsage2ResourceDescriptorBufferBitExt = unbox 0x00400000 + static member inline BufferUsage2PushDescriptorsDescriptorBufferBitExt = unbox 0x04000000 + type VkPipelineCreateFlags2KHR with + static member inline PipelineCreate2DescriptorBufferBitExt = unbox 0x20000000 + + + [] + module ``EXTConditionalRendering`` = + [] + module EnumExtensions = + type VkBufferUsageFlags2KHR with + static member inline BufferUsage2ConditionalRenderingBitExt = unbox 0x00000200 + + + [] + module ``EXTTransformFeedback`` = + [] + module EnumExtensions = + type VkBufferUsageFlags2KHR with + static member inline BufferUsage2TransformFeedbackBufferBitExt = unbox 0x00000800 + static member inline BufferUsage2TransformFeedbackCounterBufferBitExt = unbox 0x00001000 + + + [] + module ``KHRVideoDecodeQueue`` = + [] + module EnumExtensions = + type VkBufferUsageFlags2KHR with + static member inline BufferUsage2VideoDecodeSrcBit = unbox 0x00002000 + static member inline BufferUsage2VideoDecodeDstBit = unbox 0x00004000 + + + [] + module ``KHRVideoEncodeQueue`` = + [] + module EnumExtensions = + type VkBufferUsageFlags2KHR with + static member inline BufferUsage2VideoEncodeDstBit = unbox 0x00008000 + static member inline BufferUsage2VideoEncodeSrcBit = unbox 0x00010000 + + + [] + module ``Vulkan12 | KHRBufferDeviceAddress | EXTBufferDeviceAddress`` = + [] + module EnumExtensions = + type VkBufferUsageFlags2KHR with + static member inline BufferUsage2ShaderDeviceAddressBit = unbox 0x00020000 + + + [] + module ``KHRAccelerationStructure`` = + [] + module EnumExtensions = + type VkBufferUsageFlags2KHR with + static member inline BufferUsage2AccelerationStructureBuildInputReadOnlyBit = unbox 0x00080000 + static member inline BufferUsage2AccelerationStructureStorageBit = unbox 0x00100000 + + +/// Requires (((KHRGetPhysicalDeviceProperties2 | Vulkan11), KHRSynchronization2) | Vulkan13), KHRPipelineLibrary, KHRSpirv14. +module AMDXShaderEnqueue = + let Type = ExtensionType.Device + let Name = "VK_AMDX_shader_enqueue" + let Number = 135 + + [] + type VkDeviceOrHostAddressConstAMDX = + struct + [] + val mutable public deviceAddress : VkDeviceAddress + [] + val mutable public hostAddress : nativeint + + static member DeviceAddress(value : VkDeviceAddress) = + let mutable result = Unchecked.defaultof + result.deviceAddress <- value + result + + static member HostAddress(value : nativeint) = + let mutable result = Unchecked.defaultof + result.hostAddress <- value + result + + override x.ToString() = + String.concat "; " [ + sprintf "deviceAddress = %A" x.deviceAddress + sprintf "hostAddress = %A" x.hostAddress + ] |> sprintf "VkDeviceOrHostAddressConstAMDX { %s }" + end + + [] + type VkDispatchGraphCountInfoAMDX = + struct + val mutable public count : uint32 + val mutable public infos : VkDeviceOrHostAddressConstAMDX + val mutable public stride : uint64 + + new(count : uint32, infos : VkDeviceOrHostAddressConstAMDX, stride : uint64) = + { + count = count + infos = infos + stride = stride + } + + member x.IsEmpty = + x.count = Unchecked.defaultof && x.infos = Unchecked.defaultof && x.stride = Unchecked.defaultof + + static member Empty = + VkDispatchGraphCountInfoAMDX(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "count = %A" x.count + sprintf "infos = %A" x.infos + sprintf "stride = %A" x.stride + ] |> sprintf "VkDispatchGraphCountInfoAMDX { %s }" + end + + [] + type VkDispatchGraphInfoAMDX = + struct + val mutable public nodeIndex : uint32 + val mutable public payloadCount : uint32 + val mutable public payloads : VkDeviceOrHostAddressConstAMDX + val mutable public payloadStride : uint64 + + new(nodeIndex : uint32, payloadCount : uint32, payloads : VkDeviceOrHostAddressConstAMDX, payloadStride : uint64) = + { + nodeIndex = nodeIndex + payloadCount = payloadCount + payloads = payloads + payloadStride = payloadStride + } + + member x.IsEmpty = + x.nodeIndex = Unchecked.defaultof && x.payloadCount = Unchecked.defaultof && x.payloads = Unchecked.defaultof && x.payloadStride = Unchecked.defaultof + + static member Empty = + VkDispatchGraphInfoAMDX(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "nodeIndex = %A" x.nodeIndex + sprintf "payloadCount = %A" x.payloadCount + sprintf "payloads = %A" x.payloads + sprintf "payloadStride = %A" x.payloadStride + ] |> sprintf "VkDispatchGraphInfoAMDX { %s }" + end + + [] + type VkExecutionGraphPipelineCreateInfoAMDX = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public flags : VkPipelineCreateFlags + val mutable public stageCount : uint32 + val mutable public pStages : nativeptr + val mutable public pLibraryInfo : nativeptr + val mutable public layout : VkPipelineLayout + val mutable public basePipelineHandle : VkPipeline + val mutable public basePipelineIndex : int32 + + new(pNext : nativeint, flags : VkPipelineCreateFlags, stageCount : uint32, pStages : nativeptr, pLibraryInfo : nativeptr, layout : VkPipelineLayout, basePipelineHandle : VkPipeline, basePipelineIndex : int32) = + { + sType = 1000134003u + pNext = pNext + flags = flags + stageCount = stageCount + pStages = pStages + pLibraryInfo = pLibraryInfo + layout = layout + basePipelineHandle = basePipelineHandle + basePipelineIndex = basePipelineIndex + } + + new(flags : VkPipelineCreateFlags, stageCount : uint32, pStages : nativeptr, pLibraryInfo : nativeptr, layout : VkPipelineLayout, basePipelineHandle : VkPipeline, basePipelineIndex : int32) = + VkExecutionGraphPipelineCreateInfoAMDX(Unchecked.defaultof, flags, stageCount, pStages, pLibraryInfo, layout, basePipelineHandle, basePipelineIndex) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.stageCount = Unchecked.defaultof && x.pStages = Unchecked.defaultof> && x.pLibraryInfo = Unchecked.defaultof> && x.layout = Unchecked.defaultof && x.basePipelineHandle = Unchecked.defaultof && x.basePipelineIndex = Unchecked.defaultof + + static member Empty = + VkExecutionGraphPipelineCreateInfoAMDX(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "flags = %A" x.flags + sprintf "stageCount = %A" x.stageCount + sprintf "pStages = %A" x.pStages + sprintf "pLibraryInfo = %A" x.pLibraryInfo + sprintf "layout = %A" x.layout + sprintf "basePipelineHandle = %A" x.basePipelineHandle + sprintf "basePipelineIndex = %A" x.basePipelineIndex + ] |> sprintf "VkExecutionGraphPipelineCreateInfoAMDX { %s }" + end + + [] + type VkExecutionGraphPipelineScratchSizeAMDX = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public size : VkDeviceSize + + new(pNext : nativeint, size : VkDeviceSize) = + { + sType = 1000134002u + pNext = pNext + size = size + } + + new(size : VkDeviceSize) = + VkExecutionGraphPipelineScratchSizeAMDX(Unchecked.defaultof, size) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.size = Unchecked.defaultof + + static member Empty = + VkExecutionGraphPipelineScratchSizeAMDX(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "size = %A" x.size + ] |> sprintf "VkExecutionGraphPipelineScratchSizeAMDX { %s }" + end + + [] + type VkPhysicalDeviceShaderEnqueueFeaturesAMDX = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public shaderEnqueue : VkBool32 + + new(pNext : nativeint, shaderEnqueue : VkBool32) = + { + sType = 1000134000u + pNext = pNext + shaderEnqueue = shaderEnqueue + } + + new(shaderEnqueue : VkBool32) = + VkPhysicalDeviceShaderEnqueueFeaturesAMDX(Unchecked.defaultof, shaderEnqueue) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.shaderEnqueue = Unchecked.defaultof + + static member Empty = + VkPhysicalDeviceShaderEnqueueFeaturesAMDX(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "shaderEnqueue = %A" x.shaderEnqueue + ] |> sprintf "VkPhysicalDeviceShaderEnqueueFeaturesAMDX { %s }" + end + [] + type VkPhysicalDeviceShaderEnqueuePropertiesAMDX = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public maxExecutionGraphDepth : uint32 + val mutable public maxExecutionGraphShaderOutputNodes : uint32 + val mutable public maxExecutionGraphShaderPayloadSize : uint32 + val mutable public maxExecutionGraphShaderPayloadCount : uint32 + val mutable public executionGraphDispatchAddressAlignment : uint32 -module KHRSamplerYcbcrConversion = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open EXTDebugReport - open KHRBindMemory2 - open KHRGetMemoryRequirements2 - open KHRGetPhysicalDeviceProperties2 - open KHRMaintenance1 - let Name = "VK_KHR_sampler_ycbcr_conversion" - let Number = 157 + new(pNext : nativeint, maxExecutionGraphDepth : uint32, maxExecutionGraphShaderOutputNodes : uint32, maxExecutionGraphShaderPayloadSize : uint32, maxExecutionGraphShaderPayloadCount : uint32, executionGraphDispatchAddressAlignment : uint32) = + { + sType = 1000134001u + pNext = pNext + maxExecutionGraphDepth = maxExecutionGraphDepth + maxExecutionGraphShaderOutputNodes = maxExecutionGraphShaderOutputNodes + maxExecutionGraphShaderPayloadSize = maxExecutionGraphShaderPayloadSize + maxExecutionGraphShaderPayloadCount = maxExecutionGraphShaderPayloadCount + executionGraphDispatchAddressAlignment = executionGraphDispatchAddressAlignment + } - let Required = [ KHRBindMemory2.Name; KHRGetMemoryRequirements2.Name; KHRGetPhysicalDeviceProperties2.Name; KHRMaintenance1.Name ] + new(maxExecutionGraphDepth : uint32, maxExecutionGraphShaderOutputNodes : uint32, maxExecutionGraphShaderPayloadSize : uint32, maxExecutionGraphShaderPayloadCount : uint32, executionGraphDispatchAddressAlignment : uint32) = + VkPhysicalDeviceShaderEnqueuePropertiesAMDX(Unchecked.defaultof, maxExecutionGraphDepth, maxExecutionGraphShaderOutputNodes, maxExecutionGraphShaderPayloadSize, maxExecutionGraphShaderPayloadCount, executionGraphDispatchAddressAlignment) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.maxExecutionGraphDepth = Unchecked.defaultof && x.maxExecutionGraphShaderOutputNodes = Unchecked.defaultof && x.maxExecutionGraphShaderPayloadSize = Unchecked.defaultof && x.maxExecutionGraphShaderPayloadCount = Unchecked.defaultof && x.executionGraphDispatchAddressAlignment = Unchecked.defaultof + static member Empty = + VkPhysicalDeviceShaderEnqueuePropertiesAMDX(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) - type VkSamplerYcbcrConversionKHR = VkSamplerYcbcrConversion - type VkSamplerYcbcrModelConversionKHR = VkSamplerYcbcrModelConversion - type VkSamplerYcbcrRangeKHR = VkSamplerYcbcrRange - type VkChromaLocationKHR = VkChromaLocation + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "maxExecutionGraphDepth = %A" x.maxExecutionGraphDepth + sprintf "maxExecutionGraphShaderOutputNodes = %A" x.maxExecutionGraphShaderOutputNodes + sprintf "maxExecutionGraphShaderPayloadSize = %A" x.maxExecutionGraphShaderPayloadSize + sprintf "maxExecutionGraphShaderPayloadCount = %A" x.maxExecutionGraphShaderPayloadCount + sprintf "executionGraphDispatchAddressAlignment = %A" x.executionGraphDispatchAddressAlignment + ] |> sprintf "VkPhysicalDeviceShaderEnqueuePropertiesAMDX { %s }" + end - type VkBindImagePlaneMemoryInfoKHR = VkBindImagePlaneMemoryInfo + [] + type VkPipelineShaderStageNodeCreateInfoAMDX = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public pName : cstr + val mutable public index : uint32 - type VkImagePlaneMemoryRequirementsInfoKHR = VkImagePlaneMemoryRequirementsInfo + new(pNext : nativeint, pName : cstr, index : uint32) = + { + sType = 1000134004u + pNext = pNext + pName = pName + index = index + } - type VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR = VkPhysicalDeviceSamplerYcbcrConversionFeatures + new(pName : cstr, index : uint32) = + VkPipelineShaderStageNodeCreateInfoAMDX(Unchecked.defaultof, pName, index) - type VkSamplerYcbcrConversionCreateInfoKHR = VkSamplerYcbcrConversionCreateInfo + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.pName = Unchecked.defaultof && x.index = Unchecked.defaultof - type VkSamplerYcbcrConversionImageFormatPropertiesKHR = VkSamplerYcbcrConversionImageFormatProperties + static member Empty = + VkPipelineShaderStageNodeCreateInfoAMDX(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) - type VkSamplerYcbcrConversionInfoKHR = VkSamplerYcbcrConversionInfo + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "pName = %A" x.pName + sprintf "index = %A" x.index + ] |> sprintf "VkPipelineShaderStageNodeCreateInfoAMDX { %s }" + end [] module EnumExtensions = - type VkChromaLocation with - static member inline CositedEvenKhr = unbox 0 - static member inline MidpointKhr = unbox 1 - type VkDebugReportObjectTypeEXT with - static member inline SamplerYcbcrConversionKhr = unbox 1000156000 - type VkFormat with - static member inline G8b8g8r8422UnormKhr = unbox 1000156000 - static member inline B8g8r8g8422UnormKhr = unbox 1000156001 - static member inline G8B8R83plane420UnormKhr = unbox 1000156002 - static member inline G8B8r82plane420UnormKhr = unbox 1000156003 - static member inline G8B8R83plane422UnormKhr = unbox 1000156004 - static member inline G8B8r82plane422UnormKhr = unbox 1000156005 - static member inline G8B8R83plane444UnormKhr = unbox 1000156006 - static member inline R10x6UnormPack16Khr = unbox 1000156007 - static member inline R10x6g10x6Unorm2pack16Khr = unbox 1000156008 - static member inline R10x6g10x6b10x6a10x6Unorm4pack16Khr = unbox 1000156009 - static member inline G10x6b10x6g10x6r10x6422Unorm4pack16Khr = unbox 1000156010 - static member inline B10x6g10x6r10x6g10x6422Unorm4pack16Khr = unbox 1000156011 - static member inline G10x6B10x6R10x63plane420Unorm3pack16Khr = unbox 1000156012 - static member inline G10x6B10x6r10x62plane420Unorm3pack16Khr = unbox 1000156013 - static member inline G10x6B10x6R10x63plane422Unorm3pack16Khr = unbox 1000156014 - static member inline G10x6B10x6r10x62plane422Unorm3pack16Khr = unbox 1000156015 - static member inline G10x6B10x6R10x63plane444Unorm3pack16Khr = unbox 1000156016 - static member inline R12x4UnormPack16Khr = unbox 1000156017 - static member inline R12x4g12x4Unorm2pack16Khr = unbox 1000156018 - static member inline R12x4g12x4b12x4a12x4Unorm4pack16Khr = unbox 1000156019 - static member inline G12x4b12x4g12x4r12x4422Unorm4pack16Khr = unbox 1000156020 - static member inline B12x4g12x4r12x4g12x4422Unorm4pack16Khr = unbox 1000156021 - static member inline G12x4B12x4R12x43plane420Unorm3pack16Khr = unbox 1000156022 - static member inline G12x4B12x4r12x42plane420Unorm3pack16Khr = unbox 1000156023 - static member inline G12x4B12x4R12x43plane422Unorm3pack16Khr = unbox 1000156024 - static member inline G12x4B12x4r12x42plane422Unorm3pack16Khr = unbox 1000156025 - static member inline G12x4B12x4R12x43plane444Unorm3pack16Khr = unbox 1000156026 - static member inline G16b16g16r16422UnormKhr = unbox 1000156027 - static member inline B16g16r16g16422UnormKhr = unbox 1000156028 - static member inline G16B16R163plane420UnormKhr = unbox 1000156029 - static member inline G16B16r162plane420UnormKhr = unbox 1000156030 - static member inline G16B16R163plane422UnormKhr = unbox 1000156031 - static member inline G16B16r162plane422UnormKhr = unbox 1000156032 - static member inline G16B16R163plane444UnormKhr = unbox 1000156033 - type VkFormatFeatureFlags with - static member inline MidpointChromaSamplesBitKhr = unbox 0x00020000 - static member inline SampledImageYcbcrConversionLinearFilterBitKhr = unbox 0x00040000 - static member inline SampledImageYcbcrConversionSeparateReconstructionFilterBitKhr = unbox 0x00080000 - static member inline SampledImageYcbcrConversionChromaReconstructionExplicitBitKhr = unbox 0x00100000 - static member inline SampledImageYcbcrConversionChromaReconstructionExplicitForceableBitKhr = unbox 0x00200000 - static member inline DisjointBitKhr = unbox 0x00400000 - static member inline CositedChromaSamplesBitKhr = unbox 0x00800000 - type VkImageAspectFlags with - static member inline Plane0BitKhr = unbox 0x00000010 - static member inline Plane1BitKhr = unbox 0x00000020 - static member inline Plane2BitKhr = unbox 0x00000040 - type VkImageCreateFlags with - static member inline DisjointBitKhr = unbox 0x00000200 - type VkObjectType with - static member inline SamplerYcbcrConversionKhr = unbox 1000156000 - type VkSamplerYcbcrModelConversion with - static member inline RgbIdentityKhr = unbox 0 - static member inline YcbcrIdentityKhr = unbox 1 - static member inline Ycbcr709Khr = unbox 2 - static member inline Ycbcr601Khr = unbox 3 - static member inline Ycbcr2020Khr = unbox 4 - type VkSamplerYcbcrRange with - static member inline ItuFullKhr = unbox 0 - static member inline ItuNarrowKhr = unbox 1 + type VkBufferUsageFlags with + static member inline ExecutionGraphScratchBitAmdx = unbox 0x02000000 + type VkPipelineBindPoint with + static member inline ExecutionGraphAmdx = unbox 1000134000 module VkRaw = [] - type VkCreateSamplerYcbcrConversionKHRDel = delegate of VkDevice * nativeptr * nativeptr * nativeptr -> VkResult + type VkCreateExecutionGraphPipelinesAMDXDel = delegate of VkDevice * VkPipelineCache * uint32 * nativeptr * nativeptr * nativeptr -> VkResult + [] + type VkGetExecutionGraphPipelineScratchSizeAMDXDel = delegate of VkDevice * VkPipeline * nativeptr -> VkResult + [] + type VkGetExecutionGraphPipelineNodeIndexAMDXDel = delegate of VkDevice * VkPipeline * nativeptr * nativeptr -> VkResult + [] + type VkCmdInitializeGraphScratchMemoryAMDXDel = delegate of VkCommandBuffer * VkDeviceAddress -> unit + [] + type VkCmdDispatchGraphAMDXDel = delegate of VkCommandBuffer * VkDeviceAddress * nativeptr -> unit + [] + type VkCmdDispatchGraphIndirectAMDXDel = delegate of VkCommandBuffer * VkDeviceAddress * nativeptr -> unit [] - type VkDestroySamplerYcbcrConversionKHRDel = delegate of VkDevice * VkSamplerYcbcrConversion * nativeptr -> unit + type VkCmdDispatchGraphIndirectCountAMDXDel = delegate of VkCommandBuffer * VkDeviceAddress * VkDeviceAddress -> unit [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRSamplerYcbcrConversion") - static let s_vkCreateSamplerYcbcrConversionKHRDel = VkRaw.vkImportInstanceDelegate "vkCreateSamplerYcbcrConversionKHR" - static let s_vkDestroySamplerYcbcrConversionKHRDel = VkRaw.vkImportInstanceDelegate "vkDestroySamplerYcbcrConversionKHR" + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading AMDXShaderEnqueue") + static let s_vkCreateExecutionGraphPipelinesAMDXDel = VkRaw.vkImportInstanceDelegate "vkCreateExecutionGraphPipelinesAMDX" + static let s_vkGetExecutionGraphPipelineScratchSizeAMDXDel = VkRaw.vkImportInstanceDelegate "vkGetExecutionGraphPipelineScratchSizeAMDX" + static let s_vkGetExecutionGraphPipelineNodeIndexAMDXDel = VkRaw.vkImportInstanceDelegate "vkGetExecutionGraphPipelineNodeIndexAMDX" + static let s_vkCmdInitializeGraphScratchMemoryAMDXDel = VkRaw.vkImportInstanceDelegate "vkCmdInitializeGraphScratchMemoryAMDX" + static let s_vkCmdDispatchGraphAMDXDel = VkRaw.vkImportInstanceDelegate "vkCmdDispatchGraphAMDX" + static let s_vkCmdDispatchGraphIndirectAMDXDel = VkRaw.vkImportInstanceDelegate "vkCmdDispatchGraphIndirectAMDX" + static let s_vkCmdDispatchGraphIndirectCountAMDXDel = VkRaw.vkImportInstanceDelegate "vkCmdDispatchGraphIndirectCountAMDX" static do Report.End(3) |> ignore - static member vkCreateSamplerYcbcrConversionKHR = s_vkCreateSamplerYcbcrConversionKHRDel - static member vkDestroySamplerYcbcrConversionKHR = s_vkDestroySamplerYcbcrConversionKHRDel - let vkCreateSamplerYcbcrConversionKHR(device : VkDevice, pCreateInfo : nativeptr, pAllocator : nativeptr, pYcbcrConversion : nativeptr) = Loader.vkCreateSamplerYcbcrConversionKHR.Invoke(device, pCreateInfo, pAllocator, pYcbcrConversion) - let vkDestroySamplerYcbcrConversionKHR(device : VkDevice, ycbcrConversion : VkSamplerYcbcrConversion, pAllocator : nativeptr) = Loader.vkDestroySamplerYcbcrConversionKHR.Invoke(device, ycbcrConversion, pAllocator) + static member vkCreateExecutionGraphPipelinesAMDX = s_vkCreateExecutionGraphPipelinesAMDXDel + static member vkGetExecutionGraphPipelineScratchSizeAMDX = s_vkGetExecutionGraphPipelineScratchSizeAMDXDel + static member vkGetExecutionGraphPipelineNodeIndexAMDX = s_vkGetExecutionGraphPipelineNodeIndexAMDXDel + static member vkCmdInitializeGraphScratchMemoryAMDX = s_vkCmdInitializeGraphScratchMemoryAMDXDel + static member vkCmdDispatchGraphAMDX = s_vkCmdDispatchGraphAMDXDel + static member vkCmdDispatchGraphIndirectAMDX = s_vkCmdDispatchGraphIndirectAMDXDel + static member vkCmdDispatchGraphIndirectCountAMDX = s_vkCmdDispatchGraphIndirectCountAMDXDel + let vkCreateExecutionGraphPipelinesAMDX(device : VkDevice, pipelineCache : VkPipelineCache, createInfoCount : uint32, pCreateInfos : nativeptr, pAllocator : nativeptr, pPipelines : nativeptr) = Loader.vkCreateExecutionGraphPipelinesAMDX.Invoke(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) + let vkGetExecutionGraphPipelineScratchSizeAMDX(device : VkDevice, executionGraph : VkPipeline, pSizeInfo : nativeptr) = Loader.vkGetExecutionGraphPipelineScratchSizeAMDX.Invoke(device, executionGraph, pSizeInfo) + let vkGetExecutionGraphPipelineNodeIndexAMDX(device : VkDevice, executionGraph : VkPipeline, pNodeInfo : nativeptr, pNodeIndex : nativeptr) = Loader.vkGetExecutionGraphPipelineNodeIndexAMDX.Invoke(device, executionGraph, pNodeInfo, pNodeIndex) + let vkCmdInitializeGraphScratchMemoryAMDX(commandBuffer : VkCommandBuffer, scratch : VkDeviceAddress) = Loader.vkCmdInitializeGraphScratchMemoryAMDX.Invoke(commandBuffer, scratch) + let vkCmdDispatchGraphAMDX(commandBuffer : VkCommandBuffer, scratch : VkDeviceAddress, pCountInfo : nativeptr) = Loader.vkCmdDispatchGraphAMDX.Invoke(commandBuffer, scratch, pCountInfo) + let vkCmdDispatchGraphIndirectAMDX(commandBuffer : VkCommandBuffer, scratch : VkDeviceAddress, pCountInfo : nativeptr) = Loader.vkCmdDispatchGraphIndirectAMDX.Invoke(commandBuffer, scratch, pCountInfo) + let vkCmdDispatchGraphIndirectCountAMDX(commandBuffer : VkCommandBuffer, scratch : VkDeviceAddress, countInfo : VkDeviceAddress) = Loader.vkCmdDispatchGraphIndirectCountAMDX.Invoke(commandBuffer, scratch, countInfo) - module EXTDebugReport = + [] + module ``KHRMaintenance5`` = [] module EnumExtensions = - type VkDebugReportObjectTypeEXT with - static member inline SamplerYcbcrConversion = unbox 1000156000 + type KHRMaintenance5.VkBufferUsageFlags2KHR with + static member inline BufferUsage2ExecutionGraphScratchBitAmdx = unbox 0x02000000 -module KHRFormatFeatureFlags2 = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_KHR_format_feature_flags2" - let Number = 361 +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module AMDDeviceCoherentMemory = + let Type = ExtensionType.Device + let Name = "VK_AMD_device_coherent_memory" + let Number = 230 + + [] + type VkPhysicalDeviceCoherentMemoryFeaturesAMD = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public deviceCoherentMemory : VkBool32 - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] + new(pNext : nativeint, deviceCoherentMemory : VkBool32) = + { + sType = 1000229000u + pNext = pNext + deviceCoherentMemory = deviceCoherentMemory + } + new(deviceCoherentMemory : VkBool32) = + VkPhysicalDeviceCoherentMemoryFeaturesAMD(Unchecked.defaultof, deviceCoherentMemory) - type VkFormatFeatureFlags2KHR = VkFormatFeatureFlags2 + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.deviceCoherentMemory = Unchecked.defaultof - type VkFormatProperties3KHR = VkFormatProperties3 + static member Empty = + VkPhysicalDeviceCoherentMemoryFeaturesAMD(Unchecked.defaultof, Unchecked.defaultof) + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "deviceCoherentMemory = %A" x.deviceCoherentMemory + ] |> sprintf "VkPhysicalDeviceCoherentMemoryFeaturesAMD { %s }" + end -module ANDROIDExternalMemoryAndroidHardwareBuffer = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open EXTDebugReport - open EXTQueueFamilyForeign - open KHRBindMemory2 - open KHRDedicatedAllocation - open KHRExternalMemory - open KHRExternalMemoryCapabilities - open KHRGetMemoryRequirements2 - open KHRGetPhysicalDeviceProperties2 - open KHRMaintenance1 - open KHRSamplerYcbcrConversion - let Name = "VK_ANDROID_external_memory_android_hardware_buffer" - let Number = 130 + [] + module EnumExtensions = + type VkMemoryPropertyFlags with + static member inline DeviceCoherentBitAmd = unbox 0x00000040 + static member inline DeviceUncachedBitAmd = unbox 0x00000080 - let Required = [ EXTQueueFamilyForeign.Name; KHRDedicatedAllocation.Name; KHRExternalMemory.Name; KHRSamplerYcbcrConversion.Name ] +/// Requires KHRSurface. +module KHRGetSurfaceCapabilities2 = + let Type = ExtensionType.Instance + let Name = "VK_KHR_get_surface_capabilities2" + let Number = 120 [] - type VkAndroidHardwareBufferFormatPropertiesANDROID = + type VkPhysicalDeviceSurfaceInfo2KHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public format : VkFormat - val mutable public externalFormat : uint64 - val mutable public formatFeatures : VkFormatFeatureFlags - val mutable public samplerYcbcrConversionComponents : VkComponentMapping - val mutable public suggestedYcbcrModel : VkSamplerYcbcrModelConversion - val mutable public suggestedYcbcrRange : VkSamplerYcbcrRange - val mutable public suggestedXChromaOffset : VkChromaLocation - val mutable public suggestedYChromaOffset : VkChromaLocation + val mutable public surface : KHRSurface.VkSurfaceKHR - new(pNext : nativeint, format : VkFormat, externalFormat : uint64, formatFeatures : VkFormatFeatureFlags, samplerYcbcrConversionComponents : VkComponentMapping, suggestedYcbcrModel : VkSamplerYcbcrModelConversion, suggestedYcbcrRange : VkSamplerYcbcrRange, suggestedXChromaOffset : VkChromaLocation, suggestedYChromaOffset : VkChromaLocation) = + new(pNext : nativeint, surface : KHRSurface.VkSurfaceKHR) = { - sType = 1000129002u + sType = 1000119000u pNext = pNext - format = format - externalFormat = externalFormat - formatFeatures = formatFeatures - samplerYcbcrConversionComponents = samplerYcbcrConversionComponents - suggestedYcbcrModel = suggestedYcbcrModel - suggestedYcbcrRange = suggestedYcbcrRange - suggestedXChromaOffset = suggestedXChromaOffset - suggestedYChromaOffset = suggestedYChromaOffset + surface = surface } - new(format : VkFormat, externalFormat : uint64, formatFeatures : VkFormatFeatureFlags, samplerYcbcrConversionComponents : VkComponentMapping, suggestedYcbcrModel : VkSamplerYcbcrModelConversion, suggestedYcbcrRange : VkSamplerYcbcrRange, suggestedXChromaOffset : VkChromaLocation, suggestedYChromaOffset : VkChromaLocation) = - VkAndroidHardwareBufferFormatPropertiesANDROID(Unchecked.defaultof, format, externalFormat, formatFeatures, samplerYcbcrConversionComponents, suggestedYcbcrModel, suggestedYcbcrRange, suggestedXChromaOffset, suggestedYChromaOffset) + new(surface : KHRSurface.VkSurfaceKHR) = + VkPhysicalDeviceSurfaceInfo2KHR(Unchecked.defaultof, surface) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.format = Unchecked.defaultof && x.externalFormat = Unchecked.defaultof && x.formatFeatures = Unchecked.defaultof && x.samplerYcbcrConversionComponents = Unchecked.defaultof && x.suggestedYcbcrModel = Unchecked.defaultof && x.suggestedYcbcrRange = Unchecked.defaultof && x.suggestedXChromaOffset = Unchecked.defaultof && x.suggestedYChromaOffset = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.surface = Unchecked.defaultof static member Empty = - VkAndroidHardwareBufferFormatPropertiesANDROID(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceSurfaceInfo2KHR(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "format = %A" x.format - sprintf "externalFormat = %A" x.externalFormat - sprintf "formatFeatures = %A" x.formatFeatures - sprintf "samplerYcbcrConversionComponents = %A" x.samplerYcbcrConversionComponents - sprintf "suggestedYcbcrModel = %A" x.suggestedYcbcrModel - sprintf "suggestedYcbcrRange = %A" x.suggestedYcbcrRange - sprintf "suggestedXChromaOffset = %A" x.suggestedXChromaOffset - sprintf "suggestedYChromaOffset = %A" x.suggestedYChromaOffset - ] |> sprintf "VkAndroidHardwareBufferFormatPropertiesANDROID { %s }" + sprintf "surface = %A" x.surface + ] |> sprintf "VkPhysicalDeviceSurfaceInfo2KHR { %s }" end [] - type VkAndroidHardwareBufferPropertiesANDROID = + type VkSurfaceCapabilities2KHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public allocationSize : VkDeviceSize - val mutable public memoryTypeBits : uint32 + val mutable public surfaceCapabilities : KHRSurface.VkSurfaceCapabilitiesKHR - new(pNext : nativeint, allocationSize : VkDeviceSize, memoryTypeBits : uint32) = + new(pNext : nativeint, surfaceCapabilities : KHRSurface.VkSurfaceCapabilitiesKHR) = { - sType = 1000129001u + sType = 1000119001u pNext = pNext - allocationSize = allocationSize - memoryTypeBits = memoryTypeBits + surfaceCapabilities = surfaceCapabilities } - new(allocationSize : VkDeviceSize, memoryTypeBits : uint32) = - VkAndroidHardwareBufferPropertiesANDROID(Unchecked.defaultof, allocationSize, memoryTypeBits) + new(surfaceCapabilities : KHRSurface.VkSurfaceCapabilitiesKHR) = + VkSurfaceCapabilities2KHR(Unchecked.defaultof, surfaceCapabilities) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.allocationSize = Unchecked.defaultof && x.memoryTypeBits = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.surfaceCapabilities = Unchecked.defaultof static member Empty = - VkAndroidHardwareBufferPropertiesANDROID(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkSurfaceCapabilities2KHR(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "allocationSize = %A" x.allocationSize - sprintf "memoryTypeBits = %A" x.memoryTypeBits - ] |> sprintf "VkAndroidHardwareBufferPropertiesANDROID { %s }" + sprintf "surfaceCapabilities = %A" x.surfaceCapabilities + ] |> sprintf "VkSurfaceCapabilities2KHR { %s }" end [] - type VkAndroidHardwareBufferUsageANDROID = + type VkSurfaceFormat2KHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public androidHardwareBufferUsage : uint64 + val mutable public surfaceFormat : KHRSurface.VkSurfaceFormatKHR - new(pNext : nativeint, androidHardwareBufferUsage : uint64) = + new(pNext : nativeint, surfaceFormat : KHRSurface.VkSurfaceFormatKHR) = { - sType = 1000129000u + sType = 1000119002u pNext = pNext - androidHardwareBufferUsage = androidHardwareBufferUsage + surfaceFormat = surfaceFormat } - new(androidHardwareBufferUsage : uint64) = - VkAndroidHardwareBufferUsageANDROID(Unchecked.defaultof, androidHardwareBufferUsage) + new(surfaceFormat : KHRSurface.VkSurfaceFormatKHR) = + VkSurfaceFormat2KHR(Unchecked.defaultof, surfaceFormat) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.androidHardwareBufferUsage = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.surfaceFormat = Unchecked.defaultof static member Empty = - VkAndroidHardwareBufferUsageANDROID(Unchecked.defaultof, Unchecked.defaultof) + VkSurfaceFormat2KHR(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "androidHardwareBufferUsage = %A" x.androidHardwareBufferUsage - ] |> sprintf "VkAndroidHardwareBufferUsageANDROID { %s }" + sprintf "surfaceFormat = %A" x.surfaceFormat + ] |> sprintf "VkSurfaceFormat2KHR { %s }" end + + module VkRaw = + [] + type VkGetPhysicalDeviceSurfaceCapabilities2KHRDel = delegate of VkPhysicalDevice * nativeptr * nativeptr -> VkResult + [] + type VkGetPhysicalDeviceSurfaceFormats2KHRDel = delegate of VkPhysicalDevice * nativeptr * nativeptr * nativeptr -> VkResult + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRGetSurfaceCapabilities2") + static let s_vkGetPhysicalDeviceSurfaceCapabilities2KHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceSurfaceCapabilities2KHR" + static let s_vkGetPhysicalDeviceSurfaceFormats2KHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceSurfaceFormats2KHR" + static do Report.End(3) |> ignore + static member vkGetPhysicalDeviceSurfaceCapabilities2KHR = s_vkGetPhysicalDeviceSurfaceCapabilities2KHRDel + static member vkGetPhysicalDeviceSurfaceFormats2KHR = s_vkGetPhysicalDeviceSurfaceFormats2KHRDel + let vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice : VkPhysicalDevice, pSurfaceInfo : nativeptr, pSurfaceCapabilities : nativeptr) = Loader.vkGetPhysicalDeviceSurfaceCapabilities2KHR.Invoke(physicalDevice, pSurfaceInfo, pSurfaceCapabilities) + let vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice : VkPhysicalDevice, pSurfaceInfo : nativeptr, pSurfaceFormatCount : nativeptr, pSurfaceFormats : nativeptr) = Loader.vkGetPhysicalDeviceSurfaceFormats2KHR.Invoke(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats) + +/// Requires (KHRGetPhysicalDeviceProperties2 | Vulkan11), KHRGetSurfaceCapabilities2, KHRSwapchain. +module AMDDisplayNativeHdr = + let Type = ExtensionType.Device + let Name = "VK_AMD_display_native_hdr" + let Number = 214 + [] - type VkExternalFormatANDROID = + type VkDisplayNativeHdrSurfaceCapabilitiesAMD = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public externalFormat : uint64 + val mutable public localDimmingSupport : VkBool32 - new(pNext : nativeint, externalFormat : uint64) = + new(pNext : nativeint, localDimmingSupport : VkBool32) = { - sType = 1000129005u + sType = 1000213000u pNext = pNext - externalFormat = externalFormat + localDimmingSupport = localDimmingSupport } - new(externalFormat : uint64) = - VkExternalFormatANDROID(Unchecked.defaultof, externalFormat) + new(localDimmingSupport : VkBool32) = + VkDisplayNativeHdrSurfaceCapabilitiesAMD(Unchecked.defaultof, localDimmingSupport) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.externalFormat = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.localDimmingSupport = Unchecked.defaultof static member Empty = - VkExternalFormatANDROID(Unchecked.defaultof, Unchecked.defaultof) + VkDisplayNativeHdrSurfaceCapabilitiesAMD(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "externalFormat = %A" x.externalFormat - ] |> sprintf "VkExternalFormatANDROID { %s }" + sprintf "localDimmingSupport = %A" x.localDimmingSupport + ] |> sprintf "VkDisplayNativeHdrSurfaceCapabilitiesAMD { %s }" end [] - type VkImportAndroidHardwareBufferInfoANDROID = + type VkSwapchainDisplayNativeHdrCreateInfoAMD = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public buffer : nativeptr + val mutable public localDimmingEnable : VkBool32 - new(pNext : nativeint, buffer : nativeptr) = + new(pNext : nativeint, localDimmingEnable : VkBool32) = { - sType = 1000129003u + sType = 1000213001u pNext = pNext - buffer = buffer + localDimmingEnable = localDimmingEnable } - new(buffer : nativeptr) = - VkImportAndroidHardwareBufferInfoANDROID(Unchecked.defaultof, buffer) + new(localDimmingEnable : VkBool32) = + VkSwapchainDisplayNativeHdrCreateInfoAMD(Unchecked.defaultof, localDimmingEnable) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.buffer = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.localDimmingEnable = Unchecked.defaultof static member Empty = - VkImportAndroidHardwareBufferInfoANDROID(Unchecked.defaultof, Unchecked.defaultof>) + VkSwapchainDisplayNativeHdrCreateInfoAMD(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "buffer = %A" x.buffer - ] |> sprintf "VkImportAndroidHardwareBufferInfoANDROID { %s }" + sprintf "localDimmingEnable = %A" x.localDimmingEnable + ] |> sprintf "VkSwapchainDisplayNativeHdrCreateInfoAMD { %s }" end + + [] + module EnumExtensions = + type KHRSurface.VkColorSpaceKHR with + static member inline DisplayNativeAmd = unbox 1000213000 + + module VkRaw = + [] + type VkSetLocalDimmingAMDDel = delegate of VkDevice * KHRSwapchain.VkSwapchainKHR * VkBool32 -> unit + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading AMDDisplayNativeHdr") + static let s_vkSetLocalDimmingAMDDel = VkRaw.vkImportInstanceDelegate "vkSetLocalDimmingAMD" + static do Report.End(3) |> ignore + static member vkSetLocalDimmingAMD = s_vkSetLocalDimmingAMDDel + let vkSetLocalDimmingAMD(device : VkDevice, swapChain : KHRSwapchain.VkSwapchainKHR, localDimmingEnable : VkBool32) = Loader.vkSetLocalDimmingAMD.Invoke(device, swapChain, localDimmingEnable) + +/// Promoted to Vulkan12. +module KHRDrawIndirectCount = + let Type = ExtensionType.Device + let Name = "VK_KHR_draw_indirect_count" + let Number = 170 + + module VkRaw = + [] + type VkCmdDrawIndirectCountKHRDel = delegate of VkCommandBuffer * VkBuffer * VkDeviceSize * VkBuffer * VkDeviceSize * uint32 * uint32 -> unit + [] + type VkCmdDrawIndexedIndirectCountKHRDel = delegate of VkCommandBuffer * VkBuffer * VkDeviceSize * VkBuffer * VkDeviceSize * uint32 * uint32 -> unit + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRDrawIndirectCount") + static let s_vkCmdDrawIndirectCountKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdDrawIndirectCountKHR" + static let s_vkCmdDrawIndexedIndirectCountKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdDrawIndexedIndirectCountKHR" + static do Report.End(3) |> ignore + static member vkCmdDrawIndirectCountKHR = s_vkCmdDrawIndirectCountKHRDel + static member vkCmdDrawIndexedIndirectCountKHR = s_vkCmdDrawIndexedIndirectCountKHRDel + let vkCmdDrawIndirectCountKHR(commandBuffer : VkCommandBuffer, buffer : VkBuffer, offset : VkDeviceSize, countBuffer : VkBuffer, countBufferOffset : VkDeviceSize, maxDrawCount : uint32, stride : uint32) = Loader.vkCmdDrawIndirectCountKHR.Invoke(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + let vkCmdDrawIndexedIndirectCountKHR(commandBuffer : VkCommandBuffer, buffer : VkBuffer, offset : VkDeviceSize, countBuffer : VkBuffer, countBufferOffset : VkDeviceSize, maxDrawCount : uint32, stride : uint32) = Loader.vkCmdDrawIndexedIndirectCountKHR.Invoke(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + +/// Promoted to KHRDrawIndirectCount. +module AMDDrawIndirectCount = + let Type = ExtensionType.Device + let Name = "VK_AMD_draw_indirect_count" + let Number = 34 + + module VkRaw = + [] + type VkCmdDrawIndirectCountAMDDel = delegate of VkCommandBuffer * VkBuffer * VkDeviceSize * VkBuffer * VkDeviceSize * uint32 * uint32 -> unit + [] + type VkCmdDrawIndexedIndirectCountAMDDel = delegate of VkCommandBuffer * VkBuffer * VkDeviceSize * VkBuffer * VkDeviceSize * uint32 * uint32 -> unit + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading AMDDrawIndirectCount") + static let s_vkCmdDrawIndirectCountAMDDel = VkRaw.vkImportInstanceDelegate "vkCmdDrawIndirectCountAMD" + static let s_vkCmdDrawIndexedIndirectCountAMDDel = VkRaw.vkImportInstanceDelegate "vkCmdDrawIndexedIndirectCountAMD" + static do Report.End(3) |> ignore + static member vkCmdDrawIndirectCountAMD = s_vkCmdDrawIndirectCountAMDDel + static member vkCmdDrawIndexedIndirectCountAMD = s_vkCmdDrawIndexedIndirectCountAMDDel + let vkCmdDrawIndirectCountAMD(commandBuffer : VkCommandBuffer, buffer : VkBuffer, offset : VkDeviceSize, countBuffer : VkBuffer, countBufferOffset : VkDeviceSize, maxDrawCount : uint32, stride : uint32) = Loader.vkCmdDrawIndirectCountAMD.Invoke(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + let vkCmdDrawIndexedIndirectCountAMD(commandBuffer : VkCommandBuffer, buffer : VkBuffer, offset : VkDeviceSize, countBuffer : VkBuffer, countBufferOffset : VkDeviceSize, maxDrawCount : uint32, stride : uint32) = Loader.vkCmdDrawIndexedIndirectCountAMD.Invoke(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) + +module AMDGcnShader = + let Type = ExtensionType.Device + let Name = "VK_AMD_gcn_shader" + let Number = 26 + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +/// Promoted to Vulkan12. +module KHRShaderFloat16Int8 = + let Type = ExtensionType.Device + let Name = "VK_KHR_shader_float16_int8" + let Number = 83 + + type VkPhysicalDeviceFloat16Int8FeaturesKHR = Vulkan12.VkPhysicalDeviceShaderFloat16Int8Features + + type VkPhysicalDeviceShaderFloat16Int8FeaturesKHR = Vulkan12.VkPhysicalDeviceShaderFloat16Int8Features + + + +/// Deprecated by KHRShaderFloat16Int8. +module AMDGpuShaderHalfFloat = + let Type = ExtensionType.Device + let Name = "VK_AMD_gpu_shader_half_float" + let Number = 37 + +/// Deprecated by KHRShaderFloat16Int8. +module AMDGpuShaderInt16 = + let Type = ExtensionType.Device + let Name = "VK_AMD_gpu_shader_int16" + let Number = 133 + +module AMDMemoryOverallocationBehavior = + let Type = ExtensionType.Device + let Name = "VK_AMD_memory_overallocation_behavior" + let Number = 190 + + type VkMemoryOverallocationBehaviorAMD = + | Default = 0 + | Allowed = 1 + | Disallowed = 2 + + [] - type VkMemoryGetAndroidHardwareBufferInfoANDROID = + type VkDeviceMemoryOverallocationCreateInfoAMD = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public memory : VkDeviceMemory + val mutable public overallocationBehavior : VkMemoryOverallocationBehaviorAMD - new(pNext : nativeint, memory : VkDeviceMemory) = + new(pNext : nativeint, overallocationBehavior : VkMemoryOverallocationBehaviorAMD) = { - sType = 1000129004u + sType = 1000189000u pNext = pNext - memory = memory + overallocationBehavior = overallocationBehavior } - new(memory : VkDeviceMemory) = - VkMemoryGetAndroidHardwareBufferInfoANDROID(Unchecked.defaultof, memory) + new(overallocationBehavior : VkMemoryOverallocationBehaviorAMD) = + VkDeviceMemoryOverallocationCreateInfoAMD(Unchecked.defaultof, overallocationBehavior) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.memory = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.overallocationBehavior = Unchecked.defaultof static member Empty = - VkMemoryGetAndroidHardwareBufferInfoANDROID(Unchecked.defaultof, Unchecked.defaultof) + VkDeviceMemoryOverallocationCreateInfoAMD(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "memory = %A" x.memory - ] |> sprintf "VkMemoryGetAndroidHardwareBufferInfoANDROID { %s }" + sprintf "overallocationBehavior = %A" x.overallocationBehavior + ] |> sprintf "VkDeviceMemoryOverallocationCreateInfoAMD { %s }" end + +/// Promoted to Vulkan11. +module KHRMaintenance1 = + let Type = ExtensionType.Device + let Name = "VK_KHR_maintenance1" + let Number = 70 + + type VkCommandPoolTrimFlagsKHR = VkCommandPoolTrimFlags + [] module EnumExtensions = - type VkExternalMemoryHandleTypeFlags with - static member inline AndroidHardwareBufferBitAndroid = unbox 0x00000400 + type VkFormatFeatureFlags with + static member inline TransferSrcBitKhr = unbox 0x00004000 + static member inline TransferDstBitKhr = unbox 0x00008000 + type VkImageCreateFlags with + static member inline D2dArrayCompatibleBitKhr = unbox 0x00000020 + type VkResult with + static member inline ErrorOutOfPoolMemoryKhr = unbox 1000069000 module VkRaw = [] - type VkGetAndroidHardwareBufferPropertiesANDROIDDel = delegate of VkDevice * nativeptr * nativeptr -> VkResult - [] - type VkGetMemoryAndroidHardwareBufferANDROIDDel = delegate of VkDevice * nativeptr * nativeptr> -> VkResult + type VkTrimCommandPoolKHRDel = delegate of VkDevice * VkCommandPool * VkCommandPoolTrimFlags -> unit [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading ANDROIDExternalMemoryAndroidHardwareBuffer") - static let s_vkGetAndroidHardwareBufferPropertiesANDROIDDel = VkRaw.vkImportInstanceDelegate "vkGetAndroidHardwareBufferPropertiesANDROID" - static let s_vkGetMemoryAndroidHardwareBufferANDROIDDel = VkRaw.vkImportInstanceDelegate "vkGetMemoryAndroidHardwareBufferANDROID" + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRMaintenance1") + static let s_vkTrimCommandPoolKHRDel = VkRaw.vkImportInstanceDelegate "vkTrimCommandPoolKHR" static do Report.End(3) |> ignore - static member vkGetAndroidHardwareBufferPropertiesANDROID = s_vkGetAndroidHardwareBufferPropertiesANDROIDDel - static member vkGetMemoryAndroidHardwareBufferANDROID = s_vkGetMemoryAndroidHardwareBufferANDROIDDel - let vkGetAndroidHardwareBufferPropertiesANDROID(device : VkDevice, buffer : nativeptr, pProperties : nativeptr) = Loader.vkGetAndroidHardwareBufferPropertiesANDROID.Invoke(device, buffer, pProperties) - let vkGetMemoryAndroidHardwareBufferANDROID(device : VkDevice, pInfo : nativeptr, pBuffer : nativeptr>) = Loader.vkGetMemoryAndroidHardwareBufferANDROID.Invoke(device, pInfo, pBuffer) + static member vkTrimCommandPoolKHR = s_vkTrimCommandPoolKHRDel + let vkTrimCommandPoolKHR(device : VkDevice, commandPool : VkCommandPool, flags : VkCommandPoolTrimFlags) = Loader.vkTrimCommandPoolKHR.Invoke(device, commandPool, flags) - module KHRFormatFeatureFlags2 = - [] - type VkAndroidHardwareBufferFormatProperties2ANDROID = - struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public format : VkFormat - val mutable public externalFormat : uint64 - val mutable public formatFeatures : VkFormatFeatureFlags2 - val mutable public samplerYcbcrConversionComponents : VkComponentMapping - val mutable public suggestedYcbcrModel : VkSamplerYcbcrModelConversion - val mutable public suggestedYcbcrRange : VkSamplerYcbcrRange - val mutable public suggestedXChromaOffset : VkChromaLocation - val mutable public suggestedYChromaOffset : VkChromaLocation +/// Incompatible with KHRMaintenance1. +module AMDNegativeViewportHeight = + let Type = ExtensionType.Device + let Name = "VK_AMD_negative_viewport_height" + let Number = 36 - new(pNext : nativeint, format : VkFormat, externalFormat : uint64, formatFeatures : VkFormatFeatureFlags2, samplerYcbcrConversionComponents : VkComponentMapping, suggestedYcbcrModel : VkSamplerYcbcrModelConversion, suggestedYcbcrRange : VkSamplerYcbcrRange, suggestedXChromaOffset : VkChromaLocation, suggestedYChromaOffset : VkChromaLocation) = - { - sType = 1000129006u - pNext = pNext - format = format - externalFormat = externalFormat - formatFeatures = formatFeatures - samplerYcbcrConversionComponents = samplerYcbcrConversionComponents - suggestedYcbcrModel = suggestedYcbcrModel - suggestedYcbcrRange = suggestedYcbcrRange - suggestedXChromaOffset = suggestedXChromaOffset - suggestedYChromaOffset = suggestedYChromaOffset - } +module AMDPipelineCompilerControl = + let Type = ExtensionType.Device + let Name = "VK_AMD_pipeline_compiler_control" + let Number = 184 - new(format : VkFormat, externalFormat : uint64, formatFeatures : VkFormatFeatureFlags2, samplerYcbcrConversionComponents : VkComponentMapping, suggestedYcbcrModel : VkSamplerYcbcrModelConversion, suggestedYcbcrRange : VkSamplerYcbcrRange, suggestedXChromaOffset : VkChromaLocation, suggestedYChromaOffset : VkChromaLocation) = - VkAndroidHardwareBufferFormatProperties2ANDROID(Unchecked.defaultof, format, externalFormat, formatFeatures, samplerYcbcrConversionComponents, suggestedYcbcrModel, suggestedYcbcrRange, suggestedXChromaOffset, suggestedYChromaOffset) + [] + type VkPipelineCompilerControlFlagsAMD = + | All = 0 + | None = 0 - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.format = Unchecked.defaultof && x.externalFormat = Unchecked.defaultof && x.formatFeatures = Unchecked.defaultof && x.samplerYcbcrConversionComponents = Unchecked.defaultof && x.suggestedYcbcrModel = Unchecked.defaultof && x.suggestedYcbcrRange = Unchecked.defaultof && x.suggestedXChromaOffset = Unchecked.defaultof && x.suggestedYChromaOffset = Unchecked.defaultof - static member Empty = - VkAndroidHardwareBufferFormatProperties2ANDROID(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + [] + type VkPipelineCompilerControlCreateInfoAMD = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public compilerControlFlags : VkPipelineCompilerControlFlagsAMD - override x.ToString() = - String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "format = %A" x.format - sprintf "externalFormat = %A" x.externalFormat - sprintf "formatFeatures = %A" x.formatFeatures - sprintf "samplerYcbcrConversionComponents = %A" x.samplerYcbcrConversionComponents - sprintf "suggestedYcbcrModel = %A" x.suggestedYcbcrModel - sprintf "suggestedYcbcrRange = %A" x.suggestedYcbcrRange - sprintf "suggestedXChromaOffset = %A" x.suggestedXChromaOffset - sprintf "suggestedYChromaOffset = %A" x.suggestedYChromaOffset - ] |> sprintf "VkAndroidHardwareBufferFormatProperties2ANDROID { %s }" - end + new(pNext : nativeint, compilerControlFlags : VkPipelineCompilerControlFlagsAMD) = + { + sType = 1000183000u + pNext = pNext + compilerControlFlags = compilerControlFlags + } + new(compilerControlFlags : VkPipelineCompilerControlFlagsAMD) = + VkPipelineCompilerControlCreateInfoAMD(Unchecked.defaultof, compilerControlFlags) + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.compilerControlFlags = Unchecked.defaultof + + static member Empty = + VkPipelineCompilerControlCreateInfoAMD(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "compilerControlFlags = %A" x.compilerControlFlags + ] |> sprintf "VkPipelineCompilerControlCreateInfoAMD { %s }" + end -module ARMRasterizationOrderAttachmentAccess = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_ARM_rasterization_order_attachment_access" - let Number = 343 - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] +module AMDRasterizationOrder = + let Type = ExtensionType.Device + let Name = "VK_AMD_rasterization_order" + let Number = 19 + + type VkRasterizationOrderAMD = + | Strict = 0 + | Relaxed = 1 [] - type VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = + type VkPipelineRasterizationStateRasterizationOrderAMD = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public rasterizationOrderColorAttachmentAccess : VkBool32 - val mutable public rasterizationOrderDepthAttachmentAccess : VkBool32 - val mutable public rasterizationOrderStencilAttachmentAccess : VkBool32 + val mutable public rasterizationOrder : VkRasterizationOrderAMD - new(pNext : nativeint, rasterizationOrderColorAttachmentAccess : VkBool32, rasterizationOrderDepthAttachmentAccess : VkBool32, rasterizationOrderStencilAttachmentAccess : VkBool32) = + new(pNext : nativeint, rasterizationOrder : VkRasterizationOrderAMD) = { - sType = 1000342000u + sType = 1000018000u pNext = pNext - rasterizationOrderColorAttachmentAccess = rasterizationOrderColorAttachmentAccess - rasterizationOrderDepthAttachmentAccess = rasterizationOrderDepthAttachmentAccess - rasterizationOrderStencilAttachmentAccess = rasterizationOrderStencilAttachmentAccess + rasterizationOrder = rasterizationOrder } - new(rasterizationOrderColorAttachmentAccess : VkBool32, rasterizationOrderDepthAttachmentAccess : VkBool32, rasterizationOrderStencilAttachmentAccess : VkBool32) = - VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM(Unchecked.defaultof, rasterizationOrderColorAttachmentAccess, rasterizationOrderDepthAttachmentAccess, rasterizationOrderStencilAttachmentAccess) + new(rasterizationOrder : VkRasterizationOrderAMD) = + VkPipelineRasterizationStateRasterizationOrderAMD(Unchecked.defaultof, rasterizationOrder) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.rasterizationOrderColorAttachmentAccess = Unchecked.defaultof && x.rasterizationOrderDepthAttachmentAccess = Unchecked.defaultof && x.rasterizationOrderStencilAttachmentAccess = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.rasterizationOrder = Unchecked.defaultof static member Empty = - VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPipelineRasterizationStateRasterizationOrderAMD(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "rasterizationOrderColorAttachmentAccess = %A" x.rasterizationOrderColorAttachmentAccess - sprintf "rasterizationOrderDepthAttachmentAccess = %A" x.rasterizationOrderDepthAttachmentAccess - sprintf "rasterizationOrderStencilAttachmentAccess = %A" x.rasterizationOrderStencilAttachmentAccess - ] |> sprintf "VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM { %s }" + sprintf "rasterizationOrder = %A" x.rasterizationOrder + ] |> sprintf "VkPipelineRasterizationStateRasterizationOrderAMD { %s }" end - [] - module EnumExtensions = - type VkPipelineColorBlendStateCreateFlags with - static member inline RasterizationOrderAttachmentAccessBitArm = unbox 0x00000001 - type VkPipelineDepthStencilStateCreateFlags with - static member inline RasterizationOrderAttachmentDepthAccessBitArm = unbox 0x00000001 - static member inline RasterizationOrderAttachmentStencilAccessBitArm = unbox 0x00000002 - type VkSubpassDescriptionFlags with - static member inline RasterizationOrderAttachmentColorAccessBitArm = unbox 0x00000010 - static member inline RasterizationOrderAttachmentDepthAccessBitArm = unbox 0x00000020 - static member inline RasterizationOrderAttachmentStencilAccessBitArm = unbox 0x00000040 - - -module EXT4444Formats = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_EXT_4444_formats" - let Number = 341 - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] +module AMDShaderBallot = + let Type = ExtensionType.Device + let Name = "VK_AMD_shader_ballot" + let Number = 38 +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module AMDShaderCoreProperties = + let Type = ExtensionType.Device + let Name = "VK_AMD_shader_core_properties" + let Number = 186 [] - type VkPhysicalDevice4444FormatsFeaturesEXT = + type VkPhysicalDeviceShaderCorePropertiesAMD = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public formatA4R4G4B4 : VkBool32 - val mutable public formatA4B4G4R4 : VkBool32 + val mutable public shaderEngineCount : uint32 + val mutable public shaderArraysPerEngineCount : uint32 + val mutable public computeUnitsPerShaderArray : uint32 + val mutable public simdPerComputeUnit : uint32 + val mutable public wavefrontsPerSimd : uint32 + val mutable public wavefrontSize : uint32 + val mutable public sgprsPerSimd : uint32 + val mutable public minSgprAllocation : uint32 + val mutable public maxSgprAllocation : uint32 + val mutable public sgprAllocationGranularity : uint32 + val mutable public vgprsPerSimd : uint32 + val mutable public minVgprAllocation : uint32 + val mutable public maxVgprAllocation : uint32 + val mutable public vgprAllocationGranularity : uint32 - new(pNext : nativeint, formatA4R4G4B4 : VkBool32, formatA4B4G4R4 : VkBool32) = + new(pNext : nativeint, 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) = { - sType = 1000340000u + sType = 1000185000u pNext = pNext - formatA4R4G4B4 = formatA4R4G4B4 - formatA4B4G4R4 = formatA4B4G4R4 + shaderEngineCount = shaderEngineCount + shaderArraysPerEngineCount = shaderArraysPerEngineCount + computeUnitsPerShaderArray = computeUnitsPerShaderArray + simdPerComputeUnit = simdPerComputeUnit + wavefrontsPerSimd = wavefrontsPerSimd + wavefrontSize = wavefrontSize + sgprsPerSimd = sgprsPerSimd + minSgprAllocation = minSgprAllocation + maxSgprAllocation = maxSgprAllocation + sgprAllocationGranularity = sgprAllocationGranularity + vgprsPerSimd = vgprsPerSimd + minVgprAllocation = minVgprAllocation + maxVgprAllocation = maxVgprAllocation + vgprAllocationGranularity = vgprAllocationGranularity } - new(formatA4R4G4B4 : VkBool32, formatA4B4G4R4 : VkBool32) = - VkPhysicalDevice4444FormatsFeaturesEXT(Unchecked.defaultof, formatA4R4G4B4, formatA4B4G4R4) + new(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) = + VkPhysicalDeviceShaderCorePropertiesAMD(Unchecked.defaultof, shaderEngineCount, shaderArraysPerEngineCount, computeUnitsPerShaderArray, simdPerComputeUnit, wavefrontsPerSimd, wavefrontSize, sgprsPerSimd, minSgprAllocation, maxSgprAllocation, sgprAllocationGranularity, vgprsPerSimd, minVgprAllocation, maxVgprAllocation, vgprAllocationGranularity) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.formatA4R4G4B4 = Unchecked.defaultof && x.formatA4B4G4R4 = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.shaderEngineCount = Unchecked.defaultof && x.shaderArraysPerEngineCount = Unchecked.defaultof && x.computeUnitsPerShaderArray = Unchecked.defaultof && x.simdPerComputeUnit = Unchecked.defaultof && x.wavefrontsPerSimd = Unchecked.defaultof && x.wavefrontSize = Unchecked.defaultof && x.sgprsPerSimd = Unchecked.defaultof && x.minSgprAllocation = Unchecked.defaultof && x.maxSgprAllocation = Unchecked.defaultof && x.sgprAllocationGranularity = Unchecked.defaultof && x.vgprsPerSimd = Unchecked.defaultof && x.minVgprAllocation = Unchecked.defaultof && x.maxVgprAllocation = Unchecked.defaultof && x.vgprAllocationGranularity = Unchecked.defaultof static member Empty = - VkPhysicalDevice4444FormatsFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceShaderCorePropertiesAMD(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "formatA4R4G4B4 = %A" x.formatA4R4G4B4 - sprintf "formatA4B4G4R4 = %A" x.formatA4B4G4R4 - ] |> sprintf "VkPhysicalDevice4444FormatsFeaturesEXT { %s }" + sprintf "shaderEngineCount = %A" x.shaderEngineCount + sprintf "shaderArraysPerEngineCount = %A" x.shaderArraysPerEngineCount + sprintf "computeUnitsPerShaderArray = %A" x.computeUnitsPerShaderArray + sprintf "simdPerComputeUnit = %A" x.simdPerComputeUnit + sprintf "wavefrontsPerSimd = %A" x.wavefrontsPerSimd + sprintf "wavefrontSize = %A" x.wavefrontSize + sprintf "sgprsPerSimd = %A" x.sgprsPerSimd + sprintf "minSgprAllocation = %A" x.minSgprAllocation + sprintf "maxSgprAllocation = %A" x.maxSgprAllocation + sprintf "sgprAllocationGranularity = %A" x.sgprAllocationGranularity + sprintf "vgprsPerSimd = %A" x.vgprsPerSimd + sprintf "minVgprAllocation = %A" x.minVgprAllocation + sprintf "maxVgprAllocation = %A" x.maxVgprAllocation + sprintf "vgprAllocationGranularity = %A" x.vgprAllocationGranularity + ] |> sprintf "VkPhysicalDeviceShaderCorePropertiesAMD { %s }" end - [] - module EnumExtensions = - type VkFormat with - static member inline A4r4g4b4UnormPack16Ext = unbox 1000340000 - static member inline A4b4g4r4UnormPack16Ext = unbox 1000340001 - - -module KHRDisplay = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRSurface - let Name = "VK_KHR_display" - let Number = 3 - - let Required = [ KHRSurface.Name ] - - - - [] - type VkDisplayKHR = - struct - val mutable public Handle : uint64 - new(h) = { Handle = h } - static member Null = VkDisplayKHR(0UL) - member x.IsNull = x.Handle = 0UL - member x.IsValid = x.Handle <> 0UL - end - [] - type VkDisplayModeKHR = - struct - val mutable public Handle : uint64 - new(h) = { Handle = h } - static member Null = VkDisplayModeKHR(0UL) - member x.IsNull = x.Handle = 0UL - member x.IsValid = x.Handle <> 0UL - end +/// Requires AMDShaderCoreProperties. +module AMDShaderCoreProperties2 = + let Type = ExtensionType.Device + let Name = "VK_AMD_shader_core_properties2" + let Number = 228 [] - type VkDisplayPlaneAlphaFlagsKHR = - | All = 15 + type VkShaderCorePropertiesFlagsAMD = + | All = 0 | None = 0 - | OpaqueBit = 0x00000001 - | GlobalBit = 0x00000002 - | PerPixelBit = 0x00000004 - | PerPixelPremultipliedBit = 0x00000008 - type VkSurfaceTransformFlagsKHR = KHRSurface.VkSurfaceTransformFlagsKHR [] - type VkDisplayModeParametersKHR = + type VkPhysicalDeviceShaderCoreProperties2AMD = struct - val mutable public visibleRegion : VkExtent2D - val mutable public refreshRate : uint32 + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public shaderCoreFeatures : VkShaderCorePropertiesFlagsAMD + val mutable public activeComputeUnitCount : uint32 - new(visibleRegion : VkExtent2D, refreshRate : uint32) = + new(pNext : nativeint, shaderCoreFeatures : VkShaderCorePropertiesFlagsAMD, activeComputeUnitCount : uint32) = { - visibleRegion = visibleRegion - refreshRate = refreshRate + sType = 1000227000u + pNext = pNext + shaderCoreFeatures = shaderCoreFeatures + activeComputeUnitCount = activeComputeUnitCount } + new(shaderCoreFeatures : VkShaderCorePropertiesFlagsAMD, activeComputeUnitCount : uint32) = + VkPhysicalDeviceShaderCoreProperties2AMD(Unchecked.defaultof, shaderCoreFeatures, activeComputeUnitCount) + member x.IsEmpty = - x.visibleRegion = Unchecked.defaultof && x.refreshRate = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.shaderCoreFeatures = Unchecked.defaultof && x.activeComputeUnitCount = Unchecked.defaultof static member Empty = - VkDisplayModeParametersKHR(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceShaderCoreProperties2AMD(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ - sprintf "visibleRegion = %A" x.visibleRegion - sprintf "refreshRate = %A" x.refreshRate - ] |> sprintf "VkDisplayModeParametersKHR { %s }" + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "shaderCoreFeatures = %A" x.shaderCoreFeatures + sprintf "activeComputeUnitCount = %A" x.activeComputeUnitCount + ] |> sprintf "VkPhysicalDeviceShaderCoreProperties2AMD { %s }" end + + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module AMDShaderEarlyAndLateFragmentTests = + let Type = ExtensionType.Device + let Name = "VK_AMD_shader_early_and_late_fragment_tests" + let Number = 322 + [] - type VkDisplayModeCreateInfoKHR = + type VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public flags : VkDisplayModeCreateFlagsKHR - val mutable public parameters : VkDisplayModeParametersKHR + val mutable public shaderEarlyAndLateFragmentTests : VkBool32 - new(pNext : nativeint, flags : VkDisplayModeCreateFlagsKHR, parameters : VkDisplayModeParametersKHR) = + new(pNext : nativeint, shaderEarlyAndLateFragmentTests : VkBool32) = { - sType = 1000002000u + sType = 1000321000u pNext = pNext - flags = flags - parameters = parameters + shaderEarlyAndLateFragmentTests = shaderEarlyAndLateFragmentTests } - new(flags : VkDisplayModeCreateFlagsKHR, parameters : VkDisplayModeParametersKHR) = - VkDisplayModeCreateInfoKHR(Unchecked.defaultof, flags, parameters) + new(shaderEarlyAndLateFragmentTests : VkBool32) = + VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD(Unchecked.defaultof, shaderEarlyAndLateFragmentTests) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.parameters = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.shaderEarlyAndLateFragmentTests = Unchecked.defaultof static member Empty = - VkDisplayModeCreateInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "flags = %A" x.flags - sprintf "parameters = %A" x.parameters - ] |> sprintf "VkDisplayModeCreateInfoKHR { %s }" + sprintf "shaderEarlyAndLateFragmentTests = %A" x.shaderEarlyAndLateFragmentTests + ] |> sprintf "VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD { %s }" end - [] - type VkDisplayModePropertiesKHR = - struct - val mutable public displayMode : VkDisplayModeKHR - val mutable public parameters : VkDisplayModeParametersKHR - new(displayMode : VkDisplayModeKHR, parameters : VkDisplayModeParametersKHR) = - { - displayMode = displayMode - parameters = parameters - } - member x.IsEmpty = - x.displayMode = Unchecked.defaultof && x.parameters = Unchecked.defaultof +module AMDShaderExplicitVertexParameter = + let Type = ExtensionType.Device + let Name = "VK_AMD_shader_explicit_vertex_parameter" + let Number = 22 - static member Empty = - VkDisplayModePropertiesKHR(Unchecked.defaultof, Unchecked.defaultof) +module AMDShaderFragmentMask = + let Type = ExtensionType.Device + let Name = "VK_AMD_shader_fragment_mask" + let Number = 138 + +module AMDShaderImageLoadStoreLod = + let Type = ExtensionType.Device + let Name = "VK_AMD_shader_image_load_store_lod" + let Number = 47 + +module AMDShaderInfo = + let Type = ExtensionType.Device + let Name = "VK_AMD_shader_info" + let Number = 43 + + type VkShaderInfoTypeAMD = + | Statistics = 0 + | Binary = 1 + | Disassembly = 2 - override x.ToString() = - String.concat "; " [ - sprintf "displayMode = %A" x.displayMode - sprintf "parameters = %A" x.parameters - ] |> sprintf "VkDisplayModePropertiesKHR { %s }" - end [] - type VkDisplayPlaneCapabilitiesKHR = + type VkShaderResourceUsageAMD = struct - val mutable public supportedAlpha : VkDisplayPlaneAlphaFlagsKHR - val mutable public minSrcPosition : VkOffset2D - val mutable public maxSrcPosition : VkOffset2D - val mutable public minSrcExtent : VkExtent2D - val mutable public maxSrcExtent : VkExtent2D - val mutable public minDstPosition : VkOffset2D - val mutable public maxDstPosition : VkOffset2D - val mutable public minDstExtent : VkExtent2D - val mutable public maxDstExtent : VkExtent2D + val mutable public numUsedVgprs : uint32 + val mutable public numUsedSgprs : uint32 + val mutable public ldsSizePerLocalWorkGroup : uint32 + val mutable public ldsUsageSizeInBytes : uint64 + val mutable public scratchMemUsageInBytes : uint64 - new(supportedAlpha : VkDisplayPlaneAlphaFlagsKHR, minSrcPosition : VkOffset2D, maxSrcPosition : VkOffset2D, minSrcExtent : VkExtent2D, maxSrcExtent : VkExtent2D, minDstPosition : VkOffset2D, maxDstPosition : VkOffset2D, minDstExtent : VkExtent2D, maxDstExtent : VkExtent2D) = + new(numUsedVgprs : uint32, numUsedSgprs : uint32, ldsSizePerLocalWorkGroup : uint32, ldsUsageSizeInBytes : uint64, scratchMemUsageInBytes : uint64) = { - supportedAlpha = supportedAlpha - minSrcPosition = minSrcPosition - maxSrcPosition = maxSrcPosition - minSrcExtent = minSrcExtent - maxSrcExtent = maxSrcExtent - minDstPosition = minDstPosition - maxDstPosition = maxDstPosition - minDstExtent = minDstExtent - maxDstExtent = maxDstExtent + numUsedVgprs = numUsedVgprs + numUsedSgprs = numUsedSgprs + ldsSizePerLocalWorkGroup = ldsSizePerLocalWorkGroup + ldsUsageSizeInBytes = ldsUsageSizeInBytes + scratchMemUsageInBytes = scratchMemUsageInBytes } member x.IsEmpty = - x.supportedAlpha = Unchecked.defaultof && x.minSrcPosition = Unchecked.defaultof && x.maxSrcPosition = Unchecked.defaultof && x.minSrcExtent = Unchecked.defaultof && x.maxSrcExtent = Unchecked.defaultof && x.minDstPosition = Unchecked.defaultof && x.maxDstPosition = Unchecked.defaultof && x.minDstExtent = Unchecked.defaultof && x.maxDstExtent = Unchecked.defaultof + x.numUsedVgprs = Unchecked.defaultof && x.numUsedSgprs = Unchecked.defaultof && x.ldsSizePerLocalWorkGroup = Unchecked.defaultof && x.ldsUsageSizeInBytes = Unchecked.defaultof && x.scratchMemUsageInBytes = Unchecked.defaultof static member Empty = - VkDisplayPlaneCapabilitiesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkShaderResourceUsageAMD(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ - sprintf "supportedAlpha = %A" x.supportedAlpha - sprintf "minSrcPosition = %A" x.minSrcPosition - sprintf "maxSrcPosition = %A" x.maxSrcPosition - sprintf "minSrcExtent = %A" x.minSrcExtent - sprintf "maxSrcExtent = %A" x.maxSrcExtent - sprintf "minDstPosition = %A" x.minDstPosition - sprintf "maxDstPosition = %A" x.maxDstPosition - sprintf "minDstExtent = %A" x.minDstExtent - sprintf "maxDstExtent = %A" x.maxDstExtent - ] |> sprintf "VkDisplayPlaneCapabilitiesKHR { %s }" + sprintf "numUsedVgprs = %A" x.numUsedVgprs + sprintf "numUsedSgprs = %A" x.numUsedSgprs + sprintf "ldsSizePerLocalWorkGroup = %A" x.ldsSizePerLocalWorkGroup + sprintf "ldsUsageSizeInBytes = %A" x.ldsUsageSizeInBytes + sprintf "scratchMemUsageInBytes = %A" x.scratchMemUsageInBytes + ] |> sprintf "VkShaderResourceUsageAMD { %s }" end [] - type VkDisplayPlanePropertiesKHR = + type VkShaderStatisticsInfoAMD = struct - val mutable public currentDisplay : VkDisplayKHR - val mutable public currentStackIndex : uint32 + val mutable public shaderStageMask : VkShaderStageFlags + val mutable public resourceUsage : VkShaderResourceUsageAMD + val mutable public numPhysicalVgprs : uint32 + val mutable public numPhysicalSgprs : uint32 + val mutable public numAvailableVgprs : uint32 + val mutable public numAvailableSgprs : uint32 + val mutable public computeWorkGroupSize : V3ui - new(currentDisplay : VkDisplayKHR, currentStackIndex : uint32) = + new(shaderStageMask : VkShaderStageFlags, resourceUsage : VkShaderResourceUsageAMD, numPhysicalVgprs : uint32, numPhysicalSgprs : uint32, numAvailableVgprs : uint32, numAvailableSgprs : uint32, computeWorkGroupSize : V3ui) = { - currentDisplay = currentDisplay - currentStackIndex = currentStackIndex + shaderStageMask = shaderStageMask + resourceUsage = resourceUsage + numPhysicalVgprs = numPhysicalVgprs + numPhysicalSgprs = numPhysicalSgprs + numAvailableVgprs = numAvailableVgprs + numAvailableSgprs = numAvailableSgprs + computeWorkGroupSize = computeWorkGroupSize } member x.IsEmpty = - x.currentDisplay = Unchecked.defaultof && x.currentStackIndex = Unchecked.defaultof + x.shaderStageMask = Unchecked.defaultof && x.resourceUsage = Unchecked.defaultof && x.numPhysicalVgprs = Unchecked.defaultof && x.numPhysicalSgprs = Unchecked.defaultof && x.numAvailableVgprs = Unchecked.defaultof && x.numAvailableSgprs = Unchecked.defaultof && x.computeWorkGroupSize = Unchecked.defaultof static member Empty = - VkDisplayPlanePropertiesKHR(Unchecked.defaultof, Unchecked.defaultof) + VkShaderStatisticsInfoAMD(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ - sprintf "currentDisplay = %A" x.currentDisplay - sprintf "currentStackIndex = %A" x.currentStackIndex - ] |> sprintf "VkDisplayPlanePropertiesKHR { %s }" + sprintf "shaderStageMask = %A" x.shaderStageMask + sprintf "resourceUsage = %A" x.resourceUsage + sprintf "numPhysicalVgprs = %A" x.numPhysicalVgprs + sprintf "numPhysicalSgprs = %A" x.numPhysicalSgprs + sprintf "numAvailableVgprs = %A" x.numAvailableVgprs + sprintf "numAvailableSgprs = %A" x.numAvailableSgprs + sprintf "computeWorkGroupSize = %A" x.computeWorkGroupSize + ] |> sprintf "VkShaderStatisticsInfoAMD { %s }" end - [] - type VkDisplayPropertiesKHR = - struct - val mutable public display : VkDisplayKHR - val mutable public displayName : cstr - val mutable public physicalDimensions : VkExtent2D - val mutable public physicalResolution : VkExtent2D - val mutable public supportedTransforms : VkSurfaceTransformFlagsKHR - val mutable public planeReorderPossible : VkBool32 - val mutable public persistentContent : VkBool32 - new(display : VkDisplayKHR, displayName : cstr, physicalDimensions : VkExtent2D, physicalResolution : VkExtent2D, supportedTransforms : VkSurfaceTransformFlagsKHR, planeReorderPossible : VkBool32, persistentContent : VkBool32) = - { - display = display - displayName = displayName - physicalDimensions = physicalDimensions - physicalResolution = physicalResolution - supportedTransforms = supportedTransforms - planeReorderPossible = planeReorderPossible - persistentContent = persistentContent - } + module VkRaw = + [] + type VkGetShaderInfoAMDDel = delegate of VkDevice * VkPipeline * VkShaderStageFlags * VkShaderInfoTypeAMD * nativeptr * nativeint -> VkResult - member x.IsEmpty = - x.display = Unchecked.defaultof && x.displayName = Unchecked.defaultof && x.physicalDimensions = Unchecked.defaultof && x.physicalResolution = Unchecked.defaultof && x.supportedTransforms = Unchecked.defaultof && x.planeReorderPossible = Unchecked.defaultof && x.persistentContent = Unchecked.defaultof + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading AMDShaderInfo") + static let s_vkGetShaderInfoAMDDel = VkRaw.vkImportInstanceDelegate "vkGetShaderInfoAMD" + static do Report.End(3) |> ignore + static member vkGetShaderInfoAMD = s_vkGetShaderInfoAMDDel + let vkGetShaderInfoAMD(device : VkDevice, pipeline : VkPipeline, shaderStage : VkShaderStageFlags, infoType : VkShaderInfoTypeAMD, pInfoSize : nativeptr, pInfo : nativeint) = Loader.vkGetShaderInfoAMD.Invoke(device, pipeline, shaderStage, infoType, pInfoSize, pInfo) - static member Empty = - VkDisplayPropertiesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) +module AMDShaderTrinaryMinmax = + let Type = ExtensionType.Device + let Name = "VK_AMD_shader_trinary_minmax" + let Number = 21 - override x.ToString() = - String.concat "; " [ - sprintf "display = %A" x.display - sprintf "displayName = %A" x.displayName - sprintf "physicalDimensions = %A" x.physicalDimensions - sprintf "physicalResolution = %A" x.physicalResolution - sprintf "supportedTransforms = %A" x.supportedTransforms - sprintf "planeReorderPossible = %A" x.planeReorderPossible - sprintf "persistentContent = %A" x.persistentContent - ] |> sprintf "VkDisplayPropertiesKHR { %s }" - end +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module AMDTextureGatherBiasLod = + let Type = ExtensionType.Device + let Name = "VK_AMD_texture_gather_bias_lod" + let Number = 42 [] - type VkDisplaySurfaceCreateInfoKHR = + type VkTextureLODGatherFormatPropertiesAMD = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public flags : VkDisplaySurfaceCreateFlagsKHR - val mutable public displayMode : VkDisplayModeKHR - val mutable public planeIndex : uint32 - val mutable public planeStackIndex : uint32 - val mutable public transform : VkSurfaceTransformFlagsKHR - val mutable public globalAlpha : float32 - val mutable public alphaMode : VkDisplayPlaneAlphaFlagsKHR - val mutable public imageExtent : VkExtent2D + val mutable public supportsTextureGatherLODBiasAMD : VkBool32 - new(pNext : nativeint, flags : VkDisplaySurfaceCreateFlagsKHR, displayMode : VkDisplayModeKHR, planeIndex : uint32, planeStackIndex : uint32, transform : VkSurfaceTransformFlagsKHR, globalAlpha : float32, alphaMode : VkDisplayPlaneAlphaFlagsKHR, imageExtent : VkExtent2D) = + new(pNext : nativeint, supportsTextureGatherLODBiasAMD : VkBool32) = { - sType = 1000002001u + sType = 1000041000u pNext = pNext - flags = flags - displayMode = displayMode - planeIndex = planeIndex - planeStackIndex = planeStackIndex - transform = transform - globalAlpha = globalAlpha - alphaMode = alphaMode - imageExtent = imageExtent + supportsTextureGatherLODBiasAMD = supportsTextureGatherLODBiasAMD } - new(flags : VkDisplaySurfaceCreateFlagsKHR, displayMode : VkDisplayModeKHR, planeIndex : uint32, planeStackIndex : uint32, transform : VkSurfaceTransformFlagsKHR, globalAlpha : float32, alphaMode : VkDisplayPlaneAlphaFlagsKHR, imageExtent : VkExtent2D) = - VkDisplaySurfaceCreateInfoKHR(Unchecked.defaultof, flags, displayMode, planeIndex, planeStackIndex, transform, globalAlpha, alphaMode, imageExtent) + new(supportsTextureGatherLODBiasAMD : VkBool32) = + VkTextureLODGatherFormatPropertiesAMD(Unchecked.defaultof, supportsTextureGatherLODBiasAMD) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.displayMode = Unchecked.defaultof && x.planeIndex = Unchecked.defaultof && x.planeStackIndex = Unchecked.defaultof && x.transform = Unchecked.defaultof && x.globalAlpha = Unchecked.defaultof && x.alphaMode = Unchecked.defaultof && x.imageExtent = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.supportsTextureGatherLODBiasAMD = Unchecked.defaultof static member Empty = - VkDisplaySurfaceCreateInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkTextureLODGatherFormatPropertiesAMD(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "flags = %A" x.flags - sprintf "displayMode = %A" x.displayMode - sprintf "planeIndex = %A" x.planeIndex - sprintf "planeStackIndex = %A" x.planeStackIndex - sprintf "transform = %A" x.transform - sprintf "globalAlpha = %A" x.globalAlpha - sprintf "alphaMode = %A" x.alphaMode - sprintf "imageExtent = %A" x.imageExtent - ] |> sprintf "VkDisplaySurfaceCreateInfoKHR { %s }" + sprintf "supportsTextureGatherLODBiasAMD = %A" x.supportsTextureGatherLODBiasAMD + ] |> sprintf "VkTextureLODGatherFormatPropertiesAMD { %s }" end + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +/// Promoted to Vulkan11. +module KHRExternalMemoryCapabilities = + let Type = ExtensionType.Instance + let Name = "VK_KHR_external_memory_capabilities" + let Number = 72 + + type VkExternalMemoryHandleTypeFlagsKHR = Vulkan11.VkExternalMemoryHandleTypeFlags + type VkExternalMemoryFeatureFlagsKHR = Vulkan11.VkExternalMemoryFeatureFlags + + type VkExternalBufferPropertiesKHR = Vulkan11.VkExternalBufferProperties + + type VkExternalImageFormatPropertiesKHR = Vulkan11.VkExternalImageFormatProperties + + type VkExternalMemoryPropertiesKHR = Vulkan11.VkExternalMemoryProperties + + type VkPhysicalDeviceExternalBufferInfoKHR = Vulkan11.VkPhysicalDeviceExternalBufferInfo + + type VkPhysicalDeviceExternalImageFormatInfoKHR = Vulkan11.VkPhysicalDeviceExternalImageFormatInfo + + type VkPhysicalDeviceIDPropertiesKHR = Vulkan11.VkPhysicalDeviceIDProperties + + [] module EnumExtensions = - type VkObjectType with - static member inline DisplayKhr = unbox 1000002000 - static member inline DisplayModeKhr = unbox 1000002001 + type Vulkan11.VkExternalMemoryFeatureFlags with + static member inline DedicatedOnlyBitKhr = unbox 0x00000001 + static member inline ExportableBitKhr = unbox 0x00000002 + static member inline ImportableBitKhr = unbox 0x00000004 + type Vulkan11.VkExternalMemoryHandleTypeFlags with + static member inline OpaqueFdBitKhr = unbox 0x00000001 + static member inline OpaqueWin32BitKhr = unbox 0x00000002 + static member inline OpaqueWin32KmtBitKhr = unbox 0x00000004 + static member inline D3d11TextureBitKhr = unbox 0x00000008 + static member inline D3d11TextureKmtBitKhr = unbox 0x00000010 + static member inline D3d12HeapBitKhr = unbox 0x00000020 + static member inline D3d12ResourceBitKhr = unbox 0x00000040 module VkRaw = [] - type VkGetPhysicalDeviceDisplayPropertiesKHRDel = delegate of VkPhysicalDevice * nativeptr * nativeptr -> VkResult - [] - type VkGetPhysicalDeviceDisplayPlanePropertiesKHRDel = delegate of VkPhysicalDevice * nativeptr * nativeptr -> VkResult - [] - type VkGetDisplayPlaneSupportedDisplaysKHRDel = delegate of VkPhysicalDevice * uint32 * nativeptr * nativeptr -> VkResult - [] - type VkGetDisplayModePropertiesKHRDel = delegate of VkPhysicalDevice * VkDisplayKHR * nativeptr * nativeptr -> VkResult - [] - type VkCreateDisplayModeKHRDel = delegate of VkPhysicalDevice * VkDisplayKHR * nativeptr * nativeptr * nativeptr -> VkResult - [] - type VkGetDisplayPlaneCapabilitiesKHRDel = delegate of VkPhysicalDevice * VkDisplayModeKHR * uint32 * nativeptr -> VkResult - [] - type VkCreateDisplayPlaneSurfaceKHRDel = delegate of VkInstance * nativeptr * nativeptr * nativeptr -> VkResult + type VkGetPhysicalDeviceExternalBufferPropertiesKHRDel = delegate of VkPhysicalDevice * nativeptr * nativeptr -> unit [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRDisplay") - static let s_vkGetPhysicalDeviceDisplayPropertiesKHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceDisplayPropertiesKHR" - static let s_vkGetPhysicalDeviceDisplayPlanePropertiesKHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceDisplayPlanePropertiesKHR" - static let s_vkGetDisplayPlaneSupportedDisplaysKHRDel = VkRaw.vkImportInstanceDelegate "vkGetDisplayPlaneSupportedDisplaysKHR" - static let s_vkGetDisplayModePropertiesKHRDel = VkRaw.vkImportInstanceDelegate "vkGetDisplayModePropertiesKHR" - static let s_vkCreateDisplayModeKHRDel = VkRaw.vkImportInstanceDelegate "vkCreateDisplayModeKHR" - static let s_vkGetDisplayPlaneCapabilitiesKHRDel = VkRaw.vkImportInstanceDelegate "vkGetDisplayPlaneCapabilitiesKHR" - static let s_vkCreateDisplayPlaneSurfaceKHRDel = VkRaw.vkImportInstanceDelegate "vkCreateDisplayPlaneSurfaceKHR" + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRExternalMemoryCapabilities") + static let s_vkGetPhysicalDeviceExternalBufferPropertiesKHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceExternalBufferPropertiesKHR" static do Report.End(3) |> ignore - static member vkGetPhysicalDeviceDisplayPropertiesKHR = s_vkGetPhysicalDeviceDisplayPropertiesKHRDel - static member vkGetPhysicalDeviceDisplayPlanePropertiesKHR = s_vkGetPhysicalDeviceDisplayPlanePropertiesKHRDel - static member vkGetDisplayPlaneSupportedDisplaysKHR = s_vkGetDisplayPlaneSupportedDisplaysKHRDel - static member vkGetDisplayModePropertiesKHR = s_vkGetDisplayModePropertiesKHRDel - static member vkCreateDisplayModeKHR = s_vkCreateDisplayModeKHRDel - static member vkGetDisplayPlaneCapabilitiesKHR = s_vkGetDisplayPlaneCapabilitiesKHRDel - static member vkCreateDisplayPlaneSurfaceKHR = s_vkCreateDisplayPlaneSurfaceKHRDel - let vkGetPhysicalDeviceDisplayPropertiesKHR(physicalDevice : VkPhysicalDevice, pPropertyCount : nativeptr, pProperties : nativeptr) = Loader.vkGetPhysicalDeviceDisplayPropertiesKHR.Invoke(physicalDevice, pPropertyCount, pProperties) - let vkGetPhysicalDeviceDisplayPlanePropertiesKHR(physicalDevice : VkPhysicalDevice, pPropertyCount : nativeptr, pProperties : nativeptr) = Loader.vkGetPhysicalDeviceDisplayPlanePropertiesKHR.Invoke(physicalDevice, pPropertyCount, pProperties) - let vkGetDisplayPlaneSupportedDisplaysKHR(physicalDevice : VkPhysicalDevice, planeIndex : uint32, pDisplayCount : nativeptr, pDisplays : nativeptr) = Loader.vkGetDisplayPlaneSupportedDisplaysKHR.Invoke(physicalDevice, planeIndex, pDisplayCount, pDisplays) - let vkGetDisplayModePropertiesKHR(physicalDevice : VkPhysicalDevice, display : VkDisplayKHR, pPropertyCount : nativeptr, pProperties : nativeptr) = Loader.vkGetDisplayModePropertiesKHR.Invoke(physicalDevice, display, pPropertyCount, pProperties) - let vkCreateDisplayModeKHR(physicalDevice : VkPhysicalDevice, display : VkDisplayKHR, pCreateInfo : nativeptr, pAllocator : nativeptr, pMode : nativeptr) = Loader.vkCreateDisplayModeKHR.Invoke(physicalDevice, display, pCreateInfo, pAllocator, pMode) - let vkGetDisplayPlaneCapabilitiesKHR(physicalDevice : VkPhysicalDevice, mode : VkDisplayModeKHR, planeIndex : uint32, pCapabilities : nativeptr) = Loader.vkGetDisplayPlaneCapabilitiesKHR.Invoke(physicalDevice, mode, planeIndex, pCapabilities) - let vkCreateDisplayPlaneSurfaceKHR(instance : VkInstance, pCreateInfo : nativeptr, pAllocator : nativeptr, pSurface : nativeptr) = Loader.vkCreateDisplayPlaneSurfaceKHR.Invoke(instance, pCreateInfo, pAllocator, pSurface) + static member vkGetPhysicalDeviceExternalBufferPropertiesKHR = s_vkGetPhysicalDeviceExternalBufferPropertiesKHRDel + let vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice : VkPhysicalDevice, pExternalBufferInfo : nativeptr, pExternalBufferProperties : nativeptr) = Loader.vkGetPhysicalDeviceExternalBufferPropertiesKHR.Invoke(physicalDevice, pExternalBufferInfo, pExternalBufferProperties) -module EXTDirectModeDisplay = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRDisplay - open KHRSurface - let Name = "VK_EXT_direct_mode_display" - let Number = 89 +/// Requires KHRExternalMemoryCapabilities | Vulkan11. +/// Promoted to Vulkan11. +module KHRExternalMemory = + let Type = ExtensionType.Device + let Name = "VK_KHR_external_memory" + let Number = 73 - let Required = [ KHRDisplay.Name ] + type VkExportMemoryAllocateInfoKHR = Vulkan11.VkExportMemoryAllocateInfo + type VkExternalMemoryBufferCreateInfoKHR = Vulkan11.VkExternalMemoryBufferCreateInfo - module VkRaw = - [] - type VkReleaseDisplayEXTDel = delegate of VkPhysicalDevice * VkDisplayKHR -> VkResult + type VkExternalMemoryImageCreateInfoKHR = Vulkan11.VkExternalMemoryImageCreateInfo - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading EXTDirectModeDisplay") - static let s_vkReleaseDisplayEXTDel = VkRaw.vkImportInstanceDelegate "vkReleaseDisplayEXT" - static do Report.End(3) |> ignore - static member vkReleaseDisplayEXT = s_vkReleaseDisplayEXTDel - let vkReleaseDisplayEXT(physicalDevice : VkPhysicalDevice, display : VkDisplayKHR) = Loader.vkReleaseDisplayEXT.Invoke(physicalDevice, display) -module EXTAcquireDrmDisplay = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open EXTDirectModeDisplay - open KHRDisplay - open KHRSurface - let Name = "VK_EXT_acquire_drm_display" - let Number = 286 + [] + module EnumExtensions = + type VkResult with + static member inline ErrorInvalidExternalHandleKhr = unbox 1000072003 - let Required = [ EXTDirectModeDisplay.Name ] +/// Requires KHRExternalMemory | Vulkan11. +module EXTQueueFamilyForeign = + let Type = ExtensionType.Device + let Name = "VK_EXT_queue_family_foreign" + let Number = 127 - module VkRaw = - [] - type VkAcquireDrmDisplayEXTDel = delegate of VkPhysicalDevice * int * VkDisplayKHR -> VkResult - [] - type VkGetDrmDisplayEXTDel = delegate of VkPhysicalDevice * int * uint32 * nativeptr -> VkResult +/// Requires KHRGetMemoryRequirements2 | Vulkan11. +/// Promoted to Vulkan11. +module KHRDedicatedAllocation = + let Type = ExtensionType.Device + let Name = "VK_KHR_dedicated_allocation" + let Number = 128 - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading EXTAcquireDrmDisplay") - static let s_vkAcquireDrmDisplayEXTDel = VkRaw.vkImportInstanceDelegate "vkAcquireDrmDisplayEXT" - static let s_vkGetDrmDisplayEXTDel = VkRaw.vkImportInstanceDelegate "vkGetDrmDisplayEXT" - static do Report.End(3) |> ignore - static member vkAcquireDrmDisplayEXT = s_vkAcquireDrmDisplayEXTDel - static member vkGetDrmDisplayEXT = s_vkGetDrmDisplayEXTDel - let vkAcquireDrmDisplayEXT(physicalDevice : VkPhysicalDevice, drmFd : int, display : VkDisplayKHR) = Loader.vkAcquireDrmDisplayEXT.Invoke(physicalDevice, drmFd, display) - let vkGetDrmDisplayEXT(physicalDevice : VkPhysicalDevice, drmFd : int, connectorId : uint32, display : nativeptr) = Loader.vkGetDrmDisplayEXT.Invoke(physicalDevice, drmFd, connectorId, display) + type VkMemoryDedicatedAllocateInfoKHR = Vulkan11.VkMemoryDedicatedAllocateInfo + + type VkMemoryDedicatedRequirementsKHR = Vulkan11.VkMemoryDedicatedRequirements + + + +/// Requires (KHRMaintenance1, KHRBindMemory2, KHRGetMemoryRequirements2, KHRGetPhysicalDeviceProperties2) | Vulkan11. +/// Promoted to Vulkan11. +module KHRSamplerYcbcrConversion = + let Type = ExtensionType.Device + let Name = "VK_KHR_sampler_ycbcr_conversion" + let Number = 157 + + type VkSamplerYcbcrConversionKHR = Vulkan11.VkSamplerYcbcrConversion + type VkSamplerYcbcrModelConversionKHR = Vulkan11.VkSamplerYcbcrModelConversion + type VkSamplerYcbcrRangeKHR = Vulkan11.VkSamplerYcbcrRange + type VkChromaLocationKHR = Vulkan11.VkChromaLocation + + type VkBindImagePlaneMemoryInfoKHR = Vulkan11.VkBindImagePlaneMemoryInfo + + type VkImagePlaneMemoryRequirementsInfoKHR = Vulkan11.VkImagePlaneMemoryRequirementsInfo -module EXTAcquireXlibDisplay = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open EXTDirectModeDisplay - open KHRDisplay - open KHRSurface - let Name = "VK_EXT_acquire_xlib_display" - let Number = 90 + type VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR = Vulkan11.VkPhysicalDeviceSamplerYcbcrConversionFeatures + + type VkSamplerYcbcrConversionCreateInfoKHR = Vulkan11.VkSamplerYcbcrConversionCreateInfo - let Required = [ EXTDirectModeDisplay.Name ] + type VkSamplerYcbcrConversionImageFormatPropertiesKHR = Vulkan11.VkSamplerYcbcrConversionImageFormatProperties + type VkSamplerYcbcrConversionInfoKHR = Vulkan11.VkSamplerYcbcrConversionInfo + + + [] + module EnumExtensions = + type Vulkan11.VkChromaLocation with + static member inline CositedEvenKhr = unbox 0 + static member inline MidpointKhr = unbox 1 + type VkFormat with + static member inline G8b8g8r8422UnormKhr = unbox 1000156000 + static member inline B8g8r8g8422UnormKhr = unbox 1000156001 + static member inline G8B8R83plane420UnormKhr = unbox 1000156002 + static member inline G8B8r82plane420UnormKhr = unbox 1000156003 + static member inline G8B8R83plane422UnormKhr = unbox 1000156004 + static member inline G8B8r82plane422UnormKhr = unbox 1000156005 + static member inline G8B8R83plane444UnormKhr = unbox 1000156006 + static member inline R10x6UnormPack16Khr = unbox 1000156007 + static member inline R10x6g10x6Unorm2pack16Khr = unbox 1000156008 + static member inline R10x6g10x6b10x6a10x6Unorm4pack16Khr = unbox 1000156009 + static member inline G10x6b10x6g10x6r10x6422Unorm4pack16Khr = unbox 1000156010 + static member inline B10x6g10x6r10x6g10x6422Unorm4pack16Khr = unbox 1000156011 + static member inline G10x6B10x6R10x63plane420Unorm3pack16Khr = unbox 1000156012 + static member inline G10x6B10x6r10x62plane420Unorm3pack16Khr = unbox 1000156013 + static member inline G10x6B10x6R10x63plane422Unorm3pack16Khr = unbox 1000156014 + static member inline G10x6B10x6r10x62plane422Unorm3pack16Khr = unbox 1000156015 + static member inline G10x6B10x6R10x63plane444Unorm3pack16Khr = unbox 1000156016 + static member inline R12x4UnormPack16Khr = unbox 1000156017 + static member inline R12x4g12x4Unorm2pack16Khr = unbox 1000156018 + static member inline R12x4g12x4b12x4a12x4Unorm4pack16Khr = unbox 1000156019 + static member inline G12x4b12x4g12x4r12x4422Unorm4pack16Khr = unbox 1000156020 + static member inline B12x4g12x4r12x4g12x4422Unorm4pack16Khr = unbox 1000156021 + static member inline G12x4B12x4R12x43plane420Unorm3pack16Khr = unbox 1000156022 + static member inline G12x4B12x4r12x42plane420Unorm3pack16Khr = unbox 1000156023 + static member inline G12x4B12x4R12x43plane422Unorm3pack16Khr = unbox 1000156024 + static member inline G12x4B12x4r12x42plane422Unorm3pack16Khr = unbox 1000156025 + static member inline G12x4B12x4R12x43plane444Unorm3pack16Khr = unbox 1000156026 + static member inline G16b16g16r16422UnormKhr = unbox 1000156027 + static member inline B16g16r16g16422UnormKhr = unbox 1000156028 + static member inline G16B16R163plane420UnormKhr = unbox 1000156029 + static member inline G16B16r162plane420UnormKhr = unbox 1000156030 + static member inline G16B16R163plane422UnormKhr = unbox 1000156031 + static member inline G16B16r162plane422UnormKhr = unbox 1000156032 + static member inline G16B16R163plane444UnormKhr = unbox 1000156033 + type VkFormatFeatureFlags with + static member inline MidpointChromaSamplesBitKhr = unbox 0x00020000 + static member inline SampledImageYcbcrConversionLinearFilterBitKhr = unbox 0x00040000 + static member inline SampledImageYcbcrConversionSeparateReconstructionFilterBitKhr = unbox 0x00080000 + static member inline SampledImageYcbcrConversionChromaReconstructionExplicitBitKhr = unbox 0x00100000 + static member inline SampledImageYcbcrConversionChromaReconstructionExplicitForceableBitKhr = unbox 0x00200000 + static member inline DisjointBitKhr = unbox 0x00400000 + static member inline CositedChromaSamplesBitKhr = unbox 0x00800000 + type VkImageAspectFlags with + static member inline Plane0BitKhr = unbox 0x00000010 + static member inline Plane1BitKhr = unbox 0x00000020 + static member inline Plane2BitKhr = unbox 0x00000040 + type VkImageCreateFlags with + static member inline DisjointBitKhr = unbox 0x00000200 + type VkObjectType with + static member inline SamplerYcbcrConversionKhr = unbox 1000156000 + type Vulkan11.VkSamplerYcbcrModelConversion with + static member inline RgbIdentityKhr = unbox 0 + static member inline YcbcrIdentityKhr = unbox 1 + static member inline Ycbcr709Khr = unbox 2 + static member inline Ycbcr601Khr = unbox 3 + static member inline Ycbcr2020Khr = unbox 4 + type Vulkan11.VkSamplerYcbcrRange with + static member inline ItuFullKhr = unbox 0 + static member inline ItuNarrowKhr = unbox 1 module VkRaw = [] - type VkAcquireXlibDisplayEXTDel = delegate of VkPhysicalDevice * nativeptr * VkDisplayKHR -> VkResult + type VkCreateSamplerYcbcrConversionKHRDel = delegate of VkDevice * nativeptr * nativeptr * nativeptr -> VkResult [] - type VkGetRandROutputDisplayEXTDel = delegate of VkPhysicalDevice * nativeptr * nativeint * nativeptr -> VkResult + type VkDestroySamplerYcbcrConversionKHRDel = delegate of VkDevice * Vulkan11.VkSamplerYcbcrConversion * nativeptr -> unit [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading EXTAcquireXlibDisplay") - static let s_vkAcquireXlibDisplayEXTDel = VkRaw.vkImportInstanceDelegate "vkAcquireXlibDisplayEXT" - static let s_vkGetRandROutputDisplayEXTDel = VkRaw.vkImportInstanceDelegate "vkGetRandROutputDisplayEXT" + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRSamplerYcbcrConversion") + static let s_vkCreateSamplerYcbcrConversionKHRDel = VkRaw.vkImportInstanceDelegate "vkCreateSamplerYcbcrConversionKHR" + static let s_vkDestroySamplerYcbcrConversionKHRDel = VkRaw.vkImportInstanceDelegate "vkDestroySamplerYcbcrConversionKHR" static do Report.End(3) |> ignore - static member vkAcquireXlibDisplayEXT = s_vkAcquireXlibDisplayEXTDel - static member vkGetRandROutputDisplayEXT = s_vkGetRandROutputDisplayEXTDel - let vkAcquireXlibDisplayEXT(physicalDevice : VkPhysicalDevice, dpy : nativeptr, display : VkDisplayKHR) = Loader.vkAcquireXlibDisplayEXT.Invoke(physicalDevice, dpy, display) - let vkGetRandROutputDisplayEXT(physicalDevice : VkPhysicalDevice, dpy : nativeptr, rrOutput : nativeint, pDisplay : nativeptr) = Loader.vkGetRandROutputDisplayEXT.Invoke(physicalDevice, dpy, rrOutput, pDisplay) + static member vkCreateSamplerYcbcrConversionKHR = s_vkCreateSamplerYcbcrConversionKHRDel + static member vkDestroySamplerYcbcrConversionKHR = s_vkDestroySamplerYcbcrConversionKHRDel + let vkCreateSamplerYcbcrConversionKHR(device : VkDevice, pCreateInfo : nativeptr, pAllocator : nativeptr, pYcbcrConversion : nativeptr) = Loader.vkCreateSamplerYcbcrConversionKHR.Invoke(device, pCreateInfo, pAllocator, pYcbcrConversion) + let vkDestroySamplerYcbcrConversionKHR(device : VkDevice, ycbcrConversion : Vulkan11.VkSamplerYcbcrConversion, pAllocator : nativeptr) = Loader.vkDestroySamplerYcbcrConversionKHR.Invoke(device, ycbcrConversion, pAllocator) + + [] + module ``EXTDebugReport`` = + [] + module EnumExtensions = + type EXTDebugReport.VkDebugReportObjectTypeEXT with + static member inline SamplerYcbcrConversion = unbox 1000156000 + static member inline SamplerYcbcrConversionKhr = unbox 1000156000 -module EXTAstcDecodeMode = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_EXT_astc_decode_mode" - let Number = 68 - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] +/// Requires ((KHRSamplerYcbcrConversion, KHRExternalMemory, KHRDedicatedAllocation) | Vulkan11), EXTQueueFamilyForeign. +module ANDROIDExternalMemoryAndroidHardwareBuffer = + let Type = ExtensionType.Device + let Name = "VK_ANDROID_external_memory_android_hardware_buffer" + let Number = 130 + type AHardwareBuffer = nativeint [] - type VkImageViewASTCDecodeModeEXT = + type VkAndroidHardwareBufferFormatPropertiesANDROID = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public decodeMode : VkFormat + val mutable public format : VkFormat + val mutable public externalFormat : uint64 + val mutable public formatFeatures : VkFormatFeatureFlags + val mutable public samplerYcbcrConversionComponents : VkComponentMapping + val mutable public suggestedYcbcrModel : Vulkan11.VkSamplerYcbcrModelConversion + val mutable public suggestedYcbcrRange : Vulkan11.VkSamplerYcbcrRange + val mutable public suggestedXChromaOffset : Vulkan11.VkChromaLocation + val mutable public suggestedYChromaOffset : Vulkan11.VkChromaLocation - new(pNext : nativeint, decodeMode : VkFormat) = + new(pNext : nativeint, format : VkFormat, externalFormat : uint64, formatFeatures : VkFormatFeatureFlags, samplerYcbcrConversionComponents : VkComponentMapping, suggestedYcbcrModel : Vulkan11.VkSamplerYcbcrModelConversion, suggestedYcbcrRange : Vulkan11.VkSamplerYcbcrRange, suggestedXChromaOffset : Vulkan11.VkChromaLocation, suggestedYChromaOffset : Vulkan11.VkChromaLocation) = { - sType = 1000067000u + sType = 1000129002u pNext = pNext - decodeMode = decodeMode + format = format + externalFormat = externalFormat + formatFeatures = formatFeatures + samplerYcbcrConversionComponents = samplerYcbcrConversionComponents + suggestedYcbcrModel = suggestedYcbcrModel + suggestedYcbcrRange = suggestedYcbcrRange + suggestedXChromaOffset = suggestedXChromaOffset + suggestedYChromaOffset = suggestedYChromaOffset } - new(decodeMode : VkFormat) = - VkImageViewASTCDecodeModeEXT(Unchecked.defaultof, decodeMode) + new(format : VkFormat, externalFormat : uint64, formatFeatures : VkFormatFeatureFlags, samplerYcbcrConversionComponents : VkComponentMapping, suggestedYcbcrModel : Vulkan11.VkSamplerYcbcrModelConversion, suggestedYcbcrRange : Vulkan11.VkSamplerYcbcrRange, suggestedXChromaOffset : Vulkan11.VkChromaLocation, suggestedYChromaOffset : Vulkan11.VkChromaLocation) = + VkAndroidHardwareBufferFormatPropertiesANDROID(Unchecked.defaultof, format, externalFormat, formatFeatures, samplerYcbcrConversionComponents, suggestedYcbcrModel, suggestedYcbcrRange, suggestedXChromaOffset, suggestedYChromaOffset) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.decodeMode = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.format = Unchecked.defaultof && x.externalFormat = Unchecked.defaultof && x.formatFeatures = Unchecked.defaultof && x.samplerYcbcrConversionComponents = Unchecked.defaultof && x.suggestedYcbcrModel = Unchecked.defaultof && x.suggestedYcbcrRange = Unchecked.defaultof && x.suggestedXChromaOffset = Unchecked.defaultof && x.suggestedYChromaOffset = Unchecked.defaultof static member Empty = - VkImageViewASTCDecodeModeEXT(Unchecked.defaultof, Unchecked.defaultof) + VkAndroidHardwareBufferFormatPropertiesANDROID(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "decodeMode = %A" x.decodeMode - ] |> sprintf "VkImageViewASTCDecodeModeEXT { %s }" + sprintf "format = %A" x.format + sprintf "externalFormat = %A" x.externalFormat + sprintf "formatFeatures = %A" x.formatFeatures + sprintf "samplerYcbcrConversionComponents = %A" x.samplerYcbcrConversionComponents + sprintf "suggestedYcbcrModel = %A" x.suggestedYcbcrModel + sprintf "suggestedYcbcrRange = %A" x.suggestedYcbcrRange + sprintf "suggestedXChromaOffset = %A" x.suggestedXChromaOffset + sprintf "suggestedYChromaOffset = %A" x.suggestedYChromaOffset + ] |> sprintf "VkAndroidHardwareBufferFormatPropertiesANDROID { %s }" end [] - type VkPhysicalDeviceASTCDecodeFeaturesEXT = + type VkAndroidHardwareBufferPropertiesANDROID = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public decodeModeSharedExponent : VkBool32 + val mutable public allocationSize : VkDeviceSize + val mutable public memoryTypeBits : uint32 - new(pNext : nativeint, decodeModeSharedExponent : VkBool32) = + new(pNext : nativeint, allocationSize : VkDeviceSize, memoryTypeBits : uint32) = { - sType = 1000067001u + sType = 1000129001u pNext = pNext - decodeModeSharedExponent = decodeModeSharedExponent + allocationSize = allocationSize + memoryTypeBits = memoryTypeBits } - new(decodeModeSharedExponent : VkBool32) = - VkPhysicalDeviceASTCDecodeFeaturesEXT(Unchecked.defaultof, decodeModeSharedExponent) + new(allocationSize : VkDeviceSize, memoryTypeBits : uint32) = + VkAndroidHardwareBufferPropertiesANDROID(Unchecked.defaultof, allocationSize, memoryTypeBits) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.decodeModeSharedExponent = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.allocationSize = Unchecked.defaultof && x.memoryTypeBits = Unchecked.defaultof static member Empty = - VkPhysicalDeviceASTCDecodeFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) + VkAndroidHardwareBufferPropertiesANDROID(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "decodeModeSharedExponent = %A" x.decodeModeSharedExponent - ] |> sprintf "VkPhysicalDeviceASTCDecodeFeaturesEXT { %s }" + sprintf "allocationSize = %A" x.allocationSize + sprintf "memoryTypeBits = %A" x.memoryTypeBits + ] |> sprintf "VkAndroidHardwareBufferPropertiesANDROID { %s }" end + [] + type VkAndroidHardwareBufferUsageANDROID = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public androidHardwareBufferUsage : uint64 + new(pNext : nativeint, androidHardwareBufferUsage : uint64) = + { + sType = 1000129000u + pNext = pNext + androidHardwareBufferUsage = androidHardwareBufferUsage + } -module EXTBlendOperationAdvanced = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_EXT_blend_operation_advanced" - let Number = 149 - - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] + new(androidHardwareBufferUsage : uint64) = + VkAndroidHardwareBufferUsageANDROID(Unchecked.defaultof, androidHardwareBufferUsage) + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.androidHardwareBufferUsage = Unchecked.defaultof - type VkBlendOverlapEXT = - | Uncorrelated = 0 - | Disjoint = 1 - | Conjoint = 2 + static member Empty = + VkAndroidHardwareBufferUsageANDROID(Unchecked.defaultof, Unchecked.defaultof) + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "androidHardwareBufferUsage = %A" x.androidHardwareBufferUsage + ] |> sprintf "VkAndroidHardwareBufferUsageANDROID { %s }" + end [] - type VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT = + type VkExternalFormatANDROID = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public advancedBlendCoherentOperations : VkBool32 + val mutable public externalFormat : uint64 - new(pNext : nativeint, advancedBlendCoherentOperations : VkBool32) = + new(pNext : nativeint, externalFormat : uint64) = { - sType = 1000148000u + sType = 1000129005u pNext = pNext - advancedBlendCoherentOperations = advancedBlendCoherentOperations + externalFormat = externalFormat } - new(advancedBlendCoherentOperations : VkBool32) = - VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(Unchecked.defaultof, advancedBlendCoherentOperations) + new(externalFormat : uint64) = + VkExternalFormatANDROID(Unchecked.defaultof, externalFormat) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.advancedBlendCoherentOperations = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.externalFormat = Unchecked.defaultof static member Empty = - VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) + VkExternalFormatANDROID(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "advancedBlendCoherentOperations = %A" x.advancedBlendCoherentOperations - ] |> sprintf "VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT { %s }" + sprintf "externalFormat = %A" x.externalFormat + ] |> sprintf "VkExternalFormatANDROID { %s }" end [] - type VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT = + type VkImportAndroidHardwareBufferInfoANDROID = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public advancedBlendMaxColorAttachments : uint32 - val mutable public advancedBlendIndependentBlend : VkBool32 - val mutable public advancedBlendNonPremultipliedSrcColor : VkBool32 - val mutable public advancedBlendNonPremultipliedDstColor : VkBool32 - val mutable public advancedBlendCorrelatedOverlap : VkBool32 - val mutable public advancedBlendAllOperations : VkBool32 + val mutable public buffer : nativeptr - new(pNext : nativeint, advancedBlendMaxColorAttachments : uint32, advancedBlendIndependentBlend : VkBool32, advancedBlendNonPremultipliedSrcColor : VkBool32, advancedBlendNonPremultipliedDstColor : VkBool32, advancedBlendCorrelatedOverlap : VkBool32, advancedBlendAllOperations : VkBool32) = + new(pNext : nativeint, buffer : nativeptr) = { - sType = 1000148001u + sType = 1000129003u pNext = pNext - advancedBlendMaxColorAttachments = advancedBlendMaxColorAttachments - advancedBlendIndependentBlend = advancedBlendIndependentBlend - advancedBlendNonPremultipliedSrcColor = advancedBlendNonPremultipliedSrcColor - advancedBlendNonPremultipliedDstColor = advancedBlendNonPremultipliedDstColor - advancedBlendCorrelatedOverlap = advancedBlendCorrelatedOverlap - advancedBlendAllOperations = advancedBlendAllOperations + buffer = buffer } - new(advancedBlendMaxColorAttachments : uint32, advancedBlendIndependentBlend : VkBool32, advancedBlendNonPremultipliedSrcColor : VkBool32, advancedBlendNonPremultipliedDstColor : VkBool32, advancedBlendCorrelatedOverlap : VkBool32, advancedBlendAllOperations : VkBool32) = - VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(Unchecked.defaultof, advancedBlendMaxColorAttachments, advancedBlendIndependentBlend, advancedBlendNonPremultipliedSrcColor, advancedBlendNonPremultipliedDstColor, advancedBlendCorrelatedOverlap, advancedBlendAllOperations) + new(buffer : nativeptr) = + VkImportAndroidHardwareBufferInfoANDROID(Unchecked.defaultof, buffer) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.advancedBlendMaxColorAttachments = Unchecked.defaultof && x.advancedBlendIndependentBlend = Unchecked.defaultof && x.advancedBlendNonPremultipliedSrcColor = Unchecked.defaultof && x.advancedBlendNonPremultipliedDstColor = Unchecked.defaultof && x.advancedBlendCorrelatedOverlap = Unchecked.defaultof && x.advancedBlendAllOperations = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.buffer = Unchecked.defaultof> static member Empty = - VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkImportAndroidHardwareBufferInfoANDROID(Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "advancedBlendMaxColorAttachments = %A" x.advancedBlendMaxColorAttachments - sprintf "advancedBlendIndependentBlend = %A" x.advancedBlendIndependentBlend - sprintf "advancedBlendNonPremultipliedSrcColor = %A" x.advancedBlendNonPremultipliedSrcColor - sprintf "advancedBlendNonPremultipliedDstColor = %A" x.advancedBlendNonPremultipliedDstColor - sprintf "advancedBlendCorrelatedOverlap = %A" x.advancedBlendCorrelatedOverlap - sprintf "advancedBlendAllOperations = %A" x.advancedBlendAllOperations - ] |> sprintf "VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT { %s }" + sprintf "buffer = %A" x.buffer + ] |> sprintf "VkImportAndroidHardwareBufferInfoANDROID { %s }" end [] - type VkPipelineColorBlendAdvancedStateCreateInfoEXT = + type VkMemoryGetAndroidHardwareBufferInfoANDROID = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public srcPremultiplied : VkBool32 - val mutable public dstPremultiplied : VkBool32 - val mutable public blendOverlap : VkBlendOverlapEXT + val mutable public memory : VkDeviceMemory - new(pNext : nativeint, srcPremultiplied : VkBool32, dstPremultiplied : VkBool32, blendOverlap : VkBlendOverlapEXT) = + new(pNext : nativeint, memory : VkDeviceMemory) = { - sType = 1000148002u + sType = 1000129004u pNext = pNext - srcPremultiplied = srcPremultiplied - dstPremultiplied = dstPremultiplied - blendOverlap = blendOverlap + memory = memory } - new(srcPremultiplied : VkBool32, dstPremultiplied : VkBool32, blendOverlap : VkBlendOverlapEXT) = - VkPipelineColorBlendAdvancedStateCreateInfoEXT(Unchecked.defaultof, srcPremultiplied, dstPremultiplied, blendOverlap) + new(memory : VkDeviceMemory) = + VkMemoryGetAndroidHardwareBufferInfoANDROID(Unchecked.defaultof, memory) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.srcPremultiplied = Unchecked.defaultof && x.dstPremultiplied = Unchecked.defaultof && x.blendOverlap = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.memory = Unchecked.defaultof static member Empty = - VkPipelineColorBlendAdvancedStateCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkMemoryGetAndroidHardwareBufferInfoANDROID(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "srcPremultiplied = %A" x.srcPremultiplied - sprintf "dstPremultiplied = %A" x.dstPremultiplied - sprintf "blendOverlap = %A" x.blendOverlap - ] |> sprintf "VkPipelineColorBlendAdvancedStateCreateInfoEXT { %s }" + sprintf "memory = %A" x.memory + ] |> sprintf "VkMemoryGetAndroidHardwareBufferInfoANDROID { %s }" end [] module EnumExtensions = - type VkAccessFlags with - static member inline ColorAttachmentReadNoncoherentBitExt = unbox 0x00080000 - type VkBlendOp with - static member inline ZeroExt = unbox 1000148000 - static member inline SrcExt = unbox 1000148001 - static member inline DstExt = unbox 1000148002 - static member inline SrcOverExt = unbox 1000148003 - static member inline DstOverExt = unbox 1000148004 - static member inline SrcInExt = unbox 1000148005 - static member inline DstInExt = unbox 1000148006 - static member inline SrcOutExt = unbox 1000148007 - static member inline DstOutExt = unbox 1000148008 - static member inline SrcAtopExt = unbox 1000148009 - static member inline DstAtopExt = unbox 1000148010 - static member inline XorExt = unbox 1000148011 - static member inline MultiplyExt = unbox 1000148012 - static member inline ScreenExt = unbox 1000148013 - static member inline OverlayExt = unbox 1000148014 - static member inline DarkenExt = unbox 1000148015 - static member inline LightenExt = unbox 1000148016 - static member inline ColordodgeExt = unbox 1000148017 - static member inline ColorburnExt = unbox 1000148018 - static member inline HardlightExt = unbox 1000148019 - static member inline SoftlightExt = unbox 1000148020 - static member inline DifferenceExt = unbox 1000148021 - static member inline ExclusionExt = unbox 1000148022 - static member inline InvertExt = unbox 1000148023 - static member inline InvertRgbExt = unbox 1000148024 - static member inline LineardodgeExt = unbox 1000148025 - static member inline LinearburnExt = unbox 1000148026 - static member inline VividlightExt = unbox 1000148027 - static member inline LinearlightExt = unbox 1000148028 - static member inline PinlightExt = unbox 1000148029 - static member inline HardmixExt = unbox 1000148030 - static member inline HslHueExt = unbox 1000148031 - static member inline HslSaturationExt = unbox 1000148032 - static member inline HslColorExt = unbox 1000148033 - static member inline HslLuminosityExt = unbox 1000148034 - static member inline PlusExt = unbox 1000148035 - static member inline PlusClampedExt = unbox 1000148036 - static member inline PlusClampedAlphaExt = unbox 1000148037 - static member inline PlusDarkerExt = unbox 1000148038 - static member inline MinusExt = unbox 1000148039 - static member inline MinusClampedExt = unbox 1000148040 - static member inline ContrastExt = unbox 1000148041 - static member inline InvertOvgExt = unbox 1000148042 - static member inline RedExt = unbox 1000148043 - static member inline GreenExt = unbox 1000148044 - static member inline BlueExt = unbox 1000148045 + type Vulkan11.VkExternalMemoryHandleTypeFlags with + static member inline AndroidHardwareBufferBitAndroid = unbox 0x00000400 + module VkRaw = + [] + type VkGetAndroidHardwareBufferPropertiesANDROIDDel = delegate of VkDevice * nativeptr * nativeptr -> VkResult + [] + type VkGetMemoryAndroidHardwareBufferANDROIDDel = delegate of VkDevice * nativeptr * nativeptr> -> VkResult -module EXTCustomBorderColor = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_EXT_custom_border_color" - let Number = 288 + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading ANDROIDExternalMemoryAndroidHardwareBuffer") + static let s_vkGetAndroidHardwareBufferPropertiesANDROIDDel = VkRaw.vkImportInstanceDelegate "vkGetAndroidHardwareBufferPropertiesANDROID" + static let s_vkGetMemoryAndroidHardwareBufferANDROIDDel = VkRaw.vkImportInstanceDelegate "vkGetMemoryAndroidHardwareBufferANDROID" + static do Report.End(3) |> ignore + static member vkGetAndroidHardwareBufferPropertiesANDROID = s_vkGetAndroidHardwareBufferPropertiesANDROIDDel + static member vkGetMemoryAndroidHardwareBufferANDROID = s_vkGetMemoryAndroidHardwareBufferANDROIDDel + let vkGetAndroidHardwareBufferPropertiesANDROID(device : VkDevice, buffer : nativeptr, pProperties : nativeptr) = Loader.vkGetAndroidHardwareBufferPropertiesANDROID.Invoke(device, buffer, pProperties) + let vkGetMemoryAndroidHardwareBufferANDROID(device : VkDevice, pInfo : nativeptr, pBuffer : nativeptr>) = Loader.vkGetMemoryAndroidHardwareBufferANDROID.Invoke(device, pInfo, pBuffer) + + [] + module ``KHRFormatFeatureFlags2 | Vulkan13`` = + [] + type VkAndroidHardwareBufferFormatProperties2ANDROID = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public format : VkFormat + val mutable public externalFormat : uint64 + val mutable public formatFeatures : Vulkan13.VkFormatFeatureFlags2 + val mutable public samplerYcbcrConversionComponents : VkComponentMapping + val mutable public suggestedYcbcrModel : Vulkan11.VkSamplerYcbcrModelConversion + val mutable public suggestedYcbcrRange : Vulkan11.VkSamplerYcbcrRange + val mutable public suggestedXChromaOffset : Vulkan11.VkChromaLocation + val mutable public suggestedYChromaOffset : Vulkan11.VkChromaLocation + + new(pNext : nativeint, format : VkFormat, externalFormat : uint64, formatFeatures : Vulkan13.VkFormatFeatureFlags2, samplerYcbcrConversionComponents : VkComponentMapping, suggestedYcbcrModel : Vulkan11.VkSamplerYcbcrModelConversion, suggestedYcbcrRange : Vulkan11.VkSamplerYcbcrRange, suggestedXChromaOffset : Vulkan11.VkChromaLocation, suggestedYChromaOffset : Vulkan11.VkChromaLocation) = + { + sType = 1000129006u + pNext = pNext + format = format + externalFormat = externalFormat + formatFeatures = formatFeatures + samplerYcbcrConversionComponents = samplerYcbcrConversionComponents + suggestedYcbcrModel = suggestedYcbcrModel + suggestedYcbcrRange = suggestedYcbcrRange + suggestedXChromaOffset = suggestedXChromaOffset + suggestedYChromaOffset = suggestedYChromaOffset + } + + new(format : VkFormat, externalFormat : uint64, formatFeatures : Vulkan13.VkFormatFeatureFlags2, samplerYcbcrConversionComponents : VkComponentMapping, suggestedYcbcrModel : Vulkan11.VkSamplerYcbcrModelConversion, suggestedYcbcrRange : Vulkan11.VkSamplerYcbcrRange, suggestedXChromaOffset : Vulkan11.VkChromaLocation, suggestedYChromaOffset : Vulkan11.VkChromaLocation) = + VkAndroidHardwareBufferFormatProperties2ANDROID(Unchecked.defaultof, format, externalFormat, formatFeatures, samplerYcbcrConversionComponents, suggestedYcbcrModel, suggestedYcbcrRange, suggestedXChromaOffset, suggestedYChromaOffset) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.format = Unchecked.defaultof && x.externalFormat = Unchecked.defaultof && x.formatFeatures = Unchecked.defaultof && x.samplerYcbcrConversionComponents = Unchecked.defaultof && x.suggestedYcbcrModel = Unchecked.defaultof && x.suggestedYcbcrRange = Unchecked.defaultof && x.suggestedXChromaOffset = Unchecked.defaultof && x.suggestedYChromaOffset = Unchecked.defaultof + static member Empty = + VkAndroidHardwareBufferFormatProperties2ANDROID(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "format = %A" x.format + sprintf "externalFormat = %A" x.externalFormat + sprintf "formatFeatures = %A" x.formatFeatures + sprintf "samplerYcbcrConversionComponents = %A" x.samplerYcbcrConversionComponents + sprintf "suggestedYcbcrModel = %A" x.suggestedYcbcrModel + sprintf "suggestedYcbcrRange = %A" x.suggestedYcbcrRange + sprintf "suggestedXChromaOffset = %A" x.suggestedXChromaOffset + sprintf "suggestedYChromaOffset = %A" x.suggestedYChromaOffset + ] |> sprintf "VkAndroidHardwareBufferFormatProperties2ANDROID { %s }" + end + + + +/// Requires ANDROIDExternalMemoryAndroidHardwareBuffer. +module ANDROIDExternalFormatResolve = + let Type = ExtensionType.Device + let Name = "VK_ANDROID_external_format_resolve" + let Number = 469 [] - type VkPhysicalDeviceCustomBorderColorFeaturesEXT = + type VkAndroidHardwareBufferFormatResolvePropertiesANDROID = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public customBorderColors : VkBool32 - val mutable public customBorderColorWithoutFormat : VkBool32 + val mutable public colorAttachmentFormat : VkFormat - new(pNext : nativeint, customBorderColors : VkBool32, customBorderColorWithoutFormat : VkBool32) = + new(pNext : nativeint, colorAttachmentFormat : VkFormat) = { - sType = 1000287002u + sType = 1000468002u pNext = pNext - customBorderColors = customBorderColors - customBorderColorWithoutFormat = customBorderColorWithoutFormat + colorAttachmentFormat = colorAttachmentFormat } - new(customBorderColors : VkBool32, customBorderColorWithoutFormat : VkBool32) = - VkPhysicalDeviceCustomBorderColorFeaturesEXT(Unchecked.defaultof, customBorderColors, customBorderColorWithoutFormat) + new(colorAttachmentFormat : VkFormat) = + VkAndroidHardwareBufferFormatResolvePropertiesANDROID(Unchecked.defaultof, colorAttachmentFormat) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.customBorderColors = Unchecked.defaultof && x.customBorderColorWithoutFormat = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.colorAttachmentFormat = Unchecked.defaultof static member Empty = - VkPhysicalDeviceCustomBorderColorFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkAndroidHardwareBufferFormatResolvePropertiesANDROID(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "customBorderColors = %A" x.customBorderColors - sprintf "customBorderColorWithoutFormat = %A" x.customBorderColorWithoutFormat - ] |> sprintf "VkPhysicalDeviceCustomBorderColorFeaturesEXT { %s }" + sprintf "colorAttachmentFormat = %A" x.colorAttachmentFormat + ] |> sprintf "VkAndroidHardwareBufferFormatResolvePropertiesANDROID { %s }" end [] - type VkPhysicalDeviceCustomBorderColorPropertiesEXT = + type VkPhysicalDeviceExternalFormatResolveFeaturesANDROID = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public maxCustomBorderColorSamplers : uint32 + val mutable public externalFormatResolve : VkBool32 - new(pNext : nativeint, maxCustomBorderColorSamplers : uint32) = + new(pNext : nativeint, externalFormatResolve : VkBool32) = { - sType = 1000287001u + sType = 1000468000u pNext = pNext - maxCustomBorderColorSamplers = maxCustomBorderColorSamplers + externalFormatResolve = externalFormatResolve } - new(maxCustomBorderColorSamplers : uint32) = - VkPhysicalDeviceCustomBorderColorPropertiesEXT(Unchecked.defaultof, maxCustomBorderColorSamplers) + new(externalFormatResolve : VkBool32) = + VkPhysicalDeviceExternalFormatResolveFeaturesANDROID(Unchecked.defaultof, externalFormatResolve) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.maxCustomBorderColorSamplers = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.externalFormatResolve = Unchecked.defaultof static member Empty = - VkPhysicalDeviceCustomBorderColorPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceExternalFormatResolveFeaturesANDROID(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "maxCustomBorderColorSamplers = %A" x.maxCustomBorderColorSamplers - ] |> sprintf "VkPhysicalDeviceCustomBorderColorPropertiesEXT { %s }" + sprintf "externalFormatResolve = %A" x.externalFormatResolve + ] |> sprintf "VkPhysicalDeviceExternalFormatResolveFeaturesANDROID { %s }" end [] - type VkSamplerCustomBorderColorCreateInfoEXT = + type VkPhysicalDeviceExternalFormatResolvePropertiesANDROID = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public customBorderColor : VkClearColorValue - val mutable public format : VkFormat + val mutable public nullColorAttachmentWithExternalFormatResolve : VkBool32 + val mutable public externalFormatResolveChromaOffsetX : Vulkan11.VkChromaLocation + val mutable public externalFormatResolveChromaOffsetY : Vulkan11.VkChromaLocation - new(pNext : nativeint, customBorderColor : VkClearColorValue, format : VkFormat) = + new(pNext : nativeint, nullColorAttachmentWithExternalFormatResolve : VkBool32, externalFormatResolveChromaOffsetX : Vulkan11.VkChromaLocation, externalFormatResolveChromaOffsetY : Vulkan11.VkChromaLocation) = { - sType = 1000287000u + sType = 1000468001u pNext = pNext - customBorderColor = customBorderColor - format = format + nullColorAttachmentWithExternalFormatResolve = nullColorAttachmentWithExternalFormatResolve + externalFormatResolveChromaOffsetX = externalFormatResolveChromaOffsetX + externalFormatResolveChromaOffsetY = externalFormatResolveChromaOffsetY } - new(customBorderColor : VkClearColorValue, format : VkFormat) = - VkSamplerCustomBorderColorCreateInfoEXT(Unchecked.defaultof, customBorderColor, format) + new(nullColorAttachmentWithExternalFormatResolve : VkBool32, externalFormatResolveChromaOffsetX : Vulkan11.VkChromaLocation, externalFormatResolveChromaOffsetY : Vulkan11.VkChromaLocation) = + VkPhysicalDeviceExternalFormatResolvePropertiesANDROID(Unchecked.defaultof, nullColorAttachmentWithExternalFormatResolve, externalFormatResolveChromaOffsetX, externalFormatResolveChromaOffsetY) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.customBorderColor = Unchecked.defaultof && x.format = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.nullColorAttachmentWithExternalFormatResolve = Unchecked.defaultof && x.externalFormatResolveChromaOffsetX = Unchecked.defaultof && x.externalFormatResolveChromaOffsetY = Unchecked.defaultof static member Empty = - VkSamplerCustomBorderColorCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceExternalFormatResolvePropertiesANDROID(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "customBorderColor = %A" x.customBorderColor - sprintf "format = %A" x.format - ] |> sprintf "VkSamplerCustomBorderColorCreateInfoEXT { %s }" + sprintf "nullColorAttachmentWithExternalFormatResolve = %A" x.nullColorAttachmentWithExternalFormatResolve + sprintf "externalFormatResolveChromaOffsetX = %A" x.externalFormatResolveChromaOffsetX + sprintf "externalFormatResolveChromaOffsetY = %A" x.externalFormatResolveChromaOffsetY + ] |> sprintf "VkPhysicalDeviceExternalFormatResolvePropertiesANDROID { %s }" + end + + + + [] + module ``KHRDynamicRendering | Vulkan13`` = + [] + module EnumExtensions = + type Vulkan12.VkResolveModeFlags with + static member inline ExternalFormatDownsampleAndroid = unbox 0x00000010 + + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module EXTRasterizationOrderAttachmentAccess = + let Type = ExtensionType.Device + let Name = "VK_EXT_rasterization_order_attachment_access" + let Number = 464 + + + [] + type VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public rasterizationOrderColorAttachmentAccess : VkBool32 + val mutable public rasterizationOrderDepthAttachmentAccess : VkBool32 + val mutable public rasterizationOrderStencilAttachmentAccess : VkBool32 + + new(pNext : nativeint, rasterizationOrderColorAttachmentAccess : VkBool32, rasterizationOrderDepthAttachmentAccess : VkBool32, rasterizationOrderStencilAttachmentAccess : VkBool32) = + { + sType = 1000342000u + pNext = pNext + rasterizationOrderColorAttachmentAccess = rasterizationOrderColorAttachmentAccess + rasterizationOrderDepthAttachmentAccess = rasterizationOrderDepthAttachmentAccess + rasterizationOrderStencilAttachmentAccess = rasterizationOrderStencilAttachmentAccess + } + + new(rasterizationOrderColorAttachmentAccess : VkBool32, rasterizationOrderDepthAttachmentAccess : VkBool32, rasterizationOrderStencilAttachmentAccess : VkBool32) = + VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT(Unchecked.defaultof, rasterizationOrderColorAttachmentAccess, rasterizationOrderDepthAttachmentAccess, rasterizationOrderStencilAttachmentAccess) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.rasterizationOrderColorAttachmentAccess = Unchecked.defaultof && x.rasterizationOrderDepthAttachmentAccess = Unchecked.defaultof && x.rasterizationOrderStencilAttachmentAccess = Unchecked.defaultof + + static member Empty = + VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "rasterizationOrderColorAttachmentAccess = %A" x.rasterizationOrderColorAttachmentAccess + sprintf "rasterizationOrderDepthAttachmentAccess = %A" x.rasterizationOrderDepthAttachmentAccess + sprintf "rasterizationOrderStencilAttachmentAccess = %A" x.rasterizationOrderStencilAttachmentAccess + ] |> sprintf "VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT { %s }" end [] module EnumExtensions = - type VkBorderColor with - static member inline FloatCustomExt = unbox 1000287003 - static member inline IntCustomExt = unbox 1000287004 + type VkPipelineColorBlendStateCreateFlags with + static member inline RasterizationOrderAttachmentAccessBitExt = unbox 0x00000001 + type VkPipelineDepthStencilStateCreateFlags with + static member inline RasterizationOrderAttachmentDepthAccessBitExt = unbox 0x00000001 + static member inline RasterizationOrderAttachmentStencilAccessBitExt = unbox 0x00000002 + type VkSubpassDescriptionFlags with + static member inline RasterizationOrderAttachmentColorAccessBitExt = unbox 0x00000010 + static member inline RasterizationOrderAttachmentDepthAccessBitExt = unbox 0x00000020 + static member inline RasterizationOrderAttachmentStencilAccessBitExt = unbox 0x00000040 -module EXTBorderColorSwizzle = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open EXTCustomBorderColor - let Name = "VK_EXT_border_color_swizzle" - let Number = 412 +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +/// Promoted to EXTRasterizationOrderAttachmentAccess. +module ARMRasterizationOrderAttachmentAccess = + let Type = ExtensionType.Device + let Name = "VK_ARM_rasterization_order_attachment_access" + let Number = 343 - let Required = [ EXTCustomBorderColor.Name ] + type VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = EXTRasterizationOrderAttachmentAccess.VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT + [] + module EnumExtensions = + type VkPipelineColorBlendStateCreateFlags with + static member inline RasterizationOrderAttachmentAccessBitArm = unbox 0x00000001 + type VkPipelineDepthStencilStateCreateFlags with + static member inline RasterizationOrderAttachmentDepthAccessBitArm = unbox 0x00000001 + static member inline RasterizationOrderAttachmentStencilAccessBitArm = unbox 0x00000002 + type VkSubpassDescriptionFlags with + static member inline RasterizationOrderAttachmentColorAccessBitArm = unbox 0x00000010 + static member inline RasterizationOrderAttachmentDepthAccessBitArm = unbox 0x00000020 + static member inline RasterizationOrderAttachmentStencilAccessBitArm = unbox 0x00000040 + + +/// Requires ((KHRGetPhysicalDeviceProperties2 | Vulkan11), KHRSynchronization2) | Vulkan13. +module ARMRenderPassStriped = + let Type = ExtensionType.Device + let Name = "VK_ARM_render_pass_striped" + let Number = 425 + [] - type VkPhysicalDeviceBorderColorSwizzleFeaturesEXT = + type VkPhysicalDeviceRenderPassStripedFeaturesARM = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public borderColorSwizzle : VkBool32 - val mutable public borderColorSwizzleFromImage : VkBool32 + val mutable public renderPassStriped : VkBool32 - new(pNext : nativeint, borderColorSwizzle : VkBool32, borderColorSwizzleFromImage : VkBool32) = + new(pNext : nativeint, renderPassStriped : VkBool32) = { - sType = 1000411000u + sType = 1000424000u pNext = pNext - borderColorSwizzle = borderColorSwizzle - borderColorSwizzleFromImage = borderColorSwizzleFromImage + renderPassStriped = renderPassStriped } - new(borderColorSwizzle : VkBool32, borderColorSwizzleFromImage : VkBool32) = - VkPhysicalDeviceBorderColorSwizzleFeaturesEXT(Unchecked.defaultof, borderColorSwizzle, borderColorSwizzleFromImage) + new(renderPassStriped : VkBool32) = + VkPhysicalDeviceRenderPassStripedFeaturesARM(Unchecked.defaultof, renderPassStriped) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.borderColorSwizzle = Unchecked.defaultof && x.borderColorSwizzleFromImage = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.renderPassStriped = Unchecked.defaultof static member Empty = - VkPhysicalDeviceBorderColorSwizzleFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceRenderPassStripedFeaturesARM(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "borderColorSwizzle = %A" x.borderColorSwizzle - sprintf "borderColorSwizzleFromImage = %A" x.borderColorSwizzleFromImage - ] |> sprintf "VkPhysicalDeviceBorderColorSwizzleFeaturesEXT { %s }" + sprintf "renderPassStriped = %A" x.renderPassStriped + ] |> sprintf "VkPhysicalDeviceRenderPassStripedFeaturesARM { %s }" + end + + [] + type VkPhysicalDeviceRenderPassStripedPropertiesARM = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public renderPassStripeGranularity : VkExtent2D + val mutable public maxRenderPassStripes : uint32 + + new(pNext : nativeint, renderPassStripeGranularity : VkExtent2D, maxRenderPassStripes : uint32) = + { + sType = 1000424001u + pNext = pNext + renderPassStripeGranularity = renderPassStripeGranularity + maxRenderPassStripes = maxRenderPassStripes + } + + new(renderPassStripeGranularity : VkExtent2D, maxRenderPassStripes : uint32) = + VkPhysicalDeviceRenderPassStripedPropertiesARM(Unchecked.defaultof, renderPassStripeGranularity, maxRenderPassStripes) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.renderPassStripeGranularity = Unchecked.defaultof && x.maxRenderPassStripes = Unchecked.defaultof + + static member Empty = + VkPhysicalDeviceRenderPassStripedPropertiesARM(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "renderPassStripeGranularity = %A" x.renderPassStripeGranularity + sprintf "maxRenderPassStripes = %A" x.maxRenderPassStripes + ] |> sprintf "VkPhysicalDeviceRenderPassStripedPropertiesARM { %s }" end [] - type VkSamplerBorderColorComponentMappingCreateInfoEXT = + type VkRenderPassStripeInfoARM = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public components : VkComponentMapping - val mutable public srgb : VkBool32 + val mutable public stripeArea : VkRect2D - new(pNext : nativeint, components : VkComponentMapping, srgb : VkBool32) = + new(pNext : nativeint, stripeArea : VkRect2D) = { - sType = 1000411001u + sType = 1000424003u pNext = pNext - components = components - srgb = srgb + stripeArea = stripeArea } - new(components : VkComponentMapping, srgb : VkBool32) = - VkSamplerBorderColorComponentMappingCreateInfoEXT(Unchecked.defaultof, components, srgb) + new(stripeArea : VkRect2D) = + VkRenderPassStripeInfoARM(Unchecked.defaultof, stripeArea) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.components = Unchecked.defaultof && x.srgb = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.stripeArea = Unchecked.defaultof static member Empty = - VkSamplerBorderColorComponentMappingCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkRenderPassStripeInfoARM(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "components = %A" x.components - sprintf "srgb = %A" x.srgb - ] |> sprintf "VkSamplerBorderColorComponentMappingCreateInfoEXT { %s }" + sprintf "stripeArea = %A" x.stripeArea + ] |> sprintf "VkRenderPassStripeInfoARM { %s }" end - - -module EXTBufferDeviceAddress = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_EXT_buffer_device_address" - let Number = 245 - - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] - - [] - type VkBufferDeviceAddressCreateInfoEXT = + type VkRenderPassStripeBeginInfoARM = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public deviceAddress : VkDeviceAddress + val mutable public stripeInfoCount : uint32 + val mutable public pStripeInfos : nativeptr - new(pNext : nativeint, deviceAddress : VkDeviceAddress) = + new(pNext : nativeint, stripeInfoCount : uint32, pStripeInfos : nativeptr) = { - sType = 1000244002u + sType = 1000424002u pNext = pNext - deviceAddress = deviceAddress + stripeInfoCount = stripeInfoCount + pStripeInfos = pStripeInfos } - new(deviceAddress : VkDeviceAddress) = - VkBufferDeviceAddressCreateInfoEXT(Unchecked.defaultof, deviceAddress) + new(stripeInfoCount : uint32, pStripeInfos : nativeptr) = + VkRenderPassStripeBeginInfoARM(Unchecked.defaultof, stripeInfoCount, pStripeInfos) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.deviceAddress = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.stripeInfoCount = Unchecked.defaultof && x.pStripeInfos = Unchecked.defaultof> static member Empty = - VkBufferDeviceAddressCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof) + VkRenderPassStripeBeginInfoARM(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "deviceAddress = %A" x.deviceAddress - ] |> sprintf "VkBufferDeviceAddressCreateInfoEXT { %s }" + sprintf "stripeInfoCount = %A" x.stripeInfoCount + sprintf "pStripeInfos = %A" x.pStripeInfos + ] |> sprintf "VkRenderPassStripeBeginInfoARM { %s }" end - type VkBufferDeviceAddressInfoEXT = VkBufferDeviceAddressInfo - [] - type VkPhysicalDeviceBufferDeviceAddressFeaturesEXT = + type VkRenderPassStripeSubmitInfoARM = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public bufferDeviceAddress : VkBool32 - val mutable public bufferDeviceAddressCaptureReplay : VkBool32 - val mutable public bufferDeviceAddressMultiDevice : VkBool32 + val mutable public stripeSemaphoreInfoCount : uint32 + val mutable public pStripeSemaphoreInfos : nativeptr - new(pNext : nativeint, bufferDeviceAddress : VkBool32, bufferDeviceAddressCaptureReplay : VkBool32, bufferDeviceAddressMultiDevice : VkBool32) = + new(pNext : nativeint, stripeSemaphoreInfoCount : uint32, pStripeSemaphoreInfos : nativeptr) = { - sType = 1000244000u + sType = 1000424004u pNext = pNext - bufferDeviceAddress = bufferDeviceAddress - bufferDeviceAddressCaptureReplay = bufferDeviceAddressCaptureReplay - bufferDeviceAddressMultiDevice = bufferDeviceAddressMultiDevice + stripeSemaphoreInfoCount = stripeSemaphoreInfoCount + pStripeSemaphoreInfos = pStripeSemaphoreInfos } - new(bufferDeviceAddress : VkBool32, bufferDeviceAddressCaptureReplay : VkBool32, bufferDeviceAddressMultiDevice : VkBool32) = - VkPhysicalDeviceBufferDeviceAddressFeaturesEXT(Unchecked.defaultof, bufferDeviceAddress, bufferDeviceAddressCaptureReplay, bufferDeviceAddressMultiDevice) + new(stripeSemaphoreInfoCount : uint32, pStripeSemaphoreInfos : nativeptr) = + VkRenderPassStripeSubmitInfoARM(Unchecked.defaultof, stripeSemaphoreInfoCount, pStripeSemaphoreInfos) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.bufferDeviceAddress = Unchecked.defaultof && x.bufferDeviceAddressCaptureReplay = Unchecked.defaultof && x.bufferDeviceAddressMultiDevice = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.stripeSemaphoreInfoCount = Unchecked.defaultof && x.pStripeSemaphoreInfos = Unchecked.defaultof> static member Empty = - VkPhysicalDeviceBufferDeviceAddressFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkRenderPassStripeSubmitInfoARM(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "bufferDeviceAddress = %A" x.bufferDeviceAddress - sprintf "bufferDeviceAddressCaptureReplay = %A" x.bufferDeviceAddressCaptureReplay - sprintf "bufferDeviceAddressMultiDevice = %A" x.bufferDeviceAddressMultiDevice - ] |> sprintf "VkPhysicalDeviceBufferDeviceAddressFeaturesEXT { %s }" + sprintf "stripeSemaphoreInfoCount = %A" x.stripeSemaphoreInfoCount + sprintf "pStripeSemaphoreInfos = %A" x.pStripeSemaphoreInfos + ] |> sprintf "VkRenderPassStripeSubmitInfoARM { %s }" end - type VkPhysicalDeviceBufferAddressFeaturesEXT = VkPhysicalDeviceBufferDeviceAddressFeaturesEXT - - [] - module EnumExtensions = - type VkBufferCreateFlags with - static member inline DeviceAddressCaptureReplayBitExt = unbox 0x00000010 - type VkBufferUsageFlags with - static member inline ShaderDeviceAddressBitExt = unbox 0x00020000 - type VkResult with - static member inline ErrorInvalidDeviceAddressExt = unbox 1000257000 - module VkRaw = - [] - type VkGetBufferDeviceAddressEXTDel = delegate of VkDevice * nativeptr -> VkDeviceAddress +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module ARMShaderCoreBuiltins = + let Type = ExtensionType.Device + let Name = "VK_ARM_shader_core_builtins" + let Number = 498 - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading EXTBufferDeviceAddress") - static let s_vkGetBufferDeviceAddressEXTDel = VkRaw.vkImportInstanceDelegate "vkGetBufferDeviceAddressEXT" - static do Report.End(3) |> ignore - static member vkGetBufferDeviceAddressEXT = s_vkGetBufferDeviceAddressEXTDel - let vkGetBufferDeviceAddressEXT(device : VkDevice, pInfo : nativeptr) = Loader.vkGetBufferDeviceAddressEXT.Invoke(device, pInfo) + [] + type VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public shaderCoreBuiltins : VkBool32 -module EXTCalibratedTimestamps = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_EXT_calibrated_timestamps" - let Number = 185 + new(pNext : nativeint, shaderCoreBuiltins : VkBool32) = + { + sType = 1000497000u + pNext = pNext + shaderCoreBuiltins = shaderCoreBuiltins + } - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] + new(shaderCoreBuiltins : VkBool32) = + VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM(Unchecked.defaultof, shaderCoreBuiltins) + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.shaderCoreBuiltins = Unchecked.defaultof - type VkTimeDomainEXT = - | Device = 0 - | ClockMonotonic = 1 - | ClockMonotonicRaw = 2 - | QueryPerformanceCounter = 3 + static member Empty = + VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM(Unchecked.defaultof, Unchecked.defaultof) + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "shaderCoreBuiltins = %A" x.shaderCoreBuiltins + ] |> sprintf "VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM { %s }" + end [] - type VkCalibratedTimestampInfoEXT = + type VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public timeDomain : VkTimeDomainEXT + val mutable public shaderCoreMask : uint64 + val mutable public shaderCoreCount : uint32 + val mutable public shaderWarpsPerCore : uint32 - new(pNext : nativeint, timeDomain : VkTimeDomainEXT) = + new(pNext : nativeint, shaderCoreMask : uint64, shaderCoreCount : uint32, shaderWarpsPerCore : uint32) = { - sType = 1000184000u + sType = 1000497001u pNext = pNext - timeDomain = timeDomain + shaderCoreMask = shaderCoreMask + shaderCoreCount = shaderCoreCount + shaderWarpsPerCore = shaderWarpsPerCore } - new(timeDomain : VkTimeDomainEXT) = - VkCalibratedTimestampInfoEXT(Unchecked.defaultof, timeDomain) + new(shaderCoreMask : uint64, shaderCoreCount : uint32, shaderWarpsPerCore : uint32) = + VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM(Unchecked.defaultof, shaderCoreMask, shaderCoreCount, shaderWarpsPerCore) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.timeDomain = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.shaderCoreMask = Unchecked.defaultof && x.shaderCoreCount = Unchecked.defaultof && x.shaderWarpsPerCore = Unchecked.defaultof static member Empty = - VkCalibratedTimestampInfoEXT(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "timeDomain = %A" x.timeDomain - ] |> sprintf "VkCalibratedTimestampInfoEXT { %s }" + sprintf "shaderCoreMask = %A" x.shaderCoreMask + sprintf "shaderCoreCount = %A" x.shaderCoreCount + sprintf "shaderWarpsPerCore = %A" x.shaderWarpsPerCore + ] |> sprintf "VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM { %s }" end - module VkRaw = - [] - type VkGetPhysicalDeviceCalibrateableTimeDomainsEXTDel = delegate of VkPhysicalDevice * nativeptr * nativeptr -> VkResult - [] - type VkGetCalibratedTimestampsEXTDel = delegate of VkDevice * uint32 * nativeptr * nativeptr * nativeptr -> VkResult - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading EXTCalibratedTimestamps") - static let s_vkGetPhysicalDeviceCalibrateableTimeDomainsEXTDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT" - static let s_vkGetCalibratedTimestampsEXTDel = VkRaw.vkImportInstanceDelegate "vkGetCalibratedTimestampsEXT" - static do Report.End(3) |> ignore - static member vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = s_vkGetPhysicalDeviceCalibrateableTimeDomainsEXTDel - static member vkGetCalibratedTimestampsEXT = s_vkGetCalibratedTimestampsEXTDel - let vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice : VkPhysicalDevice, pTimeDomainCount : nativeptr, pTimeDomains : nativeptr) = Loader.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT.Invoke(physicalDevice, pTimeDomainCount, pTimeDomains) - let vkGetCalibratedTimestampsEXT(device : VkDevice, timestampCount : uint32, pTimestampInfos : nativeptr, pTimestamps : nativeptr, pMaxDeviation : nativeptr) = Loader.vkGetCalibratedTimestampsEXT.Invoke(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) -module EXTColorWriteEnable = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_EXT_color_write_enable" - let Number = 382 +/// Requires ARMShaderCoreBuiltins. +module ARMSchedulingControls = + let Type = ExtensionType.Device + let Name = "VK_ARM_scheduling_controls" + let Number = 418 - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] + [] + type VkPhysicalDeviceSchedulingControlsFlagsARM = + | All = 1 + | None = 0 + | ShaderCoreCount = 0x00000001 [] - type VkPhysicalDeviceColorWriteEnableFeaturesEXT = + type VkDeviceQueueShaderCoreControlCreateInfoARM = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public colorWriteEnable : VkBool32 + val mutable public shaderCoreCount : uint32 - new(pNext : nativeint, colorWriteEnable : VkBool32) = + new(pNext : nativeint, shaderCoreCount : uint32) = { - sType = 1000381000u + sType = 1000417000u pNext = pNext - colorWriteEnable = colorWriteEnable + shaderCoreCount = shaderCoreCount } - new(colorWriteEnable : VkBool32) = - VkPhysicalDeviceColorWriteEnableFeaturesEXT(Unchecked.defaultof, colorWriteEnable) + new(shaderCoreCount : uint32) = + VkDeviceQueueShaderCoreControlCreateInfoARM(Unchecked.defaultof, shaderCoreCount) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.colorWriteEnable = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.shaderCoreCount = Unchecked.defaultof static member Empty = - VkPhysicalDeviceColorWriteEnableFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) + VkDeviceQueueShaderCoreControlCreateInfoARM(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "colorWriteEnable = %A" x.colorWriteEnable - ] |> sprintf "VkPhysicalDeviceColorWriteEnableFeaturesEXT { %s }" + sprintf "shaderCoreCount = %A" x.shaderCoreCount + ] |> sprintf "VkDeviceQueueShaderCoreControlCreateInfoARM { %s }" end [] - type VkPipelineColorWriteCreateInfoEXT = + type VkPhysicalDeviceSchedulingControlsFeaturesARM = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public attachmentCount : uint32 - val mutable public pColorWriteEnables : nativeptr + val mutable public schedulingControls : VkBool32 - new(pNext : nativeint, attachmentCount : uint32, pColorWriteEnables : nativeptr) = + new(pNext : nativeint, schedulingControls : VkBool32) = { - sType = 1000381001u + sType = 1000417001u pNext = pNext - attachmentCount = attachmentCount - pColorWriteEnables = pColorWriteEnables + schedulingControls = schedulingControls } - new(attachmentCount : uint32, pColorWriteEnables : nativeptr) = - VkPipelineColorWriteCreateInfoEXT(Unchecked.defaultof, attachmentCount, pColorWriteEnables) + new(schedulingControls : VkBool32) = + VkPhysicalDeviceSchedulingControlsFeaturesARM(Unchecked.defaultof, schedulingControls) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.attachmentCount = Unchecked.defaultof && x.pColorWriteEnables = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.schedulingControls = Unchecked.defaultof static member Empty = - VkPipelineColorWriteCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + VkPhysicalDeviceSchedulingControlsFeaturesARM(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "attachmentCount = %A" x.attachmentCount - sprintf "pColorWriteEnables = %A" x.pColorWriteEnables - ] |> sprintf "VkPipelineColorWriteCreateInfoEXT { %s }" + sprintf "schedulingControls = %A" x.schedulingControls + ] |> sprintf "VkPhysicalDeviceSchedulingControlsFeaturesARM { %s }" end - - [] - module EnumExtensions = - type VkDynamicState with - static member inline ColorWriteEnableExt = unbox 1000381000 - - module VkRaw = - [] - type VkCmdSetColorWriteEnableEXTDel = delegate of VkCommandBuffer * uint32 * nativeptr -> unit - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading EXTColorWriteEnable") - static let s_vkCmdSetColorWriteEnableEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetColorWriteEnableEXT" - static do Report.End(3) |> ignore - static member vkCmdSetColorWriteEnableEXT = s_vkCmdSetColorWriteEnableEXTDel - let vkCmdSetColorWriteEnableEXT(commandBuffer : VkCommandBuffer, attachmentCount : uint32, pColorWriteEnables : nativeptr) = Loader.vkCmdSetColorWriteEnableEXT.Invoke(commandBuffer, attachmentCount, pColorWriteEnables) - -module EXTConditionalRendering = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_EXT_conditional_rendering" - let Number = 82 - - - [] - type VkConditionalRenderingFlagsEXT = - | All = 1 - | None = 0 - | InvertedBit = 0x00000001 - - [] - type VkCommandBufferInheritanceConditionalRenderingInfoEXT = + type VkPhysicalDeviceSchedulingControlsPropertiesARM = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public conditionalRenderingEnable : VkBool32 + val mutable public schedulingControlsFlags : VkPhysicalDeviceSchedulingControlsFlagsARM - new(pNext : nativeint, conditionalRenderingEnable : VkBool32) = + new(pNext : nativeint, schedulingControlsFlags : VkPhysicalDeviceSchedulingControlsFlagsARM) = { - sType = 1000081000u + sType = 1000417002u pNext = pNext - conditionalRenderingEnable = conditionalRenderingEnable + schedulingControlsFlags = schedulingControlsFlags } - new(conditionalRenderingEnable : VkBool32) = - VkCommandBufferInheritanceConditionalRenderingInfoEXT(Unchecked.defaultof, conditionalRenderingEnable) + new(schedulingControlsFlags : VkPhysicalDeviceSchedulingControlsFlagsARM) = + VkPhysicalDeviceSchedulingControlsPropertiesARM(Unchecked.defaultof, schedulingControlsFlags) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.conditionalRenderingEnable = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.schedulingControlsFlags = Unchecked.defaultof static member Empty = - VkCommandBufferInheritanceConditionalRenderingInfoEXT(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceSchedulingControlsPropertiesARM(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "conditionalRenderingEnable = %A" x.conditionalRenderingEnable - ] |> sprintf "VkCommandBufferInheritanceConditionalRenderingInfoEXT { %s }" + sprintf "schedulingControlsFlags = %A" x.schedulingControlsFlags + ] |> sprintf "VkPhysicalDeviceSchedulingControlsPropertiesARM { %s }" end + + +/// Requires Vulkan11. +module ARMShaderCoreProperties = + let Type = ExtensionType.Device + let Name = "VK_ARM_shader_core_properties" + let Number = 416 + [] - type VkConditionalRenderingBeginInfoEXT = + type VkPhysicalDeviceShaderCorePropertiesARM = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public buffer : VkBuffer - val mutable public offset : VkDeviceSize - val mutable public flags : VkConditionalRenderingFlagsEXT + val mutable public pixelRate : uint32 + val mutable public texelRate : uint32 + val mutable public fmaRate : uint32 - new(pNext : nativeint, buffer : VkBuffer, offset : VkDeviceSize, flags : VkConditionalRenderingFlagsEXT) = + new(pNext : nativeint, pixelRate : uint32, texelRate : uint32, fmaRate : uint32) = { - sType = 1000081002u + sType = 1000415000u pNext = pNext - buffer = buffer - offset = offset - flags = flags + pixelRate = pixelRate + texelRate = texelRate + fmaRate = fmaRate } - new(buffer : VkBuffer, offset : VkDeviceSize, flags : VkConditionalRenderingFlagsEXT) = - VkConditionalRenderingBeginInfoEXT(Unchecked.defaultof, buffer, offset, flags) + new(pixelRate : uint32, texelRate : uint32, fmaRate : uint32) = + VkPhysicalDeviceShaderCorePropertiesARM(Unchecked.defaultof, pixelRate, texelRate, fmaRate) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.buffer = Unchecked.defaultof && x.offset = Unchecked.defaultof && x.flags = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.pixelRate = Unchecked.defaultof && x.texelRate = Unchecked.defaultof && x.fmaRate = Unchecked.defaultof static member Empty = - VkConditionalRenderingBeginInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceShaderCorePropertiesARM(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "buffer = %A" x.buffer - sprintf "offset = %A" x.offset - sprintf "flags = %A" x.flags - ] |> sprintf "VkConditionalRenderingBeginInfoEXT { %s }" + sprintf "pixelRate = %A" x.pixelRate + sprintf "texelRate = %A" x.texelRate + sprintf "fmaRate = %A" x.fmaRate + ] |> sprintf "VkPhysicalDeviceShaderCorePropertiesARM { %s }" end + + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +/// Promoted to Vulkan13. +module EXT4444Formats = + let Type = ExtensionType.Device + let Name = "VK_EXT_4444_formats" + let Number = 341 + [] - type VkPhysicalDeviceConditionalRenderingFeaturesEXT = + type VkPhysicalDevice4444FormatsFeaturesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public conditionalRendering : VkBool32 - val mutable public inheritedConditionalRendering : VkBool32 + val mutable public formatA4R4G4B4 : VkBool32 + val mutable public formatA4B4G4R4 : VkBool32 - new(pNext : nativeint, conditionalRendering : VkBool32, inheritedConditionalRendering : VkBool32) = + new(pNext : nativeint, formatA4R4G4B4 : VkBool32, formatA4B4G4R4 : VkBool32) = { - sType = 1000081001u + sType = 1000340000u pNext = pNext - conditionalRendering = conditionalRendering - inheritedConditionalRendering = inheritedConditionalRendering + formatA4R4G4B4 = formatA4R4G4B4 + formatA4B4G4R4 = formatA4B4G4R4 } - new(conditionalRendering : VkBool32, inheritedConditionalRendering : VkBool32) = - VkPhysicalDeviceConditionalRenderingFeaturesEXT(Unchecked.defaultof, conditionalRendering, inheritedConditionalRendering) + new(formatA4R4G4B4 : VkBool32, formatA4B4G4R4 : VkBool32) = + VkPhysicalDevice4444FormatsFeaturesEXT(Unchecked.defaultof, formatA4R4G4B4, formatA4B4G4R4) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.conditionalRendering = Unchecked.defaultof && x.inheritedConditionalRendering = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.formatA4R4G4B4 = Unchecked.defaultof && x.formatA4B4G4R4 = Unchecked.defaultof static member Empty = - VkPhysicalDeviceConditionalRenderingFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDevice4444FormatsFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "conditionalRendering = %A" x.conditionalRendering - sprintf "inheritedConditionalRendering = %A" x.inheritedConditionalRendering - ] |> sprintf "VkPhysicalDeviceConditionalRenderingFeaturesEXT { %s }" + sprintf "formatA4R4G4B4 = %A" x.formatA4R4G4B4 + sprintf "formatA4B4G4R4 = %A" x.formatA4B4G4R4 + ] |> sprintf "VkPhysicalDevice4444FormatsFeaturesEXT { %s }" end [] module EnumExtensions = - type VkAccessFlags with - /// read access flag for reading conditional rendering predicate - static member inline ConditionalRenderingReadBitExt = unbox 0x00100000 - type VkBufferUsageFlags with - /// Specifies the buffer can be used as predicate in conditional rendering - static member inline ConditionalRenderingBitExt = unbox 0x00000200 - type VkPipelineStageFlags with - /// A pipeline stage for conditional rendering predicate fetch - static member inline ConditionalRenderingBitExt = unbox 0x00040000 + type VkFormat with + static member inline A4r4g4b4UnormPack16Ext = unbox 1000340000 + static member inline A4b4g4r4UnormPack16Ext = unbox 1000340001 - module VkRaw = - [] - type VkCmdBeginConditionalRenderingEXTDel = delegate of VkCommandBuffer * nativeptr -> unit - [] - type VkCmdEndConditionalRenderingEXTDel = delegate of VkCommandBuffer -> unit - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading EXTConditionalRendering") - static let s_vkCmdBeginConditionalRenderingEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdBeginConditionalRenderingEXT" - static let s_vkCmdEndConditionalRenderingEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdEndConditionalRenderingEXT" - static do Report.End(3) |> ignore - static member vkCmdBeginConditionalRenderingEXT = s_vkCmdBeginConditionalRenderingEXTDel - static member vkCmdEndConditionalRenderingEXT = s_vkCmdEndConditionalRenderingEXTDel - let vkCmdBeginConditionalRenderingEXT(commandBuffer : VkCommandBuffer, pConditionalRenderingBegin : nativeptr) = Loader.vkCmdBeginConditionalRenderingEXT.Invoke(commandBuffer, pConditionalRenderingBegin) - let vkCmdEndConditionalRenderingEXT(commandBuffer : VkCommandBuffer) = Loader.vkCmdEndConditionalRenderingEXT.Invoke(commandBuffer) +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module EXTAstcDecodeMode = + let Type = ExtensionType.Device + let Name = "VK_EXT_astc_decode_mode" + let Number = 68 -module EXTConservativeRasterization = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_EXT_conservative_rasterization" - let Number = 102 + [] + type VkImageViewASTCDecodeModeEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public decodeMode : VkFormat + + new(pNext : nativeint, decodeMode : VkFormat) = + { + sType = 1000067000u + pNext = pNext + decodeMode = decodeMode + } - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] + new(decodeMode : VkFormat) = + VkImageViewASTCDecodeModeEXT(Unchecked.defaultof, decodeMode) + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.decodeMode = Unchecked.defaultof - type VkConservativeRasterizationModeEXT = - | Disabled = 0 - | Overestimate = 1 - | Underestimate = 2 + static member Empty = + VkImageViewASTCDecodeModeEXT(Unchecked.defaultof, Unchecked.defaultof) + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "decodeMode = %A" x.decodeMode + ] |> sprintf "VkImageViewASTCDecodeModeEXT { %s }" + end [] - type VkPhysicalDeviceConservativeRasterizationPropertiesEXT = + type VkPhysicalDeviceASTCDecodeFeaturesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public primitiveOverestimationSize : float32 - val mutable public maxExtraPrimitiveOverestimationSize : float32 - val mutable public extraPrimitiveOverestimationSizeGranularity : float32 - val mutable public primitiveUnderestimation : VkBool32 - val mutable public conservativePointAndLineRasterization : VkBool32 - val mutable public degenerateTrianglesRasterized : VkBool32 - val mutable public degenerateLinesRasterized : VkBool32 - val mutable public fullyCoveredFragmentShaderInputVariable : VkBool32 - val mutable public conservativeRasterizationPostDepthCoverage : VkBool32 + val mutable public decodeModeSharedExponent : VkBool32 - new(pNext : nativeint, primitiveOverestimationSize : float32, maxExtraPrimitiveOverestimationSize : float32, extraPrimitiveOverestimationSizeGranularity : float32, primitiveUnderestimation : VkBool32, conservativePointAndLineRasterization : VkBool32, degenerateTrianglesRasterized : VkBool32, degenerateLinesRasterized : VkBool32, fullyCoveredFragmentShaderInputVariable : VkBool32, conservativeRasterizationPostDepthCoverage : VkBool32) = + new(pNext : nativeint, decodeModeSharedExponent : VkBool32) = { - sType = 1000101000u + sType = 1000067001u pNext = pNext - primitiveOverestimationSize = primitiveOverestimationSize - maxExtraPrimitiveOverestimationSize = maxExtraPrimitiveOverestimationSize - extraPrimitiveOverestimationSizeGranularity = extraPrimitiveOverestimationSizeGranularity - primitiveUnderestimation = primitiveUnderestimation - conservativePointAndLineRasterization = conservativePointAndLineRasterization - degenerateTrianglesRasterized = degenerateTrianglesRasterized - degenerateLinesRasterized = degenerateLinesRasterized - fullyCoveredFragmentShaderInputVariable = fullyCoveredFragmentShaderInputVariable - conservativeRasterizationPostDepthCoverage = conservativeRasterizationPostDepthCoverage + decodeModeSharedExponent = decodeModeSharedExponent } - new(primitiveOverestimationSize : float32, maxExtraPrimitiveOverestimationSize : float32, extraPrimitiveOverestimationSizeGranularity : float32, primitiveUnderestimation : VkBool32, conservativePointAndLineRasterization : VkBool32, degenerateTrianglesRasterized : VkBool32, degenerateLinesRasterized : VkBool32, fullyCoveredFragmentShaderInputVariable : VkBool32, conservativeRasterizationPostDepthCoverage : VkBool32) = - VkPhysicalDeviceConservativeRasterizationPropertiesEXT(Unchecked.defaultof, primitiveOverestimationSize, maxExtraPrimitiveOverestimationSize, extraPrimitiveOverestimationSizeGranularity, primitiveUnderestimation, conservativePointAndLineRasterization, degenerateTrianglesRasterized, degenerateLinesRasterized, fullyCoveredFragmentShaderInputVariable, conservativeRasterizationPostDepthCoverage) + new(decodeModeSharedExponent : VkBool32) = + VkPhysicalDeviceASTCDecodeFeaturesEXT(Unchecked.defaultof, decodeModeSharedExponent) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.primitiveOverestimationSize = Unchecked.defaultof && x.maxExtraPrimitiveOverestimationSize = Unchecked.defaultof && x.extraPrimitiveOverestimationSizeGranularity = Unchecked.defaultof && x.primitiveUnderestimation = Unchecked.defaultof && x.conservativePointAndLineRasterization = Unchecked.defaultof && x.degenerateTrianglesRasterized = Unchecked.defaultof && x.degenerateLinesRasterized = Unchecked.defaultof && x.fullyCoveredFragmentShaderInputVariable = Unchecked.defaultof && x.conservativeRasterizationPostDepthCoverage = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.decodeModeSharedExponent = Unchecked.defaultof static member Empty = - VkPhysicalDeviceConservativeRasterizationPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceASTCDecodeFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "primitiveOverestimationSize = %A" x.primitiveOverestimationSize - sprintf "maxExtraPrimitiveOverestimationSize = %A" x.maxExtraPrimitiveOverestimationSize - sprintf "extraPrimitiveOverestimationSizeGranularity = %A" x.extraPrimitiveOverestimationSizeGranularity - sprintf "primitiveUnderestimation = %A" x.primitiveUnderestimation - sprintf "conservativePointAndLineRasterization = %A" x.conservativePointAndLineRasterization - sprintf "degenerateTrianglesRasterized = %A" x.degenerateTrianglesRasterized - sprintf "degenerateLinesRasterized = %A" x.degenerateLinesRasterized - sprintf "fullyCoveredFragmentShaderInputVariable = %A" x.fullyCoveredFragmentShaderInputVariable - sprintf "conservativeRasterizationPostDepthCoverage = %A" x.conservativeRasterizationPostDepthCoverage - ] |> sprintf "VkPhysicalDeviceConservativeRasterizationPropertiesEXT { %s }" + sprintf "decodeModeSharedExponent = %A" x.decodeModeSharedExponent + ] |> sprintf "VkPhysicalDeviceASTCDecodeFeaturesEXT { %s }" end + + +/// Requires (KHRGetPhysicalDeviceProperties2 | Vulkan11), EXTAttachmentFeedbackLoopLayout. +module EXTAttachmentFeedbackLoopDynamicState = + let Type = ExtensionType.Device + let Name = "VK_EXT_attachment_feedback_loop_dynamic_state" + let Number = 525 + [] - type VkPipelineRasterizationConservativeStateCreateInfoEXT = + type VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public flags : VkPipelineRasterizationConservativeStateCreateFlagsEXT - val mutable public conservativeRasterizationMode : VkConservativeRasterizationModeEXT - val mutable public extraPrimitiveOverestimationSize : float32 + val mutable public attachmentFeedbackLoopDynamicState : VkBool32 - new(pNext : nativeint, flags : VkPipelineRasterizationConservativeStateCreateFlagsEXT, conservativeRasterizationMode : VkConservativeRasterizationModeEXT, extraPrimitiveOverestimationSize : float32) = + new(pNext : nativeint, attachmentFeedbackLoopDynamicState : VkBool32) = { - sType = 1000101001u + sType = 1000524000u pNext = pNext - flags = flags - conservativeRasterizationMode = conservativeRasterizationMode - extraPrimitiveOverestimationSize = extraPrimitiveOverestimationSize + attachmentFeedbackLoopDynamicState = attachmentFeedbackLoopDynamicState } - new(flags : VkPipelineRasterizationConservativeStateCreateFlagsEXT, conservativeRasterizationMode : VkConservativeRasterizationModeEXT, extraPrimitiveOverestimationSize : float32) = - VkPipelineRasterizationConservativeStateCreateInfoEXT(Unchecked.defaultof, flags, conservativeRasterizationMode, extraPrimitiveOverestimationSize) + new(attachmentFeedbackLoopDynamicState : VkBool32) = + VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT(Unchecked.defaultof, attachmentFeedbackLoopDynamicState) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.conservativeRasterizationMode = Unchecked.defaultof && x.extraPrimitiveOverestimationSize = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.attachmentFeedbackLoopDynamicState = Unchecked.defaultof static member Empty = - VkPipelineRasterizationConservativeStateCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "flags = %A" x.flags - sprintf "conservativeRasterizationMode = %A" x.conservativeRasterizationMode - sprintf "extraPrimitiveOverestimationSize = %A" x.extraPrimitiveOverestimationSize - ] |> sprintf "VkPipelineRasterizationConservativeStateCreateInfoEXT { %s }" + sprintf "attachmentFeedbackLoopDynamicState = %A" x.attachmentFeedbackLoopDynamicState + ] |> sprintf "VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT { %s }" end + [] + module EnumExtensions = + type VkDynamicState with + static member inline AttachmentFeedbackLoopEnableExt = unbox 1000524000 -module EXTDebugMarker = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open EXTDebugReport - let Name = "VK_EXT_debug_marker" - let Number = 23 - - let Required = [ EXTDebugReport.Name ] + module VkRaw = + [] + type VkCmdSetAttachmentFeedbackLoopEnableEXTDel = delegate of VkCommandBuffer * VkImageAspectFlags -> unit + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTAttachmentFeedbackLoopDynamicState") + static let s_vkCmdSetAttachmentFeedbackLoopEnableEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetAttachmentFeedbackLoopEnableEXT" + static do Report.End(3) |> ignore + static member vkCmdSetAttachmentFeedbackLoopEnableEXT = s_vkCmdSetAttachmentFeedbackLoopEnableEXTDel + let vkCmdSetAttachmentFeedbackLoopEnableEXT(commandBuffer : VkCommandBuffer, aspectMask : VkImageAspectFlags) = Loader.vkCmdSetAttachmentFeedbackLoopEnableEXT.Invoke(commandBuffer, aspectMask) - type VkDebugReportObjectTypeEXT = EXTDebugReport.VkDebugReportObjectTypeEXT +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module EXTCustomBorderColor = + let Type = ExtensionType.Device + let Name = "VK_EXT_custom_border_color" + let Number = 288 [] - type VkDebugMarkerMarkerInfoEXT = + type VkPhysicalDeviceCustomBorderColorFeaturesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public pMarkerName : cstr - val mutable public color : V4f + val mutable public customBorderColors : VkBool32 + val mutable public customBorderColorWithoutFormat : VkBool32 - new(pNext : nativeint, pMarkerName : cstr, color : V4f) = + new(pNext : nativeint, customBorderColors : VkBool32, customBorderColorWithoutFormat : VkBool32) = { - sType = 1000022002u + sType = 1000287002u pNext = pNext - pMarkerName = pMarkerName - color = color + customBorderColors = customBorderColors + customBorderColorWithoutFormat = customBorderColorWithoutFormat } - new(pMarkerName : cstr, color : V4f) = - VkDebugMarkerMarkerInfoEXT(Unchecked.defaultof, pMarkerName, color) + new(customBorderColors : VkBool32, customBorderColorWithoutFormat : VkBool32) = + VkPhysicalDeviceCustomBorderColorFeaturesEXT(Unchecked.defaultof, customBorderColors, customBorderColorWithoutFormat) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.pMarkerName = Unchecked.defaultof && x.color = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.customBorderColors = Unchecked.defaultof && x.customBorderColorWithoutFormat = Unchecked.defaultof static member Empty = - VkDebugMarkerMarkerInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceCustomBorderColorFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "pMarkerName = %A" x.pMarkerName - sprintf "color = %A" x.color - ] |> sprintf "VkDebugMarkerMarkerInfoEXT { %s }" + sprintf "customBorderColors = %A" x.customBorderColors + sprintf "customBorderColorWithoutFormat = %A" x.customBorderColorWithoutFormat + ] |> sprintf "VkPhysicalDeviceCustomBorderColorFeaturesEXT { %s }" end [] - type VkDebugMarkerObjectNameInfoEXT = + type VkPhysicalDeviceCustomBorderColorPropertiesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public objectType : VkDebugReportObjectTypeEXT - val mutable public _object : uint64 - val mutable public pObjectName : cstr + val mutable public maxCustomBorderColorSamplers : uint32 - new(pNext : nativeint, objectType : VkDebugReportObjectTypeEXT, _object : uint64, pObjectName : cstr) = + new(pNext : nativeint, maxCustomBorderColorSamplers : uint32) = { - sType = 1000022000u + sType = 1000287001u pNext = pNext - objectType = objectType - _object = _object - pObjectName = pObjectName + maxCustomBorderColorSamplers = maxCustomBorderColorSamplers } - new(objectType : VkDebugReportObjectTypeEXT, _object : uint64, pObjectName : cstr) = - VkDebugMarkerObjectNameInfoEXT(Unchecked.defaultof, objectType, _object, pObjectName) + new(maxCustomBorderColorSamplers : uint32) = + VkPhysicalDeviceCustomBorderColorPropertiesEXT(Unchecked.defaultof, maxCustomBorderColorSamplers) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.objectType = Unchecked.defaultof && x._object = Unchecked.defaultof && x.pObjectName = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.maxCustomBorderColorSamplers = Unchecked.defaultof static member Empty = - VkDebugMarkerObjectNameInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceCustomBorderColorPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "objectType = %A" x.objectType - sprintf "_object = %A" x._object - sprintf "pObjectName = %A" x.pObjectName - ] |> sprintf "VkDebugMarkerObjectNameInfoEXT { %s }" + sprintf "maxCustomBorderColorSamplers = %A" x.maxCustomBorderColorSamplers + ] |> sprintf "VkPhysicalDeviceCustomBorderColorPropertiesEXT { %s }" end [] - type VkDebugMarkerObjectTagInfoEXT = + type VkSamplerCustomBorderColorCreateInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public objectType : VkDebugReportObjectTypeEXT - val mutable public _object : uint64 - val mutable public tagName : uint64 - val mutable public tagSize : uint64 - val mutable public pTag : nativeint + val mutable public customBorderColor : VkClearColorValue + val mutable public format : VkFormat - new(pNext : nativeint, objectType : VkDebugReportObjectTypeEXT, _object : uint64, tagName : uint64, tagSize : uint64, pTag : nativeint) = + new(pNext : nativeint, customBorderColor : VkClearColorValue, format : VkFormat) = { - sType = 1000022001u + sType = 1000287000u pNext = pNext - objectType = objectType - _object = _object - tagName = tagName - tagSize = tagSize - pTag = pTag + customBorderColor = customBorderColor + format = format } - new(objectType : VkDebugReportObjectTypeEXT, _object : uint64, tagName : uint64, tagSize : uint64, pTag : nativeint) = - VkDebugMarkerObjectTagInfoEXT(Unchecked.defaultof, objectType, _object, tagName, tagSize, pTag) + new(customBorderColor : VkClearColorValue, format : VkFormat) = + VkSamplerCustomBorderColorCreateInfoEXT(Unchecked.defaultof, customBorderColor, format) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.objectType = Unchecked.defaultof && x._object = Unchecked.defaultof && x.tagName = Unchecked.defaultof && x.tagSize = Unchecked.defaultof && x.pTag = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.customBorderColor = Unchecked.defaultof && x.format = Unchecked.defaultof static member Empty = - VkDebugMarkerObjectTagInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkSamplerCustomBorderColorCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "objectType = %A" x.objectType - sprintf "_object = %A" x._object - sprintf "tagName = %A" x.tagName - sprintf "tagSize = %A" x.tagSize - sprintf "pTag = %A" x.pTag - ] |> sprintf "VkDebugMarkerObjectTagInfoEXT { %s }" + sprintf "customBorderColor = %A" x.customBorderColor + sprintf "format = %A" x.format + ] |> sprintf "VkSamplerCustomBorderColorCreateInfoEXT { %s }" end - module VkRaw = - [] - type VkDebugMarkerSetObjectTagEXTDel = delegate of VkDevice * nativeptr -> VkResult - [] - type VkDebugMarkerSetObjectNameEXTDel = delegate of VkDevice * nativeptr -> VkResult - [] - type VkCmdDebugMarkerBeginEXTDel = delegate of VkCommandBuffer * nativeptr -> unit - [] - type VkCmdDebugMarkerEndEXTDel = delegate of VkCommandBuffer -> unit - [] - type VkCmdDebugMarkerInsertEXTDel = delegate of VkCommandBuffer * nativeptr -> unit - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading EXTDebugMarker") - static let s_vkDebugMarkerSetObjectTagEXTDel = VkRaw.vkImportInstanceDelegate "vkDebugMarkerSetObjectTagEXT" - static let s_vkDebugMarkerSetObjectNameEXTDel = VkRaw.vkImportInstanceDelegate "vkDebugMarkerSetObjectNameEXT" - static let s_vkCmdDebugMarkerBeginEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdDebugMarkerBeginEXT" - static let s_vkCmdDebugMarkerEndEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdDebugMarkerEndEXT" - static let s_vkCmdDebugMarkerInsertEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdDebugMarkerInsertEXT" - static do Report.End(3) |> ignore - static member vkDebugMarkerSetObjectTagEXT = s_vkDebugMarkerSetObjectTagEXTDel - static member vkDebugMarkerSetObjectNameEXT = s_vkDebugMarkerSetObjectNameEXTDel - static member vkCmdDebugMarkerBeginEXT = s_vkCmdDebugMarkerBeginEXTDel - static member vkCmdDebugMarkerEndEXT = s_vkCmdDebugMarkerEndEXTDel - static member vkCmdDebugMarkerInsertEXT = s_vkCmdDebugMarkerInsertEXTDel - let vkDebugMarkerSetObjectTagEXT(device : VkDevice, pTagInfo : nativeptr) = Loader.vkDebugMarkerSetObjectTagEXT.Invoke(device, pTagInfo) - let vkDebugMarkerSetObjectNameEXT(device : VkDevice, pNameInfo : nativeptr) = Loader.vkDebugMarkerSetObjectNameEXT.Invoke(device, pNameInfo) - let vkCmdDebugMarkerBeginEXT(commandBuffer : VkCommandBuffer, pMarkerInfo : nativeptr) = Loader.vkCmdDebugMarkerBeginEXT.Invoke(commandBuffer, pMarkerInfo) - let vkCmdDebugMarkerEndEXT(commandBuffer : VkCommandBuffer) = Loader.vkCmdDebugMarkerEndEXT.Invoke(commandBuffer) - let vkCmdDebugMarkerInsertEXT(commandBuffer : VkCommandBuffer, pMarkerInfo : nativeptr) = Loader.vkCmdDebugMarkerInsertEXT.Invoke(commandBuffer, pMarkerInfo) - -module EXTDebugUtils = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_EXT_debug_utils" - let Number = 129 - - - type PFN_vkDebugUtilsMessengerCallbackEXT = nativeint - - - [] - type VkDebugUtilsMessengerEXT = - struct - val mutable public Handle : uint64 - new(h) = { Handle = h } - static member Null = VkDebugUtilsMessengerEXT(0UL) - member x.IsNull = x.Handle = 0UL - member x.IsValid = x.Handle <> 0UL - end - - [] - type VkDebugUtilsMessageSeverityFlagsEXT = - | All = 4369 - | None = 0 - | VerboseBit = 0x00000001 - | InfoBit = 0x00000010 - | WarningBit = 0x00000100 - | ErrorBit = 0x00001000 + [] + module EnumExtensions = + type VkBorderColor with + static member inline FloatCustomExt = unbox 1000287003 + static member inline IntCustomExt = unbox 1000287004 - [] - type VkDebugUtilsMessageTypeFlagsEXT = - | All = 7 - | None = 0 - | GeneralBit = 0x00000001 - | ValidationBit = 0x00000002 - | PerformanceBit = 0x00000004 +/// Requires EXTCustomBorderColor. +module EXTBorderColorSwizzle = + let Type = ExtensionType.Device + let Name = "VK_EXT_border_color_swizzle" + let Number = 412 [] - type VkDebugUtilsLabelEXT = + type VkPhysicalDeviceBorderColorSwizzleFeaturesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public pLabelName : cstr - val mutable public color : V4f + val mutable public borderColorSwizzle : VkBool32 + val mutable public borderColorSwizzleFromImage : VkBool32 - new(pNext : nativeint, pLabelName : cstr, color : V4f) = + new(pNext : nativeint, borderColorSwizzle : VkBool32, borderColorSwizzleFromImage : VkBool32) = { - sType = 1000128002u + sType = 1000411000u pNext = pNext - pLabelName = pLabelName - color = color + borderColorSwizzle = borderColorSwizzle + borderColorSwizzleFromImage = borderColorSwizzleFromImage } - new(pLabelName : cstr, color : V4f) = - VkDebugUtilsLabelEXT(Unchecked.defaultof, pLabelName, color) + new(borderColorSwizzle : VkBool32, borderColorSwizzleFromImage : VkBool32) = + VkPhysicalDeviceBorderColorSwizzleFeaturesEXT(Unchecked.defaultof, borderColorSwizzle, borderColorSwizzleFromImage) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.pLabelName = Unchecked.defaultof && x.color = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.borderColorSwizzle = Unchecked.defaultof && x.borderColorSwizzleFromImage = Unchecked.defaultof static member Empty = - VkDebugUtilsLabelEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceBorderColorSwizzleFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "pLabelName = %A" x.pLabelName - sprintf "color = %A" x.color - ] |> sprintf "VkDebugUtilsLabelEXT { %s }" + sprintf "borderColorSwizzle = %A" x.borderColorSwizzle + sprintf "borderColorSwizzleFromImage = %A" x.borderColorSwizzleFromImage + ] |> sprintf "VkPhysicalDeviceBorderColorSwizzleFeaturesEXT { %s }" end [] - type VkDebugUtilsObjectNameInfoEXT = + type VkSamplerBorderColorComponentMappingCreateInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public objectType : VkObjectType - val mutable public objectHandle : uint64 - val mutable public pObjectName : cstr + val mutable public components : VkComponentMapping + val mutable public srgb : VkBool32 - new(pNext : nativeint, objectType : VkObjectType, objectHandle : uint64, pObjectName : cstr) = + new(pNext : nativeint, components : VkComponentMapping, srgb : VkBool32) = { - sType = 1000128000u + sType = 1000411001u pNext = pNext - objectType = objectType - objectHandle = objectHandle - pObjectName = pObjectName + components = components + srgb = srgb } - new(objectType : VkObjectType, objectHandle : uint64, pObjectName : cstr) = - VkDebugUtilsObjectNameInfoEXT(Unchecked.defaultof, objectType, objectHandle, pObjectName) + new(components : VkComponentMapping, srgb : VkBool32) = + VkSamplerBorderColorComponentMappingCreateInfoEXT(Unchecked.defaultof, components, srgb) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.objectType = Unchecked.defaultof && x.objectHandle = Unchecked.defaultof && x.pObjectName = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.components = Unchecked.defaultof && x.srgb = Unchecked.defaultof static member Empty = - VkDebugUtilsObjectNameInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkSamplerBorderColorComponentMappingCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "objectType = %A" x.objectType - sprintf "objectHandle = %A" x.objectHandle - sprintf "pObjectName = %A" x.pObjectName - ] |> sprintf "VkDebugUtilsObjectNameInfoEXT { %s }" + sprintf "components = %A" x.components + sprintf "srgb = %A" x.srgb + ] |> sprintf "VkSamplerBorderColorComponentMappingCreateInfoEXT { %s }" end + + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module KHRCalibratedTimestamps = + let Type = ExtensionType.Device + let Name = "VK_KHR_calibrated_timestamps" + let Number = 544 + + type VkTimeDomainKHR = + | Device = 0 + | ClockMonotonic = 1 + | ClockMonotonicRaw = 2 + | QueryPerformanceCounter = 3 + + [] - type VkDebugUtilsMessengerCallbackDataEXT = + type VkCalibratedTimestampInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public flags : VkDebugUtilsMessengerCallbackDataFlagsEXT - val mutable public pMessageIdName : cstr - val mutable public messageIdNumber : int - val mutable public pMessage : cstr - val mutable public queueLabelCount : uint32 - val mutable public pQueueLabels : nativeptr - val mutable public cmdBufLabelCount : uint32 - val mutable public pCmdBufLabels : nativeptr - val mutable public objectCount : uint32 - val mutable public pObjects : nativeptr + val mutable public timeDomain : VkTimeDomainKHR - new(pNext : nativeint, flags : VkDebugUtilsMessengerCallbackDataFlagsEXT, pMessageIdName : cstr, messageIdNumber : int, pMessage : cstr, queueLabelCount : uint32, pQueueLabels : nativeptr, cmdBufLabelCount : uint32, pCmdBufLabels : nativeptr, objectCount : uint32, pObjects : nativeptr) = + new(pNext : nativeint, timeDomain : VkTimeDomainKHR) = { - sType = 1000128003u + sType = 1000184000u pNext = pNext - flags = flags - pMessageIdName = pMessageIdName - messageIdNumber = messageIdNumber - pMessage = pMessage - queueLabelCount = queueLabelCount - pQueueLabels = pQueueLabels - cmdBufLabelCount = cmdBufLabelCount - pCmdBufLabels = pCmdBufLabels - objectCount = objectCount - pObjects = pObjects + timeDomain = timeDomain } - new(flags : VkDebugUtilsMessengerCallbackDataFlagsEXT, pMessageIdName : cstr, messageIdNumber : int, pMessage : cstr, queueLabelCount : uint32, pQueueLabels : nativeptr, cmdBufLabelCount : uint32, pCmdBufLabels : nativeptr, objectCount : uint32, pObjects : nativeptr) = - VkDebugUtilsMessengerCallbackDataEXT(Unchecked.defaultof, flags, pMessageIdName, messageIdNumber, pMessage, queueLabelCount, pQueueLabels, cmdBufLabelCount, pCmdBufLabels, objectCount, pObjects) + new(timeDomain : VkTimeDomainKHR) = + VkCalibratedTimestampInfoKHR(Unchecked.defaultof, timeDomain) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.pMessageIdName = Unchecked.defaultof && x.messageIdNumber = Unchecked.defaultof && x.pMessage = Unchecked.defaultof && x.queueLabelCount = Unchecked.defaultof && x.pQueueLabels = Unchecked.defaultof> && x.cmdBufLabelCount = Unchecked.defaultof && x.pCmdBufLabels = Unchecked.defaultof> && x.objectCount = Unchecked.defaultof && x.pObjects = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.timeDomain = Unchecked.defaultof static member Empty = - VkDebugUtilsMessengerCallbackDataEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>) + VkCalibratedTimestampInfoKHR(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "flags = %A" x.flags - sprintf "pMessageIdName = %A" x.pMessageIdName - sprintf "messageIdNumber = %A" x.messageIdNumber - sprintf "pMessage = %A" x.pMessage - sprintf "queueLabelCount = %A" x.queueLabelCount - sprintf "pQueueLabels = %A" x.pQueueLabels - sprintf "cmdBufLabelCount = %A" x.cmdBufLabelCount - sprintf "pCmdBufLabels = %A" x.pCmdBufLabels - sprintf "objectCount = %A" x.objectCount - sprintf "pObjects = %A" x.pObjects - ] |> sprintf "VkDebugUtilsMessengerCallbackDataEXT { %s }" + sprintf "timeDomain = %A" x.timeDomain + ] |> sprintf "VkCalibratedTimestampInfoKHR { %s }" end + + module VkRaw = + [] + type VkGetPhysicalDeviceCalibrateableTimeDomainsKHRDel = delegate of VkPhysicalDevice * nativeptr * nativeptr -> VkResult + [] + type VkGetCalibratedTimestampsKHRDel = delegate of VkDevice * uint32 * nativeptr * nativeptr * nativeptr -> VkResult + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRCalibratedTimestamps") + static let s_vkGetPhysicalDeviceCalibrateableTimeDomainsKHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceCalibrateableTimeDomainsKHR" + static let s_vkGetCalibratedTimestampsKHRDel = VkRaw.vkImportInstanceDelegate "vkGetCalibratedTimestampsKHR" + static do Report.End(3) |> ignore + static member vkGetPhysicalDeviceCalibrateableTimeDomainsKHR = s_vkGetPhysicalDeviceCalibrateableTimeDomainsKHRDel + static member vkGetCalibratedTimestampsKHR = s_vkGetCalibratedTimestampsKHRDel + let vkGetPhysicalDeviceCalibrateableTimeDomainsKHR(physicalDevice : VkPhysicalDevice, pTimeDomainCount : nativeptr, pTimeDomains : nativeptr) = Loader.vkGetPhysicalDeviceCalibrateableTimeDomainsKHR.Invoke(physicalDevice, pTimeDomainCount, pTimeDomains) + let vkGetCalibratedTimestampsKHR(device : VkDevice, timestampCount : uint32, pTimestampInfos : nativeptr, pTimestamps : nativeptr, pMaxDeviation : nativeptr) = Loader.vkGetCalibratedTimestampsKHR.Invoke(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +/// Promoted to KHRCalibratedTimestamps. +module EXTCalibratedTimestamps = + let Type = ExtensionType.Device + let Name = "VK_EXT_calibrated_timestamps" + let Number = 185 + + type VkTimeDomainEXT = KHRCalibratedTimestamps.VkTimeDomainKHR + + type VkCalibratedTimestampInfoEXT = KHRCalibratedTimestamps.VkCalibratedTimestampInfoKHR + + + [] + module EnumExtensions = + type KHRCalibratedTimestamps.VkTimeDomainKHR with + static member inline DeviceExt = unbox 0 + static member inline ClockMonotonicExt = unbox 1 + static member inline ClockMonotonicRawExt = unbox 2 + static member inline QueryPerformanceCounterExt = unbox 3 + + module VkRaw = + [] + type VkGetPhysicalDeviceCalibrateableTimeDomainsEXTDel = delegate of VkPhysicalDevice * nativeptr * nativeptr -> VkResult + [] + type VkGetCalibratedTimestampsEXTDel = delegate of VkDevice * uint32 * nativeptr * nativeptr * nativeptr -> VkResult + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTCalibratedTimestamps") + static let s_vkGetPhysicalDeviceCalibrateableTimeDomainsEXTDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT" + static let s_vkGetCalibratedTimestampsEXTDel = VkRaw.vkImportInstanceDelegate "vkGetCalibratedTimestampsEXT" + static do Report.End(3) |> ignore + static member vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = s_vkGetPhysicalDeviceCalibrateableTimeDomainsEXTDel + static member vkGetCalibratedTimestampsEXT = s_vkGetCalibratedTimestampsEXTDel + let vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice : VkPhysicalDevice, pTimeDomainCount : nativeptr, pTimeDomains : nativeptr) = Loader.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT.Invoke(physicalDevice, pTimeDomainCount, pTimeDomains) + let vkGetCalibratedTimestampsEXT(device : VkDevice, timestampCount : uint32, pTimestampInfos : nativeptr, pTimestamps : nativeptr, pMaxDeviation : nativeptr) = Loader.vkGetCalibratedTimestampsEXT.Invoke(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module EXTColorWriteEnable = + let Type = ExtensionType.Device + let Name = "VK_EXT_color_write_enable" + let Number = 382 + [] - type VkDebugUtilsMessengerCreateInfoEXT = + type VkPhysicalDeviceColorWriteEnableFeaturesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public flags : VkDebugUtilsMessengerCreateFlagsEXT - val mutable public messageSeverity : VkDebugUtilsMessageSeverityFlagsEXT - val mutable public messageType : VkDebugUtilsMessageTypeFlagsEXT - val mutable public pfnUserCallback : PFN_vkDebugUtilsMessengerCallbackEXT - val mutable public pUserData : nativeint + val mutable public colorWriteEnable : VkBool32 - new(pNext : nativeint, flags : VkDebugUtilsMessengerCreateFlagsEXT, messageSeverity : VkDebugUtilsMessageSeverityFlagsEXT, messageType : VkDebugUtilsMessageTypeFlagsEXT, pfnUserCallback : PFN_vkDebugUtilsMessengerCallbackEXT, pUserData : nativeint) = + new(pNext : nativeint, colorWriteEnable : VkBool32) = { - sType = 1000128004u + sType = 1000381000u pNext = pNext - flags = flags - messageSeverity = messageSeverity - messageType = messageType - pfnUserCallback = pfnUserCallback - pUserData = pUserData + colorWriteEnable = colorWriteEnable } - new(flags : VkDebugUtilsMessengerCreateFlagsEXT, messageSeverity : VkDebugUtilsMessageSeverityFlagsEXT, messageType : VkDebugUtilsMessageTypeFlagsEXT, pfnUserCallback : PFN_vkDebugUtilsMessengerCallbackEXT, pUserData : nativeint) = - VkDebugUtilsMessengerCreateInfoEXT(Unchecked.defaultof, flags, messageSeverity, messageType, pfnUserCallback, pUserData) + new(colorWriteEnable : VkBool32) = + VkPhysicalDeviceColorWriteEnableFeaturesEXT(Unchecked.defaultof, colorWriteEnable) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.messageSeverity = Unchecked.defaultof && x.messageType = Unchecked.defaultof && x.pfnUserCallback = Unchecked.defaultof && x.pUserData = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.colorWriteEnable = Unchecked.defaultof static member Empty = - VkDebugUtilsMessengerCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceColorWriteEnableFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "flags = %A" x.flags - sprintf "messageSeverity = %A" x.messageSeverity - sprintf "messageType = %A" x.messageType - sprintf "pfnUserCallback = %A" x.pfnUserCallback - sprintf "pUserData = %A" x.pUserData - ] |> sprintf "VkDebugUtilsMessengerCreateInfoEXT { %s }" + sprintf "colorWriteEnable = %A" x.colorWriteEnable + ] |> sprintf "VkPhysicalDeviceColorWriteEnableFeaturesEXT { %s }" end [] - type VkDebugUtilsObjectTagInfoEXT = + type VkPipelineColorWriteCreateInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public objectType : VkObjectType - val mutable public objectHandle : uint64 - val mutable public tagName : uint64 - val mutable public tagSize : uint64 - val mutable public pTag : nativeint + val mutable public attachmentCount : uint32 + val mutable public pColorWriteEnables : nativeptr - new(pNext : nativeint, objectType : VkObjectType, objectHandle : uint64, tagName : uint64, tagSize : uint64, pTag : nativeint) = + new(pNext : nativeint, attachmentCount : uint32, pColorWriteEnables : nativeptr) = { - sType = 1000128001u + sType = 1000381001u pNext = pNext - objectType = objectType - objectHandle = objectHandle - tagName = tagName - tagSize = tagSize - pTag = pTag + attachmentCount = attachmentCount + pColorWriteEnables = pColorWriteEnables } - new(objectType : VkObjectType, objectHandle : uint64, tagName : uint64, tagSize : uint64, pTag : nativeint) = - VkDebugUtilsObjectTagInfoEXT(Unchecked.defaultof, objectType, objectHandle, tagName, tagSize, pTag) + new(attachmentCount : uint32, pColorWriteEnables : nativeptr) = + VkPipelineColorWriteCreateInfoEXT(Unchecked.defaultof, attachmentCount, pColorWriteEnables) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.objectType = Unchecked.defaultof && x.objectHandle = Unchecked.defaultof && x.tagName = Unchecked.defaultof && x.tagSize = Unchecked.defaultof && x.pTag = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.attachmentCount = Unchecked.defaultof && x.pColorWriteEnables = Unchecked.defaultof> static member Empty = - VkDebugUtilsObjectTagInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPipelineColorWriteCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "objectType = %A" x.objectType - sprintf "objectHandle = %A" x.objectHandle - sprintf "tagName = %A" x.tagName - sprintf "tagSize = %A" x.tagSize - sprintf "pTag = %A" x.pTag - ] |> sprintf "VkDebugUtilsObjectTagInfoEXT { %s }" + sprintf "attachmentCount = %A" x.attachmentCount + sprintf "pColorWriteEnables = %A" x.pColorWriteEnables + ] |> sprintf "VkPipelineColorWriteCreateInfoEXT { %s }" end [] module EnumExtensions = - type VkObjectType with - static member inline DebugUtilsMessengerExt = unbox 1000128000 + type VkDynamicState with + static member inline ColorWriteEnableExt = unbox 1000381000 module VkRaw = [] - type VkSetDebugUtilsObjectNameEXTDel = delegate of VkDevice * nativeptr -> VkResult - [] - type VkSetDebugUtilsObjectTagEXTDel = delegate of VkDevice * nativeptr -> VkResult - [] - type VkQueueBeginDebugUtilsLabelEXTDel = delegate of VkQueue * nativeptr -> unit - [] - type VkQueueEndDebugUtilsLabelEXTDel = delegate of VkQueue -> unit - [] - type VkQueueInsertDebugUtilsLabelEXTDel = delegate of VkQueue * nativeptr -> unit - [] - type VkCmdBeginDebugUtilsLabelEXTDel = delegate of VkCommandBuffer * nativeptr -> unit - [] - type VkCmdEndDebugUtilsLabelEXTDel = delegate of VkCommandBuffer -> unit - [] - type VkCmdInsertDebugUtilsLabelEXTDel = delegate of VkCommandBuffer * nativeptr -> unit - [] - type VkCreateDebugUtilsMessengerEXTDel = delegate of VkInstance * nativeptr * nativeptr * nativeptr -> VkResult - [] - type VkDestroyDebugUtilsMessengerEXTDel = delegate of VkInstance * VkDebugUtilsMessengerEXT * nativeptr -> unit - [] - type VkSubmitDebugUtilsMessageEXTDel = delegate of VkInstance * VkDebugUtilsMessageSeverityFlagsEXT * VkDebugUtilsMessageTypeFlagsEXT * nativeptr -> unit + type VkCmdSetColorWriteEnableEXTDel = delegate of VkCommandBuffer * uint32 * nativeptr -> unit [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading EXTDebugUtils") - static let s_vkSetDebugUtilsObjectNameEXTDel = VkRaw.vkImportInstanceDelegate "vkSetDebugUtilsObjectNameEXT" - static let s_vkSetDebugUtilsObjectTagEXTDel = VkRaw.vkImportInstanceDelegate "vkSetDebugUtilsObjectTagEXT" - static let s_vkQueueBeginDebugUtilsLabelEXTDel = VkRaw.vkImportInstanceDelegate "vkQueueBeginDebugUtilsLabelEXT" - static let s_vkQueueEndDebugUtilsLabelEXTDel = VkRaw.vkImportInstanceDelegate "vkQueueEndDebugUtilsLabelEXT" - static let s_vkQueueInsertDebugUtilsLabelEXTDel = VkRaw.vkImportInstanceDelegate "vkQueueInsertDebugUtilsLabelEXT" - static let s_vkCmdBeginDebugUtilsLabelEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdBeginDebugUtilsLabelEXT" - static let s_vkCmdEndDebugUtilsLabelEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdEndDebugUtilsLabelEXT" - static let s_vkCmdInsertDebugUtilsLabelEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdInsertDebugUtilsLabelEXT" - static let s_vkCreateDebugUtilsMessengerEXTDel = VkRaw.vkImportInstanceDelegate "vkCreateDebugUtilsMessengerEXT" - static let s_vkDestroyDebugUtilsMessengerEXTDel = VkRaw.vkImportInstanceDelegate "vkDestroyDebugUtilsMessengerEXT" - static let s_vkSubmitDebugUtilsMessageEXTDel = VkRaw.vkImportInstanceDelegate "vkSubmitDebugUtilsMessageEXT" + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTColorWriteEnable") + static let s_vkCmdSetColorWriteEnableEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetColorWriteEnableEXT" static do Report.End(3) |> ignore - static member vkSetDebugUtilsObjectNameEXT = s_vkSetDebugUtilsObjectNameEXTDel - static member vkSetDebugUtilsObjectTagEXT = s_vkSetDebugUtilsObjectTagEXTDel - static member vkQueueBeginDebugUtilsLabelEXT = s_vkQueueBeginDebugUtilsLabelEXTDel - static member vkQueueEndDebugUtilsLabelEXT = s_vkQueueEndDebugUtilsLabelEXTDel - static member vkQueueInsertDebugUtilsLabelEXT = s_vkQueueInsertDebugUtilsLabelEXTDel - static member vkCmdBeginDebugUtilsLabelEXT = s_vkCmdBeginDebugUtilsLabelEXTDel - static member vkCmdEndDebugUtilsLabelEXT = s_vkCmdEndDebugUtilsLabelEXTDel - static member vkCmdInsertDebugUtilsLabelEXT = s_vkCmdInsertDebugUtilsLabelEXTDel - static member vkCreateDebugUtilsMessengerEXT = s_vkCreateDebugUtilsMessengerEXTDel - static member vkDestroyDebugUtilsMessengerEXT = s_vkDestroyDebugUtilsMessengerEXTDel - static member vkSubmitDebugUtilsMessageEXT = s_vkSubmitDebugUtilsMessageEXTDel - let vkSetDebugUtilsObjectNameEXT(device : VkDevice, pNameInfo : nativeptr) = Loader.vkSetDebugUtilsObjectNameEXT.Invoke(device, pNameInfo) - let vkSetDebugUtilsObjectTagEXT(device : VkDevice, pTagInfo : nativeptr) = Loader.vkSetDebugUtilsObjectTagEXT.Invoke(device, pTagInfo) - let vkQueueBeginDebugUtilsLabelEXT(queue : VkQueue, pLabelInfo : nativeptr) = Loader.vkQueueBeginDebugUtilsLabelEXT.Invoke(queue, pLabelInfo) - let vkQueueEndDebugUtilsLabelEXT(queue : VkQueue) = Loader.vkQueueEndDebugUtilsLabelEXT.Invoke(queue) - let vkQueueInsertDebugUtilsLabelEXT(queue : VkQueue, pLabelInfo : nativeptr) = Loader.vkQueueInsertDebugUtilsLabelEXT.Invoke(queue, pLabelInfo) - let vkCmdBeginDebugUtilsLabelEXT(commandBuffer : VkCommandBuffer, pLabelInfo : nativeptr) = Loader.vkCmdBeginDebugUtilsLabelEXT.Invoke(commandBuffer, pLabelInfo) - let vkCmdEndDebugUtilsLabelEXT(commandBuffer : VkCommandBuffer) = Loader.vkCmdEndDebugUtilsLabelEXT.Invoke(commandBuffer) - let vkCmdInsertDebugUtilsLabelEXT(commandBuffer : VkCommandBuffer, pLabelInfo : nativeptr) = Loader.vkCmdInsertDebugUtilsLabelEXT.Invoke(commandBuffer, pLabelInfo) - let vkCreateDebugUtilsMessengerEXT(instance : VkInstance, pCreateInfo : nativeptr, pAllocator : nativeptr, pMessenger : nativeptr) = Loader.vkCreateDebugUtilsMessengerEXT.Invoke(instance, pCreateInfo, pAllocator, pMessenger) - let vkDestroyDebugUtilsMessengerEXT(instance : VkInstance, messenger : VkDebugUtilsMessengerEXT, pAllocator : nativeptr) = Loader.vkDestroyDebugUtilsMessengerEXT.Invoke(instance, messenger, pAllocator) - let vkSubmitDebugUtilsMessageEXT(instance : VkInstance, messageSeverity : VkDebugUtilsMessageSeverityFlagsEXT, messageTypes : VkDebugUtilsMessageTypeFlagsEXT, pCallbackData : nativeptr) = Loader.vkSubmitDebugUtilsMessageEXT.Invoke(instance, messageSeverity, messageTypes, pCallbackData) + static member vkCmdSetColorWriteEnableEXT = s_vkCmdSetColorWriteEnableEXTDel + let vkCmdSetColorWriteEnableEXT(commandBuffer : VkCommandBuffer, attachmentCount : uint32, pColorWriteEnables : nativeptr) = Loader.vkCmdSetColorWriteEnableEXT.Invoke(commandBuffer, attachmentCount, pColorWriteEnables) -module EXTDepthClipControl = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_EXT_depth_clip_control" - let Number = 356 +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module EXTConservativeRasterization = + let Type = ExtensionType.Device + let Name = "VK_EXT_conservative_rasterization" + let Number = 102 - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] + type VkConservativeRasterizationModeEXT = + | Disabled = 0 + | Overestimate = 1 + | Underestimate = 2 [] - type VkPhysicalDeviceDepthClipControlFeaturesEXT = + type VkPhysicalDeviceConservativeRasterizationPropertiesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public depthClipControl : VkBool32 + val mutable public primitiveOverestimationSize : float32 + val mutable public maxExtraPrimitiveOverestimationSize : float32 + val mutable public extraPrimitiveOverestimationSizeGranularity : float32 + val mutable public primitiveUnderestimation : VkBool32 + val mutable public conservativePointAndLineRasterization : VkBool32 + val mutable public degenerateTrianglesRasterized : VkBool32 + val mutable public degenerateLinesRasterized : VkBool32 + val mutable public fullyCoveredFragmentShaderInputVariable : VkBool32 + val mutable public conservativeRasterizationPostDepthCoverage : VkBool32 - new(pNext : nativeint, depthClipControl : VkBool32) = + new(pNext : nativeint, primitiveOverestimationSize : float32, maxExtraPrimitiveOverestimationSize : float32, extraPrimitiveOverestimationSizeGranularity : float32, primitiveUnderestimation : VkBool32, conservativePointAndLineRasterization : VkBool32, degenerateTrianglesRasterized : VkBool32, degenerateLinesRasterized : VkBool32, fullyCoveredFragmentShaderInputVariable : VkBool32, conservativeRasterizationPostDepthCoverage : VkBool32) = { - sType = 1000355000u + sType = 1000101000u pNext = pNext - depthClipControl = depthClipControl + primitiveOverestimationSize = primitiveOverestimationSize + maxExtraPrimitiveOverestimationSize = maxExtraPrimitiveOverestimationSize + extraPrimitiveOverestimationSizeGranularity = extraPrimitiveOverestimationSizeGranularity + primitiveUnderestimation = primitiveUnderestimation + conservativePointAndLineRasterization = conservativePointAndLineRasterization + degenerateTrianglesRasterized = degenerateTrianglesRasterized + degenerateLinesRasterized = degenerateLinesRasterized + fullyCoveredFragmentShaderInputVariable = fullyCoveredFragmentShaderInputVariable + conservativeRasterizationPostDepthCoverage = conservativeRasterizationPostDepthCoverage } - new(depthClipControl : VkBool32) = - VkPhysicalDeviceDepthClipControlFeaturesEXT(Unchecked.defaultof, depthClipControl) + new(primitiveOverestimationSize : float32, maxExtraPrimitiveOverestimationSize : float32, extraPrimitiveOverestimationSizeGranularity : float32, primitiveUnderestimation : VkBool32, conservativePointAndLineRasterization : VkBool32, degenerateTrianglesRasterized : VkBool32, degenerateLinesRasterized : VkBool32, fullyCoveredFragmentShaderInputVariable : VkBool32, conservativeRasterizationPostDepthCoverage : VkBool32) = + VkPhysicalDeviceConservativeRasterizationPropertiesEXT(Unchecked.defaultof, primitiveOverestimationSize, maxExtraPrimitiveOverestimationSize, extraPrimitiveOverestimationSizeGranularity, primitiveUnderestimation, conservativePointAndLineRasterization, degenerateTrianglesRasterized, degenerateLinesRasterized, fullyCoveredFragmentShaderInputVariable, conservativeRasterizationPostDepthCoverage) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.depthClipControl = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.primitiveOverestimationSize = Unchecked.defaultof && x.maxExtraPrimitiveOverestimationSize = Unchecked.defaultof && x.extraPrimitiveOverestimationSizeGranularity = Unchecked.defaultof && x.primitiveUnderestimation = Unchecked.defaultof && x.conservativePointAndLineRasterization = Unchecked.defaultof && x.degenerateTrianglesRasterized = Unchecked.defaultof && x.degenerateLinesRasterized = Unchecked.defaultof && x.fullyCoveredFragmentShaderInputVariable = Unchecked.defaultof && x.conservativeRasterizationPostDepthCoverage = Unchecked.defaultof static member Empty = - VkPhysicalDeviceDepthClipControlFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceConservativeRasterizationPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "depthClipControl = %A" x.depthClipControl - ] |> sprintf "VkPhysicalDeviceDepthClipControlFeaturesEXT { %s }" + sprintf "primitiveOverestimationSize = %A" x.primitiveOverestimationSize + sprintf "maxExtraPrimitiveOverestimationSize = %A" x.maxExtraPrimitiveOverestimationSize + sprintf "extraPrimitiveOverestimationSizeGranularity = %A" x.extraPrimitiveOverestimationSizeGranularity + sprintf "primitiveUnderestimation = %A" x.primitiveUnderestimation + sprintf "conservativePointAndLineRasterization = %A" x.conservativePointAndLineRasterization + sprintf "degenerateTrianglesRasterized = %A" x.degenerateTrianglesRasterized + sprintf "degenerateLinesRasterized = %A" x.degenerateLinesRasterized + sprintf "fullyCoveredFragmentShaderInputVariable = %A" x.fullyCoveredFragmentShaderInputVariable + sprintf "conservativeRasterizationPostDepthCoverage = %A" x.conservativeRasterizationPostDepthCoverage + ] |> sprintf "VkPhysicalDeviceConservativeRasterizationPropertiesEXT { %s }" end [] - type VkPipelineViewportDepthClipControlCreateInfoEXT = + type VkPipelineRasterizationConservativeStateCreateInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public negativeOneToOne : VkBool32 + val mutable public flags : VkPipelineRasterizationConservativeStateCreateFlagsEXT + val mutable public conservativeRasterizationMode : VkConservativeRasterizationModeEXT + val mutable public extraPrimitiveOverestimationSize : float32 - new(pNext : nativeint, negativeOneToOne : VkBool32) = + new(pNext : nativeint, flags : VkPipelineRasterizationConservativeStateCreateFlagsEXT, conservativeRasterizationMode : VkConservativeRasterizationModeEXT, extraPrimitiveOverestimationSize : float32) = { - sType = 1000355001u + sType = 1000101001u pNext = pNext - negativeOneToOne = negativeOneToOne + flags = flags + conservativeRasterizationMode = conservativeRasterizationMode + extraPrimitiveOverestimationSize = extraPrimitiveOverestimationSize } - new(negativeOneToOne : VkBool32) = - VkPipelineViewportDepthClipControlCreateInfoEXT(Unchecked.defaultof, negativeOneToOne) + new(flags : VkPipelineRasterizationConservativeStateCreateFlagsEXT, conservativeRasterizationMode : VkConservativeRasterizationModeEXT, extraPrimitiveOverestimationSize : float32) = + VkPipelineRasterizationConservativeStateCreateInfoEXT(Unchecked.defaultof, flags, conservativeRasterizationMode, extraPrimitiveOverestimationSize) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.negativeOneToOne = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.conservativeRasterizationMode = Unchecked.defaultof && x.extraPrimitiveOverestimationSize = Unchecked.defaultof static member Empty = - VkPipelineViewportDepthClipControlCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof) + VkPipelineRasterizationConservativeStateCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "negativeOneToOne = %A" x.negativeOneToOne - ] |> sprintf "VkPipelineViewportDepthClipControlCreateInfoEXT { %s }" + sprintf "flags = %A" x.flags + sprintf "conservativeRasterizationMode = %A" x.conservativeRasterizationMode + sprintf "extraPrimitiveOverestimationSize = %A" x.extraPrimitiveOverestimationSize + ] |> sprintf "VkPipelineRasterizationConservativeStateCreateInfoEXT { %s }" end -module EXTDepthClipEnable = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_EXT_depth_clip_enable" - let Number = 103 +/// Requires EXTDebugReport. +/// Promoted to EXTDebugUtils. +module EXTDebugMarker = + let Type = ExtensionType.Device + let Name = "VK_EXT_debug_marker" + let Number = 23 + type VkDebugReportObjectTypeEXT = EXTDebugReport.VkDebugReportObjectTypeEXT [] - type VkPhysicalDeviceDepthClipEnableFeaturesEXT = + type VkDebugMarkerMarkerInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public depthClipEnable : VkBool32 + val mutable public pMarkerName : cstr + val mutable public color : V4f - new(pNext : nativeint, depthClipEnable : VkBool32) = + new(pNext : nativeint, pMarkerName : cstr, color : V4f) = { - sType = 1000102000u + sType = 1000022002u pNext = pNext - depthClipEnable = depthClipEnable + pMarkerName = pMarkerName + color = color } - new(depthClipEnable : VkBool32) = - VkPhysicalDeviceDepthClipEnableFeaturesEXT(Unchecked.defaultof, depthClipEnable) + new(pMarkerName : cstr, color : V4f) = + VkDebugMarkerMarkerInfoEXT(Unchecked.defaultof, pMarkerName, color) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.depthClipEnable = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.pMarkerName = Unchecked.defaultof && x.color = Unchecked.defaultof static member Empty = - VkPhysicalDeviceDepthClipEnableFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) + VkDebugMarkerMarkerInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "depthClipEnable = %A" x.depthClipEnable - ] |> sprintf "VkPhysicalDeviceDepthClipEnableFeaturesEXT { %s }" + sprintf "pMarkerName = %A" x.pMarkerName + sprintf "color = %A" x.color + ] |> sprintf "VkDebugMarkerMarkerInfoEXT { %s }" end [] - type VkPipelineRasterizationDepthClipStateCreateInfoEXT = + type VkDebugMarkerObjectNameInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public flags : VkPipelineRasterizationDepthClipStateCreateFlagsEXT - val mutable public depthClipEnable : VkBool32 + val mutable public objectType : EXTDebugReport.VkDebugReportObjectTypeEXT + val mutable public _object : uint64 + val mutable public pObjectName : cstr - new(pNext : nativeint, flags : VkPipelineRasterizationDepthClipStateCreateFlagsEXT, depthClipEnable : VkBool32) = + new(pNext : nativeint, objectType : EXTDebugReport.VkDebugReportObjectTypeEXT, _object : uint64, pObjectName : cstr) = { - sType = 1000102001u + sType = 1000022000u pNext = pNext - flags = flags - depthClipEnable = depthClipEnable + objectType = objectType + _object = _object + pObjectName = pObjectName } - new(flags : VkPipelineRasterizationDepthClipStateCreateFlagsEXT, depthClipEnable : VkBool32) = - VkPipelineRasterizationDepthClipStateCreateInfoEXT(Unchecked.defaultof, flags, depthClipEnable) + new(objectType : EXTDebugReport.VkDebugReportObjectTypeEXT, _object : uint64, pObjectName : cstr) = + VkDebugMarkerObjectNameInfoEXT(Unchecked.defaultof, objectType, _object, pObjectName) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.depthClipEnable = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.objectType = Unchecked.defaultof && x._object = Unchecked.defaultof && x.pObjectName = Unchecked.defaultof static member Empty = - VkPipelineRasterizationDepthClipStateCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkDebugMarkerObjectNameInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "flags = %A" x.flags - sprintf "depthClipEnable = %A" x.depthClipEnable - ] |> sprintf "VkPipelineRasterizationDepthClipStateCreateInfoEXT { %s }" + sprintf "objectType = %A" x.objectType + sprintf "_object = %A" x._object + sprintf "pObjectName = %A" x.pObjectName + ] |> sprintf "VkDebugMarkerObjectNameInfoEXT { %s }" end - - -module EXTDepthRangeUnrestricted = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_EXT_depth_range_unrestricted" - let Number = 14 - - -module KHRMaintenance3 = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_KHR_maintenance3" - let Number = 169 - - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] - - - type VkDescriptorSetLayoutSupportKHR = VkDescriptorSetLayoutSupport - - type VkPhysicalDeviceMaintenance3PropertiesKHR = VkPhysicalDeviceMaintenance3Properties - - - module VkRaw = - [] - type VkGetDescriptorSetLayoutSupportKHRDel = delegate of VkDevice * nativeptr * nativeptr -> unit - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRMaintenance3") - static let s_vkGetDescriptorSetLayoutSupportKHRDel = VkRaw.vkImportInstanceDelegate "vkGetDescriptorSetLayoutSupportKHR" - static do Report.End(3) |> ignore - static member vkGetDescriptorSetLayoutSupportKHR = s_vkGetDescriptorSetLayoutSupportKHRDel - let vkGetDescriptorSetLayoutSupportKHR(device : VkDevice, pCreateInfo : nativeptr, pSupport : nativeptr) = Loader.vkGetDescriptorSetLayoutSupportKHR.Invoke(device, pCreateInfo, pSupport) - -module EXTDescriptorIndexing = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - open KHRMaintenance3 - let Name = "VK_EXT_descriptor_indexing" - let Number = 162 - - let Required = [ KHRGetPhysicalDeviceProperties2.Name; KHRMaintenance3.Name ] - - - type VkDescriptorBindingFlagsEXT = VkDescriptorBindingFlags - - type VkDescriptorSetLayoutBindingFlagsCreateInfoEXT = VkDescriptorSetLayoutBindingFlagsCreateInfo - - type VkDescriptorSetVariableDescriptorCountAllocateInfoEXT = VkDescriptorSetVariableDescriptorCountAllocateInfo - - type VkDescriptorSetVariableDescriptorCountLayoutSupportEXT = VkDescriptorSetVariableDescriptorCountLayoutSupport - - type VkPhysicalDeviceDescriptorIndexingFeaturesEXT = VkPhysicalDeviceDescriptorIndexingFeatures - - type VkPhysicalDeviceDescriptorIndexingPropertiesEXT = VkPhysicalDeviceDescriptorIndexingProperties - - - [] - module EnumExtensions = - type VkDescriptorBindingFlags with - static member inline UpdateAfterBindBitExt = unbox 0x00000001 - static member inline UpdateUnusedWhilePendingBitExt = unbox 0x00000002 - static member inline PartiallyBoundBitExt = unbox 0x00000004 - static member inline VariableDescriptorCountBitExt = unbox 0x00000008 - type VkDescriptorPoolCreateFlags with - static member inline UpdateAfterBindBitExt = unbox 0x00000002 - type VkDescriptorSetLayoutCreateFlags with - static member inline UpdateAfterBindPoolBitExt = unbox 0x00000002 - type VkResult with - static member inline ErrorFragmentationExt = unbox 1000161000 - - -module EXTDeviceMemoryReport = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_EXT_device_memory_report" - let Number = 285 - - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] - - - type PFN_vkDeviceMemoryReportCallbackEXT = nativeint - - type VkDeviceMemoryReportEventTypeEXT = - | Allocate = 0 - | Free = 1 - | Import = 2 - | Unimport = 3 - | AllocationFailed = 4 - - [] - type VkDeviceDeviceMemoryReportCreateInfoEXT = + type VkDebugMarkerObjectTagInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public flags : VkDeviceMemoryReportFlagsEXT - val mutable public pfnUserCallback : PFN_vkDeviceMemoryReportCallbackEXT - val mutable public pUserData : nativeint + val mutable public objectType : EXTDebugReport.VkDebugReportObjectTypeEXT + val mutable public _object : uint64 + val mutable public tagName : uint64 + val mutable public tagSize : uint64 + val mutable public pTag : nativeint - new(pNext : nativeint, flags : VkDeviceMemoryReportFlagsEXT, pfnUserCallback : PFN_vkDeviceMemoryReportCallbackEXT, pUserData : nativeint) = + new(pNext : nativeint, objectType : EXTDebugReport.VkDebugReportObjectTypeEXT, _object : uint64, tagName : uint64, tagSize : uint64, pTag : nativeint) = { - sType = 1000284001u + sType = 1000022001u pNext = pNext - flags = flags - pfnUserCallback = pfnUserCallback - pUserData = pUserData + objectType = objectType + _object = _object + tagName = tagName + tagSize = tagSize + pTag = pTag } - new(flags : VkDeviceMemoryReportFlagsEXT, pfnUserCallback : PFN_vkDeviceMemoryReportCallbackEXT, pUserData : nativeint) = - VkDeviceDeviceMemoryReportCreateInfoEXT(Unchecked.defaultof, flags, pfnUserCallback, pUserData) + new(objectType : EXTDebugReport.VkDebugReportObjectTypeEXT, _object : uint64, tagName : uint64, tagSize : uint64, pTag : nativeint) = + VkDebugMarkerObjectTagInfoEXT(Unchecked.defaultof, objectType, _object, tagName, tagSize, pTag) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.pfnUserCallback = Unchecked.defaultof && x.pUserData = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.objectType = Unchecked.defaultof && x._object = Unchecked.defaultof && x.tagName = Unchecked.defaultof && x.tagSize = Unchecked.defaultof && x.pTag = Unchecked.defaultof static member Empty = - VkDeviceDeviceMemoryReportCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkDebugMarkerObjectTagInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "flags = %A" x.flags - sprintf "pfnUserCallback = %A" x.pfnUserCallback - sprintf "pUserData = %A" x.pUserData - ] |> sprintf "VkDeviceDeviceMemoryReportCreateInfoEXT { %s }" + sprintf "objectType = %A" x.objectType + sprintf "_object = %A" x._object + sprintf "tagName = %A" x.tagName + sprintf "tagSize = %A" x.tagSize + sprintf "pTag = %A" x.pTag + ] |> sprintf "VkDebugMarkerObjectTagInfoEXT { %s }" end + + module VkRaw = + [] + type VkDebugMarkerSetObjectTagEXTDel = delegate of VkDevice * nativeptr -> VkResult + [] + type VkDebugMarkerSetObjectNameEXTDel = delegate of VkDevice * nativeptr -> VkResult + [] + type VkCmdDebugMarkerBeginEXTDel = delegate of VkCommandBuffer * nativeptr -> unit + [] + type VkCmdDebugMarkerEndEXTDel = delegate of VkCommandBuffer -> unit + [] + type VkCmdDebugMarkerInsertEXTDel = delegate of VkCommandBuffer * nativeptr -> unit + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTDebugMarker") + static let s_vkDebugMarkerSetObjectTagEXTDel = VkRaw.vkImportInstanceDelegate "vkDebugMarkerSetObjectTagEXT" + static let s_vkDebugMarkerSetObjectNameEXTDel = VkRaw.vkImportInstanceDelegate "vkDebugMarkerSetObjectNameEXT" + static let s_vkCmdDebugMarkerBeginEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdDebugMarkerBeginEXT" + static let s_vkCmdDebugMarkerEndEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdDebugMarkerEndEXT" + static let s_vkCmdDebugMarkerInsertEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdDebugMarkerInsertEXT" + static do Report.End(3) |> ignore + static member vkDebugMarkerSetObjectTagEXT = s_vkDebugMarkerSetObjectTagEXTDel + static member vkDebugMarkerSetObjectNameEXT = s_vkDebugMarkerSetObjectNameEXTDel + static member vkCmdDebugMarkerBeginEXT = s_vkCmdDebugMarkerBeginEXTDel + static member vkCmdDebugMarkerEndEXT = s_vkCmdDebugMarkerEndEXTDel + static member vkCmdDebugMarkerInsertEXT = s_vkCmdDebugMarkerInsertEXTDel + let vkDebugMarkerSetObjectTagEXT(device : VkDevice, pTagInfo : nativeptr) = Loader.vkDebugMarkerSetObjectTagEXT.Invoke(device, pTagInfo) + let vkDebugMarkerSetObjectNameEXT(device : VkDevice, pNameInfo : nativeptr) = Loader.vkDebugMarkerSetObjectNameEXT.Invoke(device, pNameInfo) + let vkCmdDebugMarkerBeginEXT(commandBuffer : VkCommandBuffer, pMarkerInfo : nativeptr) = Loader.vkCmdDebugMarkerBeginEXT.Invoke(commandBuffer, pMarkerInfo) + let vkCmdDebugMarkerEndEXT(commandBuffer : VkCommandBuffer) = Loader.vkCmdDebugMarkerEndEXT.Invoke(commandBuffer) + let vkCmdDebugMarkerInsertEXT(commandBuffer : VkCommandBuffer, pMarkerInfo : nativeptr) = Loader.vkCmdDebugMarkerInsertEXT.Invoke(commandBuffer, pMarkerInfo) + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module EXTDepthBiasControl = + let Type = ExtensionType.Device + let Name = "VK_EXT_depth_bias_control" + let Number = 284 + + type VkDepthBiasRepresentationEXT = + | LeastRepresentableValueFormat = 0 + | LeastRepresentableValueForceUnorm = 1 + | Float = 2 + + [] - type VkDeviceMemoryReportCallbackDataEXT = + type VkDepthBiasInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public flags : VkDeviceMemoryReportFlagsEXT - val mutable public _type : VkDeviceMemoryReportEventTypeEXT - val mutable public memoryObjectId : uint64 - val mutable public size : VkDeviceSize - val mutable public objectType : VkObjectType - val mutable public objectHandle : uint64 - val mutable public heapIndex : uint32 + val mutable public depthBiasConstantFactor : float32 + val mutable public depthBiasClamp : float32 + val mutable public depthBiasSlopeFactor : float32 - new(pNext : nativeint, flags : VkDeviceMemoryReportFlagsEXT, _type : VkDeviceMemoryReportEventTypeEXT, memoryObjectId : uint64, size : VkDeviceSize, objectType : VkObjectType, objectHandle : uint64, heapIndex : uint32) = + new(pNext : nativeint, depthBiasConstantFactor : float32, depthBiasClamp : float32, depthBiasSlopeFactor : float32) = { - sType = 1000284002u + sType = 1000283001u pNext = pNext - flags = flags - _type = _type - memoryObjectId = memoryObjectId - size = size - objectType = objectType - objectHandle = objectHandle - heapIndex = heapIndex + depthBiasConstantFactor = depthBiasConstantFactor + depthBiasClamp = depthBiasClamp + depthBiasSlopeFactor = depthBiasSlopeFactor } - new(flags : VkDeviceMemoryReportFlagsEXT, _type : VkDeviceMemoryReportEventTypeEXT, memoryObjectId : uint64, size : VkDeviceSize, objectType : VkObjectType, objectHandle : uint64, heapIndex : uint32) = - VkDeviceMemoryReportCallbackDataEXT(Unchecked.defaultof, flags, _type, memoryObjectId, size, objectType, objectHandle, heapIndex) + new(depthBiasConstantFactor : float32, depthBiasClamp : float32, depthBiasSlopeFactor : float32) = + VkDepthBiasInfoEXT(Unchecked.defaultof, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x._type = Unchecked.defaultof && x.memoryObjectId = Unchecked.defaultof && x.size = Unchecked.defaultof && x.objectType = Unchecked.defaultof && x.objectHandle = Unchecked.defaultof && x.heapIndex = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.depthBiasConstantFactor = Unchecked.defaultof && x.depthBiasClamp = Unchecked.defaultof && x.depthBiasSlopeFactor = Unchecked.defaultof static member Empty = - VkDeviceMemoryReportCallbackDataEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkDepthBiasInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "flags = %A" x.flags - sprintf "_type = %A" x._type - sprintf "memoryObjectId = %A" x.memoryObjectId - sprintf "size = %A" x.size - sprintf "objectType = %A" x.objectType - sprintf "objectHandle = %A" x.objectHandle - sprintf "heapIndex = %A" x.heapIndex - ] |> sprintf "VkDeviceMemoryReportCallbackDataEXT { %s }" + sprintf "depthBiasConstantFactor = %A" x.depthBiasConstantFactor + sprintf "depthBiasClamp = %A" x.depthBiasClamp + sprintf "depthBiasSlopeFactor = %A" x.depthBiasSlopeFactor + ] |> sprintf "VkDepthBiasInfoEXT { %s }" end [] - type VkPhysicalDeviceDeviceMemoryReportFeaturesEXT = + type VkDepthBiasRepresentationInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public deviceMemoryReport : VkBool32 + val mutable public depthBiasRepresentation : VkDepthBiasRepresentationEXT + val mutable public depthBiasExact : VkBool32 - new(pNext : nativeint, deviceMemoryReport : VkBool32) = + new(pNext : nativeint, depthBiasRepresentation : VkDepthBiasRepresentationEXT, depthBiasExact : VkBool32) = { - sType = 1000284000u + sType = 1000283002u pNext = pNext - deviceMemoryReport = deviceMemoryReport + depthBiasRepresentation = depthBiasRepresentation + depthBiasExact = depthBiasExact } - new(deviceMemoryReport : VkBool32) = - VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(Unchecked.defaultof, deviceMemoryReport) + new(depthBiasRepresentation : VkDepthBiasRepresentationEXT, depthBiasExact : VkBool32) = + VkDepthBiasRepresentationInfoEXT(Unchecked.defaultof, depthBiasRepresentation, depthBiasExact) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.deviceMemoryReport = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.depthBiasRepresentation = Unchecked.defaultof && x.depthBiasExact = Unchecked.defaultof static member Empty = - VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) + VkDepthBiasRepresentationInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "deviceMemoryReport = %A" x.deviceMemoryReport - ] |> sprintf "VkPhysicalDeviceDeviceMemoryReportFeaturesEXT { %s }" + sprintf "depthBiasRepresentation = %A" x.depthBiasRepresentation + sprintf "depthBiasExact = %A" x.depthBiasExact + ] |> sprintf "VkDepthBiasRepresentationInfoEXT { %s }" end - - -module EXTDirectfbSurface = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRSurface - let Name = "VK_EXT_directfb_surface" - let Number = 347 - - let Required = [ KHRSurface.Name ] - - [] - type VkDirectFBSurfaceCreateInfoEXT = + type VkPhysicalDeviceDepthBiasControlFeaturesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public flags : VkDirectFBSurfaceCreateFlagsEXT - val mutable public dfb : nativeptr - val mutable public surface : nativeptr + val mutable public depthBiasControl : VkBool32 + val mutable public leastRepresentableValueForceUnormRepresentation : VkBool32 + val mutable public floatRepresentation : VkBool32 + val mutable public depthBiasExact : VkBool32 - new(pNext : nativeint, flags : VkDirectFBSurfaceCreateFlagsEXT, dfb : nativeptr, surface : nativeptr) = + new(pNext : nativeint, depthBiasControl : VkBool32, leastRepresentableValueForceUnormRepresentation : VkBool32, floatRepresentation : VkBool32, depthBiasExact : VkBool32) = { - sType = 1000346000u + sType = 1000283000u pNext = pNext - flags = flags - dfb = dfb - surface = surface + depthBiasControl = depthBiasControl + leastRepresentableValueForceUnormRepresentation = leastRepresentableValueForceUnormRepresentation + floatRepresentation = floatRepresentation + depthBiasExact = depthBiasExact } - new(flags : VkDirectFBSurfaceCreateFlagsEXT, dfb : nativeptr, surface : nativeptr) = - VkDirectFBSurfaceCreateInfoEXT(Unchecked.defaultof, flags, dfb, surface) + new(depthBiasControl : VkBool32, leastRepresentableValueForceUnormRepresentation : VkBool32, floatRepresentation : VkBool32, depthBiasExact : VkBool32) = + VkPhysicalDeviceDepthBiasControlFeaturesEXT(Unchecked.defaultof, depthBiasControl, leastRepresentableValueForceUnormRepresentation, floatRepresentation, depthBiasExact) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.dfb = Unchecked.defaultof> && x.surface = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.depthBiasControl = Unchecked.defaultof && x.leastRepresentableValueForceUnormRepresentation = Unchecked.defaultof && x.floatRepresentation = Unchecked.defaultof && x.depthBiasExact = Unchecked.defaultof static member Empty = - VkDirectFBSurfaceCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof>) + VkPhysicalDeviceDepthBiasControlFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "flags = %A" x.flags - sprintf "dfb = %A" x.dfb - sprintf "surface = %A" x.surface - ] |> sprintf "VkDirectFBSurfaceCreateInfoEXT { %s }" + sprintf "depthBiasControl = %A" x.depthBiasControl + sprintf "leastRepresentableValueForceUnormRepresentation = %A" x.leastRepresentableValueForceUnormRepresentation + sprintf "floatRepresentation = %A" x.floatRepresentation + sprintf "depthBiasExact = %A" x.depthBiasExact + ] |> sprintf "VkPhysicalDeviceDepthBiasControlFeaturesEXT { %s }" end module VkRaw = [] - type VkCreateDirectFBSurfaceEXTDel = delegate of VkInstance * nativeptr * nativeptr * nativeptr -> VkResult - [] - type VkGetPhysicalDeviceDirectFBPresentationSupportEXTDel = delegate of VkPhysicalDevice * uint32 * nativeptr -> VkBool32 + type VkCmdSetDepthBias2EXTDel = delegate of VkCommandBuffer * nativeptr -> unit [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading EXTDirectfbSurface") - static let s_vkCreateDirectFBSurfaceEXTDel = VkRaw.vkImportInstanceDelegate "vkCreateDirectFBSurfaceEXT" - static let s_vkGetPhysicalDeviceDirectFBPresentationSupportEXTDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceDirectFBPresentationSupportEXT" + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTDepthBiasControl") + static let s_vkCmdSetDepthBias2EXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetDepthBias2EXT" static do Report.End(3) |> ignore - static member vkCreateDirectFBSurfaceEXT = s_vkCreateDirectFBSurfaceEXTDel - static member vkGetPhysicalDeviceDirectFBPresentationSupportEXT = s_vkGetPhysicalDeviceDirectFBPresentationSupportEXTDel - let vkCreateDirectFBSurfaceEXT(instance : VkInstance, pCreateInfo : nativeptr, pAllocator : nativeptr, pSurface : nativeptr) = Loader.vkCreateDirectFBSurfaceEXT.Invoke(instance, pCreateInfo, pAllocator, pSurface) - let vkGetPhysicalDeviceDirectFBPresentationSupportEXT(physicalDevice : VkPhysicalDevice, queueFamilyIndex : uint32, dfb : nativeptr) = Loader.vkGetPhysicalDeviceDirectFBPresentationSupportEXT.Invoke(physicalDevice, queueFamilyIndex, dfb) - -module EXTDiscardRectangles = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_EXT_discard_rectangles" - let Number = 100 - - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] - - - type VkDiscardRectangleModeEXT = - | Inclusive = 0 - | Exclusive = 1 + static member vkCmdSetDepthBias2EXT = s_vkCmdSetDepthBias2EXTDel + let vkCmdSetDepthBias2EXT(commandBuffer : VkCommandBuffer, pDepthBiasInfo : nativeptr) = Loader.vkCmdSetDepthBias2EXT.Invoke(commandBuffer, pDepthBiasInfo) +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module EXTDepthClampZeroOne = + let Type = ExtensionType.Device + let Name = "VK_EXT_depth_clamp_zero_one" + let Number = 422 [] - type VkPhysicalDeviceDiscardRectanglePropertiesEXT = + type VkPhysicalDeviceDepthClampZeroOneFeaturesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public maxDiscardRectangles : uint32 + val mutable public depthClampZeroOne : VkBool32 - new(pNext : nativeint, maxDiscardRectangles : uint32) = + new(pNext : nativeint, depthClampZeroOne : VkBool32) = { - sType = 1000099000u + sType = 1000421000u pNext = pNext - maxDiscardRectangles = maxDiscardRectangles + depthClampZeroOne = depthClampZeroOne } - new(maxDiscardRectangles : uint32) = - VkPhysicalDeviceDiscardRectanglePropertiesEXT(Unchecked.defaultof, maxDiscardRectangles) + new(depthClampZeroOne : VkBool32) = + VkPhysicalDeviceDepthClampZeroOneFeaturesEXT(Unchecked.defaultof, depthClampZeroOne) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.maxDiscardRectangles = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.depthClampZeroOne = Unchecked.defaultof static member Empty = - VkPhysicalDeviceDiscardRectanglePropertiesEXT(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceDepthClampZeroOneFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "maxDiscardRectangles = %A" x.maxDiscardRectangles - ] |> sprintf "VkPhysicalDeviceDiscardRectanglePropertiesEXT { %s }" + sprintf "depthClampZeroOne = %A" x.depthClampZeroOne + ] |> sprintf "VkPhysicalDeviceDepthClampZeroOneFeaturesEXT { %s }" end + + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module EXTDepthClipControl = + let Type = ExtensionType.Device + let Name = "VK_EXT_depth_clip_control" + let Number = 356 + [] - type VkPipelineDiscardRectangleStateCreateInfoEXT = + type VkPhysicalDeviceDepthClipControlFeaturesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public flags : VkPipelineDiscardRectangleStateCreateFlagsEXT - val mutable public discardRectangleMode : VkDiscardRectangleModeEXT - val mutable public discardRectangleCount : uint32 - val mutable public pDiscardRectangles : nativeptr + val mutable public depthClipControl : VkBool32 - new(pNext : nativeint, flags : VkPipelineDiscardRectangleStateCreateFlagsEXT, discardRectangleMode : VkDiscardRectangleModeEXT, discardRectangleCount : uint32, pDiscardRectangles : nativeptr) = + new(pNext : nativeint, depthClipControl : VkBool32) = { - sType = 1000099001u + sType = 1000355000u pNext = pNext - flags = flags - discardRectangleMode = discardRectangleMode - discardRectangleCount = discardRectangleCount - pDiscardRectangles = pDiscardRectangles + depthClipControl = depthClipControl } - new(flags : VkPipelineDiscardRectangleStateCreateFlagsEXT, discardRectangleMode : VkDiscardRectangleModeEXT, discardRectangleCount : uint32, pDiscardRectangles : nativeptr) = - VkPipelineDiscardRectangleStateCreateInfoEXT(Unchecked.defaultof, flags, discardRectangleMode, discardRectangleCount, pDiscardRectangles) + new(depthClipControl : VkBool32) = + VkPhysicalDeviceDepthClipControlFeaturesEXT(Unchecked.defaultof, depthClipControl) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.discardRectangleMode = Unchecked.defaultof && x.discardRectangleCount = Unchecked.defaultof && x.pDiscardRectangles = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.depthClipControl = Unchecked.defaultof static member Empty = - VkPipelineDiscardRectangleStateCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + VkPhysicalDeviceDepthClipControlFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "flags = %A" x.flags - sprintf "discardRectangleMode = %A" x.discardRectangleMode - sprintf "discardRectangleCount = %A" x.discardRectangleCount - sprintf "pDiscardRectangles = %A" x.pDiscardRectangles - ] |> sprintf "VkPipelineDiscardRectangleStateCreateInfoEXT { %s }" + sprintf "depthClipControl = %A" x.depthClipControl + ] |> sprintf "VkPhysicalDeviceDepthClipControlFeaturesEXT { %s }" end - - [] - module EnumExtensions = - type VkDynamicState with - static member inline DiscardRectangleExt = unbox 1000099000 - - module VkRaw = - [] - type VkCmdSetDiscardRectangleEXTDel = delegate of VkCommandBuffer * uint32 * uint32 * nativeptr -> unit - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading EXTDiscardRectangles") - static let s_vkCmdSetDiscardRectangleEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetDiscardRectangleEXT" - static do Report.End(3) |> ignore - static member vkCmdSetDiscardRectangleEXT = s_vkCmdSetDiscardRectangleEXTDel - let vkCmdSetDiscardRectangleEXT(commandBuffer : VkCommandBuffer, firstDiscardRectangle : uint32, discardRectangleCount : uint32, pDiscardRectangles : nativeptr) = Loader.vkCmdSetDiscardRectangleEXT.Invoke(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) - -module EXTDisplaySurfaceCounter = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRDisplay - open KHRSurface - let Name = "VK_EXT_display_surface_counter" - let Number = 91 - - let Required = [ KHRDisplay.Name ] - - - [] - type VkSurfaceCounterFlagsEXT = - | All = 1 - | None = 0 - | VblankBit = 0x00000001 - - [] - type VkSurfaceCapabilities2EXT = + type VkPipelineViewportDepthClipControlCreateInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public minImageCount : uint32 - val mutable public maxImageCount : uint32 - val mutable public currentExtent : VkExtent2D - val mutable public minImageExtent : VkExtent2D - val mutable public maxImageExtent : VkExtent2D - val mutable public maxImageArrayLayers : uint32 - val mutable public supportedTransforms : VkSurfaceTransformFlagsKHR - val mutable public currentTransform : VkSurfaceTransformFlagsKHR - val mutable public supportedCompositeAlpha : VkCompositeAlphaFlagsKHR - val mutable public supportedUsageFlags : VkImageUsageFlags - val mutable public supportedSurfaceCounters : VkSurfaceCounterFlagsEXT + val mutable public negativeOneToOne : VkBool32 - new(pNext : nativeint, minImageCount : uint32, maxImageCount : uint32, currentExtent : VkExtent2D, minImageExtent : VkExtent2D, maxImageExtent : VkExtent2D, maxImageArrayLayers : uint32, supportedTransforms : VkSurfaceTransformFlagsKHR, currentTransform : VkSurfaceTransformFlagsKHR, supportedCompositeAlpha : VkCompositeAlphaFlagsKHR, supportedUsageFlags : VkImageUsageFlags, supportedSurfaceCounters : VkSurfaceCounterFlagsEXT) = + new(pNext : nativeint, negativeOneToOne : VkBool32) = { - sType = 1000090000u + sType = 1000355001u pNext = pNext - minImageCount = minImageCount - maxImageCount = maxImageCount - currentExtent = currentExtent - minImageExtent = minImageExtent - maxImageExtent = maxImageExtent - maxImageArrayLayers = maxImageArrayLayers - supportedTransforms = supportedTransforms - currentTransform = currentTransform - supportedCompositeAlpha = supportedCompositeAlpha - supportedUsageFlags = supportedUsageFlags - supportedSurfaceCounters = supportedSurfaceCounters + negativeOneToOne = negativeOneToOne } - new(minImageCount : uint32, maxImageCount : uint32, currentExtent : VkExtent2D, minImageExtent : VkExtent2D, maxImageExtent : VkExtent2D, maxImageArrayLayers : uint32, supportedTransforms : VkSurfaceTransformFlagsKHR, currentTransform : VkSurfaceTransformFlagsKHR, supportedCompositeAlpha : VkCompositeAlphaFlagsKHR, supportedUsageFlags : VkImageUsageFlags, supportedSurfaceCounters : VkSurfaceCounterFlagsEXT) = - VkSurfaceCapabilities2EXT(Unchecked.defaultof, minImageCount, maxImageCount, currentExtent, minImageExtent, maxImageExtent, maxImageArrayLayers, supportedTransforms, currentTransform, supportedCompositeAlpha, supportedUsageFlags, supportedSurfaceCounters) + new(negativeOneToOne : VkBool32) = + VkPipelineViewportDepthClipControlCreateInfoEXT(Unchecked.defaultof, negativeOneToOne) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.minImageCount = Unchecked.defaultof && x.maxImageCount = Unchecked.defaultof && x.currentExtent = Unchecked.defaultof && x.minImageExtent = Unchecked.defaultof && x.maxImageExtent = Unchecked.defaultof && x.maxImageArrayLayers = Unchecked.defaultof && x.supportedTransforms = Unchecked.defaultof && x.currentTransform = Unchecked.defaultof && x.supportedCompositeAlpha = Unchecked.defaultof && x.supportedUsageFlags = Unchecked.defaultof && x.supportedSurfaceCounters = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.negativeOneToOne = Unchecked.defaultof static member Empty = - VkSurfaceCapabilities2EXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPipelineViewportDepthClipControlCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "minImageCount = %A" x.minImageCount - sprintf "maxImageCount = %A" x.maxImageCount - sprintf "currentExtent = %A" x.currentExtent - sprintf "minImageExtent = %A" x.minImageExtent - sprintf "maxImageExtent = %A" x.maxImageExtent - sprintf "maxImageArrayLayers = %A" x.maxImageArrayLayers - sprintf "supportedTransforms = %A" x.supportedTransforms - sprintf "currentTransform = %A" x.currentTransform - sprintf "supportedCompositeAlpha = %A" x.supportedCompositeAlpha - sprintf "supportedUsageFlags = %A" x.supportedUsageFlags - sprintf "supportedSurfaceCounters = %A" x.supportedSurfaceCounters - ] |> sprintf "VkSurfaceCapabilities2EXT { %s }" + sprintf "negativeOneToOne = %A" x.negativeOneToOne + ] |> sprintf "VkPipelineViewportDepthClipControlCreateInfoEXT { %s }" end - module VkRaw = - [] - type VkGetPhysicalDeviceSurfaceCapabilities2EXTDel = delegate of VkPhysicalDevice * VkSurfaceKHR * nativeptr -> VkResult - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading EXTDisplaySurfaceCounter") - static let s_vkGetPhysicalDeviceSurfaceCapabilities2EXTDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceSurfaceCapabilities2EXT" - static do Report.End(3) |> ignore - static member vkGetPhysicalDeviceSurfaceCapabilities2EXT = s_vkGetPhysicalDeviceSurfaceCapabilities2EXTDel - let vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice : VkPhysicalDevice, surface : VkSurfaceKHR, pSurfaceCapabilities : nativeptr) = Loader.vkGetPhysicalDeviceSurfaceCapabilities2EXT.Invoke(physicalDevice, surface, pSurfaceCapabilities) - -module EXTDisplayControl = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open EXTDisplaySurfaceCounter - open KHRDisplay - open KHRSurface - open KHRSwapchain - let Name = "VK_EXT_display_control" - let Number = 92 - - let Required = [ EXTDisplaySurfaceCounter.Name; KHRSwapchain.Name ] - - - type VkDisplayPowerStateEXT = - | Off = 0 - | Suspend = 1 - | On = 2 - - type VkDeviceEventTypeEXT = - | DisplayHotplug = 0 - - type VkDisplayEventTypeEXT = - | FirstPixelOut = 0 +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module EXTDepthClipEnable = + let Type = ExtensionType.Device + let Name = "VK_EXT_depth_clip_enable" + let Number = 103 [] - type VkDeviceEventInfoEXT = + type VkPhysicalDeviceDepthClipEnableFeaturesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public deviceEvent : VkDeviceEventTypeEXT + val mutable public depthClipEnable : VkBool32 - new(pNext : nativeint, deviceEvent : VkDeviceEventTypeEXT) = + new(pNext : nativeint, depthClipEnable : VkBool32) = { - sType = 1000091001u + sType = 1000102000u pNext = pNext - deviceEvent = deviceEvent + depthClipEnable = depthClipEnable } - new(deviceEvent : VkDeviceEventTypeEXT) = - VkDeviceEventInfoEXT(Unchecked.defaultof, deviceEvent) + new(depthClipEnable : VkBool32) = + VkPhysicalDeviceDepthClipEnableFeaturesEXT(Unchecked.defaultof, depthClipEnable) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.deviceEvent = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.depthClipEnable = Unchecked.defaultof static member Empty = - VkDeviceEventInfoEXT(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceDepthClipEnableFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "deviceEvent = %A" x.deviceEvent - ] |> sprintf "VkDeviceEventInfoEXT { %s }" + sprintf "depthClipEnable = %A" x.depthClipEnable + ] |> sprintf "VkPhysicalDeviceDepthClipEnableFeaturesEXT { %s }" end [] - type VkDisplayEventInfoEXT = + type VkPipelineRasterizationDepthClipStateCreateInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public displayEvent : VkDisplayEventTypeEXT + val mutable public flags : VkPipelineRasterizationDepthClipStateCreateFlagsEXT + val mutable public depthClipEnable : VkBool32 - new(pNext : nativeint, displayEvent : VkDisplayEventTypeEXT) = + new(pNext : nativeint, flags : VkPipelineRasterizationDepthClipStateCreateFlagsEXT, depthClipEnable : VkBool32) = { - sType = 1000091002u + sType = 1000102001u pNext = pNext - displayEvent = displayEvent + flags = flags + depthClipEnable = depthClipEnable } - new(displayEvent : VkDisplayEventTypeEXT) = - VkDisplayEventInfoEXT(Unchecked.defaultof, displayEvent) + new(flags : VkPipelineRasterizationDepthClipStateCreateFlagsEXT, depthClipEnable : VkBool32) = + VkPipelineRasterizationDepthClipStateCreateInfoEXT(Unchecked.defaultof, flags, depthClipEnable) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.displayEvent = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.depthClipEnable = Unchecked.defaultof static member Empty = - VkDisplayEventInfoEXT(Unchecked.defaultof, Unchecked.defaultof) + VkPipelineRasterizationDepthClipStateCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "displayEvent = %A" x.displayEvent - ] |> sprintf "VkDisplayEventInfoEXT { %s }" + sprintf "flags = %A" x.flags + sprintf "depthClipEnable = %A" x.depthClipEnable + ] |> sprintf "VkPipelineRasterizationDepthClipStateCreateInfoEXT { %s }" end + + +module EXTDepthRangeUnrestricted = + let Type = ExtensionType.Device + let Name = "VK_EXT_depth_range_unrestricted" + let Number = 14 + +/// Requires (KHRGetPhysicalDeviceProperties2 | Vulkan11), EXTDebugUtils. +module EXTDeviceAddressBindingReport = + let Type = ExtensionType.Device + let Name = "VK_EXT_device_address_binding_report" + let Number = 355 + + [] + type VkDeviceAddressBindingFlagsEXT = + | All = 1 + | None = 0 + | InternalObjectBit = 0x00000001 + + type VkDeviceAddressBindingTypeEXT = + | Bind = 0 + | Unbind = 1 + + [] - type VkDisplayPowerInfoEXT = + type VkDeviceAddressBindingCallbackDataEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public powerState : VkDisplayPowerStateEXT + val mutable public flags : VkDeviceAddressBindingFlagsEXT + val mutable public baseAddress : VkDeviceAddress + val mutable public size : VkDeviceSize + val mutable public bindingType : VkDeviceAddressBindingTypeEXT - new(pNext : nativeint, powerState : VkDisplayPowerStateEXT) = + new(pNext : nativeint, flags : VkDeviceAddressBindingFlagsEXT, baseAddress : VkDeviceAddress, size : VkDeviceSize, bindingType : VkDeviceAddressBindingTypeEXT) = { - sType = 1000091000u + sType = 1000354001u pNext = pNext - powerState = powerState + flags = flags + baseAddress = baseAddress + size = size + bindingType = bindingType } - new(powerState : VkDisplayPowerStateEXT) = - VkDisplayPowerInfoEXT(Unchecked.defaultof, powerState) + new(flags : VkDeviceAddressBindingFlagsEXT, baseAddress : VkDeviceAddress, size : VkDeviceSize, bindingType : VkDeviceAddressBindingTypeEXT) = + VkDeviceAddressBindingCallbackDataEXT(Unchecked.defaultof, flags, baseAddress, size, bindingType) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.powerState = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.baseAddress = Unchecked.defaultof && x.size = Unchecked.defaultof && x.bindingType = Unchecked.defaultof static member Empty = - VkDisplayPowerInfoEXT(Unchecked.defaultof, Unchecked.defaultof) + VkDeviceAddressBindingCallbackDataEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "powerState = %A" x.powerState - ] |> sprintf "VkDisplayPowerInfoEXT { %s }" + sprintf "flags = %A" x.flags + sprintf "baseAddress = %A" x.baseAddress + sprintf "size = %A" x.size + sprintf "bindingType = %A" x.bindingType + ] |> sprintf "VkDeviceAddressBindingCallbackDataEXT { %s }" end [] - type VkSwapchainCounterCreateInfoEXT = + type VkPhysicalDeviceAddressBindingReportFeaturesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public surfaceCounters : VkSurfaceCounterFlagsEXT + val mutable public reportAddressBinding : VkBool32 - new(pNext : nativeint, surfaceCounters : VkSurfaceCounterFlagsEXT) = + new(pNext : nativeint, reportAddressBinding : VkBool32) = { - sType = 1000091003u + sType = 1000354000u pNext = pNext - surfaceCounters = surfaceCounters + reportAddressBinding = reportAddressBinding } - new(surfaceCounters : VkSurfaceCounterFlagsEXT) = - VkSwapchainCounterCreateInfoEXT(Unchecked.defaultof, surfaceCounters) + new(reportAddressBinding : VkBool32) = + VkPhysicalDeviceAddressBindingReportFeaturesEXT(Unchecked.defaultof, reportAddressBinding) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.surfaceCounters = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.reportAddressBinding = Unchecked.defaultof static member Empty = - VkSwapchainCounterCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceAddressBindingReportFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "surfaceCounters = %A" x.surfaceCounters - ] |> sprintf "VkSwapchainCounterCreateInfoEXT { %s }" + sprintf "reportAddressBinding = %A" x.reportAddressBinding + ] |> sprintf "VkPhysicalDeviceAddressBindingReportFeaturesEXT { %s }" end - module VkRaw = - [] - type VkDisplayPowerControlEXTDel = delegate of VkDevice * VkDisplayKHR * nativeptr -> VkResult - [] - type VkRegisterDeviceEventEXTDel = delegate of VkDevice * nativeptr * nativeptr * nativeptr -> VkResult - [] - type VkRegisterDisplayEventEXTDel = delegate of VkDevice * VkDisplayKHR * nativeptr * nativeptr * nativeptr -> VkResult - [] - type VkGetSwapchainCounterEXTDel = delegate of VkDevice * VkSwapchainKHR * VkSurfaceCounterFlagsEXT * nativeptr -> VkResult + [] + module EnumExtensions = + type EXTDebugUtils.VkDebugUtilsMessageTypeFlagsEXT with + static member inline DeviceAddressBindingBit = unbox 0x00000008 - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading EXTDisplayControl") - static let s_vkDisplayPowerControlEXTDel = VkRaw.vkImportInstanceDelegate "vkDisplayPowerControlEXT" - static let s_vkRegisterDeviceEventEXTDel = VkRaw.vkImportInstanceDelegate "vkRegisterDeviceEventEXT" - static let s_vkRegisterDisplayEventEXTDel = VkRaw.vkImportInstanceDelegate "vkRegisterDisplayEventEXT" - static let s_vkGetSwapchainCounterEXTDel = VkRaw.vkImportInstanceDelegate "vkGetSwapchainCounterEXT" - static do Report.End(3) |> ignore - static member vkDisplayPowerControlEXT = s_vkDisplayPowerControlEXTDel - static member vkRegisterDeviceEventEXT = s_vkRegisterDeviceEventEXTDel - static member vkRegisterDisplayEventEXT = s_vkRegisterDisplayEventEXTDel - static member vkGetSwapchainCounterEXT = s_vkGetSwapchainCounterEXTDel - let vkDisplayPowerControlEXT(device : VkDevice, display : VkDisplayKHR, pDisplayPowerInfo : nativeptr) = Loader.vkDisplayPowerControlEXT.Invoke(device, display, pDisplayPowerInfo) - let vkRegisterDeviceEventEXT(device : VkDevice, pDeviceEventInfo : nativeptr, pAllocator : nativeptr, pFence : nativeptr) = Loader.vkRegisterDeviceEventEXT.Invoke(device, pDeviceEventInfo, pAllocator, pFence) - let vkRegisterDisplayEventEXT(device : VkDevice, display : VkDisplayKHR, pDisplayEventInfo : nativeptr, pAllocator : nativeptr, pFence : nativeptr) = Loader.vkRegisterDisplayEventEXT.Invoke(device, display, pDisplayEventInfo, pAllocator, pFence) - let vkGetSwapchainCounterEXT(device : VkDevice, swapchain : VkSwapchainKHR, counter : VkSurfaceCounterFlagsEXT, pCounterValue : nativeptr) = Loader.vkGetSwapchainCounterEXT.Invoke(device, swapchain, counter, pCounterValue) -module EXTExtendedDynamicState = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_EXT_extended_dynamic_state" - let Number = 268 +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module EXTDeviceFault = + let Type = ExtensionType.Device + let Name = "VK_EXT_device_fault" + let Number = 342 - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] + type VkDeviceFaultAddressTypeEXT = + /// Currently unused + | None = 0 + | ReadInvalid = 1 + | WriteInvalid = 2 + | ExecuteInvalid = 3 + | InstructionPointerUnknown = 4 + | InstructionPointerInvalid = 5 + | InstructionPointerFault = 6 + + type VkDeviceFaultVendorBinaryHeaderVersionEXT = + | One = 1 [] - type VkPhysicalDeviceExtendedDynamicStateFeaturesEXT = + type VkDeviceFaultAddressInfoEXT = + struct + val mutable public addressType : VkDeviceFaultAddressTypeEXT + val mutable public reportedAddress : VkDeviceAddress + val mutable public addressPrecision : VkDeviceSize + + new(addressType : VkDeviceFaultAddressTypeEXT, reportedAddress : VkDeviceAddress, addressPrecision : VkDeviceSize) = + { + addressType = addressType + reportedAddress = reportedAddress + addressPrecision = addressPrecision + } + + member x.IsEmpty = + x.addressType = Unchecked.defaultof && x.reportedAddress = Unchecked.defaultof && x.addressPrecision = Unchecked.defaultof + + static member Empty = + VkDeviceFaultAddressInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "addressType = %A" x.addressType + sprintf "reportedAddress = %A" x.reportedAddress + sprintf "addressPrecision = %A" x.addressPrecision + ] |> sprintf "VkDeviceFaultAddressInfoEXT { %s }" + end + + [] + type VkDeviceFaultCountsEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public extendedDynamicState : VkBool32 + val mutable public addressInfoCount : uint32 + val mutable public vendorInfoCount : uint32 + val mutable public vendorBinarySize : VkDeviceSize - new(pNext : nativeint, extendedDynamicState : VkBool32) = + new(pNext : nativeint, addressInfoCount : uint32, vendorInfoCount : uint32, vendorBinarySize : VkDeviceSize) = { - sType = 1000267000u + sType = 1000341001u pNext = pNext - extendedDynamicState = extendedDynamicState + addressInfoCount = addressInfoCount + vendorInfoCount = vendorInfoCount + vendorBinarySize = vendorBinarySize } - new(extendedDynamicState : VkBool32) = - VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(Unchecked.defaultof, extendedDynamicState) + new(addressInfoCount : uint32, vendorInfoCount : uint32, vendorBinarySize : VkDeviceSize) = + VkDeviceFaultCountsEXT(Unchecked.defaultof, addressInfoCount, vendorInfoCount, vendorBinarySize) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.extendedDynamicState = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.addressInfoCount = Unchecked.defaultof && x.vendorInfoCount = Unchecked.defaultof && x.vendorBinarySize = Unchecked.defaultof static member Empty = - VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) + VkDeviceFaultCountsEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "extendedDynamicState = %A" x.extendedDynamicState - ] |> sprintf "VkPhysicalDeviceExtendedDynamicStateFeaturesEXT { %s }" + sprintf "addressInfoCount = %A" x.addressInfoCount + sprintf "vendorInfoCount = %A" x.vendorInfoCount + sprintf "vendorBinarySize = %A" x.vendorBinarySize + ] |> sprintf "VkDeviceFaultCountsEXT { %s }" end + [] + type VkDeviceFaultVendorInfoEXT = + struct + val mutable public description : String256 + val mutable public vendorFaultCode : uint64 + val mutable public vendorFaultData : uint64 - [] - module EnumExtensions = - type VkDynamicState with - static member inline CullModeExt = unbox 1000267000 - static member inline FrontFaceExt = unbox 1000267001 - static member inline PrimitiveTopologyExt = unbox 1000267002 - static member inline ViewportWithCountExt = unbox 1000267003 - static member inline ScissorWithCountExt = unbox 1000267004 - static member inline VertexInputBindingStrideExt = unbox 1000267005 - static member inline DepthTestEnableExt = unbox 1000267006 - static member inline DepthWriteEnableExt = unbox 1000267007 - static member inline DepthCompareOpExt = unbox 1000267008 - static member inline DepthBoundsTestEnableExt = unbox 1000267009 - static member inline StencilTestEnableExt = unbox 1000267010 - static member inline StencilOpExt = unbox 1000267011 - - module VkRaw = - [] - type VkCmdSetCullModeEXTDel = delegate of VkCommandBuffer * VkCullModeFlags -> unit - [] - type VkCmdSetFrontFaceEXTDel = delegate of VkCommandBuffer * VkFrontFace -> unit - [] - type VkCmdSetPrimitiveTopologyEXTDel = delegate of VkCommandBuffer * VkPrimitiveTopology -> unit - [] - type VkCmdSetViewportWithCountEXTDel = delegate of VkCommandBuffer * uint32 * nativeptr -> unit - [] - type VkCmdSetScissorWithCountEXTDel = delegate of VkCommandBuffer * uint32 * nativeptr -> unit - [] - type VkCmdBindVertexBuffers2EXTDel = delegate of VkCommandBuffer * uint32 * uint32 * nativeptr * nativeptr * nativeptr * nativeptr -> unit - [] - type VkCmdSetDepthTestEnableEXTDel = delegate of VkCommandBuffer * VkBool32 -> unit - [] - type VkCmdSetDepthWriteEnableEXTDel = delegate of VkCommandBuffer * VkBool32 -> unit - [] - type VkCmdSetDepthCompareOpEXTDel = delegate of VkCommandBuffer * VkCompareOp -> unit - [] - type VkCmdSetDepthBoundsTestEnableEXTDel = delegate of VkCommandBuffer * VkBool32 -> unit - [] - type VkCmdSetStencilTestEnableEXTDel = delegate of VkCommandBuffer * VkBool32 -> unit - [] - type VkCmdSetStencilOpEXTDel = delegate of VkCommandBuffer * VkStencilFaceFlags * VkStencilOp * VkStencilOp * VkStencilOp * VkCompareOp -> unit - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading EXTExtendedDynamicState") - static let s_vkCmdSetCullModeEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetCullModeEXT" - static let s_vkCmdSetFrontFaceEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetFrontFaceEXT" - static let s_vkCmdSetPrimitiveTopologyEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetPrimitiveTopologyEXT" - static let s_vkCmdSetViewportWithCountEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetViewportWithCountEXT" - static let s_vkCmdSetScissorWithCountEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetScissorWithCountEXT" - static let s_vkCmdBindVertexBuffers2EXTDel = VkRaw.vkImportInstanceDelegate "vkCmdBindVertexBuffers2EXT" - static let s_vkCmdSetDepthTestEnableEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetDepthTestEnableEXT" - static let s_vkCmdSetDepthWriteEnableEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetDepthWriteEnableEXT" - static let s_vkCmdSetDepthCompareOpEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetDepthCompareOpEXT" - static let s_vkCmdSetDepthBoundsTestEnableEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetDepthBoundsTestEnableEXT" - static let s_vkCmdSetStencilTestEnableEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetStencilTestEnableEXT" - static let s_vkCmdSetStencilOpEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetStencilOpEXT" - static do Report.End(3) |> ignore - static member vkCmdSetCullModeEXT = s_vkCmdSetCullModeEXTDel - static member vkCmdSetFrontFaceEXT = s_vkCmdSetFrontFaceEXTDel - static member vkCmdSetPrimitiveTopologyEXT = s_vkCmdSetPrimitiveTopologyEXTDel - static member vkCmdSetViewportWithCountEXT = s_vkCmdSetViewportWithCountEXTDel - static member vkCmdSetScissorWithCountEXT = s_vkCmdSetScissorWithCountEXTDel - static member vkCmdBindVertexBuffers2EXT = s_vkCmdBindVertexBuffers2EXTDel - static member vkCmdSetDepthTestEnableEXT = s_vkCmdSetDepthTestEnableEXTDel - static member vkCmdSetDepthWriteEnableEXT = s_vkCmdSetDepthWriteEnableEXTDel - static member vkCmdSetDepthCompareOpEXT = s_vkCmdSetDepthCompareOpEXTDel - static member vkCmdSetDepthBoundsTestEnableEXT = s_vkCmdSetDepthBoundsTestEnableEXTDel - static member vkCmdSetStencilTestEnableEXT = s_vkCmdSetStencilTestEnableEXTDel - static member vkCmdSetStencilOpEXT = s_vkCmdSetStencilOpEXTDel - let vkCmdSetCullModeEXT(commandBuffer : VkCommandBuffer, cullMode : VkCullModeFlags) = Loader.vkCmdSetCullModeEXT.Invoke(commandBuffer, cullMode) - let vkCmdSetFrontFaceEXT(commandBuffer : VkCommandBuffer, frontFace : VkFrontFace) = Loader.vkCmdSetFrontFaceEXT.Invoke(commandBuffer, frontFace) - let vkCmdSetPrimitiveTopologyEXT(commandBuffer : VkCommandBuffer, primitiveTopology : VkPrimitiveTopology) = Loader.vkCmdSetPrimitiveTopologyEXT.Invoke(commandBuffer, primitiveTopology) - let vkCmdSetViewportWithCountEXT(commandBuffer : VkCommandBuffer, viewportCount : uint32, pViewports : nativeptr) = Loader.vkCmdSetViewportWithCountEXT.Invoke(commandBuffer, viewportCount, pViewports) - let vkCmdSetScissorWithCountEXT(commandBuffer : VkCommandBuffer, scissorCount : uint32, pScissors : nativeptr) = Loader.vkCmdSetScissorWithCountEXT.Invoke(commandBuffer, scissorCount, pScissors) - let vkCmdBindVertexBuffers2EXT(commandBuffer : VkCommandBuffer, firstBinding : uint32, bindingCount : uint32, pBuffers : nativeptr, pOffsets : nativeptr, pSizes : nativeptr, pStrides : nativeptr) = Loader.vkCmdBindVertexBuffers2EXT.Invoke(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) - let vkCmdSetDepthTestEnableEXT(commandBuffer : VkCommandBuffer, depthTestEnable : VkBool32) = Loader.vkCmdSetDepthTestEnableEXT.Invoke(commandBuffer, depthTestEnable) - let vkCmdSetDepthWriteEnableEXT(commandBuffer : VkCommandBuffer, depthWriteEnable : VkBool32) = Loader.vkCmdSetDepthWriteEnableEXT.Invoke(commandBuffer, depthWriteEnable) - let vkCmdSetDepthCompareOpEXT(commandBuffer : VkCommandBuffer, depthCompareOp : VkCompareOp) = Loader.vkCmdSetDepthCompareOpEXT.Invoke(commandBuffer, depthCompareOp) - let vkCmdSetDepthBoundsTestEnableEXT(commandBuffer : VkCommandBuffer, depthBoundsTestEnable : VkBool32) = Loader.vkCmdSetDepthBoundsTestEnableEXT.Invoke(commandBuffer, depthBoundsTestEnable) - let vkCmdSetStencilTestEnableEXT(commandBuffer : VkCommandBuffer, stencilTestEnable : VkBool32) = Loader.vkCmdSetStencilTestEnableEXT.Invoke(commandBuffer, stencilTestEnable) - let vkCmdSetStencilOpEXT(commandBuffer : VkCommandBuffer, faceMask : VkStencilFaceFlags, failOp : VkStencilOp, passOp : VkStencilOp, depthFailOp : VkStencilOp, compareOp : VkCompareOp) = Loader.vkCmdSetStencilOpEXT.Invoke(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) + new(description : String256, vendorFaultCode : uint64, vendorFaultData : uint64) = + { + description = description + vendorFaultCode = vendorFaultCode + vendorFaultData = vendorFaultData + } -module EXTExtendedDynamicState2 = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_EXT_extended_dynamic_state2" - let Number = 378 + member x.IsEmpty = + x.description = Unchecked.defaultof && x.vendorFaultCode = Unchecked.defaultof && x.vendorFaultData = Unchecked.defaultof - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] + static member Empty = + VkDeviceFaultVendorInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + override x.ToString() = + String.concat "; " [ + sprintf "description = %A" x.description + sprintf "vendorFaultCode = %A" x.vendorFaultCode + sprintf "vendorFaultData = %A" x.vendorFaultData + ] |> sprintf "VkDeviceFaultVendorInfoEXT { %s }" + end [] - type VkPhysicalDeviceExtendedDynamicState2FeaturesEXT = + type VkDeviceFaultInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public extendedDynamicState2 : VkBool32 - val mutable public extendedDynamicState2LogicOp : VkBool32 - val mutable public extendedDynamicState2PatchControlPoints : VkBool32 + val mutable public description : String256 + val mutable public pAddressInfos : nativeptr + val mutable public pVendorInfos : nativeptr + val mutable public pVendorBinaryData : nativeint - new(pNext : nativeint, extendedDynamicState2 : VkBool32, extendedDynamicState2LogicOp : VkBool32, extendedDynamicState2PatchControlPoints : VkBool32) = + new(pNext : nativeint, description : String256, pAddressInfos : nativeptr, pVendorInfos : nativeptr, pVendorBinaryData : nativeint) = { - sType = 1000377000u + sType = 1000341002u pNext = pNext - extendedDynamicState2 = extendedDynamicState2 - extendedDynamicState2LogicOp = extendedDynamicState2LogicOp - extendedDynamicState2PatchControlPoints = extendedDynamicState2PatchControlPoints + description = description + pAddressInfos = pAddressInfos + pVendorInfos = pVendorInfos + pVendorBinaryData = pVendorBinaryData } - new(extendedDynamicState2 : VkBool32, extendedDynamicState2LogicOp : VkBool32, extendedDynamicState2PatchControlPoints : VkBool32) = - VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(Unchecked.defaultof, extendedDynamicState2, extendedDynamicState2LogicOp, extendedDynamicState2PatchControlPoints) + new(description : String256, pAddressInfos : nativeptr, pVendorInfos : nativeptr, pVendorBinaryData : nativeint) = + VkDeviceFaultInfoEXT(Unchecked.defaultof, description, pAddressInfos, pVendorInfos, pVendorBinaryData) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.extendedDynamicState2 = Unchecked.defaultof && x.extendedDynamicState2LogicOp = Unchecked.defaultof && x.extendedDynamicState2PatchControlPoints = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.description = Unchecked.defaultof && x.pAddressInfos = Unchecked.defaultof> && x.pVendorInfos = Unchecked.defaultof> && x.pVendorBinaryData = Unchecked.defaultof static member Empty = - VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkDeviceFaultInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof>, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "extendedDynamicState2 = %A" x.extendedDynamicState2 - sprintf "extendedDynamicState2LogicOp = %A" x.extendedDynamicState2LogicOp - sprintf "extendedDynamicState2PatchControlPoints = %A" x.extendedDynamicState2PatchControlPoints - ] |> sprintf "VkPhysicalDeviceExtendedDynamicState2FeaturesEXT { %s }" + sprintf "description = %A" x.description + sprintf "pAddressInfos = %A" x.pAddressInfos + sprintf "pVendorInfos = %A" x.pVendorInfos + sprintf "pVendorBinaryData = %A" x.pVendorBinaryData + ] |> sprintf "VkDeviceFaultInfoEXT { %s }" end + [] + type VkDeviceFaultVendorBinaryHeaderVersionOneEXT = + struct + val mutable public headerSize : uint32 + val mutable public headerVersion : VkDeviceFaultVendorBinaryHeaderVersionEXT + val mutable public vendorID : uint32 + val mutable public deviceID : uint32 + val mutable public driverVersion : uint32 + val mutable public pipelineCacheUUID : Guid + val mutable public applicationNameOffset : uint32 + val mutable public applicationVersion : uint32 + val mutable public engineNameOffset : uint32 + val mutable public engineVersion : uint32 + val mutable public apiVersion : uint32 - [] - module EnumExtensions = - type VkDynamicState with - /// Not promoted to 1.3 - static member inline PatchControlPointsExt = unbox 1000377000 - static member inline RasterizerDiscardEnableExt = unbox 1000377001 - static member inline DepthBiasEnableExt = unbox 1000377002 - /// Not promoted to 1.3 - static member inline LogicOpExt = unbox 1000377003 - static member inline PrimitiveRestartEnableExt = unbox 1000377004 - - module VkRaw = - [] - type VkCmdSetPatchControlPointsEXTDel = delegate of VkCommandBuffer * uint32 -> unit - [] - type VkCmdSetRasterizerDiscardEnableEXTDel = delegate of VkCommandBuffer * VkBool32 -> unit - [] - type VkCmdSetDepthBiasEnableEXTDel = delegate of VkCommandBuffer * VkBool32 -> unit - [] - type VkCmdSetLogicOpEXTDel = delegate of VkCommandBuffer * VkLogicOp -> unit - [] - type VkCmdSetPrimitiveRestartEnableEXTDel = delegate of VkCommandBuffer * VkBool32 -> unit - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading EXTExtendedDynamicState2") - static let s_vkCmdSetPatchControlPointsEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetPatchControlPointsEXT" - static let s_vkCmdSetRasterizerDiscardEnableEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetRasterizerDiscardEnableEXT" - static let s_vkCmdSetDepthBiasEnableEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetDepthBiasEnableEXT" - static let s_vkCmdSetLogicOpEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetLogicOpEXT" - static let s_vkCmdSetPrimitiveRestartEnableEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetPrimitiveRestartEnableEXT" - static do Report.End(3) |> ignore - static member vkCmdSetPatchControlPointsEXT = s_vkCmdSetPatchControlPointsEXTDel - static member vkCmdSetRasterizerDiscardEnableEXT = s_vkCmdSetRasterizerDiscardEnableEXTDel - static member vkCmdSetDepthBiasEnableEXT = s_vkCmdSetDepthBiasEnableEXTDel - static member vkCmdSetLogicOpEXT = s_vkCmdSetLogicOpEXTDel - static member vkCmdSetPrimitiveRestartEnableEXT = s_vkCmdSetPrimitiveRestartEnableEXTDel - let vkCmdSetPatchControlPointsEXT(commandBuffer : VkCommandBuffer, patchControlPoints : uint32) = Loader.vkCmdSetPatchControlPointsEXT.Invoke(commandBuffer, patchControlPoints) - let vkCmdSetRasterizerDiscardEnableEXT(commandBuffer : VkCommandBuffer, rasterizerDiscardEnable : VkBool32) = Loader.vkCmdSetRasterizerDiscardEnableEXT.Invoke(commandBuffer, rasterizerDiscardEnable) - let vkCmdSetDepthBiasEnableEXT(commandBuffer : VkCommandBuffer, depthBiasEnable : VkBool32) = Loader.vkCmdSetDepthBiasEnableEXT.Invoke(commandBuffer, depthBiasEnable) - let vkCmdSetLogicOpEXT(commandBuffer : VkCommandBuffer, logicOp : VkLogicOp) = Loader.vkCmdSetLogicOpEXT.Invoke(commandBuffer, logicOp) - let vkCmdSetPrimitiveRestartEnableEXT(commandBuffer : VkCommandBuffer, primitiveRestartEnable : VkBool32) = Loader.vkCmdSetPrimitiveRestartEnableEXT.Invoke(commandBuffer, primitiveRestartEnable) + new(headerSize : uint32, headerVersion : VkDeviceFaultVendorBinaryHeaderVersionEXT, vendorID : uint32, deviceID : uint32, driverVersion : uint32, pipelineCacheUUID : Guid, applicationNameOffset : uint32, applicationVersion : uint32, engineNameOffset : uint32, engineVersion : uint32, apiVersion : uint32) = + { + headerSize = headerSize + headerVersion = headerVersion + vendorID = vendorID + deviceID = deviceID + driverVersion = driverVersion + pipelineCacheUUID = pipelineCacheUUID + applicationNameOffset = applicationNameOffset + applicationVersion = applicationVersion + engineNameOffset = engineNameOffset + engineVersion = engineVersion + apiVersion = apiVersion + } -module KHRExternalMemoryFd = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRExternalMemory - open KHRExternalMemoryCapabilities - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_KHR_external_memory_fd" - let Number = 75 + member x.IsEmpty = + x.headerSize = Unchecked.defaultof && x.headerVersion = Unchecked.defaultof && x.vendorID = Unchecked.defaultof && x.deviceID = Unchecked.defaultof && x.driverVersion = Unchecked.defaultof && x.pipelineCacheUUID = Unchecked.defaultof && x.applicationNameOffset = Unchecked.defaultof && x.applicationVersion = Unchecked.defaultof && x.engineNameOffset = Unchecked.defaultof && x.engineVersion = Unchecked.defaultof && x.apiVersion = Unchecked.defaultof - let Required = [ KHRExternalMemory.Name ] + static member Empty = + VkDeviceFaultVendorBinaryHeaderVersionOneEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + override x.ToString() = + String.concat "; " [ + sprintf "headerSize = %A" x.headerSize + sprintf "headerVersion = %A" x.headerVersion + sprintf "vendorID = %A" x.vendorID + sprintf "deviceID = %A" x.deviceID + sprintf "driverVersion = %A" x.driverVersion + sprintf "pipelineCacheUUID = %A" x.pipelineCacheUUID + sprintf "applicationNameOffset = %A" x.applicationNameOffset + sprintf "applicationVersion = %A" x.applicationVersion + sprintf "engineNameOffset = %A" x.engineNameOffset + sprintf "engineVersion = %A" x.engineVersion + sprintf "apiVersion = %A" x.apiVersion + ] |> sprintf "VkDeviceFaultVendorBinaryHeaderVersionOneEXT { %s }" + end [] - type VkImportMemoryFdInfoKHR = + type VkPhysicalDeviceFaultFeaturesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public handleType : VkExternalMemoryHandleTypeFlags - val mutable public fd : int + val mutable public deviceFault : VkBool32 + val mutable public deviceFaultVendorBinary : VkBool32 - new(pNext : nativeint, handleType : VkExternalMemoryHandleTypeFlags, fd : int) = + new(pNext : nativeint, deviceFault : VkBool32, deviceFaultVendorBinary : VkBool32) = { - sType = 1000074000u + sType = 1000341000u pNext = pNext - handleType = handleType - fd = fd + deviceFault = deviceFault + deviceFaultVendorBinary = deviceFaultVendorBinary } - new(handleType : VkExternalMemoryHandleTypeFlags, fd : int) = - VkImportMemoryFdInfoKHR(Unchecked.defaultof, handleType, fd) + new(deviceFault : VkBool32, deviceFaultVendorBinary : VkBool32) = + VkPhysicalDeviceFaultFeaturesEXT(Unchecked.defaultof, deviceFault, deviceFaultVendorBinary) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.handleType = Unchecked.defaultof && x.fd = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.deviceFault = Unchecked.defaultof && x.deviceFaultVendorBinary = Unchecked.defaultof static member Empty = - VkImportMemoryFdInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceFaultFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "handleType = %A" x.handleType - sprintf "fd = %A" x.fd - ] |> sprintf "VkImportMemoryFdInfoKHR { %s }" + sprintf "deviceFault = %A" x.deviceFault + sprintf "deviceFaultVendorBinary = %A" x.deviceFaultVendorBinary + ] |> sprintf "VkPhysicalDeviceFaultFeaturesEXT { %s }" end + + module VkRaw = + [] + type VkGetDeviceFaultInfoEXTDel = delegate of VkDevice * nativeptr * nativeptr -> VkResult + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTDeviceFault") + static let s_vkGetDeviceFaultInfoEXTDel = VkRaw.vkImportInstanceDelegate "vkGetDeviceFaultInfoEXT" + static do Report.End(3) |> ignore + static member vkGetDeviceFaultInfoEXT = s_vkGetDeviceFaultInfoEXTDel + let vkGetDeviceFaultInfoEXT(device : VkDevice, pFaultCounts : nativeptr, pFaultInfo : nativeptr) = Loader.vkGetDeviceFaultInfoEXT.Invoke(device, pFaultCounts, pFaultInfo) + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module EXTDeviceMemoryReport = + let Type = ExtensionType.Device + let Name = "VK_EXT_device_memory_report" + let Number = 285 + + type PFN_vkDeviceMemoryReportCallbackEXT = nativeint + + type VkDeviceMemoryReportEventTypeEXT = + | Allocate = 0 + | Free = 1 + | Import = 2 + | Unimport = 3 + | AllocationFailed = 4 + + [] - type VkMemoryFdPropertiesKHR = + type VkDeviceDeviceMemoryReportCreateInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public memoryTypeBits : uint32 + val mutable public flags : VkDeviceMemoryReportFlagsEXT + val mutable public pfnUserCallback : PFN_vkDeviceMemoryReportCallbackEXT + val mutable public pUserData : nativeint - new(pNext : nativeint, memoryTypeBits : uint32) = + new(pNext : nativeint, flags : VkDeviceMemoryReportFlagsEXT, pfnUserCallback : PFN_vkDeviceMemoryReportCallbackEXT, pUserData : nativeint) = { - sType = 1000074001u + sType = 1000284001u pNext = pNext - memoryTypeBits = memoryTypeBits + flags = flags + pfnUserCallback = pfnUserCallback + pUserData = pUserData } - new(memoryTypeBits : uint32) = - VkMemoryFdPropertiesKHR(Unchecked.defaultof, memoryTypeBits) + new(flags : VkDeviceMemoryReportFlagsEXT, pfnUserCallback : PFN_vkDeviceMemoryReportCallbackEXT, pUserData : nativeint) = + VkDeviceDeviceMemoryReportCreateInfoEXT(Unchecked.defaultof, flags, pfnUserCallback, pUserData) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.memoryTypeBits = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.pfnUserCallback = Unchecked.defaultof && x.pUserData = Unchecked.defaultof static member Empty = - VkMemoryFdPropertiesKHR(Unchecked.defaultof, Unchecked.defaultof) + VkDeviceDeviceMemoryReportCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "memoryTypeBits = %A" x.memoryTypeBits - ] |> sprintf "VkMemoryFdPropertiesKHR { %s }" + sprintf "flags = %A" x.flags + sprintf "pfnUserCallback = %A" x.pfnUserCallback + sprintf "pUserData = %A" x.pUserData + ] |> sprintf "VkDeviceDeviceMemoryReportCreateInfoEXT { %s }" end [] - type VkMemoryGetFdInfoKHR = + type VkDeviceMemoryReportCallbackDataEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public memory : VkDeviceMemory - val mutable public handleType : VkExternalMemoryHandleTypeFlags + val mutable public flags : VkDeviceMemoryReportFlagsEXT + val mutable public _type : VkDeviceMemoryReportEventTypeEXT + val mutable public memoryObjectId : uint64 + val mutable public size : VkDeviceSize + val mutable public objectType : VkObjectType + val mutable public objectHandle : uint64 + val mutable public heapIndex : uint32 - new(pNext : nativeint, memory : VkDeviceMemory, handleType : VkExternalMemoryHandleTypeFlags) = + new(pNext : nativeint, flags : VkDeviceMemoryReportFlagsEXT, _type : VkDeviceMemoryReportEventTypeEXT, memoryObjectId : uint64, size : VkDeviceSize, objectType : VkObjectType, objectHandle : uint64, heapIndex : uint32) = { - sType = 1000074002u + sType = 1000284002u pNext = pNext - memory = memory - handleType = handleType + flags = flags + _type = _type + memoryObjectId = memoryObjectId + size = size + objectType = objectType + objectHandle = objectHandle + heapIndex = heapIndex } - new(memory : VkDeviceMemory, handleType : VkExternalMemoryHandleTypeFlags) = - VkMemoryGetFdInfoKHR(Unchecked.defaultof, memory, handleType) + new(flags : VkDeviceMemoryReportFlagsEXT, _type : VkDeviceMemoryReportEventTypeEXT, memoryObjectId : uint64, size : VkDeviceSize, objectType : VkObjectType, objectHandle : uint64, heapIndex : uint32) = + VkDeviceMemoryReportCallbackDataEXT(Unchecked.defaultof, flags, _type, memoryObjectId, size, objectType, objectHandle, heapIndex) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.memory = Unchecked.defaultof && x.handleType = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x._type = Unchecked.defaultof && x.memoryObjectId = Unchecked.defaultof && x.size = Unchecked.defaultof && x.objectType = Unchecked.defaultof && x.objectHandle = Unchecked.defaultof && x.heapIndex = Unchecked.defaultof static member Empty = - VkMemoryGetFdInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkDeviceMemoryReportCallbackDataEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "memory = %A" x.memory - sprintf "handleType = %A" x.handleType - ] |> sprintf "VkMemoryGetFdInfoKHR { %s }" + sprintf "flags = %A" x.flags + sprintf "_type = %A" x._type + sprintf "memoryObjectId = %A" x.memoryObjectId + sprintf "size = %A" x.size + sprintf "objectType = %A" x.objectType + sprintf "objectHandle = %A" x.objectHandle + sprintf "heapIndex = %A" x.heapIndex + ] |> sprintf "VkDeviceMemoryReportCallbackDataEXT { %s }" end - - module VkRaw = - [] - type VkGetMemoryFdKHRDel = delegate of VkDevice * nativeptr * nativeptr -> VkResult - [] - type VkGetMemoryFdPropertiesKHRDel = delegate of VkDevice * VkExternalMemoryHandleTypeFlags * int * nativeptr -> VkResult - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRExternalMemoryFd") - static let s_vkGetMemoryFdKHRDel = VkRaw.vkImportInstanceDelegate "vkGetMemoryFdKHR" - static let s_vkGetMemoryFdPropertiesKHRDel = VkRaw.vkImportInstanceDelegate "vkGetMemoryFdPropertiesKHR" - static do Report.End(3) |> ignore - static member vkGetMemoryFdKHR = s_vkGetMemoryFdKHRDel - static member vkGetMemoryFdPropertiesKHR = s_vkGetMemoryFdPropertiesKHRDel - let vkGetMemoryFdKHR(device : VkDevice, pGetFdInfo : nativeptr, pFd : nativeptr) = Loader.vkGetMemoryFdKHR.Invoke(device, pGetFdInfo, pFd) - let vkGetMemoryFdPropertiesKHR(device : VkDevice, handleType : VkExternalMemoryHandleTypeFlags, fd : int, pMemoryFdProperties : nativeptr) = Loader.vkGetMemoryFdPropertiesKHR.Invoke(device, handleType, fd, pMemoryFdProperties) - -module EXTExternalMemoryDmaBuf = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRExternalMemory - open KHRExternalMemoryCapabilities - open KHRExternalMemoryFd - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_EXT_external_memory_dma_buf" - let Number = 126 - - let Required = [ KHRExternalMemoryFd.Name ] - - - [] - module EnumExtensions = - type VkExternalMemoryHandleTypeFlags with - static member inline DmaBufBitExt = unbox 0x00000200 - - -module EXTExternalMemoryHost = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRExternalMemory - open KHRExternalMemoryCapabilities - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_EXT_external_memory_host" - let Number = 179 - - let Required = [ KHRExternalMemory.Name ] - - [] - type VkImportMemoryHostPointerInfoEXT = + type VkPhysicalDeviceDeviceMemoryReportFeaturesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public handleType : VkExternalMemoryHandleTypeFlags - val mutable public pHostPointer : nativeint + val mutable public deviceMemoryReport : VkBool32 - new(pNext : nativeint, handleType : VkExternalMemoryHandleTypeFlags, pHostPointer : nativeint) = + new(pNext : nativeint, deviceMemoryReport : VkBool32) = { - sType = 1000178000u + sType = 1000284000u pNext = pNext - handleType = handleType - pHostPointer = pHostPointer + deviceMemoryReport = deviceMemoryReport } - new(handleType : VkExternalMemoryHandleTypeFlags, pHostPointer : nativeint) = - VkImportMemoryHostPointerInfoEXT(Unchecked.defaultof, handleType, pHostPointer) + new(deviceMemoryReport : VkBool32) = + VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(Unchecked.defaultof, deviceMemoryReport) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.handleType = Unchecked.defaultof && x.pHostPointer = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.deviceMemoryReport = Unchecked.defaultof static member Empty = - VkImportMemoryHostPointerInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "handleType = %A" x.handleType - sprintf "pHostPointer = %A" x.pHostPointer - ] |> sprintf "VkImportMemoryHostPointerInfoEXT { %s }" + sprintf "deviceMemoryReport = %A" x.deviceMemoryReport + ] |> sprintf "VkPhysicalDeviceDeviceMemoryReportFeaturesEXT { %s }" end + + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module EXTDiscardRectangles = + let Type = ExtensionType.Device + let Name = "VK_EXT_discard_rectangles" + let Number = 100 + + type VkDiscardRectangleModeEXT = + | Inclusive = 0 + | Exclusive = 1 + + [] - type VkMemoryHostPointerPropertiesEXT = + type VkPhysicalDeviceDiscardRectanglePropertiesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public memoryTypeBits : uint32 + val mutable public maxDiscardRectangles : uint32 - new(pNext : nativeint, memoryTypeBits : uint32) = + new(pNext : nativeint, maxDiscardRectangles : uint32) = { - sType = 1000178001u + sType = 1000099000u pNext = pNext - memoryTypeBits = memoryTypeBits + maxDiscardRectangles = maxDiscardRectangles } - new(memoryTypeBits : uint32) = - VkMemoryHostPointerPropertiesEXT(Unchecked.defaultof, memoryTypeBits) + new(maxDiscardRectangles : uint32) = + VkPhysicalDeviceDiscardRectanglePropertiesEXT(Unchecked.defaultof, maxDiscardRectangles) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.memoryTypeBits = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.maxDiscardRectangles = Unchecked.defaultof static member Empty = - VkMemoryHostPointerPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceDiscardRectanglePropertiesEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "memoryTypeBits = %A" x.memoryTypeBits - ] |> sprintf "VkMemoryHostPointerPropertiesEXT { %s }" + sprintf "maxDiscardRectangles = %A" x.maxDiscardRectangles + ] |> sprintf "VkPhysicalDeviceDiscardRectanglePropertiesEXT { %s }" end [] - type VkPhysicalDeviceExternalMemoryHostPropertiesEXT = + type VkPipelineDiscardRectangleStateCreateInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public minImportedHostPointerAlignment : VkDeviceSize + val mutable public flags : VkPipelineDiscardRectangleStateCreateFlagsEXT + val mutable public discardRectangleMode : VkDiscardRectangleModeEXT + val mutable public discardRectangleCount : uint32 + val mutable public pDiscardRectangles : nativeptr - new(pNext : nativeint, minImportedHostPointerAlignment : VkDeviceSize) = + new(pNext : nativeint, flags : VkPipelineDiscardRectangleStateCreateFlagsEXT, discardRectangleMode : VkDiscardRectangleModeEXT, discardRectangleCount : uint32, pDiscardRectangles : nativeptr) = { - sType = 1000178002u + sType = 1000099001u pNext = pNext - minImportedHostPointerAlignment = minImportedHostPointerAlignment + flags = flags + discardRectangleMode = discardRectangleMode + discardRectangleCount = discardRectangleCount + pDiscardRectangles = pDiscardRectangles } - new(minImportedHostPointerAlignment : VkDeviceSize) = - VkPhysicalDeviceExternalMemoryHostPropertiesEXT(Unchecked.defaultof, minImportedHostPointerAlignment) + new(flags : VkPipelineDiscardRectangleStateCreateFlagsEXT, discardRectangleMode : VkDiscardRectangleModeEXT, discardRectangleCount : uint32, pDiscardRectangles : nativeptr) = + VkPipelineDiscardRectangleStateCreateInfoEXT(Unchecked.defaultof, flags, discardRectangleMode, discardRectangleCount, pDiscardRectangles) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.minImportedHostPointerAlignment = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.discardRectangleMode = Unchecked.defaultof && x.discardRectangleCount = Unchecked.defaultof && x.pDiscardRectangles = Unchecked.defaultof> static member Empty = - VkPhysicalDeviceExternalMemoryHostPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof) + VkPipelineDiscardRectangleStateCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "minImportedHostPointerAlignment = %A" x.minImportedHostPointerAlignment - ] |> sprintf "VkPhysicalDeviceExternalMemoryHostPropertiesEXT { %s }" + sprintf "flags = %A" x.flags + sprintf "discardRectangleMode = %A" x.discardRectangleMode + sprintf "discardRectangleCount = %A" x.discardRectangleCount + sprintf "pDiscardRectangles = %A" x.pDiscardRectangles + ] |> sprintf "VkPipelineDiscardRectangleStateCreateInfoEXT { %s }" end [] module EnumExtensions = - type VkExternalMemoryHandleTypeFlags with - static member inline HostAllocationBitExt = unbox 0x00000080 - static member inline HostMappedForeignMemoryBitExt = unbox 0x00000100 + type VkDynamicState with + static member inline DiscardRectangleExt = unbox 1000099000 + static member inline DiscardRectangleEnableExt = unbox 1000099001 + static member inline DiscardRectangleModeExt = unbox 1000099002 module VkRaw = [] - type VkGetMemoryHostPointerPropertiesEXTDel = delegate of VkDevice * VkExternalMemoryHandleTypeFlags * nativeint * nativeptr -> VkResult + type VkCmdSetDiscardRectangleEXTDel = delegate of VkCommandBuffer * uint32 * uint32 * nativeptr -> unit + [] + type VkCmdSetDiscardRectangleEnableEXTDel = delegate of VkCommandBuffer * VkBool32 -> unit + [] + type VkCmdSetDiscardRectangleModeEXTDel = delegate of VkCommandBuffer * VkDiscardRectangleModeEXT -> unit [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading EXTExternalMemoryHost") - static let s_vkGetMemoryHostPointerPropertiesEXTDel = VkRaw.vkImportInstanceDelegate "vkGetMemoryHostPointerPropertiesEXT" + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTDiscardRectangles") + static let s_vkCmdSetDiscardRectangleEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetDiscardRectangleEXT" + static let s_vkCmdSetDiscardRectangleEnableEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetDiscardRectangleEnableEXT" + static let s_vkCmdSetDiscardRectangleModeEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetDiscardRectangleModeEXT" static do Report.End(3) |> ignore - static member vkGetMemoryHostPointerPropertiesEXT = s_vkGetMemoryHostPointerPropertiesEXTDel - let vkGetMemoryHostPointerPropertiesEXT(device : VkDevice, handleType : VkExternalMemoryHandleTypeFlags, pHostPointer : nativeint, pMemoryHostPointerProperties : nativeptr) = Loader.vkGetMemoryHostPointerPropertiesEXT.Invoke(device, handleType, pHostPointer, pMemoryHostPointerProperties) + static member vkCmdSetDiscardRectangleEXT = s_vkCmdSetDiscardRectangleEXTDel + static member vkCmdSetDiscardRectangleEnableEXT = s_vkCmdSetDiscardRectangleEnableEXTDel + static member vkCmdSetDiscardRectangleModeEXT = s_vkCmdSetDiscardRectangleModeEXTDel + let vkCmdSetDiscardRectangleEXT(commandBuffer : VkCommandBuffer, firstDiscardRectangle : uint32, discardRectangleCount : uint32, pDiscardRectangles : nativeptr) = Loader.vkCmdSetDiscardRectangleEXT.Invoke(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles) + let vkCmdSetDiscardRectangleEnableEXT(commandBuffer : VkCommandBuffer, discardRectangleEnable : VkBool32) = Loader.vkCmdSetDiscardRectangleEnableEXT.Invoke(commandBuffer, discardRectangleEnable) + let vkCmdSetDiscardRectangleModeEXT(commandBuffer : VkCommandBuffer, discardRectangleMode : VkDiscardRectangleModeEXT) = Loader.vkCmdSetDiscardRectangleModeEXT.Invoke(commandBuffer, discardRectangleMode) -module EXTFilterCubic = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_EXT_filter_cubic" - let Number = 171 +/// Requires KHRSurface. +module KHRDisplay = + let Type = ExtensionType.Instance + let Name = "VK_KHR_display" + let Number = 3 [] - type VkFilterCubicImageViewImageFormatPropertiesEXT = + type VkDisplayKHR = + struct + val mutable public Handle : uint64 + new(h) = { Handle = h } + static member Null = VkDisplayKHR(0UL) + member x.IsNull = x.Handle = 0UL + member x.IsValid = x.Handle <> 0UL + end + + [] + type VkDisplayModeKHR = + struct + val mutable public Handle : uint64 + new(h) = { Handle = h } + static member Null = VkDisplayModeKHR(0UL) + member x.IsNull = x.Handle = 0UL + member x.IsValid = x.Handle <> 0UL + end + + [] + type VkDisplayPlaneAlphaFlagsKHR = + | All = 15 + | None = 0 + | OpaqueBit = 0x00000001 + | GlobalBit = 0x00000002 + | PerPixelBit = 0x00000004 + | PerPixelPremultipliedBit = 0x00000008 + + type VkSurfaceTransformFlagsKHR = KHRSurface.VkSurfaceTransformFlagsKHR + + [] + type VkDisplayModeParametersKHR = + struct + val mutable public visibleRegion : VkExtent2D + val mutable public refreshRate : uint32 + + new(visibleRegion : VkExtent2D, refreshRate : uint32) = + { + visibleRegion = visibleRegion + refreshRate = refreshRate + } + + member x.IsEmpty = + x.visibleRegion = Unchecked.defaultof && x.refreshRate = Unchecked.defaultof + + static member Empty = + VkDisplayModeParametersKHR(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "visibleRegion = %A" x.visibleRegion + sprintf "refreshRate = %A" x.refreshRate + ] |> sprintf "VkDisplayModeParametersKHR { %s }" + end + + [] + type VkDisplayModeCreateInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public filterCubic : VkBool32 - val mutable public filterCubicMinmax : VkBool32 + val mutable public flags : VkDisplayModeCreateFlagsKHR + val mutable public parameters : VkDisplayModeParametersKHR - new(pNext : nativeint, filterCubic : VkBool32, filterCubicMinmax : VkBool32) = + new(pNext : nativeint, flags : VkDisplayModeCreateFlagsKHR, parameters : VkDisplayModeParametersKHR) = { - sType = 1000170001u + sType = 1000002000u pNext = pNext - filterCubic = filterCubic - filterCubicMinmax = filterCubicMinmax + flags = flags + parameters = parameters } - new(filterCubic : VkBool32, filterCubicMinmax : VkBool32) = - VkFilterCubicImageViewImageFormatPropertiesEXT(Unchecked.defaultof, filterCubic, filterCubicMinmax) + new(flags : VkDisplayModeCreateFlagsKHR, parameters : VkDisplayModeParametersKHR) = + VkDisplayModeCreateInfoKHR(Unchecked.defaultof, flags, parameters) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.filterCubic = Unchecked.defaultof && x.filterCubicMinmax = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.parameters = Unchecked.defaultof static member Empty = - VkFilterCubicImageViewImageFormatPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkDisplayModeCreateInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "filterCubic = %A" x.filterCubic - sprintf "filterCubicMinmax = %A" x.filterCubicMinmax - ] |> sprintf "VkFilterCubicImageViewImageFormatPropertiesEXT { %s }" + sprintf "flags = %A" x.flags + sprintf "parameters = %A" x.parameters + ] |> sprintf "VkDisplayModeCreateInfoKHR { %s }" + end + + [] + type VkDisplayModePropertiesKHR = + struct + val mutable public displayMode : VkDisplayModeKHR + val mutable public parameters : VkDisplayModeParametersKHR + + new(displayMode : VkDisplayModeKHR, parameters : VkDisplayModeParametersKHR) = + { + displayMode = displayMode + parameters = parameters + } + + member x.IsEmpty = + x.displayMode = Unchecked.defaultof && x.parameters = Unchecked.defaultof + + static member Empty = + VkDisplayModePropertiesKHR(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "displayMode = %A" x.displayMode + sprintf "parameters = %A" x.parameters + ] |> sprintf "VkDisplayModePropertiesKHR { %s }" + end + + [] + type VkDisplayPlaneCapabilitiesKHR = + struct + val mutable public supportedAlpha : VkDisplayPlaneAlphaFlagsKHR + val mutable public minSrcPosition : VkOffset2D + val mutable public maxSrcPosition : VkOffset2D + val mutable public minSrcExtent : VkExtent2D + val mutable public maxSrcExtent : VkExtent2D + val mutable public minDstPosition : VkOffset2D + val mutable public maxDstPosition : VkOffset2D + val mutable public minDstExtent : VkExtent2D + val mutable public maxDstExtent : VkExtent2D + + new(supportedAlpha : VkDisplayPlaneAlphaFlagsKHR, minSrcPosition : VkOffset2D, maxSrcPosition : VkOffset2D, minSrcExtent : VkExtent2D, maxSrcExtent : VkExtent2D, minDstPosition : VkOffset2D, maxDstPosition : VkOffset2D, minDstExtent : VkExtent2D, maxDstExtent : VkExtent2D) = + { + supportedAlpha = supportedAlpha + minSrcPosition = minSrcPosition + maxSrcPosition = maxSrcPosition + minSrcExtent = minSrcExtent + maxSrcExtent = maxSrcExtent + minDstPosition = minDstPosition + maxDstPosition = maxDstPosition + minDstExtent = minDstExtent + maxDstExtent = maxDstExtent + } + + member x.IsEmpty = + x.supportedAlpha = Unchecked.defaultof && x.minSrcPosition = Unchecked.defaultof && x.maxSrcPosition = Unchecked.defaultof && x.minSrcExtent = Unchecked.defaultof && x.maxSrcExtent = Unchecked.defaultof && x.minDstPosition = Unchecked.defaultof && x.maxDstPosition = Unchecked.defaultof && x.minDstExtent = Unchecked.defaultof && x.maxDstExtent = Unchecked.defaultof + + static member Empty = + VkDisplayPlaneCapabilitiesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "supportedAlpha = %A" x.supportedAlpha + sprintf "minSrcPosition = %A" x.minSrcPosition + sprintf "maxSrcPosition = %A" x.maxSrcPosition + sprintf "minSrcExtent = %A" x.minSrcExtent + sprintf "maxSrcExtent = %A" x.maxSrcExtent + sprintf "minDstPosition = %A" x.minDstPosition + sprintf "maxDstPosition = %A" x.maxDstPosition + sprintf "minDstExtent = %A" x.minDstExtent + sprintf "maxDstExtent = %A" x.maxDstExtent + ] |> sprintf "VkDisplayPlaneCapabilitiesKHR { %s }" + end + + [] + type VkDisplayPlanePropertiesKHR = + struct + val mutable public currentDisplay : VkDisplayKHR + val mutable public currentStackIndex : uint32 + + new(currentDisplay : VkDisplayKHR, currentStackIndex : uint32) = + { + currentDisplay = currentDisplay + currentStackIndex = currentStackIndex + } + + member x.IsEmpty = + x.currentDisplay = Unchecked.defaultof && x.currentStackIndex = Unchecked.defaultof + + static member Empty = + VkDisplayPlanePropertiesKHR(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "currentDisplay = %A" x.currentDisplay + sprintf "currentStackIndex = %A" x.currentStackIndex + ] |> sprintf "VkDisplayPlanePropertiesKHR { %s }" + end + + [] + type VkDisplayPropertiesKHR = + struct + val mutable public display : VkDisplayKHR + val mutable public displayName : cstr + val mutable public physicalDimensions : VkExtent2D + val mutable public physicalResolution : VkExtent2D + val mutable public supportedTransforms : KHRSurface.VkSurfaceTransformFlagsKHR + val mutable public planeReorderPossible : VkBool32 + val mutable public persistentContent : VkBool32 + + new(display : VkDisplayKHR, displayName : cstr, physicalDimensions : VkExtent2D, physicalResolution : VkExtent2D, supportedTransforms : KHRSurface.VkSurfaceTransformFlagsKHR, planeReorderPossible : VkBool32, persistentContent : VkBool32) = + { + display = display + displayName = displayName + physicalDimensions = physicalDimensions + physicalResolution = physicalResolution + supportedTransforms = supportedTransforms + planeReorderPossible = planeReorderPossible + persistentContent = persistentContent + } + + member x.IsEmpty = + x.display = Unchecked.defaultof && x.displayName = Unchecked.defaultof && x.physicalDimensions = Unchecked.defaultof && x.physicalResolution = Unchecked.defaultof && x.supportedTransforms = Unchecked.defaultof && x.planeReorderPossible = Unchecked.defaultof && x.persistentContent = Unchecked.defaultof + + static member Empty = + VkDisplayPropertiesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "display = %A" x.display + sprintf "displayName = %A" x.displayName + sprintf "physicalDimensions = %A" x.physicalDimensions + sprintf "physicalResolution = %A" x.physicalResolution + sprintf "supportedTransforms = %A" x.supportedTransforms + sprintf "planeReorderPossible = %A" x.planeReorderPossible + sprintf "persistentContent = %A" x.persistentContent + ] |> sprintf "VkDisplayPropertiesKHR { %s }" end [] - type VkPhysicalDeviceImageViewImageFormatInfoEXT = + type VkDisplaySurfaceCreateInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public imageViewType : VkImageViewType + val mutable public flags : VkDisplaySurfaceCreateFlagsKHR + val mutable public displayMode : VkDisplayModeKHR + val mutable public planeIndex : uint32 + val mutable public planeStackIndex : uint32 + val mutable public transform : KHRSurface.VkSurfaceTransformFlagsKHR + val mutable public globalAlpha : float32 + val mutable public alphaMode : VkDisplayPlaneAlphaFlagsKHR + val mutable public imageExtent : VkExtent2D - new(pNext : nativeint, imageViewType : VkImageViewType) = + new(pNext : nativeint, flags : VkDisplaySurfaceCreateFlagsKHR, displayMode : VkDisplayModeKHR, planeIndex : uint32, planeStackIndex : uint32, transform : KHRSurface.VkSurfaceTransformFlagsKHR, globalAlpha : float32, alphaMode : VkDisplayPlaneAlphaFlagsKHR, imageExtent : VkExtent2D) = { - sType = 1000170000u + sType = 1000002001u pNext = pNext - imageViewType = imageViewType + flags = flags + displayMode = displayMode + planeIndex = planeIndex + planeStackIndex = planeStackIndex + transform = transform + globalAlpha = globalAlpha + alphaMode = alphaMode + imageExtent = imageExtent } - new(imageViewType : VkImageViewType) = - VkPhysicalDeviceImageViewImageFormatInfoEXT(Unchecked.defaultof, imageViewType) + new(flags : VkDisplaySurfaceCreateFlagsKHR, displayMode : VkDisplayModeKHR, planeIndex : uint32, planeStackIndex : uint32, transform : KHRSurface.VkSurfaceTransformFlagsKHR, globalAlpha : float32, alphaMode : VkDisplayPlaneAlphaFlagsKHR, imageExtent : VkExtent2D) = + VkDisplaySurfaceCreateInfoKHR(Unchecked.defaultof, flags, displayMode, planeIndex, planeStackIndex, transform, globalAlpha, alphaMode, imageExtent) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.imageViewType = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.displayMode = Unchecked.defaultof && x.planeIndex = Unchecked.defaultof && x.planeStackIndex = Unchecked.defaultof && x.transform = Unchecked.defaultof && x.globalAlpha = Unchecked.defaultof && x.alphaMode = Unchecked.defaultof && x.imageExtent = Unchecked.defaultof static member Empty = - VkPhysicalDeviceImageViewImageFormatInfoEXT(Unchecked.defaultof, Unchecked.defaultof) + VkDisplaySurfaceCreateInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "imageViewType = %A" x.imageViewType - ] |> sprintf "VkPhysicalDeviceImageViewImageFormatInfoEXT { %s }" + sprintf "flags = %A" x.flags + sprintf "displayMode = %A" x.displayMode + sprintf "planeIndex = %A" x.planeIndex + sprintf "planeStackIndex = %A" x.planeStackIndex + sprintf "transform = %A" x.transform + sprintf "globalAlpha = %A" x.globalAlpha + sprintf "alphaMode = %A" x.alphaMode + sprintf "imageExtent = %A" x.imageExtent + ] |> sprintf "VkDisplaySurfaceCreateInfoKHR { %s }" end [] module EnumExtensions = - type VkFilter with - static member inline CubicExt = unbox 1000015000 - type VkFormatFeatureFlags with - static member inline SampledImageFilterCubicBitExt = unbox 0x00002000 + type VkObjectType with + static member inline DisplayKhr = unbox 1000002000 + static member inline DisplayModeKhr = unbox 1000002001 + + module VkRaw = + [] + type VkGetPhysicalDeviceDisplayPropertiesKHRDel = delegate of VkPhysicalDevice * nativeptr * nativeptr -> VkResult + [] + type VkGetPhysicalDeviceDisplayPlanePropertiesKHRDel = delegate of VkPhysicalDevice * nativeptr * nativeptr -> VkResult + [] + type VkGetDisplayPlaneSupportedDisplaysKHRDel = delegate of VkPhysicalDevice * uint32 * nativeptr * nativeptr -> VkResult + [] + type VkGetDisplayModePropertiesKHRDel = delegate of VkPhysicalDevice * VkDisplayKHR * nativeptr * nativeptr -> VkResult + [] + type VkCreateDisplayModeKHRDel = delegate of VkPhysicalDevice * VkDisplayKHR * nativeptr * nativeptr * nativeptr -> VkResult + [] + type VkGetDisplayPlaneCapabilitiesKHRDel = delegate of VkPhysicalDevice * VkDisplayModeKHR * uint32 * nativeptr -> VkResult + [] + type VkCreateDisplayPlaneSurfaceKHRDel = delegate of VkInstance * nativeptr * nativeptr * nativeptr -> VkResult + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRDisplay") + static let s_vkGetPhysicalDeviceDisplayPropertiesKHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceDisplayPropertiesKHR" + static let s_vkGetPhysicalDeviceDisplayPlanePropertiesKHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceDisplayPlanePropertiesKHR" + static let s_vkGetDisplayPlaneSupportedDisplaysKHRDel = VkRaw.vkImportInstanceDelegate "vkGetDisplayPlaneSupportedDisplaysKHR" + static let s_vkGetDisplayModePropertiesKHRDel = VkRaw.vkImportInstanceDelegate "vkGetDisplayModePropertiesKHR" + static let s_vkCreateDisplayModeKHRDel = VkRaw.vkImportInstanceDelegate "vkCreateDisplayModeKHR" + static let s_vkGetDisplayPlaneCapabilitiesKHRDel = VkRaw.vkImportInstanceDelegate "vkGetDisplayPlaneCapabilitiesKHR" + static let s_vkCreateDisplayPlaneSurfaceKHRDel = VkRaw.vkImportInstanceDelegate "vkCreateDisplayPlaneSurfaceKHR" + static do Report.End(3) |> ignore + static member vkGetPhysicalDeviceDisplayPropertiesKHR = s_vkGetPhysicalDeviceDisplayPropertiesKHRDel + static member vkGetPhysicalDeviceDisplayPlanePropertiesKHR = s_vkGetPhysicalDeviceDisplayPlanePropertiesKHRDel + static member vkGetDisplayPlaneSupportedDisplaysKHR = s_vkGetDisplayPlaneSupportedDisplaysKHRDel + static member vkGetDisplayModePropertiesKHR = s_vkGetDisplayModePropertiesKHRDel + static member vkCreateDisplayModeKHR = s_vkCreateDisplayModeKHRDel + static member vkGetDisplayPlaneCapabilitiesKHR = s_vkGetDisplayPlaneCapabilitiesKHRDel + static member vkCreateDisplayPlaneSurfaceKHR = s_vkCreateDisplayPlaneSurfaceKHRDel + let vkGetPhysicalDeviceDisplayPropertiesKHR(physicalDevice : VkPhysicalDevice, pPropertyCount : nativeptr, pProperties : nativeptr) = Loader.vkGetPhysicalDeviceDisplayPropertiesKHR.Invoke(physicalDevice, pPropertyCount, pProperties) + let vkGetPhysicalDeviceDisplayPlanePropertiesKHR(physicalDevice : VkPhysicalDevice, pPropertyCount : nativeptr, pProperties : nativeptr) = Loader.vkGetPhysicalDeviceDisplayPlanePropertiesKHR.Invoke(physicalDevice, pPropertyCount, pProperties) + let vkGetDisplayPlaneSupportedDisplaysKHR(physicalDevice : VkPhysicalDevice, planeIndex : uint32, pDisplayCount : nativeptr, pDisplays : nativeptr) = Loader.vkGetDisplayPlaneSupportedDisplaysKHR.Invoke(physicalDevice, planeIndex, pDisplayCount, pDisplays) + let vkGetDisplayModePropertiesKHR(physicalDevice : VkPhysicalDevice, display : VkDisplayKHR, pPropertyCount : nativeptr, pProperties : nativeptr) = Loader.vkGetDisplayModePropertiesKHR.Invoke(physicalDevice, display, pPropertyCount, pProperties) + let vkCreateDisplayModeKHR(physicalDevice : VkPhysicalDevice, display : VkDisplayKHR, pCreateInfo : nativeptr, pAllocator : nativeptr, pMode : nativeptr) = Loader.vkCreateDisplayModeKHR.Invoke(physicalDevice, display, pCreateInfo, pAllocator, pMode) + let vkGetDisplayPlaneCapabilitiesKHR(physicalDevice : VkPhysicalDevice, mode : VkDisplayModeKHR, planeIndex : uint32, pCapabilities : nativeptr) = Loader.vkGetDisplayPlaneCapabilitiesKHR.Invoke(physicalDevice, mode, planeIndex, pCapabilities) + let vkCreateDisplayPlaneSurfaceKHR(instance : VkInstance, pCreateInfo : nativeptr, pAllocator : nativeptr, pSurface : nativeptr) = Loader.vkCreateDisplayPlaneSurfaceKHR.Invoke(instance, pCreateInfo, pAllocator, pSurface) -module EXTFragmentDensityMap = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_EXT_fragment_density_map" - let Number = 219 +/// Requires KHRDisplay. +module EXTDisplaySurfaceCounter = + let Type = ExtensionType.Instance + let Name = "VK_EXT_display_surface_counter" + let Number = 91 - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] + [] + type VkSurfaceCounterFlagsEXT = + | All = 1 + | None = 0 + | VblankBit = 0x00000001 [] - type VkPhysicalDeviceFragmentDensityMapFeaturesEXT = + type VkSurfaceCapabilities2EXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public fragmentDensityMap : VkBool32 - val mutable public fragmentDensityMapDynamic : VkBool32 - val mutable public fragmentDensityMapNonSubsampledImages : VkBool32 + val mutable public minImageCount : uint32 + val mutable public maxImageCount : uint32 + val mutable public currentExtent : VkExtent2D + val mutable public minImageExtent : VkExtent2D + val mutable public maxImageExtent : VkExtent2D + val mutable public maxImageArrayLayers : uint32 + val mutable public supportedTransforms : KHRSurface.VkSurfaceTransformFlagsKHR + val mutable public currentTransform : KHRSurface.VkSurfaceTransformFlagsKHR + val mutable public supportedCompositeAlpha : KHRSurface.VkCompositeAlphaFlagsKHR + val mutable public supportedUsageFlags : VkImageUsageFlags + val mutable public supportedSurfaceCounters : VkSurfaceCounterFlagsEXT - new(pNext : nativeint, fragmentDensityMap : VkBool32, fragmentDensityMapDynamic : VkBool32, fragmentDensityMapNonSubsampledImages : VkBool32) = + new(pNext : nativeint, minImageCount : uint32, maxImageCount : uint32, currentExtent : VkExtent2D, minImageExtent : VkExtent2D, maxImageExtent : VkExtent2D, maxImageArrayLayers : uint32, supportedTransforms : KHRSurface.VkSurfaceTransformFlagsKHR, currentTransform : KHRSurface.VkSurfaceTransformFlagsKHR, supportedCompositeAlpha : KHRSurface.VkCompositeAlphaFlagsKHR, supportedUsageFlags : VkImageUsageFlags, supportedSurfaceCounters : VkSurfaceCounterFlagsEXT) = { - sType = 1000218000u + sType = 1000090000u pNext = pNext - fragmentDensityMap = fragmentDensityMap - fragmentDensityMapDynamic = fragmentDensityMapDynamic - fragmentDensityMapNonSubsampledImages = fragmentDensityMapNonSubsampledImages + minImageCount = minImageCount + maxImageCount = maxImageCount + currentExtent = currentExtent + minImageExtent = minImageExtent + maxImageExtent = maxImageExtent + maxImageArrayLayers = maxImageArrayLayers + supportedTransforms = supportedTransforms + currentTransform = currentTransform + supportedCompositeAlpha = supportedCompositeAlpha + supportedUsageFlags = supportedUsageFlags + supportedSurfaceCounters = supportedSurfaceCounters } - new(fragmentDensityMap : VkBool32, fragmentDensityMapDynamic : VkBool32, fragmentDensityMapNonSubsampledImages : VkBool32) = - VkPhysicalDeviceFragmentDensityMapFeaturesEXT(Unchecked.defaultof, fragmentDensityMap, fragmentDensityMapDynamic, fragmentDensityMapNonSubsampledImages) + new(minImageCount : uint32, maxImageCount : uint32, currentExtent : VkExtent2D, minImageExtent : VkExtent2D, maxImageExtent : VkExtent2D, maxImageArrayLayers : uint32, supportedTransforms : KHRSurface.VkSurfaceTransformFlagsKHR, currentTransform : KHRSurface.VkSurfaceTransformFlagsKHR, supportedCompositeAlpha : KHRSurface.VkCompositeAlphaFlagsKHR, supportedUsageFlags : VkImageUsageFlags, supportedSurfaceCounters : VkSurfaceCounterFlagsEXT) = + VkSurfaceCapabilities2EXT(Unchecked.defaultof, minImageCount, maxImageCount, currentExtent, minImageExtent, maxImageExtent, maxImageArrayLayers, supportedTransforms, currentTransform, supportedCompositeAlpha, supportedUsageFlags, supportedSurfaceCounters) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.fragmentDensityMap = Unchecked.defaultof && x.fragmentDensityMapDynamic = Unchecked.defaultof && x.fragmentDensityMapNonSubsampledImages = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.minImageCount = Unchecked.defaultof && x.maxImageCount = Unchecked.defaultof && x.currentExtent = Unchecked.defaultof && x.minImageExtent = Unchecked.defaultof && x.maxImageExtent = Unchecked.defaultof && x.maxImageArrayLayers = Unchecked.defaultof && x.supportedTransforms = Unchecked.defaultof && x.currentTransform = Unchecked.defaultof && x.supportedCompositeAlpha = Unchecked.defaultof && x.supportedUsageFlags = Unchecked.defaultof && x.supportedSurfaceCounters = Unchecked.defaultof static member Empty = - VkPhysicalDeviceFragmentDensityMapFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkSurfaceCapabilities2EXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "fragmentDensityMap = %A" x.fragmentDensityMap - sprintf "fragmentDensityMapDynamic = %A" x.fragmentDensityMapDynamic - sprintf "fragmentDensityMapNonSubsampledImages = %A" x.fragmentDensityMapNonSubsampledImages - ] |> sprintf "VkPhysicalDeviceFragmentDensityMapFeaturesEXT { %s }" + sprintf "minImageCount = %A" x.minImageCount + sprintf "maxImageCount = %A" x.maxImageCount + sprintf "currentExtent = %A" x.currentExtent + sprintf "minImageExtent = %A" x.minImageExtent + sprintf "maxImageExtent = %A" x.maxImageExtent + sprintf "maxImageArrayLayers = %A" x.maxImageArrayLayers + sprintf "supportedTransforms = %A" x.supportedTransforms + sprintf "currentTransform = %A" x.currentTransform + sprintf "supportedCompositeAlpha = %A" x.supportedCompositeAlpha + sprintf "supportedUsageFlags = %A" x.supportedUsageFlags + sprintf "supportedSurfaceCounters = %A" x.supportedSurfaceCounters + ] |> sprintf "VkSurfaceCapabilities2EXT { %s }" end + + module VkRaw = + [] + type VkGetPhysicalDeviceSurfaceCapabilities2EXTDel = delegate of VkPhysicalDevice * KHRSurface.VkSurfaceKHR * nativeptr -> VkResult + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTDisplaySurfaceCounter") + static let s_vkGetPhysicalDeviceSurfaceCapabilities2EXTDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceSurfaceCapabilities2EXT" + static do Report.End(3) |> ignore + static member vkGetPhysicalDeviceSurfaceCapabilities2EXT = s_vkGetPhysicalDeviceSurfaceCapabilities2EXTDel + let vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice : VkPhysicalDevice, surface : KHRSurface.VkSurfaceKHR, pSurfaceCapabilities : nativeptr) = Loader.vkGetPhysicalDeviceSurfaceCapabilities2EXT.Invoke(physicalDevice, surface, pSurfaceCapabilities) + +/// Requires EXTDisplaySurfaceCounter, KHRSwapchain. +module EXTDisplayControl = + let Type = ExtensionType.Device + let Name = "VK_EXT_display_control" + let Number = 92 + + type VkDisplayPowerStateEXT = + | Off = 0 + | Suspend = 1 + | On = 2 + + type VkDeviceEventTypeEXT = + | DisplayHotplug = 0 + + type VkDisplayEventTypeEXT = + | FirstPixelOut = 0 + + [] - type VkPhysicalDeviceFragmentDensityMapPropertiesEXT = + type VkDeviceEventInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public minFragmentDensityTexelSize : VkExtent2D - val mutable public maxFragmentDensityTexelSize : VkExtent2D - val mutable public fragmentDensityInvocations : VkBool32 + val mutable public deviceEvent : VkDeviceEventTypeEXT - new(pNext : nativeint, minFragmentDensityTexelSize : VkExtent2D, maxFragmentDensityTexelSize : VkExtent2D, fragmentDensityInvocations : VkBool32) = + new(pNext : nativeint, deviceEvent : VkDeviceEventTypeEXT) = { - sType = 1000218001u + sType = 1000091001u pNext = pNext - minFragmentDensityTexelSize = minFragmentDensityTexelSize - maxFragmentDensityTexelSize = maxFragmentDensityTexelSize - fragmentDensityInvocations = fragmentDensityInvocations + deviceEvent = deviceEvent } - new(minFragmentDensityTexelSize : VkExtent2D, maxFragmentDensityTexelSize : VkExtent2D, fragmentDensityInvocations : VkBool32) = - VkPhysicalDeviceFragmentDensityMapPropertiesEXT(Unchecked.defaultof, minFragmentDensityTexelSize, maxFragmentDensityTexelSize, fragmentDensityInvocations) + new(deviceEvent : VkDeviceEventTypeEXT) = + VkDeviceEventInfoEXT(Unchecked.defaultof, deviceEvent) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.minFragmentDensityTexelSize = Unchecked.defaultof && x.maxFragmentDensityTexelSize = Unchecked.defaultof && x.fragmentDensityInvocations = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.deviceEvent = Unchecked.defaultof static member Empty = - VkPhysicalDeviceFragmentDensityMapPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkDeviceEventInfoEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "minFragmentDensityTexelSize = %A" x.minFragmentDensityTexelSize - sprintf "maxFragmentDensityTexelSize = %A" x.maxFragmentDensityTexelSize - sprintf "fragmentDensityInvocations = %A" x.fragmentDensityInvocations - ] |> sprintf "VkPhysicalDeviceFragmentDensityMapPropertiesEXT { %s }" + sprintf "deviceEvent = %A" x.deviceEvent + ] |> sprintf "VkDeviceEventInfoEXT { %s }" end [] - type VkRenderPassFragmentDensityMapCreateInfoEXT = + type VkDisplayEventInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public fragmentDensityMapAttachment : VkAttachmentReference + val mutable public displayEvent : VkDisplayEventTypeEXT - new(pNext : nativeint, fragmentDensityMapAttachment : VkAttachmentReference) = + new(pNext : nativeint, displayEvent : VkDisplayEventTypeEXT) = { - sType = 1000218002u + sType = 1000091002u pNext = pNext - fragmentDensityMapAttachment = fragmentDensityMapAttachment + displayEvent = displayEvent } - new(fragmentDensityMapAttachment : VkAttachmentReference) = - VkRenderPassFragmentDensityMapCreateInfoEXT(Unchecked.defaultof, fragmentDensityMapAttachment) + new(displayEvent : VkDisplayEventTypeEXT) = + VkDisplayEventInfoEXT(Unchecked.defaultof, displayEvent) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.fragmentDensityMapAttachment = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.displayEvent = Unchecked.defaultof static member Empty = - VkRenderPassFragmentDensityMapCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof) + VkDisplayEventInfoEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "fragmentDensityMapAttachment = %A" x.fragmentDensityMapAttachment - ] |> sprintf "VkRenderPassFragmentDensityMapCreateInfoEXT { %s }" + sprintf "displayEvent = %A" x.displayEvent + ] |> sprintf "VkDisplayEventInfoEXT { %s }" end - - [] - module EnumExtensions = - type VkAccessFlags with - static member inline FragmentDensityMapReadBitExt = unbox 0x01000000 - type VkFormatFeatureFlags with - static member inline FragmentDensityMapBitExt = unbox 0x01000000 - type VkImageCreateFlags with - static member inline SubsampledBitExt = unbox 0x00004000 - type VkImageLayout with - static member inline FragmentDensityMapOptimalExt = unbox 1000218000 - type VkImageUsageFlags with - static member inline FragmentDensityMapBitExt = unbox 0x00000200 - type VkImageViewCreateFlags with - static member inline FragmentDensityMapDynamicBitExt = unbox 0x00000001 - type VkPipelineStageFlags with - static member inline FragmentDensityProcessBitExt = unbox 0x00800000 - type VkSamplerCreateFlags with - static member inline SubsampledBitExt = unbox 0x00000001 - static member inline SubsampledCoarseReconstructionBitExt = unbox 0x00000002 - - - module KHRFormatFeatureFlags2 = - [] - module EnumExtensions = - type VkFormatFeatureFlags2 with - static member inline FormatFeature2FragmentDensityMapBitExt = unbox 0x01000000 - - -module EXTFragmentDensityMap2 = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open EXTFragmentDensityMap - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_EXT_fragment_density_map2" - let Number = 333 - - let Required = [ EXTFragmentDensityMap.Name ] - - [] - type VkPhysicalDeviceFragmentDensityMap2FeaturesEXT = + type VkDisplayPowerInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public fragmentDensityMapDeferred : VkBool32 + val mutable public powerState : VkDisplayPowerStateEXT - new(pNext : nativeint, fragmentDensityMapDeferred : VkBool32) = + new(pNext : nativeint, powerState : VkDisplayPowerStateEXT) = { - sType = 1000332000u + sType = 1000091000u pNext = pNext - fragmentDensityMapDeferred = fragmentDensityMapDeferred + powerState = powerState } - new(fragmentDensityMapDeferred : VkBool32) = - VkPhysicalDeviceFragmentDensityMap2FeaturesEXT(Unchecked.defaultof, fragmentDensityMapDeferred) + new(powerState : VkDisplayPowerStateEXT) = + VkDisplayPowerInfoEXT(Unchecked.defaultof, powerState) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.fragmentDensityMapDeferred = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.powerState = Unchecked.defaultof static member Empty = - VkPhysicalDeviceFragmentDensityMap2FeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) + VkDisplayPowerInfoEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "fragmentDensityMapDeferred = %A" x.fragmentDensityMapDeferred - ] |> sprintf "VkPhysicalDeviceFragmentDensityMap2FeaturesEXT { %s }" + sprintf "powerState = %A" x.powerState + ] |> sprintf "VkDisplayPowerInfoEXT { %s }" end [] - type VkPhysicalDeviceFragmentDensityMap2PropertiesEXT = + type VkSwapchainCounterCreateInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public subsampledLoads : VkBool32 - val mutable public subsampledCoarseReconstructionEarlyAccess : VkBool32 - val mutable public maxSubsampledArrayLayers : uint32 - val mutable public maxDescriptorSetSubsampledSamplers : uint32 + val mutable public surfaceCounters : EXTDisplaySurfaceCounter.VkSurfaceCounterFlagsEXT - new(pNext : nativeint, subsampledLoads : VkBool32, subsampledCoarseReconstructionEarlyAccess : VkBool32, maxSubsampledArrayLayers : uint32, maxDescriptorSetSubsampledSamplers : uint32) = + new(pNext : nativeint, surfaceCounters : EXTDisplaySurfaceCounter.VkSurfaceCounterFlagsEXT) = { - sType = 1000332001u + sType = 1000091003u pNext = pNext - subsampledLoads = subsampledLoads - subsampledCoarseReconstructionEarlyAccess = subsampledCoarseReconstructionEarlyAccess - maxSubsampledArrayLayers = maxSubsampledArrayLayers - maxDescriptorSetSubsampledSamplers = maxDescriptorSetSubsampledSamplers + surfaceCounters = surfaceCounters } - new(subsampledLoads : VkBool32, subsampledCoarseReconstructionEarlyAccess : VkBool32, maxSubsampledArrayLayers : uint32, maxDescriptorSetSubsampledSamplers : uint32) = - VkPhysicalDeviceFragmentDensityMap2PropertiesEXT(Unchecked.defaultof, subsampledLoads, subsampledCoarseReconstructionEarlyAccess, maxSubsampledArrayLayers, maxDescriptorSetSubsampledSamplers) + new(surfaceCounters : EXTDisplaySurfaceCounter.VkSurfaceCounterFlagsEXT) = + VkSwapchainCounterCreateInfoEXT(Unchecked.defaultof, surfaceCounters) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.subsampledLoads = Unchecked.defaultof && x.subsampledCoarseReconstructionEarlyAccess = Unchecked.defaultof && x.maxSubsampledArrayLayers = Unchecked.defaultof && x.maxDescriptorSetSubsampledSamplers = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.surfaceCounters = Unchecked.defaultof static member Empty = - VkPhysicalDeviceFragmentDensityMap2PropertiesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkSwapchainCounterCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "subsampledLoads = %A" x.subsampledLoads - sprintf "subsampledCoarseReconstructionEarlyAccess = %A" x.subsampledCoarseReconstructionEarlyAccess - sprintf "maxSubsampledArrayLayers = %A" x.maxSubsampledArrayLayers - sprintf "maxDescriptorSetSubsampledSamplers = %A" x.maxDescriptorSetSubsampledSamplers - ] |> sprintf "VkPhysicalDeviceFragmentDensityMap2PropertiesEXT { %s }" + sprintf "surfaceCounters = %A" x.surfaceCounters + ] |> sprintf "VkSwapchainCounterCreateInfoEXT { %s }" end - [] - module EnumExtensions = - type VkImageViewCreateFlags with - static member inline FragmentDensityMapDeferredBitExt = unbox 0x00000002 - - -module EXTFragmentShaderInterlock = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_EXT_fragment_shader_interlock" - let Number = 252 + module VkRaw = + [] + type VkDisplayPowerControlEXTDel = delegate of VkDevice * KHRDisplay.VkDisplayKHR * nativeptr -> VkResult + [] + type VkRegisterDeviceEventEXTDel = delegate of VkDevice * nativeptr * nativeptr * nativeptr -> VkResult + [] + type VkRegisterDisplayEventEXTDel = delegate of VkDevice * KHRDisplay.VkDisplayKHR * nativeptr * nativeptr * nativeptr -> VkResult + [] + type VkGetSwapchainCounterEXTDel = delegate of VkDevice * KHRSwapchain.VkSwapchainKHR * EXTDisplaySurfaceCounter.VkSurfaceCounterFlagsEXT * nativeptr -> VkResult - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTDisplayControl") + static let s_vkDisplayPowerControlEXTDel = VkRaw.vkImportInstanceDelegate "vkDisplayPowerControlEXT" + static let s_vkRegisterDeviceEventEXTDel = VkRaw.vkImportInstanceDelegate "vkRegisterDeviceEventEXT" + static let s_vkRegisterDisplayEventEXTDel = VkRaw.vkImportInstanceDelegate "vkRegisterDisplayEventEXT" + static let s_vkGetSwapchainCounterEXTDel = VkRaw.vkImportInstanceDelegate "vkGetSwapchainCounterEXT" + static do Report.End(3) |> ignore + static member vkDisplayPowerControlEXT = s_vkDisplayPowerControlEXTDel + static member vkRegisterDeviceEventEXT = s_vkRegisterDeviceEventEXTDel + static member vkRegisterDisplayEventEXT = s_vkRegisterDisplayEventEXTDel + static member vkGetSwapchainCounterEXT = s_vkGetSwapchainCounterEXTDel + let vkDisplayPowerControlEXT(device : VkDevice, display : KHRDisplay.VkDisplayKHR, pDisplayPowerInfo : nativeptr) = Loader.vkDisplayPowerControlEXT.Invoke(device, display, pDisplayPowerInfo) + let vkRegisterDeviceEventEXT(device : VkDevice, pDeviceEventInfo : nativeptr, pAllocator : nativeptr, pFence : nativeptr) = Loader.vkRegisterDeviceEventEXT.Invoke(device, pDeviceEventInfo, pAllocator, pFence) + let vkRegisterDisplayEventEXT(device : VkDevice, display : KHRDisplay.VkDisplayKHR, pDisplayEventInfo : nativeptr, pAllocator : nativeptr, pFence : nativeptr) = Loader.vkRegisterDisplayEventEXT.Invoke(device, display, pDisplayEventInfo, pAllocator, pFence) + let vkGetSwapchainCounterEXT(device : VkDevice, swapchain : KHRSwapchain.VkSwapchainKHR, counter : EXTDisplaySurfaceCounter.VkSurfaceCounterFlagsEXT, pCounterValue : nativeptr) = Loader.vkGetSwapchainCounterEXT.Invoke(device, swapchain, counter, pCounterValue) +/// Requires ((KHRGetPhysicalDeviceProperties2 | Vulkan11), KHRDynamicRendering) | Vulkan13. +module EXTDynamicRenderingUnusedAttachments = + let Type = ExtensionType.Device + let Name = "VK_EXT_dynamic_rendering_unused_attachments" + let Number = 500 [] - type VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT = + type VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public fragmentShaderSampleInterlock : VkBool32 - val mutable public fragmentShaderPixelInterlock : VkBool32 - val mutable public fragmentShaderShadingRateInterlock : VkBool32 + val mutable public dynamicRenderingUnusedAttachments : VkBool32 - new(pNext : nativeint, fragmentShaderSampleInterlock : VkBool32, fragmentShaderPixelInterlock : VkBool32, fragmentShaderShadingRateInterlock : VkBool32) = + new(pNext : nativeint, dynamicRenderingUnusedAttachments : VkBool32) = { - sType = 1000251000u + sType = 1000499000u pNext = pNext - fragmentShaderSampleInterlock = fragmentShaderSampleInterlock - fragmentShaderPixelInterlock = fragmentShaderPixelInterlock - fragmentShaderShadingRateInterlock = fragmentShaderShadingRateInterlock + dynamicRenderingUnusedAttachments = dynamicRenderingUnusedAttachments } - new(fragmentShaderSampleInterlock : VkBool32, fragmentShaderPixelInterlock : VkBool32, fragmentShaderShadingRateInterlock : VkBool32) = - VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT(Unchecked.defaultof, fragmentShaderSampleInterlock, fragmentShaderPixelInterlock, fragmentShaderShadingRateInterlock) + new(dynamicRenderingUnusedAttachments : VkBool32) = + VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT(Unchecked.defaultof, dynamicRenderingUnusedAttachments) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.fragmentShaderSampleInterlock = Unchecked.defaultof && x.fragmentShaderPixelInterlock = Unchecked.defaultof && x.fragmentShaderShadingRateInterlock = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.dynamicRenderingUnusedAttachments = Unchecked.defaultof static member Empty = - VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "fragmentShaderSampleInterlock = %A" x.fragmentShaderSampleInterlock - sprintf "fragmentShaderPixelInterlock = %A" x.fragmentShaderPixelInterlock - sprintf "fragmentShaderShadingRateInterlock = %A" x.fragmentShaderShadingRateInterlock - ] |> sprintf "VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT { %s }" + sprintf "dynamicRenderingUnusedAttachments = %A" x.dynamicRenderingUnusedAttachments + ] |> sprintf "VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT { %s }" end -module KHRWin32Surface = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRSurface - let Name = "VK_KHR_win32_surface" - let Number = 10 - - let Required = [ KHRSurface.Name ] - +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +/// Promoted to Vulkan13. +module EXTExtendedDynamicState = + let Type = ExtensionType.Device + let Name = "VK_EXT_extended_dynamic_state" + let Number = 268 [] - type VkWin32SurfaceCreateInfoKHR = + type VkPhysicalDeviceExtendedDynamicStateFeaturesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public flags : VkWin32SurfaceCreateFlagsKHR - val mutable public hinstance : nativeint - val mutable public hwnd : nativeint + val mutable public extendedDynamicState : VkBool32 - new(pNext : nativeint, flags : VkWin32SurfaceCreateFlagsKHR, hinstance : nativeint, hwnd : nativeint) = + new(pNext : nativeint, extendedDynamicState : VkBool32) = { - sType = 1000009000u + sType = 1000267000u pNext = pNext - flags = flags - hinstance = hinstance - hwnd = hwnd + extendedDynamicState = extendedDynamicState } - new(flags : VkWin32SurfaceCreateFlagsKHR, hinstance : nativeint, hwnd : nativeint) = - VkWin32SurfaceCreateInfoKHR(Unchecked.defaultof, flags, hinstance, hwnd) + new(extendedDynamicState : VkBool32) = + VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(Unchecked.defaultof, extendedDynamicState) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.hinstance = Unchecked.defaultof && x.hwnd = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.extendedDynamicState = Unchecked.defaultof static member Empty = - VkWin32SurfaceCreateInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "flags = %A" x.flags - sprintf "hinstance = %A" x.hinstance - sprintf "hwnd = %A" x.hwnd - ] |> sprintf "VkWin32SurfaceCreateInfoKHR { %s }" + sprintf "extendedDynamicState = %A" x.extendedDynamicState + ] |> sprintf "VkPhysicalDeviceExtendedDynamicStateFeaturesEXT { %s }" end - module VkRaw = - [] - type VkCreateWin32SurfaceKHRDel = delegate of VkInstance * nativeptr * nativeptr * nativeptr -> VkResult - [] - type VkGetPhysicalDeviceWin32PresentationSupportKHRDel = delegate of VkPhysicalDevice * uint32 -> VkBool32 - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRWin32Surface") - static let s_vkCreateWin32SurfaceKHRDel = VkRaw.vkImportInstanceDelegate "vkCreateWin32SurfaceKHR" - static let s_vkGetPhysicalDeviceWin32PresentationSupportKHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceWin32PresentationSupportKHR" - static do Report.End(3) |> ignore - static member vkCreateWin32SurfaceKHR = s_vkCreateWin32SurfaceKHRDel - static member vkGetPhysicalDeviceWin32PresentationSupportKHR = s_vkGetPhysicalDeviceWin32PresentationSupportKHRDel - let vkCreateWin32SurfaceKHR(instance : VkInstance, pCreateInfo : nativeptr, pAllocator : nativeptr, pSurface : nativeptr) = Loader.vkCreateWin32SurfaceKHR.Invoke(instance, pCreateInfo, pAllocator, pSurface) - let vkGetPhysicalDeviceWin32PresentationSupportKHR(physicalDevice : VkPhysicalDevice, queueFamilyIndex : uint32) = Loader.vkGetPhysicalDeviceWin32PresentationSupportKHR.Invoke(physicalDevice, queueFamilyIndex) - -module KHRDeviceGroupCreation = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_KHR_device_group_creation" - let Number = 71 - - - type VkDeviceGroupDeviceCreateInfoKHR = VkDeviceGroupDeviceCreateInfo - - type VkPhysicalDeviceGroupPropertiesKHR = VkPhysicalDeviceGroupProperties - - [] module EnumExtensions = - type VkMemoryHeapFlags with - static member inline MultiInstanceBitKhr = unbox 0x00000002 + type VkDynamicState with + static member inline CullModeExt = unbox 1000267000 + static member inline FrontFaceExt = unbox 1000267001 + static member inline PrimitiveTopologyExt = unbox 1000267002 + static member inline ViewportWithCountExt = unbox 1000267003 + static member inline ScissorWithCountExt = unbox 1000267004 + static member inline VertexInputBindingStrideExt = unbox 1000267005 + static member inline DepthTestEnableExt = unbox 1000267006 + static member inline DepthWriteEnableExt = unbox 1000267007 + static member inline DepthCompareOpExt = unbox 1000267008 + static member inline DepthBoundsTestEnableExt = unbox 1000267009 + static member inline StencilTestEnableExt = unbox 1000267010 + static member inline StencilOpExt = unbox 1000267011 module VkRaw = [] - type VkEnumeratePhysicalDeviceGroupsKHRDel = delegate of VkInstance * nativeptr * nativeptr -> VkResult + type VkCmdSetCullModeEXTDel = delegate of VkCommandBuffer * VkCullModeFlags -> unit + [] + type VkCmdSetFrontFaceEXTDel = delegate of VkCommandBuffer * VkFrontFace -> unit + [] + type VkCmdSetPrimitiveTopologyEXTDel = delegate of VkCommandBuffer * VkPrimitiveTopology -> unit + [] + type VkCmdSetViewportWithCountEXTDel = delegate of VkCommandBuffer * uint32 * nativeptr -> unit + [] + type VkCmdSetScissorWithCountEXTDel = delegate of VkCommandBuffer * uint32 * nativeptr -> unit + [] + type VkCmdBindVertexBuffers2EXTDel = delegate of VkCommandBuffer * uint32 * uint32 * nativeptr * nativeptr * nativeptr * nativeptr -> unit + [] + type VkCmdSetDepthTestEnableEXTDel = delegate of VkCommandBuffer * VkBool32 -> unit + [] + type VkCmdSetDepthWriteEnableEXTDel = delegate of VkCommandBuffer * VkBool32 -> unit + [] + type VkCmdSetDepthCompareOpEXTDel = delegate of VkCommandBuffer * VkCompareOp -> unit + [] + type VkCmdSetDepthBoundsTestEnableEXTDel = delegate of VkCommandBuffer * VkBool32 -> unit + [] + type VkCmdSetStencilTestEnableEXTDel = delegate of VkCommandBuffer * VkBool32 -> unit + [] + type VkCmdSetStencilOpEXTDel = delegate of VkCommandBuffer * VkStencilFaceFlags * VkStencilOp * VkStencilOp * VkStencilOp * VkCompareOp -> unit [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRDeviceGroupCreation") - static let s_vkEnumeratePhysicalDeviceGroupsKHRDel = VkRaw.vkImportInstanceDelegate "vkEnumeratePhysicalDeviceGroupsKHR" + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTExtendedDynamicState") + static let s_vkCmdSetCullModeEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetCullModeEXT" + static let s_vkCmdSetFrontFaceEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetFrontFaceEXT" + static let s_vkCmdSetPrimitiveTopologyEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetPrimitiveTopologyEXT" + static let s_vkCmdSetViewportWithCountEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetViewportWithCountEXT" + static let s_vkCmdSetScissorWithCountEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetScissorWithCountEXT" + static let s_vkCmdBindVertexBuffers2EXTDel = VkRaw.vkImportInstanceDelegate "vkCmdBindVertexBuffers2EXT" + static let s_vkCmdSetDepthTestEnableEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetDepthTestEnableEXT" + static let s_vkCmdSetDepthWriteEnableEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetDepthWriteEnableEXT" + static let s_vkCmdSetDepthCompareOpEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetDepthCompareOpEXT" + static let s_vkCmdSetDepthBoundsTestEnableEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetDepthBoundsTestEnableEXT" + static let s_vkCmdSetStencilTestEnableEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetStencilTestEnableEXT" + static let s_vkCmdSetStencilOpEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetStencilOpEXT" static do Report.End(3) |> ignore - static member vkEnumeratePhysicalDeviceGroupsKHR = s_vkEnumeratePhysicalDeviceGroupsKHRDel - let vkEnumeratePhysicalDeviceGroupsKHR(instance : VkInstance, pPhysicalDeviceGroupCount : nativeptr, pPhysicalDeviceGroupProperties : nativeptr) = Loader.vkEnumeratePhysicalDeviceGroupsKHR.Invoke(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) - -module KHRDeviceGroup = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRDeviceGroupCreation - open KHRSurface - open KHRSwapchain - let Name = "VK_KHR_device_group" - let Number = 61 - - let Required = [ KHRDeviceGroupCreation.Name ] + static member vkCmdSetCullModeEXT = s_vkCmdSetCullModeEXTDel + static member vkCmdSetFrontFaceEXT = s_vkCmdSetFrontFaceEXTDel + static member vkCmdSetPrimitiveTopologyEXT = s_vkCmdSetPrimitiveTopologyEXTDel + static member vkCmdSetViewportWithCountEXT = s_vkCmdSetViewportWithCountEXTDel + static member vkCmdSetScissorWithCountEXT = s_vkCmdSetScissorWithCountEXTDel + static member vkCmdBindVertexBuffers2EXT = s_vkCmdBindVertexBuffers2EXTDel + static member vkCmdSetDepthTestEnableEXT = s_vkCmdSetDepthTestEnableEXTDel + static member vkCmdSetDepthWriteEnableEXT = s_vkCmdSetDepthWriteEnableEXTDel + static member vkCmdSetDepthCompareOpEXT = s_vkCmdSetDepthCompareOpEXTDel + static member vkCmdSetDepthBoundsTestEnableEXT = s_vkCmdSetDepthBoundsTestEnableEXTDel + static member vkCmdSetStencilTestEnableEXT = s_vkCmdSetStencilTestEnableEXTDel + static member vkCmdSetStencilOpEXT = s_vkCmdSetStencilOpEXTDel + let vkCmdSetCullModeEXT(commandBuffer : VkCommandBuffer, cullMode : VkCullModeFlags) = Loader.vkCmdSetCullModeEXT.Invoke(commandBuffer, cullMode) + let vkCmdSetFrontFaceEXT(commandBuffer : VkCommandBuffer, frontFace : VkFrontFace) = Loader.vkCmdSetFrontFaceEXT.Invoke(commandBuffer, frontFace) + let vkCmdSetPrimitiveTopologyEXT(commandBuffer : VkCommandBuffer, primitiveTopology : VkPrimitiveTopology) = Loader.vkCmdSetPrimitiveTopologyEXT.Invoke(commandBuffer, primitiveTopology) + let vkCmdSetViewportWithCountEXT(commandBuffer : VkCommandBuffer, viewportCount : uint32, pViewports : nativeptr) = Loader.vkCmdSetViewportWithCountEXT.Invoke(commandBuffer, viewportCount, pViewports) + let vkCmdSetScissorWithCountEXT(commandBuffer : VkCommandBuffer, scissorCount : uint32, pScissors : nativeptr) = Loader.vkCmdSetScissorWithCountEXT.Invoke(commandBuffer, scissorCount, pScissors) + let vkCmdBindVertexBuffers2EXT(commandBuffer : VkCommandBuffer, firstBinding : uint32, bindingCount : uint32, pBuffers : nativeptr, pOffsets : nativeptr, pSizes : nativeptr, pStrides : nativeptr) = Loader.vkCmdBindVertexBuffers2EXT.Invoke(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides) + let vkCmdSetDepthTestEnableEXT(commandBuffer : VkCommandBuffer, depthTestEnable : VkBool32) = Loader.vkCmdSetDepthTestEnableEXT.Invoke(commandBuffer, depthTestEnable) + let vkCmdSetDepthWriteEnableEXT(commandBuffer : VkCommandBuffer, depthWriteEnable : VkBool32) = Loader.vkCmdSetDepthWriteEnableEXT.Invoke(commandBuffer, depthWriteEnable) + let vkCmdSetDepthCompareOpEXT(commandBuffer : VkCommandBuffer, depthCompareOp : VkCompareOp) = Loader.vkCmdSetDepthCompareOpEXT.Invoke(commandBuffer, depthCompareOp) + let vkCmdSetDepthBoundsTestEnableEXT(commandBuffer : VkCommandBuffer, depthBoundsTestEnable : VkBool32) = Loader.vkCmdSetDepthBoundsTestEnableEXT.Invoke(commandBuffer, depthBoundsTestEnable) + let vkCmdSetStencilTestEnableEXT(commandBuffer : VkCommandBuffer, stencilTestEnable : VkBool32) = Loader.vkCmdSetStencilTestEnableEXT.Invoke(commandBuffer, stencilTestEnable) + let vkCmdSetStencilOpEXT(commandBuffer : VkCommandBuffer, faceMask : VkStencilFaceFlags, failOp : VkStencilOp, passOp : VkStencilOp, depthFailOp : VkStencilOp, compareOp : VkCompareOp) = Loader.vkCmdSetStencilOpEXT.Invoke(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp) +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +/// Promoted to Vulkan13. +module EXTExtendedDynamicState2 = + let Type = ExtensionType.Device + let Name = "VK_EXT_extended_dynamic_state2" + let Number = 378 - type VkPeerMemoryFeatureFlagsKHR = VkPeerMemoryFeatureFlags - type VkMemoryAllocateFlagsKHR = VkMemoryAllocateFlags + [] + type VkPhysicalDeviceExtendedDynamicState2FeaturesEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public extendedDynamicState2 : VkBool32 + val mutable public extendedDynamicState2LogicOp : VkBool32 + val mutable public extendedDynamicState2PatchControlPoints : VkBool32 - type VkDeviceGroupBindSparseInfoKHR = VkDeviceGroupBindSparseInfo + new(pNext : nativeint, extendedDynamicState2 : VkBool32, extendedDynamicState2LogicOp : VkBool32, extendedDynamicState2PatchControlPoints : VkBool32) = + { + sType = 1000377000u + pNext = pNext + extendedDynamicState2 = extendedDynamicState2 + extendedDynamicState2LogicOp = extendedDynamicState2LogicOp + extendedDynamicState2PatchControlPoints = extendedDynamicState2PatchControlPoints + } - type VkDeviceGroupCommandBufferBeginInfoKHR = VkDeviceGroupCommandBufferBeginInfo + new(extendedDynamicState2 : VkBool32, extendedDynamicState2LogicOp : VkBool32, extendedDynamicState2PatchControlPoints : VkBool32) = + VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(Unchecked.defaultof, extendedDynamicState2, extendedDynamicState2LogicOp, extendedDynamicState2PatchControlPoints) - type VkDeviceGroupRenderPassBeginInfoKHR = VkDeviceGroupRenderPassBeginInfo + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.extendedDynamicState2 = Unchecked.defaultof && x.extendedDynamicState2LogicOp = Unchecked.defaultof && x.extendedDynamicState2PatchControlPoints = Unchecked.defaultof - type VkDeviceGroupSubmitInfoKHR = VkDeviceGroupSubmitInfo + static member Empty = + VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) - type VkMemoryAllocateFlagsInfoKHR = VkMemoryAllocateFlagsInfo + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "extendedDynamicState2 = %A" x.extendedDynamicState2 + sprintf "extendedDynamicState2LogicOp = %A" x.extendedDynamicState2LogicOp + sprintf "extendedDynamicState2PatchControlPoints = %A" x.extendedDynamicState2PatchControlPoints + ] |> sprintf "VkPhysicalDeviceExtendedDynamicState2FeaturesEXT { %s }" + end [] module EnumExtensions = - type VkDependencyFlags with - static member inline DeviceGroupBitKhr = unbox 0x00000004 - type VkMemoryAllocateFlags with - static member inline DeviceMaskBitKhr = unbox 0x00000001 - type VkPeerMemoryFeatureFlags with - static member inline CopySrcBitKhr = unbox 0x00000001 - static member inline CopyDstBitKhr = unbox 0x00000002 - static member inline GenericSrcBitKhr = unbox 0x00000004 - static member inline GenericDstBitKhr = unbox 0x00000008 - type VkPipelineCreateFlags with - static member inline ViewIndexFromDeviceIndexBitKhr = unbox 0x00000008 - static member inline DispatchBaseKhr = unbox 0x00000010 + type VkDynamicState with + /// Not promoted to 1.3 + static member inline PatchControlPointsExt = unbox 1000377000 + static member inline RasterizerDiscardEnableExt = unbox 1000377001 + static member inline DepthBiasEnableExt = unbox 1000377002 + /// Not promoted to 1.3 + static member inline LogicOpExt = unbox 1000377003 + static member inline PrimitiveRestartEnableExt = unbox 1000377004 module VkRaw = [] - type VkGetDeviceGroupPeerMemoryFeaturesKHRDel = delegate of VkDevice * uint32 * uint32 * uint32 * nativeptr -> unit + type VkCmdSetPatchControlPointsEXTDel = delegate of VkCommandBuffer * uint32 -> unit [] - type VkCmdSetDeviceMaskKHRDel = delegate of VkCommandBuffer * uint32 -> unit + type VkCmdSetRasterizerDiscardEnableEXTDel = delegate of VkCommandBuffer * VkBool32 -> unit [] - type VkCmdDispatchBaseKHRDel = delegate of VkCommandBuffer * uint32 * uint32 * uint32 * uint32 * uint32 * uint32 -> unit + type VkCmdSetDepthBiasEnableEXTDel = delegate of VkCommandBuffer * VkBool32 -> unit + [] + type VkCmdSetLogicOpEXTDel = delegate of VkCommandBuffer * VkLogicOp -> unit + [] + type VkCmdSetPrimitiveRestartEnableEXTDel = delegate of VkCommandBuffer * VkBool32 -> unit [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRDeviceGroup") - static let s_vkGetDeviceGroupPeerMemoryFeaturesKHRDel = VkRaw.vkImportInstanceDelegate "vkGetDeviceGroupPeerMemoryFeaturesKHR" - static let s_vkCmdSetDeviceMaskKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdSetDeviceMaskKHR" - static let s_vkCmdDispatchBaseKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdDispatchBaseKHR" + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTExtendedDynamicState2") + static let s_vkCmdSetPatchControlPointsEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetPatchControlPointsEXT" + static let s_vkCmdSetRasterizerDiscardEnableEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetRasterizerDiscardEnableEXT" + static let s_vkCmdSetDepthBiasEnableEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetDepthBiasEnableEXT" + static let s_vkCmdSetLogicOpEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetLogicOpEXT" + static let s_vkCmdSetPrimitiveRestartEnableEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetPrimitiveRestartEnableEXT" static do Report.End(3) |> ignore - static member vkGetDeviceGroupPeerMemoryFeaturesKHR = s_vkGetDeviceGroupPeerMemoryFeaturesKHRDel - static member vkCmdSetDeviceMaskKHR = s_vkCmdSetDeviceMaskKHRDel - static member vkCmdDispatchBaseKHR = s_vkCmdDispatchBaseKHRDel - let vkGetDeviceGroupPeerMemoryFeaturesKHR(device : VkDevice, heapIndex : uint32, localDeviceIndex : uint32, remoteDeviceIndex : uint32, pPeerMemoryFeatures : nativeptr) = Loader.vkGetDeviceGroupPeerMemoryFeaturesKHR.Invoke(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) - let vkCmdSetDeviceMaskKHR(commandBuffer : VkCommandBuffer, deviceMask : uint32) = Loader.vkCmdSetDeviceMaskKHR.Invoke(commandBuffer, deviceMask) - let vkCmdDispatchBaseKHR(commandBuffer : VkCommandBuffer, baseGroupX : uint32, baseGroupY : uint32, baseGroupZ : uint32, groupCountX : uint32, groupCountY : uint32, groupCountZ : uint32) = Loader.vkCmdDispatchBaseKHR.Invoke(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) - - module KHRBindMemory2 = - type VkBindBufferMemoryDeviceGroupInfoKHR = VkBindBufferMemoryDeviceGroupInfo - - type VkBindImageMemoryDeviceGroupInfoKHR = VkBindImageMemoryDeviceGroupInfo - - - [] - module EnumExtensions = - type VkImageCreateFlags with - static member inline SplitInstanceBindRegionsBitKhr = unbox 0x00000040 - + static member vkCmdSetPatchControlPointsEXT = s_vkCmdSetPatchControlPointsEXTDel + static member vkCmdSetRasterizerDiscardEnableEXT = s_vkCmdSetRasterizerDiscardEnableEXTDel + static member vkCmdSetDepthBiasEnableEXT = s_vkCmdSetDepthBiasEnableEXTDel + static member vkCmdSetLogicOpEXT = s_vkCmdSetLogicOpEXTDel + static member vkCmdSetPrimitiveRestartEnableEXT = s_vkCmdSetPrimitiveRestartEnableEXTDel + let vkCmdSetPatchControlPointsEXT(commandBuffer : VkCommandBuffer, patchControlPoints : uint32) = Loader.vkCmdSetPatchControlPointsEXT.Invoke(commandBuffer, patchControlPoints) + let vkCmdSetRasterizerDiscardEnableEXT(commandBuffer : VkCommandBuffer, rasterizerDiscardEnable : VkBool32) = Loader.vkCmdSetRasterizerDiscardEnableEXT.Invoke(commandBuffer, rasterizerDiscardEnable) + let vkCmdSetDepthBiasEnableEXT(commandBuffer : VkCommandBuffer, depthBiasEnable : VkBool32) = Loader.vkCmdSetDepthBiasEnableEXT.Invoke(commandBuffer, depthBiasEnable) + let vkCmdSetLogicOpEXT(commandBuffer : VkCommandBuffer, logicOp : VkLogicOp) = Loader.vkCmdSetLogicOpEXT.Invoke(commandBuffer, logicOp) + let vkCmdSetPrimitiveRestartEnableEXT(commandBuffer : VkCommandBuffer, primitiveRestartEnable : VkBool32) = Loader.vkCmdSetPrimitiveRestartEnableEXT.Invoke(commandBuffer, primitiveRestartEnable) - module KHRSurface = - type VkDeviceGroupPresentModeFlagsKHR = KHRSwapchain.Vulkan11.VkDeviceGroupPresentModeFlagsKHR +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module EXTSampleLocations = + let Type = ExtensionType.Device + let Name = "VK_EXT_sample_locations" + let Number = 144 - type VkDeviceGroupPresentCapabilitiesKHR = KHRSwapchain.Vulkan11.VkDeviceGroupPresentCapabilitiesKHR + [] + type VkSampleLocationEXT = + struct + val mutable public x : float32 + val mutable public y : float32 + new(x : float32, y : float32) = + { + x = x + y = y + } - module VkRaw = - let vkGetDeviceGroupPresentCapabilitiesKHR = KHRSwapchain.Vulkan11.VkRaw.vkGetDeviceGroupPresentCapabilitiesKHR - let vkGetDeviceGroupSurfacePresentModesKHR = KHRSwapchain.Vulkan11.VkRaw.vkGetDeviceGroupSurfacePresentModesKHR - let vkGetPhysicalDevicePresentRectanglesKHR = KHRSwapchain.Vulkan11.VkRaw.vkGetPhysicalDevicePresentRectanglesKHR + member x.IsEmpty = + x.x = Unchecked.defaultof && x.y = Unchecked.defaultof - module KHRSwapchain = - type VkAcquireNextImageInfoKHR = KHRSwapchain.Vulkan11.VkAcquireNextImageInfoKHR + static member Empty = + VkSampleLocationEXT(Unchecked.defaultof, Unchecked.defaultof) - type VkBindImageMemorySwapchainInfoKHR = KHRSwapchain.Vulkan11.VkBindImageMemorySwapchainInfoKHR + override x.ToString() = + String.concat "; " [ + sprintf "x = %A" x.x + sprintf "y = %A" x.y + ] |> sprintf "VkSampleLocationEXT { %s }" + end - type VkDeviceGroupPresentInfoKHR = KHRSwapchain.Vulkan11.VkDeviceGroupPresentInfoKHR + [] + type VkSampleLocationsInfoEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public sampleLocationsPerPixel : VkSampleCountFlags + val mutable public sampleLocationGridSize : VkExtent2D + val mutable public sampleLocationsCount : uint32 + val mutable public pSampleLocations : nativeptr - type VkDeviceGroupSwapchainCreateInfoKHR = KHRSwapchain.Vulkan11.VkDeviceGroupSwapchainCreateInfoKHR + new(pNext : nativeint, sampleLocationsPerPixel : VkSampleCountFlags, sampleLocationGridSize : VkExtent2D, sampleLocationsCount : uint32, pSampleLocations : nativeptr) = + { + sType = 1000143000u + pNext = pNext + sampleLocationsPerPixel = sampleLocationsPerPixel + sampleLocationGridSize = sampleLocationGridSize + sampleLocationsCount = sampleLocationsCount + pSampleLocations = pSampleLocations + } - type VkImageSwapchainCreateInfoKHR = KHRSwapchain.Vulkan11.VkImageSwapchainCreateInfoKHR + new(sampleLocationsPerPixel : VkSampleCountFlags, sampleLocationGridSize : VkExtent2D, sampleLocationsCount : uint32, pSampleLocations : nativeptr) = + VkSampleLocationsInfoEXT(Unchecked.defaultof, sampleLocationsPerPixel, sampleLocationGridSize, sampleLocationsCount, pSampleLocations) + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.sampleLocationsPerPixel = Unchecked.defaultof && x.sampleLocationGridSize = Unchecked.defaultof && x.sampleLocationsCount = Unchecked.defaultof && x.pSampleLocations = Unchecked.defaultof> - [] - module EnumExtensions = - type VkSwapchainCreateFlagsKHR with - /// Allow images with VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT - static member inline SplitInstanceBindRegionsBit = unbox 0x00000001 + static member Empty = + VkSampleLocationsInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) - module VkRaw = - let vkAcquireNextImage2KHR = KHRSwapchain.Vulkan11.VkRaw.vkAcquireNextImage2KHR + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "sampleLocationsPerPixel = %A" x.sampleLocationsPerPixel + sprintf "sampleLocationGridSize = %A" x.sampleLocationGridSize + sprintf "sampleLocationsCount = %A" x.sampleLocationsCount + sprintf "pSampleLocations = %A" x.pSampleLocations + ] |> sprintf "VkSampleLocationsInfoEXT { %s }" + end -module EXTFullScreenExclusive = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - open KHRGetSurfaceCapabilities2 - open KHRSurface - open KHRSwapchain - let Name = "VK_EXT_full_screen_exclusive" - let Number = 256 + [] + type VkAttachmentSampleLocationsEXT = + struct + val mutable public attachmentIndex : uint32 + val mutable public sampleLocationsInfo : VkSampleLocationsInfoEXT - let Required = [ KHRGetPhysicalDeviceProperties2.Name; KHRGetSurfaceCapabilities2.Name; KHRSurface.Name; KHRSwapchain.Name ] + new(attachmentIndex : uint32, sampleLocationsInfo : VkSampleLocationsInfoEXT) = + { + attachmentIndex = attachmentIndex + sampleLocationsInfo = sampleLocationsInfo + } + member x.IsEmpty = + x.attachmentIndex = Unchecked.defaultof && x.sampleLocationsInfo = Unchecked.defaultof - type VkFullScreenExclusiveEXT = - | Default = 0 - | Allowed = 1 - | Disallowed = 2 - | ApplicationControlled = 3 + static member Empty = + VkAttachmentSampleLocationsEXT(Unchecked.defaultof, Unchecked.defaultof) + override x.ToString() = + String.concat "; " [ + sprintf "attachmentIndex = %A" x.attachmentIndex + sprintf "sampleLocationsInfo = %A" x.sampleLocationsInfo + ] |> sprintf "VkAttachmentSampleLocationsEXT { %s }" + end [] - type VkSurfaceCapabilitiesFullScreenExclusiveEXT = + type VkMultisamplePropertiesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public fullScreenExclusiveSupported : VkBool32 + val mutable public maxSampleLocationGridSize : VkExtent2D - new(pNext : nativeint, fullScreenExclusiveSupported : VkBool32) = + new(pNext : nativeint, maxSampleLocationGridSize : VkExtent2D) = { - sType = 1000255002u + sType = 1000143004u pNext = pNext - fullScreenExclusiveSupported = fullScreenExclusiveSupported + maxSampleLocationGridSize = maxSampleLocationGridSize } - new(fullScreenExclusiveSupported : VkBool32) = - VkSurfaceCapabilitiesFullScreenExclusiveEXT(Unchecked.defaultof, fullScreenExclusiveSupported) + new(maxSampleLocationGridSize : VkExtent2D) = + VkMultisamplePropertiesEXT(Unchecked.defaultof, maxSampleLocationGridSize) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.fullScreenExclusiveSupported = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.maxSampleLocationGridSize = Unchecked.defaultof static member Empty = - VkSurfaceCapabilitiesFullScreenExclusiveEXT(Unchecked.defaultof, Unchecked.defaultof) + VkMultisamplePropertiesEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "fullScreenExclusiveSupported = %A" x.fullScreenExclusiveSupported - ] |> sprintf "VkSurfaceCapabilitiesFullScreenExclusiveEXT { %s }" + sprintf "maxSampleLocationGridSize = %A" x.maxSampleLocationGridSize + ] |> sprintf "VkMultisamplePropertiesEXT { %s }" end [] - type VkSurfaceFullScreenExclusiveInfoEXT = + type VkPhysicalDeviceSampleLocationsPropertiesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public fullScreenExclusive : VkFullScreenExclusiveEXT + val mutable public sampleLocationSampleCounts : VkSampleCountFlags + val mutable public maxSampleLocationGridSize : VkExtent2D + val mutable public sampleLocationCoordinateRange : V2f + val mutable public sampleLocationSubPixelBits : uint32 + val mutable public variableSampleLocations : VkBool32 - new(pNext : nativeint, fullScreenExclusive : VkFullScreenExclusiveEXT) = + new(pNext : nativeint, sampleLocationSampleCounts : VkSampleCountFlags, maxSampleLocationGridSize : VkExtent2D, sampleLocationCoordinateRange : V2f, sampleLocationSubPixelBits : uint32, variableSampleLocations : VkBool32) = { - sType = 1000255000u + sType = 1000143003u pNext = pNext - fullScreenExclusive = fullScreenExclusive + sampleLocationSampleCounts = sampleLocationSampleCounts + maxSampleLocationGridSize = maxSampleLocationGridSize + sampleLocationCoordinateRange = sampleLocationCoordinateRange + sampleLocationSubPixelBits = sampleLocationSubPixelBits + variableSampleLocations = variableSampleLocations } - new(fullScreenExclusive : VkFullScreenExclusiveEXT) = - VkSurfaceFullScreenExclusiveInfoEXT(Unchecked.defaultof, fullScreenExclusive) + new(sampleLocationSampleCounts : VkSampleCountFlags, maxSampleLocationGridSize : VkExtent2D, sampleLocationCoordinateRange : V2f, sampleLocationSubPixelBits : uint32, variableSampleLocations : VkBool32) = + VkPhysicalDeviceSampleLocationsPropertiesEXT(Unchecked.defaultof, sampleLocationSampleCounts, maxSampleLocationGridSize, sampleLocationCoordinateRange, sampleLocationSubPixelBits, variableSampleLocations) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.fullScreenExclusive = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.sampleLocationSampleCounts = Unchecked.defaultof && x.maxSampleLocationGridSize = Unchecked.defaultof && x.sampleLocationCoordinateRange = Unchecked.defaultof && x.sampleLocationSubPixelBits = Unchecked.defaultof && x.variableSampleLocations = Unchecked.defaultof static member Empty = - VkSurfaceFullScreenExclusiveInfoEXT(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceSampleLocationsPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "fullScreenExclusive = %A" x.fullScreenExclusive - ] |> sprintf "VkSurfaceFullScreenExclusiveInfoEXT { %s }" + sprintf "sampleLocationSampleCounts = %A" x.sampleLocationSampleCounts + sprintf "maxSampleLocationGridSize = %A" x.maxSampleLocationGridSize + sprintf "sampleLocationCoordinateRange = %A" x.sampleLocationCoordinateRange + sprintf "sampleLocationSubPixelBits = %A" x.sampleLocationSubPixelBits + sprintf "variableSampleLocations = %A" x.variableSampleLocations + ] |> sprintf "VkPhysicalDeviceSampleLocationsPropertiesEXT { %s }" end + [] + type VkPipelineSampleLocationsStateCreateInfoEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public sampleLocationsEnable : VkBool32 + val mutable public sampleLocationsInfo : VkSampleLocationsInfoEXT - [] - module EnumExtensions = - type VkResult with - static member inline ErrorFullScreenExclusiveModeLostExt = unbox -1000255000 - - module VkRaw = - [] - type VkGetPhysicalDeviceSurfacePresentModes2EXTDel = delegate of VkPhysicalDevice * nativeptr * nativeptr * nativeptr -> VkResult - [] - type VkAcquireFullScreenExclusiveModeEXTDel = delegate of VkDevice * VkSwapchainKHR -> VkResult - [] - type VkReleaseFullScreenExclusiveModeEXTDel = delegate of VkDevice * VkSwapchainKHR -> VkResult - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading EXTFullScreenExclusive") - static let s_vkGetPhysicalDeviceSurfacePresentModes2EXTDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceSurfacePresentModes2EXT" - static let s_vkAcquireFullScreenExclusiveModeEXTDel = VkRaw.vkImportInstanceDelegate "vkAcquireFullScreenExclusiveModeEXT" - static let s_vkReleaseFullScreenExclusiveModeEXTDel = VkRaw.vkImportInstanceDelegate "vkReleaseFullScreenExclusiveModeEXT" - static do Report.End(3) |> ignore - static member vkGetPhysicalDeviceSurfacePresentModes2EXT = s_vkGetPhysicalDeviceSurfacePresentModes2EXTDel - static member vkAcquireFullScreenExclusiveModeEXT = s_vkAcquireFullScreenExclusiveModeEXTDel - static member vkReleaseFullScreenExclusiveModeEXT = s_vkReleaseFullScreenExclusiveModeEXTDel - let vkGetPhysicalDeviceSurfacePresentModes2EXT(physicalDevice : VkPhysicalDevice, pSurfaceInfo : nativeptr, pPresentModeCount : nativeptr, pPresentModes : nativeptr) = Loader.vkGetPhysicalDeviceSurfacePresentModes2EXT.Invoke(physicalDevice, pSurfaceInfo, pPresentModeCount, pPresentModes) - let vkAcquireFullScreenExclusiveModeEXT(device : VkDevice, swapchain : VkSwapchainKHR) = Loader.vkAcquireFullScreenExclusiveModeEXT.Invoke(device, swapchain) - let vkReleaseFullScreenExclusiveModeEXT(device : VkDevice, swapchain : VkSwapchainKHR) = Loader.vkReleaseFullScreenExclusiveModeEXT.Invoke(device, swapchain) - - module KHRWin32Surface = - [] - type VkSurfaceFullScreenExclusiveWin32InfoEXT = - struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public hmonitor : nativeint - - new(pNext : nativeint, hmonitor : nativeint) = - { - sType = 1000255001u - pNext = pNext - hmonitor = hmonitor - } - - new(hmonitor : nativeint) = - VkSurfaceFullScreenExclusiveWin32InfoEXT(Unchecked.defaultof, hmonitor) - - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.hmonitor = Unchecked.defaultof - - static member Empty = - VkSurfaceFullScreenExclusiveWin32InfoEXT(Unchecked.defaultof, Unchecked.defaultof) - - override x.ToString() = - String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "hmonitor = %A" x.hmonitor - ] |> sprintf "VkSurfaceFullScreenExclusiveWin32InfoEXT { %s }" - end - - - - module KHRDeviceGroup = - type VkDeviceGroupPresentModeFlagsKHR = KHRSwapchain.Vulkan11.VkDeviceGroupPresentModeFlagsKHR - - module VkRaw = - [] - type VkGetDeviceGroupSurfacePresentModes2EXTDel = delegate of VkDevice * nativeptr * nativeptr -> VkResult - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading EXTFullScreenExclusive -> KHRDeviceGroup") - static let s_vkGetDeviceGroupSurfacePresentModes2EXTDel = VkRaw.vkImportInstanceDelegate "vkGetDeviceGroupSurfacePresentModes2EXT" - static do Report.End(3) |> ignore - static member vkGetDeviceGroupSurfacePresentModes2EXT = s_vkGetDeviceGroupSurfacePresentModes2EXTDel - let vkGetDeviceGroupSurfacePresentModes2EXT(device : VkDevice, pSurfaceInfo : nativeptr, pModes : nativeptr) = Loader.vkGetDeviceGroupSurfacePresentModes2EXT.Invoke(device, pSurfaceInfo, pModes) - - module Vulkan11 = - type VkDeviceGroupPresentModeFlagsKHR = KHRSwapchain.Vulkan11.VkDeviceGroupPresentModeFlagsKHR - - module VkRaw = - let vkGetDeviceGroupSurfacePresentModes2EXT = KHRDeviceGroup.VkRaw.vkGetDeviceGroupSurfacePresentModes2EXT - -module EXTGlobalPriority = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_EXT_global_priority" - let Number = 175 - - - type VkQueueGlobalPriorityEXT = VkQueueGlobalPriorityKHR - - type VkDeviceQueueGlobalPriorityCreateInfoEXT = VkDeviceQueueGlobalPriorityCreateInfoKHR - - - [] - module EnumExtensions = - type VkResult with - static member inline ErrorNotPermittedExt = unbox 1000174001 - + new(pNext : nativeint, sampleLocationsEnable : VkBool32, sampleLocationsInfo : VkSampleLocationsInfoEXT) = + { + sType = 1000143002u + pNext = pNext + sampleLocationsEnable = sampleLocationsEnable + sampleLocationsInfo = sampleLocationsInfo + } -module EXTGlobalPriorityQuery = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open EXTGlobalPriority - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_EXT_global_priority_query" - let Number = 389 + new(sampleLocationsEnable : VkBool32, sampleLocationsInfo : VkSampleLocationsInfoEXT) = + VkPipelineSampleLocationsStateCreateInfoEXT(Unchecked.defaultof, sampleLocationsEnable, sampleLocationsInfo) - let Required = [ EXTGlobalPriority.Name; KHRGetPhysicalDeviceProperties2.Name ] + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.sampleLocationsEnable = Unchecked.defaultof && x.sampleLocationsInfo = Unchecked.defaultof + static member Empty = + VkPipelineSampleLocationsStateCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) - type VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT = VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "sampleLocationsEnable = %A" x.sampleLocationsEnable + sprintf "sampleLocationsInfo = %A" x.sampleLocationsInfo + ] |> sprintf "VkPipelineSampleLocationsStateCreateInfoEXT { %s }" + end - type VkQueueFamilyGlobalPriorityPropertiesEXT = VkQueueFamilyGlobalPriorityPropertiesKHR + [] + type VkSubpassSampleLocationsEXT = + struct + val mutable public subpassIndex : uint32 + val mutable public sampleLocationsInfo : VkSampleLocationsInfoEXT + new(subpassIndex : uint32, sampleLocationsInfo : VkSampleLocationsInfoEXT) = + { + subpassIndex = subpassIndex + sampleLocationsInfo = sampleLocationsInfo + } + member x.IsEmpty = + x.subpassIndex = Unchecked.defaultof && x.sampleLocationsInfo = Unchecked.defaultof -module KHRPipelineLibrary = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_KHR_pipeline_library" - let Number = 291 + static member Empty = + VkSubpassSampleLocationsEXT(Unchecked.defaultof, Unchecked.defaultof) + override x.ToString() = + String.concat "; " [ + sprintf "subpassIndex = %A" x.subpassIndex + sprintf "sampleLocationsInfo = %A" x.sampleLocationsInfo + ] |> sprintf "VkSubpassSampleLocationsEXT { %s }" + end [] - type VkPipelineLibraryCreateInfoKHR = + type VkRenderPassSampleLocationsBeginInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public libraryCount : uint32 - val mutable public pLibraries : nativeptr + val mutable public attachmentInitialSampleLocationsCount : uint32 + val mutable public pAttachmentInitialSampleLocations : nativeptr + val mutable public postSubpassSampleLocationsCount : uint32 + val mutable public pPostSubpassSampleLocations : nativeptr - new(pNext : nativeint, libraryCount : uint32, pLibraries : nativeptr) = + new(pNext : nativeint, attachmentInitialSampleLocationsCount : uint32, pAttachmentInitialSampleLocations : nativeptr, postSubpassSampleLocationsCount : uint32, pPostSubpassSampleLocations : nativeptr) = { - sType = 1000290000u + sType = 1000143001u pNext = pNext - libraryCount = libraryCount - pLibraries = pLibraries + attachmentInitialSampleLocationsCount = attachmentInitialSampleLocationsCount + pAttachmentInitialSampleLocations = pAttachmentInitialSampleLocations + postSubpassSampleLocationsCount = postSubpassSampleLocationsCount + pPostSubpassSampleLocations = pPostSubpassSampleLocations } - new(libraryCount : uint32, pLibraries : nativeptr) = - VkPipelineLibraryCreateInfoKHR(Unchecked.defaultof, libraryCount, pLibraries) + new(attachmentInitialSampleLocationsCount : uint32, pAttachmentInitialSampleLocations : nativeptr, postSubpassSampleLocationsCount : uint32, pPostSubpassSampleLocations : nativeptr) = + VkRenderPassSampleLocationsBeginInfoEXT(Unchecked.defaultof, attachmentInitialSampleLocationsCount, pAttachmentInitialSampleLocations, postSubpassSampleLocationsCount, pPostSubpassSampleLocations) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.libraryCount = Unchecked.defaultof && x.pLibraries = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.attachmentInitialSampleLocationsCount = Unchecked.defaultof && x.pAttachmentInitialSampleLocations = Unchecked.defaultof> && x.postSubpassSampleLocationsCount = Unchecked.defaultof && x.pPostSubpassSampleLocations = Unchecked.defaultof> static member Empty = - VkPipelineLibraryCreateInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + VkRenderPassSampleLocationsBeginInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "libraryCount = %A" x.libraryCount - sprintf "pLibraries = %A" x.pLibraries - ] |> sprintf "VkPipelineLibraryCreateInfoKHR { %s }" + sprintf "attachmentInitialSampleLocationsCount = %A" x.attachmentInitialSampleLocationsCount + sprintf "pAttachmentInitialSampleLocations = %A" x.pAttachmentInitialSampleLocations + sprintf "postSubpassSampleLocationsCount = %A" x.postSubpassSampleLocationsCount + sprintf "pPostSubpassSampleLocations = %A" x.pPostSubpassSampleLocations + ] |> sprintf "VkRenderPassSampleLocationsBeginInfoEXT { %s }" end [] module EnumExtensions = - type VkPipelineCreateFlags with - static member inline LibraryBitKhr = unbox 0x00000800 - + type VkDynamicState with + static member inline SampleLocationsExt = unbox 1000143000 + type VkImageCreateFlags with + static member inline SampleLocationsCompatibleDepthBitExt = unbox 0x00001000 -module EXTGraphicsPipelineLibrary = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - open KHRPipelineLibrary - let Name = "VK_EXT_graphics_pipeline_library" - let Number = 321 + module VkRaw = + [] + type VkCmdSetSampleLocationsEXTDel = delegate of VkCommandBuffer * nativeptr -> unit + [] + type VkGetPhysicalDeviceMultisamplePropertiesEXTDel = delegate of VkPhysicalDevice * VkSampleCountFlags * nativeptr -> unit - let Required = [ KHRGetPhysicalDeviceProperties2.Name; KHRPipelineLibrary.Name ] + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTSampleLocations") + static let s_vkCmdSetSampleLocationsEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetSampleLocationsEXT" + static let s_vkGetPhysicalDeviceMultisamplePropertiesEXTDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceMultisamplePropertiesEXT" + static do Report.End(3) |> ignore + static member vkCmdSetSampleLocationsEXT = s_vkCmdSetSampleLocationsEXTDel + static member vkGetPhysicalDeviceMultisamplePropertiesEXT = s_vkGetPhysicalDeviceMultisamplePropertiesEXTDel + let vkCmdSetSampleLocationsEXT(commandBuffer : VkCommandBuffer, pSampleLocationsInfo : nativeptr) = Loader.vkCmdSetSampleLocationsEXT.Invoke(commandBuffer, pSampleLocationsInfo) + let vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice : VkPhysicalDevice, samples : VkSampleCountFlags, pMultisampleProperties : nativeptr) = Loader.vkGetPhysicalDeviceMultisamplePropertiesEXT.Invoke(physicalDevice, samples, pMultisampleProperties) +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module EXTProvokingVertex = + let Type = ExtensionType.Device + let Name = "VK_EXT_provoking_vertex" + let Number = 255 - [] - type VkGraphicsPipelineLibraryFlagsEXT = - | All = 15 - | None = 0 - | VertexInputInterfaceBit = 0x00000001 - | PreRasterizationShadersBit = 0x00000002 - | FragmentShaderBit = 0x00000004 - | FragmentOutputInterfaceBit = 0x00000008 + type VkProvokingVertexModeEXT = + | FirstVertex = 0 + | LastVertex = 1 [] - type VkGraphicsPipelineLibraryCreateInfoEXT = + type VkPhysicalDeviceProvokingVertexFeaturesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public flags : VkGraphicsPipelineLibraryFlagsEXT + val mutable public provokingVertexLast : VkBool32 + val mutable public transformFeedbackPreservesProvokingVertex : VkBool32 - new(pNext : nativeint, flags : VkGraphicsPipelineLibraryFlagsEXT) = + new(pNext : nativeint, provokingVertexLast : VkBool32, transformFeedbackPreservesProvokingVertex : VkBool32) = { - sType = 1000320002u + sType = 1000254000u pNext = pNext - flags = flags + provokingVertexLast = provokingVertexLast + transformFeedbackPreservesProvokingVertex = transformFeedbackPreservesProvokingVertex } - new(flags : VkGraphicsPipelineLibraryFlagsEXT) = - VkGraphicsPipelineLibraryCreateInfoEXT(Unchecked.defaultof, flags) + new(provokingVertexLast : VkBool32, transformFeedbackPreservesProvokingVertex : VkBool32) = + VkPhysicalDeviceProvokingVertexFeaturesEXT(Unchecked.defaultof, provokingVertexLast, transformFeedbackPreservesProvokingVertex) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.provokingVertexLast = Unchecked.defaultof && x.transformFeedbackPreservesProvokingVertex = Unchecked.defaultof static member Empty = - VkGraphicsPipelineLibraryCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceProvokingVertexFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "flags = %A" x.flags - ] |> sprintf "VkGraphicsPipelineLibraryCreateInfoEXT { %s }" + sprintf "provokingVertexLast = %A" x.provokingVertexLast + sprintf "transformFeedbackPreservesProvokingVertex = %A" x.transformFeedbackPreservesProvokingVertex + ] |> sprintf "VkPhysicalDeviceProvokingVertexFeaturesEXT { %s }" end [] - type VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT = + type VkPhysicalDeviceProvokingVertexPropertiesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public graphicsPipelineLibrary : VkBool32 + val mutable public provokingVertexModePerPipeline : VkBool32 + val mutable public transformFeedbackPreservesTriangleFanProvokingVertex : VkBool32 - new(pNext : nativeint, graphicsPipelineLibrary : VkBool32) = + new(pNext : nativeint, provokingVertexModePerPipeline : VkBool32, transformFeedbackPreservesTriangleFanProvokingVertex : VkBool32) = { - sType = 1000320000u + sType = 1000254002u pNext = pNext - graphicsPipelineLibrary = graphicsPipelineLibrary + provokingVertexModePerPipeline = provokingVertexModePerPipeline + transformFeedbackPreservesTriangleFanProvokingVertex = transformFeedbackPreservesTriangleFanProvokingVertex } - new(graphicsPipelineLibrary : VkBool32) = - VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT(Unchecked.defaultof, graphicsPipelineLibrary) + new(provokingVertexModePerPipeline : VkBool32, transformFeedbackPreservesTriangleFanProvokingVertex : VkBool32) = + VkPhysicalDeviceProvokingVertexPropertiesEXT(Unchecked.defaultof, provokingVertexModePerPipeline, transformFeedbackPreservesTriangleFanProvokingVertex) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.graphicsPipelineLibrary = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.provokingVertexModePerPipeline = Unchecked.defaultof && x.transformFeedbackPreservesTriangleFanProvokingVertex = Unchecked.defaultof static member Empty = - VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceProvokingVertexPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "graphicsPipelineLibrary = %A" x.graphicsPipelineLibrary - ] |> sprintf "VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT { %s }" + sprintf "provokingVertexModePerPipeline = %A" x.provokingVertexModePerPipeline + sprintf "transformFeedbackPreservesTriangleFanProvokingVertex = %A" x.transformFeedbackPreservesTriangleFanProvokingVertex + ] |> sprintf "VkPhysicalDeviceProvokingVertexPropertiesEXT { %s }" end [] - type VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT = + type VkPipelineRasterizationProvokingVertexStateCreateInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public graphicsPipelineLibraryFastLinking : VkBool32 - val mutable public graphicsPipelineLibraryIndependentInterpolationDecoration : VkBool32 + val mutable public provokingVertexMode : VkProvokingVertexModeEXT - new(pNext : nativeint, graphicsPipelineLibraryFastLinking : VkBool32, graphicsPipelineLibraryIndependentInterpolationDecoration : VkBool32) = + new(pNext : nativeint, provokingVertexMode : VkProvokingVertexModeEXT) = { - sType = 1000320001u + sType = 1000254001u pNext = pNext - graphicsPipelineLibraryFastLinking = graphicsPipelineLibraryFastLinking - graphicsPipelineLibraryIndependentInterpolationDecoration = graphicsPipelineLibraryIndependentInterpolationDecoration + provokingVertexMode = provokingVertexMode } - new(graphicsPipelineLibraryFastLinking : VkBool32, graphicsPipelineLibraryIndependentInterpolationDecoration : VkBool32) = - VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT(Unchecked.defaultof, graphicsPipelineLibraryFastLinking, graphicsPipelineLibraryIndependentInterpolationDecoration) + new(provokingVertexMode : VkProvokingVertexModeEXT) = + VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(Unchecked.defaultof, provokingVertexMode) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.graphicsPipelineLibraryFastLinking = Unchecked.defaultof && x.graphicsPipelineLibraryIndependentInterpolationDecoration = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.provokingVertexMode = Unchecked.defaultof static member Empty = - VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "graphicsPipelineLibraryFastLinking = %A" x.graphicsPipelineLibraryFastLinking - sprintf "graphicsPipelineLibraryIndependentInterpolationDecoration = %A" x.graphicsPipelineLibraryIndependentInterpolationDecoration - ] |> sprintf "VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT { %s }" - end - - - [] - module EnumExtensions = - type VkPipelineCreateFlags with - static member inline RetainLinkTimeOptimizationInfoBitExt = unbox 0x00800000 - static member inline LinkTimeOptimizationBitExt = unbox 0x00000400 - type VkPipelineLayoutCreateFlags with - static member inline IndependentSetsBitExt = unbox 0x00000002 + sprintf "pNext = %A" x.pNext + sprintf "provokingVertexMode = %A" x.provokingVertexMode + ] |> sprintf "VkPipelineRasterizationProvokingVertexStateCreateInfoEXT { %s }" + end -module EXTHdrMetadata = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRSurface - open KHRSwapchain - let Name = "VK_EXT_hdr_metadata" - let Number = 106 - let Required = [ KHRSwapchain.Name ] +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module KHRLineRasterization = + let Type = ExtensionType.Device + let Name = "VK_KHR_line_rasterization" + let Number = 535 + + type VkLineRasterizationModeKHR = + | Default = 0 + | Rectangular = 1 + | Bresenham = 2 + | RectangularSmooth = 3 - /// Chromaticity coordinate [] - type VkXYColorEXT = + type VkPhysicalDeviceLineRasterizationFeaturesKHR = struct - val mutable public x : float32 - val mutable public y : float32 + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public rectangularLines : VkBool32 + val mutable public bresenhamLines : VkBool32 + val mutable public smoothLines : VkBool32 + val mutable public stippledRectangularLines : VkBool32 + val mutable public stippledBresenhamLines : VkBool32 + val mutable public stippledSmoothLines : VkBool32 - new(x : float32, y : float32) = + new(pNext : nativeint, rectangularLines : VkBool32, bresenhamLines : VkBool32, smoothLines : VkBool32, stippledRectangularLines : VkBool32, stippledBresenhamLines : VkBool32, stippledSmoothLines : VkBool32) = { - x = x - y = y + sType = 1000259000u + pNext = pNext + rectangularLines = rectangularLines + bresenhamLines = bresenhamLines + smoothLines = smoothLines + stippledRectangularLines = stippledRectangularLines + stippledBresenhamLines = stippledBresenhamLines + stippledSmoothLines = stippledSmoothLines } + new(rectangularLines : VkBool32, bresenhamLines : VkBool32, smoothLines : VkBool32, stippledRectangularLines : VkBool32, stippledBresenhamLines : VkBool32, stippledSmoothLines : VkBool32) = + VkPhysicalDeviceLineRasterizationFeaturesKHR(Unchecked.defaultof, rectangularLines, bresenhamLines, smoothLines, stippledRectangularLines, stippledBresenhamLines, stippledSmoothLines) + member x.IsEmpty = - x.x = Unchecked.defaultof && x.y = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.rectangularLines = Unchecked.defaultof && x.bresenhamLines = Unchecked.defaultof && x.smoothLines = Unchecked.defaultof && x.stippledRectangularLines = Unchecked.defaultof && x.stippledBresenhamLines = Unchecked.defaultof && x.stippledSmoothLines = Unchecked.defaultof static member Empty = - VkXYColorEXT(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceLineRasterizationFeaturesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ - sprintf "x = %A" x.x - sprintf "y = %A" x.y - ] |> sprintf "VkXYColorEXT { %s }" + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "rectangularLines = %A" x.rectangularLines + sprintf "bresenhamLines = %A" x.bresenhamLines + sprintf "smoothLines = %A" x.smoothLines + sprintf "stippledRectangularLines = %A" x.stippledRectangularLines + sprintf "stippledBresenhamLines = %A" x.stippledBresenhamLines + sprintf "stippledSmoothLines = %A" x.stippledSmoothLines + ] |> sprintf "VkPhysicalDeviceLineRasterizationFeaturesKHR { %s }" end [] - type VkHdrMetadataEXT = + type VkPhysicalDeviceLineRasterizationPropertiesKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public displayPrimaryRed : VkXYColorEXT - val mutable public displayPrimaryGreen : VkXYColorEXT - val mutable public displayPrimaryBlue : VkXYColorEXT - val mutable public whitePoint : VkXYColorEXT - val mutable public maxLuminance : float32 - val mutable public minLuminance : float32 - val mutable public maxContentLightLevel : float32 - val mutable public maxFrameAverageLightLevel : float32 + val mutable public lineSubPixelPrecisionBits : uint32 - new(pNext : nativeint, displayPrimaryRed : VkXYColorEXT, displayPrimaryGreen : VkXYColorEXT, displayPrimaryBlue : VkXYColorEXT, whitePoint : VkXYColorEXT, maxLuminance : float32, minLuminance : float32, maxContentLightLevel : float32, maxFrameAverageLightLevel : float32) = + new(pNext : nativeint, lineSubPixelPrecisionBits : uint32) = { - sType = 1000105000u + sType = 1000259002u pNext = pNext - displayPrimaryRed = displayPrimaryRed - displayPrimaryGreen = displayPrimaryGreen - displayPrimaryBlue = displayPrimaryBlue - whitePoint = whitePoint - maxLuminance = maxLuminance - minLuminance = minLuminance - maxContentLightLevel = maxContentLightLevel - maxFrameAverageLightLevel = maxFrameAverageLightLevel + lineSubPixelPrecisionBits = lineSubPixelPrecisionBits } - new(displayPrimaryRed : VkXYColorEXT, displayPrimaryGreen : VkXYColorEXT, displayPrimaryBlue : VkXYColorEXT, whitePoint : VkXYColorEXT, maxLuminance : float32, minLuminance : float32, maxContentLightLevel : float32, maxFrameAverageLightLevel : float32) = - VkHdrMetadataEXT(Unchecked.defaultof, displayPrimaryRed, displayPrimaryGreen, displayPrimaryBlue, whitePoint, maxLuminance, minLuminance, maxContentLightLevel, maxFrameAverageLightLevel) + new(lineSubPixelPrecisionBits : uint32) = + VkPhysicalDeviceLineRasterizationPropertiesKHR(Unchecked.defaultof, lineSubPixelPrecisionBits) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.displayPrimaryRed = Unchecked.defaultof && x.displayPrimaryGreen = Unchecked.defaultof && x.displayPrimaryBlue = Unchecked.defaultof && x.whitePoint = Unchecked.defaultof && x.maxLuminance = Unchecked.defaultof && x.minLuminance = Unchecked.defaultof && x.maxContentLightLevel = Unchecked.defaultof && x.maxFrameAverageLightLevel = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.lineSubPixelPrecisionBits = Unchecked.defaultof static member Empty = - VkHdrMetadataEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceLineRasterizationPropertiesKHR(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "displayPrimaryRed = %A" x.displayPrimaryRed - sprintf "displayPrimaryGreen = %A" x.displayPrimaryGreen - sprintf "displayPrimaryBlue = %A" x.displayPrimaryBlue - sprintf "whitePoint = %A" x.whitePoint - sprintf "maxLuminance = %A" x.maxLuminance - sprintf "minLuminance = %A" x.minLuminance - sprintf "maxContentLightLevel = %A" x.maxContentLightLevel - sprintf "maxFrameAverageLightLevel = %A" x.maxFrameAverageLightLevel - ] |> sprintf "VkHdrMetadataEXT { %s }" + sprintf "lineSubPixelPrecisionBits = %A" x.lineSubPixelPrecisionBits + ] |> sprintf "VkPhysicalDeviceLineRasterizationPropertiesKHR { %s }" end - - module VkRaw = - [] - type VkSetHdrMetadataEXTDel = delegate of VkDevice * uint32 * nativeptr * nativeptr -> unit - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading EXTHdrMetadata") - static let s_vkSetHdrMetadataEXTDel = VkRaw.vkImportInstanceDelegate "vkSetHdrMetadataEXT" - static do Report.End(3) |> ignore - static member vkSetHdrMetadataEXT = s_vkSetHdrMetadataEXTDel - let vkSetHdrMetadataEXT(device : VkDevice, swapchainCount : uint32, pSwapchains : nativeptr, pMetadata : nativeptr) = Loader.vkSetHdrMetadataEXT.Invoke(device, swapchainCount, pSwapchains, pMetadata) - -module EXTHeadlessSurface = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRSurface - let Name = "VK_EXT_headless_surface" - let Number = 257 - - let Required = [ KHRSurface.Name ] - - [] - type VkHeadlessSurfaceCreateInfoEXT = + type VkPipelineRasterizationLineStateCreateInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public flags : VkHeadlessSurfaceCreateFlagsEXT + val mutable public lineRasterizationMode : VkLineRasterizationModeKHR + val mutable public stippledLineEnable : VkBool32 + val mutable public lineStippleFactor : uint32 + val mutable public lineStipplePattern : uint16 - new(pNext : nativeint, flags : VkHeadlessSurfaceCreateFlagsEXT) = + new(pNext : nativeint, lineRasterizationMode : VkLineRasterizationModeKHR, stippledLineEnable : VkBool32, lineStippleFactor : uint32, lineStipplePattern : uint16) = { - sType = 1000256000u + sType = 1000259001u pNext = pNext - flags = flags + lineRasterizationMode = lineRasterizationMode + stippledLineEnable = stippledLineEnable + lineStippleFactor = lineStippleFactor + lineStipplePattern = lineStipplePattern } - new(flags : VkHeadlessSurfaceCreateFlagsEXT) = - VkHeadlessSurfaceCreateInfoEXT(Unchecked.defaultof, flags) + new(lineRasterizationMode : VkLineRasterizationModeKHR, stippledLineEnable : VkBool32, lineStippleFactor : uint32, lineStipplePattern : uint16) = + VkPipelineRasterizationLineStateCreateInfoKHR(Unchecked.defaultof, lineRasterizationMode, stippledLineEnable, lineStippleFactor, lineStipplePattern) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.lineRasterizationMode = Unchecked.defaultof && x.stippledLineEnable = Unchecked.defaultof && x.lineStippleFactor = Unchecked.defaultof && x.lineStipplePattern = Unchecked.defaultof static member Empty = - VkHeadlessSurfaceCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof) + VkPipelineRasterizationLineStateCreateInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "flags = %A" x.flags - ] |> sprintf "VkHeadlessSurfaceCreateInfoEXT { %s }" + sprintf "lineRasterizationMode = %A" x.lineRasterizationMode + sprintf "stippledLineEnable = %A" x.stippledLineEnable + sprintf "lineStippleFactor = %A" x.lineStippleFactor + sprintf "lineStipplePattern = %A" x.lineStipplePattern + ] |> sprintf "VkPipelineRasterizationLineStateCreateInfoKHR { %s }" end + [] + module EnumExtensions = + type VkDynamicState with + static member inline LineStippleKhr = unbox 1000259000 + module VkRaw = [] - type VkCreateHeadlessSurfaceEXTDel = delegate of VkInstance * nativeptr * nativeptr * nativeptr -> VkResult + type VkCmdSetLineStippleKHRDel = delegate of VkCommandBuffer * uint32 * uint16 -> unit [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading EXTHeadlessSurface") - static let s_vkCreateHeadlessSurfaceEXTDel = VkRaw.vkImportInstanceDelegate "vkCreateHeadlessSurfaceEXT" + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRLineRasterization") + static let s_vkCmdSetLineStippleKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdSetLineStippleKHR" static do Report.End(3) |> ignore - static member vkCreateHeadlessSurfaceEXT = s_vkCreateHeadlessSurfaceEXTDel - let vkCreateHeadlessSurfaceEXT(instance : VkInstance, pCreateInfo : nativeptr, pAllocator : nativeptr, pSurface : nativeptr) = Loader.vkCreateHeadlessSurfaceEXT.Invoke(instance, pCreateInfo, pAllocator, pSurface) + static member vkCmdSetLineStippleKHR = s_vkCmdSetLineStippleKHRDel + let vkCmdSetLineStippleKHR(commandBuffer : VkCommandBuffer, lineStippleFactor : uint32, lineStipplePattern : uint16) = Loader.vkCmdSetLineStippleKHR.Invoke(commandBuffer, lineStippleFactor, lineStipplePattern) -module EXTHostQueryReset = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_EXT_host_query_reset" - let Number = 262 +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +/// Promoted to KHRLineRasterization. +module EXTLineRasterization = + let Type = ExtensionType.Device + let Name = "VK_EXT_line_rasterization" + let Number = 260 + + type VkLineRasterizationModeEXT = KHRLineRasterization.VkLineRasterizationModeKHR - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] + type VkPhysicalDeviceLineRasterizationFeaturesEXT = KHRLineRasterization.VkPhysicalDeviceLineRasterizationFeaturesKHR + type VkPhysicalDeviceLineRasterizationPropertiesEXT = KHRLineRasterization.VkPhysicalDeviceLineRasterizationPropertiesKHR - type VkPhysicalDeviceHostQueryResetFeaturesEXT = VkPhysicalDeviceHostQueryResetFeatures + type VkPipelineRasterizationLineStateCreateInfoEXT = KHRLineRasterization.VkPipelineRasterizationLineStateCreateInfoKHR + [] + module EnumExtensions = + type VkDynamicState with + static member inline LineStippleExt = unbox 1000259000 + module VkRaw = [] - type VkResetQueryPoolEXTDel = delegate of VkDevice * VkQueryPool * uint32 * uint32 -> unit + type VkCmdSetLineStippleEXTDel = delegate of VkCommandBuffer * uint32 * uint16 -> unit [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading EXTHostQueryReset") - static let s_vkResetQueryPoolEXTDel = VkRaw.vkImportInstanceDelegate "vkResetQueryPoolEXT" + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTLineRasterization") + static let s_vkCmdSetLineStippleEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetLineStippleEXT" static do Report.End(3) |> ignore - static member vkResetQueryPoolEXT = s_vkResetQueryPoolEXTDel - let vkResetQueryPoolEXT(device : VkDevice, queryPool : VkQueryPool, firstQuery : uint32, queryCount : uint32) = Loader.vkResetQueryPoolEXT.Invoke(device, queryPool, firstQuery, queryCount) - -module EXTImage2dViewOf3d = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - open KHRMaintenance1 - let Name = "VK_EXT_image_2d_view_of_3d" - let Number = 394 - - let Required = [ KHRGetPhysicalDeviceProperties2.Name; KHRMaintenance1.Name ] + static member vkCmdSetLineStippleEXT = s_vkCmdSetLineStippleEXTDel + let vkCmdSetLineStippleEXT(commandBuffer : VkCommandBuffer, lineStippleFactor : uint32, lineStipplePattern : uint16) = Loader.vkCmdSetLineStippleEXT.Invoke(commandBuffer, lineStippleFactor, lineStipplePattern) +module NVClipSpaceWScaling = + let Type = ExtensionType.Device + let Name = "VK_NV_clip_space_w_scaling" + let Number = 88 [] - type VkPhysicalDeviceImage2DViewOf3DFeaturesEXT = + type VkViewportWScalingNV = struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public image2DViewOf3D : VkBool32 - val mutable public sampler2DViewOf3D : VkBool32 + val mutable public xcoeff : float32 + val mutable public ycoeff : float32 - new(pNext : nativeint, image2DViewOf3D : VkBool32, sampler2DViewOf3D : VkBool32) = + new(xcoeff : float32, ycoeff : float32) = { - sType = 1000393000u - pNext = pNext - image2DViewOf3D = image2DViewOf3D - sampler2DViewOf3D = sampler2DViewOf3D + xcoeff = xcoeff + ycoeff = ycoeff } - new(image2DViewOf3D : VkBool32, sampler2DViewOf3D : VkBool32) = - VkPhysicalDeviceImage2DViewOf3DFeaturesEXT(Unchecked.defaultof, image2DViewOf3D, sampler2DViewOf3D) - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.image2DViewOf3D = Unchecked.defaultof && x.sampler2DViewOf3D = Unchecked.defaultof + x.xcoeff = Unchecked.defaultof && x.ycoeff = Unchecked.defaultof static member Empty = - VkPhysicalDeviceImage2DViewOf3DFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkViewportWScalingNV(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "image2DViewOf3D = %A" x.image2DViewOf3D - sprintf "sampler2DViewOf3D = %A" x.sampler2DViewOf3D - ] |> sprintf "VkPhysicalDeviceImage2DViewOf3DFeaturesEXT { %s }" + sprintf "xcoeff = %A" x.xcoeff + sprintf "ycoeff = %A" x.ycoeff + ] |> sprintf "VkViewportWScalingNV { %s }" end - - [] - module EnumExtensions = - type VkImageCreateFlags with - /// Image is created with a layout where individual slices are capable of being used as 2D images - static member inline D2dViewCompatibleBitExt = unbox 0x00020000 - - -module EXTImageCompressionControl = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_EXT_image_compression_control" - let Number = 339 - - - [] - type VkImageCompressionFlagsEXT = - | All = 7 - | Default = 0 - | FixedRateDefault = 0x00000001 - | FixedRateExplicit = 0x00000002 - | Disabled = 0x00000004 - - [] - type VkImageCompressionFixedRateFlagsEXT = - | All = 16777215 - | None = 0 - | D1bpcBit = 0x00000001 - | D2bpcBit = 0x00000002 - | D3bpcBit = 0x00000004 - | D4bpcBit = 0x00000008 - | D5bpcBit = 0x00000010 - | D6bpcBit = 0x00000020 - | D7bpcBit = 0x00000040 - | D8bpcBit = 0x00000080 - | D9bpcBit = 0x00000100 - | D10bpcBit = 0x00000200 - | D11bpcBit = 0x00000400 - | D12bpcBit = 0x00000800 - | D13bpcBit = 0x00001000 - | D14bpcBit = 0x00002000 - | D15bpcBit = 0x00004000 - | D16bpcBit = 0x00008000 - | D17bpcBit = 0x00010000 - | D18bpcBit = 0x00020000 - | D19bpcBit = 0x00040000 - | D20bpcBit = 0x00080000 - | D21bpcBit = 0x00100000 - | D22bpcBit = 0x00200000 - | D23bpcBit = 0x00400000 - | D24bpcBit = 0x00800000 - - [] - type VkImageCompressionControlEXT = + type VkPipelineViewportWScalingStateCreateInfoNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public flags : VkImageCompressionFlagsEXT - val mutable public compressionControlPlaneCount : uint32 - val mutable public pFixedRateFlags : nativeptr + val mutable public viewportWScalingEnable : VkBool32 + val mutable public viewportCount : uint32 + val mutable public pViewportWScalings : nativeptr - new(pNext : nativeint, flags : VkImageCompressionFlagsEXT, compressionControlPlaneCount : uint32, pFixedRateFlags : nativeptr) = + new(pNext : nativeint, viewportWScalingEnable : VkBool32, viewportCount : uint32, pViewportWScalings : nativeptr) = { - sType = 1000338001u + sType = 1000087000u pNext = pNext - flags = flags - compressionControlPlaneCount = compressionControlPlaneCount - pFixedRateFlags = pFixedRateFlags + viewportWScalingEnable = viewportWScalingEnable + viewportCount = viewportCount + pViewportWScalings = pViewportWScalings } - new(flags : VkImageCompressionFlagsEXT, compressionControlPlaneCount : uint32, pFixedRateFlags : nativeptr) = - VkImageCompressionControlEXT(Unchecked.defaultof, flags, compressionControlPlaneCount, pFixedRateFlags) + new(viewportWScalingEnable : VkBool32, viewportCount : uint32, pViewportWScalings : nativeptr) = + VkPipelineViewportWScalingStateCreateInfoNV(Unchecked.defaultof, viewportWScalingEnable, viewportCount, pViewportWScalings) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.compressionControlPlaneCount = Unchecked.defaultof && x.pFixedRateFlags = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.viewportWScalingEnable = Unchecked.defaultof && x.viewportCount = Unchecked.defaultof && x.pViewportWScalings = Unchecked.defaultof> static member Empty = - VkImageCompressionControlEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + VkPipelineViewportWScalingStateCreateInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "flags = %A" x.flags - sprintf "compressionControlPlaneCount = %A" x.compressionControlPlaneCount - sprintf "pFixedRateFlags = %A" x.pFixedRateFlags - ] |> sprintf "VkImageCompressionControlEXT { %s }" + sprintf "viewportWScalingEnable = %A" x.viewportWScalingEnable + sprintf "viewportCount = %A" x.viewportCount + sprintf "pViewportWScalings = %A" x.pViewportWScalings + ] |> sprintf "VkPipelineViewportWScalingStateCreateInfoNV { %s }" end + + [] + module EnumExtensions = + type VkDynamicState with + static member inline ViewportWScalingNv = unbox 1000087000 + + module VkRaw = + [] + type VkCmdSetViewportWScalingNVDel = delegate of VkCommandBuffer * uint32 * uint32 * nativeptr -> unit + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading NVClipSpaceWScaling") + static let s_vkCmdSetViewportWScalingNVDel = VkRaw.vkImportInstanceDelegate "vkCmdSetViewportWScalingNV" + static do Report.End(3) |> ignore + static member vkCmdSetViewportWScalingNV = s_vkCmdSetViewportWScalingNVDel + let vkCmdSetViewportWScalingNV(commandBuffer : VkCommandBuffer, firstViewport : uint32, viewportCount : uint32, pViewportWScalings : nativeptr) = Loader.vkCmdSetViewportWScalingNV.Invoke(commandBuffer, firstViewport, viewportCount, pViewportWScalings) + +module NVViewportSwizzle = + let Type = ExtensionType.Device + let Name = "VK_NV_viewport_swizzle" + let Number = 99 + + type VkViewportCoordinateSwizzleNV = + | PositiveX = 0 + | NegativeX = 1 + | PositiveY = 2 + | NegativeY = 3 + | PositiveZ = 4 + | NegativeZ = 5 + | PositiveW = 6 + | NegativeW = 7 + + [] - type VkImageCompressionPropertiesEXT = + type VkViewportSwizzleNV = struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public imageCompressionFlags : VkImageCompressionFlagsEXT - val mutable public imageCompressionFixedRateFlags : VkImageCompressionFixedRateFlagsEXT + val mutable public x : VkViewportCoordinateSwizzleNV + val mutable public y : VkViewportCoordinateSwizzleNV + val mutable public z : VkViewportCoordinateSwizzleNV + val mutable public w : VkViewportCoordinateSwizzleNV - new(pNext : nativeint, imageCompressionFlags : VkImageCompressionFlagsEXT, imageCompressionFixedRateFlags : VkImageCompressionFixedRateFlagsEXT) = + new(x : VkViewportCoordinateSwizzleNV, y : VkViewportCoordinateSwizzleNV, z : VkViewportCoordinateSwizzleNV, w : VkViewportCoordinateSwizzleNV) = { - sType = 1000338004u - pNext = pNext - imageCompressionFlags = imageCompressionFlags - imageCompressionFixedRateFlags = imageCompressionFixedRateFlags + x = x + y = y + z = z + w = w } - new(imageCompressionFlags : VkImageCompressionFlagsEXT, imageCompressionFixedRateFlags : VkImageCompressionFixedRateFlagsEXT) = - VkImageCompressionPropertiesEXT(Unchecked.defaultof, imageCompressionFlags, imageCompressionFixedRateFlags) - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.imageCompressionFlags = Unchecked.defaultof && x.imageCompressionFixedRateFlags = Unchecked.defaultof + x.x = Unchecked.defaultof && x.y = Unchecked.defaultof && x.z = Unchecked.defaultof && x.w = Unchecked.defaultof static member Empty = - VkImageCompressionPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkViewportSwizzleNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "imageCompressionFlags = %A" x.imageCompressionFlags - sprintf "imageCompressionFixedRateFlags = %A" x.imageCompressionFixedRateFlags - ] |> sprintf "VkImageCompressionPropertiesEXT { %s }" + sprintf "x = %A" x.x + sprintf "y = %A" x.y + sprintf "z = %A" x.z + sprintf "w = %A" x.w + ] |> sprintf "VkViewportSwizzleNV { %s }" end [] - type VkImageSubresource2EXT = + type VkPipelineViewportSwizzleStateCreateInfoNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public imageSubresource : VkImageSubresource + val mutable public flags : VkPipelineViewportSwizzleStateCreateFlagsNV + val mutable public viewportCount : uint32 + val mutable public pViewportSwizzles : nativeptr - new(pNext : nativeint, imageSubresource : VkImageSubresource) = + new(pNext : nativeint, flags : VkPipelineViewportSwizzleStateCreateFlagsNV, viewportCount : uint32, pViewportSwizzles : nativeptr) = { - sType = 1000338003u + sType = 1000098000u pNext = pNext - imageSubresource = imageSubresource + flags = flags + viewportCount = viewportCount + pViewportSwizzles = pViewportSwizzles } - new(imageSubresource : VkImageSubresource) = - VkImageSubresource2EXT(Unchecked.defaultof, imageSubresource) + new(flags : VkPipelineViewportSwizzleStateCreateFlagsNV, viewportCount : uint32, pViewportSwizzles : nativeptr) = + VkPipelineViewportSwizzleStateCreateInfoNV(Unchecked.defaultof, flags, viewportCount, pViewportSwizzles) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.imageSubresource = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.viewportCount = Unchecked.defaultof && x.pViewportSwizzles = Unchecked.defaultof> static member Empty = - VkImageSubresource2EXT(Unchecked.defaultof, Unchecked.defaultof) + VkPipelineViewportSwizzleStateCreateInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "imageSubresource = %A" x.imageSubresource - ] |> sprintf "VkImageSubresource2EXT { %s }" + sprintf "flags = %A" x.flags + sprintf "viewportCount = %A" x.viewportCount + sprintf "pViewportSwizzles = %A" x.pViewportSwizzles + ] |> sprintf "VkPipelineViewportSwizzleStateCreateInfoNV { %s }" end + + +module NVFragmentCoverageToColor = + let Type = ExtensionType.Device + let Name = "VK_NV_fragment_coverage_to_color" + let Number = 150 + [] - type VkPhysicalDeviceImageCompressionControlFeaturesEXT = + type VkPipelineCoverageToColorStateCreateInfoNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public imageCompressionControl : VkBool32 + val mutable public flags : VkPipelineCoverageToColorStateCreateFlagsNV + val mutable public coverageToColorEnable : VkBool32 + val mutable public coverageToColorLocation : uint32 - new(pNext : nativeint, imageCompressionControl : VkBool32) = + new(pNext : nativeint, flags : VkPipelineCoverageToColorStateCreateFlagsNV, coverageToColorEnable : VkBool32, coverageToColorLocation : uint32) = { - sType = 1000338000u + sType = 1000149000u pNext = pNext - imageCompressionControl = imageCompressionControl + flags = flags + coverageToColorEnable = coverageToColorEnable + coverageToColorLocation = coverageToColorLocation } - new(imageCompressionControl : VkBool32) = - VkPhysicalDeviceImageCompressionControlFeaturesEXT(Unchecked.defaultof, imageCompressionControl) + new(flags : VkPipelineCoverageToColorStateCreateFlagsNV, coverageToColorEnable : VkBool32, coverageToColorLocation : uint32) = + VkPipelineCoverageToColorStateCreateInfoNV(Unchecked.defaultof, flags, coverageToColorEnable, coverageToColorLocation) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.imageCompressionControl = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.coverageToColorEnable = Unchecked.defaultof && x.coverageToColorLocation = Unchecked.defaultof static member Empty = - VkPhysicalDeviceImageCompressionControlFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) + VkPipelineCoverageToColorStateCreateInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "imageCompressionControl = %A" x.imageCompressionControl - ] |> sprintf "VkPhysicalDeviceImageCompressionControlFeaturesEXT { %s }" + sprintf "flags = %A" x.flags + sprintf "coverageToColorEnable = %A" x.coverageToColorEnable + sprintf "coverageToColorLocation = %A" x.coverageToColorLocation + ] |> sprintf "VkPipelineCoverageToColorStateCreateInfoNV { %s }" end + + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module NVRepresentativeFragmentTest = + let Type = ExtensionType.Device + let Name = "VK_NV_representative_fragment_test" + let Number = 167 + [] - type VkSubresourceLayout2EXT = + type VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public subresourceLayout : VkSubresourceLayout + val mutable public representativeFragmentTest : VkBool32 - new(pNext : nativeint, subresourceLayout : VkSubresourceLayout) = + new(pNext : nativeint, representativeFragmentTest : VkBool32) = { - sType = 1000338002u + sType = 1000166000u pNext = pNext - subresourceLayout = subresourceLayout + representativeFragmentTest = representativeFragmentTest } - new(subresourceLayout : VkSubresourceLayout) = - VkSubresourceLayout2EXT(Unchecked.defaultof, subresourceLayout) + new(representativeFragmentTest : VkBool32) = + VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV(Unchecked.defaultof, representativeFragmentTest) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.subresourceLayout = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.representativeFragmentTest = Unchecked.defaultof static member Empty = - VkSubresourceLayout2EXT(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "subresourceLayout = %A" x.subresourceLayout - ] |> sprintf "VkSubresourceLayout2EXT { %s }" + sprintf "representativeFragmentTest = %A" x.representativeFragmentTest + ] |> sprintf "VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV { %s }" end - - [] - module EnumExtensions = - type VkResult with - static member inline ErrorCompressionExhaustedExt = unbox -1000338000 - - module VkRaw = - [] - type VkGetImageSubresourceLayout2EXTDel = delegate of VkDevice * VkImage * nativeptr * nativeptr -> unit - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading EXTImageCompressionControl") - static let s_vkGetImageSubresourceLayout2EXTDel = VkRaw.vkImportInstanceDelegate "vkGetImageSubresourceLayout2EXT" - static do Report.End(3) |> ignore - static member vkGetImageSubresourceLayout2EXT = s_vkGetImageSubresourceLayout2EXTDel - let vkGetImageSubresourceLayout2EXT(device : VkDevice, image : VkImage, pSubresource : nativeptr, pLayout : nativeptr) = Loader.vkGetImageSubresourceLayout2EXT.Invoke(device, image, pSubresource, pLayout) - -module EXTImageCompressionControlSwapchain = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open EXTImageCompressionControl - let Name = "VK_EXT_image_compression_control_swapchain" - let Number = 438 - - let Required = [ EXTImageCompressionControl.Name ] - - [] - type VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT = + type VkPipelineRepresentativeFragmentTestStateCreateInfoNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public imageCompressionControlSwapchain : VkBool32 + val mutable public representativeFragmentTestEnable : VkBool32 - new(pNext : nativeint, imageCompressionControlSwapchain : VkBool32) = + new(pNext : nativeint, representativeFragmentTestEnable : VkBool32) = { - sType = 1000437000u + sType = 1000166001u pNext = pNext - imageCompressionControlSwapchain = imageCompressionControlSwapchain + representativeFragmentTestEnable = representativeFragmentTestEnable } - new(imageCompressionControlSwapchain : VkBool32) = - VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT(Unchecked.defaultof, imageCompressionControlSwapchain) + new(representativeFragmentTestEnable : VkBool32) = + VkPipelineRepresentativeFragmentTestStateCreateInfoNV(Unchecked.defaultof, representativeFragmentTestEnable) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.imageCompressionControlSwapchain = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.representativeFragmentTestEnable = Unchecked.defaultof static member Empty = - VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) + VkPipelineRepresentativeFragmentTestStateCreateInfoNV(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "imageCompressionControlSwapchain = %A" x.imageCompressionControlSwapchain - ] |> sprintf "VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT { %s }" + sprintf "representativeFragmentTestEnable = %A" x.representativeFragmentTestEnable + ] |> sprintf "VkPipelineRepresentativeFragmentTestStateCreateInfoNV { %s }" end -module KHRImageFormatList = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_KHR_image_format_list" - let Number = 148 - - - type VkImageFormatListCreateInfoKHR = VkImageFormatListCreateInfo - - - -module EXTImageDrmFormatModifier = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open EXTDebugReport - open KHRBindMemory2 - open KHRGetMemoryRequirements2 - open KHRGetPhysicalDeviceProperties2 - open KHRImageFormatList - open KHRMaintenance1 - open KHRSamplerYcbcrConversion - let Name = "VK_EXT_image_drm_format_modifier" - let Number = 159 +/// Requires NVFramebufferMixedSamples, (KHRGetPhysicalDeviceProperties2 | Vulkan11). +module NVCoverageReductionMode = + let Type = ExtensionType.Device + let Name = "VK_NV_coverage_reduction_mode" + let Number = 251 - let Required = [ KHRBindMemory2.Name; KHRGetPhysicalDeviceProperties2.Name; KHRImageFormatList.Name; KHRSamplerYcbcrConversion.Name ] + type VkCoverageReductionModeNV = + | Merge = 0 + | Truncate = 1 [] - type VkDrmFormatModifierPropertiesEXT = + type VkFramebufferMixedSamplesCombinationNV = struct - val mutable public drmFormatModifier : uint64 - val mutable public drmFormatModifierPlaneCount : uint32 - val mutable public drmFormatModifierTilingFeatures : VkFormatFeatureFlags + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public coverageReductionMode : VkCoverageReductionModeNV + val mutable public rasterizationSamples : VkSampleCountFlags + val mutable public depthStencilSamples : VkSampleCountFlags + val mutable public colorSamples : VkSampleCountFlags - new(drmFormatModifier : uint64, drmFormatModifierPlaneCount : uint32, drmFormatModifierTilingFeatures : VkFormatFeatureFlags) = + new(pNext : nativeint, coverageReductionMode : VkCoverageReductionModeNV, rasterizationSamples : VkSampleCountFlags, depthStencilSamples : VkSampleCountFlags, colorSamples : VkSampleCountFlags) = { - drmFormatModifier = drmFormatModifier - drmFormatModifierPlaneCount = drmFormatModifierPlaneCount - drmFormatModifierTilingFeatures = drmFormatModifierTilingFeatures + sType = 1000250002u + pNext = pNext + coverageReductionMode = coverageReductionMode + rasterizationSamples = rasterizationSamples + depthStencilSamples = depthStencilSamples + colorSamples = colorSamples } + new(coverageReductionMode : VkCoverageReductionModeNV, rasterizationSamples : VkSampleCountFlags, depthStencilSamples : VkSampleCountFlags, colorSamples : VkSampleCountFlags) = + VkFramebufferMixedSamplesCombinationNV(Unchecked.defaultof, coverageReductionMode, rasterizationSamples, depthStencilSamples, colorSamples) + member x.IsEmpty = - x.drmFormatModifier = Unchecked.defaultof && x.drmFormatModifierPlaneCount = Unchecked.defaultof && x.drmFormatModifierTilingFeatures = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.coverageReductionMode = Unchecked.defaultof && x.rasterizationSamples = Unchecked.defaultof && x.depthStencilSamples = Unchecked.defaultof && x.colorSamples = Unchecked.defaultof static member Empty = - VkDrmFormatModifierPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkFramebufferMixedSamplesCombinationNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ - sprintf "drmFormatModifier = %A" x.drmFormatModifier - sprintf "drmFormatModifierPlaneCount = %A" x.drmFormatModifierPlaneCount - sprintf "drmFormatModifierTilingFeatures = %A" x.drmFormatModifierTilingFeatures - ] |> sprintf "VkDrmFormatModifierPropertiesEXT { %s }" + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "coverageReductionMode = %A" x.coverageReductionMode + sprintf "rasterizationSamples = %A" x.rasterizationSamples + sprintf "depthStencilSamples = %A" x.depthStencilSamples + sprintf "colorSamples = %A" x.colorSamples + ] |> sprintf "VkFramebufferMixedSamplesCombinationNV { %s }" end [] - type VkDrmFormatModifierPropertiesListEXT = + type VkPhysicalDeviceCoverageReductionModeFeaturesNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public drmFormatModifierCount : uint32 - val mutable public pDrmFormatModifierProperties : nativeptr + val mutable public coverageReductionMode : VkBool32 - new(pNext : nativeint, drmFormatModifierCount : uint32, pDrmFormatModifierProperties : nativeptr) = + new(pNext : nativeint, coverageReductionMode : VkBool32) = { - sType = 1000158000u + sType = 1000250000u pNext = pNext - drmFormatModifierCount = drmFormatModifierCount - pDrmFormatModifierProperties = pDrmFormatModifierProperties + coverageReductionMode = coverageReductionMode } - new(drmFormatModifierCount : uint32, pDrmFormatModifierProperties : nativeptr) = - VkDrmFormatModifierPropertiesListEXT(Unchecked.defaultof, drmFormatModifierCount, pDrmFormatModifierProperties) + new(coverageReductionMode : VkBool32) = + VkPhysicalDeviceCoverageReductionModeFeaturesNV(Unchecked.defaultof, coverageReductionMode) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.drmFormatModifierCount = Unchecked.defaultof && x.pDrmFormatModifierProperties = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.coverageReductionMode = Unchecked.defaultof static member Empty = - VkDrmFormatModifierPropertiesListEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + VkPhysicalDeviceCoverageReductionModeFeaturesNV(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "drmFormatModifierCount = %A" x.drmFormatModifierCount - sprintf "pDrmFormatModifierProperties = %A" x.pDrmFormatModifierProperties - ] |> sprintf "VkDrmFormatModifierPropertiesListEXT { %s }" + sprintf "coverageReductionMode = %A" x.coverageReductionMode + ] |> sprintf "VkPhysicalDeviceCoverageReductionModeFeaturesNV { %s }" end [] - type VkImageDrmFormatModifierExplicitCreateInfoEXT = + type VkPipelineCoverageReductionStateCreateInfoNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public drmFormatModifier : uint64 - val mutable public drmFormatModifierPlaneCount : uint32 - val mutable public pPlaneLayouts : nativeptr + val mutable public flags : VkPipelineCoverageReductionStateCreateFlagsNV + val mutable public coverageReductionMode : VkCoverageReductionModeNV - new(pNext : nativeint, drmFormatModifier : uint64, drmFormatModifierPlaneCount : uint32, pPlaneLayouts : nativeptr) = + new(pNext : nativeint, flags : VkPipelineCoverageReductionStateCreateFlagsNV, coverageReductionMode : VkCoverageReductionModeNV) = { - sType = 1000158004u + sType = 1000250001u pNext = pNext - drmFormatModifier = drmFormatModifier - drmFormatModifierPlaneCount = drmFormatModifierPlaneCount - pPlaneLayouts = pPlaneLayouts + flags = flags + coverageReductionMode = coverageReductionMode } - new(drmFormatModifier : uint64, drmFormatModifierPlaneCount : uint32, pPlaneLayouts : nativeptr) = - VkImageDrmFormatModifierExplicitCreateInfoEXT(Unchecked.defaultof, drmFormatModifier, drmFormatModifierPlaneCount, pPlaneLayouts) + new(flags : VkPipelineCoverageReductionStateCreateFlagsNV, coverageReductionMode : VkCoverageReductionModeNV) = + VkPipelineCoverageReductionStateCreateInfoNV(Unchecked.defaultof, flags, coverageReductionMode) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.drmFormatModifier = Unchecked.defaultof && x.drmFormatModifierPlaneCount = Unchecked.defaultof && x.pPlaneLayouts = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.coverageReductionMode = Unchecked.defaultof static member Empty = - VkImageDrmFormatModifierExplicitCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + VkPipelineCoverageReductionStateCreateInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "drmFormatModifier = %A" x.drmFormatModifier - sprintf "drmFormatModifierPlaneCount = %A" x.drmFormatModifierPlaneCount - sprintf "pPlaneLayouts = %A" x.pPlaneLayouts - ] |> sprintf "VkImageDrmFormatModifierExplicitCreateInfoEXT { %s }" + sprintf "flags = %A" x.flags + sprintf "coverageReductionMode = %A" x.coverageReductionMode + ] |> sprintf "VkPipelineCoverageReductionStateCreateInfoNV { %s }" end + + module VkRaw = + [] + type VkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNVDel = delegate of VkPhysicalDevice * nativeptr * nativeptr -> VkResult + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading NVCoverageReductionMode") + static let s_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNVDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" + static do Report.End(3) |> ignore + static member vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = s_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNVDel + let vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice : VkPhysicalDevice, pCombinationCount : nativeptr, pCombinations : nativeptr) = Loader.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV.Invoke(physicalDevice, pCombinationCount, pCombinations) + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module EXTExtendedDynamicState3 = + let Type = ExtensionType.Device + let Name = "VK_EXT_extended_dynamic_state3" + let Number = 456 + [] - type VkImageDrmFormatModifierListCreateInfoEXT = + type VkColorBlendAdvancedEXT = struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public drmFormatModifierCount : uint32 - val mutable public pDrmFormatModifiers : nativeptr + val mutable public advancedBlendOp : VkBlendOp + val mutable public srcPremultiplied : VkBool32 + val mutable public dstPremultiplied : VkBool32 + val mutable public blendOverlap : EXTBlendOperationAdvanced.VkBlendOverlapEXT + val mutable public clampResults : VkBool32 - new(pNext : nativeint, drmFormatModifierCount : uint32, pDrmFormatModifiers : nativeptr) = + new(advancedBlendOp : VkBlendOp, srcPremultiplied : VkBool32, dstPremultiplied : VkBool32, blendOverlap : EXTBlendOperationAdvanced.VkBlendOverlapEXT, clampResults : VkBool32) = { - sType = 1000158003u - pNext = pNext - drmFormatModifierCount = drmFormatModifierCount - pDrmFormatModifiers = pDrmFormatModifiers + advancedBlendOp = advancedBlendOp + srcPremultiplied = srcPremultiplied + dstPremultiplied = dstPremultiplied + blendOverlap = blendOverlap + clampResults = clampResults } - new(drmFormatModifierCount : uint32, pDrmFormatModifiers : nativeptr) = - VkImageDrmFormatModifierListCreateInfoEXT(Unchecked.defaultof, drmFormatModifierCount, pDrmFormatModifiers) - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.drmFormatModifierCount = Unchecked.defaultof && x.pDrmFormatModifiers = Unchecked.defaultof> + x.advancedBlendOp = Unchecked.defaultof && x.srcPremultiplied = Unchecked.defaultof && x.dstPremultiplied = Unchecked.defaultof && x.blendOverlap = Unchecked.defaultof && x.clampResults = Unchecked.defaultof static member Empty = - VkImageDrmFormatModifierListCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + VkColorBlendAdvancedEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "drmFormatModifierCount = %A" x.drmFormatModifierCount - sprintf "pDrmFormatModifiers = %A" x.pDrmFormatModifiers - ] |> sprintf "VkImageDrmFormatModifierListCreateInfoEXT { %s }" - end + sprintf "advancedBlendOp = %A" x.advancedBlendOp + sprintf "srcPremultiplied = %A" x.srcPremultiplied + sprintf "dstPremultiplied = %A" x.dstPremultiplied + sprintf "blendOverlap = %A" x.blendOverlap + sprintf "clampResults = %A" x.clampResults + ] |> sprintf "VkColorBlendAdvancedEXT { %s }" + end + + [] + type VkColorBlendEquationEXT = + struct + val mutable public srcColorBlendFactor : VkBlendFactor + val mutable public dstColorBlendFactor : VkBlendFactor + val mutable public colorBlendOp : VkBlendOp + val mutable public srcAlphaBlendFactor : VkBlendFactor + val mutable public dstAlphaBlendFactor : VkBlendFactor + val mutable public alphaBlendOp : VkBlendOp + + new(srcColorBlendFactor : VkBlendFactor, dstColorBlendFactor : VkBlendFactor, colorBlendOp : VkBlendOp, srcAlphaBlendFactor : VkBlendFactor, dstAlphaBlendFactor : VkBlendFactor, alphaBlendOp : VkBlendOp) = + { + srcColorBlendFactor = srcColorBlendFactor + dstColorBlendFactor = dstColorBlendFactor + colorBlendOp = colorBlendOp + srcAlphaBlendFactor = srcAlphaBlendFactor + dstAlphaBlendFactor = dstAlphaBlendFactor + alphaBlendOp = alphaBlendOp + } + + member x.IsEmpty = + x.srcColorBlendFactor = Unchecked.defaultof && x.dstColorBlendFactor = Unchecked.defaultof && x.colorBlendOp = Unchecked.defaultof && x.srcAlphaBlendFactor = Unchecked.defaultof && x.dstAlphaBlendFactor = Unchecked.defaultof && x.alphaBlendOp = Unchecked.defaultof - [] - type VkImageDrmFormatModifierPropertiesEXT = - struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public drmFormatModifier : uint64 + static member Empty = + VkColorBlendEquationEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) - new(pNext : nativeint, drmFormatModifier : uint64) = + override x.ToString() = + String.concat "; " [ + sprintf "srcColorBlendFactor = %A" x.srcColorBlendFactor + sprintf "dstColorBlendFactor = %A" x.dstColorBlendFactor + sprintf "colorBlendOp = %A" x.colorBlendOp + sprintf "srcAlphaBlendFactor = %A" x.srcAlphaBlendFactor + sprintf "dstAlphaBlendFactor = %A" x.dstAlphaBlendFactor + sprintf "alphaBlendOp = %A" x.alphaBlendOp + ] |> sprintf "VkColorBlendEquationEXT { %s }" + end + + [] + type VkPhysicalDeviceExtendedDynamicState3FeaturesEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public extendedDynamicState3TessellationDomainOrigin : VkBool32 + val mutable public extendedDynamicState3DepthClampEnable : VkBool32 + val mutable public extendedDynamicState3PolygonMode : VkBool32 + val mutable public extendedDynamicState3RasterizationSamples : VkBool32 + val mutable public extendedDynamicState3SampleMask : VkBool32 + val mutable public extendedDynamicState3AlphaToCoverageEnable : VkBool32 + val mutable public extendedDynamicState3AlphaToOneEnable : VkBool32 + val mutable public extendedDynamicState3LogicOpEnable : VkBool32 + val mutable public extendedDynamicState3ColorBlendEnable : VkBool32 + val mutable public extendedDynamicState3ColorBlendEquation : VkBool32 + val mutable public extendedDynamicState3ColorWriteMask : VkBool32 + val mutable public extendedDynamicState3RasterizationStream : VkBool32 + val mutable public extendedDynamicState3ConservativeRasterizationMode : VkBool32 + val mutable public extendedDynamicState3ExtraPrimitiveOverestimationSize : VkBool32 + val mutable public extendedDynamicState3DepthClipEnable : VkBool32 + val mutable public extendedDynamicState3SampleLocationsEnable : VkBool32 + val mutable public extendedDynamicState3ColorBlendAdvanced : VkBool32 + val mutable public extendedDynamicState3ProvokingVertexMode : VkBool32 + val mutable public extendedDynamicState3LineRasterizationMode : VkBool32 + val mutable public extendedDynamicState3LineStippleEnable : VkBool32 + val mutable public extendedDynamicState3DepthClipNegativeOneToOne : VkBool32 + val mutable public extendedDynamicState3ViewportWScalingEnable : VkBool32 + val mutable public extendedDynamicState3ViewportSwizzle : VkBool32 + val mutable public extendedDynamicState3CoverageToColorEnable : VkBool32 + val mutable public extendedDynamicState3CoverageToColorLocation : VkBool32 + val mutable public extendedDynamicState3CoverageModulationMode : VkBool32 + val mutable public extendedDynamicState3CoverageModulationTableEnable : VkBool32 + val mutable public extendedDynamicState3CoverageModulationTable : VkBool32 + val mutable public extendedDynamicState3CoverageReductionMode : VkBool32 + val mutable public extendedDynamicState3RepresentativeFragmentTestEnable : VkBool32 + val mutable public extendedDynamicState3ShadingRateImageEnable : VkBool32 + + new(pNext : nativeint, 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) = { - sType = 1000158005u + sType = 1000455000u pNext = pNext - drmFormatModifier = drmFormatModifier + extendedDynamicState3TessellationDomainOrigin = extendedDynamicState3TessellationDomainOrigin + extendedDynamicState3DepthClampEnable = extendedDynamicState3DepthClampEnable + extendedDynamicState3PolygonMode = extendedDynamicState3PolygonMode + extendedDynamicState3RasterizationSamples = extendedDynamicState3RasterizationSamples + extendedDynamicState3SampleMask = extendedDynamicState3SampleMask + extendedDynamicState3AlphaToCoverageEnable = extendedDynamicState3AlphaToCoverageEnable + extendedDynamicState3AlphaToOneEnable = extendedDynamicState3AlphaToOneEnable + extendedDynamicState3LogicOpEnable = extendedDynamicState3LogicOpEnable + extendedDynamicState3ColorBlendEnable = extendedDynamicState3ColorBlendEnable + extendedDynamicState3ColorBlendEquation = extendedDynamicState3ColorBlendEquation + extendedDynamicState3ColorWriteMask = extendedDynamicState3ColorWriteMask + extendedDynamicState3RasterizationStream = extendedDynamicState3RasterizationStream + extendedDynamicState3ConservativeRasterizationMode = extendedDynamicState3ConservativeRasterizationMode + extendedDynamicState3ExtraPrimitiveOverestimationSize = extendedDynamicState3ExtraPrimitiveOverestimationSize + extendedDynamicState3DepthClipEnable = extendedDynamicState3DepthClipEnable + extendedDynamicState3SampleLocationsEnable = extendedDynamicState3SampleLocationsEnable + extendedDynamicState3ColorBlendAdvanced = extendedDynamicState3ColorBlendAdvanced + extendedDynamicState3ProvokingVertexMode = extendedDynamicState3ProvokingVertexMode + extendedDynamicState3LineRasterizationMode = extendedDynamicState3LineRasterizationMode + extendedDynamicState3LineStippleEnable = extendedDynamicState3LineStippleEnable + extendedDynamicState3DepthClipNegativeOneToOne = extendedDynamicState3DepthClipNegativeOneToOne + extendedDynamicState3ViewportWScalingEnable = extendedDynamicState3ViewportWScalingEnable + extendedDynamicState3ViewportSwizzle = extendedDynamicState3ViewportSwizzle + extendedDynamicState3CoverageToColorEnable = extendedDynamicState3CoverageToColorEnable + extendedDynamicState3CoverageToColorLocation = extendedDynamicState3CoverageToColorLocation + extendedDynamicState3CoverageModulationMode = extendedDynamicState3CoverageModulationMode + extendedDynamicState3CoverageModulationTableEnable = extendedDynamicState3CoverageModulationTableEnable + extendedDynamicState3CoverageModulationTable = extendedDynamicState3CoverageModulationTable + extendedDynamicState3CoverageReductionMode = extendedDynamicState3CoverageReductionMode + extendedDynamicState3RepresentativeFragmentTestEnable = extendedDynamicState3RepresentativeFragmentTestEnable + extendedDynamicState3ShadingRateImageEnable = extendedDynamicState3ShadingRateImageEnable } - new(drmFormatModifier : uint64) = - VkImageDrmFormatModifierPropertiesEXT(Unchecked.defaultof, drmFormatModifier) + new(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) = + VkPhysicalDeviceExtendedDynamicState3FeaturesEXT(Unchecked.defaultof, extendedDynamicState3TessellationDomainOrigin, extendedDynamicState3DepthClampEnable, extendedDynamicState3PolygonMode, extendedDynamicState3RasterizationSamples, extendedDynamicState3SampleMask, extendedDynamicState3AlphaToCoverageEnable, extendedDynamicState3AlphaToOneEnable, extendedDynamicState3LogicOpEnable, extendedDynamicState3ColorBlendEnable, extendedDynamicState3ColorBlendEquation, extendedDynamicState3ColorWriteMask, extendedDynamicState3RasterizationStream, extendedDynamicState3ConservativeRasterizationMode, extendedDynamicState3ExtraPrimitiveOverestimationSize, extendedDynamicState3DepthClipEnable, extendedDynamicState3SampleLocationsEnable, extendedDynamicState3ColorBlendAdvanced, extendedDynamicState3ProvokingVertexMode, extendedDynamicState3LineRasterizationMode, extendedDynamicState3LineStippleEnable, extendedDynamicState3DepthClipNegativeOneToOne, extendedDynamicState3ViewportWScalingEnable, extendedDynamicState3ViewportSwizzle, extendedDynamicState3CoverageToColorEnable, extendedDynamicState3CoverageToColorLocation, extendedDynamicState3CoverageModulationMode, extendedDynamicState3CoverageModulationTableEnable, extendedDynamicState3CoverageModulationTable, extendedDynamicState3CoverageReductionMode, extendedDynamicState3RepresentativeFragmentTestEnable, extendedDynamicState3ShadingRateImageEnable) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.drmFormatModifier = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.extendedDynamicState3TessellationDomainOrigin = Unchecked.defaultof && x.extendedDynamicState3DepthClampEnable = Unchecked.defaultof && x.extendedDynamicState3PolygonMode = Unchecked.defaultof && x.extendedDynamicState3RasterizationSamples = Unchecked.defaultof && x.extendedDynamicState3SampleMask = Unchecked.defaultof && x.extendedDynamicState3AlphaToCoverageEnable = Unchecked.defaultof && x.extendedDynamicState3AlphaToOneEnable = Unchecked.defaultof && x.extendedDynamicState3LogicOpEnable = Unchecked.defaultof && x.extendedDynamicState3ColorBlendEnable = Unchecked.defaultof && x.extendedDynamicState3ColorBlendEquation = Unchecked.defaultof && x.extendedDynamicState3ColorWriteMask = Unchecked.defaultof && x.extendedDynamicState3RasterizationStream = Unchecked.defaultof && x.extendedDynamicState3ConservativeRasterizationMode = Unchecked.defaultof && x.extendedDynamicState3ExtraPrimitiveOverestimationSize = Unchecked.defaultof && x.extendedDynamicState3DepthClipEnable = Unchecked.defaultof && x.extendedDynamicState3SampleLocationsEnable = Unchecked.defaultof && x.extendedDynamicState3ColorBlendAdvanced = Unchecked.defaultof && x.extendedDynamicState3ProvokingVertexMode = Unchecked.defaultof && x.extendedDynamicState3LineRasterizationMode = Unchecked.defaultof && x.extendedDynamicState3LineStippleEnable = Unchecked.defaultof && x.extendedDynamicState3DepthClipNegativeOneToOne = Unchecked.defaultof && x.extendedDynamicState3ViewportWScalingEnable = Unchecked.defaultof && x.extendedDynamicState3ViewportSwizzle = Unchecked.defaultof && x.extendedDynamicState3CoverageToColorEnable = Unchecked.defaultof && x.extendedDynamicState3CoverageToColorLocation = Unchecked.defaultof && x.extendedDynamicState3CoverageModulationMode = Unchecked.defaultof && x.extendedDynamicState3CoverageModulationTableEnable = Unchecked.defaultof && x.extendedDynamicState3CoverageModulationTable = Unchecked.defaultof && x.extendedDynamicState3CoverageReductionMode = Unchecked.defaultof && x.extendedDynamicState3RepresentativeFragmentTestEnable = Unchecked.defaultof && x.extendedDynamicState3ShadingRateImageEnable = Unchecked.defaultof static member Empty = - VkImageDrmFormatModifierPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceExtendedDynamicState3FeaturesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "drmFormatModifier = %A" x.drmFormatModifier - ] |> sprintf "VkImageDrmFormatModifierPropertiesEXT { %s }" + sprintf "extendedDynamicState3TessellationDomainOrigin = %A" x.extendedDynamicState3TessellationDomainOrigin + sprintf "extendedDynamicState3DepthClampEnable = %A" x.extendedDynamicState3DepthClampEnable + sprintf "extendedDynamicState3PolygonMode = %A" x.extendedDynamicState3PolygonMode + sprintf "extendedDynamicState3RasterizationSamples = %A" x.extendedDynamicState3RasterizationSamples + sprintf "extendedDynamicState3SampleMask = %A" x.extendedDynamicState3SampleMask + sprintf "extendedDynamicState3AlphaToCoverageEnable = %A" x.extendedDynamicState3AlphaToCoverageEnable + sprintf "extendedDynamicState3AlphaToOneEnable = %A" x.extendedDynamicState3AlphaToOneEnable + sprintf "extendedDynamicState3LogicOpEnable = %A" x.extendedDynamicState3LogicOpEnable + sprintf "extendedDynamicState3ColorBlendEnable = %A" x.extendedDynamicState3ColorBlendEnable + sprintf "extendedDynamicState3ColorBlendEquation = %A" x.extendedDynamicState3ColorBlendEquation + sprintf "extendedDynamicState3ColorWriteMask = %A" x.extendedDynamicState3ColorWriteMask + sprintf "extendedDynamicState3RasterizationStream = %A" x.extendedDynamicState3RasterizationStream + sprintf "extendedDynamicState3ConservativeRasterizationMode = %A" x.extendedDynamicState3ConservativeRasterizationMode + sprintf "extendedDynamicState3ExtraPrimitiveOverestimationSize = %A" x.extendedDynamicState3ExtraPrimitiveOverestimationSize + sprintf "extendedDynamicState3DepthClipEnable = %A" x.extendedDynamicState3DepthClipEnable + sprintf "extendedDynamicState3SampleLocationsEnable = %A" x.extendedDynamicState3SampleLocationsEnable + sprintf "extendedDynamicState3ColorBlendAdvanced = %A" x.extendedDynamicState3ColorBlendAdvanced + sprintf "extendedDynamicState3ProvokingVertexMode = %A" x.extendedDynamicState3ProvokingVertexMode + sprintf "extendedDynamicState3LineRasterizationMode = %A" x.extendedDynamicState3LineRasterizationMode + sprintf "extendedDynamicState3LineStippleEnable = %A" x.extendedDynamicState3LineStippleEnable + sprintf "extendedDynamicState3DepthClipNegativeOneToOne = %A" x.extendedDynamicState3DepthClipNegativeOneToOne + sprintf "extendedDynamicState3ViewportWScalingEnable = %A" x.extendedDynamicState3ViewportWScalingEnable + sprintf "extendedDynamicState3ViewportSwizzle = %A" x.extendedDynamicState3ViewportSwizzle + sprintf "extendedDynamicState3CoverageToColorEnable = %A" x.extendedDynamicState3CoverageToColorEnable + sprintf "extendedDynamicState3CoverageToColorLocation = %A" x.extendedDynamicState3CoverageToColorLocation + sprintf "extendedDynamicState3CoverageModulationMode = %A" x.extendedDynamicState3CoverageModulationMode + sprintf "extendedDynamicState3CoverageModulationTableEnable = %A" x.extendedDynamicState3CoverageModulationTableEnable + sprintf "extendedDynamicState3CoverageModulationTable = %A" x.extendedDynamicState3CoverageModulationTable + sprintf "extendedDynamicState3CoverageReductionMode = %A" x.extendedDynamicState3CoverageReductionMode + sprintf "extendedDynamicState3RepresentativeFragmentTestEnable = %A" x.extendedDynamicState3RepresentativeFragmentTestEnable + sprintf "extendedDynamicState3ShadingRateImageEnable = %A" x.extendedDynamicState3ShadingRateImageEnable + ] |> sprintf "VkPhysicalDeviceExtendedDynamicState3FeaturesEXT { %s }" end [] - type VkPhysicalDeviceImageDrmFormatModifierInfoEXT = + type VkPhysicalDeviceExtendedDynamicState3PropertiesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public drmFormatModifier : uint64 - val mutable public sharingMode : VkSharingMode - val mutable public queueFamilyIndexCount : uint32 - val mutable public pQueueFamilyIndices : nativeptr + val mutable public dynamicPrimitiveTopologyUnrestricted : VkBool32 - new(pNext : nativeint, drmFormatModifier : uint64, sharingMode : VkSharingMode, queueFamilyIndexCount : uint32, pQueueFamilyIndices : nativeptr) = + new(pNext : nativeint, dynamicPrimitiveTopologyUnrestricted : VkBool32) = { - sType = 1000158002u + sType = 1000455001u pNext = pNext - drmFormatModifier = drmFormatModifier - sharingMode = sharingMode - queueFamilyIndexCount = queueFamilyIndexCount - pQueueFamilyIndices = pQueueFamilyIndices + dynamicPrimitiveTopologyUnrestricted = dynamicPrimitiveTopologyUnrestricted } - new(drmFormatModifier : uint64, sharingMode : VkSharingMode, queueFamilyIndexCount : uint32, pQueueFamilyIndices : nativeptr) = - VkPhysicalDeviceImageDrmFormatModifierInfoEXT(Unchecked.defaultof, drmFormatModifier, sharingMode, queueFamilyIndexCount, pQueueFamilyIndices) + new(dynamicPrimitiveTopologyUnrestricted : VkBool32) = + VkPhysicalDeviceExtendedDynamicState3PropertiesEXT(Unchecked.defaultof, dynamicPrimitiveTopologyUnrestricted) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.drmFormatModifier = Unchecked.defaultof && x.sharingMode = Unchecked.defaultof && x.queueFamilyIndexCount = Unchecked.defaultof && x.pQueueFamilyIndices = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.dynamicPrimitiveTopologyUnrestricted = Unchecked.defaultof static member Empty = - VkPhysicalDeviceImageDrmFormatModifierInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + VkPhysicalDeviceExtendedDynamicState3PropertiesEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "drmFormatModifier = %A" x.drmFormatModifier - sprintf "sharingMode = %A" x.sharingMode - sprintf "queueFamilyIndexCount = %A" x.queueFamilyIndexCount - sprintf "pQueueFamilyIndices = %A" x.pQueueFamilyIndices - ] |> sprintf "VkPhysicalDeviceImageDrmFormatModifierInfoEXT { %s }" + sprintf "dynamicPrimitiveTopologyUnrestricted = %A" x.dynamicPrimitiveTopologyUnrestricted + ] |> sprintf "VkPhysicalDeviceExtendedDynamicState3PropertiesEXT { %s }" end [] module EnumExtensions = - type VkImageAspectFlags with - static member inline MemoryPlane0BitExt = unbox 0x00000080 - static member inline MemoryPlane1BitExt = unbox 0x00000100 - static member inline MemoryPlane2BitExt = unbox 0x00000200 - static member inline MemoryPlane3BitExt = unbox 0x00000400 - type VkImageTiling with - static member inline DrmFormatModifierExt = unbox 1000158000 - type VkResult with - static member inline ErrorInvalidDrmFormatModifierPlaneLayoutExt = unbox -1000158000 + type VkDynamicState with + static member inline DepthClampEnableExt = unbox 1000455003 + static member inline PolygonModeExt = unbox 1000455004 + static member inline RasterizationSamplesExt = unbox 1000455005 + static member inline SampleMaskExt = unbox 1000455006 + static member inline AlphaToCoverageEnableExt = unbox 1000455007 + static member inline AlphaToOneEnableExt = unbox 1000455008 + static member inline LogicOpEnableExt = unbox 1000455009 + static member inline ColorBlendEnableExt = unbox 1000455010 + static member inline ColorBlendEquationExt = unbox 1000455011 + static member inline ColorWriteMaskExt = unbox 1000455012 module VkRaw = [] - type VkGetImageDrmFormatModifierPropertiesEXTDel = delegate of VkDevice * VkImage * nativeptr -> VkResult + type VkCmdSetDepthClampEnableEXTDel = delegate of VkCommandBuffer * VkBool32 -> unit + [] + type VkCmdSetPolygonModeEXTDel = delegate of VkCommandBuffer * VkPolygonMode -> unit + [] + type VkCmdSetRasterizationSamplesEXTDel = delegate of VkCommandBuffer * VkSampleCountFlags -> unit + [] + type VkCmdSetSampleMaskEXTDel = delegate of VkCommandBuffer * VkSampleCountFlags * nativeptr -> unit + [] + type VkCmdSetAlphaToCoverageEnableEXTDel = delegate of VkCommandBuffer * VkBool32 -> unit + [] + type VkCmdSetAlphaToOneEnableEXTDel = delegate of VkCommandBuffer * VkBool32 -> unit + [] + type VkCmdSetLogicOpEnableEXTDel = delegate of VkCommandBuffer * VkBool32 -> unit + [] + type VkCmdSetColorBlendEnableEXTDel = delegate of VkCommandBuffer * uint32 * uint32 * nativeptr -> unit + [] + type VkCmdSetColorBlendEquationEXTDel = delegate of VkCommandBuffer * uint32 * uint32 * nativeptr -> unit + [] + type VkCmdSetColorWriteMaskEXTDel = delegate of VkCommandBuffer * uint32 * uint32 * nativeptr -> unit [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading EXTImageDrmFormatModifier") - static let s_vkGetImageDrmFormatModifierPropertiesEXTDel = VkRaw.vkImportInstanceDelegate "vkGetImageDrmFormatModifierPropertiesEXT" + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTExtendedDynamicState3") + static let s_vkCmdSetDepthClampEnableEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetDepthClampEnableEXT" + static let s_vkCmdSetPolygonModeEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetPolygonModeEXT" + static let s_vkCmdSetRasterizationSamplesEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetRasterizationSamplesEXT" + static let s_vkCmdSetSampleMaskEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetSampleMaskEXT" + static let s_vkCmdSetAlphaToCoverageEnableEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetAlphaToCoverageEnableEXT" + static let s_vkCmdSetAlphaToOneEnableEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetAlphaToOneEnableEXT" + static let s_vkCmdSetLogicOpEnableEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetLogicOpEnableEXT" + static let s_vkCmdSetColorBlendEnableEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetColorBlendEnableEXT" + static let s_vkCmdSetColorBlendEquationEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetColorBlendEquationEXT" + static let s_vkCmdSetColorWriteMaskEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetColorWriteMaskEXT" static do Report.End(3) |> ignore - static member vkGetImageDrmFormatModifierPropertiesEXT = s_vkGetImageDrmFormatModifierPropertiesEXTDel - let vkGetImageDrmFormatModifierPropertiesEXT(device : VkDevice, image : VkImage, pProperties : nativeptr) = Loader.vkGetImageDrmFormatModifierPropertiesEXT.Invoke(device, image, pProperties) + static member vkCmdSetDepthClampEnableEXT = s_vkCmdSetDepthClampEnableEXTDel + static member vkCmdSetPolygonModeEXT = s_vkCmdSetPolygonModeEXTDel + static member vkCmdSetRasterizationSamplesEXT = s_vkCmdSetRasterizationSamplesEXTDel + static member vkCmdSetSampleMaskEXT = s_vkCmdSetSampleMaskEXTDel + static member vkCmdSetAlphaToCoverageEnableEXT = s_vkCmdSetAlphaToCoverageEnableEXTDel + static member vkCmdSetAlphaToOneEnableEXT = s_vkCmdSetAlphaToOneEnableEXTDel + static member vkCmdSetLogicOpEnableEXT = s_vkCmdSetLogicOpEnableEXTDel + static member vkCmdSetColorBlendEnableEXT = s_vkCmdSetColorBlendEnableEXTDel + static member vkCmdSetColorBlendEquationEXT = s_vkCmdSetColorBlendEquationEXTDel + static member vkCmdSetColorWriteMaskEXT = s_vkCmdSetColorWriteMaskEXTDel + let vkCmdSetDepthClampEnableEXT(commandBuffer : VkCommandBuffer, depthClampEnable : VkBool32) = Loader.vkCmdSetDepthClampEnableEXT.Invoke(commandBuffer, depthClampEnable) + let vkCmdSetPolygonModeEXT(commandBuffer : VkCommandBuffer, polygonMode : VkPolygonMode) = Loader.vkCmdSetPolygonModeEXT.Invoke(commandBuffer, polygonMode) + let vkCmdSetRasterizationSamplesEXT(commandBuffer : VkCommandBuffer, rasterizationSamples : VkSampleCountFlags) = Loader.vkCmdSetRasterizationSamplesEXT.Invoke(commandBuffer, rasterizationSamples) + let vkCmdSetSampleMaskEXT(commandBuffer : VkCommandBuffer, samples : VkSampleCountFlags, pSampleMask : nativeptr) = Loader.vkCmdSetSampleMaskEXT.Invoke(commandBuffer, samples, pSampleMask) + let vkCmdSetAlphaToCoverageEnableEXT(commandBuffer : VkCommandBuffer, alphaToCoverageEnable : VkBool32) = Loader.vkCmdSetAlphaToCoverageEnableEXT.Invoke(commandBuffer, alphaToCoverageEnable) + let vkCmdSetAlphaToOneEnableEXT(commandBuffer : VkCommandBuffer, alphaToOneEnable : VkBool32) = Loader.vkCmdSetAlphaToOneEnableEXT.Invoke(commandBuffer, alphaToOneEnable) + let vkCmdSetLogicOpEnableEXT(commandBuffer : VkCommandBuffer, logicOpEnable : VkBool32) = Loader.vkCmdSetLogicOpEnableEXT.Invoke(commandBuffer, logicOpEnable) + let vkCmdSetColorBlendEnableEXT(commandBuffer : VkCommandBuffer, firstAttachment : uint32, attachmentCount : uint32, pColorBlendEnables : nativeptr) = Loader.vkCmdSetColorBlendEnableEXT.Invoke(commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables) + let vkCmdSetColorBlendEquationEXT(commandBuffer : VkCommandBuffer, firstAttachment : uint32, attachmentCount : uint32, pColorBlendEquations : nativeptr) = Loader.vkCmdSetColorBlendEquationEXT.Invoke(commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations) + let vkCmdSetColorWriteMaskEXT(commandBuffer : VkCommandBuffer, firstAttachment : uint32, attachmentCount : uint32, pColorWriteMasks : nativeptr) = Loader.vkCmdSetColorWriteMaskEXT.Invoke(commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks) - module KHRFormatFeatureFlags2 = - [] - type VkDrmFormatModifierProperties2EXT = - struct - val mutable public drmFormatModifier : uint64 - val mutable public drmFormatModifierPlaneCount : uint32 - val mutable public drmFormatModifierTilingFeatures : VkFormatFeatureFlags2 + [] + module ``KHRMaintenance2 | Vulkan11`` = + [] + module EnumExtensions = + type VkDynamicState with + static member inline TessellationDomainOriginExt = unbox 1000455002 - new(drmFormatModifier : uint64, drmFormatModifierPlaneCount : uint32, drmFormatModifierTilingFeatures : VkFormatFeatureFlags2) = - { - drmFormatModifier = drmFormatModifier - drmFormatModifierPlaneCount = drmFormatModifierPlaneCount - drmFormatModifierTilingFeatures = drmFormatModifierTilingFeatures - } + module VkRaw = + [] + type VkCmdSetTessellationDomainOriginEXTDel = delegate of VkCommandBuffer * Vulkan11.VkTessellationDomainOrigin -> unit - member x.IsEmpty = - x.drmFormatModifier = Unchecked.defaultof && x.drmFormatModifierPlaneCount = Unchecked.defaultof && x.drmFormatModifierTilingFeatures = Unchecked.defaultof + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTExtendedDynamicState3 -> KHRMaintenance2 | Vulkan11") + static let s_vkCmdSetTessellationDomainOriginEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetTessellationDomainOriginEXT" + static do Report.End(3) |> ignore + static member vkCmdSetTessellationDomainOriginEXT = s_vkCmdSetTessellationDomainOriginEXTDel + let vkCmdSetTessellationDomainOriginEXT(commandBuffer : VkCommandBuffer, domainOrigin : Vulkan11.VkTessellationDomainOrigin) = Loader.vkCmdSetTessellationDomainOriginEXT.Invoke(commandBuffer, domainOrigin) - static member Empty = - VkDrmFormatModifierProperties2EXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + [] + module ``EXTTransformFeedback`` = + [] + module EnumExtensions = + type VkDynamicState with + static member inline RasterizationStreamExt = unbox 1000455013 - override x.ToString() = - String.concat "; " [ - sprintf "drmFormatModifier = %A" x.drmFormatModifier - sprintf "drmFormatModifierPlaneCount = %A" x.drmFormatModifierPlaneCount - sprintf "drmFormatModifierTilingFeatures = %A" x.drmFormatModifierTilingFeatures - ] |> sprintf "VkDrmFormatModifierProperties2EXT { %s }" - end + module VkRaw = + [] + type VkCmdSetRasterizationStreamEXTDel = delegate of VkCommandBuffer * uint32 -> unit - [] - type VkDrmFormatModifierPropertiesList2EXT = - struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public drmFormatModifierCount : uint32 - val mutable public pDrmFormatModifierProperties : nativeptr + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTExtendedDynamicState3 -> EXTTransformFeedback") + static let s_vkCmdSetRasterizationStreamEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetRasterizationStreamEXT" + static do Report.End(3) |> ignore + static member vkCmdSetRasterizationStreamEXT = s_vkCmdSetRasterizationStreamEXTDel + let vkCmdSetRasterizationStreamEXT(commandBuffer : VkCommandBuffer, rasterizationStream : uint32) = Loader.vkCmdSetRasterizationStreamEXT.Invoke(commandBuffer, rasterizationStream) - new(pNext : nativeint, drmFormatModifierCount : uint32, pDrmFormatModifierProperties : nativeptr) = - { - sType = 1000158006u - pNext = pNext - drmFormatModifierCount = drmFormatModifierCount - pDrmFormatModifierProperties = pDrmFormatModifierProperties - } + [] + module ``EXTConservativeRasterization`` = + [] + module EnumExtensions = + type VkDynamicState with + static member inline ConservativeRasterizationModeExt = unbox 1000455014 + static member inline ExtraPrimitiveOverestimationSizeExt = unbox 1000455015 - new(drmFormatModifierCount : uint32, pDrmFormatModifierProperties : nativeptr) = - VkDrmFormatModifierPropertiesList2EXT(Unchecked.defaultof, drmFormatModifierCount, pDrmFormatModifierProperties) + module VkRaw = + [] + type VkCmdSetConservativeRasterizationModeEXTDel = delegate of VkCommandBuffer * EXTConservativeRasterization.VkConservativeRasterizationModeEXT -> unit + [] + type VkCmdSetExtraPrimitiveOverestimationSizeEXTDel = delegate of VkCommandBuffer * float32 -> unit - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.drmFormatModifierCount = Unchecked.defaultof && x.pDrmFormatModifierProperties = Unchecked.defaultof> + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTExtendedDynamicState3 -> EXTConservativeRasterization") + static let s_vkCmdSetConservativeRasterizationModeEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetConservativeRasterizationModeEXT" + static let s_vkCmdSetExtraPrimitiveOverestimationSizeEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetExtraPrimitiveOverestimationSizeEXT" + static do Report.End(3) |> ignore + static member vkCmdSetConservativeRasterizationModeEXT = s_vkCmdSetConservativeRasterizationModeEXTDel + static member vkCmdSetExtraPrimitiveOverestimationSizeEXT = s_vkCmdSetExtraPrimitiveOverestimationSizeEXTDel + let vkCmdSetConservativeRasterizationModeEXT(commandBuffer : VkCommandBuffer, conservativeRasterizationMode : EXTConservativeRasterization.VkConservativeRasterizationModeEXT) = Loader.vkCmdSetConservativeRasterizationModeEXT.Invoke(commandBuffer, conservativeRasterizationMode) + let vkCmdSetExtraPrimitiveOverestimationSizeEXT(commandBuffer : VkCommandBuffer, extraPrimitiveOverestimationSize : float32) = Loader.vkCmdSetExtraPrimitiveOverestimationSizeEXT.Invoke(commandBuffer, extraPrimitiveOverestimationSize) - static member Empty = - VkDrmFormatModifierPropertiesList2EXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + [] + module ``EXTDepthClipEnable`` = + [] + module EnumExtensions = + type VkDynamicState with + static member inline DepthClipEnableExt = unbox 1000455016 - override x.ToString() = - String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "drmFormatModifierCount = %A" x.drmFormatModifierCount - sprintf "pDrmFormatModifierProperties = %A" x.pDrmFormatModifierProperties - ] |> sprintf "VkDrmFormatModifierPropertiesList2EXT { %s }" - end + module VkRaw = + [] + type VkCmdSetDepthClipEnableEXTDel = delegate of VkCommandBuffer * VkBool32 -> unit + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTExtendedDynamicState3 -> EXTDepthClipEnable") + static let s_vkCmdSetDepthClipEnableEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetDepthClipEnableEXT" + static do Report.End(3) |> ignore + static member vkCmdSetDepthClipEnableEXT = s_vkCmdSetDepthClipEnableEXTDel + let vkCmdSetDepthClipEnableEXT(commandBuffer : VkCommandBuffer, depthClipEnable : VkBool32) = Loader.vkCmdSetDepthClipEnableEXT.Invoke(commandBuffer, depthClipEnable) + [] + module ``EXTSampleLocations`` = + [] + module EnumExtensions = + type VkDynamicState with + static member inline SampleLocationsEnableExt = unbox 1000455017 -module EXTImageRobustness = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_EXT_image_robustness" - let Number = 336 + module VkRaw = + [] + type VkCmdSetSampleLocationsEnableEXTDel = delegate of VkCommandBuffer * VkBool32 -> unit + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTExtendedDynamicState3 -> EXTSampleLocations") + static let s_vkCmdSetSampleLocationsEnableEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetSampleLocationsEnableEXT" + static do Report.End(3) |> ignore + static member vkCmdSetSampleLocationsEnableEXT = s_vkCmdSetSampleLocationsEnableEXTDel + let vkCmdSetSampleLocationsEnableEXT(commandBuffer : VkCommandBuffer, sampleLocationsEnable : VkBool32) = Loader.vkCmdSetSampleLocationsEnableEXT.Invoke(commandBuffer, sampleLocationsEnable) + + [] + module ``EXTBlendOperationAdvanced`` = + [] + module EnumExtensions = + type VkDynamicState with + static member inline ColorBlendAdvancedExt = unbox 1000455018 - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] + module VkRaw = + [] + type VkCmdSetColorBlendAdvancedEXTDel = delegate of VkCommandBuffer * uint32 * uint32 * nativeptr -> unit + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTExtendedDynamicState3 -> EXTBlendOperationAdvanced") + static let s_vkCmdSetColorBlendAdvancedEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetColorBlendAdvancedEXT" + static do Report.End(3) |> ignore + static member vkCmdSetColorBlendAdvancedEXT = s_vkCmdSetColorBlendAdvancedEXTDel + let vkCmdSetColorBlendAdvancedEXT(commandBuffer : VkCommandBuffer, firstAttachment : uint32, attachmentCount : uint32, pColorBlendAdvanced : nativeptr) = Loader.vkCmdSetColorBlendAdvancedEXT.Invoke(commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced) - type VkPhysicalDeviceImageRobustnessFeaturesEXT = VkPhysicalDeviceImageRobustnessFeatures + [] + module ``EXTProvokingVertex`` = + [] + module EnumExtensions = + type VkDynamicState with + static member inline ProvokingVertexModeExt = unbox 1000455019 + module VkRaw = + [] + type VkCmdSetProvokingVertexModeEXTDel = delegate of VkCommandBuffer * EXTProvokingVertex.VkProvokingVertexModeEXT -> unit + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTExtendedDynamicState3 -> EXTProvokingVertex") + static let s_vkCmdSetProvokingVertexModeEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetProvokingVertexModeEXT" + static do Report.End(3) |> ignore + static member vkCmdSetProvokingVertexModeEXT = s_vkCmdSetProvokingVertexModeEXTDel + let vkCmdSetProvokingVertexModeEXT(commandBuffer : VkCommandBuffer, provokingVertexMode : EXTProvokingVertex.VkProvokingVertexModeEXT) = Loader.vkCmdSetProvokingVertexModeEXT.Invoke(commandBuffer, provokingVertexMode) -module EXTImageViewMinLod = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_EXT_image_view_min_lod" - let Number = 392 + [] + module ``EXTLineRasterization`` = + [] + module EnumExtensions = + type VkDynamicState with + static member inline LineRasterizationModeExt = unbox 1000455020 + static member inline LineStippleEnableExt = unbox 1000455021 + + module VkRaw = + [] + type VkCmdSetLineRasterizationModeEXTDel = delegate of VkCommandBuffer * EXTLineRasterization.VkLineRasterizationModeEXT -> unit + [] + type VkCmdSetLineStippleEnableEXTDel = delegate of VkCommandBuffer * VkBool32 -> unit + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTExtendedDynamicState3 -> EXTLineRasterization") + static let s_vkCmdSetLineRasterizationModeEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetLineRasterizationModeEXT" + static let s_vkCmdSetLineStippleEnableEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetLineStippleEnableEXT" + static do Report.End(3) |> ignore + static member vkCmdSetLineRasterizationModeEXT = s_vkCmdSetLineRasterizationModeEXTDel + static member vkCmdSetLineStippleEnableEXT = s_vkCmdSetLineStippleEnableEXTDel + let vkCmdSetLineRasterizationModeEXT(commandBuffer : VkCommandBuffer, lineRasterizationMode : EXTLineRasterization.VkLineRasterizationModeEXT) = Loader.vkCmdSetLineRasterizationModeEXT.Invoke(commandBuffer, lineRasterizationMode) + let vkCmdSetLineStippleEnableEXT(commandBuffer : VkCommandBuffer, stippledLineEnable : VkBool32) = Loader.vkCmdSetLineStippleEnableEXT.Invoke(commandBuffer, stippledLineEnable) + + [] + module ``EXTDepthClipControl`` = + [] + module EnumExtensions = + type VkDynamicState with + static member inline DepthClipNegativeOneToOneExt = unbox 1000455022 + + module VkRaw = + [] + type VkCmdSetDepthClipNegativeOneToOneEXTDel = delegate of VkCommandBuffer * VkBool32 -> unit + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTExtendedDynamicState3 -> EXTDepthClipControl") + static let s_vkCmdSetDepthClipNegativeOneToOneEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetDepthClipNegativeOneToOneEXT" + static do Report.End(3) |> ignore + static member vkCmdSetDepthClipNegativeOneToOneEXT = s_vkCmdSetDepthClipNegativeOneToOneEXTDel + let vkCmdSetDepthClipNegativeOneToOneEXT(commandBuffer : VkCommandBuffer, negativeOneToOne : VkBool32) = Loader.vkCmdSetDepthClipNegativeOneToOneEXT.Invoke(commandBuffer, negativeOneToOne) + + [] + module ``NVClipSpaceWScaling`` = + [] + module EnumExtensions = + type VkDynamicState with + static member inline ViewportWScalingEnableNv = unbox 1000455023 + + module VkRaw = + [] + type VkCmdSetViewportWScalingEnableNVDel = delegate of VkCommandBuffer * VkBool32 -> unit + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTExtendedDynamicState3 -> NVClipSpaceWScaling") + static let s_vkCmdSetViewportWScalingEnableNVDel = VkRaw.vkImportInstanceDelegate "vkCmdSetViewportWScalingEnableNV" + static do Report.End(3) |> ignore + static member vkCmdSetViewportWScalingEnableNV = s_vkCmdSetViewportWScalingEnableNVDel + let vkCmdSetViewportWScalingEnableNV(commandBuffer : VkCommandBuffer, viewportWScalingEnable : VkBool32) = Loader.vkCmdSetViewportWScalingEnableNV.Invoke(commandBuffer, viewportWScalingEnable) + + [] + module ``NVViewportSwizzle`` = + [] + module EnumExtensions = + type VkDynamicState with + static member inline ViewportSwizzleNv = unbox 1000455024 + + module VkRaw = + [] + type VkCmdSetViewportSwizzleNVDel = delegate of VkCommandBuffer * uint32 * uint32 * nativeptr -> unit + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTExtendedDynamicState3 -> NVViewportSwizzle") + static let s_vkCmdSetViewportSwizzleNVDel = VkRaw.vkImportInstanceDelegate "vkCmdSetViewportSwizzleNV" + static do Report.End(3) |> ignore + static member vkCmdSetViewportSwizzleNV = s_vkCmdSetViewportSwizzleNVDel + let vkCmdSetViewportSwizzleNV(commandBuffer : VkCommandBuffer, firstViewport : uint32, viewportCount : uint32, pViewportSwizzles : nativeptr) = Loader.vkCmdSetViewportSwizzleNV.Invoke(commandBuffer, firstViewport, viewportCount, pViewportSwizzles) + + [] + module ``NVFragmentCoverageToColor`` = + [] + module EnumExtensions = + type VkDynamicState with + static member inline CoverageToColorEnableNv = unbox 1000455025 + static member inline CoverageToColorLocationNv = unbox 1000455026 + + module VkRaw = + [] + type VkCmdSetCoverageToColorEnableNVDel = delegate of VkCommandBuffer * VkBool32 -> unit + [] + type VkCmdSetCoverageToColorLocationNVDel = delegate of VkCommandBuffer * uint32 -> unit + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTExtendedDynamicState3 -> NVFragmentCoverageToColor") + static let s_vkCmdSetCoverageToColorEnableNVDel = VkRaw.vkImportInstanceDelegate "vkCmdSetCoverageToColorEnableNV" + static let s_vkCmdSetCoverageToColorLocationNVDel = VkRaw.vkImportInstanceDelegate "vkCmdSetCoverageToColorLocationNV" + static do Report.End(3) |> ignore + static member vkCmdSetCoverageToColorEnableNV = s_vkCmdSetCoverageToColorEnableNVDel + static member vkCmdSetCoverageToColorLocationNV = s_vkCmdSetCoverageToColorLocationNVDel + let vkCmdSetCoverageToColorEnableNV(commandBuffer : VkCommandBuffer, coverageToColorEnable : VkBool32) = Loader.vkCmdSetCoverageToColorEnableNV.Invoke(commandBuffer, coverageToColorEnable) + let vkCmdSetCoverageToColorLocationNV(commandBuffer : VkCommandBuffer, coverageToColorLocation : uint32) = Loader.vkCmdSetCoverageToColorLocationNV.Invoke(commandBuffer, coverageToColorLocation) + + [] + module ``NVFramebufferMixedSamples`` = + [] + module EnumExtensions = + type VkDynamicState with + static member inline CoverageModulationModeNv = unbox 1000455027 + static member inline CoverageModulationTableEnableNv = unbox 1000455028 + static member inline CoverageModulationTableNv = unbox 1000455029 + + module VkRaw = + [] + type VkCmdSetCoverageModulationModeNVDel = delegate of VkCommandBuffer * NVFramebufferMixedSamples.VkCoverageModulationModeNV -> unit + [] + type VkCmdSetCoverageModulationTableEnableNVDel = delegate of VkCommandBuffer * VkBool32 -> unit + [] + type VkCmdSetCoverageModulationTableNVDel = delegate of VkCommandBuffer * uint32 * nativeptr -> unit + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTExtendedDynamicState3 -> NVFramebufferMixedSamples") + static let s_vkCmdSetCoverageModulationModeNVDel = VkRaw.vkImportInstanceDelegate "vkCmdSetCoverageModulationModeNV" + static let s_vkCmdSetCoverageModulationTableEnableNVDel = VkRaw.vkImportInstanceDelegate "vkCmdSetCoverageModulationTableEnableNV" + static let s_vkCmdSetCoverageModulationTableNVDel = VkRaw.vkImportInstanceDelegate "vkCmdSetCoverageModulationTableNV" + static do Report.End(3) |> ignore + static member vkCmdSetCoverageModulationModeNV = s_vkCmdSetCoverageModulationModeNVDel + static member vkCmdSetCoverageModulationTableEnableNV = s_vkCmdSetCoverageModulationTableEnableNVDel + static member vkCmdSetCoverageModulationTableNV = s_vkCmdSetCoverageModulationTableNVDel + let vkCmdSetCoverageModulationModeNV(commandBuffer : VkCommandBuffer, coverageModulationMode : NVFramebufferMixedSamples.VkCoverageModulationModeNV) = Loader.vkCmdSetCoverageModulationModeNV.Invoke(commandBuffer, coverageModulationMode) + let vkCmdSetCoverageModulationTableEnableNV(commandBuffer : VkCommandBuffer, coverageModulationTableEnable : VkBool32) = Loader.vkCmdSetCoverageModulationTableEnableNV.Invoke(commandBuffer, coverageModulationTableEnable) + let vkCmdSetCoverageModulationTableNV(commandBuffer : VkCommandBuffer, coverageModulationTableCount : uint32, pCoverageModulationTable : nativeptr) = Loader.vkCmdSetCoverageModulationTableNV.Invoke(commandBuffer, coverageModulationTableCount, pCoverageModulationTable) + + [] + module ``NVShadingRateImage`` = + [] + module EnumExtensions = + type VkDynamicState with + static member inline ShadingRateImageEnableNv = unbox 1000455030 + + module VkRaw = + [] + type VkCmdSetShadingRateImageEnableNVDel = delegate of VkCommandBuffer * VkBool32 -> unit + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTExtendedDynamicState3 -> NVShadingRateImage") + static let s_vkCmdSetShadingRateImageEnableNVDel = VkRaw.vkImportInstanceDelegate "vkCmdSetShadingRateImageEnableNV" + static do Report.End(3) |> ignore + static member vkCmdSetShadingRateImageEnableNV = s_vkCmdSetShadingRateImageEnableNVDel + let vkCmdSetShadingRateImageEnableNV(commandBuffer : VkCommandBuffer, shadingRateImageEnable : VkBool32) = Loader.vkCmdSetShadingRateImageEnableNV.Invoke(commandBuffer, shadingRateImageEnable) + + [] + module ``NVRepresentativeFragmentTest`` = + [] + module EnumExtensions = + type VkDynamicState with + static member inline RepresentativeFragmentTestEnableNv = unbox 1000455031 + + module VkRaw = + [] + type VkCmdSetRepresentativeFragmentTestEnableNVDel = delegate of VkCommandBuffer * VkBool32 -> unit - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTExtendedDynamicState3 -> NVRepresentativeFragmentTest") + static let s_vkCmdSetRepresentativeFragmentTestEnableNVDel = VkRaw.vkImportInstanceDelegate "vkCmdSetRepresentativeFragmentTestEnableNV" + static do Report.End(3) |> ignore + static member vkCmdSetRepresentativeFragmentTestEnableNV = s_vkCmdSetRepresentativeFragmentTestEnableNVDel + let vkCmdSetRepresentativeFragmentTestEnableNV(commandBuffer : VkCommandBuffer, representativeFragmentTestEnable : VkBool32) = Loader.vkCmdSetRepresentativeFragmentTestEnableNV.Invoke(commandBuffer, representativeFragmentTestEnable) + + [] + module ``NVCoverageReductionMode`` = + [] + module EnumExtensions = + type VkDynamicState with + static member inline CoverageReductionModeNv = unbox 1000455032 + + module VkRaw = + [] + type VkCmdSetCoverageReductionModeNVDel = delegate of VkCommandBuffer * NVCoverageReductionMode.VkCoverageReductionModeNV -> unit + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTExtendedDynamicState3 -> NVCoverageReductionMode") + static let s_vkCmdSetCoverageReductionModeNVDel = VkRaw.vkImportInstanceDelegate "vkCmdSetCoverageReductionModeNV" + static do Report.End(3) |> ignore + static member vkCmdSetCoverageReductionModeNV = s_vkCmdSetCoverageReductionModeNVDel + let vkCmdSetCoverageReductionModeNV(commandBuffer : VkCommandBuffer, coverageReductionMode : NVCoverageReductionMode.VkCoverageReductionModeNV) = Loader.vkCmdSetCoverageReductionModeNV.Invoke(commandBuffer, coverageReductionMode) +/// Requires KHRExternalMemory | Vulkan11. +module EXTExternalMemoryAcquireUnmodified = + let Type = ExtensionType.Device + let Name = "VK_EXT_external_memory_acquire_unmodified" + let Number = 454 [] - type VkImageViewMinLodCreateInfoEXT = + type VkExternalMemoryAcquireUnmodifiedEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public minLod : float32 + val mutable public acquireUnmodifiedMemory : VkBool32 - new(pNext : nativeint, minLod : float32) = + new(pNext : nativeint, acquireUnmodifiedMemory : VkBool32) = { - sType = 1000391001u + sType = 1000453000u pNext = pNext - minLod = minLod + acquireUnmodifiedMemory = acquireUnmodifiedMemory } - new(minLod : float32) = - VkImageViewMinLodCreateInfoEXT(Unchecked.defaultof, minLod) + new(acquireUnmodifiedMemory : VkBool32) = + VkExternalMemoryAcquireUnmodifiedEXT(Unchecked.defaultof, acquireUnmodifiedMemory) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.minLod = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.acquireUnmodifiedMemory = Unchecked.defaultof static member Empty = - VkImageViewMinLodCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof) + VkExternalMemoryAcquireUnmodifiedEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "minLod = %A" x.minLod - ] |> sprintf "VkImageViewMinLodCreateInfoEXT { %s }" + sprintf "acquireUnmodifiedMemory = %A" x.acquireUnmodifiedMemory + ] |> sprintf "VkExternalMemoryAcquireUnmodifiedEXT { %s }" end + + +/// Requires KHRExternalMemory | Vulkan11. +module KHRExternalMemoryFd = + let Type = ExtensionType.Device + let Name = "VK_KHR_external_memory_fd" + let Number = 75 + [] - type VkPhysicalDeviceImageViewMinLodFeaturesEXT = + type VkImportMemoryFdInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public minLod : VkBool32 + val mutable public handleType : Vulkan11.VkExternalMemoryHandleTypeFlags + val mutable public fd : int32 - new(pNext : nativeint, minLod : VkBool32) = + new(pNext : nativeint, handleType : Vulkan11.VkExternalMemoryHandleTypeFlags, fd : int32) = { - sType = 1000391000u + sType = 1000074000u pNext = pNext - minLod = minLod + handleType = handleType + fd = fd } - new(minLod : VkBool32) = - VkPhysicalDeviceImageViewMinLodFeaturesEXT(Unchecked.defaultof, minLod) + new(handleType : Vulkan11.VkExternalMemoryHandleTypeFlags, fd : int32) = + VkImportMemoryFdInfoKHR(Unchecked.defaultof, handleType, fd) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.minLod = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.handleType = Unchecked.defaultof && x.fd = Unchecked.defaultof static member Empty = - VkPhysicalDeviceImageViewMinLodFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) + VkImportMemoryFdInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "minLod = %A" x.minLod - ] |> sprintf "VkPhysicalDeviceImageViewMinLodFeaturesEXT { %s }" + sprintf "handleType = %A" x.handleType + sprintf "fd = %A" x.fd + ] |> sprintf "VkImportMemoryFdInfoKHR { %s }" end - - -module EXTIndexTypeUint8 = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_EXT_index_type_uint8" - let Number = 266 - - [] - type VkPhysicalDeviceIndexTypeUint8FeaturesEXT = + type VkMemoryFdPropertiesKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public indexTypeUint8 : VkBool32 + val mutable public memoryTypeBits : uint32 - new(pNext : nativeint, indexTypeUint8 : VkBool32) = + new(pNext : nativeint, memoryTypeBits : uint32) = { - sType = 1000265000u + sType = 1000074001u pNext = pNext - indexTypeUint8 = indexTypeUint8 + memoryTypeBits = memoryTypeBits } - new(indexTypeUint8 : VkBool32) = - VkPhysicalDeviceIndexTypeUint8FeaturesEXT(Unchecked.defaultof, indexTypeUint8) + new(memoryTypeBits : uint32) = + VkMemoryFdPropertiesKHR(Unchecked.defaultof, memoryTypeBits) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.indexTypeUint8 = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.memoryTypeBits = Unchecked.defaultof static member Empty = - VkPhysicalDeviceIndexTypeUint8FeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) + VkMemoryFdPropertiesKHR(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "indexTypeUint8 = %A" x.indexTypeUint8 - ] |> sprintf "VkPhysicalDeviceIndexTypeUint8FeaturesEXT { %s }" + sprintf "memoryTypeBits = %A" x.memoryTypeBits + ] |> sprintf "VkMemoryFdPropertiesKHR { %s }" end + [] + type VkMemoryGetFdInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public memory : VkDeviceMemory + val mutable public handleType : Vulkan11.VkExternalMemoryHandleTypeFlags - [] - module EnumExtensions = - type VkIndexType with - static member inline Uint8Ext = unbox 1000265000 - + new(pNext : nativeint, memory : VkDeviceMemory, handleType : Vulkan11.VkExternalMemoryHandleTypeFlags) = + { + sType = 1000074002u + pNext = pNext + memory = memory + handleType = handleType + } -module EXTInlineUniformBlock = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - open KHRMaintenance1 - let Name = "VK_EXT_inline_uniform_block" - let Number = 139 + new(memory : VkDeviceMemory, handleType : Vulkan11.VkExternalMemoryHandleTypeFlags) = + VkMemoryGetFdInfoKHR(Unchecked.defaultof, memory, handleType) - let Required = [ KHRGetPhysicalDeviceProperties2.Name; KHRMaintenance1.Name ] + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.memory = Unchecked.defaultof && x.handleType = Unchecked.defaultof + static member Empty = + VkMemoryGetFdInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) - type VkDescriptorPoolInlineUniformBlockCreateInfoEXT = VkDescriptorPoolInlineUniformBlockCreateInfo + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "memory = %A" x.memory + sprintf "handleType = %A" x.handleType + ] |> sprintf "VkMemoryGetFdInfoKHR { %s }" + end - type VkPhysicalDeviceInlineUniformBlockFeaturesEXT = VkPhysicalDeviceInlineUniformBlockFeatures - type VkPhysicalDeviceInlineUniformBlockPropertiesEXT = VkPhysicalDeviceInlineUniformBlockProperties + module VkRaw = + [] + type VkGetMemoryFdKHRDel = delegate of VkDevice * nativeptr * nativeptr -> VkResult + [] + type VkGetMemoryFdPropertiesKHRDel = delegate of VkDevice * Vulkan11.VkExternalMemoryHandleTypeFlags * int32 * nativeptr -> VkResult - type VkWriteDescriptorSetInlineUniformBlockEXT = VkWriteDescriptorSetInlineUniformBlock + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRExternalMemoryFd") + static let s_vkGetMemoryFdKHRDel = VkRaw.vkImportInstanceDelegate "vkGetMemoryFdKHR" + static let s_vkGetMemoryFdPropertiesKHRDel = VkRaw.vkImportInstanceDelegate "vkGetMemoryFdPropertiesKHR" + static do Report.End(3) |> ignore + static member vkGetMemoryFdKHR = s_vkGetMemoryFdKHRDel + static member vkGetMemoryFdPropertiesKHR = s_vkGetMemoryFdPropertiesKHRDel + let vkGetMemoryFdKHR(device : VkDevice, pGetFdInfo : nativeptr, pFd : nativeptr) = Loader.vkGetMemoryFdKHR.Invoke(device, pGetFdInfo, pFd) + let vkGetMemoryFdPropertiesKHR(device : VkDevice, handleType : Vulkan11.VkExternalMemoryHandleTypeFlags, fd : int32, pMemoryFdProperties : nativeptr) = Loader.vkGetMemoryFdPropertiesKHR.Invoke(device, handleType, fd, pMemoryFdProperties) +/// Requires KHRExternalMemoryFd. +module EXTExternalMemoryDmaBuf = + let Type = ExtensionType.Device + let Name = "VK_EXT_external_memory_dma_buf" + let Number = 126 [] module EnumExtensions = - type VkDescriptorType with - static member inline InlineUniformBlockExt = unbox 1000138000 - + type Vulkan11.VkExternalMemoryHandleTypeFlags with + static member inline DmaBufBitExt = unbox 0x00000200 -module EXTLineRasterization = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_EXT_line_rasterization" - let Number = 260 - - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] - - - type VkLineRasterizationModeEXT = - | Default = 0 - | Rectangular = 1 - | Bresenham = 2 - | RectangularSmooth = 3 +/// Requires KHRExternalMemory | Vulkan11. +module EXTExternalMemoryHost = + let Type = ExtensionType.Device + let Name = "VK_EXT_external_memory_host" + let Number = 179 [] - type VkPhysicalDeviceLineRasterizationFeaturesEXT = + type VkImportMemoryHostPointerInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public rectangularLines : VkBool32 - val mutable public bresenhamLines : VkBool32 - val mutable public smoothLines : VkBool32 - val mutable public stippledRectangularLines : VkBool32 - val mutable public stippledBresenhamLines : VkBool32 - val mutable public stippledSmoothLines : VkBool32 + val mutable public handleType : Vulkan11.VkExternalMemoryHandleTypeFlags + val mutable public pHostPointer : nativeint - new(pNext : nativeint, rectangularLines : VkBool32, bresenhamLines : VkBool32, smoothLines : VkBool32, stippledRectangularLines : VkBool32, stippledBresenhamLines : VkBool32, stippledSmoothLines : VkBool32) = + new(pNext : nativeint, handleType : Vulkan11.VkExternalMemoryHandleTypeFlags, pHostPointer : nativeint) = { - sType = 1000259000u + sType = 1000178000u pNext = pNext - rectangularLines = rectangularLines - bresenhamLines = bresenhamLines - smoothLines = smoothLines - stippledRectangularLines = stippledRectangularLines - stippledBresenhamLines = stippledBresenhamLines - stippledSmoothLines = stippledSmoothLines + handleType = handleType + pHostPointer = pHostPointer } - new(rectangularLines : VkBool32, bresenhamLines : VkBool32, smoothLines : VkBool32, stippledRectangularLines : VkBool32, stippledBresenhamLines : VkBool32, stippledSmoothLines : VkBool32) = - VkPhysicalDeviceLineRasterizationFeaturesEXT(Unchecked.defaultof, rectangularLines, bresenhamLines, smoothLines, stippledRectangularLines, stippledBresenhamLines, stippledSmoothLines) + new(handleType : Vulkan11.VkExternalMemoryHandleTypeFlags, pHostPointer : nativeint) = + VkImportMemoryHostPointerInfoEXT(Unchecked.defaultof, handleType, pHostPointer) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.rectangularLines = Unchecked.defaultof && x.bresenhamLines = Unchecked.defaultof && x.smoothLines = Unchecked.defaultof && x.stippledRectangularLines = Unchecked.defaultof && x.stippledBresenhamLines = Unchecked.defaultof && x.stippledSmoothLines = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.handleType = Unchecked.defaultof && x.pHostPointer = Unchecked.defaultof static member Empty = - VkPhysicalDeviceLineRasterizationFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkImportMemoryHostPointerInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "rectangularLines = %A" x.rectangularLines - sprintf "bresenhamLines = %A" x.bresenhamLines - sprintf "smoothLines = %A" x.smoothLines - sprintf "stippledRectangularLines = %A" x.stippledRectangularLines - sprintf "stippledBresenhamLines = %A" x.stippledBresenhamLines - sprintf "stippledSmoothLines = %A" x.stippledSmoothLines - ] |> sprintf "VkPhysicalDeviceLineRasterizationFeaturesEXT { %s }" + sprintf "handleType = %A" x.handleType + sprintf "pHostPointer = %A" x.pHostPointer + ] |> sprintf "VkImportMemoryHostPointerInfoEXT { %s }" end [] - type VkPhysicalDeviceLineRasterizationPropertiesEXT = + type VkMemoryHostPointerPropertiesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public lineSubPixelPrecisionBits : uint32 + val mutable public memoryTypeBits : uint32 - new(pNext : nativeint, lineSubPixelPrecisionBits : uint32) = + new(pNext : nativeint, memoryTypeBits : uint32) = { - sType = 1000259002u + sType = 1000178001u pNext = pNext - lineSubPixelPrecisionBits = lineSubPixelPrecisionBits + memoryTypeBits = memoryTypeBits } - new(lineSubPixelPrecisionBits : uint32) = - VkPhysicalDeviceLineRasterizationPropertiesEXT(Unchecked.defaultof, lineSubPixelPrecisionBits) + new(memoryTypeBits : uint32) = + VkMemoryHostPointerPropertiesEXT(Unchecked.defaultof, memoryTypeBits) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.lineSubPixelPrecisionBits = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.memoryTypeBits = Unchecked.defaultof static member Empty = - VkPhysicalDeviceLineRasterizationPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof) + VkMemoryHostPointerPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "lineSubPixelPrecisionBits = %A" x.lineSubPixelPrecisionBits - ] |> sprintf "VkPhysicalDeviceLineRasterizationPropertiesEXT { %s }" + sprintf "memoryTypeBits = %A" x.memoryTypeBits + ] |> sprintf "VkMemoryHostPointerPropertiesEXT { %s }" end [] - type VkPipelineRasterizationLineStateCreateInfoEXT = + type VkPhysicalDeviceExternalMemoryHostPropertiesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public lineRasterizationMode : VkLineRasterizationModeEXT - val mutable public stippledLineEnable : VkBool32 - val mutable public lineStippleFactor : uint32 - val mutable public lineStipplePattern : uint16 + val mutable public minImportedHostPointerAlignment : VkDeviceSize - new(pNext : nativeint, lineRasterizationMode : VkLineRasterizationModeEXT, stippledLineEnable : VkBool32, lineStippleFactor : uint32, lineStipplePattern : uint16) = + new(pNext : nativeint, minImportedHostPointerAlignment : VkDeviceSize) = { - sType = 1000259001u + sType = 1000178002u pNext = pNext - lineRasterizationMode = lineRasterizationMode - stippledLineEnable = stippledLineEnable - lineStippleFactor = lineStippleFactor - lineStipplePattern = lineStipplePattern + minImportedHostPointerAlignment = minImportedHostPointerAlignment } - new(lineRasterizationMode : VkLineRasterizationModeEXT, stippledLineEnable : VkBool32, lineStippleFactor : uint32, lineStipplePattern : uint16) = - VkPipelineRasterizationLineStateCreateInfoEXT(Unchecked.defaultof, lineRasterizationMode, stippledLineEnable, lineStippleFactor, lineStipplePattern) + new(minImportedHostPointerAlignment : VkDeviceSize) = + VkPhysicalDeviceExternalMemoryHostPropertiesEXT(Unchecked.defaultof, minImportedHostPointerAlignment) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.lineRasterizationMode = Unchecked.defaultof && x.stippledLineEnable = Unchecked.defaultof && x.lineStippleFactor = Unchecked.defaultof && x.lineStipplePattern = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.minImportedHostPointerAlignment = Unchecked.defaultof static member Empty = - VkPipelineRasterizationLineStateCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceExternalMemoryHostPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "lineRasterizationMode = %A" x.lineRasterizationMode - sprintf "stippledLineEnable = %A" x.stippledLineEnable - sprintf "lineStippleFactor = %A" x.lineStippleFactor - sprintf "lineStipplePattern = %A" x.lineStipplePattern - ] |> sprintf "VkPipelineRasterizationLineStateCreateInfoEXT { %s }" + sprintf "minImportedHostPointerAlignment = %A" x.minImportedHostPointerAlignment + ] |> sprintf "VkPhysicalDeviceExternalMemoryHostPropertiesEXT { %s }" end [] module EnumExtensions = - type VkDynamicState with - static member inline LineStippleExt = unbox 1000259000 + type Vulkan11.VkExternalMemoryHandleTypeFlags with + static member inline HostAllocationBitExt = unbox 0x00000080 + static member inline HostMappedForeignMemoryBitExt = unbox 0x00000100 module VkRaw = [] - type VkCmdSetLineStippleEXTDel = delegate of VkCommandBuffer * uint32 * uint16 -> unit + type VkGetMemoryHostPointerPropertiesEXTDel = delegate of VkDevice * Vulkan11.VkExternalMemoryHandleTypeFlags * nativeint * nativeptr -> VkResult [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading EXTLineRasterization") - static let s_vkCmdSetLineStippleEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetLineStippleEXT" + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTExternalMemoryHost") + static let s_vkGetMemoryHostPointerPropertiesEXTDel = VkRaw.vkImportInstanceDelegate "vkGetMemoryHostPointerPropertiesEXT" static do Report.End(3) |> ignore - static member vkCmdSetLineStippleEXT = s_vkCmdSetLineStippleEXTDel - let vkCmdSetLineStippleEXT(commandBuffer : VkCommandBuffer, lineStippleFactor : uint32, lineStipplePattern : uint16) = Loader.vkCmdSetLineStippleEXT.Invoke(commandBuffer, lineStippleFactor, lineStipplePattern) + static member vkGetMemoryHostPointerPropertiesEXT = s_vkGetMemoryHostPointerPropertiesEXTDel + let vkGetMemoryHostPointerPropertiesEXT(device : VkDevice, handleType : Vulkan11.VkExternalMemoryHandleTypeFlags, pHostPointer : nativeint, pMemoryHostPointerProperties : nativeptr) = Loader.vkGetMemoryHostPointerPropertiesEXT.Invoke(device, handleType, pHostPointer, pMemoryHostPointerProperties) -module EXTLoadStoreOpNone = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_EXT_load_store_op_none" - let Number = 401 +module EXTFilterCubic = + let Type = ExtensionType.Device + let Name = "VK_EXT_filter_cubic" + let Number = 171 + [] + type VkFilterCubicImageViewImageFormatPropertiesEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public filterCubic : VkBool32 + val mutable public filterCubicMinmax : VkBool32 - [] - module EnumExtensions = - type VkAttachmentLoadOp with - static member inline NoneExt = unbox 1000400000 - type VkAttachmentStoreOp with - static member inline NoneExt = unbox 1000301000 + new(pNext : nativeint, filterCubic : VkBool32, filterCubicMinmax : VkBool32) = + { + sType = 1000170001u + pNext = pNext + filterCubic = filterCubic + filterCubicMinmax = filterCubicMinmax + } + new(filterCubic : VkBool32, filterCubicMinmax : VkBool32) = + VkFilterCubicImageViewImageFormatPropertiesEXT(Unchecked.defaultof, filterCubic, filterCubicMinmax) -module EXTMemoryBudget = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_EXT_memory_budget" - let Number = 238 + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.filterCubic = Unchecked.defaultof && x.filterCubicMinmax = Unchecked.defaultof - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] + static member Empty = + VkFilterCubicImageViewImageFormatPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "filterCubic = %A" x.filterCubic + sprintf "filterCubicMinmax = %A" x.filterCubicMinmax + ] |> sprintf "VkFilterCubicImageViewImageFormatPropertiesEXT { %s }" + end [] - type VkPhysicalDeviceMemoryBudgetPropertiesEXT = + type VkPhysicalDeviceImageViewImageFormatInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public heapBudget : VkDeviceSize_16 - val mutable public heapUsage : VkDeviceSize_16 + val mutable public imageViewType : VkImageViewType - new(pNext : nativeint, heapBudget : VkDeviceSize_16, heapUsage : VkDeviceSize_16) = + new(pNext : nativeint, imageViewType : VkImageViewType) = { - sType = 1000237000u + sType = 1000170000u pNext = pNext - heapBudget = heapBudget - heapUsage = heapUsage + imageViewType = imageViewType } - new(heapBudget : VkDeviceSize_16, heapUsage : VkDeviceSize_16) = - VkPhysicalDeviceMemoryBudgetPropertiesEXT(Unchecked.defaultof, heapBudget, heapUsage) + new(imageViewType : VkImageViewType) = + VkPhysicalDeviceImageViewImageFormatInfoEXT(Unchecked.defaultof, imageViewType) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.heapBudget = Unchecked.defaultof && x.heapUsage = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.imageViewType = Unchecked.defaultof static member Empty = - VkPhysicalDeviceMemoryBudgetPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceImageViewImageFormatInfoEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "heapBudget = %A" x.heapBudget - sprintf "heapUsage = %A" x.heapUsage - ] |> sprintf "VkPhysicalDeviceMemoryBudgetPropertiesEXT { %s }" + sprintf "imageViewType = %A" x.imageViewType + ] |> sprintf "VkPhysicalDeviceImageViewImageFormatInfoEXT { %s }" end + [] + module EnumExtensions = + type VkFilter with + static member inline CubicExt = unbox 1000015000 + type VkFormatFeatureFlags with + static member inline SampledImageFilterCubicBitExt = unbox 0x00002000 -module EXTMemoryPriority = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_EXT_memory_priority" - let Number = 239 - - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] +/// Requires EXTFragmentDensityMap. +module EXTFragmentDensityMap2 = + let Type = ExtensionType.Device + let Name = "VK_EXT_fragment_density_map2" + let Number = 333 [] - type VkMemoryPriorityAllocateInfoEXT = + type VkPhysicalDeviceFragmentDensityMap2FeaturesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public priority : float32 + val mutable public fragmentDensityMapDeferred : VkBool32 - new(pNext : nativeint, priority : float32) = + new(pNext : nativeint, fragmentDensityMapDeferred : VkBool32) = { - sType = 1000238001u + sType = 1000332000u pNext = pNext - priority = priority + fragmentDensityMapDeferred = fragmentDensityMapDeferred } - new(priority : float32) = - VkMemoryPriorityAllocateInfoEXT(Unchecked.defaultof, priority) + new(fragmentDensityMapDeferred : VkBool32) = + VkPhysicalDeviceFragmentDensityMap2FeaturesEXT(Unchecked.defaultof, fragmentDensityMapDeferred) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.priority = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.fragmentDensityMapDeferred = Unchecked.defaultof static member Empty = - VkMemoryPriorityAllocateInfoEXT(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceFragmentDensityMap2FeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "priority = %A" x.priority - ] |> sprintf "VkMemoryPriorityAllocateInfoEXT { %s }" + sprintf "fragmentDensityMapDeferred = %A" x.fragmentDensityMapDeferred + ] |> sprintf "VkPhysicalDeviceFragmentDensityMap2FeaturesEXT { %s }" end [] - type VkPhysicalDeviceMemoryPriorityFeaturesEXT = + type VkPhysicalDeviceFragmentDensityMap2PropertiesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public memoryPriority : VkBool32 + val mutable public subsampledLoads : VkBool32 + val mutable public subsampledCoarseReconstructionEarlyAccess : VkBool32 + val mutable public maxSubsampledArrayLayers : uint32 + val mutable public maxDescriptorSetSubsampledSamplers : uint32 - new(pNext : nativeint, memoryPriority : VkBool32) = + new(pNext : nativeint, subsampledLoads : VkBool32, subsampledCoarseReconstructionEarlyAccess : VkBool32, maxSubsampledArrayLayers : uint32, maxDescriptorSetSubsampledSamplers : uint32) = { - sType = 1000238000u + sType = 1000332001u pNext = pNext - memoryPriority = memoryPriority + subsampledLoads = subsampledLoads + subsampledCoarseReconstructionEarlyAccess = subsampledCoarseReconstructionEarlyAccess + maxSubsampledArrayLayers = maxSubsampledArrayLayers + maxDescriptorSetSubsampledSamplers = maxDescriptorSetSubsampledSamplers } - new(memoryPriority : VkBool32) = - VkPhysicalDeviceMemoryPriorityFeaturesEXT(Unchecked.defaultof, memoryPriority) + new(subsampledLoads : VkBool32, subsampledCoarseReconstructionEarlyAccess : VkBool32, maxSubsampledArrayLayers : uint32, maxDescriptorSetSubsampledSamplers : uint32) = + VkPhysicalDeviceFragmentDensityMap2PropertiesEXT(Unchecked.defaultof, subsampledLoads, subsampledCoarseReconstructionEarlyAccess, maxSubsampledArrayLayers, maxDescriptorSetSubsampledSamplers) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.memoryPriority = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.subsampledLoads = Unchecked.defaultof && x.subsampledCoarseReconstructionEarlyAccess = Unchecked.defaultof && x.maxSubsampledArrayLayers = Unchecked.defaultof && x.maxDescriptorSetSubsampledSamplers = Unchecked.defaultof static member Empty = - VkPhysicalDeviceMemoryPriorityFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceFragmentDensityMap2PropertiesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "memoryPriority = %A" x.memoryPriority - ] |> sprintf "VkPhysicalDeviceMemoryPriorityFeaturesEXT { %s }" + sprintf "subsampledLoads = %A" x.subsampledLoads + sprintf "subsampledCoarseReconstructionEarlyAccess = %A" x.subsampledCoarseReconstructionEarlyAccess + sprintf "maxSubsampledArrayLayers = %A" x.maxSubsampledArrayLayers + sprintf "maxDescriptorSetSubsampledSamplers = %A" x.maxDescriptorSetSubsampledSamplers + ] |> sprintf "VkPhysicalDeviceFragmentDensityMap2PropertiesEXT { %s }" end + [] + module EnumExtensions = + type VkImageViewCreateFlags with + static member inline FragmentDensityMapDeferredBitExt = unbox 0x00000002 + + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module EXTFragmentShaderInterlock = + let Type = ExtensionType.Device + let Name = "VK_EXT_fragment_shader_interlock" + let Number = 252 -module EXTMetalObjects = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_EXT_metal_objects" - let Number = 312 + [] + type VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public fragmentShaderSampleInterlock : VkBool32 + val mutable public fragmentShaderPixelInterlock : VkBool32 + val mutable public fragmentShaderShadingRateInterlock : VkBool32 + + new(pNext : nativeint, fragmentShaderSampleInterlock : VkBool32, fragmentShaderPixelInterlock : VkBool32, fragmentShaderShadingRateInterlock : VkBool32) = + { + sType = 1000251000u + pNext = pNext + fragmentShaderSampleInterlock = fragmentShaderSampleInterlock + fragmentShaderPixelInterlock = fragmentShaderPixelInterlock + fragmentShaderShadingRateInterlock = fragmentShaderShadingRateInterlock + } + + new(fragmentShaderSampleInterlock : VkBool32, fragmentShaderPixelInterlock : VkBool32, fragmentShaderShadingRateInterlock : VkBool32) = + VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT(Unchecked.defaultof, fragmentShaderSampleInterlock, fragmentShaderPixelInterlock, fragmentShaderShadingRateInterlock) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.fragmentShaderSampleInterlock = Unchecked.defaultof && x.fragmentShaderPixelInterlock = Unchecked.defaultof && x.fragmentShaderShadingRateInterlock = Unchecked.defaultof + static member Empty = + VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "fragmentShaderSampleInterlock = %A" x.fragmentShaderSampleInterlock + sprintf "fragmentShaderPixelInterlock = %A" x.fragmentShaderPixelInterlock + sprintf "fragmentShaderShadingRateInterlock = %A" x.fragmentShaderShadingRateInterlock + ] |> sprintf "VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT { %s }" + end + + + +module EXTFrameBoundary = + let Type = ExtensionType.Device + let Name = "VK_EXT_frame_boundary" + let Number = 376 [] - type VkExportMetalObjectTypeFlagsEXT = - | All = 63 + type VkFrameBoundaryFlagsEXT = + | All = 1 | None = 0 - | MetalDeviceBit = 0x00000001 - | MetalCommandQueueBit = 0x00000002 - | MetalBufferBit = 0x00000004 - | MetalTextureBit = 0x00000008 - | MetalIosurfaceBit = 0x00000010 - | MetalSharedEventBit = 0x00000020 + | FrameEndBit = 0x00000001 [] - type VkExportMetalBufferInfoEXT = + type VkFrameBoundaryEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public memory : VkDeviceMemory - val mutable public mtlBuffer : nativeint + val mutable public flags : VkFrameBoundaryFlagsEXT + val mutable public frameID : uint64 + val mutable public imageCount : uint32 + val mutable public pImages : nativeptr + val mutable public bufferCount : uint32 + val mutable public pBuffers : nativeptr + val mutable public tagName : uint64 + val mutable public tagSize : uint64 + val mutable public pTag : nativeint - new(pNext : nativeint, memory : VkDeviceMemory, mtlBuffer : nativeint) = + new(pNext : nativeint, flags : VkFrameBoundaryFlagsEXT, frameID : uint64, imageCount : uint32, pImages : nativeptr, bufferCount : uint32, pBuffers : nativeptr, tagName : uint64, tagSize : uint64, pTag : nativeint) = { - sType = 1000311004u + sType = 1000375001u pNext = pNext - memory = memory - mtlBuffer = mtlBuffer + flags = flags + frameID = frameID + imageCount = imageCount + pImages = pImages + bufferCount = bufferCount + pBuffers = pBuffers + tagName = tagName + tagSize = tagSize + pTag = pTag } - new(memory : VkDeviceMemory, mtlBuffer : nativeint) = - VkExportMetalBufferInfoEXT(Unchecked.defaultof, memory, mtlBuffer) + new(flags : VkFrameBoundaryFlagsEXT, frameID : uint64, imageCount : uint32, pImages : nativeptr, bufferCount : uint32, pBuffers : nativeptr, tagName : uint64, tagSize : uint64, pTag : nativeint) = + VkFrameBoundaryEXT(Unchecked.defaultof, flags, frameID, imageCount, pImages, bufferCount, pBuffers, tagName, tagSize, pTag) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.memory = Unchecked.defaultof && x.mtlBuffer = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.frameID = Unchecked.defaultof && x.imageCount = Unchecked.defaultof && x.pImages = Unchecked.defaultof> && x.bufferCount = Unchecked.defaultof && x.pBuffers = Unchecked.defaultof> && x.tagName = Unchecked.defaultof && x.tagSize = Unchecked.defaultof && x.pTag = Unchecked.defaultof static member Empty = - VkExportMetalBufferInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkFrameBoundaryEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "memory = %A" x.memory - sprintf "mtlBuffer = %A" x.mtlBuffer - ] |> sprintf "VkExportMetalBufferInfoEXT { %s }" + sprintf "flags = %A" x.flags + sprintf "frameID = %A" x.frameID + sprintf "imageCount = %A" x.imageCount + sprintf "pImages = %A" x.pImages + sprintf "bufferCount = %A" x.bufferCount + sprintf "pBuffers = %A" x.pBuffers + sprintf "tagName = %A" x.tagName + sprintf "tagSize = %A" x.tagSize + sprintf "pTag = %A" x.pTag + ] |> sprintf "VkFrameBoundaryEXT { %s }" end [] - type VkExportMetalCommandQueueInfoEXT = + type VkPhysicalDeviceFrameBoundaryFeaturesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public queue : VkQueue - val mutable public mtlCommandQueue : nativeint + val mutable public frameBoundary : VkBool32 - new(pNext : nativeint, queue : VkQueue, mtlCommandQueue : nativeint) = + new(pNext : nativeint, frameBoundary : VkBool32) = { - sType = 1000311003u + sType = 1000375000u pNext = pNext - queue = queue - mtlCommandQueue = mtlCommandQueue + frameBoundary = frameBoundary } - new(queue : VkQueue, mtlCommandQueue : nativeint) = - VkExportMetalCommandQueueInfoEXT(Unchecked.defaultof, queue, mtlCommandQueue) + new(frameBoundary : VkBool32) = + VkPhysicalDeviceFrameBoundaryFeaturesEXT(Unchecked.defaultof, frameBoundary) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.queue = Unchecked.defaultof && x.mtlCommandQueue = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.frameBoundary = Unchecked.defaultof static member Empty = - VkExportMetalCommandQueueInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceFrameBoundaryFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "queue = %A" x.queue - sprintf "mtlCommandQueue = %A" x.mtlCommandQueue - ] |> sprintf "VkExportMetalCommandQueueInfoEXT { %s }" + sprintf "frameBoundary = %A" x.frameBoundary + ] |> sprintf "VkPhysicalDeviceFrameBoundaryFeaturesEXT { %s }" end + + +/// Requires KHRSurface. +module KHRWin32Surface = + let Type = ExtensionType.Instance + let Name = "VK_KHR_win32_surface" + let Number = 10 + [] - type VkExportMetalDeviceInfoEXT = + type VkWin32SurfaceCreateInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public mtlDevice : nativeint + val mutable public flags : VkWin32SurfaceCreateFlagsKHR + val mutable public hinstance : nativeint + val mutable public hwnd : nativeint - new(pNext : nativeint, mtlDevice : nativeint) = + new(pNext : nativeint, flags : VkWin32SurfaceCreateFlagsKHR, hinstance : nativeint, hwnd : nativeint) = { - sType = 1000311002u + sType = 1000009000u pNext = pNext - mtlDevice = mtlDevice + flags = flags + hinstance = hinstance + hwnd = hwnd } - new(mtlDevice : nativeint) = - VkExportMetalDeviceInfoEXT(Unchecked.defaultof, mtlDevice) + new(flags : VkWin32SurfaceCreateFlagsKHR, hinstance : nativeint, hwnd : nativeint) = + VkWin32SurfaceCreateInfoKHR(Unchecked.defaultof, flags, hinstance, hwnd) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.mtlDevice = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.hinstance = Unchecked.defaultof && x.hwnd = Unchecked.defaultof static member Empty = - VkExportMetalDeviceInfoEXT(Unchecked.defaultof, Unchecked.defaultof) + VkWin32SurfaceCreateInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "mtlDevice = %A" x.mtlDevice - ] |> sprintf "VkExportMetalDeviceInfoEXT { %s }" + sprintf "flags = %A" x.flags + sprintf "hinstance = %A" x.hinstance + sprintf "hwnd = %A" x.hwnd + ] |> sprintf "VkWin32SurfaceCreateInfoKHR { %s }" end + + module VkRaw = + [] + type VkCreateWin32SurfaceKHRDel = delegate of VkInstance * nativeptr * nativeptr * nativeptr -> VkResult + [] + type VkGetPhysicalDeviceWin32PresentationSupportKHRDel = delegate of VkPhysicalDevice * uint32 -> VkBool32 + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRWin32Surface") + static let s_vkCreateWin32SurfaceKHRDel = VkRaw.vkImportInstanceDelegate "vkCreateWin32SurfaceKHR" + static let s_vkGetPhysicalDeviceWin32PresentationSupportKHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceWin32PresentationSupportKHR" + static do Report.End(3) |> ignore + static member vkCreateWin32SurfaceKHR = s_vkCreateWin32SurfaceKHRDel + static member vkGetPhysicalDeviceWin32PresentationSupportKHR = s_vkGetPhysicalDeviceWin32PresentationSupportKHRDel + let vkCreateWin32SurfaceKHR(instance : VkInstance, pCreateInfo : nativeptr, pAllocator : nativeptr, pSurface : nativeptr) = Loader.vkCreateWin32SurfaceKHR.Invoke(instance, pCreateInfo, pAllocator, pSurface) + let vkGetPhysicalDeviceWin32PresentationSupportKHR(physicalDevice : VkPhysicalDevice, queueFamilyIndex : uint32) = Loader.vkGetPhysicalDeviceWin32PresentationSupportKHR.Invoke(physicalDevice, queueFamilyIndex) + +/// Requires (KHRGetPhysicalDeviceProperties2 | Vulkan11), KHRSurface, KHRGetSurfaceCapabilities2, KHRSwapchain. +module EXTFullScreenExclusive = + let Type = ExtensionType.Device + let Name = "VK_EXT_full_screen_exclusive" + let Number = 256 + + type VkFullScreenExclusiveEXT = + | Default = 0 + | Allowed = 1 + | Disallowed = 2 + | ApplicationControlled = 3 + + [] - type VkExportMetalIOSurfaceInfoEXT = + type VkSurfaceCapabilitiesFullScreenExclusiveEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public image : VkImage - val mutable public ioSurface : nativeint + val mutable public fullScreenExclusiveSupported : VkBool32 - new(pNext : nativeint, image : VkImage, ioSurface : nativeint) = + new(pNext : nativeint, fullScreenExclusiveSupported : VkBool32) = { - sType = 1000311008u + sType = 1000255002u pNext = pNext - image = image - ioSurface = ioSurface + fullScreenExclusiveSupported = fullScreenExclusiveSupported } - new(image : VkImage, ioSurface : nativeint) = - VkExportMetalIOSurfaceInfoEXT(Unchecked.defaultof, image, ioSurface) + new(fullScreenExclusiveSupported : VkBool32) = + VkSurfaceCapabilitiesFullScreenExclusiveEXT(Unchecked.defaultof, fullScreenExclusiveSupported) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.image = Unchecked.defaultof && x.ioSurface = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.fullScreenExclusiveSupported = Unchecked.defaultof static member Empty = - VkExportMetalIOSurfaceInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkSurfaceCapabilitiesFullScreenExclusiveEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "image = %A" x.image - sprintf "ioSurface = %A" x.ioSurface - ] |> sprintf "VkExportMetalIOSurfaceInfoEXT { %s }" + sprintf "fullScreenExclusiveSupported = %A" x.fullScreenExclusiveSupported + ] |> sprintf "VkSurfaceCapabilitiesFullScreenExclusiveEXT { %s }" end [] - type VkExportMetalObjectCreateInfoEXT = + type VkSurfaceFullScreenExclusiveInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public exportObjectType : VkExportMetalObjectTypeFlagsEXT + val mutable public fullScreenExclusive : VkFullScreenExclusiveEXT - new(pNext : nativeint, exportObjectType : VkExportMetalObjectTypeFlagsEXT) = + new(pNext : nativeint, fullScreenExclusive : VkFullScreenExclusiveEXT) = { - sType = 1000311000u + sType = 1000255000u pNext = pNext - exportObjectType = exportObjectType + fullScreenExclusive = fullScreenExclusive } - new(exportObjectType : VkExportMetalObjectTypeFlagsEXT) = - VkExportMetalObjectCreateInfoEXT(Unchecked.defaultof, exportObjectType) + new(fullScreenExclusive : VkFullScreenExclusiveEXT) = + VkSurfaceFullScreenExclusiveInfoEXT(Unchecked.defaultof, fullScreenExclusive) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.exportObjectType = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.fullScreenExclusive = Unchecked.defaultof static member Empty = - VkExportMetalObjectCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof) + VkSurfaceFullScreenExclusiveInfoEXT(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "fullScreenExclusive = %A" x.fullScreenExclusive + ] |> sprintf "VkSurfaceFullScreenExclusiveInfoEXT { %s }" + end + + + [] + module EnumExtensions = + type VkResult with + static member inline ErrorFullScreenExclusiveModeLostExt = unbox -1000255000 + + module VkRaw = + [] + type VkGetPhysicalDeviceSurfacePresentModes2EXTDel = delegate of VkPhysicalDevice * nativeptr * nativeptr * nativeptr -> VkResult + [] + type VkAcquireFullScreenExclusiveModeEXTDel = delegate of VkDevice * KHRSwapchain.VkSwapchainKHR -> VkResult + [] + type VkReleaseFullScreenExclusiveModeEXTDel = delegate of VkDevice * KHRSwapchain.VkSwapchainKHR -> VkResult + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTFullScreenExclusive") + static let s_vkGetPhysicalDeviceSurfacePresentModes2EXTDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceSurfacePresentModes2EXT" + static let s_vkAcquireFullScreenExclusiveModeEXTDel = VkRaw.vkImportInstanceDelegate "vkAcquireFullScreenExclusiveModeEXT" + static let s_vkReleaseFullScreenExclusiveModeEXTDel = VkRaw.vkImportInstanceDelegate "vkReleaseFullScreenExclusiveModeEXT" + static do Report.End(3) |> ignore + static member vkGetPhysicalDeviceSurfacePresentModes2EXT = s_vkGetPhysicalDeviceSurfacePresentModes2EXTDel + static member vkAcquireFullScreenExclusiveModeEXT = s_vkAcquireFullScreenExclusiveModeEXTDel + static member vkReleaseFullScreenExclusiveModeEXT = s_vkReleaseFullScreenExclusiveModeEXTDel + let vkGetPhysicalDeviceSurfacePresentModes2EXT(physicalDevice : VkPhysicalDevice, pSurfaceInfo : nativeptr, pPresentModeCount : nativeptr, pPresentModes : nativeptr) = Loader.vkGetPhysicalDeviceSurfacePresentModes2EXT.Invoke(physicalDevice, pSurfaceInfo, pPresentModeCount, pPresentModes) + let vkAcquireFullScreenExclusiveModeEXT(device : VkDevice, swapchain : KHRSwapchain.VkSwapchainKHR) = Loader.vkAcquireFullScreenExclusiveModeEXT.Invoke(device, swapchain) + let vkReleaseFullScreenExclusiveModeEXT(device : VkDevice, swapchain : KHRSwapchain.VkSwapchainKHR) = Loader.vkReleaseFullScreenExclusiveModeEXT.Invoke(device, swapchain) + + [] + module ``KHRWin32Surface`` = + [] + type VkSurfaceFullScreenExclusiveWin32InfoEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public hmonitor : nativeint + + new(pNext : nativeint, hmonitor : nativeint) = + { + sType = 1000255001u + pNext = pNext + hmonitor = hmonitor + } + + new(hmonitor : nativeint) = + VkSurfaceFullScreenExclusiveWin32InfoEXT(Unchecked.defaultof, hmonitor) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.hmonitor = Unchecked.defaultof + + static member Empty = + VkSurfaceFullScreenExclusiveWin32InfoEXT(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "hmonitor = %A" x.hmonitor + ] |> sprintf "VkSurfaceFullScreenExclusiveWin32InfoEXT { %s }" + end + + + + [] + module ``KHRDeviceGroup`` = + module VkRaw = + [] + type VkGetDeviceGroupSurfacePresentModes2EXTDel = delegate of VkDevice * nativeptr * nativeptr -> VkResult + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTFullScreenExclusive -> KHRDeviceGroup") + static let s_vkGetDeviceGroupSurfacePresentModes2EXTDel = VkRaw.vkImportInstanceDelegate "vkGetDeviceGroupSurfacePresentModes2EXT" + static do Report.End(3) |> ignore + static member vkGetDeviceGroupSurfacePresentModes2EXT = s_vkGetDeviceGroupSurfacePresentModes2EXTDel + let vkGetDeviceGroupSurfacePresentModes2EXT(device : VkDevice, pSurfaceInfo : nativeptr, pModes : nativeptr) = Loader.vkGetDeviceGroupSurfacePresentModes2EXT.Invoke(device, pSurfaceInfo, pModes) + + [] + module ``Vulkan11`` = + module VkRaw = + let vkGetDeviceGroupSurfacePresentModes2EXT = VkRaw.vkGetDeviceGroupSurfacePresentModes2EXT + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module KHRGlobalPriority = + let Type = ExtensionType.Device + let Name = "VK_KHR_global_priority" + let Number = 189 + + type VkQueueGlobalPriorityKHR = + | Low = 128 + | Medium = 256 + | High = 512 + | Realtime = 1024 + + + /// Array of 16 VkQueueGlobalPriorityKHR values. + [] + type VkQueueGlobalPriorityKHR_16 = + struct + [] + val mutable public First : VkQueueGlobalPriorityKHR + + member x.Item + with get (i : int) : VkQueueGlobalPriorityKHR = + if i < 0 || i > 15 then raise <| IndexOutOfRangeException() + let ptr = &&x |> NativePtr.toNativeInt |> NativePtr.ofNativeInt + NativePtr.get ptr i + and set (i : int) (value : VkQueueGlobalPriorityKHR) = + if i < 0 || i > 15 then raise <| IndexOutOfRangeException() + let ptr = &&x |> NativePtr.toNativeInt |> NativePtr.ofNativeInt + NativePtr.set ptr i value - override x.ToString() = - String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "exportObjectType = %A" x.exportObjectType - ] |> sprintf "VkExportMetalObjectCreateInfoEXT { %s }" + member x.Length = 16 + + interface System.Collections.IEnumerable with + member x.GetEnumerator() = let x = x in (Seq.init 16 (fun i -> x.[i])).GetEnumerator() :> System.Collections.IEnumerator + interface System.Collections.Generic.IEnumerable with + member x.GetEnumerator() = let x = x in (Seq.init 16 (fun i -> x.[i])).GetEnumerator() end [] - type VkExportMetalObjectsInfoEXT = + type VkDeviceQueueGlobalPriorityCreateInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint + val mutable public globalPriority : VkQueueGlobalPriorityKHR - new(pNext : nativeint) = + new(pNext : nativeint, globalPriority : VkQueueGlobalPriorityKHR) = { - sType = 1000311001u + sType = 1000174000u pNext = pNext + globalPriority = globalPriority } + new(globalPriority : VkQueueGlobalPriorityKHR) = + VkDeviceQueueGlobalPriorityCreateInfoKHR(Unchecked.defaultof, globalPriority) + member x.IsEmpty = - x.pNext = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.globalPriority = Unchecked.defaultof static member Empty = - VkExportMetalObjectsInfoEXT(Unchecked.defaultof) + VkDeviceQueueGlobalPriorityCreateInfoKHR(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - ] |> sprintf "VkExportMetalObjectsInfoEXT { %s }" + sprintf "globalPriority = %A" x.globalPriority + ] |> sprintf "VkDeviceQueueGlobalPriorityCreateInfoKHR { %s }" end [] - type VkExportMetalSharedEventInfoEXT = + type VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public semaphore : VkSemaphore - val mutable public event : VkEvent - val mutable public mtlSharedEvent : nativeint + val mutable public globalPriorityQuery : VkBool32 - new(pNext : nativeint, semaphore : VkSemaphore, event : VkEvent, mtlSharedEvent : nativeint) = + new(pNext : nativeint, globalPriorityQuery : VkBool32) = { - sType = 1000311010u + sType = 1000388000u pNext = pNext - semaphore = semaphore - event = event - mtlSharedEvent = mtlSharedEvent + globalPriorityQuery = globalPriorityQuery } - new(semaphore : VkSemaphore, event : VkEvent, mtlSharedEvent : nativeint) = - VkExportMetalSharedEventInfoEXT(Unchecked.defaultof, semaphore, event, mtlSharedEvent) + new(globalPriorityQuery : VkBool32) = + VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR(Unchecked.defaultof, globalPriorityQuery) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.semaphore = Unchecked.defaultof && x.event = Unchecked.defaultof && x.mtlSharedEvent = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.globalPriorityQuery = Unchecked.defaultof static member Empty = - VkExportMetalSharedEventInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "semaphore = %A" x.semaphore - sprintf "event = %A" x.event - sprintf "mtlSharedEvent = %A" x.mtlSharedEvent - ] |> sprintf "VkExportMetalSharedEventInfoEXT { %s }" + sprintf "globalPriorityQuery = %A" x.globalPriorityQuery + ] |> sprintf "VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR { %s }" end [] - type VkExportMetalTextureInfoEXT = + type VkQueueFamilyGlobalPriorityPropertiesKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public image : VkImage - val mutable public imageView : VkImageView - val mutable public bufferView : VkBufferView - val mutable public plane : VkImageAspectFlags - val mutable public mtlTexture : nativeint + val mutable public priorityCount : uint32 + val mutable public priorities : VkQueueGlobalPriorityKHR_16 - new(pNext : nativeint, image : VkImage, imageView : VkImageView, bufferView : VkBufferView, plane : VkImageAspectFlags, mtlTexture : nativeint) = + new(pNext : nativeint, priorityCount : uint32, priorities : VkQueueGlobalPriorityKHR_16) = { - sType = 1000311006u + sType = 1000388001u pNext = pNext - image = image - imageView = imageView - bufferView = bufferView - plane = plane - mtlTexture = mtlTexture + priorityCount = priorityCount + priorities = priorities } - new(image : VkImage, imageView : VkImageView, bufferView : VkBufferView, plane : VkImageAspectFlags, mtlTexture : nativeint) = - VkExportMetalTextureInfoEXT(Unchecked.defaultof, image, imageView, bufferView, plane, mtlTexture) + new(priorityCount : uint32, priorities : VkQueueGlobalPriorityKHR_16) = + VkQueueFamilyGlobalPriorityPropertiesKHR(Unchecked.defaultof, priorityCount, priorities) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.image = Unchecked.defaultof && x.imageView = Unchecked.defaultof && x.bufferView = Unchecked.defaultof && x.plane = Unchecked.defaultof && x.mtlTexture = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.priorityCount = Unchecked.defaultof && x.priorities = Unchecked.defaultof static member Empty = - VkExportMetalTextureInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkQueueFamilyGlobalPriorityPropertiesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "image = %A" x.image - sprintf "imageView = %A" x.imageView - sprintf "bufferView = %A" x.bufferView - sprintf "plane = %A" x.plane - sprintf "mtlTexture = %A" x.mtlTexture - ] |> sprintf "VkExportMetalTextureInfoEXT { %s }" + sprintf "priorityCount = %A" x.priorityCount + sprintf "priorities = %A" x.priorities + ] |> sprintf "VkQueueFamilyGlobalPriorityPropertiesKHR { %s }" end - [] - type VkImportMetalBufferInfoEXT = - struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public mtlBuffer : nativeint - new(pNext : nativeint, mtlBuffer : nativeint) = - { - sType = 1000311005u - pNext = pNext - mtlBuffer = mtlBuffer - } + [] + module EnumExtensions = + type VkResult with + static member inline ErrorNotPermittedKhr = unbox -1000174001 - new(mtlBuffer : nativeint) = - VkImportMetalBufferInfoEXT(Unchecked.defaultof, mtlBuffer) - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.mtlBuffer = Unchecked.defaultof +/// Promoted to KHRGlobalPriority. +module EXTGlobalPriority = + let Type = ExtensionType.Device + let Name = "VK_EXT_global_priority" + let Number = 175 - static member Empty = - VkImportMetalBufferInfoEXT(Unchecked.defaultof, Unchecked.defaultof) + type VkQueueGlobalPriorityEXT = KHRGlobalPriority.VkQueueGlobalPriorityKHR - override x.ToString() = - String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "mtlBuffer = %A" x.mtlBuffer - ] |> sprintf "VkImportMetalBufferInfoEXT { %s }" - end + type VkDeviceQueueGlobalPriorityCreateInfoEXT = KHRGlobalPriority.VkDeviceQueueGlobalPriorityCreateInfoKHR - [] - type VkImportMetalIOSurfaceInfoEXT = - struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public ioSurface : nativeint - new(pNext : nativeint, ioSurface : nativeint) = - { - sType = 1000311009u - pNext = pNext - ioSurface = ioSurface - } + [] + module EnumExtensions = + type VkResult with + static member inline ErrorNotPermittedExt = unbox 1000174001 - new(ioSurface : nativeint) = - VkImportMetalIOSurfaceInfoEXT(Unchecked.defaultof, ioSurface) - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.ioSurface = Unchecked.defaultof +/// Requires EXTGlobalPriority, (KHRGetPhysicalDeviceProperties2 | Vulkan11). +/// Promoted to KHRGlobalPriority. +module EXTGlobalPriorityQuery = + let Type = ExtensionType.Device + let Name = "VK_EXT_global_priority_query" + let Number = 389 - static member Empty = - VkImportMetalIOSurfaceInfoEXT(Unchecked.defaultof, Unchecked.defaultof) + type VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT = KHRGlobalPriority.VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR + + type VkQueueFamilyGlobalPriorityPropertiesEXT = KHRGlobalPriority.VkQueueFamilyGlobalPriorityPropertiesKHR - override x.ToString() = - String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "ioSurface = %A" x.ioSurface - ] |> sprintf "VkImportMetalIOSurfaceInfoEXT { %s }" - end + +/// Requires KHRSwapchain. +module EXTHdrMetadata = + let Type = ExtensionType.Device + let Name = "VK_EXT_hdr_metadata" + let Number = 106 + + /// Chromaticity coordinate [] - type VkImportMetalSharedEventInfoEXT = + type VkXYColorEXT = struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public mtlSharedEvent : nativeint + val mutable public x : float32 + val mutable public y : float32 - new(pNext : nativeint, mtlSharedEvent : nativeint) = + new(x : float32, y : float32) = { - sType = 1000311011u - pNext = pNext - mtlSharedEvent = mtlSharedEvent + x = x + y = y } - new(mtlSharedEvent : nativeint) = - VkImportMetalSharedEventInfoEXT(Unchecked.defaultof, mtlSharedEvent) - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.mtlSharedEvent = Unchecked.defaultof + x.x = Unchecked.defaultof && x.y = Unchecked.defaultof static member Empty = - VkImportMetalSharedEventInfoEXT(Unchecked.defaultof, Unchecked.defaultof) + VkXYColorEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "mtlSharedEvent = %A" x.mtlSharedEvent - ] |> sprintf "VkImportMetalSharedEventInfoEXT { %s }" + sprintf "x = %A" x.x + sprintf "y = %A" x.y + ] |> sprintf "VkXYColorEXT { %s }" end [] - type VkImportMetalTextureInfoEXT = + type VkHdrMetadataEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public plane : VkImageAspectFlags - val mutable public mtlTexture : nativeint + val mutable public displayPrimaryRed : VkXYColorEXT + val mutable public displayPrimaryGreen : VkXYColorEXT + val mutable public displayPrimaryBlue : VkXYColorEXT + val mutable public whitePoint : VkXYColorEXT + val mutable public maxLuminance : float32 + val mutable public minLuminance : float32 + val mutable public maxContentLightLevel : float32 + val mutable public maxFrameAverageLightLevel : float32 - new(pNext : nativeint, plane : VkImageAspectFlags, mtlTexture : nativeint) = + new(pNext : nativeint, displayPrimaryRed : VkXYColorEXT, displayPrimaryGreen : VkXYColorEXT, displayPrimaryBlue : VkXYColorEXT, whitePoint : VkXYColorEXT, maxLuminance : float32, minLuminance : float32, maxContentLightLevel : float32, maxFrameAverageLightLevel : float32) = { - sType = 1000311007u + sType = 1000105000u pNext = pNext - plane = plane - mtlTexture = mtlTexture + displayPrimaryRed = displayPrimaryRed + displayPrimaryGreen = displayPrimaryGreen + displayPrimaryBlue = displayPrimaryBlue + whitePoint = whitePoint + maxLuminance = maxLuminance + minLuminance = minLuminance + maxContentLightLevel = maxContentLightLevel + maxFrameAverageLightLevel = maxFrameAverageLightLevel } - new(plane : VkImageAspectFlags, mtlTexture : nativeint) = - VkImportMetalTextureInfoEXT(Unchecked.defaultof, plane, mtlTexture) + new(displayPrimaryRed : VkXYColorEXT, displayPrimaryGreen : VkXYColorEXT, displayPrimaryBlue : VkXYColorEXT, whitePoint : VkXYColorEXT, maxLuminance : float32, minLuminance : float32, maxContentLightLevel : float32, maxFrameAverageLightLevel : float32) = + VkHdrMetadataEXT(Unchecked.defaultof, displayPrimaryRed, displayPrimaryGreen, displayPrimaryBlue, whitePoint, maxLuminance, minLuminance, maxContentLightLevel, maxFrameAverageLightLevel) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.plane = Unchecked.defaultof && x.mtlTexture = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.displayPrimaryRed = Unchecked.defaultof && x.displayPrimaryGreen = Unchecked.defaultof && x.displayPrimaryBlue = Unchecked.defaultof && x.whitePoint = Unchecked.defaultof && x.maxLuminance = Unchecked.defaultof && x.minLuminance = Unchecked.defaultof && x.maxContentLightLevel = Unchecked.defaultof && x.maxFrameAverageLightLevel = Unchecked.defaultof static member Empty = - VkImportMetalTextureInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkHdrMetadataEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "plane = %A" x.plane - sprintf "mtlTexture = %A" x.mtlTexture - ] |> sprintf "VkImportMetalTextureInfoEXT { %s }" + sprintf "displayPrimaryRed = %A" x.displayPrimaryRed + sprintf "displayPrimaryGreen = %A" x.displayPrimaryGreen + sprintf "displayPrimaryBlue = %A" x.displayPrimaryBlue + sprintf "whitePoint = %A" x.whitePoint + sprintf "maxLuminance = %A" x.maxLuminance + sprintf "minLuminance = %A" x.minLuminance + sprintf "maxContentLightLevel = %A" x.maxContentLightLevel + sprintf "maxFrameAverageLightLevel = %A" x.maxFrameAverageLightLevel + ] |> sprintf "VkHdrMetadataEXT { %s }" end module VkRaw = [] - type VkExportMetalObjectsEXTDel = delegate of VkDevice * nativeptr -> unit + type VkSetHdrMetadataEXTDel = delegate of VkDevice * uint32 * nativeptr * nativeptr -> unit [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading EXTMetalObjects") - static let s_vkExportMetalObjectsEXTDel = VkRaw.vkImportInstanceDelegate "vkExportMetalObjectsEXT" + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTHdrMetadata") + static let s_vkSetHdrMetadataEXTDel = VkRaw.vkImportInstanceDelegate "vkSetHdrMetadataEXT" static do Report.End(3) |> ignore - static member vkExportMetalObjectsEXT = s_vkExportMetalObjectsEXTDel - let vkExportMetalObjectsEXT(device : VkDevice, pMetalObjectsInfo : nativeptr) = Loader.vkExportMetalObjectsEXT.Invoke(device, pMetalObjectsInfo) + static member vkSetHdrMetadataEXT = s_vkSetHdrMetadataEXTDel + let vkSetHdrMetadataEXT(device : VkDevice, swapchainCount : uint32, pSwapchains : nativeptr, pMetadata : nativeptr) = Loader.vkSetHdrMetadataEXT.Invoke(device, swapchainCount, pSwapchains, pMetadata) -module EXTMetalSurface = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRSurface - let Name = "VK_EXT_metal_surface" - let Number = 218 +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +/// Promoted to Vulkan13. +module KHRCopyCommands2 = + let Type = ExtensionType.Device + let Name = "VK_KHR_copy_commands2" + let Number = 338 - let Required = [ KHRSurface.Name ] + type VkBlitImageInfo2KHR = Vulkan13.VkBlitImageInfo2 + type VkBufferCopy2KHR = Vulkan13.VkBufferCopy2 - [] - type VkMetalSurfaceCreateInfoEXT = - struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public flags : VkMetalSurfaceCreateFlagsEXT - val mutable public pLayer : nativeptr + type VkBufferImageCopy2KHR = Vulkan13.VkBufferImageCopy2 - new(pNext : nativeint, flags : VkMetalSurfaceCreateFlagsEXT, pLayer : nativeptr) = - { - sType = 1000217000u - pNext = pNext - flags = flags - pLayer = pLayer - } + type VkCopyBufferInfo2KHR = Vulkan13.VkCopyBufferInfo2 - new(flags : VkMetalSurfaceCreateFlagsEXT, pLayer : nativeptr) = - VkMetalSurfaceCreateInfoEXT(Unchecked.defaultof, flags, pLayer) + type VkCopyBufferToImageInfo2KHR = Vulkan13.VkCopyBufferToImageInfo2 - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.pLayer = Unchecked.defaultof> + type VkCopyImageInfo2KHR = Vulkan13.VkCopyImageInfo2 - static member Empty = - VkMetalSurfaceCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + type VkCopyImageToBufferInfo2KHR = Vulkan13.VkCopyImageToBufferInfo2 - override x.ToString() = - String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "flags = %A" x.flags - sprintf "pLayer = %A" x.pLayer - ] |> sprintf "VkMetalSurfaceCreateInfoEXT { %s }" - end + type VkImageBlit2KHR = Vulkan13.VkImageBlit2 + + type VkImageCopy2KHR = Vulkan13.VkImageCopy2 + + type VkImageResolve2KHR = Vulkan13.VkImageResolve2 + + type VkResolveImageInfo2KHR = Vulkan13.VkResolveImageInfo2 module VkRaw = [] - type VkCreateMetalSurfaceEXTDel = delegate of VkInstance * nativeptr * nativeptr * nativeptr -> VkResult + type VkCmdCopyBuffer2KHRDel = delegate of VkCommandBuffer * nativeptr -> unit + [] + type VkCmdCopyImage2KHRDel = delegate of VkCommandBuffer * nativeptr -> unit + [] + type VkCmdCopyBufferToImage2KHRDel = delegate of VkCommandBuffer * nativeptr -> unit + [] + type VkCmdCopyImageToBuffer2KHRDel = delegate of VkCommandBuffer * nativeptr -> unit + [] + type VkCmdBlitImage2KHRDel = delegate of VkCommandBuffer * nativeptr -> unit + [] + type VkCmdResolveImage2KHRDel = delegate of VkCommandBuffer * nativeptr -> unit [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading EXTMetalSurface") - static let s_vkCreateMetalSurfaceEXTDel = VkRaw.vkImportInstanceDelegate "vkCreateMetalSurfaceEXT" + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRCopyCommands2") + static let s_vkCmdCopyBuffer2KHRDel = VkRaw.vkImportInstanceDelegate "vkCmdCopyBuffer2KHR" + static let s_vkCmdCopyImage2KHRDel = VkRaw.vkImportInstanceDelegate "vkCmdCopyImage2KHR" + static let s_vkCmdCopyBufferToImage2KHRDel = VkRaw.vkImportInstanceDelegate "vkCmdCopyBufferToImage2KHR" + static let s_vkCmdCopyImageToBuffer2KHRDel = VkRaw.vkImportInstanceDelegate "vkCmdCopyImageToBuffer2KHR" + static let s_vkCmdBlitImage2KHRDel = VkRaw.vkImportInstanceDelegate "vkCmdBlitImage2KHR" + static let s_vkCmdResolveImage2KHRDel = VkRaw.vkImportInstanceDelegate "vkCmdResolveImage2KHR" static do Report.End(3) |> ignore - static member vkCreateMetalSurfaceEXT = s_vkCreateMetalSurfaceEXTDel - let vkCreateMetalSurfaceEXT(instance : VkInstance, pCreateInfo : nativeptr, pAllocator : nativeptr, pSurface : nativeptr) = Loader.vkCreateMetalSurfaceEXT.Invoke(instance, pCreateInfo, pAllocator, pSurface) + static member vkCmdCopyBuffer2KHR = s_vkCmdCopyBuffer2KHRDel + static member vkCmdCopyImage2KHR = s_vkCmdCopyImage2KHRDel + static member vkCmdCopyBufferToImage2KHR = s_vkCmdCopyBufferToImage2KHRDel + static member vkCmdCopyImageToBuffer2KHR = s_vkCmdCopyImageToBuffer2KHRDel + static member vkCmdBlitImage2KHR = s_vkCmdBlitImage2KHRDel + static member vkCmdResolveImage2KHR = s_vkCmdResolveImage2KHRDel + let vkCmdCopyBuffer2KHR(commandBuffer : VkCommandBuffer, pCopyBufferInfo : nativeptr) = Loader.vkCmdCopyBuffer2KHR.Invoke(commandBuffer, pCopyBufferInfo) + let vkCmdCopyImage2KHR(commandBuffer : VkCommandBuffer, pCopyImageInfo : nativeptr) = Loader.vkCmdCopyImage2KHR.Invoke(commandBuffer, pCopyImageInfo) + let vkCmdCopyBufferToImage2KHR(commandBuffer : VkCommandBuffer, pCopyBufferToImageInfo : nativeptr) = Loader.vkCmdCopyBufferToImage2KHR.Invoke(commandBuffer, pCopyBufferToImageInfo) + let vkCmdCopyImageToBuffer2KHR(commandBuffer : VkCommandBuffer, pCopyImageToBufferInfo : nativeptr) = Loader.vkCmdCopyImageToBuffer2KHR.Invoke(commandBuffer, pCopyImageToBufferInfo) + let vkCmdBlitImage2KHR(commandBuffer : VkCommandBuffer, pBlitImageInfo : nativeptr) = Loader.vkCmdBlitImage2KHR.Invoke(commandBuffer, pBlitImageInfo) + let vkCmdResolveImage2KHR(commandBuffer : VkCommandBuffer, pResolveImageInfo : nativeptr) = Loader.vkCmdResolveImage2KHR.Invoke(commandBuffer, pResolveImageInfo) + +/// Requires ((KHRGetPhysicalDeviceProperties2 | Vulkan11), KHRCopyCommands2, KHRFormatFeatureFlags2) | Vulkan13. +module EXTHostImageCopy = + let Type = ExtensionType.Device + let Name = "VK_EXT_host_image_copy" + let Number = 271 -module EXTMultiDraw = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_EXT_multi_draw" - let Number = 393 + [] + type VkHostImageCopyFlagsEXT = + | All = 1 + | None = 0 + | Memcpy = 0x00000001 [] - type VkMultiDrawIndexedInfoEXT = + type VkCopyImageToImageInfoEXT = struct - val mutable public firstIndex : uint32 - val mutable public indexCount : uint32 - val mutable public vertexOffset : int + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public flags : VkHostImageCopyFlagsEXT + val mutable public srcImage : VkImage + val mutable public srcImageLayout : VkImageLayout + val mutable public dstImage : VkImage + val mutable public dstImageLayout : VkImageLayout + val mutable public regionCount : uint32 + val mutable public pRegions : nativeptr - new(firstIndex : uint32, indexCount : uint32, vertexOffset : int) = + new(pNext : nativeint, flags : VkHostImageCopyFlagsEXT, srcImage : VkImage, srcImageLayout : VkImageLayout, dstImage : VkImage, dstImageLayout : VkImageLayout, regionCount : uint32, pRegions : nativeptr) = { - firstIndex = firstIndex - indexCount = indexCount - vertexOffset = vertexOffset + sType = 1000270007u + pNext = pNext + flags = flags + srcImage = srcImage + srcImageLayout = srcImageLayout + dstImage = dstImage + dstImageLayout = dstImageLayout + regionCount = regionCount + pRegions = pRegions } - member x.IsEmpty = - x.firstIndex = Unchecked.defaultof && x.indexCount = Unchecked.defaultof && x.vertexOffset = Unchecked.defaultof - - static member Empty = - VkMultiDrawIndexedInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) - - override x.ToString() = - String.concat "; " [ - sprintf "firstIndex = %A" x.firstIndex - sprintf "indexCount = %A" x.indexCount - sprintf "vertexOffset = %A" x.vertexOffset - ] |> sprintf "VkMultiDrawIndexedInfoEXT { %s }" - end - - [] - type VkMultiDrawInfoEXT = - struct - val mutable public firstVertex : uint32 - val mutable public vertexCount : uint32 - - new(firstVertex : uint32, vertexCount : uint32) = - { - firstVertex = firstVertex - vertexCount = vertexCount - } + new(flags : VkHostImageCopyFlagsEXT, srcImage : VkImage, srcImageLayout : VkImageLayout, dstImage : VkImage, dstImageLayout : VkImageLayout, regionCount : uint32, pRegions : nativeptr) = + VkCopyImageToImageInfoEXT(Unchecked.defaultof, flags, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions) member x.IsEmpty = - x.firstVertex = Unchecked.defaultof && x.vertexCount = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.srcImage = Unchecked.defaultof && x.srcImageLayout = Unchecked.defaultof && x.dstImage = Unchecked.defaultof && x.dstImageLayout = Unchecked.defaultof && x.regionCount = Unchecked.defaultof && x.pRegions = Unchecked.defaultof> static member Empty = - VkMultiDrawInfoEXT(Unchecked.defaultof, Unchecked.defaultof) + VkCopyImageToImageInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ - sprintf "firstVertex = %A" x.firstVertex - sprintf "vertexCount = %A" x.vertexCount - ] |> sprintf "VkMultiDrawInfoEXT { %s }" + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "flags = %A" x.flags + sprintf "srcImage = %A" x.srcImage + sprintf "srcImageLayout = %A" x.srcImageLayout + sprintf "dstImage = %A" x.dstImage + sprintf "dstImageLayout = %A" x.dstImageLayout + sprintf "regionCount = %A" x.regionCount + sprintf "pRegions = %A" x.pRegions + ] |> sprintf "VkCopyImageToImageInfoEXT { %s }" end [] - type VkPhysicalDeviceMultiDrawFeaturesEXT = + type VkImageToMemoryCopyEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public multiDraw : VkBool32 + val mutable public pHostPointer : nativeint + val mutable public memoryRowLength : uint32 + val mutable public memoryImageHeight : uint32 + val mutable public imageSubresource : VkImageSubresourceLayers + val mutable public imageOffset : VkOffset3D + val mutable public imageExtent : VkExtent3D - new(pNext : nativeint, multiDraw : VkBool32) = + new(pNext : nativeint, pHostPointer : nativeint, memoryRowLength : uint32, memoryImageHeight : uint32, imageSubresource : VkImageSubresourceLayers, imageOffset : VkOffset3D, imageExtent : VkExtent3D) = { - sType = 1000392000u + sType = 1000270003u pNext = pNext - multiDraw = multiDraw + pHostPointer = pHostPointer + memoryRowLength = memoryRowLength + memoryImageHeight = memoryImageHeight + imageSubresource = imageSubresource + imageOffset = imageOffset + imageExtent = imageExtent } - new(multiDraw : VkBool32) = - VkPhysicalDeviceMultiDrawFeaturesEXT(Unchecked.defaultof, multiDraw) + new(pHostPointer : nativeint, memoryRowLength : uint32, memoryImageHeight : uint32, imageSubresource : VkImageSubresourceLayers, imageOffset : VkOffset3D, imageExtent : VkExtent3D) = + VkImageToMemoryCopyEXT(Unchecked.defaultof, pHostPointer, memoryRowLength, memoryImageHeight, imageSubresource, imageOffset, imageExtent) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.multiDraw = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.pHostPointer = Unchecked.defaultof && x.memoryRowLength = Unchecked.defaultof && x.memoryImageHeight = Unchecked.defaultof && x.imageSubresource = Unchecked.defaultof && x.imageOffset = Unchecked.defaultof && x.imageExtent = Unchecked.defaultof static member Empty = - VkPhysicalDeviceMultiDrawFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) + VkImageToMemoryCopyEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "multiDraw = %A" x.multiDraw - ] |> sprintf "VkPhysicalDeviceMultiDrawFeaturesEXT { %s }" + sprintf "pHostPointer = %A" x.pHostPointer + sprintf "memoryRowLength = %A" x.memoryRowLength + sprintf "memoryImageHeight = %A" x.memoryImageHeight + sprintf "imageSubresource = %A" x.imageSubresource + sprintf "imageOffset = %A" x.imageOffset + sprintf "imageExtent = %A" x.imageExtent + ] |> sprintf "VkImageToMemoryCopyEXT { %s }" end [] - type VkPhysicalDeviceMultiDrawPropertiesEXT = + type VkCopyImageToMemoryInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public maxMultiDrawCount : uint32 + val mutable public flags : VkHostImageCopyFlagsEXT + val mutable public srcImage : VkImage + val mutable public srcImageLayout : VkImageLayout + val mutable public regionCount : uint32 + val mutable public pRegions : nativeptr - new(pNext : nativeint, maxMultiDrawCount : uint32) = + new(pNext : nativeint, flags : VkHostImageCopyFlagsEXT, srcImage : VkImage, srcImageLayout : VkImageLayout, regionCount : uint32, pRegions : nativeptr) = { - sType = 1000392001u + sType = 1000270004u pNext = pNext - maxMultiDrawCount = maxMultiDrawCount + flags = flags + srcImage = srcImage + srcImageLayout = srcImageLayout + regionCount = regionCount + pRegions = pRegions } - new(maxMultiDrawCount : uint32) = - VkPhysicalDeviceMultiDrawPropertiesEXT(Unchecked.defaultof, maxMultiDrawCount) + new(flags : VkHostImageCopyFlagsEXT, srcImage : VkImage, srcImageLayout : VkImageLayout, regionCount : uint32, pRegions : nativeptr) = + VkCopyImageToMemoryInfoEXT(Unchecked.defaultof, flags, srcImage, srcImageLayout, regionCount, pRegions) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.maxMultiDrawCount = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.srcImage = Unchecked.defaultof && x.srcImageLayout = Unchecked.defaultof && x.regionCount = Unchecked.defaultof && x.pRegions = Unchecked.defaultof> static member Empty = - VkPhysicalDeviceMultiDrawPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof) + VkCopyImageToMemoryInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "maxMultiDrawCount = %A" x.maxMultiDrawCount - ] |> sprintf "VkPhysicalDeviceMultiDrawPropertiesEXT { %s }" - end - - - module VkRaw = - [] - type VkCmdDrawMultiEXTDel = delegate of VkCommandBuffer * uint32 * nativeptr * uint32 * uint32 * uint32 -> unit - [] - type VkCmdDrawMultiIndexedEXTDel = delegate of VkCommandBuffer * uint32 * nativeptr * uint32 * uint32 * uint32 * nativeptr -> unit - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading EXTMultiDraw") - static let s_vkCmdDrawMultiEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdDrawMultiEXT" - static let s_vkCmdDrawMultiIndexedEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdDrawMultiIndexedEXT" - static do Report.End(3) |> ignore - static member vkCmdDrawMultiEXT = s_vkCmdDrawMultiEXTDel - static member vkCmdDrawMultiIndexedEXT = s_vkCmdDrawMultiIndexedEXTDel - let vkCmdDrawMultiEXT(commandBuffer : VkCommandBuffer, drawCount : uint32, pVertexInfo : nativeptr, instanceCount : uint32, firstInstance : uint32, stride : uint32) = Loader.vkCmdDrawMultiEXT.Invoke(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) - let vkCmdDrawMultiIndexedEXT(commandBuffer : VkCommandBuffer, drawCount : uint32, pIndexInfo : nativeptr, instanceCount : uint32, firstInstance : uint32, stride : uint32, pVertexOffset : nativeptr) = Loader.vkCmdDrawMultiIndexedEXT.Invoke(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) - -module KHRMaintenance2 = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_KHR_maintenance2" - let Number = 118 - - - type VkPointClippingBehaviorKHR = VkPointClippingBehavior - type VkTessellationDomainOriginKHR = VkTessellationDomainOrigin - - type VkImageViewUsageCreateInfoKHR = VkImageViewUsageCreateInfo - - type VkInputAttachmentAspectReferenceKHR = VkInputAttachmentAspectReference - - type VkPhysicalDevicePointClippingPropertiesKHR = VkPhysicalDevicePointClippingProperties - - type VkPipelineTessellationDomainOriginStateCreateInfoKHR = VkPipelineTessellationDomainOriginStateCreateInfo - - type VkRenderPassInputAttachmentAspectCreateInfoKHR = VkRenderPassInputAttachmentAspectCreateInfo - - - [] - module EnumExtensions = - type VkImageCreateFlags with - static member inline BlockTexelViewCompatibleBitKhr = unbox 0x00000080 - static member inline ExtendedUsageBitKhr = unbox 0x00000100 - type VkImageLayout with - static member inline DepthReadOnlyStencilAttachmentOptimalKhr = unbox 1000117000 - static member inline DepthAttachmentStencilReadOnlyOptimalKhr = unbox 1000117001 - type VkPointClippingBehavior with - static member inline AllClipPlanesKhr = unbox 0 - static member inline UserClipPlanesOnlyKhr = unbox 1 - type VkTessellationDomainOrigin with - static member inline UpperLeftKhr = unbox 0 - static member inline LowerLeftKhr = unbox 1 - - -module KHRMultiview = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_KHR_multiview" - let Number = 54 - - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] - - - type VkPhysicalDeviceMultiviewFeaturesKHR = VkPhysicalDeviceMultiviewFeatures - - type VkPhysicalDeviceMultiviewPropertiesKHR = VkPhysicalDeviceMultiviewProperties - - type VkRenderPassMultiviewCreateInfoKHR = VkRenderPassMultiviewCreateInfo - - - [] - module EnumExtensions = - type VkDependencyFlags with - static member inline ViewLocalBitKhr = unbox 0x00000002 - - -module KHRCreateRenderpass2 = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - open KHRMaintenance2 - open KHRMultiview - let Name = "VK_KHR_create_renderpass2" - let Number = 110 - - let Required = [ KHRMaintenance2.Name; KHRMultiview.Name ] - - - type VkAttachmentDescription2KHR = VkAttachmentDescription2 - - type VkAttachmentReference2KHR = VkAttachmentReference2 - - type VkRenderPassCreateInfo2KHR = VkRenderPassCreateInfo2 - - type VkSubpassBeginInfoKHR = VkSubpassBeginInfo - - type VkSubpassDependency2KHR = VkSubpassDependency2 - - type VkSubpassDescription2KHR = VkSubpassDescription2 - - type VkSubpassEndInfoKHR = VkSubpassEndInfo - - - module VkRaw = - [] - type VkCreateRenderPass2KHRDel = delegate of VkDevice * nativeptr * nativeptr * nativeptr -> VkResult - [] - type VkCmdBeginRenderPass2KHRDel = delegate of VkCommandBuffer * nativeptr * nativeptr -> unit - [] - type VkCmdNextSubpass2KHRDel = delegate of VkCommandBuffer * nativeptr * nativeptr -> unit - [] - type VkCmdEndRenderPass2KHRDel = delegate of VkCommandBuffer * nativeptr -> unit - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRCreateRenderpass2") - static let s_vkCreateRenderPass2KHRDel = VkRaw.vkImportInstanceDelegate "vkCreateRenderPass2KHR" - static let s_vkCmdBeginRenderPass2KHRDel = VkRaw.vkImportInstanceDelegate "vkCmdBeginRenderPass2KHR" - static let s_vkCmdNextSubpass2KHRDel = VkRaw.vkImportInstanceDelegate "vkCmdNextSubpass2KHR" - static let s_vkCmdEndRenderPass2KHRDel = VkRaw.vkImportInstanceDelegate "vkCmdEndRenderPass2KHR" - static do Report.End(3) |> ignore - static member vkCreateRenderPass2KHR = s_vkCreateRenderPass2KHRDel - static member vkCmdBeginRenderPass2KHR = s_vkCmdBeginRenderPass2KHRDel - static member vkCmdNextSubpass2KHR = s_vkCmdNextSubpass2KHRDel - static member vkCmdEndRenderPass2KHR = s_vkCmdEndRenderPass2KHRDel - let vkCreateRenderPass2KHR(device : VkDevice, pCreateInfo : nativeptr, pAllocator : nativeptr, pRenderPass : nativeptr) = Loader.vkCreateRenderPass2KHR.Invoke(device, pCreateInfo, pAllocator, pRenderPass) - let vkCmdBeginRenderPass2KHR(commandBuffer : VkCommandBuffer, pRenderPassBegin : nativeptr, pSubpassBeginInfo : nativeptr) = Loader.vkCmdBeginRenderPass2KHR.Invoke(commandBuffer, pRenderPassBegin, pSubpassBeginInfo) - let vkCmdNextSubpass2KHR(commandBuffer : VkCommandBuffer, pSubpassBeginInfo : nativeptr, pSubpassEndInfo : nativeptr) = Loader.vkCmdNextSubpass2KHR.Invoke(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) - let vkCmdEndRenderPass2KHR(commandBuffer : VkCommandBuffer, pSubpassEndInfo : nativeptr) = Loader.vkCmdEndRenderPass2KHR.Invoke(commandBuffer, pSubpassEndInfo) - -module KHRDepthStencilResolve = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRCreateRenderpass2 - open KHRGetPhysicalDeviceProperties2 - open KHRMaintenance2 - open KHRMultiview - let Name = "VK_KHR_depth_stencil_resolve" - let Number = 200 - - let Required = [ KHRCreateRenderpass2.Name ] - - - type VkResolveModeFlagsKHR = VkResolveModeFlags - - type VkPhysicalDeviceDepthStencilResolvePropertiesKHR = VkPhysicalDeviceDepthStencilResolveProperties - - type VkSubpassDescriptionDepthStencilResolveKHR = VkSubpassDescriptionDepthStencilResolve + sprintf "flags = %A" x.flags + sprintf "srcImage = %A" x.srcImage + sprintf "srcImageLayout = %A" x.srcImageLayout + sprintf "regionCount = %A" x.regionCount + sprintf "pRegions = %A" x.pRegions + ] |> sprintf "VkCopyImageToMemoryInfoEXT { %s }" + end + [] + type VkMemoryToImageCopyEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public pHostPointer : nativeint + val mutable public memoryRowLength : uint32 + val mutable public memoryImageHeight : uint32 + val mutable public imageSubresource : VkImageSubresourceLayers + val mutable public imageOffset : VkOffset3D + val mutable public imageExtent : VkExtent3D - [] - module EnumExtensions = - type VkResolveModeFlags with - static member inline NoneKhr = unbox 0 - static member inline SampleZeroBitKhr = unbox 0x00000001 - static member inline AverageBitKhr = unbox 0x00000002 - static member inline MinBitKhr = unbox 0x00000004 - static member inline MaxBitKhr = unbox 0x00000008 + new(pNext : nativeint, pHostPointer : nativeint, memoryRowLength : uint32, memoryImageHeight : uint32, imageSubresource : VkImageSubresourceLayers, imageOffset : VkOffset3D, imageExtent : VkExtent3D) = + { + sType = 1000270002u + pNext = pNext + pHostPointer = pHostPointer + memoryRowLength = memoryRowLength + memoryImageHeight = memoryImageHeight + imageSubresource = imageSubresource + imageOffset = imageOffset + imageExtent = imageExtent + } + new(pHostPointer : nativeint, memoryRowLength : uint32, memoryImageHeight : uint32, imageSubresource : VkImageSubresourceLayers, imageOffset : VkOffset3D, imageExtent : VkExtent3D) = + VkMemoryToImageCopyEXT(Unchecked.defaultof, pHostPointer, memoryRowLength, memoryImageHeight, imageSubresource, imageOffset, imageExtent) -module EXTMultisampledRenderToSingleSampled = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRCreateRenderpass2 - open KHRDepthStencilResolve - open KHRGetPhysicalDeviceProperties2 - open KHRMaintenance2 - open KHRMultiview - let Name = "VK_EXT_multisampled_render_to_single_sampled" - let Number = 377 + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.pHostPointer = Unchecked.defaultof && x.memoryRowLength = Unchecked.defaultof && x.memoryImageHeight = Unchecked.defaultof && x.imageSubresource = Unchecked.defaultof && x.imageOffset = Unchecked.defaultof && x.imageExtent = Unchecked.defaultof - let Required = [ KHRCreateRenderpass2.Name; KHRDepthStencilResolve.Name ] + static member Empty = + VkMemoryToImageCopyEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "pHostPointer = %A" x.pHostPointer + sprintf "memoryRowLength = %A" x.memoryRowLength + sprintf "memoryImageHeight = %A" x.memoryImageHeight + sprintf "imageSubresource = %A" x.imageSubresource + sprintf "imageOffset = %A" x.imageOffset + sprintf "imageExtent = %A" x.imageExtent + ] |> sprintf "VkMemoryToImageCopyEXT { %s }" + end [] - type VkMultisampledRenderToSingleSampledInfoEXT = + type VkCopyMemoryToImageInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public multisampledRenderToSingleSampledEnable : VkBool32 - val mutable public rasterizationSamples : VkSampleCountFlags + val mutable public flags : VkHostImageCopyFlagsEXT + val mutable public dstImage : VkImage + val mutable public dstImageLayout : VkImageLayout + val mutable public regionCount : uint32 + val mutable public pRegions : nativeptr - new(pNext : nativeint, multisampledRenderToSingleSampledEnable : VkBool32, rasterizationSamples : VkSampleCountFlags) = + new(pNext : nativeint, flags : VkHostImageCopyFlagsEXT, dstImage : VkImage, dstImageLayout : VkImageLayout, regionCount : uint32, pRegions : nativeptr) = { - sType = 1000376002u + sType = 1000270005u pNext = pNext - multisampledRenderToSingleSampledEnable = multisampledRenderToSingleSampledEnable - rasterizationSamples = rasterizationSamples + flags = flags + dstImage = dstImage + dstImageLayout = dstImageLayout + regionCount = regionCount + pRegions = pRegions } - new(multisampledRenderToSingleSampledEnable : VkBool32, rasterizationSamples : VkSampleCountFlags) = - VkMultisampledRenderToSingleSampledInfoEXT(Unchecked.defaultof, multisampledRenderToSingleSampledEnable, rasterizationSamples) + new(flags : VkHostImageCopyFlagsEXT, dstImage : VkImage, dstImageLayout : VkImageLayout, regionCount : uint32, pRegions : nativeptr) = + VkCopyMemoryToImageInfoEXT(Unchecked.defaultof, flags, dstImage, dstImageLayout, regionCount, pRegions) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.multisampledRenderToSingleSampledEnable = Unchecked.defaultof && x.rasterizationSamples = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.dstImage = Unchecked.defaultof && x.dstImageLayout = Unchecked.defaultof && x.regionCount = Unchecked.defaultof && x.pRegions = Unchecked.defaultof> static member Empty = - VkMultisampledRenderToSingleSampledInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkCopyMemoryToImageInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "multisampledRenderToSingleSampledEnable = %A" x.multisampledRenderToSingleSampledEnable - sprintf "rasterizationSamples = %A" x.rasterizationSamples - ] |> sprintf "VkMultisampledRenderToSingleSampledInfoEXT { %s }" + sprintf "flags = %A" x.flags + sprintf "dstImage = %A" x.dstImage + sprintf "dstImageLayout = %A" x.dstImageLayout + sprintf "regionCount = %A" x.regionCount + sprintf "pRegions = %A" x.pRegions + ] |> sprintf "VkCopyMemoryToImageInfoEXT { %s }" end [] - type VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT = + type VkHostImageCopyDevicePerformanceQueryEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public multisampledRenderToSingleSampled : VkBool32 + val mutable public optimalDeviceAccess : VkBool32 + val mutable public identicalMemoryLayout : VkBool32 - new(pNext : nativeint, multisampledRenderToSingleSampled : VkBool32) = + new(pNext : nativeint, optimalDeviceAccess : VkBool32, identicalMemoryLayout : VkBool32) = { - sType = 1000376000u + sType = 1000270009u pNext = pNext - multisampledRenderToSingleSampled = multisampledRenderToSingleSampled + optimalDeviceAccess = optimalDeviceAccess + identicalMemoryLayout = identicalMemoryLayout } - new(multisampledRenderToSingleSampled : VkBool32) = - VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT(Unchecked.defaultof, multisampledRenderToSingleSampled) + new(optimalDeviceAccess : VkBool32, identicalMemoryLayout : VkBool32) = + VkHostImageCopyDevicePerformanceQueryEXT(Unchecked.defaultof, optimalDeviceAccess, identicalMemoryLayout) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.multisampledRenderToSingleSampled = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.optimalDeviceAccess = Unchecked.defaultof && x.identicalMemoryLayout = Unchecked.defaultof static member Empty = - VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) + VkHostImageCopyDevicePerformanceQueryEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "multisampledRenderToSingleSampled = %A" x.multisampledRenderToSingleSampled - ] |> sprintf "VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT { %s }" + sprintf "optimalDeviceAccess = %A" x.optimalDeviceAccess + sprintf "identicalMemoryLayout = %A" x.identicalMemoryLayout + ] |> sprintf "VkHostImageCopyDevicePerformanceQueryEXT { %s }" end [] - type VkSubpassResolvePerformanceQueryEXT = + type VkHostImageLayoutTransitionInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public optimal : VkBool32 + val mutable public image : VkImage + val mutable public oldLayout : VkImageLayout + val mutable public newLayout : VkImageLayout + val mutable public subresourceRange : VkImageSubresourceRange - new(pNext : nativeint, optimal : VkBool32) = + new(pNext : nativeint, image : VkImage, oldLayout : VkImageLayout, newLayout : VkImageLayout, subresourceRange : VkImageSubresourceRange) = { - sType = 1000376001u + sType = 1000270006u pNext = pNext - optimal = optimal + image = image + oldLayout = oldLayout + newLayout = newLayout + subresourceRange = subresourceRange } - new(optimal : VkBool32) = - VkSubpassResolvePerformanceQueryEXT(Unchecked.defaultof, optimal) + new(image : VkImage, oldLayout : VkImageLayout, newLayout : VkImageLayout, subresourceRange : VkImageSubresourceRange) = + VkHostImageLayoutTransitionInfoEXT(Unchecked.defaultof, image, oldLayout, newLayout, subresourceRange) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.optimal = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.image = Unchecked.defaultof && x.oldLayout = Unchecked.defaultof && x.newLayout = Unchecked.defaultof && x.subresourceRange = Unchecked.defaultof static member Empty = - VkSubpassResolvePerformanceQueryEXT(Unchecked.defaultof, Unchecked.defaultof) + VkHostImageLayoutTransitionInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "optimal = %A" x.optimal - ] |> sprintf "VkSubpassResolvePerformanceQueryEXT { %s }" + sprintf "image = %A" x.image + sprintf "oldLayout = %A" x.oldLayout + sprintf "newLayout = %A" x.newLayout + sprintf "subresourceRange = %A" x.subresourceRange + ] |> sprintf "VkHostImageLayoutTransitionInfoEXT { %s }" end - - [] - module EnumExtensions = - type VkImageCreateFlags with - static member inline MultisampledRenderToSingleSampledBitExt = unbox 0x00040000 - - -module EXTNonSeamlessCubeMap = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_EXT_non_seamless_cube_map" - let Number = 423 - + type VkImageSubresource2EXT = KHRMaintenance5.VkImageSubresource2KHR [] - type VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT = + type VkPhysicalDeviceHostImageCopyFeaturesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public nonSeamlessCubeMap : VkBool32 + val mutable public hostImageCopy : VkBool32 - new(pNext : nativeint, nonSeamlessCubeMap : VkBool32) = + new(pNext : nativeint, hostImageCopy : VkBool32) = { - sType = 1000422000u + sType = 1000270000u pNext = pNext - nonSeamlessCubeMap = nonSeamlessCubeMap + hostImageCopy = hostImageCopy } - new(nonSeamlessCubeMap : VkBool32) = - VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT(Unchecked.defaultof, nonSeamlessCubeMap) + new(hostImageCopy : VkBool32) = + VkPhysicalDeviceHostImageCopyFeaturesEXT(Unchecked.defaultof, hostImageCopy) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.nonSeamlessCubeMap = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.hostImageCopy = Unchecked.defaultof static member Empty = - VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceHostImageCopyFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "nonSeamlessCubeMap = %A" x.nonSeamlessCubeMap - ] |> sprintf "VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT { %s }" + sprintf "hostImageCopy = %A" x.hostImageCopy + ] |> sprintf "VkPhysicalDeviceHostImageCopyFeaturesEXT { %s }" end + [] + type VkPhysicalDeviceHostImageCopyPropertiesEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public copySrcLayoutCount : uint32 + val mutable public pCopySrcLayouts : nativeptr + val mutable public copyDstLayoutCount : uint32 + val mutable public pCopyDstLayouts : nativeptr + val mutable public optimalTilingLayoutUUID : Guid + val mutable public identicalMemoryTypeRequirements : VkBool32 - [] - module EnumExtensions = - type VkSamplerCreateFlags with - static member inline NonSeamlessCubeMapBitExt = unbox 0x00000004 + new(pNext : nativeint, copySrcLayoutCount : uint32, pCopySrcLayouts : nativeptr, copyDstLayoutCount : uint32, pCopyDstLayouts : nativeptr, optimalTilingLayoutUUID : Guid, identicalMemoryTypeRequirements : VkBool32) = + { + sType = 1000270001u + pNext = pNext + copySrcLayoutCount = copySrcLayoutCount + pCopySrcLayouts = pCopySrcLayouts + copyDstLayoutCount = copyDstLayoutCount + pCopyDstLayouts = pCopyDstLayouts + optimalTilingLayoutUUID = optimalTilingLayoutUUID + identicalMemoryTypeRequirements = identicalMemoryTypeRequirements + } + new(copySrcLayoutCount : uint32, pCopySrcLayouts : nativeptr, copyDstLayoutCount : uint32, pCopyDstLayouts : nativeptr, optimalTilingLayoutUUID : Guid, identicalMemoryTypeRequirements : VkBool32) = + VkPhysicalDeviceHostImageCopyPropertiesEXT(Unchecked.defaultof, copySrcLayoutCount, pCopySrcLayouts, copyDstLayoutCount, pCopyDstLayouts, optimalTilingLayoutUUID, identicalMemoryTypeRequirements) -module EXTPageableDeviceLocalMemory = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open EXTMemoryPriority - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_EXT_pageable_device_local_memory" - let Number = 413 + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.copySrcLayoutCount = Unchecked.defaultof && x.pCopySrcLayouts = Unchecked.defaultof> && x.copyDstLayoutCount = Unchecked.defaultof && x.pCopyDstLayouts = Unchecked.defaultof> && x.optimalTilingLayoutUUID = Unchecked.defaultof && x.identicalMemoryTypeRequirements = Unchecked.defaultof - let Required = [ EXTMemoryPriority.Name ] + static member Empty = + VkPhysicalDeviceHostImageCopyPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof) + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "copySrcLayoutCount = %A" x.copySrcLayoutCount + sprintf "pCopySrcLayouts = %A" x.pCopySrcLayouts + sprintf "copyDstLayoutCount = %A" x.copyDstLayoutCount + sprintf "pCopyDstLayouts = %A" x.pCopyDstLayouts + sprintf "optimalTilingLayoutUUID = %A" x.optimalTilingLayoutUUID + sprintf "identicalMemoryTypeRequirements = %A" x.identicalMemoryTypeRequirements + ] |> sprintf "VkPhysicalDeviceHostImageCopyPropertiesEXT { %s }" + end [] - type VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT = + type VkSubresourceHostMemcpySizeEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public pageableDeviceLocalMemory : VkBool32 + val mutable public size : VkDeviceSize - new(pNext : nativeint, pageableDeviceLocalMemory : VkBool32) = + new(pNext : nativeint, size : VkDeviceSize) = { - sType = 1000412000u + sType = 1000270008u pNext = pNext - pageableDeviceLocalMemory = pageableDeviceLocalMemory + size = size } - new(pageableDeviceLocalMemory : VkBool32) = - VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT(Unchecked.defaultof, pageableDeviceLocalMemory) + new(size : VkDeviceSize) = + VkSubresourceHostMemcpySizeEXT(Unchecked.defaultof, size) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.pageableDeviceLocalMemory = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.size = Unchecked.defaultof static member Empty = - VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) + VkSubresourceHostMemcpySizeEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "pageableDeviceLocalMemory = %A" x.pageableDeviceLocalMemory - ] |> sprintf "VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT { %s }" + sprintf "size = %A" x.size + ] |> sprintf "VkSubresourceHostMemcpySizeEXT { %s }" end + type VkSubresourceLayout2EXT = KHRMaintenance5.VkSubresourceLayout2KHR + + + [] + module EnumExtensions = + type Vulkan13.VkFormatFeatureFlags2 with + /// Host image copies are supported + static member inline FormatFeature2HostImageTransferBitExt = unbox 0x00004000 + type VkImageUsageFlags with + /// Can be used with host image copies + static member inline HostTransferBitExt = unbox 0x00400000 module VkRaw = [] - type VkSetDeviceMemoryPriorityEXTDel = delegate of VkDevice * VkDeviceMemory * float32 -> unit + type VkCopyMemoryToImageEXTDel = delegate of VkDevice * nativeptr -> VkResult + [] + type VkCopyImageToMemoryEXTDel = delegate of VkDevice * nativeptr -> VkResult + [] + type VkCopyImageToImageEXTDel = delegate of VkDevice * nativeptr -> VkResult + [] + type VkTransitionImageLayoutEXTDel = delegate of VkDevice * uint32 * nativeptr -> VkResult + [] + type VkGetImageSubresourceLayout2EXTDel = delegate of VkDevice * VkImage * nativeptr * nativeptr -> unit [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading EXTPageableDeviceLocalMemory") - static let s_vkSetDeviceMemoryPriorityEXTDel = VkRaw.vkImportInstanceDelegate "vkSetDeviceMemoryPriorityEXT" + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTHostImageCopy") + static let s_vkCopyMemoryToImageEXTDel = VkRaw.vkImportInstanceDelegate "vkCopyMemoryToImageEXT" + static let s_vkCopyImageToMemoryEXTDel = VkRaw.vkImportInstanceDelegate "vkCopyImageToMemoryEXT" + static let s_vkCopyImageToImageEXTDel = VkRaw.vkImportInstanceDelegate "vkCopyImageToImageEXT" + static let s_vkTransitionImageLayoutEXTDel = VkRaw.vkImportInstanceDelegate "vkTransitionImageLayoutEXT" + static let s_vkGetImageSubresourceLayout2EXTDel = VkRaw.vkImportInstanceDelegate "vkGetImageSubresourceLayout2EXT" static do Report.End(3) |> ignore - static member vkSetDeviceMemoryPriorityEXT = s_vkSetDeviceMemoryPriorityEXTDel - let vkSetDeviceMemoryPriorityEXT(device : VkDevice, memory : VkDeviceMemory, priority : float32) = Loader.vkSetDeviceMemoryPriorityEXT.Invoke(device, memory, priority) + static member vkCopyMemoryToImageEXT = s_vkCopyMemoryToImageEXTDel + static member vkCopyImageToMemoryEXT = s_vkCopyImageToMemoryEXTDel + static member vkCopyImageToImageEXT = s_vkCopyImageToImageEXTDel + static member vkTransitionImageLayoutEXT = s_vkTransitionImageLayoutEXTDel + static member vkGetImageSubresourceLayout2EXT = s_vkGetImageSubresourceLayout2EXTDel + let vkCopyMemoryToImageEXT(device : VkDevice, pCopyMemoryToImageInfo : nativeptr) = Loader.vkCopyMemoryToImageEXT.Invoke(device, pCopyMemoryToImageInfo) + let vkCopyImageToMemoryEXT(device : VkDevice, pCopyImageToMemoryInfo : nativeptr) = Loader.vkCopyImageToMemoryEXT.Invoke(device, pCopyImageToMemoryInfo) + let vkCopyImageToImageEXT(device : VkDevice, pCopyImageToImageInfo : nativeptr) = Loader.vkCopyImageToImageEXT.Invoke(device, pCopyImageToImageInfo) + let vkTransitionImageLayoutEXT(device : VkDevice, transitionCount : uint32, pTransitions : nativeptr) = Loader.vkTransitionImageLayoutEXT.Invoke(device, transitionCount, pTransitions) + let vkGetImageSubresourceLayout2EXT(device : VkDevice, image : VkImage, pSubresource : nativeptr, pLayout : nativeptr) = Loader.vkGetImageSubresourceLayout2EXT.Invoke(device, image, pSubresource, pLayout) + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +/// Promoted to Vulkan12. +module EXTHostQueryReset = + let Type = ExtensionType.Device + let Name = "VK_EXT_host_query_reset" + let Number = 262 -module EXTPciBusInfo = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_EXT_pci_bus_info" - let Number = 213 + type VkPhysicalDeviceHostQueryResetFeaturesEXT = Vulkan12.VkPhysicalDeviceHostQueryResetFeatures + + + module VkRaw = + [] + type VkResetQueryPoolEXTDel = delegate of VkDevice * VkQueryPool * uint32 * uint32 -> unit - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTHostQueryReset") + static let s_vkResetQueryPoolEXTDel = VkRaw.vkImportInstanceDelegate "vkResetQueryPoolEXT" + static do Report.End(3) |> ignore + static member vkResetQueryPoolEXT = s_vkResetQueryPoolEXTDel + let vkResetQueryPoolEXT(device : VkDevice, queryPool : VkQueryPool, firstQuery : uint32, queryCount : uint32) = Loader.vkResetQueryPoolEXT.Invoke(device, queryPool, firstQuery, queryCount) +/// Requires (KHRMaintenance1, KHRGetPhysicalDeviceProperties2) | Vulkan11. +module EXTImage2dViewOf3d = + let Type = ExtensionType.Device + let Name = "VK_EXT_image_2d_view_of_3d" + let Number = 394 [] - type VkPhysicalDevicePCIBusInfoPropertiesEXT = + type VkPhysicalDeviceImage2DViewOf3DFeaturesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public pciDomain : uint32 - val mutable public pciBus : uint32 - val mutable public pciDevice : uint32 - val mutable public pciFunction : uint32 + val mutable public image2DViewOf3D : VkBool32 + val mutable public sampler2DViewOf3D : VkBool32 - new(pNext : nativeint, pciDomain : uint32, pciBus : uint32, pciDevice : uint32, pciFunction : uint32) = + new(pNext : nativeint, image2DViewOf3D : VkBool32, sampler2DViewOf3D : VkBool32) = { - sType = 1000212000u + sType = 1000393000u pNext = pNext - pciDomain = pciDomain - pciBus = pciBus - pciDevice = pciDevice - pciFunction = pciFunction + image2DViewOf3D = image2DViewOf3D + sampler2DViewOf3D = sampler2DViewOf3D } - new(pciDomain : uint32, pciBus : uint32, pciDevice : uint32, pciFunction : uint32) = - VkPhysicalDevicePCIBusInfoPropertiesEXT(Unchecked.defaultof, pciDomain, pciBus, pciDevice, pciFunction) + new(image2DViewOf3D : VkBool32, sampler2DViewOf3D : VkBool32) = + VkPhysicalDeviceImage2DViewOf3DFeaturesEXT(Unchecked.defaultof, image2DViewOf3D, sampler2DViewOf3D) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.pciDomain = Unchecked.defaultof && x.pciBus = Unchecked.defaultof && x.pciDevice = Unchecked.defaultof && x.pciFunction = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.image2DViewOf3D = Unchecked.defaultof && x.sampler2DViewOf3D = Unchecked.defaultof static member Empty = - VkPhysicalDevicePCIBusInfoPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceImage2DViewOf3DFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "pciDomain = %A" x.pciDomain - sprintf "pciBus = %A" x.pciBus - sprintf "pciDevice = %A" x.pciDevice - sprintf "pciFunction = %A" x.pciFunction - ] |> sprintf "VkPhysicalDevicePCIBusInfoPropertiesEXT { %s }" + sprintf "image2DViewOf3D = %A" x.image2DViewOf3D + sprintf "sampler2DViewOf3D = %A" x.sampler2DViewOf3D + ] |> sprintf "VkPhysicalDeviceImage2DViewOf3DFeaturesEXT { %s }" end + [] + module EnumExtensions = + type VkImageCreateFlags with + /// Image is created with a layout where individual slices are capable of being used as 2D images + static member inline D2dViewCompatibleBitExt = unbox 0x00020000 + + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module EXTImageCompressionControl = + let Type = ExtensionType.Device + let Name = "VK_EXT_image_compression_control" + let Number = 339 -module EXTPhysicalDeviceDrm = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_EXT_physical_device_drm" - let Number = 354 + [] + type VkImageCompressionFlagsEXT = + | All = 7 + | Default = 0 + | FixedRateDefault = 0x00000001 + | FixedRateExplicit = 0x00000002 + | Disabled = 0x00000004 - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] + [] + type VkImageCompressionFixedRateFlagsEXT = + | All = 16777215 + | None = 0 + | D1bpcBit = 0x00000001 + | D2bpcBit = 0x00000002 + | D3bpcBit = 0x00000004 + | D4bpcBit = 0x00000008 + | D5bpcBit = 0x00000010 + | D6bpcBit = 0x00000020 + | D7bpcBit = 0x00000040 + | D8bpcBit = 0x00000080 + | D9bpcBit = 0x00000100 + | D10bpcBit = 0x00000200 + | D11bpcBit = 0x00000400 + | D12bpcBit = 0x00000800 + | D13bpcBit = 0x00001000 + | D14bpcBit = 0x00002000 + | D15bpcBit = 0x00004000 + | D16bpcBit = 0x00008000 + | D17bpcBit = 0x00010000 + | D18bpcBit = 0x00020000 + | D19bpcBit = 0x00040000 + | D20bpcBit = 0x00080000 + | D21bpcBit = 0x00100000 + | D22bpcBit = 0x00200000 + | D23bpcBit = 0x00400000 + | D24bpcBit = 0x00800000 [] - type VkPhysicalDeviceDrmPropertiesEXT = + type VkImageCompressionControlEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public hasPrimary : VkBool32 - val mutable public hasRender : VkBool32 - val mutable public primaryMajor : int64 - val mutable public primaryMinor : int64 - val mutable public renderMajor : int64 - val mutable public renderMinor : int64 + val mutable public flags : VkImageCompressionFlagsEXT + val mutable public compressionControlPlaneCount : uint32 + val mutable public pFixedRateFlags : nativeptr - new(pNext : nativeint, hasPrimary : VkBool32, hasRender : VkBool32, primaryMajor : int64, primaryMinor : int64, renderMajor : int64, renderMinor : int64) = + new(pNext : nativeint, flags : VkImageCompressionFlagsEXT, compressionControlPlaneCount : uint32, pFixedRateFlags : nativeptr) = { - sType = 1000353000u + sType = 1000338001u pNext = pNext - hasPrimary = hasPrimary - hasRender = hasRender - primaryMajor = primaryMajor - primaryMinor = primaryMinor - renderMajor = renderMajor - renderMinor = renderMinor + flags = flags + compressionControlPlaneCount = compressionControlPlaneCount + pFixedRateFlags = pFixedRateFlags } - new(hasPrimary : VkBool32, hasRender : VkBool32, primaryMajor : int64, primaryMinor : int64, renderMajor : int64, renderMinor : int64) = - VkPhysicalDeviceDrmPropertiesEXT(Unchecked.defaultof, hasPrimary, hasRender, primaryMajor, primaryMinor, renderMajor, renderMinor) + new(flags : VkImageCompressionFlagsEXT, compressionControlPlaneCount : uint32, pFixedRateFlags : nativeptr) = + VkImageCompressionControlEXT(Unchecked.defaultof, flags, compressionControlPlaneCount, pFixedRateFlags) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.hasPrimary = Unchecked.defaultof && x.hasRender = Unchecked.defaultof && x.primaryMajor = Unchecked.defaultof && x.primaryMinor = Unchecked.defaultof && x.renderMajor = Unchecked.defaultof && x.renderMinor = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.compressionControlPlaneCount = Unchecked.defaultof && x.pFixedRateFlags = Unchecked.defaultof> static member Empty = - VkPhysicalDeviceDrmPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkImageCompressionControlEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "hasPrimary = %A" x.hasPrimary - sprintf "hasRender = %A" x.hasRender - sprintf "primaryMajor = %A" x.primaryMajor - sprintf "primaryMinor = %A" x.primaryMinor - sprintf "renderMajor = %A" x.renderMajor - sprintf "renderMinor = %A" x.renderMinor - ] |> sprintf "VkPhysicalDeviceDrmPropertiesEXT { %s }" + sprintf "flags = %A" x.flags + sprintf "compressionControlPlaneCount = %A" x.compressionControlPlaneCount + sprintf "pFixedRateFlags = %A" x.pFixedRateFlags + ] |> sprintf "VkImageCompressionControlEXT { %s }" end + [] + type VkImageCompressionPropertiesEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public imageCompressionFlags : VkImageCompressionFlagsEXT + val mutable public imageCompressionFixedRateFlags : VkImageCompressionFixedRateFlagsEXT + new(pNext : nativeint, imageCompressionFlags : VkImageCompressionFlagsEXT, imageCompressionFixedRateFlags : VkImageCompressionFixedRateFlagsEXT) = + { + sType = 1000338004u + pNext = pNext + imageCompressionFlags = imageCompressionFlags + imageCompressionFixedRateFlags = imageCompressionFixedRateFlags + } -module EXTPipelineCreationCacheControl = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_EXT_pipeline_creation_cache_control" - let Number = 298 - + new(imageCompressionFlags : VkImageCompressionFlagsEXT, imageCompressionFixedRateFlags : VkImageCompressionFixedRateFlagsEXT) = + VkImageCompressionPropertiesEXT(Unchecked.defaultof, imageCompressionFlags, imageCompressionFixedRateFlags) + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.imageCompressionFlags = Unchecked.defaultof && x.imageCompressionFixedRateFlags = Unchecked.defaultof - type VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT = VkPhysicalDevicePipelineCreationCacheControlFeatures + static member Empty = + VkImageCompressionPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "imageCompressionFlags = %A" x.imageCompressionFlags + sprintf "imageCompressionFixedRateFlags = %A" x.imageCompressionFixedRateFlags + ] |> sprintf "VkImageCompressionPropertiesEXT { %s }" + end - [] - module EnumExtensions = - type VkPipelineCacheCreateFlags with - static member inline ExternallySynchronizedBitExt = unbox 0x00000001 - type VkPipelineCreateFlags with - static member inline FailOnPipelineCompileRequiredBitExt = unbox 0x00000100 - static member inline EarlyReturnOnFailureBitExt = unbox 0x00000200 - type VkResult with - static member inline PipelineCompileRequiredExt = unbox 1000297000 - static member inline ErrorPipelineCompileRequiredExt = unbox 1000297000 + type VkImageSubresource2EXT = EXTHostImageCopy.VkImageSubresource2EXT + [] + type VkPhysicalDeviceImageCompressionControlFeaturesEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public imageCompressionControl : VkBool32 -module EXTPipelineCreationFeedback = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_EXT_pipeline_creation_feedback" - let Number = 193 + new(pNext : nativeint, imageCompressionControl : VkBool32) = + { + sType = 1000338000u + pNext = pNext + imageCompressionControl = imageCompressionControl + } + new(imageCompressionControl : VkBool32) = + VkPhysicalDeviceImageCompressionControlFeaturesEXT(Unchecked.defaultof, imageCompressionControl) - type VkPipelineCreationFeedbackFlagsEXT = VkPipelineCreationFeedbackFlags + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.imageCompressionControl = Unchecked.defaultof - type VkPipelineCreationFeedbackCreateInfoEXT = VkPipelineCreationFeedbackCreateInfo + static member Empty = + VkPhysicalDeviceImageCompressionControlFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) - type VkPipelineCreationFeedbackEXT = VkPipelineCreationFeedback + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "imageCompressionControl = %A" x.imageCompressionControl + ] |> sprintf "VkPhysicalDeviceImageCompressionControlFeaturesEXT { %s }" + end + type VkSubresourceLayout2EXT = EXTHostImageCopy.VkSubresourceLayout2EXT -module EXTPipelineProperties = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_EXT_pipeline_properties" - let Number = 373 + [] + module EnumExtensions = + type VkResult with + static member inline ErrorCompressionExhaustedExt = unbox -1000338000 - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] + module VkRaw = + let vkGetImageSubresourceLayout2EXT = EXTHostImageCopy.VkRaw.vkGetImageSubresourceLayout2EXT +/// Requires EXTImageCompressionControl. +module EXTImageCompressionControlSwapchain = + let Type = ExtensionType.Device + let Name = "VK_EXT_image_compression_control_swapchain" + let Number = 438 [] - type VkPhysicalDevicePipelinePropertiesFeaturesEXT = + type VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public pipelinePropertiesIdentifier : VkBool32 + val mutable public imageCompressionControlSwapchain : VkBool32 - new(pNext : nativeint, pipelinePropertiesIdentifier : VkBool32) = + new(pNext : nativeint, imageCompressionControlSwapchain : VkBool32) = { - sType = 1000372001u + sType = 1000437000u pNext = pNext - pipelinePropertiesIdentifier = pipelinePropertiesIdentifier + imageCompressionControlSwapchain = imageCompressionControlSwapchain } - new(pipelinePropertiesIdentifier : VkBool32) = - VkPhysicalDevicePipelinePropertiesFeaturesEXT(Unchecked.defaultof, pipelinePropertiesIdentifier) + new(imageCompressionControlSwapchain : VkBool32) = + VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT(Unchecked.defaultof, imageCompressionControlSwapchain) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.pipelinePropertiesIdentifier = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.imageCompressionControlSwapchain = Unchecked.defaultof static member Empty = - VkPhysicalDevicePipelinePropertiesFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "pipelinePropertiesIdentifier = %A" x.pipelinePropertiesIdentifier - ] |> sprintf "VkPhysicalDevicePipelinePropertiesFeaturesEXT { %s }" + sprintf "imageCompressionControlSwapchain = %A" x.imageCompressionControlSwapchain + ] |> sprintf "VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT { %s }" end + + +/// Promoted to Vulkan12. +module KHRImageFormatList = + let Type = ExtensionType.Device + let Name = "VK_KHR_image_format_list" + let Number = 148 + + type VkImageFormatListCreateInfoKHR = Vulkan12.VkImageFormatListCreateInfo + + + +/// Requires (((KHRBindMemory2, KHRGetPhysicalDeviceProperties2, KHRSamplerYcbcrConversion) | Vulkan11), KHRImageFormatList) | Vulkan12. +module EXTImageDrmFormatModifier = + let Type = ExtensionType.Device + let Name = "VK_EXT_image_drm_format_modifier" + let Number = 159 + [] - type VkPipelineInfoKHR = + type VkDrmFormatModifierPropertiesEXT = struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public pipeline : VkPipeline + val mutable public drmFormatModifier : uint64 + val mutable public drmFormatModifierPlaneCount : uint32 + val mutable public drmFormatModifierTilingFeatures : VkFormatFeatureFlags - new(pNext : nativeint, pipeline : VkPipeline) = + new(drmFormatModifier : uint64, drmFormatModifierPlaneCount : uint32, drmFormatModifierTilingFeatures : VkFormatFeatureFlags) = { - sType = 1000269001u - pNext = pNext - pipeline = pipeline + drmFormatModifier = drmFormatModifier + drmFormatModifierPlaneCount = drmFormatModifierPlaneCount + drmFormatModifierTilingFeatures = drmFormatModifierTilingFeatures } - new(pipeline : VkPipeline) = - VkPipelineInfoKHR(Unchecked.defaultof, pipeline) - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.pipeline = Unchecked.defaultof + x.drmFormatModifier = Unchecked.defaultof && x.drmFormatModifierPlaneCount = Unchecked.defaultof && x.drmFormatModifierTilingFeatures = Unchecked.defaultof static member Empty = - VkPipelineInfoKHR(Unchecked.defaultof, Unchecked.defaultof) + VkDrmFormatModifierPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "pipeline = %A" x.pipeline - ] |> sprintf "VkPipelineInfoKHR { %s }" + sprintf "drmFormatModifier = %A" x.drmFormatModifier + sprintf "drmFormatModifierPlaneCount = %A" x.drmFormatModifierPlaneCount + sprintf "drmFormatModifierTilingFeatures = %A" x.drmFormatModifierTilingFeatures + ] |> sprintf "VkDrmFormatModifierPropertiesEXT { %s }" end [] - type VkPipelinePropertiesIdentifierEXT = + type VkDrmFormatModifierPropertiesListEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public pipelineIdentifier : Guid + val mutable public drmFormatModifierCount : uint32 + val mutable public pDrmFormatModifierProperties : nativeptr - new(pNext : nativeint, pipelineIdentifier : Guid) = + new(pNext : nativeint, drmFormatModifierCount : uint32, pDrmFormatModifierProperties : nativeptr) = { - sType = 1000372000u + sType = 1000158000u pNext = pNext - pipelineIdentifier = pipelineIdentifier + drmFormatModifierCount = drmFormatModifierCount + pDrmFormatModifierProperties = pDrmFormatModifierProperties } - new(pipelineIdentifier : Guid) = - VkPipelinePropertiesIdentifierEXT(Unchecked.defaultof, pipelineIdentifier) + new(drmFormatModifierCount : uint32, pDrmFormatModifierProperties : nativeptr) = + VkDrmFormatModifierPropertiesListEXT(Unchecked.defaultof, drmFormatModifierCount, pDrmFormatModifierProperties) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.pipelineIdentifier = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.drmFormatModifierCount = Unchecked.defaultof && x.pDrmFormatModifierProperties = Unchecked.defaultof> static member Empty = - VkPipelinePropertiesIdentifierEXT(Unchecked.defaultof, Unchecked.defaultof) + VkDrmFormatModifierPropertiesListEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "pipelineIdentifier = %A" x.pipelineIdentifier - ] |> sprintf "VkPipelinePropertiesIdentifierEXT { %s }" + sprintf "drmFormatModifierCount = %A" x.drmFormatModifierCount + sprintf "pDrmFormatModifierProperties = %A" x.pDrmFormatModifierProperties + ] |> sprintf "VkDrmFormatModifierPropertiesListEXT { %s }" end + [] + type VkImageDrmFormatModifierExplicitCreateInfoEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public drmFormatModifier : uint64 + val mutable public drmFormatModifierPlaneCount : uint32 + val mutable public pPlaneLayouts : nativeptr - module VkRaw = - [] - type VkGetPipelinePropertiesEXTDel = delegate of VkDevice * nativeptr * nativeptr -> VkResult - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading EXTPipelineProperties") - static let s_vkGetPipelinePropertiesEXTDel = VkRaw.vkImportInstanceDelegate "vkGetPipelinePropertiesEXT" - static do Report.End(3) |> ignore - static member vkGetPipelinePropertiesEXT = s_vkGetPipelinePropertiesEXTDel - let vkGetPipelinePropertiesEXT(device : VkDevice, pPipelineInfo : nativeptr, pPipelineProperties : nativeptr) = Loader.vkGetPipelinePropertiesEXT.Invoke(device, pPipelineInfo, pPipelineProperties) - -module EXTPipelineRobustness = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_EXT_pipeline_robustness" - let Number = 69 - - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] + new(pNext : nativeint, drmFormatModifier : uint64, drmFormatModifierPlaneCount : uint32, pPlaneLayouts : nativeptr) = + { + sType = 1000158004u + pNext = pNext + drmFormatModifier = drmFormatModifier + drmFormatModifierPlaneCount = drmFormatModifierPlaneCount + pPlaneLayouts = pPlaneLayouts + } + new(drmFormatModifier : uint64, drmFormatModifierPlaneCount : uint32, pPlaneLayouts : nativeptr) = + VkImageDrmFormatModifierExplicitCreateInfoEXT(Unchecked.defaultof, drmFormatModifier, drmFormatModifierPlaneCount, pPlaneLayouts) - type VkPipelineRobustnessBufferBehaviorEXT = - | DeviceDefault = 0 - | Disabled = 1 - | RobustBufferAccess = 2 - | RobustBufferAccess2 = 3 + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.drmFormatModifier = Unchecked.defaultof && x.drmFormatModifierPlaneCount = Unchecked.defaultof && x.pPlaneLayouts = Unchecked.defaultof> - type VkPipelineRobustnessImageBehaviorEXT = - | DeviceDefault = 0 - | Disabled = 1 - | RobustImageAccess = 2 - | RobustImageAccess2 = 3 + static member Empty = + VkImageDrmFormatModifierExplicitCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "drmFormatModifier = %A" x.drmFormatModifier + sprintf "drmFormatModifierPlaneCount = %A" x.drmFormatModifierPlaneCount + sprintf "pPlaneLayouts = %A" x.pPlaneLayouts + ] |> sprintf "VkImageDrmFormatModifierExplicitCreateInfoEXT { %s }" + end [] - type VkPhysicalDevicePipelineRobustnessFeaturesEXT = + type VkImageDrmFormatModifierListCreateInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public pipelineRobustness : VkBool32 + val mutable public drmFormatModifierCount : uint32 + val mutable public pDrmFormatModifiers : nativeptr - new(pNext : nativeint, pipelineRobustness : VkBool32) = + new(pNext : nativeint, drmFormatModifierCount : uint32, pDrmFormatModifiers : nativeptr) = { - sType = 1000068001u + sType = 1000158003u pNext = pNext - pipelineRobustness = pipelineRobustness + drmFormatModifierCount = drmFormatModifierCount + pDrmFormatModifiers = pDrmFormatModifiers } - new(pipelineRobustness : VkBool32) = - VkPhysicalDevicePipelineRobustnessFeaturesEXT(Unchecked.defaultof, pipelineRobustness) + new(drmFormatModifierCount : uint32, pDrmFormatModifiers : nativeptr) = + VkImageDrmFormatModifierListCreateInfoEXT(Unchecked.defaultof, drmFormatModifierCount, pDrmFormatModifiers) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.pipelineRobustness = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.drmFormatModifierCount = Unchecked.defaultof && x.pDrmFormatModifiers = Unchecked.defaultof> static member Empty = - VkPhysicalDevicePipelineRobustnessFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) + VkImageDrmFormatModifierListCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "pipelineRobustness = %A" x.pipelineRobustness - ] |> sprintf "VkPhysicalDevicePipelineRobustnessFeaturesEXT { %s }" + sprintf "drmFormatModifierCount = %A" x.drmFormatModifierCount + sprintf "pDrmFormatModifiers = %A" x.pDrmFormatModifiers + ] |> sprintf "VkImageDrmFormatModifierListCreateInfoEXT { %s }" end [] - type VkPhysicalDevicePipelineRobustnessPropertiesEXT = + type VkImageDrmFormatModifierPropertiesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public defaultRobustnessStorageBuffers : VkPipelineRobustnessBufferBehaviorEXT - val mutable public defaultRobustnessUniformBuffers : VkPipelineRobustnessBufferBehaviorEXT - val mutable public defaultRobustnessVertexInputs : VkPipelineRobustnessBufferBehaviorEXT - val mutable public defaultRobustnessImages : VkPipelineRobustnessImageBehaviorEXT + val mutable public drmFormatModifier : uint64 - new(pNext : nativeint, defaultRobustnessStorageBuffers : VkPipelineRobustnessBufferBehaviorEXT, defaultRobustnessUniformBuffers : VkPipelineRobustnessBufferBehaviorEXT, defaultRobustnessVertexInputs : VkPipelineRobustnessBufferBehaviorEXT, defaultRobustnessImages : VkPipelineRobustnessImageBehaviorEXT) = + new(pNext : nativeint, drmFormatModifier : uint64) = { - sType = 1000068002u + sType = 1000158005u pNext = pNext - defaultRobustnessStorageBuffers = defaultRobustnessStorageBuffers - defaultRobustnessUniformBuffers = defaultRobustnessUniformBuffers - defaultRobustnessVertexInputs = defaultRobustnessVertexInputs - defaultRobustnessImages = defaultRobustnessImages + drmFormatModifier = drmFormatModifier } - new(defaultRobustnessStorageBuffers : VkPipelineRobustnessBufferBehaviorEXT, defaultRobustnessUniformBuffers : VkPipelineRobustnessBufferBehaviorEXT, defaultRobustnessVertexInputs : VkPipelineRobustnessBufferBehaviorEXT, defaultRobustnessImages : VkPipelineRobustnessImageBehaviorEXT) = - VkPhysicalDevicePipelineRobustnessPropertiesEXT(Unchecked.defaultof, defaultRobustnessStorageBuffers, defaultRobustnessUniformBuffers, defaultRobustnessVertexInputs, defaultRobustnessImages) + new(drmFormatModifier : uint64) = + VkImageDrmFormatModifierPropertiesEXT(Unchecked.defaultof, drmFormatModifier) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.defaultRobustnessStorageBuffers = Unchecked.defaultof && x.defaultRobustnessUniformBuffers = Unchecked.defaultof && x.defaultRobustnessVertexInputs = Unchecked.defaultof && x.defaultRobustnessImages = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.drmFormatModifier = Unchecked.defaultof static member Empty = - VkPhysicalDevicePipelineRobustnessPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkImageDrmFormatModifierPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "defaultRobustnessStorageBuffers = %A" x.defaultRobustnessStorageBuffers - sprintf "defaultRobustnessUniformBuffers = %A" x.defaultRobustnessUniformBuffers - sprintf "defaultRobustnessVertexInputs = %A" x.defaultRobustnessVertexInputs - sprintf "defaultRobustnessImages = %A" x.defaultRobustnessImages - ] |> sprintf "VkPhysicalDevicePipelineRobustnessPropertiesEXT { %s }" + sprintf "drmFormatModifier = %A" x.drmFormatModifier + ] |> sprintf "VkImageDrmFormatModifierPropertiesEXT { %s }" end [] - type VkPipelineRobustnessCreateInfoEXT = + type VkPhysicalDeviceImageDrmFormatModifierInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public storageBuffers : VkPipelineRobustnessBufferBehaviorEXT - val mutable public uniformBuffers : VkPipelineRobustnessBufferBehaviorEXT - val mutable public vertexInputs : VkPipelineRobustnessBufferBehaviorEXT - val mutable public images : VkPipelineRobustnessImageBehaviorEXT + val mutable public drmFormatModifier : uint64 + val mutable public sharingMode : VkSharingMode + val mutable public queueFamilyIndexCount : uint32 + val mutable public pQueueFamilyIndices : nativeptr - new(pNext : nativeint, storageBuffers : VkPipelineRobustnessBufferBehaviorEXT, uniformBuffers : VkPipelineRobustnessBufferBehaviorEXT, vertexInputs : VkPipelineRobustnessBufferBehaviorEXT, images : VkPipelineRobustnessImageBehaviorEXT) = + new(pNext : nativeint, drmFormatModifier : uint64, sharingMode : VkSharingMode, queueFamilyIndexCount : uint32, pQueueFamilyIndices : nativeptr) = { - sType = 1000068000u + sType = 1000158002u pNext = pNext - storageBuffers = storageBuffers - uniformBuffers = uniformBuffers - vertexInputs = vertexInputs - images = images + drmFormatModifier = drmFormatModifier + sharingMode = sharingMode + queueFamilyIndexCount = queueFamilyIndexCount + pQueueFamilyIndices = pQueueFamilyIndices } - new(storageBuffers : VkPipelineRobustnessBufferBehaviorEXT, uniformBuffers : VkPipelineRobustnessBufferBehaviorEXT, vertexInputs : VkPipelineRobustnessBufferBehaviorEXT, images : VkPipelineRobustnessImageBehaviorEXT) = - VkPipelineRobustnessCreateInfoEXT(Unchecked.defaultof, storageBuffers, uniformBuffers, vertexInputs, images) + new(drmFormatModifier : uint64, sharingMode : VkSharingMode, queueFamilyIndexCount : uint32, pQueueFamilyIndices : nativeptr) = + VkPhysicalDeviceImageDrmFormatModifierInfoEXT(Unchecked.defaultof, drmFormatModifier, sharingMode, queueFamilyIndexCount, pQueueFamilyIndices) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.storageBuffers = Unchecked.defaultof && x.uniformBuffers = Unchecked.defaultof && x.vertexInputs = Unchecked.defaultof && x.images = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.drmFormatModifier = Unchecked.defaultof && x.sharingMode = Unchecked.defaultof && x.queueFamilyIndexCount = Unchecked.defaultof && x.pQueueFamilyIndices = Unchecked.defaultof> static member Empty = - VkPipelineRobustnessCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceImageDrmFormatModifierInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "storageBuffers = %A" x.storageBuffers - sprintf "uniformBuffers = %A" x.uniformBuffers - sprintf "vertexInputs = %A" x.vertexInputs - sprintf "images = %A" x.images - ] |> sprintf "VkPipelineRobustnessCreateInfoEXT { %s }" + sprintf "drmFormatModifier = %A" x.drmFormatModifier + sprintf "sharingMode = %A" x.sharingMode + sprintf "queueFamilyIndexCount = %A" x.queueFamilyIndexCount + sprintf "pQueueFamilyIndices = %A" x.pQueueFamilyIndices + ] |> sprintf "VkPhysicalDeviceImageDrmFormatModifierInfoEXT { %s }" end + [] + module EnumExtensions = + type VkImageAspectFlags with + static member inline MemoryPlane0BitExt = unbox 0x00000080 + static member inline MemoryPlane1BitExt = unbox 0x00000100 + static member inline MemoryPlane2BitExt = unbox 0x00000200 + static member inline MemoryPlane3BitExt = unbox 0x00000400 + type VkImageTiling with + static member inline DrmFormatModifierExt = unbox 1000158000 + type VkResult with + static member inline ErrorInvalidDrmFormatModifierPlaneLayoutExt = unbox -1000158000 + + module VkRaw = + [] + type VkGetImageDrmFormatModifierPropertiesEXTDel = delegate of VkDevice * VkImage * nativeptr -> VkResult + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTImageDrmFormatModifier") + static let s_vkGetImageDrmFormatModifierPropertiesEXTDel = VkRaw.vkImportInstanceDelegate "vkGetImageDrmFormatModifierPropertiesEXT" + static do Report.End(3) |> ignore + static member vkGetImageDrmFormatModifierPropertiesEXT = s_vkGetImageDrmFormatModifierPropertiesEXTDel + let vkGetImageDrmFormatModifierPropertiesEXT(device : VkDevice, image : VkImage, pProperties : nativeptr) = Loader.vkGetImageDrmFormatModifierPropertiesEXT.Invoke(device, image, pProperties) -module EXTPostDepthCoverage = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_EXT_post_depth_coverage" - let Number = 156 + [] + module ``KHRFormatFeatureFlags2 | Vulkan13`` = + [] + type VkDrmFormatModifierProperties2EXT = + struct + val mutable public drmFormatModifier : uint64 + val mutable public drmFormatModifierPlaneCount : uint32 + val mutable public drmFormatModifierTilingFeatures : Vulkan13.VkFormatFeatureFlags2 + new(drmFormatModifier : uint64, drmFormatModifierPlaneCount : uint32, drmFormatModifierTilingFeatures : Vulkan13.VkFormatFeatureFlags2) = + { + drmFormatModifier = drmFormatModifier + drmFormatModifierPlaneCount = drmFormatModifierPlaneCount + drmFormatModifierTilingFeatures = drmFormatModifierTilingFeatures + } -module EXTPrimitiveTopologyListRestart = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_EXT_primitive_topology_list_restart" - let Number = 357 + member x.IsEmpty = + x.drmFormatModifier = Unchecked.defaultof && x.drmFormatModifierPlaneCount = Unchecked.defaultof && x.drmFormatModifierTilingFeatures = Unchecked.defaultof + + static member Empty = + VkDrmFormatModifierProperties2EXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "drmFormatModifier = %A" x.drmFormatModifier + sprintf "drmFormatModifierPlaneCount = %A" x.drmFormatModifierPlaneCount + sprintf "drmFormatModifierTilingFeatures = %A" x.drmFormatModifierTilingFeatures + ] |> sprintf "VkDrmFormatModifierProperties2EXT { %s }" + end + + [] + type VkDrmFormatModifierPropertiesList2EXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public drmFormatModifierCount : uint32 + val mutable public pDrmFormatModifierProperties : nativeptr + + new(pNext : nativeint, drmFormatModifierCount : uint32, pDrmFormatModifierProperties : nativeptr) = + { + sType = 1000158006u + pNext = pNext + drmFormatModifierCount = drmFormatModifierCount + pDrmFormatModifierProperties = pDrmFormatModifierProperties + } + + new(drmFormatModifierCount : uint32, pDrmFormatModifierProperties : nativeptr) = + VkDrmFormatModifierPropertiesList2EXT(Unchecked.defaultof, drmFormatModifierCount, pDrmFormatModifierProperties) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.drmFormatModifierCount = Unchecked.defaultof && x.pDrmFormatModifierProperties = Unchecked.defaultof> + + static member Empty = + VkDrmFormatModifierPropertiesList2EXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "drmFormatModifierCount = %A" x.drmFormatModifierCount + sprintf "pDrmFormatModifierProperties = %A" x.pDrmFormatModifierProperties + ] |> sprintf "VkDrmFormatModifierPropertiesList2EXT { %s }" + end + + + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +/// Promoted to Vulkan13. +module EXTImageRobustness = + let Type = ExtensionType.Device + let Name = "VK_EXT_image_robustness" + let Number = 336 + + type VkPhysicalDeviceImageRobustnessFeaturesEXT = Vulkan13.VkPhysicalDeviceImageRobustnessFeatures + +/// Requires (KHRMaintenance1, KHRGetPhysicalDeviceProperties2) | Vulkan11. +module EXTImageSlicedViewOf3d = + let Type = ExtensionType.Device + let Name = "VK_EXT_image_sliced_view_of_3d" + let Number = 419 + [] - type VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT = + type VkImageViewSlicedCreateInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public primitiveTopologyListRestart : VkBool32 - val mutable public primitiveTopologyPatchListRestart : VkBool32 + val mutable public sliceOffset : uint32 + val mutable public sliceCount : uint32 - new(pNext : nativeint, primitiveTopologyListRestart : VkBool32, primitiveTopologyPatchListRestart : VkBool32) = + new(pNext : nativeint, sliceOffset : uint32, sliceCount : uint32) = { - sType = 1000356000u + sType = 1000418001u pNext = pNext - primitiveTopologyListRestart = primitiveTopologyListRestart - primitiveTopologyPatchListRestart = primitiveTopologyPatchListRestart + sliceOffset = sliceOffset + sliceCount = sliceCount } - new(primitiveTopologyListRestart : VkBool32, primitiveTopologyPatchListRestart : VkBool32) = - VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(Unchecked.defaultof, primitiveTopologyListRestart, primitiveTopologyPatchListRestart) + new(sliceOffset : uint32, sliceCount : uint32) = + VkImageViewSlicedCreateInfoEXT(Unchecked.defaultof, sliceOffset, sliceCount) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.primitiveTopologyListRestart = Unchecked.defaultof && x.primitiveTopologyPatchListRestart = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.sliceOffset = Unchecked.defaultof && x.sliceCount = Unchecked.defaultof static member Empty = - VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkImageViewSlicedCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "primitiveTopologyListRestart = %A" x.primitiveTopologyListRestart - sprintf "primitiveTopologyPatchListRestart = %A" x.primitiveTopologyPatchListRestart - ] |> sprintf "VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT { %s }" + sprintf "sliceOffset = %A" x.sliceOffset + sprintf "sliceCount = %A" x.sliceCount + ] |> sprintf "VkImageViewSlicedCreateInfoEXT { %s }" end - - -module EXTTransformFeedback = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_EXT_transform_feedback" - let Number = 29 - - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] - - [] - type VkPhysicalDeviceTransformFeedbackFeaturesEXT = + type VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public transformFeedback : VkBool32 - val mutable public geometryStreams : VkBool32 + val mutable public imageSlicedViewOf3D : VkBool32 - new(pNext : nativeint, transformFeedback : VkBool32, geometryStreams : VkBool32) = + new(pNext : nativeint, imageSlicedViewOf3D : VkBool32) = { - sType = 1000028000u + sType = 1000418000u pNext = pNext - transformFeedback = transformFeedback - geometryStreams = geometryStreams + imageSlicedViewOf3D = imageSlicedViewOf3D } - new(transformFeedback : VkBool32, geometryStreams : VkBool32) = - VkPhysicalDeviceTransformFeedbackFeaturesEXT(Unchecked.defaultof, transformFeedback, geometryStreams) + new(imageSlicedViewOf3D : VkBool32) = + VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT(Unchecked.defaultof, imageSlicedViewOf3D) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.transformFeedback = Unchecked.defaultof && x.geometryStreams = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.imageSlicedViewOf3D = Unchecked.defaultof static member Empty = - VkPhysicalDeviceTransformFeedbackFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "transformFeedback = %A" x.transformFeedback - sprintf "geometryStreams = %A" x.geometryStreams - ] |> sprintf "VkPhysicalDeviceTransformFeedbackFeaturesEXT { %s }" + sprintf "imageSlicedViewOf3D = %A" x.imageSlicedViewOf3D + ] |> sprintf "VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT { %s }" end + + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module EXTImageViewMinLod = + let Type = ExtensionType.Device + let Name = "VK_EXT_image_view_min_lod" + let Number = 392 + [] - type VkPhysicalDeviceTransformFeedbackPropertiesEXT = + type VkImageViewMinLodCreateInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public maxTransformFeedbackStreams : uint32 - val mutable public maxTransformFeedbackBuffers : uint32 - val mutable public maxTransformFeedbackBufferSize : VkDeviceSize - val mutable public maxTransformFeedbackStreamDataSize : uint32 - val mutable public maxTransformFeedbackBufferDataSize : uint32 - val mutable public maxTransformFeedbackBufferDataStride : uint32 - val mutable public transformFeedbackQueries : VkBool32 - val mutable public transformFeedbackStreamsLinesTriangles : VkBool32 - val mutable public transformFeedbackRasterizationStreamSelect : VkBool32 - val mutable public transformFeedbackDraw : VkBool32 + val mutable public minLod : float32 - new(pNext : nativeint, maxTransformFeedbackStreams : uint32, maxTransformFeedbackBuffers : uint32, maxTransformFeedbackBufferSize : VkDeviceSize, maxTransformFeedbackStreamDataSize : uint32, maxTransformFeedbackBufferDataSize : uint32, maxTransformFeedbackBufferDataStride : uint32, transformFeedbackQueries : VkBool32, transformFeedbackStreamsLinesTriangles : VkBool32, transformFeedbackRasterizationStreamSelect : VkBool32, transformFeedbackDraw : VkBool32) = + new(pNext : nativeint, minLod : float32) = { - sType = 1000028001u + sType = 1000391001u pNext = pNext - maxTransformFeedbackStreams = maxTransformFeedbackStreams - maxTransformFeedbackBuffers = maxTransformFeedbackBuffers - maxTransformFeedbackBufferSize = maxTransformFeedbackBufferSize - maxTransformFeedbackStreamDataSize = maxTransformFeedbackStreamDataSize - maxTransformFeedbackBufferDataSize = maxTransformFeedbackBufferDataSize - maxTransformFeedbackBufferDataStride = maxTransformFeedbackBufferDataStride - transformFeedbackQueries = transformFeedbackQueries - transformFeedbackStreamsLinesTriangles = transformFeedbackStreamsLinesTriangles - transformFeedbackRasterizationStreamSelect = transformFeedbackRasterizationStreamSelect - transformFeedbackDraw = transformFeedbackDraw + minLod = minLod } - new(maxTransformFeedbackStreams : uint32, maxTransformFeedbackBuffers : uint32, maxTransformFeedbackBufferSize : VkDeviceSize, maxTransformFeedbackStreamDataSize : uint32, maxTransformFeedbackBufferDataSize : uint32, maxTransformFeedbackBufferDataStride : uint32, transformFeedbackQueries : VkBool32, transformFeedbackStreamsLinesTriangles : VkBool32, transformFeedbackRasterizationStreamSelect : VkBool32, transformFeedbackDraw : VkBool32) = - VkPhysicalDeviceTransformFeedbackPropertiesEXT(Unchecked.defaultof, maxTransformFeedbackStreams, maxTransformFeedbackBuffers, maxTransformFeedbackBufferSize, maxTransformFeedbackStreamDataSize, maxTransformFeedbackBufferDataSize, maxTransformFeedbackBufferDataStride, transformFeedbackQueries, transformFeedbackStreamsLinesTriangles, transformFeedbackRasterizationStreamSelect, transformFeedbackDraw) + new(minLod : float32) = + VkImageViewMinLodCreateInfoEXT(Unchecked.defaultof, minLod) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.maxTransformFeedbackStreams = Unchecked.defaultof && x.maxTransformFeedbackBuffers = Unchecked.defaultof && x.maxTransformFeedbackBufferSize = Unchecked.defaultof && x.maxTransformFeedbackStreamDataSize = Unchecked.defaultof && x.maxTransformFeedbackBufferDataSize = Unchecked.defaultof && x.maxTransformFeedbackBufferDataStride = Unchecked.defaultof && x.transformFeedbackQueries = Unchecked.defaultof && x.transformFeedbackStreamsLinesTriangles = Unchecked.defaultof && x.transformFeedbackRasterizationStreamSelect = Unchecked.defaultof && x.transformFeedbackDraw = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.minLod = Unchecked.defaultof static member Empty = - VkPhysicalDeviceTransformFeedbackPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkImageViewMinLodCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "maxTransformFeedbackStreams = %A" x.maxTransformFeedbackStreams - sprintf "maxTransformFeedbackBuffers = %A" x.maxTransformFeedbackBuffers - sprintf "maxTransformFeedbackBufferSize = %A" x.maxTransformFeedbackBufferSize - sprintf "maxTransformFeedbackStreamDataSize = %A" x.maxTransformFeedbackStreamDataSize - sprintf "maxTransformFeedbackBufferDataSize = %A" x.maxTransformFeedbackBufferDataSize - sprintf "maxTransformFeedbackBufferDataStride = %A" x.maxTransformFeedbackBufferDataStride - sprintf "transformFeedbackQueries = %A" x.transformFeedbackQueries - sprintf "transformFeedbackStreamsLinesTriangles = %A" x.transformFeedbackStreamsLinesTriangles - sprintf "transformFeedbackRasterizationStreamSelect = %A" x.transformFeedbackRasterizationStreamSelect - sprintf "transformFeedbackDraw = %A" x.transformFeedbackDraw - ] |> sprintf "VkPhysicalDeviceTransformFeedbackPropertiesEXT { %s }" + sprintf "minLod = %A" x.minLod + ] |> sprintf "VkImageViewMinLodCreateInfoEXT { %s }" end [] - type VkPipelineRasterizationStateStreamCreateInfoEXT = + type VkPhysicalDeviceImageViewMinLodFeaturesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public flags : VkPipelineRasterizationStateStreamCreateFlagsEXT - val mutable public rasterizationStream : uint32 + val mutable public minLod : VkBool32 - new(pNext : nativeint, flags : VkPipelineRasterizationStateStreamCreateFlagsEXT, rasterizationStream : uint32) = + new(pNext : nativeint, minLod : VkBool32) = { - sType = 1000028002u + sType = 1000391000u pNext = pNext - flags = flags - rasterizationStream = rasterizationStream + minLod = minLod } - new(flags : VkPipelineRasterizationStateStreamCreateFlagsEXT, rasterizationStream : uint32) = - VkPipelineRasterizationStateStreamCreateInfoEXT(Unchecked.defaultof, flags, rasterizationStream) + new(minLod : VkBool32) = + VkPhysicalDeviceImageViewMinLodFeaturesEXT(Unchecked.defaultof, minLod) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.rasterizationStream = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.minLod = Unchecked.defaultof static member Empty = - VkPipelineRasterizationStateStreamCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceImageViewMinLodFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "flags = %A" x.flags - sprintf "rasterizationStream = %A" x.rasterizationStream - ] |> sprintf "VkPipelineRasterizationStateStreamCreateInfoEXT { %s }" + sprintf "minLod = %A" x.minLod + ] |> sprintf "VkPhysicalDeviceImageViewMinLodFeaturesEXT { %s }" end - [] - module EnumExtensions = - type VkAccessFlags with - static member inline TransformFeedbackWriteBitExt = unbox 0x02000000 - static member inline TransformFeedbackCounterReadBitExt = unbox 0x04000000 - static member inline TransformFeedbackCounterWriteBitExt = unbox 0x08000000 - type VkBufferUsageFlags with - static member inline TransformFeedbackBufferBitExt = unbox 0x00000800 - static member inline TransformFeedbackCounterBufferBitExt = unbox 0x00001000 - type VkPipelineStageFlags with - static member inline TransformFeedbackBitExt = unbox 0x01000000 - type VkQueryType with - static member inline TransformFeedbackStreamExt = unbox 1000028004 - - module VkRaw = - [] - type VkCmdBindTransformFeedbackBuffersEXTDel = delegate of VkCommandBuffer * uint32 * uint32 * nativeptr * nativeptr * nativeptr -> unit - [] - type VkCmdBeginTransformFeedbackEXTDel = delegate of VkCommandBuffer * uint32 * uint32 * nativeptr * nativeptr -> unit - [] - type VkCmdEndTransformFeedbackEXTDel = delegate of VkCommandBuffer * uint32 * uint32 * nativeptr * nativeptr -> unit - [] - type VkCmdBeginQueryIndexedEXTDel = delegate of VkCommandBuffer * VkQueryPool * uint32 * VkQueryControlFlags * uint32 -> unit - [] - type VkCmdEndQueryIndexedEXTDel = delegate of VkCommandBuffer * VkQueryPool * uint32 * uint32 -> unit - [] - type VkCmdDrawIndirectByteCountEXTDel = delegate of VkCommandBuffer * uint32 * uint32 * VkBuffer * VkDeviceSize * uint32 * uint32 -> unit - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading EXTTransformFeedback") - static let s_vkCmdBindTransformFeedbackBuffersEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdBindTransformFeedbackBuffersEXT" - static let s_vkCmdBeginTransformFeedbackEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdBeginTransformFeedbackEXT" - static let s_vkCmdEndTransformFeedbackEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdEndTransformFeedbackEXT" - static let s_vkCmdBeginQueryIndexedEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdBeginQueryIndexedEXT" - static let s_vkCmdEndQueryIndexedEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdEndQueryIndexedEXT" - static let s_vkCmdDrawIndirectByteCountEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdDrawIndirectByteCountEXT" - static do Report.End(3) |> ignore - static member vkCmdBindTransformFeedbackBuffersEXT = s_vkCmdBindTransformFeedbackBuffersEXTDel - static member vkCmdBeginTransformFeedbackEXT = s_vkCmdBeginTransformFeedbackEXTDel - static member vkCmdEndTransformFeedbackEXT = s_vkCmdEndTransformFeedbackEXTDel - static member vkCmdBeginQueryIndexedEXT = s_vkCmdBeginQueryIndexedEXTDel - static member vkCmdEndQueryIndexedEXT = s_vkCmdEndQueryIndexedEXTDel - static member vkCmdDrawIndirectByteCountEXT = s_vkCmdDrawIndirectByteCountEXTDel - let vkCmdBindTransformFeedbackBuffersEXT(commandBuffer : VkCommandBuffer, firstBinding : uint32, bindingCount : uint32, pBuffers : nativeptr, pOffsets : nativeptr, pSizes : nativeptr) = Loader.vkCmdBindTransformFeedbackBuffersEXT.Invoke(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) - let vkCmdBeginTransformFeedbackEXT(commandBuffer : VkCommandBuffer, firstCounterBuffer : uint32, counterBufferCount : uint32, pCounterBuffers : nativeptr, pCounterBufferOffsets : nativeptr) = Loader.vkCmdBeginTransformFeedbackEXT.Invoke(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) - let vkCmdEndTransformFeedbackEXT(commandBuffer : VkCommandBuffer, firstCounterBuffer : uint32, counterBufferCount : uint32, pCounterBuffers : nativeptr, pCounterBufferOffsets : nativeptr) = Loader.vkCmdEndTransformFeedbackEXT.Invoke(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) - let vkCmdBeginQueryIndexedEXT(commandBuffer : VkCommandBuffer, queryPool : VkQueryPool, query : uint32, flags : VkQueryControlFlags, index : uint32) = Loader.vkCmdBeginQueryIndexedEXT.Invoke(commandBuffer, queryPool, query, flags, index) - let vkCmdEndQueryIndexedEXT(commandBuffer : VkCommandBuffer, queryPool : VkQueryPool, query : uint32, index : uint32) = Loader.vkCmdEndQueryIndexedEXT.Invoke(commandBuffer, queryPool, query, index) - let vkCmdDrawIndirectByteCountEXT(commandBuffer : VkCommandBuffer, instanceCount : uint32, firstInstance : uint32, counterBuffer : VkBuffer, counterBufferOffset : VkDeviceSize, counterOffset : uint32, vertexStride : uint32) = Loader.vkCmdDrawIndirectByteCountEXT.Invoke(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) - -module EXTPrimitivesGeneratedQuery = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open EXTTransformFeedback - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_EXT_primitives_generated_query" - let Number = 383 - - let Required = [ EXTTransformFeedback.Name ] +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module KHRIndexTypeUint8 = + let Type = ExtensionType.Device + let Name = "VK_KHR_index_type_uint8" + let Number = 534 [] - type VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT = + type VkPhysicalDeviceIndexTypeUint8FeaturesKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public primitivesGeneratedQuery : VkBool32 - val mutable public primitivesGeneratedQueryWithRasterizerDiscard : VkBool32 - val mutable public primitivesGeneratedQueryWithNonZeroStreams : VkBool32 + val mutable public indexTypeUint8 : VkBool32 - new(pNext : nativeint, primitivesGeneratedQuery : VkBool32, primitivesGeneratedQueryWithRasterizerDiscard : VkBool32, primitivesGeneratedQueryWithNonZeroStreams : VkBool32) = + new(pNext : nativeint, indexTypeUint8 : VkBool32) = { - sType = 1000382000u + sType = 1000265000u pNext = pNext - primitivesGeneratedQuery = primitivesGeneratedQuery - primitivesGeneratedQueryWithRasterizerDiscard = primitivesGeneratedQueryWithRasterizerDiscard - primitivesGeneratedQueryWithNonZeroStreams = primitivesGeneratedQueryWithNonZeroStreams + indexTypeUint8 = indexTypeUint8 } - new(primitivesGeneratedQuery : VkBool32, primitivesGeneratedQueryWithRasterizerDiscard : VkBool32, primitivesGeneratedQueryWithNonZeroStreams : VkBool32) = - VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT(Unchecked.defaultof, primitivesGeneratedQuery, primitivesGeneratedQueryWithRasterizerDiscard, primitivesGeneratedQueryWithNonZeroStreams) + new(indexTypeUint8 : VkBool32) = + VkPhysicalDeviceIndexTypeUint8FeaturesKHR(Unchecked.defaultof, indexTypeUint8) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.primitivesGeneratedQuery = Unchecked.defaultof && x.primitivesGeneratedQueryWithRasterizerDiscard = Unchecked.defaultof && x.primitivesGeneratedQueryWithNonZeroStreams = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.indexTypeUint8 = Unchecked.defaultof static member Empty = - VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceIndexTypeUint8FeaturesKHR(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "primitivesGeneratedQuery = %A" x.primitivesGeneratedQuery - sprintf "primitivesGeneratedQueryWithRasterizerDiscard = %A" x.primitivesGeneratedQueryWithRasterizerDiscard - sprintf "primitivesGeneratedQueryWithNonZeroStreams = %A" x.primitivesGeneratedQueryWithNonZeroStreams - ] |> sprintf "VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT { %s }" + sprintf "indexTypeUint8 = %A" x.indexTypeUint8 + ] |> sprintf "VkPhysicalDeviceIndexTypeUint8FeaturesKHR { %s }" end [] module EnumExtensions = - type VkQueryType with - static member inline PrimitivesGeneratedExt = unbox 1000382000 - + type VkIndexType with + static member inline Uint8Khr = unbox 1000265000 -module EXTPrivateData = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_EXT_private_data" - let Number = 296 +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +/// Promoted to KHRIndexTypeUint8. +module EXTIndexTypeUint8 = + let Type = ExtensionType.Device + let Name = "VK_EXT_index_type_uint8" + let Number = 266 - type VkPrivateDataSlotEXT = VkPrivateDataSlot - type VkPrivateDataSlotCreateFlagsEXT = VkPrivateDataSlotCreateFlags + type VkPhysicalDeviceIndexTypeUint8FeaturesEXT = KHRIndexTypeUint8.VkPhysicalDeviceIndexTypeUint8FeaturesKHR - type VkDevicePrivateDataCreateInfoEXT = VkDevicePrivateDataCreateInfo - type VkPhysicalDevicePrivateDataFeaturesEXT = VkPhysicalDevicePrivateDataFeatures + [] + module EnumExtensions = + type VkIndexType with + static member inline Uint8Ext = unbox 1000265000 - type VkPrivateDataSlotCreateInfoEXT = VkPrivateDataSlotCreateInfo +/// Requires (KHRGetPhysicalDeviceProperties2, KHRMaintenance1) | Vulkan11. +/// Promoted to Vulkan13. +module EXTInlineUniformBlock = + let Type = ExtensionType.Device + let Name = "VK_EXT_inline_uniform_block" + let Number = 139 - [] - module EnumExtensions = - type VkObjectType with - static member inline PrivateDataSlotExt = unbox 1000295000 + type VkDescriptorPoolInlineUniformBlockCreateInfoEXT = Vulkan13.VkDescriptorPoolInlineUniformBlockCreateInfo - module VkRaw = - [] - type VkCreatePrivateDataSlotEXTDel = delegate of VkDevice * nativeptr * nativeptr * nativeptr -> VkResult - [] - type VkDestroyPrivateDataSlotEXTDel = delegate of VkDevice * VkPrivateDataSlot * nativeptr -> unit - [] - type VkSetPrivateDataEXTDel = delegate of VkDevice * VkObjectType * uint64 * VkPrivateDataSlot * uint64 -> VkResult - [] - type VkGetPrivateDataEXTDel = delegate of VkDevice * VkObjectType * uint64 * VkPrivateDataSlot * nativeptr -> unit + type VkPhysicalDeviceInlineUniformBlockFeaturesEXT = Vulkan13.VkPhysicalDeviceInlineUniformBlockFeatures - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading EXTPrivateData") - static let s_vkCreatePrivateDataSlotEXTDel = VkRaw.vkImportInstanceDelegate "vkCreatePrivateDataSlotEXT" - static let s_vkDestroyPrivateDataSlotEXTDel = VkRaw.vkImportInstanceDelegate "vkDestroyPrivateDataSlotEXT" - static let s_vkSetPrivateDataEXTDel = VkRaw.vkImportInstanceDelegate "vkSetPrivateDataEXT" - static let s_vkGetPrivateDataEXTDel = VkRaw.vkImportInstanceDelegate "vkGetPrivateDataEXT" - static do Report.End(3) |> ignore - static member vkCreatePrivateDataSlotEXT = s_vkCreatePrivateDataSlotEXTDel - static member vkDestroyPrivateDataSlotEXT = s_vkDestroyPrivateDataSlotEXTDel - static member vkSetPrivateDataEXT = s_vkSetPrivateDataEXTDel - static member vkGetPrivateDataEXT = s_vkGetPrivateDataEXTDel - let vkCreatePrivateDataSlotEXT(device : VkDevice, pCreateInfo : nativeptr, pAllocator : nativeptr, pPrivateDataSlot : nativeptr) = Loader.vkCreatePrivateDataSlotEXT.Invoke(device, pCreateInfo, pAllocator, pPrivateDataSlot) - let vkDestroyPrivateDataSlotEXT(device : VkDevice, privateDataSlot : VkPrivateDataSlot, pAllocator : nativeptr) = Loader.vkDestroyPrivateDataSlotEXT.Invoke(device, privateDataSlot, pAllocator) - let vkSetPrivateDataEXT(device : VkDevice, objectType : VkObjectType, objectHandle : uint64, privateDataSlot : VkPrivateDataSlot, data : uint64) = Loader.vkSetPrivateDataEXT.Invoke(device, objectType, objectHandle, privateDataSlot, data) - let vkGetPrivateDataEXT(device : VkDevice, objectType : VkObjectType, objectHandle : uint64, privateDataSlot : VkPrivateDataSlot, pData : nativeptr) = Loader.vkGetPrivateDataEXT.Invoke(device, objectType, objectHandle, privateDataSlot, pData) + type VkPhysicalDeviceInlineUniformBlockPropertiesEXT = Vulkan13.VkPhysicalDeviceInlineUniformBlockProperties -module EXTProvokingVertex = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_EXT_provoking_vertex" - let Number = 255 + type VkWriteDescriptorSetInlineUniformBlockEXT = Vulkan13.VkWriteDescriptorSetInlineUniformBlock - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] + [] + module EnumExtensions = + type VkDescriptorType with + static member inline InlineUniformBlockExt = unbox 1000138000 - type VkProvokingVertexModeEXT = - | FirstVertex = 0 - | LastVertex = 1 +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module EXTLegacyDithering = + let Type = ExtensionType.Device + let Name = "VK_EXT_legacy_dithering" + let Number = 466 [] - type VkPhysicalDeviceProvokingVertexFeaturesEXT = + type VkPhysicalDeviceLegacyDitheringFeaturesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public provokingVertexLast : VkBool32 - val mutable public transformFeedbackPreservesProvokingVertex : VkBool32 + val mutable public legacyDithering : VkBool32 - new(pNext : nativeint, provokingVertexLast : VkBool32, transformFeedbackPreservesProvokingVertex : VkBool32) = + new(pNext : nativeint, legacyDithering : VkBool32) = { - sType = 1000254000u + sType = 1000465000u pNext = pNext - provokingVertexLast = provokingVertexLast - transformFeedbackPreservesProvokingVertex = transformFeedbackPreservesProvokingVertex + legacyDithering = legacyDithering } - new(provokingVertexLast : VkBool32, transformFeedbackPreservesProvokingVertex : VkBool32) = - VkPhysicalDeviceProvokingVertexFeaturesEXT(Unchecked.defaultof, provokingVertexLast, transformFeedbackPreservesProvokingVertex) + new(legacyDithering : VkBool32) = + VkPhysicalDeviceLegacyDitheringFeaturesEXT(Unchecked.defaultof, legacyDithering) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.provokingVertexLast = Unchecked.defaultof && x.transformFeedbackPreservesProvokingVertex = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.legacyDithering = Unchecked.defaultof static member Empty = - VkPhysicalDeviceProvokingVertexFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceLegacyDitheringFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "provokingVertexLast = %A" x.provokingVertexLast - sprintf "transformFeedbackPreservesProvokingVertex = %A" x.transformFeedbackPreservesProvokingVertex - ] |> sprintf "VkPhysicalDeviceProvokingVertexFeaturesEXT { %s }" + sprintf "legacyDithering = %A" x.legacyDithering + ] |> sprintf "VkPhysicalDeviceLegacyDitheringFeaturesEXT { %s }" end + + [] + module EnumExtensions = + type VkSubpassDescriptionFlags with + static member inline EnableLegacyDitheringBitExt = unbox 0x00000080 + + + [] + module ``KHRDynamicRendering | Vulkan13`` = + [] + module EnumExtensions = + type Vulkan13.VkRenderingFlags with + static member inline EnableLegacyDitheringBitExt = unbox 0x00000008 + + +module KHRLoadStoreOpNone = + let Type = ExtensionType.Device + let Name = "VK_KHR_load_store_op_none" + let Number = 527 + + [] + module EnumExtensions = + type VkAttachmentLoadOp with + static member inline NoneKhr = unbox 1000400000 + type VkAttachmentStoreOp with + static member inline NoneKhr = unbox 1000301000 + + +/// Promoted to KHRLoadStoreOpNone. +module EXTLoadStoreOpNone = + let Type = ExtensionType.Device + let Name = "VK_EXT_load_store_op_none" + let Number = 401 + + [] + module EnumExtensions = + type VkAttachmentLoadOp with + static member inline NoneExt = unbox 1000400000 + type VkAttachmentStoreOp with + static member inline NoneExt = unbox 1000301000 + + +module KHRMapMemory2 = + let Type = ExtensionType.Device + let Name = "VK_KHR_map_memory2" + let Number = 272 + + [] + type VkMemoryUnmapFlagsKHR = + | All = 0 + | None = 0 + + [] - type VkPhysicalDeviceProvokingVertexPropertiesEXT = + type VkMemoryMapInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public provokingVertexModePerPipeline : VkBool32 - val mutable public transformFeedbackPreservesTriangleFanProvokingVertex : VkBool32 + val mutable public flags : VkMemoryMapFlags + val mutable public memory : VkDeviceMemory + val mutable public offset : VkDeviceSize + val mutable public size : VkDeviceSize - new(pNext : nativeint, provokingVertexModePerPipeline : VkBool32, transformFeedbackPreservesTriangleFanProvokingVertex : VkBool32) = + new(pNext : nativeint, flags : VkMemoryMapFlags, memory : VkDeviceMemory, offset : VkDeviceSize, size : VkDeviceSize) = { - sType = 1000254002u + sType = 1000271000u pNext = pNext - provokingVertexModePerPipeline = provokingVertexModePerPipeline - transformFeedbackPreservesTriangleFanProvokingVertex = transformFeedbackPreservesTriangleFanProvokingVertex + flags = flags + memory = memory + offset = offset + size = size } - new(provokingVertexModePerPipeline : VkBool32, transformFeedbackPreservesTriangleFanProvokingVertex : VkBool32) = - VkPhysicalDeviceProvokingVertexPropertiesEXT(Unchecked.defaultof, provokingVertexModePerPipeline, transformFeedbackPreservesTriangleFanProvokingVertex) + new(flags : VkMemoryMapFlags, memory : VkDeviceMemory, offset : VkDeviceSize, size : VkDeviceSize) = + VkMemoryMapInfoKHR(Unchecked.defaultof, flags, memory, offset, size) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.provokingVertexModePerPipeline = Unchecked.defaultof && x.transformFeedbackPreservesTriangleFanProvokingVertex = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.memory = Unchecked.defaultof && x.offset = Unchecked.defaultof && x.size = Unchecked.defaultof static member Empty = - VkPhysicalDeviceProvokingVertexPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkMemoryMapInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "provokingVertexModePerPipeline = %A" x.provokingVertexModePerPipeline - sprintf "transformFeedbackPreservesTriangleFanProvokingVertex = %A" x.transformFeedbackPreservesTriangleFanProvokingVertex - ] |> sprintf "VkPhysicalDeviceProvokingVertexPropertiesEXT { %s }" + sprintf "flags = %A" x.flags + sprintf "memory = %A" x.memory + sprintf "offset = %A" x.offset + sprintf "size = %A" x.size + ] |> sprintf "VkMemoryMapInfoKHR { %s }" end [] - type VkPipelineRasterizationProvokingVertexStateCreateInfoEXT = + type VkMemoryUnmapInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public provokingVertexMode : VkProvokingVertexModeEXT + val mutable public flags : VkMemoryUnmapFlagsKHR + val mutable public memory : VkDeviceMemory - new(pNext : nativeint, provokingVertexMode : VkProvokingVertexModeEXT) = + new(pNext : nativeint, flags : VkMemoryUnmapFlagsKHR, memory : VkDeviceMemory) = { - sType = 1000254001u + sType = 1000271001u pNext = pNext - provokingVertexMode = provokingVertexMode + flags = flags + memory = memory } - new(provokingVertexMode : VkProvokingVertexModeEXT) = - VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(Unchecked.defaultof, provokingVertexMode) + new(flags : VkMemoryUnmapFlagsKHR, memory : VkDeviceMemory) = + VkMemoryUnmapInfoKHR(Unchecked.defaultof, flags, memory) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.provokingVertexMode = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.memory = Unchecked.defaultof static member Empty = - VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof) + VkMemoryUnmapInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "provokingVertexMode = %A" x.provokingVertexMode - ] |> sprintf "VkPipelineRasterizationProvokingVertexStateCreateInfoEXT { %s }" + sprintf "flags = %A" x.flags + sprintf "memory = %A" x.memory + ] |> sprintf "VkMemoryUnmapInfoKHR { %s }" end + module VkRaw = + [] + type VkMapMemory2KHRDel = delegate of VkDevice * nativeptr * nativeptr -> VkResult + [] + type VkUnmapMemory2KHRDel = delegate of VkDevice * nativeptr -> VkResult -module EXTRgba10x6Formats = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open EXTDebugReport - open KHRBindMemory2 - open KHRGetMemoryRequirements2 - open KHRGetPhysicalDeviceProperties2 - open KHRMaintenance1 - open KHRSamplerYcbcrConversion - let Name = "VK_EXT_rgba10x6_formats" - let Number = 345 - - let Required = [ KHRSamplerYcbcrConversion.Name ] + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRMapMemory2") + static let s_vkMapMemory2KHRDel = VkRaw.vkImportInstanceDelegate "vkMapMemory2KHR" + static let s_vkUnmapMemory2KHRDel = VkRaw.vkImportInstanceDelegate "vkUnmapMemory2KHR" + static do Report.End(3) |> ignore + static member vkMapMemory2KHR = s_vkMapMemory2KHRDel + static member vkUnmapMemory2KHR = s_vkUnmapMemory2KHRDel + let vkMapMemory2KHR(device : VkDevice, pMemoryMapInfo : nativeptr, ppData : nativeptr) = Loader.vkMapMemory2KHR.Invoke(device, pMemoryMapInfo, ppData) + let vkUnmapMemory2KHR(device : VkDevice, pMemoryUnmapInfo : nativeptr) = Loader.vkUnmapMemory2KHR.Invoke(device, pMemoryUnmapInfo) +/// Requires KHRMapMemory2. +module EXTMapMemoryPlaced = + let Type = ExtensionType.Device + let Name = "VK_EXT_map_memory_placed" + let Number = 273 [] - type VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT = + type VkMemoryMapPlacedInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public formatRgba10x6WithoutYCbCrSampler : VkBool32 + val mutable public pPlacedAddress : nativeint - new(pNext : nativeint, formatRgba10x6WithoutYCbCrSampler : VkBool32) = + new(pNext : nativeint, pPlacedAddress : nativeint) = { - sType = 1000344000u + sType = 1000272002u pNext = pNext - formatRgba10x6WithoutYCbCrSampler = formatRgba10x6WithoutYCbCrSampler + pPlacedAddress = pPlacedAddress } - new(formatRgba10x6WithoutYCbCrSampler : VkBool32) = - VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT(Unchecked.defaultof, formatRgba10x6WithoutYCbCrSampler) + new(pPlacedAddress : nativeint) = + VkMemoryMapPlacedInfoEXT(Unchecked.defaultof, pPlacedAddress) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.formatRgba10x6WithoutYCbCrSampler = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.pPlacedAddress = Unchecked.defaultof static member Empty = - VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) + VkMemoryMapPlacedInfoEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "formatRgba10x6WithoutYCbCrSampler = %A" x.formatRgba10x6WithoutYCbCrSampler - ] |> sprintf "VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT { %s }" + sprintf "pPlacedAddress = %A" x.pPlacedAddress + ] |> sprintf "VkMemoryMapPlacedInfoEXT { %s }" end - - -module EXTRobustness2 = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_EXT_robustness2" - let Number = 287 - - [] - type VkPhysicalDeviceRobustness2FeaturesEXT = + type VkPhysicalDeviceMapMemoryPlacedFeaturesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public robustBufferAccess2 : VkBool32 - val mutable public robustImageAccess2 : VkBool32 - val mutable public nullDescriptor : VkBool32 + val mutable public memoryMapPlaced : VkBool32 + val mutable public memoryMapRangePlaced : VkBool32 + val mutable public memoryUnmapReserve : VkBool32 - new(pNext : nativeint, robustBufferAccess2 : VkBool32, robustImageAccess2 : VkBool32, nullDescriptor : VkBool32) = + new(pNext : nativeint, memoryMapPlaced : VkBool32, memoryMapRangePlaced : VkBool32, memoryUnmapReserve : VkBool32) = { - sType = 1000286000u + sType = 1000272000u pNext = pNext - robustBufferAccess2 = robustBufferAccess2 - robustImageAccess2 = robustImageAccess2 - nullDescriptor = nullDescriptor + memoryMapPlaced = memoryMapPlaced + memoryMapRangePlaced = memoryMapRangePlaced + memoryUnmapReserve = memoryUnmapReserve } - new(robustBufferAccess2 : VkBool32, robustImageAccess2 : VkBool32, nullDescriptor : VkBool32) = - VkPhysicalDeviceRobustness2FeaturesEXT(Unchecked.defaultof, robustBufferAccess2, robustImageAccess2, nullDescriptor) + new(memoryMapPlaced : VkBool32, memoryMapRangePlaced : VkBool32, memoryUnmapReserve : VkBool32) = + VkPhysicalDeviceMapMemoryPlacedFeaturesEXT(Unchecked.defaultof, memoryMapPlaced, memoryMapRangePlaced, memoryUnmapReserve) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.robustBufferAccess2 = Unchecked.defaultof && x.robustImageAccess2 = Unchecked.defaultof && x.nullDescriptor = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.memoryMapPlaced = Unchecked.defaultof && x.memoryMapRangePlaced = Unchecked.defaultof && x.memoryUnmapReserve = Unchecked.defaultof static member Empty = - VkPhysicalDeviceRobustness2FeaturesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceMapMemoryPlacedFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "robustBufferAccess2 = %A" x.robustBufferAccess2 - sprintf "robustImageAccess2 = %A" x.robustImageAccess2 - sprintf "nullDescriptor = %A" x.nullDescriptor - ] |> sprintf "VkPhysicalDeviceRobustness2FeaturesEXT { %s }" + sprintf "memoryMapPlaced = %A" x.memoryMapPlaced + sprintf "memoryMapRangePlaced = %A" x.memoryMapRangePlaced + sprintf "memoryUnmapReserve = %A" x.memoryUnmapReserve + ] |> sprintf "VkPhysicalDeviceMapMemoryPlacedFeaturesEXT { %s }" end [] - type VkPhysicalDeviceRobustness2PropertiesEXT = + type VkPhysicalDeviceMapMemoryPlacedPropertiesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public robustStorageBufferAccessSizeAlignment : VkDeviceSize - val mutable public robustUniformBufferAccessSizeAlignment : VkDeviceSize + val mutable public minPlacedMemoryMapAlignment : VkDeviceSize - new(pNext : nativeint, robustStorageBufferAccessSizeAlignment : VkDeviceSize, robustUniformBufferAccessSizeAlignment : VkDeviceSize) = + new(pNext : nativeint, minPlacedMemoryMapAlignment : VkDeviceSize) = { - sType = 1000286001u + sType = 1000272001u pNext = pNext - robustStorageBufferAccessSizeAlignment = robustStorageBufferAccessSizeAlignment - robustUniformBufferAccessSizeAlignment = robustUniformBufferAccessSizeAlignment + minPlacedMemoryMapAlignment = minPlacedMemoryMapAlignment } - new(robustStorageBufferAccessSizeAlignment : VkDeviceSize, robustUniformBufferAccessSizeAlignment : VkDeviceSize) = - VkPhysicalDeviceRobustness2PropertiesEXT(Unchecked.defaultof, robustStorageBufferAccessSizeAlignment, robustUniformBufferAccessSizeAlignment) + new(minPlacedMemoryMapAlignment : VkDeviceSize) = + VkPhysicalDeviceMapMemoryPlacedPropertiesEXT(Unchecked.defaultof, minPlacedMemoryMapAlignment) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.robustStorageBufferAccessSizeAlignment = Unchecked.defaultof && x.robustUniformBufferAccessSizeAlignment = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.minPlacedMemoryMapAlignment = Unchecked.defaultof static member Empty = - VkPhysicalDeviceRobustness2PropertiesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceMapMemoryPlacedPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "robustStorageBufferAccessSizeAlignment = %A" x.robustStorageBufferAccessSizeAlignment - sprintf "robustUniformBufferAccessSizeAlignment = %A" x.robustUniformBufferAccessSizeAlignment - ] |> sprintf "VkPhysicalDeviceRobustness2PropertiesEXT { %s }" + sprintf "minPlacedMemoryMapAlignment = %A" x.minPlacedMemoryMapAlignment + ] |> sprintf "VkPhysicalDeviceMapMemoryPlacedPropertiesEXT { %s }" end + [] + module EnumExtensions = + type VkMemoryMapFlags with + static member inline PlacedBitExt = unbox 0x00000001 + type KHRMapMemory2.VkMemoryUnmapFlagsKHR with + static member inline ReserveBitExt = unbox 0x00000001 -module EXTSampleLocations = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_EXT_sample_locations" - let Number = 144 - - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] - - - [] - type VkSampleLocationEXT = - struct - val mutable public x : float32 - val mutable public y : float32 - - new(x : float32, y : float32) = - { - x = x - y = y - } - - member x.IsEmpty = - x.x = Unchecked.defaultof && x.y = Unchecked.defaultof - - static member Empty = - VkSampleLocationEXT(Unchecked.defaultof, Unchecked.defaultof) - override x.ToString() = - String.concat "; " [ - sprintf "x = %A" x.x - sprintf "y = %A" x.y - ] |> sprintf "VkSampleLocationEXT { %s }" - end +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module EXTMemoryBudget = + let Type = ExtensionType.Device + let Name = "VK_EXT_memory_budget" + let Number = 238 [] - type VkSampleLocationsInfoEXT = + type VkPhysicalDeviceMemoryBudgetPropertiesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public sampleLocationsPerPixel : VkSampleCountFlags - val mutable public sampleLocationGridSize : VkExtent2D - val mutable public sampleLocationsCount : uint32 - val mutable public pSampleLocations : nativeptr + val mutable public heapBudget : VkDeviceSize_16 + val mutable public heapUsage : VkDeviceSize_16 - new(pNext : nativeint, sampleLocationsPerPixel : VkSampleCountFlags, sampleLocationGridSize : VkExtent2D, sampleLocationsCount : uint32, pSampleLocations : nativeptr) = + new(pNext : nativeint, heapBudget : VkDeviceSize_16, heapUsage : VkDeviceSize_16) = { - sType = 1000143000u + sType = 1000237000u pNext = pNext - sampleLocationsPerPixel = sampleLocationsPerPixel - sampleLocationGridSize = sampleLocationGridSize - sampleLocationsCount = sampleLocationsCount - pSampleLocations = pSampleLocations + heapBudget = heapBudget + heapUsage = heapUsage } - new(sampleLocationsPerPixel : VkSampleCountFlags, sampleLocationGridSize : VkExtent2D, sampleLocationsCount : uint32, pSampleLocations : nativeptr) = - VkSampleLocationsInfoEXT(Unchecked.defaultof, sampleLocationsPerPixel, sampleLocationGridSize, sampleLocationsCount, pSampleLocations) + new(heapBudget : VkDeviceSize_16, heapUsage : VkDeviceSize_16) = + VkPhysicalDeviceMemoryBudgetPropertiesEXT(Unchecked.defaultof, heapBudget, heapUsage) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.sampleLocationsPerPixel = Unchecked.defaultof && x.sampleLocationGridSize = Unchecked.defaultof && x.sampleLocationsCount = Unchecked.defaultof && x.pSampleLocations = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.heapBudget = Unchecked.defaultof && x.heapUsage = Unchecked.defaultof static member Empty = - VkSampleLocationsInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + VkPhysicalDeviceMemoryBudgetPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "sampleLocationsPerPixel = %A" x.sampleLocationsPerPixel - sprintf "sampleLocationGridSize = %A" x.sampleLocationGridSize - sprintf "sampleLocationsCount = %A" x.sampleLocationsCount - sprintf "pSampleLocations = %A" x.pSampleLocations - ] |> sprintf "VkSampleLocationsInfoEXT { %s }" + sprintf "heapBudget = %A" x.heapBudget + sprintf "heapUsage = %A" x.heapUsage + ] |> sprintf "VkPhysicalDeviceMemoryBudgetPropertiesEXT { %s }" end - [] - type VkAttachmentSampleLocationsEXT = - struct - val mutable public attachmentIndex : uint32 - val mutable public sampleLocationsInfo : VkSampleLocationsInfoEXT - - new(attachmentIndex : uint32, sampleLocationsInfo : VkSampleLocationsInfoEXT) = - { - attachmentIndex = attachmentIndex - sampleLocationsInfo = sampleLocationsInfo - } - - member x.IsEmpty = - x.attachmentIndex = Unchecked.defaultof && x.sampleLocationsInfo = Unchecked.defaultof - static member Empty = - VkAttachmentSampleLocationsEXT(Unchecked.defaultof, Unchecked.defaultof) - override x.ToString() = - String.concat "; " [ - sprintf "attachmentIndex = %A" x.attachmentIndex - sprintf "sampleLocationsInfo = %A" x.sampleLocationsInfo - ] |> sprintf "VkAttachmentSampleLocationsEXT { %s }" - end +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module EXTMemoryPriority = + let Type = ExtensionType.Device + let Name = "VK_EXT_memory_priority" + let Number = 239 [] - type VkMultisamplePropertiesEXT = + type VkMemoryPriorityAllocateInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public maxSampleLocationGridSize : VkExtent2D + val mutable public priority : float32 - new(pNext : nativeint, maxSampleLocationGridSize : VkExtent2D) = + new(pNext : nativeint, priority : float32) = { - sType = 1000143004u + sType = 1000238001u pNext = pNext - maxSampleLocationGridSize = maxSampleLocationGridSize + priority = priority } - new(maxSampleLocationGridSize : VkExtent2D) = - VkMultisamplePropertiesEXT(Unchecked.defaultof, maxSampleLocationGridSize) + new(priority : float32) = + VkMemoryPriorityAllocateInfoEXT(Unchecked.defaultof, priority) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.maxSampleLocationGridSize = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.priority = Unchecked.defaultof static member Empty = - VkMultisamplePropertiesEXT(Unchecked.defaultof, Unchecked.defaultof) + VkMemoryPriorityAllocateInfoEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "maxSampleLocationGridSize = %A" x.maxSampleLocationGridSize - ] |> sprintf "VkMultisamplePropertiesEXT { %s }" + sprintf "priority = %A" x.priority + ] |> sprintf "VkMemoryPriorityAllocateInfoEXT { %s }" end [] - type VkPhysicalDeviceSampleLocationsPropertiesEXT = + type VkPhysicalDeviceMemoryPriorityFeaturesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public sampleLocationSampleCounts : VkSampleCountFlags - val mutable public maxSampleLocationGridSize : VkExtent2D - val mutable public sampleLocationCoordinateRange : V2f - val mutable public sampleLocationSubPixelBits : uint32 - val mutable public variableSampleLocations : VkBool32 + val mutable public memoryPriority : VkBool32 - new(pNext : nativeint, sampleLocationSampleCounts : VkSampleCountFlags, maxSampleLocationGridSize : VkExtent2D, sampleLocationCoordinateRange : V2f, sampleLocationSubPixelBits : uint32, variableSampleLocations : VkBool32) = + new(pNext : nativeint, memoryPriority : VkBool32) = { - sType = 1000143003u + sType = 1000238000u pNext = pNext - sampleLocationSampleCounts = sampleLocationSampleCounts - maxSampleLocationGridSize = maxSampleLocationGridSize - sampleLocationCoordinateRange = sampleLocationCoordinateRange - sampleLocationSubPixelBits = sampleLocationSubPixelBits - variableSampleLocations = variableSampleLocations + memoryPriority = memoryPriority } - new(sampleLocationSampleCounts : VkSampleCountFlags, maxSampleLocationGridSize : VkExtent2D, sampleLocationCoordinateRange : V2f, sampleLocationSubPixelBits : uint32, variableSampleLocations : VkBool32) = - VkPhysicalDeviceSampleLocationsPropertiesEXT(Unchecked.defaultof, sampleLocationSampleCounts, maxSampleLocationGridSize, sampleLocationCoordinateRange, sampleLocationSubPixelBits, variableSampleLocations) + new(memoryPriority : VkBool32) = + VkPhysicalDeviceMemoryPriorityFeaturesEXT(Unchecked.defaultof, memoryPriority) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.sampleLocationSampleCounts = Unchecked.defaultof && x.maxSampleLocationGridSize = Unchecked.defaultof && x.sampleLocationCoordinateRange = Unchecked.defaultof && x.sampleLocationSubPixelBits = Unchecked.defaultof && x.variableSampleLocations = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.memoryPriority = Unchecked.defaultof static member Empty = - VkPhysicalDeviceSampleLocationsPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceMemoryPriorityFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "sampleLocationSampleCounts = %A" x.sampleLocationSampleCounts - sprintf "maxSampleLocationGridSize = %A" x.maxSampleLocationGridSize - sprintf "sampleLocationCoordinateRange = %A" x.sampleLocationCoordinateRange - sprintf "sampleLocationSubPixelBits = %A" x.sampleLocationSubPixelBits - sprintf "variableSampleLocations = %A" x.variableSampleLocations - ] |> sprintf "VkPhysicalDeviceSampleLocationsPropertiesEXT { %s }" + sprintf "memoryPriority = %A" x.memoryPriority + ] |> sprintf "VkPhysicalDeviceMemoryPriorityFeaturesEXT { %s }" end + + +module EXTMetalObjects = + let Type = ExtensionType.Device + let Name = "VK_EXT_metal_objects" + let Number = 312 + + type MTLDevice_id = nativeint + type MTLCommandQueue_id = nativeint + type MTLBuffer_id = nativeint + type MTLTexture_id = nativeint + type MTLSharedEvent_id = nativeint + type IOSurfaceRef = nativeptr + + [] + type VkExportMetalObjectTypeFlagsEXT = + | All = 63 + | None = 0 + | MetalDeviceBit = 0x00000001 + | MetalCommandQueueBit = 0x00000002 + | MetalBufferBit = 0x00000004 + | MetalTextureBit = 0x00000008 + | MetalIosurfaceBit = 0x00000010 + | MetalSharedEventBit = 0x00000020 + + [] - type VkPipelineSampleLocationsStateCreateInfoEXT = + type VkExportMetalBufferInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public sampleLocationsEnable : VkBool32 - val mutable public sampleLocationsInfo : VkSampleLocationsInfoEXT + val mutable public memory : VkDeviceMemory + val mutable public mtlBuffer : nativeint - new(pNext : nativeint, sampleLocationsEnable : VkBool32, sampleLocationsInfo : VkSampleLocationsInfoEXT) = + new(pNext : nativeint, memory : VkDeviceMemory, mtlBuffer : nativeint) = { - sType = 1000143002u + sType = 1000311004u pNext = pNext - sampleLocationsEnable = sampleLocationsEnable - sampleLocationsInfo = sampleLocationsInfo + memory = memory + mtlBuffer = mtlBuffer } - new(sampleLocationsEnable : VkBool32, sampleLocationsInfo : VkSampleLocationsInfoEXT) = - VkPipelineSampleLocationsStateCreateInfoEXT(Unchecked.defaultof, sampleLocationsEnable, sampleLocationsInfo) + new(memory : VkDeviceMemory, mtlBuffer : nativeint) = + VkExportMetalBufferInfoEXT(Unchecked.defaultof, memory, mtlBuffer) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.sampleLocationsEnable = Unchecked.defaultof && x.sampleLocationsInfo = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.memory = Unchecked.defaultof && x.mtlBuffer = Unchecked.defaultof static member Empty = - VkPipelineSampleLocationsStateCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkExportMetalBufferInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "sampleLocationsEnable = %A" x.sampleLocationsEnable - sprintf "sampleLocationsInfo = %A" x.sampleLocationsInfo - ] |> sprintf "VkPipelineSampleLocationsStateCreateInfoEXT { %s }" + sprintf "memory = %A" x.memory + sprintf "mtlBuffer = %A" x.mtlBuffer + ] |> sprintf "VkExportMetalBufferInfoEXT { %s }" end [] - type VkSubpassSampleLocationsEXT = + type VkExportMetalCommandQueueInfoEXT = struct - val mutable public subpassIndex : uint32 - val mutable public sampleLocationsInfo : VkSampleLocationsInfoEXT + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public queue : VkQueue + val mutable public mtlCommandQueue : nativeint - new(subpassIndex : uint32, sampleLocationsInfo : VkSampleLocationsInfoEXT) = + new(pNext : nativeint, queue : VkQueue, mtlCommandQueue : nativeint) = { - subpassIndex = subpassIndex - sampleLocationsInfo = sampleLocationsInfo + sType = 1000311003u + pNext = pNext + queue = queue + mtlCommandQueue = mtlCommandQueue } + new(queue : VkQueue, mtlCommandQueue : nativeint) = + VkExportMetalCommandQueueInfoEXT(Unchecked.defaultof, queue, mtlCommandQueue) + member x.IsEmpty = - x.subpassIndex = Unchecked.defaultof && x.sampleLocationsInfo = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.queue = Unchecked.defaultof && x.mtlCommandQueue = Unchecked.defaultof static member Empty = - VkSubpassSampleLocationsEXT(Unchecked.defaultof, Unchecked.defaultof) + VkExportMetalCommandQueueInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ - sprintf "subpassIndex = %A" x.subpassIndex - sprintf "sampleLocationsInfo = %A" x.sampleLocationsInfo - ] |> sprintf "VkSubpassSampleLocationsEXT { %s }" + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "queue = %A" x.queue + sprintf "mtlCommandQueue = %A" x.mtlCommandQueue + ] |> sprintf "VkExportMetalCommandQueueInfoEXT { %s }" end [] - type VkRenderPassSampleLocationsBeginInfoEXT = + type VkExportMetalDeviceInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public attachmentInitialSampleLocationsCount : uint32 - val mutable public pAttachmentInitialSampleLocations : nativeptr - val mutable public postSubpassSampleLocationsCount : uint32 - val mutable public pPostSubpassSampleLocations : nativeptr + val mutable public mtlDevice : nativeint - new(pNext : nativeint, attachmentInitialSampleLocationsCount : uint32, pAttachmentInitialSampleLocations : nativeptr, postSubpassSampleLocationsCount : uint32, pPostSubpassSampleLocations : nativeptr) = + new(pNext : nativeint, mtlDevice : nativeint) = { - sType = 1000143001u + sType = 1000311002u pNext = pNext - attachmentInitialSampleLocationsCount = attachmentInitialSampleLocationsCount - pAttachmentInitialSampleLocations = pAttachmentInitialSampleLocations - postSubpassSampleLocationsCount = postSubpassSampleLocationsCount - pPostSubpassSampleLocations = pPostSubpassSampleLocations + mtlDevice = mtlDevice } - new(attachmentInitialSampleLocationsCount : uint32, pAttachmentInitialSampleLocations : nativeptr, postSubpassSampleLocationsCount : uint32, pPostSubpassSampleLocations : nativeptr) = - VkRenderPassSampleLocationsBeginInfoEXT(Unchecked.defaultof, attachmentInitialSampleLocationsCount, pAttachmentInitialSampleLocations, postSubpassSampleLocationsCount, pPostSubpassSampleLocations) + new(mtlDevice : nativeint) = + VkExportMetalDeviceInfoEXT(Unchecked.defaultof, mtlDevice) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.attachmentInitialSampleLocationsCount = Unchecked.defaultof && x.pAttachmentInitialSampleLocations = Unchecked.defaultof> && x.postSubpassSampleLocationsCount = Unchecked.defaultof && x.pPostSubpassSampleLocations = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.mtlDevice = Unchecked.defaultof static member Empty = - VkRenderPassSampleLocationsBeginInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>) + VkExportMetalDeviceInfoEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "attachmentInitialSampleLocationsCount = %A" x.attachmentInitialSampleLocationsCount - sprintf "pAttachmentInitialSampleLocations = %A" x.pAttachmentInitialSampleLocations - sprintf "postSubpassSampleLocationsCount = %A" x.postSubpassSampleLocationsCount - sprintf "pPostSubpassSampleLocations = %A" x.pPostSubpassSampleLocations - ] |> sprintf "VkRenderPassSampleLocationsBeginInfoEXT { %s }" + sprintf "mtlDevice = %A" x.mtlDevice + ] |> sprintf "VkExportMetalDeviceInfoEXT { %s }" end - - [] - module EnumExtensions = - type VkDynamicState with - static member inline SampleLocationsExt = unbox 1000143000 - type VkImageCreateFlags with - static member inline SampleLocationsCompatibleDepthBitExt = unbox 0x00001000 - - module VkRaw = - [] - type VkCmdSetSampleLocationsEXTDel = delegate of VkCommandBuffer * nativeptr -> unit - [] - type VkGetPhysicalDeviceMultisamplePropertiesEXTDel = delegate of VkPhysicalDevice * VkSampleCountFlags * nativeptr -> unit - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading EXTSampleLocations") - static let s_vkCmdSetSampleLocationsEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetSampleLocationsEXT" - static let s_vkGetPhysicalDeviceMultisamplePropertiesEXTDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceMultisamplePropertiesEXT" - static do Report.End(3) |> ignore - static member vkCmdSetSampleLocationsEXT = s_vkCmdSetSampleLocationsEXTDel - static member vkGetPhysicalDeviceMultisamplePropertiesEXT = s_vkGetPhysicalDeviceMultisamplePropertiesEXTDel - let vkCmdSetSampleLocationsEXT(commandBuffer : VkCommandBuffer, pSampleLocationsInfo : nativeptr) = Loader.vkCmdSetSampleLocationsEXT.Invoke(commandBuffer, pSampleLocationsInfo) - let vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice : VkPhysicalDevice, samples : VkSampleCountFlags, pMultisampleProperties : nativeptr) = Loader.vkGetPhysicalDeviceMultisamplePropertiesEXT.Invoke(physicalDevice, samples, pMultisampleProperties) - -module EXTSamplerFilterMinmax = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_EXT_sampler_filter_minmax" - let Number = 131 - - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] - - - type VkSamplerReductionModeEXT = VkSamplerReductionMode - - type VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT = VkPhysicalDeviceSamplerFilterMinmaxProperties - - type VkSamplerReductionModeCreateInfoEXT = VkSamplerReductionModeCreateInfo - - - [] - module EnumExtensions = - type VkFormatFeatureFlags with - static member inline SampledImageFilterMinmaxBitExt = unbox 0x00010000 - type VkSamplerReductionMode with - static member inline WeightedAverageExt = unbox 0 - static member inline MinExt = unbox 1 - static member inline MaxExt = unbox 2 - - -module EXTScalarBlockLayout = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_EXT_scalar_block_layout" - let Number = 222 - - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] - - - type VkPhysicalDeviceScalarBlockLayoutFeaturesEXT = VkPhysicalDeviceScalarBlockLayoutFeatures - - - -module EXTSeparateStencilUsage = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_EXT_separate_stencil_usage" - let Number = 247 - - - type VkImageStencilUsageCreateInfoEXT = VkImageStencilUsageCreateInfo - - - -module EXTShaderAtomicFloat = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_EXT_shader_atomic_float" - let Number = 261 - - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] - - [] - type VkPhysicalDeviceShaderAtomicFloatFeaturesEXT = + type VkExportMetalIOSurfaceInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public shaderBufferFloat32Atomics : VkBool32 - val mutable public shaderBufferFloat32AtomicAdd : VkBool32 - val mutable public shaderBufferFloat64Atomics : VkBool32 - val mutable public shaderBufferFloat64AtomicAdd : VkBool32 - val mutable public shaderSharedFloat32Atomics : VkBool32 - val mutable public shaderSharedFloat32AtomicAdd : VkBool32 - val mutable public shaderSharedFloat64Atomics : VkBool32 - val mutable public shaderSharedFloat64AtomicAdd : VkBool32 - val mutable public shaderImageFloat32Atomics : VkBool32 - val mutable public shaderImageFloat32AtomicAdd : VkBool32 - val mutable public sparseImageFloat32Atomics : VkBool32 - val mutable public sparseImageFloat32AtomicAdd : VkBool32 + val mutable public image : VkImage + val mutable public ioSurface : nativeint - new(pNext : nativeint, shaderBufferFloat32Atomics : VkBool32, shaderBufferFloat32AtomicAdd : VkBool32, shaderBufferFloat64Atomics : VkBool32, shaderBufferFloat64AtomicAdd : VkBool32, shaderSharedFloat32Atomics : VkBool32, shaderSharedFloat32AtomicAdd : VkBool32, shaderSharedFloat64Atomics : VkBool32, shaderSharedFloat64AtomicAdd : VkBool32, shaderImageFloat32Atomics : VkBool32, shaderImageFloat32AtomicAdd : VkBool32, sparseImageFloat32Atomics : VkBool32, sparseImageFloat32AtomicAdd : VkBool32) = + new(pNext : nativeint, image : VkImage, ioSurface : nativeint) = { - sType = 1000260000u + sType = 1000311008u pNext = pNext - shaderBufferFloat32Atomics = shaderBufferFloat32Atomics - shaderBufferFloat32AtomicAdd = shaderBufferFloat32AtomicAdd - shaderBufferFloat64Atomics = shaderBufferFloat64Atomics - shaderBufferFloat64AtomicAdd = shaderBufferFloat64AtomicAdd - shaderSharedFloat32Atomics = shaderSharedFloat32Atomics - shaderSharedFloat32AtomicAdd = shaderSharedFloat32AtomicAdd - shaderSharedFloat64Atomics = shaderSharedFloat64Atomics - shaderSharedFloat64AtomicAdd = shaderSharedFloat64AtomicAdd - shaderImageFloat32Atomics = shaderImageFloat32Atomics - shaderImageFloat32AtomicAdd = shaderImageFloat32AtomicAdd - sparseImageFloat32Atomics = sparseImageFloat32Atomics - sparseImageFloat32AtomicAdd = sparseImageFloat32AtomicAdd + image = image + ioSurface = ioSurface } - new(shaderBufferFloat32Atomics : VkBool32, shaderBufferFloat32AtomicAdd : VkBool32, shaderBufferFloat64Atomics : VkBool32, shaderBufferFloat64AtomicAdd : VkBool32, shaderSharedFloat32Atomics : VkBool32, shaderSharedFloat32AtomicAdd : VkBool32, shaderSharedFloat64Atomics : VkBool32, shaderSharedFloat64AtomicAdd : VkBool32, shaderImageFloat32Atomics : VkBool32, shaderImageFloat32AtomicAdd : VkBool32, sparseImageFloat32Atomics : VkBool32, sparseImageFloat32AtomicAdd : VkBool32) = - VkPhysicalDeviceShaderAtomicFloatFeaturesEXT(Unchecked.defaultof, shaderBufferFloat32Atomics, shaderBufferFloat32AtomicAdd, shaderBufferFloat64Atomics, shaderBufferFloat64AtomicAdd, shaderSharedFloat32Atomics, shaderSharedFloat32AtomicAdd, shaderSharedFloat64Atomics, shaderSharedFloat64AtomicAdd, shaderImageFloat32Atomics, shaderImageFloat32AtomicAdd, sparseImageFloat32Atomics, sparseImageFloat32AtomicAdd) + new(image : VkImage, ioSurface : nativeint) = + VkExportMetalIOSurfaceInfoEXT(Unchecked.defaultof, image, ioSurface) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.shaderBufferFloat32Atomics = Unchecked.defaultof && x.shaderBufferFloat32AtomicAdd = Unchecked.defaultof && x.shaderBufferFloat64Atomics = Unchecked.defaultof && x.shaderBufferFloat64AtomicAdd = Unchecked.defaultof && x.shaderSharedFloat32Atomics = Unchecked.defaultof && x.shaderSharedFloat32AtomicAdd = Unchecked.defaultof && x.shaderSharedFloat64Atomics = Unchecked.defaultof && x.shaderSharedFloat64AtomicAdd = Unchecked.defaultof && x.shaderImageFloat32Atomics = Unchecked.defaultof && x.shaderImageFloat32AtomicAdd = Unchecked.defaultof && x.sparseImageFloat32Atomics = Unchecked.defaultof && x.sparseImageFloat32AtomicAdd = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.image = Unchecked.defaultof && x.ioSurface = Unchecked.defaultof static member Empty = - VkPhysicalDeviceShaderAtomicFloatFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkExportMetalIOSurfaceInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "shaderBufferFloat32Atomics = %A" x.shaderBufferFloat32Atomics - sprintf "shaderBufferFloat32AtomicAdd = %A" x.shaderBufferFloat32AtomicAdd - sprintf "shaderBufferFloat64Atomics = %A" x.shaderBufferFloat64Atomics - sprintf "shaderBufferFloat64AtomicAdd = %A" x.shaderBufferFloat64AtomicAdd - sprintf "shaderSharedFloat32Atomics = %A" x.shaderSharedFloat32Atomics - sprintf "shaderSharedFloat32AtomicAdd = %A" x.shaderSharedFloat32AtomicAdd - sprintf "shaderSharedFloat64Atomics = %A" x.shaderSharedFloat64Atomics - sprintf "shaderSharedFloat64AtomicAdd = %A" x.shaderSharedFloat64AtomicAdd - sprintf "shaderImageFloat32Atomics = %A" x.shaderImageFloat32Atomics - sprintf "shaderImageFloat32AtomicAdd = %A" x.shaderImageFloat32AtomicAdd - sprintf "sparseImageFloat32Atomics = %A" x.sparseImageFloat32Atomics - sprintf "sparseImageFloat32AtomicAdd = %A" x.sparseImageFloat32AtomicAdd - ] |> sprintf "VkPhysicalDeviceShaderAtomicFloatFeaturesEXT { %s }" + sprintf "image = %A" x.image + sprintf "ioSurface = %A" x.ioSurface + ] |> sprintf "VkExportMetalIOSurfaceInfoEXT { %s }" end - - -module EXTShaderAtomicFloat2 = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open EXTShaderAtomicFloat - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_EXT_shader_atomic_float2" - let Number = 274 - - let Required = [ EXTShaderAtomicFloat.Name ] - - [] - type VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT = + type VkExportMetalObjectCreateInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public shaderBufferFloat16Atomics : VkBool32 - val mutable public shaderBufferFloat16AtomicAdd : VkBool32 - val mutable public shaderBufferFloat16AtomicMinMax : VkBool32 - val mutable public shaderBufferFloat32AtomicMinMax : VkBool32 - val mutable public shaderBufferFloat64AtomicMinMax : VkBool32 - val mutable public shaderSharedFloat16Atomics : VkBool32 - val mutable public shaderSharedFloat16AtomicAdd : VkBool32 - val mutable public shaderSharedFloat16AtomicMinMax : VkBool32 - val mutable public shaderSharedFloat32AtomicMinMax : VkBool32 - val mutable public shaderSharedFloat64AtomicMinMax : VkBool32 - val mutable public shaderImageFloat32AtomicMinMax : VkBool32 - val mutable public sparseImageFloat32AtomicMinMax : VkBool32 + val mutable public exportObjectType : VkExportMetalObjectTypeFlagsEXT - new(pNext : nativeint, shaderBufferFloat16Atomics : VkBool32, shaderBufferFloat16AtomicAdd : VkBool32, shaderBufferFloat16AtomicMinMax : VkBool32, shaderBufferFloat32AtomicMinMax : VkBool32, shaderBufferFloat64AtomicMinMax : VkBool32, shaderSharedFloat16Atomics : VkBool32, shaderSharedFloat16AtomicAdd : VkBool32, shaderSharedFloat16AtomicMinMax : VkBool32, shaderSharedFloat32AtomicMinMax : VkBool32, shaderSharedFloat64AtomicMinMax : VkBool32, shaderImageFloat32AtomicMinMax : VkBool32, sparseImageFloat32AtomicMinMax : VkBool32) = + new(pNext : nativeint, exportObjectType : VkExportMetalObjectTypeFlagsEXT) = { - sType = 1000273000u - pNext = pNext - shaderBufferFloat16Atomics = shaderBufferFloat16Atomics - shaderBufferFloat16AtomicAdd = shaderBufferFloat16AtomicAdd - shaderBufferFloat16AtomicMinMax = shaderBufferFloat16AtomicMinMax - shaderBufferFloat32AtomicMinMax = shaderBufferFloat32AtomicMinMax - shaderBufferFloat64AtomicMinMax = shaderBufferFloat64AtomicMinMax - shaderSharedFloat16Atomics = shaderSharedFloat16Atomics - shaderSharedFloat16AtomicAdd = shaderSharedFloat16AtomicAdd - shaderSharedFloat16AtomicMinMax = shaderSharedFloat16AtomicMinMax - shaderSharedFloat32AtomicMinMax = shaderSharedFloat32AtomicMinMax - shaderSharedFloat64AtomicMinMax = shaderSharedFloat64AtomicMinMax - shaderImageFloat32AtomicMinMax = shaderImageFloat32AtomicMinMax - sparseImageFloat32AtomicMinMax = sparseImageFloat32AtomicMinMax + sType = 1000311000u + pNext = pNext + exportObjectType = exportObjectType } - new(shaderBufferFloat16Atomics : VkBool32, shaderBufferFloat16AtomicAdd : VkBool32, shaderBufferFloat16AtomicMinMax : VkBool32, shaderBufferFloat32AtomicMinMax : VkBool32, shaderBufferFloat64AtomicMinMax : VkBool32, shaderSharedFloat16Atomics : VkBool32, shaderSharedFloat16AtomicAdd : VkBool32, shaderSharedFloat16AtomicMinMax : VkBool32, shaderSharedFloat32AtomicMinMax : VkBool32, shaderSharedFloat64AtomicMinMax : VkBool32, shaderImageFloat32AtomicMinMax : VkBool32, sparseImageFloat32AtomicMinMax : VkBool32) = - VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT(Unchecked.defaultof, shaderBufferFloat16Atomics, shaderBufferFloat16AtomicAdd, shaderBufferFloat16AtomicMinMax, shaderBufferFloat32AtomicMinMax, shaderBufferFloat64AtomicMinMax, shaderSharedFloat16Atomics, shaderSharedFloat16AtomicAdd, shaderSharedFloat16AtomicMinMax, shaderSharedFloat32AtomicMinMax, shaderSharedFloat64AtomicMinMax, shaderImageFloat32AtomicMinMax, sparseImageFloat32AtomicMinMax) + new(exportObjectType : VkExportMetalObjectTypeFlagsEXT) = + VkExportMetalObjectCreateInfoEXT(Unchecked.defaultof, exportObjectType) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.shaderBufferFloat16Atomics = Unchecked.defaultof && x.shaderBufferFloat16AtomicAdd = Unchecked.defaultof && x.shaderBufferFloat16AtomicMinMax = Unchecked.defaultof && x.shaderBufferFloat32AtomicMinMax = Unchecked.defaultof && x.shaderBufferFloat64AtomicMinMax = Unchecked.defaultof && x.shaderSharedFloat16Atomics = Unchecked.defaultof && x.shaderSharedFloat16AtomicAdd = Unchecked.defaultof && x.shaderSharedFloat16AtomicMinMax = Unchecked.defaultof && x.shaderSharedFloat32AtomicMinMax = Unchecked.defaultof && x.shaderSharedFloat64AtomicMinMax = Unchecked.defaultof && x.shaderImageFloat32AtomicMinMax = Unchecked.defaultof && x.sparseImageFloat32AtomicMinMax = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.exportObjectType = Unchecked.defaultof static member Empty = - VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkExportMetalObjectCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "shaderBufferFloat16Atomics = %A" x.shaderBufferFloat16Atomics - sprintf "shaderBufferFloat16AtomicAdd = %A" x.shaderBufferFloat16AtomicAdd - sprintf "shaderBufferFloat16AtomicMinMax = %A" x.shaderBufferFloat16AtomicMinMax - sprintf "shaderBufferFloat32AtomicMinMax = %A" x.shaderBufferFloat32AtomicMinMax - sprintf "shaderBufferFloat64AtomicMinMax = %A" x.shaderBufferFloat64AtomicMinMax - sprintf "shaderSharedFloat16Atomics = %A" x.shaderSharedFloat16Atomics - sprintf "shaderSharedFloat16AtomicAdd = %A" x.shaderSharedFloat16AtomicAdd - sprintf "shaderSharedFloat16AtomicMinMax = %A" x.shaderSharedFloat16AtomicMinMax - sprintf "shaderSharedFloat32AtomicMinMax = %A" x.shaderSharedFloat32AtomicMinMax - sprintf "shaderSharedFloat64AtomicMinMax = %A" x.shaderSharedFloat64AtomicMinMax - sprintf "shaderImageFloat32AtomicMinMax = %A" x.shaderImageFloat32AtomicMinMax - sprintf "sparseImageFloat32AtomicMinMax = %A" x.sparseImageFloat32AtomicMinMax - ] |> sprintf "VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT { %s }" + sprintf "exportObjectType = %A" x.exportObjectType + ] |> sprintf "VkExportMetalObjectCreateInfoEXT { %s }" end + [] + type VkExportMetalObjectsInfoEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + new(pNext : nativeint) = + { + sType = 1000311001u + pNext = pNext + } -module EXTShaderDemoteToHelperInvocation = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_EXT_shader_demote_to_helper_invocation" - let Number = 277 + member x.IsEmpty = + x.pNext = Unchecked.defaultof - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] + static member Empty = + VkExportMetalObjectsInfoEXT(Unchecked.defaultof) + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + ] |> sprintf "VkExportMetalObjectsInfoEXT { %s }" + end - type VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures + [] + type VkExportMetalSharedEventInfoEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public semaphore : VkSemaphore + val mutable public event : VkEvent + val mutable public mtlSharedEvent : nativeint + new(pNext : nativeint, semaphore : VkSemaphore, event : VkEvent, mtlSharedEvent : nativeint) = + { + sType = 1000311010u + pNext = pNext + semaphore = semaphore + event = event + mtlSharedEvent = mtlSharedEvent + } + new(semaphore : VkSemaphore, event : VkEvent, mtlSharedEvent : nativeint) = + VkExportMetalSharedEventInfoEXT(Unchecked.defaultof, semaphore, event, mtlSharedEvent) -module EXTShaderImageAtomicInt64 = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_EXT_shader_image_atomic_int64" - let Number = 235 + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.semaphore = Unchecked.defaultof && x.event = Unchecked.defaultof && x.mtlSharedEvent = Unchecked.defaultof - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] + static member Empty = + VkExportMetalSharedEventInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "semaphore = %A" x.semaphore + sprintf "event = %A" x.event + sprintf "mtlSharedEvent = %A" x.mtlSharedEvent + ] |> sprintf "VkExportMetalSharedEventInfoEXT { %s }" + end [] - type VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT = + type VkExportMetalTextureInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public shaderImageInt64Atomics : VkBool32 - val mutable public sparseImageInt64Atomics : VkBool32 + val mutable public image : VkImage + val mutable public imageView : VkImageView + val mutable public bufferView : VkBufferView + val mutable public plane : VkImageAspectFlags + val mutable public mtlTexture : nativeint - new(pNext : nativeint, shaderImageInt64Atomics : VkBool32, sparseImageInt64Atomics : VkBool32) = + new(pNext : nativeint, image : VkImage, imageView : VkImageView, bufferView : VkBufferView, plane : VkImageAspectFlags, mtlTexture : nativeint) = { - sType = 1000234000u + sType = 1000311006u pNext = pNext - shaderImageInt64Atomics = shaderImageInt64Atomics - sparseImageInt64Atomics = sparseImageInt64Atomics + image = image + imageView = imageView + bufferView = bufferView + plane = plane + mtlTexture = mtlTexture } - new(shaderImageInt64Atomics : VkBool32, sparseImageInt64Atomics : VkBool32) = - VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT(Unchecked.defaultof, shaderImageInt64Atomics, sparseImageInt64Atomics) + new(image : VkImage, imageView : VkImageView, bufferView : VkBufferView, plane : VkImageAspectFlags, mtlTexture : nativeint) = + VkExportMetalTextureInfoEXT(Unchecked.defaultof, image, imageView, bufferView, plane, mtlTexture) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.shaderImageInt64Atomics = Unchecked.defaultof && x.sparseImageInt64Atomics = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.image = Unchecked.defaultof && x.imageView = Unchecked.defaultof && x.bufferView = Unchecked.defaultof && x.plane = Unchecked.defaultof && x.mtlTexture = Unchecked.defaultof static member Empty = - VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkExportMetalTextureInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "shaderImageInt64Atomics = %A" x.shaderImageInt64Atomics - sprintf "sparseImageInt64Atomics = %A" x.sparseImageInt64Atomics - ] |> sprintf "VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT { %s }" + sprintf "image = %A" x.image + sprintf "imageView = %A" x.imageView + sprintf "bufferView = %A" x.bufferView + sprintf "plane = %A" x.plane + sprintf "mtlTexture = %A" x.mtlTexture + ] |> sprintf "VkExportMetalTextureInfoEXT { %s }" end - - -module EXTShaderModuleIdentifier = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open EXTPipelineCreationCacheControl - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_EXT_shader_module_identifier" - let Number = 463 - - let Required = [ EXTPipelineCreationCacheControl.Name; KHRGetPhysicalDeviceProperties2.Name ] - - [] - type VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT = + type VkImportMetalBufferInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public shaderModuleIdentifier : VkBool32 + val mutable public mtlBuffer : nativeint - new(pNext : nativeint, shaderModuleIdentifier : VkBool32) = + new(pNext : nativeint, mtlBuffer : nativeint) = { - sType = 1000462000u + sType = 1000311005u pNext = pNext - shaderModuleIdentifier = shaderModuleIdentifier + mtlBuffer = mtlBuffer } - new(shaderModuleIdentifier : VkBool32) = - VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT(Unchecked.defaultof, shaderModuleIdentifier) + new(mtlBuffer : nativeint) = + VkImportMetalBufferInfoEXT(Unchecked.defaultof, mtlBuffer) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.shaderModuleIdentifier = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.mtlBuffer = Unchecked.defaultof static member Empty = - VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) + VkImportMetalBufferInfoEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "shaderModuleIdentifier = %A" x.shaderModuleIdentifier - ] |> sprintf "VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT { %s }" + sprintf "mtlBuffer = %A" x.mtlBuffer + ] |> sprintf "VkImportMetalBufferInfoEXT { %s }" end [] - type VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT = + type VkImportMetalIOSurfaceInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public shaderModuleIdentifierAlgorithmUUID : Guid + val mutable public ioSurface : nativeint - new(pNext : nativeint, shaderModuleIdentifierAlgorithmUUID : Guid) = + new(pNext : nativeint, ioSurface : nativeint) = { - sType = 1000462001u + sType = 1000311009u pNext = pNext - shaderModuleIdentifierAlgorithmUUID = shaderModuleIdentifierAlgorithmUUID + ioSurface = ioSurface } - new(shaderModuleIdentifierAlgorithmUUID : Guid) = - VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT(Unchecked.defaultof, shaderModuleIdentifierAlgorithmUUID) + new(ioSurface : nativeint) = + VkImportMetalIOSurfaceInfoEXT(Unchecked.defaultof, ioSurface) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.shaderModuleIdentifierAlgorithmUUID = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.ioSurface = Unchecked.defaultof static member Empty = - VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof) + VkImportMetalIOSurfaceInfoEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "shaderModuleIdentifierAlgorithmUUID = %A" x.shaderModuleIdentifierAlgorithmUUID - ] |> sprintf "VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT { %s }" + sprintf "ioSurface = %A" x.ioSurface + ] |> sprintf "VkImportMetalIOSurfaceInfoEXT { %s }" end [] - type VkPipelineShaderStageModuleIdentifierCreateInfoEXT = + type VkImportMetalSharedEventInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public identifierSize : uint32 - val mutable public pIdentifier : nativeptr + val mutable public mtlSharedEvent : nativeint - new(pNext : nativeint, identifierSize : uint32, pIdentifier : nativeptr) = + new(pNext : nativeint, mtlSharedEvent : nativeint) = { - sType = 1000462002u + sType = 1000311011u pNext = pNext - identifierSize = identifierSize - pIdentifier = pIdentifier + mtlSharedEvent = mtlSharedEvent } - new(identifierSize : uint32, pIdentifier : nativeptr) = - VkPipelineShaderStageModuleIdentifierCreateInfoEXT(Unchecked.defaultof, identifierSize, pIdentifier) + new(mtlSharedEvent : nativeint) = + VkImportMetalSharedEventInfoEXT(Unchecked.defaultof, mtlSharedEvent) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.identifierSize = Unchecked.defaultof && x.pIdentifier = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.mtlSharedEvent = Unchecked.defaultof static member Empty = - VkPipelineShaderStageModuleIdentifierCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + VkImportMetalSharedEventInfoEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "identifierSize = %A" x.identifierSize - sprintf "pIdentifier = %A" x.pIdentifier - ] |> sprintf "VkPipelineShaderStageModuleIdentifierCreateInfoEXT { %s }" + sprintf "mtlSharedEvent = %A" x.mtlSharedEvent + ] |> sprintf "VkImportMetalSharedEventInfoEXT { %s }" end [] - type VkShaderModuleIdentifierEXT = + type VkImportMetalTextureInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public identifierSize : uint32 - val mutable public identifier : byte_32 + val mutable public plane : VkImageAspectFlags + val mutable public mtlTexture : nativeint - new(pNext : nativeint, identifierSize : uint32, identifier : byte_32) = + new(pNext : nativeint, plane : VkImageAspectFlags, mtlTexture : nativeint) = { - sType = 1000462003u + sType = 1000311007u pNext = pNext - identifierSize = identifierSize - identifier = identifier + plane = plane + mtlTexture = mtlTexture } - new(identifierSize : uint32, identifier : byte_32) = - VkShaderModuleIdentifierEXT(Unchecked.defaultof, identifierSize, identifier) + new(plane : VkImageAspectFlags, mtlTexture : nativeint) = + VkImportMetalTextureInfoEXT(Unchecked.defaultof, plane, mtlTexture) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.identifierSize = Unchecked.defaultof && x.identifier = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.plane = Unchecked.defaultof && x.mtlTexture = Unchecked.defaultof static member Empty = - VkShaderModuleIdentifierEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkImportMetalTextureInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "identifierSize = %A" x.identifierSize - sprintf "identifier = %A" x.identifier - ] |> sprintf "VkShaderModuleIdentifierEXT { %s }" + sprintf "plane = %A" x.plane + sprintf "mtlTexture = %A" x.mtlTexture + ] |> sprintf "VkImportMetalTextureInfoEXT { %s }" end module VkRaw = [] - type VkGetShaderModuleIdentifierEXTDel = delegate of VkDevice * VkShaderModule * nativeptr -> unit - [] - type VkGetShaderModuleCreateInfoIdentifierEXTDel = delegate of VkDevice * nativeptr * nativeptr -> unit + type VkExportMetalObjectsEXTDel = delegate of VkDevice * nativeptr -> unit [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading EXTShaderModuleIdentifier") - static let s_vkGetShaderModuleIdentifierEXTDel = VkRaw.vkImportInstanceDelegate "vkGetShaderModuleIdentifierEXT" - static let s_vkGetShaderModuleCreateInfoIdentifierEXTDel = VkRaw.vkImportInstanceDelegate "vkGetShaderModuleCreateInfoIdentifierEXT" + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTMetalObjects") + static let s_vkExportMetalObjectsEXTDel = VkRaw.vkImportInstanceDelegate "vkExportMetalObjectsEXT" static do Report.End(3) |> ignore - static member vkGetShaderModuleIdentifierEXT = s_vkGetShaderModuleIdentifierEXTDel - static member vkGetShaderModuleCreateInfoIdentifierEXT = s_vkGetShaderModuleCreateInfoIdentifierEXTDel - let vkGetShaderModuleIdentifierEXT(device : VkDevice, shaderModule : VkShaderModule, pIdentifier : nativeptr) = Loader.vkGetShaderModuleIdentifierEXT.Invoke(device, shaderModule, pIdentifier) - let vkGetShaderModuleCreateInfoIdentifierEXT(device : VkDevice, pCreateInfo : nativeptr, pIdentifier : nativeptr) = Loader.vkGetShaderModuleCreateInfoIdentifierEXT.Invoke(device, pCreateInfo, pIdentifier) - -module EXTShaderStencilExport = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_EXT_shader_stencil_export" - let Number = 141 - - -module EXTShaderSubgroupBallot = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_EXT_shader_subgroup_ballot" - let Number = 65 + static member vkExportMetalObjectsEXT = s_vkExportMetalObjectsEXTDel + let vkExportMetalObjectsEXT(device : VkDevice, pMetalObjectsInfo : nativeptr) = Loader.vkExportMetalObjectsEXT.Invoke(device, pMetalObjectsInfo) +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module EXTMultiDraw = + let Type = ExtensionType.Device + let Name = "VK_EXT_multi_draw" + let Number = 393 -module EXTShaderSubgroupVote = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_EXT_shader_subgroup_vote" - let Number = 66 + [] + type VkMultiDrawIndexedInfoEXT = + struct + val mutable public firstIndex : uint32 + val mutable public indexCount : uint32 + val mutable public vertexOffset : int32 + new(firstIndex : uint32, indexCount : uint32, vertexOffset : int32) = + { + firstIndex = firstIndex + indexCount = indexCount + vertexOffset = vertexOffset + } -module EXTShaderViewportIndexLayer = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_EXT_shader_viewport_index_layer" - let Number = 163 + member x.IsEmpty = + x.firstIndex = Unchecked.defaultof && x.indexCount = Unchecked.defaultof && x.vertexOffset = Unchecked.defaultof + static member Empty = + VkMultiDrawIndexedInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) -module EXTSubgroupSizeControl = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_EXT_subgroup_size_control" - let Number = 226 + override x.ToString() = + String.concat "; " [ + sprintf "firstIndex = %A" x.firstIndex + sprintf "indexCount = %A" x.indexCount + sprintf "vertexOffset = %A" x.vertexOffset + ] |> sprintf "VkMultiDrawIndexedInfoEXT { %s }" + end + [] + type VkMultiDrawInfoEXT = + struct + val mutable public firstVertex : uint32 + val mutable public vertexCount : uint32 - type VkPhysicalDeviceSubgroupSizeControlFeaturesEXT = VkPhysicalDeviceSubgroupSizeControlFeatures + new(firstVertex : uint32, vertexCount : uint32) = + { + firstVertex = firstVertex + vertexCount = vertexCount + } - type VkPhysicalDeviceSubgroupSizeControlPropertiesEXT = VkPhysicalDeviceSubgroupSizeControlProperties + member x.IsEmpty = + x.firstVertex = Unchecked.defaultof && x.vertexCount = Unchecked.defaultof - type VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = VkPipelineShaderStageRequiredSubgroupSizeCreateInfo + static member Empty = + VkMultiDrawInfoEXT(Unchecked.defaultof, Unchecked.defaultof) + override x.ToString() = + String.concat "; " [ + sprintf "firstVertex = %A" x.firstVertex + sprintf "vertexCount = %A" x.vertexCount + ] |> sprintf "VkMultiDrawInfoEXT { %s }" + end - [] - module EnumExtensions = - type VkPipelineShaderStageCreateFlags with - static member inline AllowVaryingSubgroupSizeBitExt = unbox 0x00000001 - static member inline RequireFullSubgroupsBitExt = unbox 0x00000002 + [] + type VkPhysicalDeviceMultiDrawFeaturesEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public multiDraw : VkBool32 + new(pNext : nativeint, multiDraw : VkBool32) = + { + sType = 1000392000u + pNext = pNext + multiDraw = multiDraw + } -module EXTSubpassMergeFeedback = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_EXT_subpass_merge_feedback" - let Number = 459 + new(multiDraw : VkBool32) = + VkPhysicalDeviceMultiDrawFeaturesEXT(Unchecked.defaultof, multiDraw) + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.multiDraw = Unchecked.defaultof - type VkSubpassMergeStatusEXT = - | Merged = 0 - | Disallowed = 1 - | NotMergedSideEffects = 2 - | NotMergedSamplesMismatch = 3 - | NotMergedViewsMismatch = 4 - | NotMergedAliasing = 5 - | NotMergedDependencies = 6 - | NotMergedIncompatibleInputAttachment = 7 - | NotMergedTooManyAttachments = 8 - | NotMergedInsufficientStorage = 9 - | NotMergedDepthStencilCount = 10 - | NotMergedResolveAttachmentReuse = 11 - | NotMergedSingleSubpass = 12 - | NotMergedUnspecified = 13 + static member Empty = + VkPhysicalDeviceMultiDrawFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "multiDraw = %A" x.multiDraw + ] |> sprintf "VkPhysicalDeviceMultiDrawFeaturesEXT { %s }" + end [] - type VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT = + type VkPhysicalDeviceMultiDrawPropertiesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public subpassMergeFeedback : VkBool32 + val mutable public maxMultiDrawCount : uint32 - new(pNext : nativeint, subpassMergeFeedback : VkBool32) = + new(pNext : nativeint, maxMultiDrawCount : uint32) = { - sType = 1000458000u + sType = 1000392001u pNext = pNext - subpassMergeFeedback = subpassMergeFeedback + maxMultiDrawCount = maxMultiDrawCount } - new(subpassMergeFeedback : VkBool32) = - VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT(Unchecked.defaultof, subpassMergeFeedback) + new(maxMultiDrawCount : uint32) = + VkPhysicalDeviceMultiDrawPropertiesEXT(Unchecked.defaultof, maxMultiDrawCount) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.subpassMergeFeedback = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.maxMultiDrawCount = Unchecked.defaultof static member Empty = - VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceMultiDrawPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "subpassMergeFeedback = %A" x.subpassMergeFeedback - ] |> sprintf "VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT { %s }" + sprintf "maxMultiDrawCount = %A" x.maxMultiDrawCount + ] |> sprintf "VkPhysicalDeviceMultiDrawPropertiesEXT { %s }" end + + module VkRaw = + [] + type VkCmdDrawMultiEXTDel = delegate of VkCommandBuffer * uint32 * nativeptr * uint32 * uint32 * uint32 -> unit + [] + type VkCmdDrawMultiIndexedEXTDel = delegate of VkCommandBuffer * uint32 * nativeptr * uint32 * uint32 * uint32 * nativeptr -> unit + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTMultiDraw") + static let s_vkCmdDrawMultiEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdDrawMultiEXT" + static let s_vkCmdDrawMultiIndexedEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdDrawMultiIndexedEXT" + static do Report.End(3) |> ignore + static member vkCmdDrawMultiEXT = s_vkCmdDrawMultiEXTDel + static member vkCmdDrawMultiIndexedEXT = s_vkCmdDrawMultiIndexedEXTDel + let vkCmdDrawMultiEXT(commandBuffer : VkCommandBuffer, drawCount : uint32, pVertexInfo : nativeptr, instanceCount : uint32, firstInstance : uint32, stride : uint32) = Loader.vkCmdDrawMultiEXT.Invoke(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride) + let vkCmdDrawMultiIndexedEXT(commandBuffer : VkCommandBuffer, drawCount : uint32, pIndexInfo : nativeptr, instanceCount : uint32, firstInstance : uint32, stride : uint32, pVertexOffset : nativeptr) = Loader.vkCmdDrawMultiIndexedEXT.Invoke(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset) + +/// Requires (KHRCreateRenderpass2, KHRDepthStencilResolve) | Vulkan12. +module EXTMultisampledRenderToSingleSampled = + let Type = ExtensionType.Device + let Name = "VK_EXT_multisampled_render_to_single_sampled" + let Number = 377 + [] - type VkRenderPassCreationControlEXT = + type VkMultisampledRenderToSingleSampledInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public disallowMerging : VkBool32 + val mutable public multisampledRenderToSingleSampledEnable : VkBool32 + val mutable public rasterizationSamples : VkSampleCountFlags - new(pNext : nativeint, disallowMerging : VkBool32) = + new(pNext : nativeint, multisampledRenderToSingleSampledEnable : VkBool32, rasterizationSamples : VkSampleCountFlags) = { - sType = 1000458001u + sType = 1000376002u pNext = pNext - disallowMerging = disallowMerging + multisampledRenderToSingleSampledEnable = multisampledRenderToSingleSampledEnable + rasterizationSamples = rasterizationSamples } - new(disallowMerging : VkBool32) = - VkRenderPassCreationControlEXT(Unchecked.defaultof, disallowMerging) + new(multisampledRenderToSingleSampledEnable : VkBool32, rasterizationSamples : VkSampleCountFlags) = + VkMultisampledRenderToSingleSampledInfoEXT(Unchecked.defaultof, multisampledRenderToSingleSampledEnable, rasterizationSamples) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.disallowMerging = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.multisampledRenderToSingleSampledEnable = Unchecked.defaultof && x.rasterizationSamples = Unchecked.defaultof static member Empty = - VkRenderPassCreationControlEXT(Unchecked.defaultof, Unchecked.defaultof) + VkMultisampledRenderToSingleSampledInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "disallowMerging = %A" x.disallowMerging - ] |> sprintf "VkRenderPassCreationControlEXT { %s }" + sprintf "multisampledRenderToSingleSampledEnable = %A" x.multisampledRenderToSingleSampledEnable + sprintf "rasterizationSamples = %A" x.rasterizationSamples + ] |> sprintf "VkMultisampledRenderToSingleSampledInfoEXT { %s }" end [] - type VkRenderPassCreationFeedbackInfoEXT = + type VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT = struct - val mutable public postMergeSubpassCount : uint32 + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public multisampledRenderToSingleSampled : VkBool32 - new(postMergeSubpassCount : uint32) = + new(pNext : nativeint, multisampledRenderToSingleSampled : VkBool32) = { - postMergeSubpassCount = postMergeSubpassCount + sType = 1000376000u + pNext = pNext + multisampledRenderToSingleSampled = multisampledRenderToSingleSampled } + new(multisampledRenderToSingleSampled : VkBool32) = + VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT(Unchecked.defaultof, multisampledRenderToSingleSampled) + member x.IsEmpty = - x.postMergeSubpassCount = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.multisampledRenderToSingleSampled = Unchecked.defaultof static member Empty = - VkRenderPassCreationFeedbackInfoEXT(Unchecked.defaultof) + VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ - sprintf "postMergeSubpassCount = %A" x.postMergeSubpassCount - ] |> sprintf "VkRenderPassCreationFeedbackInfoEXT { %s }" + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "multisampledRenderToSingleSampled = %A" x.multisampledRenderToSingleSampled + ] |> sprintf "VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT { %s }" end [] - type VkRenderPassCreationFeedbackCreateInfoEXT = + type VkSubpassResolvePerformanceQueryEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public pRenderPassFeedback : nativeptr + val mutable public optimal : VkBool32 - new(pNext : nativeint, pRenderPassFeedback : nativeptr) = + new(pNext : nativeint, optimal : VkBool32) = { - sType = 1000458002u + sType = 1000376001u pNext = pNext - pRenderPassFeedback = pRenderPassFeedback + optimal = optimal } - new(pRenderPassFeedback : nativeptr) = - VkRenderPassCreationFeedbackCreateInfoEXT(Unchecked.defaultof, pRenderPassFeedback) + new(optimal : VkBool32) = + VkSubpassResolvePerformanceQueryEXT(Unchecked.defaultof, optimal) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.pRenderPassFeedback = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.optimal = Unchecked.defaultof static member Empty = - VkRenderPassCreationFeedbackCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof>) + VkSubpassResolvePerformanceQueryEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "pRenderPassFeedback = %A" x.pRenderPassFeedback - ] |> sprintf "VkRenderPassCreationFeedbackCreateInfoEXT { %s }" + sprintf "optimal = %A" x.optimal + ] |> sprintf "VkSubpassResolvePerformanceQueryEXT { %s }" end + + [] + module EnumExtensions = + type VkImageCreateFlags with + static member inline MultisampledRenderToSingleSampledBitExt = unbox 0x00040000 + + +/// Requires KHRMaintenance3. +module EXTMutableDescriptorType = + let Type = ExtensionType.Device + let Name = "VK_EXT_mutable_descriptor_type" + let Number = 495 + [] - type VkRenderPassSubpassFeedbackInfoEXT = + type VkMutableDescriptorTypeListEXT = struct - val mutable public subpassMergeStatus : VkSubpassMergeStatusEXT - val mutable public description : String256 - val mutable public postMergeIndex : uint32 + val mutable public descriptorTypeCount : uint32 + val mutable public pDescriptorTypes : nativeptr - new(subpassMergeStatus : VkSubpassMergeStatusEXT, description : String256, postMergeIndex : uint32) = + new(descriptorTypeCount : uint32, pDescriptorTypes : nativeptr) = { - subpassMergeStatus = subpassMergeStatus - description = description - postMergeIndex = postMergeIndex + descriptorTypeCount = descriptorTypeCount + pDescriptorTypes = pDescriptorTypes } member x.IsEmpty = - x.subpassMergeStatus = Unchecked.defaultof && x.description = Unchecked.defaultof && x.postMergeIndex = Unchecked.defaultof + x.descriptorTypeCount = Unchecked.defaultof && x.pDescriptorTypes = Unchecked.defaultof> static member Empty = - VkRenderPassSubpassFeedbackInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkMutableDescriptorTypeListEXT(Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ - sprintf "subpassMergeStatus = %A" x.subpassMergeStatus - sprintf "description = %A" x.description - sprintf "postMergeIndex = %A" x.postMergeIndex - ] |> sprintf "VkRenderPassSubpassFeedbackInfoEXT { %s }" + sprintf "descriptorTypeCount = %A" x.descriptorTypeCount + sprintf "pDescriptorTypes = %A" x.pDescriptorTypes + ] |> sprintf "VkMutableDescriptorTypeListEXT { %s }" + end + + [] + type VkMutableDescriptorTypeCreateInfoEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public mutableDescriptorTypeListCount : uint32 + val mutable public pMutableDescriptorTypeLists : nativeptr + + new(pNext : nativeint, mutableDescriptorTypeListCount : uint32, pMutableDescriptorTypeLists : nativeptr) = + { + sType = 1000351002u + pNext = pNext + mutableDescriptorTypeListCount = mutableDescriptorTypeListCount + pMutableDescriptorTypeLists = pMutableDescriptorTypeLists + } + + new(mutableDescriptorTypeListCount : uint32, pMutableDescriptorTypeLists : nativeptr) = + VkMutableDescriptorTypeCreateInfoEXT(Unchecked.defaultof, mutableDescriptorTypeListCount, pMutableDescriptorTypeLists) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.mutableDescriptorTypeListCount = Unchecked.defaultof && x.pMutableDescriptorTypeLists = Unchecked.defaultof> + + static member Empty = + VkMutableDescriptorTypeCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "mutableDescriptorTypeListCount = %A" x.mutableDescriptorTypeListCount + sprintf "pMutableDescriptorTypeLists = %A" x.pMutableDescriptorTypeLists + ] |> sprintf "VkMutableDescriptorTypeCreateInfoEXT { %s }" end [] - type VkRenderPassSubpassFeedbackCreateInfoEXT = + type VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public pSubpassFeedback : nativeptr + val mutable public mutableDescriptorType : VkBool32 - new(pNext : nativeint, pSubpassFeedback : nativeptr) = + new(pNext : nativeint, mutableDescriptorType : VkBool32) = { - sType = 1000458003u + sType = 1000351000u pNext = pNext - pSubpassFeedback = pSubpassFeedback + mutableDescriptorType = mutableDescriptorType } - new(pSubpassFeedback : nativeptr) = - VkRenderPassSubpassFeedbackCreateInfoEXT(Unchecked.defaultof, pSubpassFeedback) + new(mutableDescriptorType : VkBool32) = + VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT(Unchecked.defaultof, mutableDescriptorType) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.pSubpassFeedback = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.mutableDescriptorType = Unchecked.defaultof static member Empty = - VkRenderPassSubpassFeedbackCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof>) + VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "pSubpassFeedback = %A" x.pSubpassFeedback - ] |> sprintf "VkRenderPassSubpassFeedbackCreateInfoEXT { %s }" + sprintf "mutableDescriptorType = %A" x.mutableDescriptorType + ] |> sprintf "VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT { %s }" end - -module EXTSwapchainColorspace = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRSurface - let Name = "VK_EXT_swapchain_colorspace" - let Number = 105 - - let Required = [ KHRSurface.Name ] - - [] module EnumExtensions = - type VkColorSpaceKHR with - static member inline DisplayP3NonlinearExt = unbox 1000104001 - static member inline ExtendedSrgbLinearExt = unbox 1000104002 - static member inline DisplayP3LinearExt = unbox 1000104003 - static member inline DciP3NonlinearExt = unbox 1000104004 - static member inline Bt709LinearExt = unbox 1000104005 - static member inline Bt709NonlinearExt = unbox 1000104006 - static member inline Bt2020LinearExt = unbox 1000104007 - static member inline Hdr10St2084Ext = unbox 1000104008 - static member inline DolbyvisionExt = unbox 1000104009 - static member inline Hdr10HlgExt = unbox 1000104010 - static member inline AdobergbLinearExt = unbox 1000104011 - static member inline AdobergbNonlinearExt = unbox 1000104012 - static member inline PassThroughExt = unbox 1000104013 - static member inline ExtendedSrgbNonlinearExt = unbox 1000104014 - - -module EXTTexelBufferAlignment = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_EXT_texel_buffer_alignment" - let Number = 282 + type VkDescriptorPoolCreateFlags with + static member inline HostOnlyBitExt = unbox 0x00000004 + type VkDescriptorSetLayoutCreateFlags with + static member inline HostOnlyPoolBitExt = unbox 0x00000004 + type VkDescriptorType with + static member inline MutableExt = unbox 1000351000 - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module EXTNestedCommandBuffer = + let Type = ExtensionType.Device + let Name = "VK_EXT_nested_command_buffer" + let Number = 452 [] - type VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT = + type VkPhysicalDeviceNestedCommandBufferFeaturesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public texelBufferAlignment : VkBool32 + val mutable public nestedCommandBuffer : VkBool32 + val mutable public nestedCommandBufferRendering : VkBool32 + val mutable public nestedCommandBufferSimultaneousUse : VkBool32 - new(pNext : nativeint, texelBufferAlignment : VkBool32) = + new(pNext : nativeint, nestedCommandBuffer : VkBool32, nestedCommandBufferRendering : VkBool32, nestedCommandBufferSimultaneousUse : VkBool32) = { - sType = 1000281000u + sType = 1000451000u pNext = pNext - texelBufferAlignment = texelBufferAlignment + nestedCommandBuffer = nestedCommandBuffer + nestedCommandBufferRendering = nestedCommandBufferRendering + nestedCommandBufferSimultaneousUse = nestedCommandBufferSimultaneousUse } - new(texelBufferAlignment : VkBool32) = - VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(Unchecked.defaultof, texelBufferAlignment) + new(nestedCommandBuffer : VkBool32, nestedCommandBufferRendering : VkBool32, nestedCommandBufferSimultaneousUse : VkBool32) = + VkPhysicalDeviceNestedCommandBufferFeaturesEXT(Unchecked.defaultof, nestedCommandBuffer, nestedCommandBufferRendering, nestedCommandBufferSimultaneousUse) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.texelBufferAlignment = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.nestedCommandBuffer = Unchecked.defaultof && x.nestedCommandBufferRendering = Unchecked.defaultof && x.nestedCommandBufferSimultaneousUse = Unchecked.defaultof static member Empty = - VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceNestedCommandBufferFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "texelBufferAlignment = %A" x.texelBufferAlignment - ] |> sprintf "VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT { %s }" + sprintf "nestedCommandBuffer = %A" x.nestedCommandBuffer + sprintf "nestedCommandBufferRendering = %A" x.nestedCommandBufferRendering + sprintf "nestedCommandBufferSimultaneousUse = %A" x.nestedCommandBufferSimultaneousUse + ] |> sprintf "VkPhysicalDeviceNestedCommandBufferFeaturesEXT { %s }" end - type VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT = VkPhysicalDeviceTexelBufferAlignmentProperties - + [] + type VkPhysicalDeviceNestedCommandBufferPropertiesEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public maxCommandBufferNestingLevel : uint32 + new(pNext : nativeint, maxCommandBufferNestingLevel : uint32) = + { + sType = 1000451001u + pNext = pNext + maxCommandBufferNestingLevel = maxCommandBufferNestingLevel + } -module EXTTextureCompressionAstcHdr = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_EXT_texture_compression_astc_hdr" - let Number = 67 + new(maxCommandBufferNestingLevel : uint32) = + VkPhysicalDeviceNestedCommandBufferPropertiesEXT(Unchecked.defaultof, maxCommandBufferNestingLevel) - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.maxCommandBufferNestingLevel = Unchecked.defaultof + static member Empty = + VkPhysicalDeviceNestedCommandBufferPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof) - type VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = VkPhysicalDeviceTextureCompressionASTCHDRFeatures + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "maxCommandBufferNestingLevel = %A" x.maxCommandBufferNestingLevel + ] |> sprintf "VkPhysicalDeviceNestedCommandBufferPropertiesEXT { %s }" + end [] module EnumExtensions = - type VkFormat with - static member inline Astc44SfloatBlockExt = unbox 1000066000 - static member inline Astc54SfloatBlockExt = unbox 1000066001 - static member inline Astc55SfloatBlockExt = unbox 1000066002 - static member inline Astc65SfloatBlockExt = unbox 1000066003 - static member inline Astc66SfloatBlockExt = unbox 1000066004 - static member inline Astc85SfloatBlockExt = unbox 1000066005 - static member inline Astc86SfloatBlockExt = unbox 1000066006 - static member inline Astc88SfloatBlockExt = unbox 1000066007 - static member inline Astc105SfloatBlockExt = unbox 1000066008 - static member inline Astc106SfloatBlockExt = unbox 1000066009 - static member inline Astc108SfloatBlockExt = unbox 1000066010 - static member inline Astc1010SfloatBlockExt = unbox 1000066011 - static member inline Astc1210SfloatBlockExt = unbox 1000066012 - static member inline Astc1212SfloatBlockExt = unbox 1000066013 - - -module EXTToolingInfo = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_EXT_tooling_info" - let Number = 246 - - - type VkToolPurposeFlagsEXT = VkToolPurposeFlags - - type VkPhysicalDeviceToolPropertiesEXT = VkPhysicalDeviceToolProperties - - - module VkRaw = - [] - type VkGetPhysicalDeviceToolPropertiesEXTDel = delegate of VkPhysicalDevice * nativeptr * nativeptr -> VkResult - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading EXTToolingInfo") - static let s_vkGetPhysicalDeviceToolPropertiesEXTDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceToolPropertiesEXT" - static do Report.End(3) |> ignore - static member vkGetPhysicalDeviceToolPropertiesEXT = s_vkGetPhysicalDeviceToolPropertiesEXTDel - let vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice : VkPhysicalDevice, pToolCount : nativeptr, pToolProperties : nativeptr) = Loader.vkGetPhysicalDeviceToolPropertiesEXT.Invoke(physicalDevice, pToolCount, pToolProperties) + type Vulkan13.VkRenderingFlags with + static member inline ContentsInlineBitExt = unbox 0x00000010 + type VkSubpassContents with + static member inline InlineAndSecondaryCommandBuffersExt = unbox 1000451000 - module EXTDebugReport = - [] - module EnumExtensions = - type VkToolPurposeFlags with - static member inline DebugReportingBitExt = unbox 0x00000020 +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module EXTNonSeamlessCubeMap = + let Type = ExtensionType.Device + let Name = "VK_EXT_non_seamless_cube_map" + let Number = 423 - module EXTDebugMarker = - [] - module EnumExtensions = - type VkToolPurposeFlags with - static member inline DebugMarkersBitExt = unbox 0x00000040 + [] + type VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public nonSeamlessCubeMap : VkBool32 + new(pNext : nativeint, nonSeamlessCubeMap : VkBool32) = + { + sType = 1000422000u + pNext = pNext + nonSeamlessCubeMap = nonSeamlessCubeMap + } - module EXTDebugUtils = - [] - module EnumExtensions = - type VkToolPurposeFlags with - static member inline DebugReportingBitExt = unbox 0x00000020 - static member inline DebugMarkersBitExt = unbox 0x00000040 + new(nonSeamlessCubeMap : VkBool32) = + VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT(Unchecked.defaultof, nonSeamlessCubeMap) + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.nonSeamlessCubeMap = Unchecked.defaultof -module EXTValidationCache = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_EXT_validation_cache" - let Number = 161 + static member Empty = + VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "nonSeamlessCubeMap = %A" x.nonSeamlessCubeMap + ] |> sprintf "VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT { %s }" + end - [] - type VkValidationCacheEXT = - struct - val mutable public Handle : uint64 - new(h) = { Handle = h } - static member Null = VkValidationCacheEXT(0UL) - member x.IsNull = x.Handle = 0UL - member x.IsValid = x.Handle <> 0UL - end + [] + module EnumExtensions = + type VkSamplerCreateFlags with + static member inline NonSeamlessCubeMapBitExt = unbox 0x00000004 - type VkValidationCacheHeaderVersionEXT = - | One = 1 +/// Requires EXTMemoryPriority. +module EXTPageableDeviceLocalMemory = + let Type = ExtensionType.Device + let Name = "VK_EXT_pageable_device_local_memory" + let Number = 413 [] - type VkShaderModuleValidationCacheCreateInfoEXT = + type VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public validationCache : VkValidationCacheEXT + val mutable public pageableDeviceLocalMemory : VkBool32 - new(pNext : nativeint, validationCache : VkValidationCacheEXT) = + new(pNext : nativeint, pageableDeviceLocalMemory : VkBool32) = { - sType = 1000160001u + sType = 1000412000u pNext = pNext - validationCache = validationCache + pageableDeviceLocalMemory = pageableDeviceLocalMemory } - new(validationCache : VkValidationCacheEXT) = - VkShaderModuleValidationCacheCreateInfoEXT(Unchecked.defaultof, validationCache) + new(pageableDeviceLocalMemory : VkBool32) = + VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT(Unchecked.defaultof, pageableDeviceLocalMemory) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.validationCache = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.pageableDeviceLocalMemory = Unchecked.defaultof static member Empty = - VkShaderModuleValidationCacheCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "validationCache = %A" x.validationCache - ] |> sprintf "VkShaderModuleValidationCacheCreateInfoEXT { %s }" + sprintf "pageableDeviceLocalMemory = %A" x.pageableDeviceLocalMemory + ] |> sprintf "VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT { %s }" end + + module VkRaw = + [] + type VkSetDeviceMemoryPriorityEXTDel = delegate of VkDevice * VkDeviceMemory * float32 -> unit + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTPageableDeviceLocalMemory") + static let s_vkSetDeviceMemoryPriorityEXTDel = VkRaw.vkImportInstanceDelegate "vkSetDeviceMemoryPriorityEXT" + static do Report.End(3) |> ignore + static member vkSetDeviceMemoryPriorityEXT = s_vkSetDeviceMemoryPriorityEXTDel + let vkSetDeviceMemoryPriorityEXT(device : VkDevice, memory : VkDeviceMemory, priority : float32) = Loader.vkSetDeviceMemoryPriorityEXT.Invoke(device, memory, priority) + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module EXTPciBusInfo = + let Type = ExtensionType.Device + let Name = "VK_EXT_pci_bus_info" + let Number = 213 + [] - type VkValidationCacheCreateInfoEXT = + type VkPhysicalDevicePCIBusInfoPropertiesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public flags : VkValidationCacheCreateFlagsEXT - val mutable public initialDataSize : uint64 - val mutable public pInitialData : nativeint + val mutable public pciDomain : uint32 + val mutable public pciBus : uint32 + val mutable public pciDevice : uint32 + val mutable public pciFunction : uint32 - new(pNext : nativeint, flags : VkValidationCacheCreateFlagsEXT, initialDataSize : uint64, pInitialData : nativeint) = + new(pNext : nativeint, pciDomain : uint32, pciBus : uint32, pciDevice : uint32, pciFunction : uint32) = { - sType = 1000160000u + sType = 1000212000u pNext = pNext - flags = flags - initialDataSize = initialDataSize - pInitialData = pInitialData + pciDomain = pciDomain + pciBus = pciBus + pciDevice = pciDevice + pciFunction = pciFunction } - new(flags : VkValidationCacheCreateFlagsEXT, initialDataSize : uint64, pInitialData : nativeint) = - VkValidationCacheCreateInfoEXT(Unchecked.defaultof, flags, initialDataSize, pInitialData) + new(pciDomain : uint32, pciBus : uint32, pciDevice : uint32, pciFunction : uint32) = + VkPhysicalDevicePCIBusInfoPropertiesEXT(Unchecked.defaultof, pciDomain, pciBus, pciDevice, pciFunction) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.initialDataSize = Unchecked.defaultof && x.pInitialData = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.pciDomain = Unchecked.defaultof && x.pciBus = Unchecked.defaultof && x.pciDevice = Unchecked.defaultof && x.pciFunction = Unchecked.defaultof static member Empty = - VkValidationCacheCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDevicePCIBusInfoPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "flags = %A" x.flags - sprintf "initialDataSize = %A" x.initialDataSize - sprintf "pInitialData = %A" x.pInitialData - ] |> sprintf "VkValidationCacheCreateInfoEXT { %s }" + sprintf "pciDomain = %A" x.pciDomain + sprintf "pciBus = %A" x.pciBus + sprintf "pciDevice = %A" x.pciDevice + sprintf "pciFunction = %A" x.pciFunction + ] |> sprintf "VkPhysicalDevicePCIBusInfoPropertiesEXT { %s }" end - [] - module EnumExtensions = - type VkObjectType with - static member inline ValidationCacheExt = unbox 1000160000 - - module VkRaw = - [] - type VkCreateValidationCacheEXTDel = delegate of VkDevice * nativeptr * nativeptr * nativeptr -> VkResult - [] - type VkDestroyValidationCacheEXTDel = delegate of VkDevice * VkValidationCacheEXT * nativeptr -> unit - [] - type VkMergeValidationCachesEXTDel = delegate of VkDevice * VkValidationCacheEXT * uint32 * nativeptr -> VkResult - [] - type VkGetValidationCacheDataEXTDel = delegate of VkDevice * VkValidationCacheEXT * nativeptr * nativeint -> VkResult - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading EXTValidationCache") - static let s_vkCreateValidationCacheEXTDel = VkRaw.vkImportInstanceDelegate "vkCreateValidationCacheEXT" - static let s_vkDestroyValidationCacheEXTDel = VkRaw.vkImportInstanceDelegate "vkDestroyValidationCacheEXT" - static let s_vkMergeValidationCachesEXTDel = VkRaw.vkImportInstanceDelegate "vkMergeValidationCachesEXT" - static let s_vkGetValidationCacheDataEXTDel = VkRaw.vkImportInstanceDelegate "vkGetValidationCacheDataEXT" - static do Report.End(3) |> ignore - static member vkCreateValidationCacheEXT = s_vkCreateValidationCacheEXTDel - static member vkDestroyValidationCacheEXT = s_vkDestroyValidationCacheEXTDel - static member vkMergeValidationCachesEXT = s_vkMergeValidationCachesEXTDel - static member vkGetValidationCacheDataEXT = s_vkGetValidationCacheDataEXTDel - let vkCreateValidationCacheEXT(device : VkDevice, pCreateInfo : nativeptr, pAllocator : nativeptr, pValidationCache : nativeptr) = Loader.vkCreateValidationCacheEXT.Invoke(device, pCreateInfo, pAllocator, pValidationCache) - let vkDestroyValidationCacheEXT(device : VkDevice, validationCache : VkValidationCacheEXT, pAllocator : nativeptr) = Loader.vkDestroyValidationCacheEXT.Invoke(device, validationCache, pAllocator) - let vkMergeValidationCachesEXT(device : VkDevice, dstCache : VkValidationCacheEXT, srcCacheCount : uint32, pSrcCaches : nativeptr) = Loader.vkMergeValidationCachesEXT.Invoke(device, dstCache, srcCacheCount, pSrcCaches) - let vkGetValidationCacheDataEXT(device : VkDevice, validationCache : VkValidationCacheEXT, pDataSize : nativeptr, pData : nativeint) = Loader.vkGetValidationCacheDataEXT.Invoke(device, validationCache, pDataSize, pData) - -module EXTValidationFeatures = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_EXT_validation_features" - let Number = 248 - - - type VkValidationFeatureEnableEXT = - | GpuAssisted = 0 - | GpuAssistedReserveBindingSlot = 1 - | BestPractices = 2 - | DebugPrintf = 3 - | SynchronizationValidation = 4 - - type VkValidationFeatureDisableEXT = - | All = 0 - | Shaders = 1 - | ThreadSafety = 2 - | ApiParameters = 3 - | ObjectLifetimes = 4 - | CoreChecks = 5 - | UniqueHandles = 6 - | ShaderValidationCache = 7 +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module EXTPhysicalDeviceDrm = + let Type = ExtensionType.Device + let Name = "VK_EXT_physical_device_drm" + let Number = 354 [] - type VkValidationFeaturesEXT = + type VkPhysicalDeviceDrmPropertiesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public enabledValidationFeatureCount : uint32 - val mutable public pEnabledValidationFeatures : nativeptr - val mutable public disabledValidationFeatureCount : uint32 - val mutable public pDisabledValidationFeatures : nativeptr + val mutable public hasPrimary : VkBool32 + val mutable public hasRender : VkBool32 + val mutable public primaryMajor : int64 + val mutable public primaryMinor : int64 + val mutable public renderMajor : int64 + val mutable public renderMinor : int64 - new(pNext : nativeint, enabledValidationFeatureCount : uint32, pEnabledValidationFeatures : nativeptr, disabledValidationFeatureCount : uint32, pDisabledValidationFeatures : nativeptr) = + new(pNext : nativeint, hasPrimary : VkBool32, hasRender : VkBool32, primaryMajor : int64, primaryMinor : int64, renderMajor : int64, renderMinor : int64) = { - sType = 1000247000u + sType = 1000353000u pNext = pNext - enabledValidationFeatureCount = enabledValidationFeatureCount - pEnabledValidationFeatures = pEnabledValidationFeatures - disabledValidationFeatureCount = disabledValidationFeatureCount - pDisabledValidationFeatures = pDisabledValidationFeatures + hasPrimary = hasPrimary + hasRender = hasRender + primaryMajor = primaryMajor + primaryMinor = primaryMinor + renderMajor = renderMajor + renderMinor = renderMinor } - new(enabledValidationFeatureCount : uint32, pEnabledValidationFeatures : nativeptr, disabledValidationFeatureCount : uint32, pDisabledValidationFeatures : nativeptr) = - VkValidationFeaturesEXT(Unchecked.defaultof, enabledValidationFeatureCount, pEnabledValidationFeatures, disabledValidationFeatureCount, pDisabledValidationFeatures) + new(hasPrimary : VkBool32, hasRender : VkBool32, primaryMajor : int64, primaryMinor : int64, renderMajor : int64, renderMinor : int64) = + VkPhysicalDeviceDrmPropertiesEXT(Unchecked.defaultof, hasPrimary, hasRender, primaryMajor, primaryMinor, renderMajor, renderMinor) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.enabledValidationFeatureCount = Unchecked.defaultof && x.pEnabledValidationFeatures = Unchecked.defaultof> && x.disabledValidationFeatureCount = Unchecked.defaultof && x.pDisabledValidationFeatures = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.hasPrimary = Unchecked.defaultof && x.hasRender = Unchecked.defaultof && x.primaryMajor = Unchecked.defaultof && x.primaryMinor = Unchecked.defaultof && x.renderMajor = Unchecked.defaultof && x.renderMinor = Unchecked.defaultof static member Empty = - VkValidationFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>) + VkPhysicalDeviceDrmPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "enabledValidationFeatureCount = %A" x.enabledValidationFeatureCount - sprintf "pEnabledValidationFeatures = %A" x.pEnabledValidationFeatures - sprintf "disabledValidationFeatureCount = %A" x.disabledValidationFeatureCount - sprintf "pDisabledValidationFeatures = %A" x.pDisabledValidationFeatures - ] |> sprintf "VkValidationFeaturesEXT { %s }" + sprintf "hasPrimary = %A" x.hasPrimary + sprintf "hasRender = %A" x.hasRender + sprintf "primaryMajor = %A" x.primaryMajor + sprintf "primaryMinor = %A" x.primaryMinor + sprintf "renderMajor = %A" x.renderMajor + sprintf "renderMinor = %A" x.renderMinor + ] |> sprintf "VkPhysicalDeviceDrmPropertiesEXT { %s }" end -module EXTValidationFlags = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_EXT_validation_flags" - let Number = 62 +/// Promoted to Vulkan13. +module EXTPipelineCreationFeedback = + let Type = ExtensionType.Device + let Name = "VK_EXT_pipeline_creation_feedback" + let Number = 193 + type VkPipelineCreationFeedbackFlagsEXT = Vulkan13.VkPipelineCreationFeedbackFlags - type VkValidationCheckEXT = - | All = 0 - | Shaders = 1 + type VkPipelineCreationFeedbackCreateInfoEXT = Vulkan13.VkPipelineCreationFeedbackCreateInfo + + type VkPipelineCreationFeedbackEXT = Vulkan13.VkPipelineCreationFeedback + +/// Requires KHRRayTracingPipeline, KHRPipelineLibrary. +module EXTPipelineLibraryGroupHandles = + let Type = ExtensionType.Device + let Name = "VK_EXT_pipeline_library_group_handles" + let Number = 499 + [] - type VkValidationFlagsEXT = + type VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public disabledValidationCheckCount : uint32 - val mutable public pDisabledValidationChecks : nativeptr + val mutable public pipelineLibraryGroupHandles : VkBool32 - new(pNext : nativeint, disabledValidationCheckCount : uint32, pDisabledValidationChecks : nativeptr) = + new(pNext : nativeint, pipelineLibraryGroupHandles : VkBool32) = { - sType = 1000061000u + sType = 1000498000u pNext = pNext - disabledValidationCheckCount = disabledValidationCheckCount - pDisabledValidationChecks = pDisabledValidationChecks + pipelineLibraryGroupHandles = pipelineLibraryGroupHandles } - new(disabledValidationCheckCount : uint32, pDisabledValidationChecks : nativeptr) = - VkValidationFlagsEXT(Unchecked.defaultof, disabledValidationCheckCount, pDisabledValidationChecks) + new(pipelineLibraryGroupHandles : VkBool32) = + VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT(Unchecked.defaultof, pipelineLibraryGroupHandles) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.disabledValidationCheckCount = Unchecked.defaultof && x.pDisabledValidationChecks = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.pipelineLibraryGroupHandles = Unchecked.defaultof static member Empty = - VkValidationFlagsEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "disabledValidationCheckCount = %A" x.disabledValidationCheckCount - sprintf "pDisabledValidationChecks = %A" x.pDisabledValidationChecks - ] |> sprintf "VkValidationFlagsEXT { %s }" + sprintf "pipelineLibraryGroupHandles = %A" x.pipelineLibraryGroupHandles + ] |> sprintf "VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT { %s }" end -module EXTVertexAttributeDivisor = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_EXT_vertex_attribute_divisor" - let Number = 191 - - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] - +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module EXTPipelineProperties = + let Type = ExtensionType.Device + let Name = "VK_EXT_pipeline_properties" + let Number = 373 [] - type VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT = + type VkPhysicalDevicePipelinePropertiesFeaturesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public vertexAttributeInstanceRateDivisor : VkBool32 - val mutable public vertexAttributeInstanceRateZeroDivisor : VkBool32 + val mutable public pipelinePropertiesIdentifier : VkBool32 - new(pNext : nativeint, vertexAttributeInstanceRateDivisor : VkBool32, vertexAttributeInstanceRateZeroDivisor : VkBool32) = + new(pNext : nativeint, pipelinePropertiesIdentifier : VkBool32) = { - sType = 1000190002u + sType = 1000372001u pNext = pNext - vertexAttributeInstanceRateDivisor = vertexAttributeInstanceRateDivisor - vertexAttributeInstanceRateZeroDivisor = vertexAttributeInstanceRateZeroDivisor + pipelinePropertiesIdentifier = pipelinePropertiesIdentifier } - new(vertexAttributeInstanceRateDivisor : VkBool32, vertexAttributeInstanceRateZeroDivisor : VkBool32) = - VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(Unchecked.defaultof, vertexAttributeInstanceRateDivisor, vertexAttributeInstanceRateZeroDivisor) + new(pipelinePropertiesIdentifier : VkBool32) = + VkPhysicalDevicePipelinePropertiesFeaturesEXT(Unchecked.defaultof, pipelinePropertiesIdentifier) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.vertexAttributeInstanceRateDivisor = Unchecked.defaultof && x.vertexAttributeInstanceRateZeroDivisor = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.pipelinePropertiesIdentifier = Unchecked.defaultof static member Empty = - VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDevicePipelinePropertiesFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "vertexAttributeInstanceRateDivisor = %A" x.vertexAttributeInstanceRateDivisor - sprintf "vertexAttributeInstanceRateZeroDivisor = %A" x.vertexAttributeInstanceRateZeroDivisor - ] |> sprintf "VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT { %s }" + sprintf "pipelinePropertiesIdentifier = %A" x.pipelinePropertiesIdentifier + ] |> sprintf "VkPhysicalDevicePipelinePropertiesFeaturesEXT { %s }" end + type VkPipelineInfoEXT = KHRPipelineExecutableProperties.VkPipelineInfoKHR + [] - type VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT = + type VkPipelinePropertiesIdentifierEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public maxVertexAttribDivisor : uint32 + val mutable public pipelineIdentifier : Guid - new(pNext : nativeint, maxVertexAttribDivisor : uint32) = + new(pNext : nativeint, pipelineIdentifier : Guid) = { - sType = 1000190000u + sType = 1000372000u pNext = pNext - maxVertexAttribDivisor = maxVertexAttribDivisor + pipelineIdentifier = pipelineIdentifier } - new(maxVertexAttribDivisor : uint32) = - VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(Unchecked.defaultof, maxVertexAttribDivisor) + new(pipelineIdentifier : Guid) = + VkPipelinePropertiesIdentifierEXT(Unchecked.defaultof, pipelineIdentifier) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.maxVertexAttribDivisor = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.pipelineIdentifier = Unchecked.defaultof static member Empty = - VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof) + VkPipelinePropertiesIdentifierEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "maxVertexAttribDivisor = %A" x.maxVertexAttribDivisor - ] |> sprintf "VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT { %s }" + sprintf "pipelineIdentifier = %A" x.pipelineIdentifier + ] |> sprintf "VkPipelinePropertiesIdentifierEXT { %s }" end + + module VkRaw = + [] + type VkGetPipelinePropertiesEXTDel = delegate of VkDevice * nativeptr * nativeptr -> VkResult + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTPipelineProperties") + static let s_vkGetPipelinePropertiesEXTDel = VkRaw.vkImportInstanceDelegate "vkGetPipelinePropertiesEXT" + static do Report.End(3) |> ignore + static member vkGetPipelinePropertiesEXT = s_vkGetPipelinePropertiesEXTDel + let vkGetPipelinePropertiesEXT(device : VkDevice, pPipelineInfo : nativeptr, pPipelineProperties : nativeptr) = Loader.vkGetPipelinePropertiesEXT.Invoke(device, pPipelineInfo, pPipelineProperties) + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module EXTPipelineRobustness = + let Type = ExtensionType.Device + let Name = "VK_EXT_pipeline_robustness" + let Number = 69 + + type VkPipelineRobustnessBufferBehaviorEXT = + | DeviceDefault = 0 + | Disabled = 1 + | RobustBufferAccess = 2 + | RobustBufferAccess2 = 3 + + type VkPipelineRobustnessImageBehaviorEXT = + | DeviceDefault = 0 + | Disabled = 1 + | RobustImageAccess = 2 + | RobustImageAccess2 = 3 + + [] - type VkVertexInputBindingDivisorDescriptionEXT = + type VkPhysicalDevicePipelineRobustnessFeaturesEXT = struct - val mutable public binding : uint32 - val mutable public divisor : uint32 + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public pipelineRobustness : VkBool32 - new(binding : uint32, divisor : uint32) = + new(pNext : nativeint, pipelineRobustness : VkBool32) = { - binding = binding - divisor = divisor + sType = 1000068001u + pNext = pNext + pipelineRobustness = pipelineRobustness } + new(pipelineRobustness : VkBool32) = + VkPhysicalDevicePipelineRobustnessFeaturesEXT(Unchecked.defaultof, pipelineRobustness) + member x.IsEmpty = - x.binding = Unchecked.defaultof && x.divisor = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.pipelineRobustness = Unchecked.defaultof static member Empty = - VkVertexInputBindingDivisorDescriptionEXT(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDevicePipelineRobustnessFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ - sprintf "binding = %A" x.binding - sprintf "divisor = %A" x.divisor - ] |> sprintf "VkVertexInputBindingDivisorDescriptionEXT { %s }" + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "pipelineRobustness = %A" x.pipelineRobustness + ] |> sprintf "VkPhysicalDevicePipelineRobustnessFeaturesEXT { %s }" end [] - type VkPipelineVertexInputDivisorStateCreateInfoEXT = + type VkPhysicalDevicePipelineRobustnessPropertiesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public vertexBindingDivisorCount : uint32 - val mutable public pVertexBindingDivisors : nativeptr + val mutable public defaultRobustnessStorageBuffers : VkPipelineRobustnessBufferBehaviorEXT + val mutable public defaultRobustnessUniformBuffers : VkPipelineRobustnessBufferBehaviorEXT + val mutable public defaultRobustnessVertexInputs : VkPipelineRobustnessBufferBehaviorEXT + val mutable public defaultRobustnessImages : VkPipelineRobustnessImageBehaviorEXT - new(pNext : nativeint, vertexBindingDivisorCount : uint32, pVertexBindingDivisors : nativeptr) = + new(pNext : nativeint, defaultRobustnessStorageBuffers : VkPipelineRobustnessBufferBehaviorEXT, defaultRobustnessUniformBuffers : VkPipelineRobustnessBufferBehaviorEXT, defaultRobustnessVertexInputs : VkPipelineRobustnessBufferBehaviorEXT, defaultRobustnessImages : VkPipelineRobustnessImageBehaviorEXT) = { - sType = 1000190001u + sType = 1000068002u pNext = pNext - vertexBindingDivisorCount = vertexBindingDivisorCount - pVertexBindingDivisors = pVertexBindingDivisors + defaultRobustnessStorageBuffers = defaultRobustnessStorageBuffers + defaultRobustnessUniformBuffers = defaultRobustnessUniformBuffers + defaultRobustnessVertexInputs = defaultRobustnessVertexInputs + defaultRobustnessImages = defaultRobustnessImages } - new(vertexBindingDivisorCount : uint32, pVertexBindingDivisors : nativeptr) = - VkPipelineVertexInputDivisorStateCreateInfoEXT(Unchecked.defaultof, vertexBindingDivisorCount, pVertexBindingDivisors) + new(defaultRobustnessStorageBuffers : VkPipelineRobustnessBufferBehaviorEXT, defaultRobustnessUniformBuffers : VkPipelineRobustnessBufferBehaviorEXT, defaultRobustnessVertexInputs : VkPipelineRobustnessBufferBehaviorEXT, defaultRobustnessImages : VkPipelineRobustnessImageBehaviorEXT) = + VkPhysicalDevicePipelineRobustnessPropertiesEXT(Unchecked.defaultof, defaultRobustnessStorageBuffers, defaultRobustnessUniformBuffers, defaultRobustnessVertexInputs, defaultRobustnessImages) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.vertexBindingDivisorCount = Unchecked.defaultof && x.pVertexBindingDivisors = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.defaultRobustnessStorageBuffers = Unchecked.defaultof && x.defaultRobustnessUniformBuffers = Unchecked.defaultof && x.defaultRobustnessVertexInputs = Unchecked.defaultof && x.defaultRobustnessImages = Unchecked.defaultof static member Empty = - VkPipelineVertexInputDivisorStateCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + VkPhysicalDevicePipelineRobustnessPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "vertexBindingDivisorCount = %A" x.vertexBindingDivisorCount - sprintf "pVertexBindingDivisors = %A" x.pVertexBindingDivisors - ] |> sprintf "VkPipelineVertexInputDivisorStateCreateInfoEXT { %s }" + sprintf "defaultRobustnessStorageBuffers = %A" x.defaultRobustnessStorageBuffers + sprintf "defaultRobustnessUniformBuffers = %A" x.defaultRobustnessUniformBuffers + sprintf "defaultRobustnessVertexInputs = %A" x.defaultRobustnessVertexInputs + sprintf "defaultRobustnessImages = %A" x.defaultRobustnessImages + ] |> sprintf "VkPhysicalDevicePipelineRobustnessPropertiesEXT { %s }" end - - -module EXTVertexInputDynamicState = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_EXT_vertex_input_dynamic_state" - let Number = 353 - - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] - - [] - type VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT = + type VkPipelineRobustnessCreateInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public vertexInputDynamicState : VkBool32 + val mutable public storageBuffers : VkPipelineRobustnessBufferBehaviorEXT + val mutable public uniformBuffers : VkPipelineRobustnessBufferBehaviorEXT + val mutable public vertexInputs : VkPipelineRobustnessBufferBehaviorEXT + val mutable public images : VkPipelineRobustnessImageBehaviorEXT - new(pNext : nativeint, vertexInputDynamicState : VkBool32) = + new(pNext : nativeint, storageBuffers : VkPipelineRobustnessBufferBehaviorEXT, uniformBuffers : VkPipelineRobustnessBufferBehaviorEXT, vertexInputs : VkPipelineRobustnessBufferBehaviorEXT, images : VkPipelineRobustnessImageBehaviorEXT) = { - sType = 1000352000u + sType = 1000068000u pNext = pNext - vertexInputDynamicState = vertexInputDynamicState + storageBuffers = storageBuffers + uniformBuffers = uniformBuffers + vertexInputs = vertexInputs + images = images } - new(vertexInputDynamicState : VkBool32) = - VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT(Unchecked.defaultof, vertexInputDynamicState) + new(storageBuffers : VkPipelineRobustnessBufferBehaviorEXT, uniformBuffers : VkPipelineRobustnessBufferBehaviorEXT, vertexInputs : VkPipelineRobustnessBufferBehaviorEXT, images : VkPipelineRobustnessImageBehaviorEXT) = + VkPipelineRobustnessCreateInfoEXT(Unchecked.defaultof, storageBuffers, uniformBuffers, vertexInputs, images) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.vertexInputDynamicState = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.storageBuffers = Unchecked.defaultof && x.uniformBuffers = Unchecked.defaultof && x.vertexInputs = Unchecked.defaultof && x.images = Unchecked.defaultof static member Empty = - VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) + VkPipelineRobustnessCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "vertexInputDynamicState = %A" x.vertexInputDynamicState - ] |> sprintf "VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT { %s }" + sprintf "storageBuffers = %A" x.storageBuffers + sprintf "uniformBuffers = %A" x.uniformBuffers + sprintf "vertexInputs = %A" x.vertexInputs + sprintf "images = %A" x.images + ] |> sprintf "VkPipelineRobustnessCreateInfoEXT { %s }" end + + +module EXTPostDepthCoverage = + let Type = ExtensionType.Device + let Name = "VK_EXT_post_depth_coverage" + let Number = 156 + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module EXTPrimitiveTopologyListRestart = + let Type = ExtensionType.Device + let Name = "VK_EXT_primitive_topology_list_restart" + let Number = 357 + [] - type VkVertexInputAttributeDescription2EXT = + type VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public location : uint32 - val mutable public binding : uint32 - val mutable public format : VkFormat - val mutable public offset : uint32 + val mutable public primitiveTopologyListRestart : VkBool32 + val mutable public primitiveTopologyPatchListRestart : VkBool32 - new(pNext : nativeint, location : uint32, binding : uint32, format : VkFormat, offset : uint32) = + new(pNext : nativeint, primitiveTopologyListRestart : VkBool32, primitiveTopologyPatchListRestart : VkBool32) = { - sType = 1000352002u + sType = 1000356000u pNext = pNext - location = location - binding = binding - format = format - offset = offset + primitiveTopologyListRestart = primitiveTopologyListRestart + primitiveTopologyPatchListRestart = primitiveTopologyPatchListRestart } - new(location : uint32, binding : uint32, format : VkFormat, offset : uint32) = - VkVertexInputAttributeDescription2EXT(Unchecked.defaultof, location, binding, format, offset) + new(primitiveTopologyListRestart : VkBool32, primitiveTopologyPatchListRestart : VkBool32) = + VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(Unchecked.defaultof, primitiveTopologyListRestart, primitiveTopologyPatchListRestart) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.location = Unchecked.defaultof && x.binding = Unchecked.defaultof && x.format = Unchecked.defaultof && x.offset = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.primitiveTopologyListRestart = Unchecked.defaultof && x.primitiveTopologyPatchListRestart = Unchecked.defaultof static member Empty = - VkVertexInputAttributeDescription2EXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "location = %A" x.location - sprintf "binding = %A" x.binding - sprintf "format = %A" x.format - sprintf "offset = %A" x.offset - ] |> sprintf "VkVertexInputAttributeDescription2EXT { %s }" + sprintf "primitiveTopologyListRestart = %A" x.primitiveTopologyListRestart + sprintf "primitiveTopologyPatchListRestart = %A" x.primitiveTopologyPatchListRestart + ] |> sprintf "VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT { %s }" end + + +/// Requires EXTTransformFeedback. +module EXTPrimitivesGeneratedQuery = + let Type = ExtensionType.Device + let Name = "VK_EXT_primitives_generated_query" + let Number = 383 + [] - type VkVertexInputBindingDescription2EXT = + type VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public binding : uint32 - val mutable public stride : uint32 - val mutable public inputRate : VkVertexInputRate - val mutable public divisor : uint32 + val mutable public primitivesGeneratedQuery : VkBool32 + val mutable public primitivesGeneratedQueryWithRasterizerDiscard : VkBool32 + val mutable public primitivesGeneratedQueryWithNonZeroStreams : VkBool32 - new(pNext : nativeint, binding : uint32, stride : uint32, inputRate : VkVertexInputRate, divisor : uint32) = + new(pNext : nativeint, primitivesGeneratedQuery : VkBool32, primitivesGeneratedQueryWithRasterizerDiscard : VkBool32, primitivesGeneratedQueryWithNonZeroStreams : VkBool32) = { - sType = 1000352001u + sType = 1000382000u pNext = pNext - binding = binding - stride = stride - inputRate = inputRate - divisor = divisor + primitivesGeneratedQuery = primitivesGeneratedQuery + primitivesGeneratedQueryWithRasterizerDiscard = primitivesGeneratedQueryWithRasterizerDiscard + primitivesGeneratedQueryWithNonZeroStreams = primitivesGeneratedQueryWithNonZeroStreams } - new(binding : uint32, stride : uint32, inputRate : VkVertexInputRate, divisor : uint32) = - VkVertexInputBindingDescription2EXT(Unchecked.defaultof, binding, stride, inputRate, divisor) + new(primitivesGeneratedQuery : VkBool32, primitivesGeneratedQueryWithRasterizerDiscard : VkBool32, primitivesGeneratedQueryWithNonZeroStreams : VkBool32) = + VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT(Unchecked.defaultof, primitivesGeneratedQuery, primitivesGeneratedQueryWithRasterizerDiscard, primitivesGeneratedQueryWithNonZeroStreams) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.binding = Unchecked.defaultof && x.stride = Unchecked.defaultof && x.inputRate = Unchecked.defaultof && x.divisor = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.primitivesGeneratedQuery = Unchecked.defaultof && x.primitivesGeneratedQueryWithRasterizerDiscard = Unchecked.defaultof && x.primitivesGeneratedQueryWithNonZeroStreams = Unchecked.defaultof static member Empty = - VkVertexInputBindingDescription2EXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "binding = %A" x.binding - sprintf "stride = %A" x.stride - sprintf "inputRate = %A" x.inputRate - sprintf "divisor = %A" x.divisor - ] |> sprintf "VkVertexInputBindingDescription2EXT { %s }" + sprintf "primitivesGeneratedQuery = %A" x.primitivesGeneratedQuery + sprintf "primitivesGeneratedQueryWithRasterizerDiscard = %A" x.primitivesGeneratedQueryWithRasterizerDiscard + sprintf "primitivesGeneratedQueryWithNonZeroStreams = %A" x.primitivesGeneratedQueryWithNonZeroStreams + ] |> sprintf "VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT { %s }" end [] module EnumExtensions = - type VkDynamicState with - static member inline VertexInputExt = unbox 1000352000 - - module VkRaw = - [] - type VkCmdSetVertexInputEXTDel = delegate of VkCommandBuffer * uint32 * nativeptr * uint32 * nativeptr -> unit - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading EXTVertexInputDynamicState") - static let s_vkCmdSetVertexInputEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetVertexInputEXT" - static do Report.End(3) |> ignore - static member vkCmdSetVertexInputEXT = s_vkCmdSetVertexInputEXTDel - let vkCmdSetVertexInputEXT(commandBuffer : VkCommandBuffer, vertexBindingDescriptionCount : uint32, pVertexBindingDescriptions : nativeptr, vertexAttributeDescriptionCount : uint32, pVertexAttributeDescriptions : nativeptr) = Loader.vkCmdSetVertexInputEXT.Invoke(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) - -module KHRBufferDeviceAddress = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_KHR_buffer_device_address" - let Number = 258 - - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] + type VkQueryType with + static member inline PrimitivesGeneratedExt = unbox 1000382000 - type VkBufferDeviceAddressInfoKHR = VkBufferDeviceAddressInfo +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +/// Promoted to Vulkan13. +module EXTPrivateData = + let Type = ExtensionType.Device + let Name = "VK_EXT_private_data" + let Number = 296 - type VkBufferOpaqueCaptureAddressCreateInfoKHR = VkBufferOpaqueCaptureAddressCreateInfo + type VkPrivateDataSlotEXT = Vulkan13.VkPrivateDataSlot + type VkPrivateDataSlotCreateFlagsEXT = Vulkan13.VkPrivateDataSlotCreateFlags - type VkDeviceMemoryOpaqueCaptureAddressInfoKHR = VkDeviceMemoryOpaqueCaptureAddressInfo + type VkDevicePrivateDataCreateInfoEXT = Vulkan13.VkDevicePrivateDataCreateInfo - type VkMemoryOpaqueCaptureAddressAllocateInfoKHR = VkMemoryOpaqueCaptureAddressAllocateInfo + type VkPhysicalDevicePrivateDataFeaturesEXT = Vulkan13.VkPhysicalDevicePrivateDataFeatures - type VkPhysicalDeviceBufferDeviceAddressFeaturesKHR = VkPhysicalDeviceBufferDeviceAddressFeatures + type VkPrivateDataSlotCreateInfoEXT = Vulkan13.VkPrivateDataSlotCreateInfo [] module EnumExtensions = - type VkBufferCreateFlags with - static member inline DeviceAddressCaptureReplayBitKhr = unbox 0x00000010 - type VkBufferUsageFlags with - static member inline ShaderDeviceAddressBitKhr = unbox 0x00020000 - type VkMemoryAllocateFlags with - static member inline DeviceAddressBitKhr = unbox 0x00000002 - static member inline DeviceAddressCaptureReplayBitKhr = unbox 0x00000004 - type VkResult with - static member inline ErrorInvalidOpaqueCaptureAddressKhr = unbox 1000257000 + type VkObjectType with + static member inline PrivateDataSlotExt = unbox 1000295000 module VkRaw = [] - type VkGetBufferDeviceAddressKHRDel = delegate of VkDevice * nativeptr -> VkDeviceAddress + type VkCreatePrivateDataSlotEXTDel = delegate of VkDevice * nativeptr * nativeptr * nativeptr -> VkResult [] - type VkGetBufferOpaqueCaptureAddressKHRDel = delegate of VkDevice * nativeptr -> uint64 + type VkDestroyPrivateDataSlotEXTDel = delegate of VkDevice * Vulkan13.VkPrivateDataSlot * nativeptr -> unit [] - type VkGetDeviceMemoryOpaqueCaptureAddressKHRDel = delegate of VkDevice * nativeptr -> uint64 + type VkSetPrivateDataEXTDel = delegate of VkDevice * VkObjectType * uint64 * Vulkan13.VkPrivateDataSlot * uint64 -> VkResult + [] + type VkGetPrivateDataEXTDel = delegate of VkDevice * VkObjectType * uint64 * Vulkan13.VkPrivateDataSlot * nativeptr -> unit [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRBufferDeviceAddress") - static let s_vkGetBufferDeviceAddressKHRDel = VkRaw.vkImportInstanceDelegate "vkGetBufferDeviceAddressKHR" - static let s_vkGetBufferOpaqueCaptureAddressKHRDel = VkRaw.vkImportInstanceDelegate "vkGetBufferOpaqueCaptureAddressKHR" - static let s_vkGetDeviceMemoryOpaqueCaptureAddressKHRDel = VkRaw.vkImportInstanceDelegate "vkGetDeviceMemoryOpaqueCaptureAddressKHR" + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTPrivateData") + static let s_vkCreatePrivateDataSlotEXTDel = VkRaw.vkImportInstanceDelegate "vkCreatePrivateDataSlotEXT" + static let s_vkDestroyPrivateDataSlotEXTDel = VkRaw.vkImportInstanceDelegate "vkDestroyPrivateDataSlotEXT" + static let s_vkSetPrivateDataEXTDel = VkRaw.vkImportInstanceDelegate "vkSetPrivateDataEXT" + static let s_vkGetPrivateDataEXTDel = VkRaw.vkImportInstanceDelegate "vkGetPrivateDataEXT" static do Report.End(3) |> ignore - static member vkGetBufferDeviceAddressKHR = s_vkGetBufferDeviceAddressKHRDel - static member vkGetBufferOpaqueCaptureAddressKHR = s_vkGetBufferOpaqueCaptureAddressKHRDel - static member vkGetDeviceMemoryOpaqueCaptureAddressKHR = s_vkGetDeviceMemoryOpaqueCaptureAddressKHRDel - let vkGetBufferDeviceAddressKHR(device : VkDevice, pInfo : nativeptr) = Loader.vkGetBufferDeviceAddressKHR.Invoke(device, pInfo) - let vkGetBufferOpaqueCaptureAddressKHR(device : VkDevice, pInfo : nativeptr) = Loader.vkGetBufferOpaqueCaptureAddressKHR.Invoke(device, pInfo) - let vkGetDeviceMemoryOpaqueCaptureAddressKHR(device : VkDevice, pInfo : nativeptr) = Loader.vkGetDeviceMemoryOpaqueCaptureAddressKHR.Invoke(device, pInfo) - -module NVDeviceGeneratedCommands = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRBufferDeviceAddress - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_NV_device_generated_commands" - let Number = 278 - - let Required = [ KHRBufferDeviceAddress.Name ] - - - - [] - type VkIndirectCommandsLayoutNV = - struct - val mutable public Handle : uint64 - new(h) = { Handle = h } - static member Null = VkIndirectCommandsLayoutNV(0UL) - member x.IsNull = x.Handle = 0UL - member x.IsValid = x.Handle <> 0UL - end - - [] - type VkIndirectStateFlagsNV = - | All = 1 - | None = 0 - | FlagFrontfaceBit = 0x00000001 - - type VkIndirectCommandsTokenTypeNV = - | ShaderGroup = 0 - | State = 1 - | IndexBuffer = 2 - | VertexBuffer = 3 - | PushConstant = 4 - | DrawIndexed = 5 - | Draw = 6 - | DrawTasks = 7 - - [] - type VkIndirectCommandsLayoutUsageFlagsNV = - | All = 7 - | None = 0 - | ExplicitPreprocessBit = 0x00000001 - | IndexedSequencesBit = 0x00000002 - | UnorderedSequencesBit = 0x00000004 + static member vkCreatePrivateDataSlotEXT = s_vkCreatePrivateDataSlotEXTDel + static member vkDestroyPrivateDataSlotEXT = s_vkDestroyPrivateDataSlotEXTDel + static member vkSetPrivateDataEXT = s_vkSetPrivateDataEXTDel + static member vkGetPrivateDataEXT = s_vkGetPrivateDataEXTDel + let vkCreatePrivateDataSlotEXT(device : VkDevice, pCreateInfo : nativeptr, pAllocator : nativeptr, pPrivateDataSlot : nativeptr) = Loader.vkCreatePrivateDataSlotEXT.Invoke(device, pCreateInfo, pAllocator, pPrivateDataSlot) + let vkDestroyPrivateDataSlotEXT(device : VkDevice, privateDataSlot : Vulkan13.VkPrivateDataSlot, pAllocator : nativeptr) = Loader.vkDestroyPrivateDataSlotEXT.Invoke(device, privateDataSlot, pAllocator) + let vkSetPrivateDataEXT(device : VkDevice, objectType : VkObjectType, objectHandle : uint64, privateDataSlot : Vulkan13.VkPrivateDataSlot, data : uint64) = Loader.vkSetPrivateDataEXT.Invoke(device, objectType, objectHandle, privateDataSlot, data) + let vkGetPrivateDataEXT(device : VkDevice, objectType : VkObjectType, objectHandle : uint64, privateDataSlot : Vulkan13.VkPrivateDataSlot, pData : nativeptr) = Loader.vkGetPrivateDataEXT.Invoke(device, objectType, objectHandle, privateDataSlot, pData) +/// Requires KHRSamplerYcbcrConversion | Vulkan11. +module EXTRgba10x6Formats = + let Type = ExtensionType.Device + let Name = "VK_EXT_rgba10x6_formats" + let Number = 345 [] - type VkBindIndexBufferIndirectCommandNV = + type VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT = struct - val mutable public bufferAddress : VkDeviceAddress - val mutable public size : uint32 - val mutable public indexType : VkIndexType + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public formatRgba10x6WithoutYCbCrSampler : VkBool32 - new(bufferAddress : VkDeviceAddress, size : uint32, indexType : VkIndexType) = + new(pNext : nativeint, formatRgba10x6WithoutYCbCrSampler : VkBool32) = { - bufferAddress = bufferAddress - size = size - indexType = indexType + sType = 1000344000u + pNext = pNext + formatRgba10x6WithoutYCbCrSampler = formatRgba10x6WithoutYCbCrSampler } + new(formatRgba10x6WithoutYCbCrSampler : VkBool32) = + VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT(Unchecked.defaultof, formatRgba10x6WithoutYCbCrSampler) + member x.IsEmpty = - x.bufferAddress = Unchecked.defaultof && x.size = Unchecked.defaultof && x.indexType = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.formatRgba10x6WithoutYCbCrSampler = Unchecked.defaultof static member Empty = - VkBindIndexBufferIndirectCommandNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ - sprintf "bufferAddress = %A" x.bufferAddress - sprintf "size = %A" x.size - sprintf "indexType = %A" x.indexType - ] |> sprintf "VkBindIndexBufferIndirectCommandNV { %s }" + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "formatRgba10x6WithoutYCbCrSampler = %A" x.formatRgba10x6WithoutYCbCrSampler + ] |> sprintf "VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT { %s }" end + + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module EXTRobustness2 = + let Type = ExtensionType.Device + let Name = "VK_EXT_robustness2" + let Number = 287 + [] - type VkBindShaderGroupIndirectCommandNV = + type VkPhysicalDeviceRobustness2FeaturesEXT = struct - val mutable public groupIndex : uint32 + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public robustBufferAccess2 : VkBool32 + val mutable public robustImageAccess2 : VkBool32 + val mutable public nullDescriptor : VkBool32 - new(groupIndex : uint32) = + new(pNext : nativeint, robustBufferAccess2 : VkBool32, robustImageAccess2 : VkBool32, nullDescriptor : VkBool32) = { - groupIndex = groupIndex + sType = 1000286000u + pNext = pNext + robustBufferAccess2 = robustBufferAccess2 + robustImageAccess2 = robustImageAccess2 + nullDescriptor = nullDescriptor } + new(robustBufferAccess2 : VkBool32, robustImageAccess2 : VkBool32, nullDescriptor : VkBool32) = + VkPhysicalDeviceRobustness2FeaturesEXT(Unchecked.defaultof, robustBufferAccess2, robustImageAccess2, nullDescriptor) + member x.IsEmpty = - x.groupIndex = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.robustBufferAccess2 = Unchecked.defaultof && x.robustImageAccess2 = Unchecked.defaultof && x.nullDescriptor = Unchecked.defaultof static member Empty = - VkBindShaderGroupIndirectCommandNV(Unchecked.defaultof) + VkPhysicalDeviceRobustness2FeaturesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ - sprintf "groupIndex = %A" x.groupIndex - ] |> sprintf "VkBindShaderGroupIndirectCommandNV { %s }" + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "robustBufferAccess2 = %A" x.robustBufferAccess2 + sprintf "robustImageAccess2 = %A" x.robustImageAccess2 + sprintf "nullDescriptor = %A" x.nullDescriptor + ] |> sprintf "VkPhysicalDeviceRobustness2FeaturesEXT { %s }" end [] - type VkBindVertexBufferIndirectCommandNV = + type VkPhysicalDeviceRobustness2PropertiesEXT = struct - val mutable public bufferAddress : VkDeviceAddress - val mutable public size : uint32 - val mutable public stride : uint32 + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public robustStorageBufferAccessSizeAlignment : VkDeviceSize + val mutable public robustUniformBufferAccessSizeAlignment : VkDeviceSize - new(bufferAddress : VkDeviceAddress, size : uint32, stride : uint32) = + new(pNext : nativeint, robustStorageBufferAccessSizeAlignment : VkDeviceSize, robustUniformBufferAccessSizeAlignment : VkDeviceSize) = { - bufferAddress = bufferAddress - size = size - stride = stride + sType = 1000286001u + pNext = pNext + robustStorageBufferAccessSizeAlignment = robustStorageBufferAccessSizeAlignment + robustUniformBufferAccessSizeAlignment = robustUniformBufferAccessSizeAlignment } + new(robustStorageBufferAccessSizeAlignment : VkDeviceSize, robustUniformBufferAccessSizeAlignment : VkDeviceSize) = + VkPhysicalDeviceRobustness2PropertiesEXT(Unchecked.defaultof, robustStorageBufferAccessSizeAlignment, robustUniformBufferAccessSizeAlignment) + member x.IsEmpty = - x.bufferAddress = Unchecked.defaultof && x.size = Unchecked.defaultof && x.stride = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.robustStorageBufferAccessSizeAlignment = Unchecked.defaultof && x.robustUniformBufferAccessSizeAlignment = Unchecked.defaultof static member Empty = - VkBindVertexBufferIndirectCommandNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceRobustness2PropertiesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ - sprintf "bufferAddress = %A" x.bufferAddress - sprintf "size = %A" x.size - sprintf "stride = %A" x.stride - ] |> sprintf "VkBindVertexBufferIndirectCommandNV { %s }" + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "robustStorageBufferAccessSizeAlignment = %A" x.robustStorageBufferAccessSizeAlignment + sprintf "robustUniformBufferAccessSizeAlignment = %A" x.robustUniformBufferAccessSizeAlignment + ] |> sprintf "VkPhysicalDeviceRobustness2PropertiesEXT { %s }" end - [] - type VkIndirectCommandsStreamNV = - struct - val mutable public buffer : VkBuffer - val mutable public offset : VkDeviceSize - new(buffer : VkBuffer, offset : VkDeviceSize) = - { - buffer = buffer - offset = offset - } - member x.IsEmpty = - x.buffer = Unchecked.defaultof && x.offset = Unchecked.defaultof +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +/// Promoted to Vulkan12. +module EXTSamplerFilterMinmax = + let Type = ExtensionType.Device + let Name = "VK_EXT_sampler_filter_minmax" + let Number = 131 - static member Empty = - VkIndirectCommandsStreamNV(Unchecked.defaultof, Unchecked.defaultof) + type VkSamplerReductionModeEXT = Vulkan12.VkSamplerReductionMode - override x.ToString() = - String.concat "; " [ - sprintf "buffer = %A" x.buffer - sprintf "offset = %A" x.offset - ] |> sprintf "VkIndirectCommandsStreamNV { %s }" - end + type VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT = Vulkan12.VkPhysicalDeviceSamplerFilterMinmaxProperties - [] - type VkGeneratedCommandsInfoNV = - struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public pipelineBindPoint : VkPipelineBindPoint - val mutable public pipeline : VkPipeline - val mutable public indirectCommandsLayout : VkIndirectCommandsLayoutNV - val mutable public streamCount : uint32 - val mutable public pStreams : nativeptr - val mutable public sequencesCount : uint32 - val mutable public preprocessBuffer : VkBuffer - val mutable public preprocessOffset : VkDeviceSize - val mutable public preprocessSize : VkDeviceSize - val mutable public sequencesCountBuffer : VkBuffer - val mutable public sequencesCountOffset : VkDeviceSize - val mutable public sequencesIndexBuffer : VkBuffer - val mutable public sequencesIndexOffset : VkDeviceSize + type VkSamplerReductionModeCreateInfoEXT = Vulkan12.VkSamplerReductionModeCreateInfo - new(pNext : nativeint, pipelineBindPoint : VkPipelineBindPoint, pipeline : VkPipeline, indirectCommandsLayout : VkIndirectCommandsLayoutNV, streamCount : uint32, pStreams : nativeptr, sequencesCount : uint32, preprocessBuffer : VkBuffer, preprocessOffset : VkDeviceSize, preprocessSize : VkDeviceSize, sequencesCountBuffer : VkBuffer, sequencesCountOffset : VkDeviceSize, sequencesIndexBuffer : VkBuffer, sequencesIndexOffset : VkDeviceSize) = - { - sType = 1000277005u - pNext = pNext - pipelineBindPoint = pipelineBindPoint - pipeline = pipeline - indirectCommandsLayout = indirectCommandsLayout - streamCount = streamCount - pStreams = pStreams - sequencesCount = sequencesCount - preprocessBuffer = preprocessBuffer - preprocessOffset = preprocessOffset - preprocessSize = preprocessSize - sequencesCountBuffer = sequencesCountBuffer - sequencesCountOffset = sequencesCountOffset - sequencesIndexBuffer = sequencesIndexBuffer - sequencesIndexOffset = sequencesIndexOffset - } - new(pipelineBindPoint : VkPipelineBindPoint, pipeline : VkPipeline, indirectCommandsLayout : VkIndirectCommandsLayoutNV, streamCount : uint32, pStreams : nativeptr, sequencesCount : uint32, preprocessBuffer : VkBuffer, preprocessOffset : VkDeviceSize, preprocessSize : VkDeviceSize, sequencesCountBuffer : VkBuffer, sequencesCountOffset : VkDeviceSize, sequencesIndexBuffer : VkBuffer, sequencesIndexOffset : VkDeviceSize) = - VkGeneratedCommandsInfoNV(Unchecked.defaultof, pipelineBindPoint, pipeline, indirectCommandsLayout, streamCount, pStreams, sequencesCount, preprocessBuffer, preprocessOffset, preprocessSize, sequencesCountBuffer, sequencesCountOffset, sequencesIndexBuffer, sequencesIndexOffset) + [] + module EnumExtensions = + type VkFormatFeatureFlags with + static member inline SampledImageFilterMinmaxBitExt = unbox 0x00010000 + type Vulkan12.VkSamplerReductionMode with + static member inline WeightedAverageExt = unbox 0 + static member inline MinExt = unbox 1 + static member inline MaxExt = unbox 2 - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.pipelineBindPoint = Unchecked.defaultof && x.pipeline = Unchecked.defaultof && x.indirectCommandsLayout = Unchecked.defaultof && x.streamCount = Unchecked.defaultof && x.pStreams = Unchecked.defaultof> && x.sequencesCount = Unchecked.defaultof && x.preprocessBuffer = Unchecked.defaultof && x.preprocessOffset = Unchecked.defaultof && x.preprocessSize = Unchecked.defaultof && x.sequencesCountBuffer = Unchecked.defaultof && x.sequencesCountOffset = Unchecked.defaultof && x.sequencesIndexBuffer = Unchecked.defaultof && x.sequencesIndexOffset = Unchecked.defaultof - static member Empty = - VkGeneratedCommandsInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +/// Promoted to Vulkan12. +module EXTScalarBlockLayout = + let Type = ExtensionType.Device + let Name = "VK_EXT_scalar_block_layout" + let Number = 222 - override x.ToString() = - String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "pipelineBindPoint = %A" x.pipelineBindPoint - sprintf "pipeline = %A" x.pipeline - sprintf "indirectCommandsLayout = %A" x.indirectCommandsLayout - sprintf "streamCount = %A" x.streamCount - sprintf "pStreams = %A" x.pStreams - sprintf "sequencesCount = %A" x.sequencesCount - sprintf "preprocessBuffer = %A" x.preprocessBuffer - sprintf "preprocessOffset = %A" x.preprocessOffset - sprintf "preprocessSize = %A" x.preprocessSize - sprintf "sequencesCountBuffer = %A" x.sequencesCountBuffer - sprintf "sequencesCountOffset = %A" x.sequencesCountOffset - sprintf "sequencesIndexBuffer = %A" x.sequencesIndexBuffer - sprintf "sequencesIndexOffset = %A" x.sequencesIndexOffset - ] |> sprintf "VkGeneratedCommandsInfoNV { %s }" - end + type VkPhysicalDeviceScalarBlockLayoutFeaturesEXT = Vulkan12.VkPhysicalDeviceScalarBlockLayoutFeatures - [] - type VkGeneratedCommandsMemoryRequirementsInfoNV = - struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public pipelineBindPoint : VkPipelineBindPoint - val mutable public pipeline : VkPipeline - val mutable public indirectCommandsLayout : VkIndirectCommandsLayoutNV - val mutable public maxSequencesCount : uint32 - new(pNext : nativeint, pipelineBindPoint : VkPipelineBindPoint, pipeline : VkPipeline, indirectCommandsLayout : VkIndirectCommandsLayoutNV, maxSequencesCount : uint32) = - { - sType = 1000277006u - pNext = pNext - pipelineBindPoint = pipelineBindPoint - pipeline = pipeline - indirectCommandsLayout = indirectCommandsLayout - maxSequencesCount = maxSequencesCount - } - new(pipelineBindPoint : VkPipelineBindPoint, pipeline : VkPipeline, indirectCommandsLayout : VkIndirectCommandsLayoutNV, maxSequencesCount : uint32) = - VkGeneratedCommandsMemoryRequirementsInfoNV(Unchecked.defaultof, pipelineBindPoint, pipeline, indirectCommandsLayout, maxSequencesCount) +/// Promoted to Vulkan12. +module EXTSeparateStencilUsage = + let Type = ExtensionType.Device + let Name = "VK_EXT_separate_stencil_usage" + let Number = 247 - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.pipelineBindPoint = Unchecked.defaultof && x.pipeline = Unchecked.defaultof && x.indirectCommandsLayout = Unchecked.defaultof && x.maxSequencesCount = Unchecked.defaultof + type VkImageStencilUsageCreateInfoEXT = Vulkan12.VkImageStencilUsageCreateInfo - static member Empty = - VkGeneratedCommandsMemoryRequirementsInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) - override x.ToString() = - String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "pipelineBindPoint = %A" x.pipelineBindPoint - sprintf "pipeline = %A" x.pipeline - sprintf "indirectCommandsLayout = %A" x.indirectCommandsLayout - sprintf "maxSequencesCount = %A" x.maxSequencesCount - ] |> sprintf "VkGeneratedCommandsMemoryRequirementsInfoNV { %s }" - end + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module EXTShaderAtomicFloat = + let Type = ExtensionType.Device + let Name = "VK_EXT_shader_atomic_float" + let Number = 261 [] - type VkGraphicsShaderGroupCreateInfoNV = + type VkPhysicalDeviceShaderAtomicFloatFeaturesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public stageCount : uint32 - val mutable public pStages : nativeptr - val mutable public pVertexInputState : nativeptr - val mutable public pTessellationState : nativeptr + val mutable public shaderBufferFloat32Atomics : VkBool32 + val mutable public shaderBufferFloat32AtomicAdd : VkBool32 + val mutable public shaderBufferFloat64Atomics : VkBool32 + val mutable public shaderBufferFloat64AtomicAdd : VkBool32 + val mutable public shaderSharedFloat32Atomics : VkBool32 + val mutable public shaderSharedFloat32AtomicAdd : VkBool32 + val mutable public shaderSharedFloat64Atomics : VkBool32 + val mutable public shaderSharedFloat64AtomicAdd : VkBool32 + val mutable public shaderImageFloat32Atomics : VkBool32 + val mutable public shaderImageFloat32AtomicAdd : VkBool32 + val mutable public sparseImageFloat32Atomics : VkBool32 + val mutable public sparseImageFloat32AtomicAdd : VkBool32 - new(pNext : nativeint, stageCount : uint32, pStages : nativeptr, pVertexInputState : nativeptr, pTessellationState : nativeptr) = + new(pNext : nativeint, shaderBufferFloat32Atomics : VkBool32, shaderBufferFloat32AtomicAdd : VkBool32, shaderBufferFloat64Atomics : VkBool32, shaderBufferFloat64AtomicAdd : VkBool32, shaderSharedFloat32Atomics : VkBool32, shaderSharedFloat32AtomicAdd : VkBool32, shaderSharedFloat64Atomics : VkBool32, shaderSharedFloat64AtomicAdd : VkBool32, shaderImageFloat32Atomics : VkBool32, shaderImageFloat32AtomicAdd : VkBool32, sparseImageFloat32Atomics : VkBool32, sparseImageFloat32AtomicAdd : VkBool32) = { - sType = 1000277001u + sType = 1000260000u pNext = pNext - stageCount = stageCount - pStages = pStages - pVertexInputState = pVertexInputState - pTessellationState = pTessellationState + shaderBufferFloat32Atomics = shaderBufferFloat32Atomics + shaderBufferFloat32AtomicAdd = shaderBufferFloat32AtomicAdd + shaderBufferFloat64Atomics = shaderBufferFloat64Atomics + shaderBufferFloat64AtomicAdd = shaderBufferFloat64AtomicAdd + shaderSharedFloat32Atomics = shaderSharedFloat32Atomics + shaderSharedFloat32AtomicAdd = shaderSharedFloat32AtomicAdd + shaderSharedFloat64Atomics = shaderSharedFloat64Atomics + shaderSharedFloat64AtomicAdd = shaderSharedFloat64AtomicAdd + shaderImageFloat32Atomics = shaderImageFloat32Atomics + shaderImageFloat32AtomicAdd = shaderImageFloat32AtomicAdd + sparseImageFloat32Atomics = sparseImageFloat32Atomics + sparseImageFloat32AtomicAdd = sparseImageFloat32AtomicAdd } - new(stageCount : uint32, pStages : nativeptr, pVertexInputState : nativeptr, pTessellationState : nativeptr) = - VkGraphicsShaderGroupCreateInfoNV(Unchecked.defaultof, stageCount, pStages, pVertexInputState, pTessellationState) + new(shaderBufferFloat32Atomics : VkBool32, shaderBufferFloat32AtomicAdd : VkBool32, shaderBufferFloat64Atomics : VkBool32, shaderBufferFloat64AtomicAdd : VkBool32, shaderSharedFloat32Atomics : VkBool32, shaderSharedFloat32AtomicAdd : VkBool32, shaderSharedFloat64Atomics : VkBool32, shaderSharedFloat64AtomicAdd : VkBool32, shaderImageFloat32Atomics : VkBool32, shaderImageFloat32AtomicAdd : VkBool32, sparseImageFloat32Atomics : VkBool32, sparseImageFloat32AtomicAdd : VkBool32) = + VkPhysicalDeviceShaderAtomicFloatFeaturesEXT(Unchecked.defaultof, shaderBufferFloat32Atomics, shaderBufferFloat32AtomicAdd, shaderBufferFloat64Atomics, shaderBufferFloat64AtomicAdd, shaderSharedFloat32Atomics, shaderSharedFloat32AtomicAdd, shaderSharedFloat64Atomics, shaderSharedFloat64AtomicAdd, shaderImageFloat32Atomics, shaderImageFloat32AtomicAdd, sparseImageFloat32Atomics, sparseImageFloat32AtomicAdd) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.stageCount = Unchecked.defaultof && x.pStages = Unchecked.defaultof> && x.pVertexInputState = Unchecked.defaultof> && x.pTessellationState = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.shaderBufferFloat32Atomics = Unchecked.defaultof && x.shaderBufferFloat32AtomicAdd = Unchecked.defaultof && x.shaderBufferFloat64Atomics = Unchecked.defaultof && x.shaderBufferFloat64AtomicAdd = Unchecked.defaultof && x.shaderSharedFloat32Atomics = Unchecked.defaultof && x.shaderSharedFloat32AtomicAdd = Unchecked.defaultof && x.shaderSharedFloat64Atomics = Unchecked.defaultof && x.shaderSharedFloat64AtomicAdd = Unchecked.defaultof && x.shaderImageFloat32Atomics = Unchecked.defaultof && x.shaderImageFloat32AtomicAdd = Unchecked.defaultof && x.sparseImageFloat32Atomics = Unchecked.defaultof && x.sparseImageFloat32AtomicAdd = Unchecked.defaultof static member Empty = - VkGraphicsShaderGroupCreateInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof>, Unchecked.defaultof>) + VkPhysicalDeviceShaderAtomicFloatFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "stageCount = %A" x.stageCount - sprintf "pStages = %A" x.pStages - sprintf "pVertexInputState = %A" x.pVertexInputState - sprintf "pTessellationState = %A" x.pTessellationState - ] |> sprintf "VkGraphicsShaderGroupCreateInfoNV { %s }" + sprintf "shaderBufferFloat32Atomics = %A" x.shaderBufferFloat32Atomics + sprintf "shaderBufferFloat32AtomicAdd = %A" x.shaderBufferFloat32AtomicAdd + sprintf "shaderBufferFloat64Atomics = %A" x.shaderBufferFloat64Atomics + sprintf "shaderBufferFloat64AtomicAdd = %A" x.shaderBufferFloat64AtomicAdd + sprintf "shaderSharedFloat32Atomics = %A" x.shaderSharedFloat32Atomics + sprintf "shaderSharedFloat32AtomicAdd = %A" x.shaderSharedFloat32AtomicAdd + sprintf "shaderSharedFloat64Atomics = %A" x.shaderSharedFloat64Atomics + sprintf "shaderSharedFloat64AtomicAdd = %A" x.shaderSharedFloat64AtomicAdd + sprintf "shaderImageFloat32Atomics = %A" x.shaderImageFloat32Atomics + sprintf "shaderImageFloat32AtomicAdd = %A" x.shaderImageFloat32AtomicAdd + sprintf "sparseImageFloat32Atomics = %A" x.sparseImageFloat32Atomics + sprintf "sparseImageFloat32AtomicAdd = %A" x.sparseImageFloat32AtomicAdd + ] |> sprintf "VkPhysicalDeviceShaderAtomicFloatFeaturesEXT { %s }" end + + +/// Requires EXTShaderAtomicFloat. +module EXTShaderAtomicFloat2 = + let Type = ExtensionType.Device + let Name = "VK_EXT_shader_atomic_float2" + let Number = 274 + [] - type VkGraphicsPipelineShaderGroupsCreateInfoNV = + type VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public groupCount : uint32 - val mutable public pGroups : nativeptr - val mutable public pipelineCount : uint32 - val mutable public pPipelines : nativeptr + val mutable public shaderBufferFloat16Atomics : VkBool32 + val mutable public shaderBufferFloat16AtomicAdd : VkBool32 + val mutable public shaderBufferFloat16AtomicMinMax : VkBool32 + val mutable public shaderBufferFloat32AtomicMinMax : VkBool32 + val mutable public shaderBufferFloat64AtomicMinMax : VkBool32 + val mutable public shaderSharedFloat16Atomics : VkBool32 + val mutable public shaderSharedFloat16AtomicAdd : VkBool32 + val mutable public shaderSharedFloat16AtomicMinMax : VkBool32 + val mutable public shaderSharedFloat32AtomicMinMax : VkBool32 + val mutable public shaderSharedFloat64AtomicMinMax : VkBool32 + val mutable public shaderImageFloat32AtomicMinMax : VkBool32 + val mutable public sparseImageFloat32AtomicMinMax : VkBool32 - new(pNext : nativeint, groupCount : uint32, pGroups : nativeptr, pipelineCount : uint32, pPipelines : nativeptr) = + new(pNext : nativeint, shaderBufferFloat16Atomics : VkBool32, shaderBufferFloat16AtomicAdd : VkBool32, shaderBufferFloat16AtomicMinMax : VkBool32, shaderBufferFloat32AtomicMinMax : VkBool32, shaderBufferFloat64AtomicMinMax : VkBool32, shaderSharedFloat16Atomics : VkBool32, shaderSharedFloat16AtomicAdd : VkBool32, shaderSharedFloat16AtomicMinMax : VkBool32, shaderSharedFloat32AtomicMinMax : VkBool32, shaderSharedFloat64AtomicMinMax : VkBool32, shaderImageFloat32AtomicMinMax : VkBool32, sparseImageFloat32AtomicMinMax : VkBool32) = { - sType = 1000277002u + sType = 1000273000u pNext = pNext - groupCount = groupCount - pGroups = pGroups - pipelineCount = pipelineCount - pPipelines = pPipelines + shaderBufferFloat16Atomics = shaderBufferFloat16Atomics + shaderBufferFloat16AtomicAdd = shaderBufferFloat16AtomicAdd + shaderBufferFloat16AtomicMinMax = shaderBufferFloat16AtomicMinMax + shaderBufferFloat32AtomicMinMax = shaderBufferFloat32AtomicMinMax + shaderBufferFloat64AtomicMinMax = shaderBufferFloat64AtomicMinMax + shaderSharedFloat16Atomics = shaderSharedFloat16Atomics + shaderSharedFloat16AtomicAdd = shaderSharedFloat16AtomicAdd + shaderSharedFloat16AtomicMinMax = shaderSharedFloat16AtomicMinMax + shaderSharedFloat32AtomicMinMax = shaderSharedFloat32AtomicMinMax + shaderSharedFloat64AtomicMinMax = shaderSharedFloat64AtomicMinMax + shaderImageFloat32AtomicMinMax = shaderImageFloat32AtomicMinMax + sparseImageFloat32AtomicMinMax = sparseImageFloat32AtomicMinMax } - new(groupCount : uint32, pGroups : nativeptr, pipelineCount : uint32, pPipelines : nativeptr) = - VkGraphicsPipelineShaderGroupsCreateInfoNV(Unchecked.defaultof, groupCount, pGroups, pipelineCount, pPipelines) + new(shaderBufferFloat16Atomics : VkBool32, shaderBufferFloat16AtomicAdd : VkBool32, shaderBufferFloat16AtomicMinMax : VkBool32, shaderBufferFloat32AtomicMinMax : VkBool32, shaderBufferFloat64AtomicMinMax : VkBool32, shaderSharedFloat16Atomics : VkBool32, shaderSharedFloat16AtomicAdd : VkBool32, shaderSharedFloat16AtomicMinMax : VkBool32, shaderSharedFloat32AtomicMinMax : VkBool32, shaderSharedFloat64AtomicMinMax : VkBool32, shaderImageFloat32AtomicMinMax : VkBool32, sparseImageFloat32AtomicMinMax : VkBool32) = + VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT(Unchecked.defaultof, shaderBufferFloat16Atomics, shaderBufferFloat16AtomicAdd, shaderBufferFloat16AtomicMinMax, shaderBufferFloat32AtomicMinMax, shaderBufferFloat64AtomicMinMax, shaderSharedFloat16Atomics, shaderSharedFloat16AtomicAdd, shaderSharedFloat16AtomicMinMax, shaderSharedFloat32AtomicMinMax, shaderSharedFloat64AtomicMinMax, shaderImageFloat32AtomicMinMax, sparseImageFloat32AtomicMinMax) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.groupCount = Unchecked.defaultof && x.pGroups = Unchecked.defaultof> && x.pipelineCount = Unchecked.defaultof && x.pPipelines = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.shaderBufferFloat16Atomics = Unchecked.defaultof && x.shaderBufferFloat16AtomicAdd = Unchecked.defaultof && x.shaderBufferFloat16AtomicMinMax = Unchecked.defaultof && x.shaderBufferFloat32AtomicMinMax = Unchecked.defaultof && x.shaderBufferFloat64AtomicMinMax = Unchecked.defaultof && x.shaderSharedFloat16Atomics = Unchecked.defaultof && x.shaderSharedFloat16AtomicAdd = Unchecked.defaultof && x.shaderSharedFloat16AtomicMinMax = Unchecked.defaultof && x.shaderSharedFloat32AtomicMinMax = Unchecked.defaultof && x.shaderSharedFloat64AtomicMinMax = Unchecked.defaultof && x.shaderImageFloat32AtomicMinMax = Unchecked.defaultof && x.sparseImageFloat32AtomicMinMax = Unchecked.defaultof static member Empty = - VkGraphicsPipelineShaderGroupsCreateInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>) + VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "groupCount = %A" x.groupCount - sprintf "pGroups = %A" x.pGroups - sprintf "pipelineCount = %A" x.pipelineCount - sprintf "pPipelines = %A" x.pPipelines - ] |> sprintf "VkGraphicsPipelineShaderGroupsCreateInfoNV { %s }" + sprintf "shaderBufferFloat16Atomics = %A" x.shaderBufferFloat16Atomics + sprintf "shaderBufferFloat16AtomicAdd = %A" x.shaderBufferFloat16AtomicAdd + sprintf "shaderBufferFloat16AtomicMinMax = %A" x.shaderBufferFloat16AtomicMinMax + sprintf "shaderBufferFloat32AtomicMinMax = %A" x.shaderBufferFloat32AtomicMinMax + sprintf "shaderBufferFloat64AtomicMinMax = %A" x.shaderBufferFloat64AtomicMinMax + sprintf "shaderSharedFloat16Atomics = %A" x.shaderSharedFloat16Atomics + sprintf "shaderSharedFloat16AtomicAdd = %A" x.shaderSharedFloat16AtomicAdd + sprintf "shaderSharedFloat16AtomicMinMax = %A" x.shaderSharedFloat16AtomicMinMax + sprintf "shaderSharedFloat32AtomicMinMax = %A" x.shaderSharedFloat32AtomicMinMax + sprintf "shaderSharedFloat64AtomicMinMax = %A" x.shaderSharedFloat64AtomicMinMax + sprintf "shaderImageFloat32AtomicMinMax = %A" x.shaderImageFloat32AtomicMinMax + sprintf "sparseImageFloat32AtomicMinMax = %A" x.sparseImageFloat32AtomicMinMax + ] |> sprintf "VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT { %s }" end + + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +/// Promoted to Vulkan13. +module EXTShaderDemoteToHelperInvocation = + let Type = ExtensionType.Device + let Name = "VK_EXT_shader_demote_to_helper_invocation" + let Number = 277 + + type VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = Vulkan13.VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures + + + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module EXTShaderImageAtomicInt64 = + let Type = ExtensionType.Device + let Name = "VK_EXT_shader_image_atomic_int64" + let Number = 235 + [] - type VkIndirectCommandsLayoutTokenNV = + type VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public tokenType : VkIndirectCommandsTokenTypeNV - val mutable public stream : uint32 - val mutable public offset : uint32 - val mutable public vertexBindingUnit : uint32 - val mutable public vertexDynamicStride : VkBool32 - val mutable public pushconstantPipelineLayout : VkPipelineLayout - val mutable public pushconstantShaderStageFlags : VkShaderStageFlags - val mutable public pushconstantOffset : uint32 - val mutable public pushconstantSize : uint32 - val mutable public indirectStateFlags : VkIndirectStateFlagsNV - val mutable public indexTypeCount : uint32 - val mutable public pIndexTypes : nativeptr - val mutable public pIndexTypeValues : nativeptr + val mutable public shaderImageInt64Atomics : VkBool32 + val mutable public sparseImageInt64Atomics : VkBool32 - new(pNext : nativeint, tokenType : VkIndirectCommandsTokenTypeNV, stream : uint32, offset : uint32, vertexBindingUnit : uint32, vertexDynamicStride : VkBool32, pushconstantPipelineLayout : VkPipelineLayout, pushconstantShaderStageFlags : VkShaderStageFlags, pushconstantOffset : uint32, pushconstantSize : uint32, indirectStateFlags : VkIndirectStateFlagsNV, indexTypeCount : uint32, pIndexTypes : nativeptr, pIndexTypeValues : nativeptr) = + new(pNext : nativeint, shaderImageInt64Atomics : VkBool32, sparseImageInt64Atomics : VkBool32) = { - sType = 1000277003u + sType = 1000234000u pNext = pNext - tokenType = tokenType - stream = stream - offset = offset - vertexBindingUnit = vertexBindingUnit - vertexDynamicStride = vertexDynamicStride - pushconstantPipelineLayout = pushconstantPipelineLayout - pushconstantShaderStageFlags = pushconstantShaderStageFlags - pushconstantOffset = pushconstantOffset - pushconstantSize = pushconstantSize - indirectStateFlags = indirectStateFlags - indexTypeCount = indexTypeCount - pIndexTypes = pIndexTypes - pIndexTypeValues = pIndexTypeValues + shaderImageInt64Atomics = shaderImageInt64Atomics + sparseImageInt64Atomics = sparseImageInt64Atomics } - new(tokenType : VkIndirectCommandsTokenTypeNV, stream : uint32, offset : uint32, vertexBindingUnit : uint32, vertexDynamicStride : VkBool32, pushconstantPipelineLayout : VkPipelineLayout, pushconstantShaderStageFlags : VkShaderStageFlags, pushconstantOffset : uint32, pushconstantSize : uint32, indirectStateFlags : VkIndirectStateFlagsNV, indexTypeCount : uint32, pIndexTypes : nativeptr, pIndexTypeValues : nativeptr) = - VkIndirectCommandsLayoutTokenNV(Unchecked.defaultof, tokenType, stream, offset, vertexBindingUnit, vertexDynamicStride, pushconstantPipelineLayout, pushconstantShaderStageFlags, pushconstantOffset, pushconstantSize, indirectStateFlags, indexTypeCount, pIndexTypes, pIndexTypeValues) + new(shaderImageInt64Atomics : VkBool32, sparseImageInt64Atomics : VkBool32) = + VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT(Unchecked.defaultof, shaderImageInt64Atomics, sparseImageInt64Atomics) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.tokenType = Unchecked.defaultof && x.stream = Unchecked.defaultof && x.offset = Unchecked.defaultof && x.vertexBindingUnit = Unchecked.defaultof && x.vertexDynamicStride = Unchecked.defaultof && x.pushconstantPipelineLayout = Unchecked.defaultof && x.pushconstantShaderStageFlags = Unchecked.defaultof && x.pushconstantOffset = Unchecked.defaultof && x.pushconstantSize = Unchecked.defaultof && x.indirectStateFlags = Unchecked.defaultof && x.indexTypeCount = Unchecked.defaultof && x.pIndexTypes = Unchecked.defaultof> && x.pIndexTypeValues = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.shaderImageInt64Atomics = Unchecked.defaultof && x.sparseImageInt64Atomics = Unchecked.defaultof static member Empty = - VkIndirectCommandsLayoutTokenNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof>) + VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "tokenType = %A" x.tokenType - sprintf "stream = %A" x.stream - sprintf "offset = %A" x.offset - sprintf "vertexBindingUnit = %A" x.vertexBindingUnit - sprintf "vertexDynamicStride = %A" x.vertexDynamicStride - sprintf "pushconstantPipelineLayout = %A" x.pushconstantPipelineLayout - sprintf "pushconstantShaderStageFlags = %A" x.pushconstantShaderStageFlags - sprintf "pushconstantOffset = %A" x.pushconstantOffset - sprintf "pushconstantSize = %A" x.pushconstantSize - sprintf "indirectStateFlags = %A" x.indirectStateFlags - sprintf "indexTypeCount = %A" x.indexTypeCount - sprintf "pIndexTypes = %A" x.pIndexTypes - sprintf "pIndexTypeValues = %A" x.pIndexTypeValues - ] |> sprintf "VkIndirectCommandsLayoutTokenNV { %s }" + sprintf "shaderImageInt64Atomics = %A" x.shaderImageInt64Atomics + sprintf "sparseImageInt64Atomics = %A" x.sparseImageInt64Atomics + ] |> sprintf "VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT { %s }" end + + +/// Requires ((KHRGetPhysicalDeviceProperties2 | Vulkan11), EXTPipelineCreationCacheControl) | Vulkan13. +module EXTShaderModuleIdentifier = + let Type = ExtensionType.Device + let Name = "VK_EXT_shader_module_identifier" + let Number = 463 + [] - type VkIndirectCommandsLayoutCreateInfoNV = + type VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public flags : VkIndirectCommandsLayoutUsageFlagsNV - val mutable public pipelineBindPoint : VkPipelineBindPoint - val mutable public tokenCount : uint32 - val mutable public pTokens : nativeptr - val mutable public streamCount : uint32 - val mutable public pStreamStrides : nativeptr + val mutable public shaderModuleIdentifier : VkBool32 - new(pNext : nativeint, flags : VkIndirectCommandsLayoutUsageFlagsNV, pipelineBindPoint : VkPipelineBindPoint, tokenCount : uint32, pTokens : nativeptr, streamCount : uint32, pStreamStrides : nativeptr) = + new(pNext : nativeint, shaderModuleIdentifier : VkBool32) = { - sType = 1000277004u + sType = 1000462000u pNext = pNext - flags = flags - pipelineBindPoint = pipelineBindPoint - tokenCount = tokenCount - pTokens = pTokens - streamCount = streamCount - pStreamStrides = pStreamStrides + shaderModuleIdentifier = shaderModuleIdentifier } - new(flags : VkIndirectCommandsLayoutUsageFlagsNV, pipelineBindPoint : VkPipelineBindPoint, tokenCount : uint32, pTokens : nativeptr, streamCount : uint32, pStreamStrides : nativeptr) = - VkIndirectCommandsLayoutCreateInfoNV(Unchecked.defaultof, flags, pipelineBindPoint, tokenCount, pTokens, streamCount, pStreamStrides) + new(shaderModuleIdentifier : VkBool32) = + VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT(Unchecked.defaultof, shaderModuleIdentifier) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.pipelineBindPoint = Unchecked.defaultof && x.tokenCount = Unchecked.defaultof && x.pTokens = Unchecked.defaultof> && x.streamCount = Unchecked.defaultof && x.pStreamStrides = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.shaderModuleIdentifier = Unchecked.defaultof static member Empty = - VkIndirectCommandsLayoutCreateInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>) + VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "flags = %A" x.flags - sprintf "pipelineBindPoint = %A" x.pipelineBindPoint - sprintf "tokenCount = %A" x.tokenCount - sprintf "pTokens = %A" x.pTokens - sprintf "streamCount = %A" x.streamCount - sprintf "pStreamStrides = %A" x.pStreamStrides - ] |> sprintf "VkIndirectCommandsLayoutCreateInfoNV { %s }" + sprintf "shaderModuleIdentifier = %A" x.shaderModuleIdentifier + ] |> sprintf "VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT { %s }" end [] - type VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV = + type VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public deviceGeneratedCommands : VkBool32 + val mutable public shaderModuleIdentifierAlgorithmUUID : Guid - new(pNext : nativeint, deviceGeneratedCommands : VkBool32) = + new(pNext : nativeint, shaderModuleIdentifierAlgorithmUUID : Guid) = { - sType = 1000277007u + sType = 1000462001u pNext = pNext - deviceGeneratedCommands = deviceGeneratedCommands + shaderModuleIdentifierAlgorithmUUID = shaderModuleIdentifierAlgorithmUUID } - new(deviceGeneratedCommands : VkBool32) = - VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV(Unchecked.defaultof, deviceGeneratedCommands) + new(shaderModuleIdentifierAlgorithmUUID : Guid) = + VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT(Unchecked.defaultof, shaderModuleIdentifierAlgorithmUUID) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.deviceGeneratedCommands = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.shaderModuleIdentifierAlgorithmUUID = Unchecked.defaultof static member Empty = - VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "deviceGeneratedCommands = %A" x.deviceGeneratedCommands - ] |> sprintf "VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV { %s }" + sprintf "shaderModuleIdentifierAlgorithmUUID = %A" x.shaderModuleIdentifierAlgorithmUUID + ] |> sprintf "VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT { %s }" end [] - type VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV = + type VkPipelineShaderStageModuleIdentifierCreateInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public maxGraphicsShaderGroupCount : uint32 - val mutable public maxIndirectSequenceCount : uint32 - val mutable public maxIndirectCommandsTokenCount : uint32 - val mutable public maxIndirectCommandsStreamCount : uint32 - val mutable public maxIndirectCommandsTokenOffset : uint32 - val mutable public maxIndirectCommandsStreamStride : uint32 - val mutable public minSequencesCountBufferOffsetAlignment : uint32 - val mutable public minSequencesIndexBufferOffsetAlignment : uint32 - val mutable public minIndirectCommandsBufferOffsetAlignment : uint32 + val mutable public identifierSize : uint32 + val mutable public pIdentifier : nativeptr - new(pNext : nativeint, maxGraphicsShaderGroupCount : uint32, maxIndirectSequenceCount : uint32, maxIndirectCommandsTokenCount : uint32, maxIndirectCommandsStreamCount : uint32, maxIndirectCommandsTokenOffset : uint32, maxIndirectCommandsStreamStride : uint32, minSequencesCountBufferOffsetAlignment : uint32, minSequencesIndexBufferOffsetAlignment : uint32, minIndirectCommandsBufferOffsetAlignment : uint32) = + new(pNext : nativeint, identifierSize : uint32, pIdentifier : nativeptr) = { - sType = 1000277000u + sType = 1000462002u pNext = pNext - maxGraphicsShaderGroupCount = maxGraphicsShaderGroupCount - maxIndirectSequenceCount = maxIndirectSequenceCount - maxIndirectCommandsTokenCount = maxIndirectCommandsTokenCount - maxIndirectCommandsStreamCount = maxIndirectCommandsStreamCount - maxIndirectCommandsTokenOffset = maxIndirectCommandsTokenOffset - maxIndirectCommandsStreamStride = maxIndirectCommandsStreamStride - minSequencesCountBufferOffsetAlignment = minSequencesCountBufferOffsetAlignment - minSequencesIndexBufferOffsetAlignment = minSequencesIndexBufferOffsetAlignment - minIndirectCommandsBufferOffsetAlignment = minIndirectCommandsBufferOffsetAlignment + identifierSize = identifierSize + pIdentifier = pIdentifier } - new(maxGraphicsShaderGroupCount : uint32, maxIndirectSequenceCount : uint32, maxIndirectCommandsTokenCount : uint32, maxIndirectCommandsStreamCount : uint32, maxIndirectCommandsTokenOffset : uint32, maxIndirectCommandsStreamStride : uint32, minSequencesCountBufferOffsetAlignment : uint32, minSequencesIndexBufferOffsetAlignment : uint32, minIndirectCommandsBufferOffsetAlignment : uint32) = - VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV(Unchecked.defaultof, maxGraphicsShaderGroupCount, maxIndirectSequenceCount, maxIndirectCommandsTokenCount, maxIndirectCommandsStreamCount, maxIndirectCommandsTokenOffset, maxIndirectCommandsStreamStride, minSequencesCountBufferOffsetAlignment, minSequencesIndexBufferOffsetAlignment, minIndirectCommandsBufferOffsetAlignment) + new(identifierSize : uint32, pIdentifier : nativeptr) = + VkPipelineShaderStageModuleIdentifierCreateInfoEXT(Unchecked.defaultof, identifierSize, pIdentifier) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.maxGraphicsShaderGroupCount = Unchecked.defaultof && x.maxIndirectSequenceCount = Unchecked.defaultof && x.maxIndirectCommandsTokenCount = Unchecked.defaultof && x.maxIndirectCommandsStreamCount = Unchecked.defaultof && x.maxIndirectCommandsTokenOffset = Unchecked.defaultof && x.maxIndirectCommandsStreamStride = Unchecked.defaultof && x.minSequencesCountBufferOffsetAlignment = Unchecked.defaultof && x.minSequencesIndexBufferOffsetAlignment = Unchecked.defaultof && x.minIndirectCommandsBufferOffsetAlignment = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.identifierSize = Unchecked.defaultof && x.pIdentifier = Unchecked.defaultof> static member Empty = - VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPipelineShaderStageModuleIdentifierCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "maxGraphicsShaderGroupCount = %A" x.maxGraphicsShaderGroupCount - sprintf "maxIndirectSequenceCount = %A" x.maxIndirectSequenceCount - sprintf "maxIndirectCommandsTokenCount = %A" x.maxIndirectCommandsTokenCount - sprintf "maxIndirectCommandsStreamCount = %A" x.maxIndirectCommandsStreamCount - sprintf "maxIndirectCommandsTokenOffset = %A" x.maxIndirectCommandsTokenOffset - sprintf "maxIndirectCommandsStreamStride = %A" x.maxIndirectCommandsStreamStride - sprintf "minSequencesCountBufferOffsetAlignment = %A" x.minSequencesCountBufferOffsetAlignment - sprintf "minSequencesIndexBufferOffsetAlignment = %A" x.minSequencesIndexBufferOffsetAlignment - sprintf "minIndirectCommandsBufferOffsetAlignment = %A" x.minIndirectCommandsBufferOffsetAlignment - ] |> sprintf "VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV { %s }" + sprintf "identifierSize = %A" x.identifierSize + sprintf "pIdentifier = %A" x.pIdentifier + ] |> sprintf "VkPipelineShaderStageModuleIdentifierCreateInfoEXT { %s }" end [] - type VkSetStateFlagsIndirectCommandNV = + type VkShaderModuleIdentifierEXT = struct - val mutable public data : uint32 + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public identifierSize : uint32 + val mutable public identifier : byte_32 - new(data : uint32) = + new(pNext : nativeint, identifierSize : uint32, identifier : byte_32) = { - data = data + sType = 1000462003u + pNext = pNext + identifierSize = identifierSize + identifier = identifier } + new(identifierSize : uint32, identifier : byte_32) = + VkShaderModuleIdentifierEXT(Unchecked.defaultof, identifierSize, identifier) + member x.IsEmpty = - x.data = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.identifierSize = Unchecked.defaultof && x.identifier = Unchecked.defaultof static member Empty = - VkSetStateFlagsIndirectCommandNV(Unchecked.defaultof) + VkShaderModuleIdentifierEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ - sprintf "data = %A" x.data - ] |> sprintf "VkSetStateFlagsIndirectCommandNV { %s }" + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "identifierSize = %A" x.identifierSize + sprintf "identifier = %A" x.identifier + ] |> sprintf "VkShaderModuleIdentifierEXT { %s }" end - [] - module EnumExtensions = - type VkAccessFlags with - static member inline CommandPreprocessReadBitNv = unbox 0x00020000 - static member inline CommandPreprocessWriteBitNv = unbox 0x00040000 - type VkObjectType with - static member inline IndirectCommandsLayoutNv = unbox 1000277000 - type VkPipelineCreateFlags with - static member inline IndirectBindableBitNv = unbox 0x00040000 - type VkPipelineStageFlags with - static member inline CommandPreprocessBitNv = unbox 0x00020000 - module VkRaw = [] - type VkGetGeneratedCommandsMemoryRequirementsNVDel = delegate of VkDevice * nativeptr * nativeptr -> unit - [] - type VkCmdPreprocessGeneratedCommandsNVDel = delegate of VkCommandBuffer * nativeptr -> unit - [] - type VkCmdExecuteGeneratedCommandsNVDel = delegate of VkCommandBuffer * VkBool32 * nativeptr -> unit - [] - type VkCmdBindPipelineShaderGroupNVDel = delegate of VkCommandBuffer * VkPipelineBindPoint * VkPipeline * uint32 -> unit - [] - type VkCreateIndirectCommandsLayoutNVDel = delegate of VkDevice * nativeptr * nativeptr * nativeptr -> VkResult + type VkGetShaderModuleIdentifierEXTDel = delegate of VkDevice * VkShaderModule * nativeptr -> unit [] - type VkDestroyIndirectCommandsLayoutNVDel = delegate of VkDevice * VkIndirectCommandsLayoutNV * nativeptr -> unit + type VkGetShaderModuleCreateInfoIdentifierEXTDel = delegate of VkDevice * nativeptr * nativeptr -> unit [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading NVDeviceGeneratedCommands") - static let s_vkGetGeneratedCommandsMemoryRequirementsNVDel = VkRaw.vkImportInstanceDelegate "vkGetGeneratedCommandsMemoryRequirementsNV" - static let s_vkCmdPreprocessGeneratedCommandsNVDel = VkRaw.vkImportInstanceDelegate "vkCmdPreprocessGeneratedCommandsNV" - static let s_vkCmdExecuteGeneratedCommandsNVDel = VkRaw.vkImportInstanceDelegate "vkCmdExecuteGeneratedCommandsNV" - static let s_vkCmdBindPipelineShaderGroupNVDel = VkRaw.vkImportInstanceDelegate "vkCmdBindPipelineShaderGroupNV" - static let s_vkCreateIndirectCommandsLayoutNVDel = VkRaw.vkImportInstanceDelegate "vkCreateIndirectCommandsLayoutNV" - static let s_vkDestroyIndirectCommandsLayoutNVDel = VkRaw.vkImportInstanceDelegate "vkDestroyIndirectCommandsLayoutNV" + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTShaderModuleIdentifier") + static let s_vkGetShaderModuleIdentifierEXTDel = VkRaw.vkImportInstanceDelegate "vkGetShaderModuleIdentifierEXT" + static let s_vkGetShaderModuleCreateInfoIdentifierEXTDel = VkRaw.vkImportInstanceDelegate "vkGetShaderModuleCreateInfoIdentifierEXT" static do Report.End(3) |> ignore - static member vkGetGeneratedCommandsMemoryRequirementsNV = s_vkGetGeneratedCommandsMemoryRequirementsNVDel - static member vkCmdPreprocessGeneratedCommandsNV = s_vkCmdPreprocessGeneratedCommandsNVDel - static member vkCmdExecuteGeneratedCommandsNV = s_vkCmdExecuteGeneratedCommandsNVDel - static member vkCmdBindPipelineShaderGroupNV = s_vkCmdBindPipelineShaderGroupNVDel - static member vkCreateIndirectCommandsLayoutNV = s_vkCreateIndirectCommandsLayoutNVDel - static member vkDestroyIndirectCommandsLayoutNV = s_vkDestroyIndirectCommandsLayoutNVDel - let vkGetGeneratedCommandsMemoryRequirementsNV(device : VkDevice, pInfo : nativeptr, pMemoryRequirements : nativeptr) = Loader.vkGetGeneratedCommandsMemoryRequirementsNV.Invoke(device, pInfo, pMemoryRequirements) - let vkCmdPreprocessGeneratedCommandsNV(commandBuffer : VkCommandBuffer, pGeneratedCommandsInfo : nativeptr) = Loader.vkCmdPreprocessGeneratedCommandsNV.Invoke(commandBuffer, pGeneratedCommandsInfo) - let vkCmdExecuteGeneratedCommandsNV(commandBuffer : VkCommandBuffer, isPreprocessed : VkBool32, pGeneratedCommandsInfo : nativeptr) = Loader.vkCmdExecuteGeneratedCommandsNV.Invoke(commandBuffer, isPreprocessed, pGeneratedCommandsInfo) - let vkCmdBindPipelineShaderGroupNV(commandBuffer : VkCommandBuffer, pipelineBindPoint : VkPipelineBindPoint, pipeline : VkPipeline, groupIndex : uint32) = Loader.vkCmdBindPipelineShaderGroupNV.Invoke(commandBuffer, pipelineBindPoint, pipeline, groupIndex) - let vkCreateIndirectCommandsLayoutNV(device : VkDevice, pCreateInfo : nativeptr, pAllocator : nativeptr, pIndirectCommandsLayout : nativeptr) = Loader.vkCreateIndirectCommandsLayoutNV.Invoke(device, pCreateInfo, pAllocator, pIndirectCommandsLayout) - let vkDestroyIndirectCommandsLayoutNV(device : VkDevice, indirectCommandsLayout : VkIndirectCommandsLayoutNV, pAllocator : nativeptr) = Loader.vkDestroyIndirectCommandsLayoutNV.Invoke(device, indirectCommandsLayout, pAllocator) + static member vkGetShaderModuleIdentifierEXT = s_vkGetShaderModuleIdentifierEXTDel + static member vkGetShaderModuleCreateInfoIdentifierEXT = s_vkGetShaderModuleCreateInfoIdentifierEXTDel + let vkGetShaderModuleIdentifierEXT(device : VkDevice, shaderModule : VkShaderModule, pIdentifier : nativeptr) = Loader.vkGetShaderModuleIdentifierEXT.Invoke(device, shaderModule, pIdentifier) + let vkGetShaderModuleCreateInfoIdentifierEXT(device : VkDevice, pCreateInfo : nativeptr, pIdentifier : nativeptr) = Loader.vkGetShaderModuleCreateInfoIdentifierEXT.Invoke(device, pCreateInfo, pIdentifier) -module KHRFragmentShadingRate = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRCreateRenderpass2 - open KHRGetPhysicalDeviceProperties2 - open KHRMaintenance2 - open KHRMultiview - let Name = "VK_KHR_fragment_shading_rate" - let Number = 227 +/// Requires Vulkan11. +/// Promoted to Vulkan13. +module EXTSubgroupSizeControl = + let Type = ExtensionType.Device + let Name = "VK_EXT_subgroup_size_control" + let Number = 226 - let Required = [ KHRCreateRenderpass2.Name; KHRGetPhysicalDeviceProperties2.Name ] + type VkPhysicalDeviceSubgroupSizeControlFeaturesEXT = Vulkan13.VkPhysicalDeviceSubgroupSizeControlFeatures + type VkPhysicalDeviceSubgroupSizeControlPropertiesEXT = Vulkan13.VkPhysicalDeviceSubgroupSizeControlProperties - type VkFragmentShadingRateCombinerOpKHR = - | Keep = 0 - | Replace = 1 - | Min = 2 - | Max = 3 - | Mul = 4 + type VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = Vulkan13.VkPipelineShaderStageRequiredSubgroupSizeCreateInfo - [] - type VkFragmentShadingRateCombinerOpKHR_2 = - struct - [] - val mutable public First : VkFragmentShadingRateCombinerOpKHR - member x.Item - with get (i : int) : VkFragmentShadingRateCombinerOpKHR = - if i < 0 || i > 1 then raise <| IndexOutOfRangeException() - let ptr = &&x |> NativePtr.toNativeInt |> NativePtr.ofNativeInt - NativePtr.get ptr i - and set (i : int) (value : VkFragmentShadingRateCombinerOpKHR) = - if i < 0 || i > 1 then raise <| IndexOutOfRangeException() - let ptr = &&x |> NativePtr.toNativeInt |> NativePtr.ofNativeInt - NativePtr.set ptr i value + [] + module EnumExtensions = + type VkPipelineShaderStageCreateFlags with + static member inline AllowVaryingSubgroupSizeBitExt = unbox 0x00000001 + static member inline RequireFullSubgroupsBitExt = unbox 0x00000002 - member x.Length = 2 - interface System.Collections.IEnumerable with - member x.GetEnumerator() = let x = x in (Seq.init 2 (fun i -> x.[i])).GetEnumerator() :> System.Collections.IEnumerator - interface System.Collections.Generic.IEnumerable with - member x.GetEnumerator() = let x = x in (Seq.init 2 (fun i -> x.[i])).GetEnumerator() +/// Requires ((KHRGetPhysicalDeviceProperties2 | Vulkan11), KHRDynamicRendering) | Vulkan13. +module EXTShaderObject = + let Type = ExtensionType.Device + let Name = "VK_EXT_shader_object" + let Number = 483 + + + [] + type VkShaderEXT = + struct + val mutable public Handle : uint64 + new(h) = { Handle = h } + static member Null = VkShaderEXT(0UL) + member x.IsNull = x.Handle = 0UL + member x.IsValid = x.Handle <> 0UL end + [] + type VkShaderCreateFlagsEXT = + | All = 1 + | None = 0 + | LinkStageBit = 0x00000001 + + type VkShaderCodeTypeEXT = + | Binary = 0 + | Spirv = 1 + + + type VkColorBlendAdvancedEXT = EXTExtendedDynamicState3.VkColorBlendAdvancedEXT + + type VkColorBlendEquationEXT = EXTExtendedDynamicState3.VkColorBlendEquationEXT + [] - type VkFragmentShadingRateAttachmentInfoKHR = + type VkPhysicalDeviceShaderObjectFeaturesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public pFragmentShadingRateAttachment : nativeptr - val mutable public shadingRateAttachmentTexelSize : VkExtent2D + val mutable public shaderObject : VkBool32 - new(pNext : nativeint, pFragmentShadingRateAttachment : nativeptr, shadingRateAttachmentTexelSize : VkExtent2D) = + new(pNext : nativeint, shaderObject : VkBool32) = { - sType = 1000226000u + sType = 1000482000u pNext = pNext - pFragmentShadingRateAttachment = pFragmentShadingRateAttachment - shadingRateAttachmentTexelSize = shadingRateAttachmentTexelSize + shaderObject = shaderObject } - new(pFragmentShadingRateAttachment : nativeptr, shadingRateAttachmentTexelSize : VkExtent2D) = - VkFragmentShadingRateAttachmentInfoKHR(Unchecked.defaultof, pFragmentShadingRateAttachment, shadingRateAttachmentTexelSize) + new(shaderObject : VkBool32) = + VkPhysicalDeviceShaderObjectFeaturesEXT(Unchecked.defaultof, shaderObject) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.pFragmentShadingRateAttachment = Unchecked.defaultof> && x.shadingRateAttachmentTexelSize = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.shaderObject = Unchecked.defaultof static member Empty = - VkFragmentShadingRateAttachmentInfoKHR(Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof) + VkPhysicalDeviceShaderObjectFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "pFragmentShadingRateAttachment = %A" x.pFragmentShadingRateAttachment - sprintf "shadingRateAttachmentTexelSize = %A" x.shadingRateAttachmentTexelSize - ] |> sprintf "VkFragmentShadingRateAttachmentInfoKHR { %s }" + sprintf "shaderObject = %A" x.shaderObject + ] |> sprintf "VkPhysicalDeviceShaderObjectFeaturesEXT { %s }" end [] - type VkPhysicalDeviceFragmentShadingRateFeaturesKHR = + type VkPhysicalDeviceShaderObjectPropertiesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public pipelineFragmentShadingRate : VkBool32 - val mutable public primitiveFragmentShadingRate : VkBool32 - val mutable public attachmentFragmentShadingRate : VkBool32 + val mutable public shaderBinaryUUID : Guid + val mutable public shaderBinaryVersion : uint32 - new(pNext : nativeint, pipelineFragmentShadingRate : VkBool32, primitiveFragmentShadingRate : VkBool32, attachmentFragmentShadingRate : VkBool32) = + new(pNext : nativeint, shaderBinaryUUID : Guid, shaderBinaryVersion : uint32) = { - sType = 1000226003u + sType = 1000482001u pNext = pNext - pipelineFragmentShadingRate = pipelineFragmentShadingRate - primitiveFragmentShadingRate = primitiveFragmentShadingRate - attachmentFragmentShadingRate = attachmentFragmentShadingRate + shaderBinaryUUID = shaderBinaryUUID + shaderBinaryVersion = shaderBinaryVersion } - new(pipelineFragmentShadingRate : VkBool32, primitiveFragmentShadingRate : VkBool32, attachmentFragmentShadingRate : VkBool32) = - VkPhysicalDeviceFragmentShadingRateFeaturesKHR(Unchecked.defaultof, pipelineFragmentShadingRate, primitiveFragmentShadingRate, attachmentFragmentShadingRate) + new(shaderBinaryUUID : Guid, shaderBinaryVersion : uint32) = + VkPhysicalDeviceShaderObjectPropertiesEXT(Unchecked.defaultof, shaderBinaryUUID, shaderBinaryVersion) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.pipelineFragmentShadingRate = Unchecked.defaultof && x.primitiveFragmentShadingRate = Unchecked.defaultof && x.attachmentFragmentShadingRate = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.shaderBinaryUUID = Unchecked.defaultof && x.shaderBinaryVersion = Unchecked.defaultof static member Empty = - VkPhysicalDeviceFragmentShadingRateFeaturesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceShaderObjectPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "pipelineFragmentShadingRate = %A" x.pipelineFragmentShadingRate - sprintf "primitiveFragmentShadingRate = %A" x.primitiveFragmentShadingRate - sprintf "attachmentFragmentShadingRate = %A" x.attachmentFragmentShadingRate - ] |> sprintf "VkPhysicalDeviceFragmentShadingRateFeaturesKHR { %s }" + sprintf "shaderBinaryUUID = %A" x.shaderBinaryUUID + sprintf "shaderBinaryVersion = %A" x.shaderBinaryVersion + ] |> sprintf "VkPhysicalDeviceShaderObjectPropertiesEXT { %s }" end [] - type VkPhysicalDeviceFragmentShadingRateKHR = + type VkShaderCreateInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public sampleCounts : VkSampleCountFlags - val mutable public fragmentSize : VkExtent2D + val mutable public flags : VkShaderCreateFlagsEXT + val mutable public stage : VkShaderStageFlags + val mutable public nextStage : VkShaderStageFlags + val mutable public codeType : VkShaderCodeTypeEXT + val mutable public codeSize : uint64 + val mutable public pCode : nativeint + val mutable public pName : cstr + val mutable public setLayoutCount : uint32 + val mutable public pSetLayouts : nativeptr + val mutable public pushConstantRangeCount : uint32 + val mutable public pPushConstantRanges : nativeptr + val mutable public pSpecializationInfo : nativeptr - new(pNext : nativeint, sampleCounts : VkSampleCountFlags, fragmentSize : VkExtent2D) = + new(pNext : nativeint, flags : VkShaderCreateFlagsEXT, stage : VkShaderStageFlags, nextStage : VkShaderStageFlags, codeType : VkShaderCodeTypeEXT, codeSize : uint64, pCode : nativeint, pName : cstr, setLayoutCount : uint32, pSetLayouts : nativeptr, pushConstantRangeCount : uint32, pPushConstantRanges : nativeptr, pSpecializationInfo : nativeptr) = { - sType = 1000226004u + sType = 1000482002u pNext = pNext - sampleCounts = sampleCounts - fragmentSize = fragmentSize + flags = flags + stage = stage + nextStage = nextStage + codeType = codeType + codeSize = codeSize + pCode = pCode + pName = pName + setLayoutCount = setLayoutCount + pSetLayouts = pSetLayouts + pushConstantRangeCount = pushConstantRangeCount + pPushConstantRanges = pPushConstantRanges + pSpecializationInfo = pSpecializationInfo } - new(sampleCounts : VkSampleCountFlags, fragmentSize : VkExtent2D) = - VkPhysicalDeviceFragmentShadingRateKHR(Unchecked.defaultof, sampleCounts, fragmentSize) + new(flags : VkShaderCreateFlagsEXT, stage : VkShaderStageFlags, nextStage : VkShaderStageFlags, codeType : VkShaderCodeTypeEXT, codeSize : uint64, pCode : nativeint, pName : cstr, setLayoutCount : uint32, pSetLayouts : nativeptr, pushConstantRangeCount : uint32, pPushConstantRanges : nativeptr, pSpecializationInfo : nativeptr) = + VkShaderCreateInfoEXT(Unchecked.defaultof, flags, stage, nextStage, codeType, codeSize, pCode, pName, setLayoutCount, pSetLayouts, pushConstantRangeCount, pPushConstantRanges, pSpecializationInfo) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.sampleCounts = Unchecked.defaultof && x.fragmentSize = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.stage = Unchecked.defaultof && x.nextStage = Unchecked.defaultof && x.codeType = Unchecked.defaultof && x.codeSize = Unchecked.defaultof && x.pCode = Unchecked.defaultof && x.pName = Unchecked.defaultof && x.setLayoutCount = Unchecked.defaultof && x.pSetLayouts = Unchecked.defaultof> && x.pushConstantRangeCount = Unchecked.defaultof && x.pPushConstantRanges = Unchecked.defaultof> && x.pSpecializationInfo = Unchecked.defaultof> static member Empty = - VkPhysicalDeviceFragmentShadingRateKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkShaderCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "sampleCounts = %A" x.sampleCounts - sprintf "fragmentSize = %A" x.fragmentSize - ] |> sprintf "VkPhysicalDeviceFragmentShadingRateKHR { %s }" + sprintf "flags = %A" x.flags + sprintf "stage = %A" x.stage + sprintf "nextStage = %A" x.nextStage + sprintf "codeType = %A" x.codeType + sprintf "codeSize = %A" x.codeSize + sprintf "pCode = %A" x.pCode + sprintf "pName = %A" x.pName + sprintf "setLayoutCount = %A" x.setLayoutCount + sprintf "pSetLayouts = %A" x.pSetLayouts + sprintf "pushConstantRangeCount = %A" x.pushConstantRangeCount + sprintf "pPushConstantRanges = %A" x.pPushConstantRanges + sprintf "pSpecializationInfo = %A" x.pSpecializationInfo + ] |> sprintf "VkShaderCreateInfoEXT { %s }" end + type VkShaderRequiredSubgroupSizeCreateInfoEXT = Vulkan13.VkPipelineShaderStageRequiredSubgroupSizeCreateInfo + [] - type VkPhysicalDeviceFragmentShadingRatePropertiesKHR = + type VkVertexInputAttributeDescription2EXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public minFragmentShadingRateAttachmentTexelSize : VkExtent2D - val mutable public maxFragmentShadingRateAttachmentTexelSize : VkExtent2D - val mutable public maxFragmentShadingRateAttachmentTexelSizeAspectRatio : uint32 - val mutable public primitiveFragmentShadingRateWithMultipleViewports : VkBool32 - val mutable public layeredShadingRateAttachments : VkBool32 - val mutable public fragmentShadingRateNonTrivialCombinerOps : VkBool32 - val mutable public maxFragmentSize : VkExtent2D - val mutable public maxFragmentSizeAspectRatio : uint32 - val mutable public maxFragmentShadingRateCoverageSamples : uint32 - val mutable public maxFragmentShadingRateRasterizationSamples : VkSampleCountFlags - val mutable public fragmentShadingRateWithShaderDepthStencilWrites : VkBool32 - val mutable public fragmentShadingRateWithSampleMask : VkBool32 - val mutable public fragmentShadingRateWithShaderSampleMask : VkBool32 - val mutable public fragmentShadingRateWithConservativeRasterization : VkBool32 - val mutable public fragmentShadingRateWithFragmentShaderInterlock : VkBool32 - val mutable public fragmentShadingRateWithCustomSampleLocations : VkBool32 - val mutable public fragmentShadingRateStrictMultiplyCombiner : VkBool32 + val mutable public location : uint32 + val mutable public binding : uint32 + val mutable public format : VkFormat + val mutable public offset : uint32 - new(pNext : nativeint, minFragmentShadingRateAttachmentTexelSize : VkExtent2D, maxFragmentShadingRateAttachmentTexelSize : VkExtent2D, maxFragmentShadingRateAttachmentTexelSizeAspectRatio : uint32, primitiveFragmentShadingRateWithMultipleViewports : VkBool32, layeredShadingRateAttachments : VkBool32, fragmentShadingRateNonTrivialCombinerOps : VkBool32, maxFragmentSize : VkExtent2D, maxFragmentSizeAspectRatio : uint32, maxFragmentShadingRateCoverageSamples : uint32, maxFragmentShadingRateRasterizationSamples : VkSampleCountFlags, fragmentShadingRateWithShaderDepthStencilWrites : VkBool32, fragmentShadingRateWithSampleMask : VkBool32, fragmentShadingRateWithShaderSampleMask : VkBool32, fragmentShadingRateWithConservativeRasterization : VkBool32, fragmentShadingRateWithFragmentShaderInterlock : VkBool32, fragmentShadingRateWithCustomSampleLocations : VkBool32, fragmentShadingRateStrictMultiplyCombiner : VkBool32) = + new(pNext : nativeint, location : uint32, binding : uint32, format : VkFormat, offset : uint32) = { - sType = 1000226002u + sType = 1000352002u pNext = pNext - minFragmentShadingRateAttachmentTexelSize = minFragmentShadingRateAttachmentTexelSize - maxFragmentShadingRateAttachmentTexelSize = maxFragmentShadingRateAttachmentTexelSize - maxFragmentShadingRateAttachmentTexelSizeAspectRatio = maxFragmentShadingRateAttachmentTexelSizeAspectRatio - primitiveFragmentShadingRateWithMultipleViewports = primitiveFragmentShadingRateWithMultipleViewports - layeredShadingRateAttachments = layeredShadingRateAttachments - fragmentShadingRateNonTrivialCombinerOps = fragmentShadingRateNonTrivialCombinerOps - maxFragmentSize = maxFragmentSize - maxFragmentSizeAspectRatio = maxFragmentSizeAspectRatio - maxFragmentShadingRateCoverageSamples = maxFragmentShadingRateCoverageSamples - maxFragmentShadingRateRasterizationSamples = maxFragmentShadingRateRasterizationSamples - fragmentShadingRateWithShaderDepthStencilWrites = fragmentShadingRateWithShaderDepthStencilWrites - fragmentShadingRateWithSampleMask = fragmentShadingRateWithSampleMask - fragmentShadingRateWithShaderSampleMask = fragmentShadingRateWithShaderSampleMask - fragmentShadingRateWithConservativeRasterization = fragmentShadingRateWithConservativeRasterization - fragmentShadingRateWithFragmentShaderInterlock = fragmentShadingRateWithFragmentShaderInterlock - fragmentShadingRateWithCustomSampleLocations = fragmentShadingRateWithCustomSampleLocations - fragmentShadingRateStrictMultiplyCombiner = fragmentShadingRateStrictMultiplyCombiner + location = location + binding = binding + format = format + offset = offset } - new(minFragmentShadingRateAttachmentTexelSize : VkExtent2D, maxFragmentShadingRateAttachmentTexelSize : VkExtent2D, maxFragmentShadingRateAttachmentTexelSizeAspectRatio : uint32, primitiveFragmentShadingRateWithMultipleViewports : VkBool32, layeredShadingRateAttachments : VkBool32, fragmentShadingRateNonTrivialCombinerOps : VkBool32, maxFragmentSize : VkExtent2D, maxFragmentSizeAspectRatio : uint32, maxFragmentShadingRateCoverageSamples : uint32, maxFragmentShadingRateRasterizationSamples : VkSampleCountFlags, fragmentShadingRateWithShaderDepthStencilWrites : VkBool32, fragmentShadingRateWithSampleMask : VkBool32, fragmentShadingRateWithShaderSampleMask : VkBool32, fragmentShadingRateWithConservativeRasterization : VkBool32, fragmentShadingRateWithFragmentShaderInterlock : VkBool32, fragmentShadingRateWithCustomSampleLocations : VkBool32, fragmentShadingRateStrictMultiplyCombiner : VkBool32) = - VkPhysicalDeviceFragmentShadingRatePropertiesKHR(Unchecked.defaultof, minFragmentShadingRateAttachmentTexelSize, maxFragmentShadingRateAttachmentTexelSize, maxFragmentShadingRateAttachmentTexelSizeAspectRatio, primitiveFragmentShadingRateWithMultipleViewports, layeredShadingRateAttachments, fragmentShadingRateNonTrivialCombinerOps, maxFragmentSize, maxFragmentSizeAspectRatio, maxFragmentShadingRateCoverageSamples, maxFragmentShadingRateRasterizationSamples, fragmentShadingRateWithShaderDepthStencilWrites, fragmentShadingRateWithSampleMask, fragmentShadingRateWithShaderSampleMask, fragmentShadingRateWithConservativeRasterization, fragmentShadingRateWithFragmentShaderInterlock, fragmentShadingRateWithCustomSampleLocations, fragmentShadingRateStrictMultiplyCombiner) + new(location : uint32, binding : uint32, format : VkFormat, offset : uint32) = + VkVertexInputAttributeDescription2EXT(Unchecked.defaultof, location, binding, format, offset) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.minFragmentShadingRateAttachmentTexelSize = Unchecked.defaultof && x.maxFragmentShadingRateAttachmentTexelSize = Unchecked.defaultof && x.maxFragmentShadingRateAttachmentTexelSizeAspectRatio = Unchecked.defaultof && x.primitiveFragmentShadingRateWithMultipleViewports = Unchecked.defaultof && x.layeredShadingRateAttachments = Unchecked.defaultof && x.fragmentShadingRateNonTrivialCombinerOps = Unchecked.defaultof && x.maxFragmentSize = Unchecked.defaultof && x.maxFragmentSizeAspectRatio = Unchecked.defaultof && x.maxFragmentShadingRateCoverageSamples = Unchecked.defaultof && x.maxFragmentShadingRateRasterizationSamples = Unchecked.defaultof && x.fragmentShadingRateWithShaderDepthStencilWrites = Unchecked.defaultof && x.fragmentShadingRateWithSampleMask = Unchecked.defaultof && x.fragmentShadingRateWithShaderSampleMask = Unchecked.defaultof && x.fragmentShadingRateWithConservativeRasterization = Unchecked.defaultof && x.fragmentShadingRateWithFragmentShaderInterlock = Unchecked.defaultof && x.fragmentShadingRateWithCustomSampleLocations = Unchecked.defaultof && x.fragmentShadingRateStrictMultiplyCombiner = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.location = Unchecked.defaultof && x.binding = Unchecked.defaultof && x.format = Unchecked.defaultof && x.offset = Unchecked.defaultof static member Empty = - VkPhysicalDeviceFragmentShadingRatePropertiesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkVertexInputAttributeDescription2EXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "minFragmentShadingRateAttachmentTexelSize = %A" x.minFragmentShadingRateAttachmentTexelSize - sprintf "maxFragmentShadingRateAttachmentTexelSize = %A" x.maxFragmentShadingRateAttachmentTexelSize - sprintf "maxFragmentShadingRateAttachmentTexelSizeAspectRatio = %A" x.maxFragmentShadingRateAttachmentTexelSizeAspectRatio - sprintf "primitiveFragmentShadingRateWithMultipleViewports = %A" x.primitiveFragmentShadingRateWithMultipleViewports - sprintf "layeredShadingRateAttachments = %A" x.layeredShadingRateAttachments - sprintf "fragmentShadingRateNonTrivialCombinerOps = %A" x.fragmentShadingRateNonTrivialCombinerOps - sprintf "maxFragmentSize = %A" x.maxFragmentSize - sprintf "maxFragmentSizeAspectRatio = %A" x.maxFragmentSizeAspectRatio - sprintf "maxFragmentShadingRateCoverageSamples = %A" x.maxFragmentShadingRateCoverageSamples - sprintf "maxFragmentShadingRateRasterizationSamples = %A" x.maxFragmentShadingRateRasterizationSamples - sprintf "fragmentShadingRateWithShaderDepthStencilWrites = %A" x.fragmentShadingRateWithShaderDepthStencilWrites - sprintf "fragmentShadingRateWithSampleMask = %A" x.fragmentShadingRateWithSampleMask - sprintf "fragmentShadingRateWithShaderSampleMask = %A" x.fragmentShadingRateWithShaderSampleMask - sprintf "fragmentShadingRateWithConservativeRasterization = %A" x.fragmentShadingRateWithConservativeRasterization - sprintf "fragmentShadingRateWithFragmentShaderInterlock = %A" x.fragmentShadingRateWithFragmentShaderInterlock - sprintf "fragmentShadingRateWithCustomSampleLocations = %A" x.fragmentShadingRateWithCustomSampleLocations - sprintf "fragmentShadingRateStrictMultiplyCombiner = %A" x.fragmentShadingRateStrictMultiplyCombiner - ] |> sprintf "VkPhysicalDeviceFragmentShadingRatePropertiesKHR { %s }" + sprintf "location = %A" x.location + sprintf "binding = %A" x.binding + sprintf "format = %A" x.format + sprintf "offset = %A" x.offset + ] |> sprintf "VkVertexInputAttributeDescription2EXT { %s }" end [] - type VkPipelineFragmentShadingRateStateCreateInfoKHR = + type VkVertexInputBindingDescription2EXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public fragmentSize : VkExtent2D - val mutable public combinerOps : VkFragmentShadingRateCombinerOpKHR_2 + val mutable public binding : uint32 + val mutable public stride : uint32 + val mutable public inputRate : VkVertexInputRate + val mutable public divisor : uint32 - new(pNext : nativeint, fragmentSize : VkExtent2D, combinerOps : VkFragmentShadingRateCombinerOpKHR_2) = + new(pNext : nativeint, binding : uint32, stride : uint32, inputRate : VkVertexInputRate, divisor : uint32) = { - sType = 1000226001u + sType = 1000352001u pNext = pNext - fragmentSize = fragmentSize - combinerOps = combinerOps + binding = binding + stride = stride + inputRate = inputRate + divisor = divisor } - new(fragmentSize : VkExtent2D, combinerOps : VkFragmentShadingRateCombinerOpKHR_2) = - VkPipelineFragmentShadingRateStateCreateInfoKHR(Unchecked.defaultof, fragmentSize, combinerOps) + new(binding : uint32, stride : uint32, inputRate : VkVertexInputRate, divisor : uint32) = + VkVertexInputBindingDescription2EXT(Unchecked.defaultof, binding, stride, inputRate, divisor) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.fragmentSize = Unchecked.defaultof && x.combinerOps = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.binding = Unchecked.defaultof && x.stride = Unchecked.defaultof && x.inputRate = Unchecked.defaultof && x.divisor = Unchecked.defaultof static member Empty = - VkPipelineFragmentShadingRateStateCreateInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkVertexInputBindingDescription2EXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "fragmentSize = %A" x.fragmentSize - sprintf "combinerOps = %A" x.combinerOps - ] |> sprintf "VkPipelineFragmentShadingRateStateCreateInfoKHR { %s }" + sprintf "binding = %A" x.binding + sprintf "stride = %A" x.stride + sprintf "inputRate = %A" x.inputRate + sprintf "divisor = %A" x.divisor + ] |> sprintf "VkVertexInputBindingDescription2EXT { %s }" end [] module EnumExtensions = - type VkAccessFlags with - static member inline FragmentShadingRateAttachmentReadBitKhr = unbox 0x00800000 - type VkDynamicState with - static member inline FragmentShadingRateKhr = unbox 1000226000 - type VkFormatFeatureFlags with - static member inline FragmentShadingRateAttachmentBitKhr = unbox 0x40000000 - type VkImageLayout with - static member inline FragmentShadingRateAttachmentOptimalKhr = unbox 1000164003 - type VkImageUsageFlags with - static member inline FragmentShadingRateAttachmentBitKhr = unbox 0x00000100 - type VkPipelineStageFlags with - static member inline FragmentShadingRateAttachmentBitKhr = unbox 0x00400000 + type VkObjectType with + static member inline ShaderExt = unbox 1000482000 + type VkResult with + static member inline IncompatibleShaderBinaryExt = unbox 1000482000 module VkRaw = [] - type VkGetPhysicalDeviceFragmentShadingRatesKHRDel = delegate of VkPhysicalDevice * nativeptr * nativeptr -> VkResult + type VkCreateShadersEXTDel = delegate of VkDevice * uint32 * nativeptr * nativeptr * nativeptr -> VkResult [] - type VkCmdSetFragmentShadingRateKHRDel = delegate of VkCommandBuffer * nativeptr * VkFragmentShadingRateCombinerOpKHR_2 -> unit + type VkDestroyShaderEXTDel = delegate of VkDevice * VkShaderEXT * nativeptr -> unit + [] + type VkGetShaderBinaryDataEXTDel = delegate of VkDevice * VkShaderEXT * nativeptr * nativeint -> VkResult + [] + type VkCmdBindShadersEXTDel = delegate of VkCommandBuffer * uint32 * nativeptr * nativeptr -> unit + [] + type VkCmdSetVertexInputEXTDel = delegate of VkCommandBuffer * uint32 * nativeptr * uint32 * nativeptr -> unit [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRFragmentShadingRate") - static let s_vkGetPhysicalDeviceFragmentShadingRatesKHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceFragmentShadingRatesKHR" - static let s_vkCmdSetFragmentShadingRateKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdSetFragmentShadingRateKHR" + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTShaderObject") + static let s_vkCreateShadersEXTDel = VkRaw.vkImportInstanceDelegate "vkCreateShadersEXT" + static let s_vkDestroyShaderEXTDel = VkRaw.vkImportInstanceDelegate "vkDestroyShaderEXT" + static let s_vkGetShaderBinaryDataEXTDel = VkRaw.vkImportInstanceDelegate "vkGetShaderBinaryDataEXT" + static let s_vkCmdBindShadersEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdBindShadersEXT" + static let s_vkCmdSetVertexInputEXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetVertexInputEXT" static do Report.End(3) |> ignore - static member vkGetPhysicalDeviceFragmentShadingRatesKHR = s_vkGetPhysicalDeviceFragmentShadingRatesKHRDel - static member vkCmdSetFragmentShadingRateKHR = s_vkCmdSetFragmentShadingRateKHRDel - let vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice : VkPhysicalDevice, pFragmentShadingRateCount : nativeptr, pFragmentShadingRates : nativeptr) = Loader.vkGetPhysicalDeviceFragmentShadingRatesKHR.Invoke(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates) - let vkCmdSetFragmentShadingRateKHR(commandBuffer : VkCommandBuffer, pFragmentSize : nativeptr, combinerOps : VkFragmentShadingRateCombinerOpKHR_2) = Loader.vkCmdSetFragmentShadingRateKHR.Invoke(commandBuffer, pFragmentSize, combinerOps) + static member vkCreateShadersEXT = s_vkCreateShadersEXTDel + static member vkDestroyShaderEXT = s_vkDestroyShaderEXTDel + static member vkGetShaderBinaryDataEXT = s_vkGetShaderBinaryDataEXTDel + static member vkCmdBindShadersEXT = s_vkCmdBindShadersEXTDel + static member vkCmdSetVertexInputEXT = s_vkCmdSetVertexInputEXTDel + let vkCreateShadersEXT(device : VkDevice, createInfoCount : uint32, pCreateInfos : nativeptr, pAllocator : nativeptr, pShaders : nativeptr) = Loader.vkCreateShadersEXT.Invoke(device, createInfoCount, pCreateInfos, pAllocator, pShaders) + let vkDestroyShaderEXT(device : VkDevice, shader : VkShaderEXT, pAllocator : nativeptr) = Loader.vkDestroyShaderEXT.Invoke(device, shader, pAllocator) + let vkGetShaderBinaryDataEXT(device : VkDevice, shader : VkShaderEXT, pDataSize : nativeptr, pData : nativeint) = Loader.vkGetShaderBinaryDataEXT.Invoke(device, shader, pDataSize, pData) + let vkCmdBindShadersEXT(commandBuffer : VkCommandBuffer, stageCount : uint32, pStages : nativeptr, pShaders : nativeptr) = Loader.vkCmdBindShadersEXT.Invoke(commandBuffer, stageCount, pStages, pShaders) + let vkCmdSetCullModeEXT = EXTExtendedDynamicState.VkRaw.vkCmdSetCullModeEXT + let vkCmdSetFrontFaceEXT = EXTExtendedDynamicState.VkRaw.vkCmdSetFrontFaceEXT + let vkCmdSetPrimitiveTopologyEXT = EXTExtendedDynamicState.VkRaw.vkCmdSetPrimitiveTopologyEXT + let vkCmdSetViewportWithCountEXT = EXTExtendedDynamicState.VkRaw.vkCmdSetViewportWithCountEXT + let vkCmdSetScissorWithCountEXT = EXTExtendedDynamicState.VkRaw.vkCmdSetScissorWithCountEXT + let vkCmdBindVertexBuffers2EXT = EXTExtendedDynamicState.VkRaw.vkCmdBindVertexBuffers2EXT + let vkCmdSetDepthTestEnableEXT = EXTExtendedDynamicState.VkRaw.vkCmdSetDepthTestEnableEXT + let vkCmdSetDepthWriteEnableEXT = EXTExtendedDynamicState.VkRaw.vkCmdSetDepthWriteEnableEXT + let vkCmdSetDepthCompareOpEXT = EXTExtendedDynamicState.VkRaw.vkCmdSetDepthCompareOpEXT + let vkCmdSetDepthBoundsTestEnableEXT = EXTExtendedDynamicState.VkRaw.vkCmdSetDepthBoundsTestEnableEXT + let vkCmdSetStencilTestEnableEXT = EXTExtendedDynamicState.VkRaw.vkCmdSetStencilTestEnableEXT + let vkCmdSetStencilOpEXT = EXTExtendedDynamicState.VkRaw.vkCmdSetStencilOpEXT + let vkCmdSetVertexInputEXT(commandBuffer : VkCommandBuffer, vertexBindingDescriptionCount : uint32, pVertexBindingDescriptions : nativeptr, vertexAttributeDescriptionCount : uint32, pVertexAttributeDescriptions : nativeptr) = Loader.vkCmdSetVertexInputEXT.Invoke(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions) + let vkCmdSetPatchControlPointsEXT = EXTExtendedDynamicState2.VkRaw.vkCmdSetPatchControlPointsEXT + let vkCmdSetRasterizerDiscardEnableEXT = EXTExtendedDynamicState2.VkRaw.vkCmdSetRasterizerDiscardEnableEXT + let vkCmdSetDepthBiasEnableEXT = EXTExtendedDynamicState2.VkRaw.vkCmdSetDepthBiasEnableEXT + let vkCmdSetLogicOpEXT = EXTExtendedDynamicState2.VkRaw.vkCmdSetLogicOpEXT + let vkCmdSetPrimitiveRestartEnableEXT = EXTExtendedDynamicState2.VkRaw.vkCmdSetPrimitiveRestartEnableEXT + let vkCmdSetTessellationDomainOriginEXT = EXTExtendedDynamicState3.``KHRMaintenance2 | Vulkan11``.VkRaw.vkCmdSetTessellationDomainOriginEXT + let vkCmdSetDepthClampEnableEXT = EXTExtendedDynamicState3.VkRaw.vkCmdSetDepthClampEnableEXT + let vkCmdSetPolygonModeEXT = EXTExtendedDynamicState3.VkRaw.vkCmdSetPolygonModeEXT + let vkCmdSetRasterizationSamplesEXT = EXTExtendedDynamicState3.VkRaw.vkCmdSetRasterizationSamplesEXT + let vkCmdSetSampleMaskEXT = EXTExtendedDynamicState3.VkRaw.vkCmdSetSampleMaskEXT + let vkCmdSetAlphaToCoverageEnableEXT = EXTExtendedDynamicState3.VkRaw.vkCmdSetAlphaToCoverageEnableEXT + let vkCmdSetAlphaToOneEnableEXT = EXTExtendedDynamicState3.VkRaw.vkCmdSetAlphaToOneEnableEXT + let vkCmdSetLogicOpEnableEXT = EXTExtendedDynamicState3.VkRaw.vkCmdSetLogicOpEnableEXT + let vkCmdSetColorBlendEnableEXT = EXTExtendedDynamicState3.VkRaw.vkCmdSetColorBlendEnableEXT + let vkCmdSetColorBlendEquationEXT = EXTExtendedDynamicState3.VkRaw.vkCmdSetColorBlendEquationEXT + let vkCmdSetColorWriteMaskEXT = EXTExtendedDynamicState3.VkRaw.vkCmdSetColorWriteMaskEXT + + [] + module ``EXTTransformFeedback`` = + module VkRaw = + let vkCmdSetRasterizationStreamEXT = EXTExtendedDynamicState3.``EXTTransformFeedback``.VkRaw.vkCmdSetRasterizationStreamEXT + + [] + module ``EXTConservativeRasterization`` = + module VkRaw = + let vkCmdSetConservativeRasterizationModeEXT = EXTExtendedDynamicState3.``EXTConservativeRasterization``.VkRaw.vkCmdSetConservativeRasterizationModeEXT + let vkCmdSetExtraPrimitiveOverestimationSizeEXT = EXTExtendedDynamicState3.``EXTConservativeRasterization``.VkRaw.vkCmdSetExtraPrimitiveOverestimationSizeEXT + + [] + module ``EXTDepthClipEnable`` = + module VkRaw = + let vkCmdSetDepthClipEnableEXT = EXTExtendedDynamicState3.``EXTDepthClipEnable``.VkRaw.vkCmdSetDepthClipEnableEXT + + [] + module ``EXTSampleLocations`` = + module VkRaw = + let vkCmdSetSampleLocationsEnableEXT = EXTExtendedDynamicState3.``EXTSampleLocations``.VkRaw.vkCmdSetSampleLocationsEnableEXT + + [] + module ``EXTBlendOperationAdvanced`` = + module VkRaw = + let vkCmdSetColorBlendAdvancedEXT = EXTExtendedDynamicState3.``EXTBlendOperationAdvanced``.VkRaw.vkCmdSetColorBlendAdvancedEXT + + [] + module ``EXTProvokingVertex`` = + module VkRaw = + let vkCmdSetProvokingVertexModeEXT = EXTExtendedDynamicState3.``EXTProvokingVertex``.VkRaw.vkCmdSetProvokingVertexModeEXT + + [] + module ``EXTLineRasterization`` = + module VkRaw = + let vkCmdSetLineRasterizationModeEXT = EXTExtendedDynamicState3.``EXTLineRasterization``.VkRaw.vkCmdSetLineRasterizationModeEXT + let vkCmdSetLineStippleEnableEXT = EXTExtendedDynamicState3.``EXTLineRasterization``.VkRaw.vkCmdSetLineStippleEnableEXT - module KHRFormatFeatureFlags2 = + [] + module ``EXTDepthClipControl`` = + module VkRaw = + let vkCmdSetDepthClipNegativeOneToOneEXT = EXTExtendedDynamicState3.``EXTDepthClipControl``.VkRaw.vkCmdSetDepthClipNegativeOneToOneEXT + + [] + module ``EXTSubgroupSizeControl | Vulkan13`` = [] module EnumExtensions = - type VkFormatFeatureFlags2 with - static member inline FormatFeature2FragmentShadingRateAttachmentBitKhr = unbox 0x40000000 + type VkShaderCreateFlagsEXT with + static member inline AllowVaryingSubgroupSizeBit = unbox 0x00000002 + static member inline RequireFullSubgroupsBit = unbox 0x00000004 -module NVShadingRateImage = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_NV_shading_rate_image" - let Number = 165 + [] + module ``EXTMeshShader | NVMeshShader`` = + [] + module EnumExtensions = + type VkShaderCreateFlagsEXT with + static member inline NoTaskShaderBit = unbox 0x00000008 - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] + [] + module ``KHRDeviceGroup | Vulkan11`` = + [] + module EnumExtensions = + type VkShaderCreateFlagsEXT with + static member inline DispatchBaseBit = unbox 0x00000010 - type VkShadingRatePaletteEntryNV = - | NoInvocations = 0 - | D16InvocationsPerPixel = 1 - | D8InvocationsPerPixel = 2 - | D4InvocationsPerPixel = 3 - | D2InvocationsPerPixel = 4 - | D1InvocationPerPixel = 5 - | D1InvocationPer2x1Pixels = 6 - | D1InvocationPer1x2Pixels = 7 - | D1InvocationPer2x2Pixels = 8 - | D1InvocationPer4x2Pixels = 9 - | D1InvocationPer2x4Pixels = 10 - | D1InvocationPer4x4Pixels = 11 - type VkCoarseSampleOrderTypeNV = - | Default = 0 - | Custom = 1 - | PixelMajor = 2 - | SampleMajor = 3 + [] + module ``KHRFragmentShadingRate`` = + [] + module EnumExtensions = + type VkShaderCreateFlagsEXT with + static member inline FragmentShadingRateAttachmentBit = unbox 0x00000020 - [] - type VkCoarseSampleLocationNV = - struct - val mutable public pixelX : uint32 - val mutable public pixelY : uint32 - val mutable public sample : uint32 + [] + module ``EXTFragmentDensityMap`` = + [] + module EnumExtensions = + type VkShaderCreateFlagsEXT with + static member inline FragmentDensityMapAttachmentBit = unbox 0x00000040 - new(pixelX : uint32, pixelY : uint32, sample : uint32) = - { - pixelX = pixelX - pixelY = pixelY - sample = sample - } - member x.IsEmpty = - x.pixelX = Unchecked.defaultof && x.pixelY = Unchecked.defaultof && x.sample = Unchecked.defaultof + [] + module ``NVClipSpaceWScaling`` = + module VkRaw = + let vkCmdSetViewportWScalingEnableNV = EXTExtendedDynamicState3.``NVClipSpaceWScaling``.VkRaw.vkCmdSetViewportWScalingEnableNV - static member Empty = - VkCoarseSampleLocationNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + [] + module ``NVViewportSwizzle`` = + module VkRaw = + let vkCmdSetViewportSwizzleNV = EXTExtendedDynamicState3.``NVViewportSwizzle``.VkRaw.vkCmdSetViewportSwizzleNV - override x.ToString() = - String.concat "; " [ - sprintf "pixelX = %A" x.pixelX - sprintf "pixelY = %A" x.pixelY - sprintf "sample = %A" x.sample - ] |> sprintf "VkCoarseSampleLocationNV { %s }" - end + [] + module ``NVFragmentCoverageToColor`` = + module VkRaw = + let vkCmdSetCoverageToColorEnableNV = EXTExtendedDynamicState3.``NVFragmentCoverageToColor``.VkRaw.vkCmdSetCoverageToColorEnableNV + let vkCmdSetCoverageToColorLocationNV = EXTExtendedDynamicState3.``NVFragmentCoverageToColor``.VkRaw.vkCmdSetCoverageToColorLocationNV + + [] + module ``NVFramebufferMixedSamples`` = + module VkRaw = + let vkCmdSetCoverageModulationModeNV = EXTExtendedDynamicState3.``NVFramebufferMixedSamples``.VkRaw.vkCmdSetCoverageModulationModeNV + let vkCmdSetCoverageModulationTableEnableNV = EXTExtendedDynamicState3.``NVFramebufferMixedSamples``.VkRaw.vkCmdSetCoverageModulationTableEnableNV + let vkCmdSetCoverageModulationTableNV = EXTExtendedDynamicState3.``NVFramebufferMixedSamples``.VkRaw.vkCmdSetCoverageModulationTableNV + + [] + module ``NVShadingRateImage`` = + module VkRaw = + let vkCmdSetShadingRateImageEnableNV = EXTExtendedDynamicState3.``NVShadingRateImage``.VkRaw.vkCmdSetShadingRateImageEnableNV + + [] + module ``NVRepresentativeFragmentTest`` = + module VkRaw = + let vkCmdSetRepresentativeFragmentTestEnableNV = EXTExtendedDynamicState3.``NVRepresentativeFragmentTest``.VkRaw.vkCmdSetRepresentativeFragmentTestEnableNV + + [] + module ``NVCoverageReductionMode`` = + module VkRaw = + let vkCmdSetCoverageReductionModeNV = EXTExtendedDynamicState3.``NVCoverageReductionMode``.VkRaw.vkCmdSetCoverageReductionModeNV + +module EXTShaderStencilExport = + let Type = ExtensionType.Device + let Name = "VK_EXT_shader_stencil_export" + let Number = 141 + +/// Deprecated by Vulkan12. +module EXTShaderSubgroupBallot = + let Type = ExtensionType.Device + let Name = "VK_EXT_shader_subgroup_ballot" + let Number = 65 + +/// Deprecated by Vulkan11. +module EXTShaderSubgroupVote = + let Type = ExtensionType.Device + let Name = "VK_EXT_shader_subgroup_vote" + let Number = 66 + +/// Requires Vulkan13. +module EXTShaderTileImage = + let Type = ExtensionType.Device + let Name = "VK_EXT_shader_tile_image" + let Number = 396 [] - type VkCoarseSampleOrderCustomNV = + type VkPhysicalDeviceShaderTileImageFeaturesEXT = struct - val mutable public shadingRate : VkShadingRatePaletteEntryNV - val mutable public sampleCount : uint32 - val mutable public sampleLocationCount : uint32 - val mutable public pSampleLocations : nativeptr + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public shaderTileImageColorReadAccess : VkBool32 + val mutable public shaderTileImageDepthReadAccess : VkBool32 + val mutable public shaderTileImageStencilReadAccess : VkBool32 - new(shadingRate : VkShadingRatePaletteEntryNV, sampleCount : uint32, sampleLocationCount : uint32, pSampleLocations : nativeptr) = + new(pNext : nativeint, shaderTileImageColorReadAccess : VkBool32, shaderTileImageDepthReadAccess : VkBool32, shaderTileImageStencilReadAccess : VkBool32) = { - shadingRate = shadingRate - sampleCount = sampleCount - sampleLocationCount = sampleLocationCount - pSampleLocations = pSampleLocations + sType = 1000395000u + pNext = pNext + shaderTileImageColorReadAccess = shaderTileImageColorReadAccess + shaderTileImageDepthReadAccess = shaderTileImageDepthReadAccess + shaderTileImageStencilReadAccess = shaderTileImageStencilReadAccess } + new(shaderTileImageColorReadAccess : VkBool32, shaderTileImageDepthReadAccess : VkBool32, shaderTileImageStencilReadAccess : VkBool32) = + VkPhysicalDeviceShaderTileImageFeaturesEXT(Unchecked.defaultof, shaderTileImageColorReadAccess, shaderTileImageDepthReadAccess, shaderTileImageStencilReadAccess) + member x.IsEmpty = - x.shadingRate = Unchecked.defaultof && x.sampleCount = Unchecked.defaultof && x.sampleLocationCount = Unchecked.defaultof && x.pSampleLocations = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.shaderTileImageColorReadAccess = Unchecked.defaultof && x.shaderTileImageDepthReadAccess = Unchecked.defaultof && x.shaderTileImageStencilReadAccess = Unchecked.defaultof static member Empty = - VkCoarseSampleOrderCustomNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + VkPhysicalDeviceShaderTileImageFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ - sprintf "shadingRate = %A" x.shadingRate - sprintf "sampleCount = %A" x.sampleCount - sprintf "sampleLocationCount = %A" x.sampleLocationCount - sprintf "pSampleLocations = %A" x.pSampleLocations - ] |> sprintf "VkCoarseSampleOrderCustomNV { %s }" + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "shaderTileImageColorReadAccess = %A" x.shaderTileImageColorReadAccess + sprintf "shaderTileImageDepthReadAccess = %A" x.shaderTileImageDepthReadAccess + sprintf "shaderTileImageStencilReadAccess = %A" x.shaderTileImageStencilReadAccess + ] |> sprintf "VkPhysicalDeviceShaderTileImageFeaturesEXT { %s }" end [] - type VkPhysicalDeviceShadingRateImageFeaturesNV = + type VkPhysicalDeviceShaderTileImagePropertiesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public shadingRateImage : VkBool32 - val mutable public shadingRateCoarseSampleOrder : VkBool32 + val mutable public shaderTileImageCoherentReadAccelerated : VkBool32 + val mutable public shaderTileImageReadSampleFromPixelRateInvocation : VkBool32 + val mutable public shaderTileImageReadFromHelperInvocation : VkBool32 - new(pNext : nativeint, shadingRateImage : VkBool32, shadingRateCoarseSampleOrder : VkBool32) = + new(pNext : nativeint, shaderTileImageCoherentReadAccelerated : VkBool32, shaderTileImageReadSampleFromPixelRateInvocation : VkBool32, shaderTileImageReadFromHelperInvocation : VkBool32) = { - sType = 1000164001u + sType = 1000395001u pNext = pNext - shadingRateImage = shadingRateImage - shadingRateCoarseSampleOrder = shadingRateCoarseSampleOrder + shaderTileImageCoherentReadAccelerated = shaderTileImageCoherentReadAccelerated + shaderTileImageReadSampleFromPixelRateInvocation = shaderTileImageReadSampleFromPixelRateInvocation + shaderTileImageReadFromHelperInvocation = shaderTileImageReadFromHelperInvocation } - new(shadingRateImage : VkBool32, shadingRateCoarseSampleOrder : VkBool32) = - VkPhysicalDeviceShadingRateImageFeaturesNV(Unchecked.defaultof, shadingRateImage, shadingRateCoarseSampleOrder) + new(shaderTileImageCoherentReadAccelerated : VkBool32, shaderTileImageReadSampleFromPixelRateInvocation : VkBool32, shaderTileImageReadFromHelperInvocation : VkBool32) = + VkPhysicalDeviceShaderTileImagePropertiesEXT(Unchecked.defaultof, shaderTileImageCoherentReadAccelerated, shaderTileImageReadSampleFromPixelRateInvocation, shaderTileImageReadFromHelperInvocation) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.shadingRateImage = Unchecked.defaultof && x.shadingRateCoarseSampleOrder = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.shaderTileImageCoherentReadAccelerated = Unchecked.defaultof && x.shaderTileImageReadSampleFromPixelRateInvocation = Unchecked.defaultof && x.shaderTileImageReadFromHelperInvocation = Unchecked.defaultof static member Empty = - VkPhysicalDeviceShadingRateImageFeaturesNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceShaderTileImagePropertiesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "shadingRateImage = %A" x.shadingRateImage - sprintf "shadingRateCoarseSampleOrder = %A" x.shadingRateCoarseSampleOrder - ] |> sprintf "VkPhysicalDeviceShadingRateImageFeaturesNV { %s }" + sprintf "shaderTileImageCoherentReadAccelerated = %A" x.shaderTileImageCoherentReadAccelerated + sprintf "shaderTileImageReadSampleFromPixelRateInvocation = %A" x.shaderTileImageReadSampleFromPixelRateInvocation + sprintf "shaderTileImageReadFromHelperInvocation = %A" x.shaderTileImageReadFromHelperInvocation + ] |> sprintf "VkPhysicalDeviceShaderTileImagePropertiesEXT { %s }" end + + +/// Promoted to Vulkan12. +module EXTShaderViewportIndexLayer = + let Type = ExtensionType.Device + let Name = "VK_EXT_shader_viewport_index_layer" + let Number = 163 + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module EXTSubpassMergeFeedback = + let Type = ExtensionType.Device + let Name = "VK_EXT_subpass_merge_feedback" + let Number = 459 + + type VkSubpassMergeStatusEXT = + | Merged = 0 + | Disallowed = 1 + | NotMergedSideEffects = 2 + | NotMergedSamplesMismatch = 3 + | NotMergedViewsMismatch = 4 + | NotMergedAliasing = 5 + | NotMergedDependencies = 6 + | NotMergedIncompatibleInputAttachment = 7 + | NotMergedTooManyAttachments = 8 + | NotMergedInsufficientStorage = 9 + | NotMergedDepthStencilCount = 10 + | NotMergedResolveAttachmentReuse = 11 + | NotMergedSingleSubpass = 12 + | NotMergedUnspecified = 13 + + [] - type VkPhysicalDeviceShadingRateImagePropertiesNV = + type VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public shadingRateTexelSize : VkExtent2D - val mutable public shadingRatePaletteSize : uint32 - val mutable public shadingRateMaxCoarseSamples : uint32 + val mutable public subpassMergeFeedback : VkBool32 - new(pNext : nativeint, shadingRateTexelSize : VkExtent2D, shadingRatePaletteSize : uint32, shadingRateMaxCoarseSamples : uint32) = + new(pNext : nativeint, subpassMergeFeedback : VkBool32) = { - sType = 1000164002u + sType = 1000458000u pNext = pNext - shadingRateTexelSize = shadingRateTexelSize - shadingRatePaletteSize = shadingRatePaletteSize - shadingRateMaxCoarseSamples = shadingRateMaxCoarseSamples + subpassMergeFeedback = subpassMergeFeedback } - new(shadingRateTexelSize : VkExtent2D, shadingRatePaletteSize : uint32, shadingRateMaxCoarseSamples : uint32) = - VkPhysicalDeviceShadingRateImagePropertiesNV(Unchecked.defaultof, shadingRateTexelSize, shadingRatePaletteSize, shadingRateMaxCoarseSamples) + new(subpassMergeFeedback : VkBool32) = + VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT(Unchecked.defaultof, subpassMergeFeedback) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.shadingRateTexelSize = Unchecked.defaultof && x.shadingRatePaletteSize = Unchecked.defaultof && x.shadingRateMaxCoarseSamples = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.subpassMergeFeedback = Unchecked.defaultof static member Empty = - VkPhysicalDeviceShadingRateImagePropertiesNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "shadingRateTexelSize = %A" x.shadingRateTexelSize - sprintf "shadingRatePaletteSize = %A" x.shadingRatePaletteSize - sprintf "shadingRateMaxCoarseSamples = %A" x.shadingRateMaxCoarseSamples - ] |> sprintf "VkPhysicalDeviceShadingRateImagePropertiesNV { %s }" + sprintf "subpassMergeFeedback = %A" x.subpassMergeFeedback + ] |> sprintf "VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT { %s }" end [] - type VkPipelineViewportCoarseSampleOrderStateCreateInfoNV = + type VkRenderPassCreationControlEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public sampleOrderType : VkCoarseSampleOrderTypeNV - val mutable public customSampleOrderCount : uint32 - val mutable public pCustomSampleOrders : nativeptr + val mutable public disallowMerging : VkBool32 - new(pNext : nativeint, sampleOrderType : VkCoarseSampleOrderTypeNV, customSampleOrderCount : uint32, pCustomSampleOrders : nativeptr) = + new(pNext : nativeint, disallowMerging : VkBool32) = { - sType = 1000164005u + sType = 1000458001u pNext = pNext - sampleOrderType = sampleOrderType - customSampleOrderCount = customSampleOrderCount - pCustomSampleOrders = pCustomSampleOrders + disallowMerging = disallowMerging } - new(sampleOrderType : VkCoarseSampleOrderTypeNV, customSampleOrderCount : uint32, pCustomSampleOrders : nativeptr) = - VkPipelineViewportCoarseSampleOrderStateCreateInfoNV(Unchecked.defaultof, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) + new(disallowMerging : VkBool32) = + VkRenderPassCreationControlEXT(Unchecked.defaultof, disallowMerging) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.sampleOrderType = Unchecked.defaultof && x.customSampleOrderCount = Unchecked.defaultof && x.pCustomSampleOrders = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.disallowMerging = Unchecked.defaultof static member Empty = - VkPipelineViewportCoarseSampleOrderStateCreateInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + VkRenderPassCreationControlEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "sampleOrderType = %A" x.sampleOrderType - sprintf "customSampleOrderCount = %A" x.customSampleOrderCount - sprintf "pCustomSampleOrders = %A" x.pCustomSampleOrders - ] |> sprintf "VkPipelineViewportCoarseSampleOrderStateCreateInfoNV { %s }" + sprintf "disallowMerging = %A" x.disallowMerging + ] |> sprintf "VkRenderPassCreationControlEXT { %s }" end [] - type VkShadingRatePaletteNV = + type VkRenderPassCreationFeedbackInfoEXT = struct - val mutable public shadingRatePaletteEntryCount : uint32 - val mutable public pShadingRatePaletteEntries : nativeptr + val mutable public postMergeSubpassCount : uint32 - new(shadingRatePaletteEntryCount : uint32, pShadingRatePaletteEntries : nativeptr) = + new(postMergeSubpassCount : uint32) = { - shadingRatePaletteEntryCount = shadingRatePaletteEntryCount - pShadingRatePaletteEntries = pShadingRatePaletteEntries + postMergeSubpassCount = postMergeSubpassCount } member x.IsEmpty = - x.shadingRatePaletteEntryCount = Unchecked.defaultof && x.pShadingRatePaletteEntries = Unchecked.defaultof> + x.postMergeSubpassCount = Unchecked.defaultof static member Empty = - VkShadingRatePaletteNV(Unchecked.defaultof, Unchecked.defaultof>) + VkRenderPassCreationFeedbackInfoEXT(Unchecked.defaultof) override x.ToString() = String.concat "; " [ - sprintf "shadingRatePaletteEntryCount = %A" x.shadingRatePaletteEntryCount - sprintf "pShadingRatePaletteEntries = %A" x.pShadingRatePaletteEntries - ] |> sprintf "VkShadingRatePaletteNV { %s }" + sprintf "postMergeSubpassCount = %A" x.postMergeSubpassCount + ] |> sprintf "VkRenderPassCreationFeedbackInfoEXT { %s }" end [] - type VkPipelineViewportShadingRateImageStateCreateInfoNV = + type VkRenderPassCreationFeedbackCreateInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public shadingRateImageEnable : VkBool32 - val mutable public viewportCount : uint32 - val mutable public pShadingRatePalettes : nativeptr + val mutable public pRenderPassFeedback : nativeptr - new(pNext : nativeint, shadingRateImageEnable : VkBool32, viewportCount : uint32, pShadingRatePalettes : nativeptr) = + new(pNext : nativeint, pRenderPassFeedback : nativeptr) = { - sType = 1000164000u + sType = 1000458002u pNext = pNext - shadingRateImageEnable = shadingRateImageEnable - viewportCount = viewportCount - pShadingRatePalettes = pShadingRatePalettes + pRenderPassFeedback = pRenderPassFeedback } - new(shadingRateImageEnable : VkBool32, viewportCount : uint32, pShadingRatePalettes : nativeptr) = - VkPipelineViewportShadingRateImageStateCreateInfoNV(Unchecked.defaultof, shadingRateImageEnable, viewportCount, pShadingRatePalettes) + new(pRenderPassFeedback : nativeptr) = + VkRenderPassCreationFeedbackCreateInfoEXT(Unchecked.defaultof, pRenderPassFeedback) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.shadingRateImageEnable = Unchecked.defaultof && x.viewportCount = Unchecked.defaultof && x.pShadingRatePalettes = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.pRenderPassFeedback = Unchecked.defaultof> static member Empty = - VkPipelineViewportShadingRateImageStateCreateInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + VkRenderPassCreationFeedbackCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "shadingRateImageEnable = %A" x.shadingRateImageEnable - sprintf "viewportCount = %A" x.viewportCount - sprintf "pShadingRatePalettes = %A" x.pShadingRatePalettes - ] |> sprintf "VkPipelineViewportShadingRateImageStateCreateInfoNV { %s }" + sprintf "pRenderPassFeedback = %A" x.pRenderPassFeedback + ] |> sprintf "VkRenderPassCreationFeedbackCreateInfoEXT { %s }" end + [] + type VkRenderPassSubpassFeedbackInfoEXT = + struct + val mutable public subpassMergeStatus : VkSubpassMergeStatusEXT + val mutable public description : String256 + val mutable public postMergeIndex : uint32 - [] - module EnumExtensions = - type VkAccessFlags with - static member inline ShadingRateImageReadBitNv = unbox 0x00800000 - type VkDynamicState with - static member inline ViewportShadingRatePaletteNv = unbox 1000164004 - static member inline ViewportCoarseSampleOrderNv = unbox 1000164006 - type VkImageLayout with - static member inline ShadingRateOptimalNv = unbox 1000164003 - type VkImageUsageFlags with - static member inline ShadingRateImageBitNv = unbox 0x00000100 - type VkPipelineStageFlags with - static member inline ShadingRateImageBitNv = unbox 0x00400000 - - module VkRaw = - [] - type VkCmdBindShadingRateImageNVDel = delegate of VkCommandBuffer * VkImageView * VkImageLayout -> unit - [] - type VkCmdSetViewportShadingRatePaletteNVDel = delegate of VkCommandBuffer * uint32 * uint32 * nativeptr -> unit - [] - type VkCmdSetCoarseSampleOrderNVDel = delegate of VkCommandBuffer * VkCoarseSampleOrderTypeNV * uint32 * nativeptr -> unit - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading NVShadingRateImage") - static let s_vkCmdBindShadingRateImageNVDel = VkRaw.vkImportInstanceDelegate "vkCmdBindShadingRateImageNV" - static let s_vkCmdSetViewportShadingRatePaletteNVDel = VkRaw.vkImportInstanceDelegate "vkCmdSetViewportShadingRatePaletteNV" - static let s_vkCmdSetCoarseSampleOrderNVDel = VkRaw.vkImportInstanceDelegate "vkCmdSetCoarseSampleOrderNV" - static do Report.End(3) |> ignore - static member vkCmdBindShadingRateImageNV = s_vkCmdBindShadingRateImageNVDel - static member vkCmdSetViewportShadingRatePaletteNV = s_vkCmdSetViewportShadingRatePaletteNVDel - static member vkCmdSetCoarseSampleOrderNV = s_vkCmdSetCoarseSampleOrderNVDel - let vkCmdBindShadingRateImageNV(commandBuffer : VkCommandBuffer, imageView : VkImageView, imageLayout : VkImageLayout) = Loader.vkCmdBindShadingRateImageNV.Invoke(commandBuffer, imageView, imageLayout) - let vkCmdSetViewportShadingRatePaletteNV(commandBuffer : VkCommandBuffer, firstViewport : uint32, viewportCount : uint32, pShadingRatePalettes : nativeptr) = Loader.vkCmdSetViewportShadingRatePaletteNV.Invoke(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes) - let vkCmdSetCoarseSampleOrderNV(commandBuffer : VkCommandBuffer, sampleOrderType : VkCoarseSampleOrderTypeNV, customSampleOrderCount : uint32, pCustomSampleOrders : nativeptr) = Loader.vkCmdSetCoarseSampleOrderNV.Invoke(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders) + new(subpassMergeStatus : VkSubpassMergeStatusEXT, description : String256, postMergeIndex : uint32) = + { + subpassMergeStatus = subpassMergeStatus + description = description + postMergeIndex = postMergeIndex + } -module KHRDeferredHostOperations = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_KHR_deferred_host_operations" - let Number = 269 + member x.IsEmpty = + x.subpassMergeStatus = Unchecked.defaultof && x.description = Unchecked.defaultof && x.postMergeIndex = Unchecked.defaultof + static member Empty = + VkRenderPassSubpassFeedbackInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + override x.ToString() = + String.concat "; " [ + sprintf "subpassMergeStatus = %A" x.subpassMergeStatus + sprintf "description = %A" x.description + sprintf "postMergeIndex = %A" x.postMergeIndex + ] |> sprintf "VkRenderPassSubpassFeedbackInfoEXT { %s }" + end [] - type VkDeferredOperationKHR = + type VkRenderPassSubpassFeedbackCreateInfoEXT = struct - val mutable public Handle : uint64 - new(h) = { Handle = h } - static member Null = VkDeferredOperationKHR(0UL) - member x.IsNull = x.Handle = 0UL - member x.IsValid = x.Handle <> 0UL - end - - [] - module EnumExtensions = - type VkObjectType with - static member inline DeferredOperationKhr = unbox 1000268000 - type VkResult with - static member inline ThreadIdleKhr = unbox 1000268000 - static member inline ThreadDoneKhr = unbox 1000268001 - static member inline OperationDeferredKhr = unbox 1000268002 - static member inline OperationNotDeferredKhr = unbox 1000268003 - - module VkRaw = - [] - type VkCreateDeferredOperationKHRDel = delegate of VkDevice * nativeptr * nativeptr -> VkResult - [] - type VkDestroyDeferredOperationKHRDel = delegate of VkDevice * VkDeferredOperationKHR * nativeptr -> unit - [] - type VkGetDeferredOperationMaxConcurrencyKHRDel = delegate of VkDevice * VkDeferredOperationKHR -> uint32 - [] - type VkGetDeferredOperationResultKHRDel = delegate of VkDevice * VkDeferredOperationKHR -> VkResult - [] - type VkDeferredOperationJoinKHRDel = delegate of VkDevice * VkDeferredOperationKHR -> VkResult - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRDeferredHostOperations") - static let s_vkCreateDeferredOperationKHRDel = VkRaw.vkImportInstanceDelegate "vkCreateDeferredOperationKHR" - static let s_vkDestroyDeferredOperationKHRDel = VkRaw.vkImportInstanceDelegate "vkDestroyDeferredOperationKHR" - static let s_vkGetDeferredOperationMaxConcurrencyKHRDel = VkRaw.vkImportInstanceDelegate "vkGetDeferredOperationMaxConcurrencyKHR" - static let s_vkGetDeferredOperationResultKHRDel = VkRaw.vkImportInstanceDelegate "vkGetDeferredOperationResultKHR" - static let s_vkDeferredOperationJoinKHRDel = VkRaw.vkImportInstanceDelegate "vkDeferredOperationJoinKHR" - static do Report.End(3) |> ignore - static member vkCreateDeferredOperationKHR = s_vkCreateDeferredOperationKHRDel - static member vkDestroyDeferredOperationKHR = s_vkDestroyDeferredOperationKHRDel - static member vkGetDeferredOperationMaxConcurrencyKHR = s_vkGetDeferredOperationMaxConcurrencyKHRDel - static member vkGetDeferredOperationResultKHR = s_vkGetDeferredOperationResultKHRDel - static member vkDeferredOperationJoinKHR = s_vkDeferredOperationJoinKHRDel - let vkCreateDeferredOperationKHR(device : VkDevice, pAllocator : nativeptr, pDeferredOperation : nativeptr) = Loader.vkCreateDeferredOperationKHR.Invoke(device, pAllocator, pDeferredOperation) - let vkDestroyDeferredOperationKHR(device : VkDevice, operation : VkDeferredOperationKHR, pAllocator : nativeptr) = Loader.vkDestroyDeferredOperationKHR.Invoke(device, operation, pAllocator) - let vkGetDeferredOperationMaxConcurrencyKHR(device : VkDevice, operation : VkDeferredOperationKHR) = Loader.vkGetDeferredOperationMaxConcurrencyKHR.Invoke(device, operation) - let vkGetDeferredOperationResultKHR(device : VkDevice, operation : VkDeferredOperationKHR) = Loader.vkGetDeferredOperationResultKHR.Invoke(device, operation) - let vkDeferredOperationJoinKHR(device : VkDevice, operation : VkDeferredOperationKHR) = Loader.vkDeferredOperationJoinKHR.Invoke(device, operation) + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public pSubpassFeedback : nativeptr -module KHRAccelerationStructure = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open EXTDebugReport - open EXTDescriptorIndexing - open KHRBufferDeviceAddress - open KHRDeferredHostOperations - open KHRGetPhysicalDeviceProperties2 - open KHRMaintenance3 - let Name = "VK_KHR_acceleration_structure" - let Number = 151 + new(pNext : nativeint, pSubpassFeedback : nativeptr) = + { + sType = 1000458003u + pNext = pNext + pSubpassFeedback = pSubpassFeedback + } - let Required = [ EXTDescriptorIndexing.Name; KHRBufferDeviceAddress.Name; KHRDeferredHostOperations.Name ] + new(pSubpassFeedback : nativeptr) = + VkRenderPassSubpassFeedbackCreateInfoEXT(Unchecked.defaultof, pSubpassFeedback) + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.pSubpassFeedback = Unchecked.defaultof> + static member Empty = + VkRenderPassSubpassFeedbackCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof>) - [] - type VkAccelerationStructureKHR = - struct - val mutable public Handle : uint64 - new(h) = { Handle = h } - static member Null = VkAccelerationStructureKHR(0UL) - member x.IsNull = x.Handle = 0UL - member x.IsValid = x.Handle <> 0UL + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "pSubpassFeedback = %A" x.pSubpassFeedback + ] |> sprintf "VkRenderPassSubpassFeedbackCreateInfoEXT { %s }" end - type VkAccelerationStructureTypeKHR = - | TopLevel = 0 - | BottomLevel = 1 - | Generic = 2 - type VkAccelerationStructureBuildTypeKHR = - | Host = 0 - | Device = 1 - | HostOrDevice = 2 - [] - type VkGeometryFlagsKHR = - | All = 3 - | None = 0 - | OpaqueBit = 0x00000001 - | NoDuplicateAnyHitInvocationBit = 0x00000002 +/// Requires KHRSurface, KHRGetSurfaceCapabilities2. +module EXTSurfaceMaintenance1 = + let Type = ExtensionType.Instance + let Name = "VK_EXT_surface_maintenance1" + let Number = 275 [] - type VkGeometryInstanceFlagsKHR = - | All = 15 + type VkPresentScalingFlagsEXT = + | All = 7 | None = 0 - | TriangleFacingCullDisableBit = 0x00000001 - | TriangleFlipFacingBit = 0x00000002 - | ForceOpaqueBit = 0x00000004 - | ForceNoOpaqueBit = 0x00000008 - | TriangleFrontCounterclockwiseBit = 0x00000002 + | OneToOneBit = 0x00000001 + | AspectRatioStretchBit = 0x00000002 + | StretchBit = 0x00000004 [] - type VkBuildAccelerationStructureFlagsKHR = - | All = 31 + type VkPresentGravityFlagsEXT = + | All = 7 | None = 0 - | AllowUpdateBit = 0x00000001 - | AllowCompactionBit = 0x00000002 - | PreferFastTraceBit = 0x00000004 - | PreferFastBuildBit = 0x00000008 - | LowMemoryBit = 0x00000010 + | MinBit = 0x00000001 + | MaxBit = 0x00000002 + | CenteredBit = 0x00000004 - type VkCopyAccelerationStructureModeKHR = - | Clone = 0 - | Compact = 1 - | Serialize = 2 - | Deserialize = 3 - type VkGeometryTypeKHR = - | Triangles = 0 - | Aabbs = 1 - | Instances = 2 + [] + type VkSurfacePresentModeCompatibilityEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public presentModeCount : uint32 + val mutable public pPresentModes : nativeptr - type VkAccelerationStructureCompatibilityKHR = - | Compatible = 0 - | Incompatible = 1 + new(pNext : nativeint, presentModeCount : uint32, pPresentModes : nativeptr) = + { + sType = 1000274002u + pNext = pNext + presentModeCount = presentModeCount + pPresentModes = pPresentModes + } - [] - type VkAccelerationStructureCreateFlagsKHR = - | All = 1 - | None = 0 - | DeviceAddressCaptureReplayBit = 0x00000001 + new(presentModeCount : uint32, pPresentModes : nativeptr) = + VkSurfacePresentModeCompatibilityEXT(Unchecked.defaultof, presentModeCount, pPresentModes) - type VkBuildAccelerationStructureModeKHR = - | Build = 0 - | Update = 1 + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.presentModeCount = Unchecked.defaultof && x.pPresentModes = Unchecked.defaultof> + + static member Empty = + VkSurfacePresentModeCompatibilityEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "presentModeCount = %A" x.presentModeCount + sprintf "pPresentModes = %A" x.pPresentModes + ] |> sprintf "VkSurfacePresentModeCompatibilityEXT { %s }" + end [] - type VkAabbPositionsKHR = + type VkSurfacePresentModeEXT = struct - val mutable public minX : float32 - val mutable public minY : float32 - val mutable public minZ : float32 - val mutable public maxX : float32 - val mutable public maxY : float32 - val mutable public maxZ : float32 + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public presentMode : KHRSurface.VkPresentModeKHR - new(minX : float32, minY : float32, minZ : float32, maxX : float32, maxY : float32, maxZ : float32) = + new(pNext : nativeint, presentMode : KHRSurface.VkPresentModeKHR) = { - minX = minX - minY = minY - minZ = minZ - maxX = maxX - maxY = maxY - maxZ = maxZ + sType = 1000274000u + pNext = pNext + presentMode = presentMode } + new(presentMode : KHRSurface.VkPresentModeKHR) = + VkSurfacePresentModeEXT(Unchecked.defaultof, presentMode) + member x.IsEmpty = - x.minX = Unchecked.defaultof && x.minY = Unchecked.defaultof && x.minZ = Unchecked.defaultof && x.maxX = Unchecked.defaultof && x.maxY = Unchecked.defaultof && x.maxZ = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.presentMode = Unchecked.defaultof static member Empty = - VkAabbPositionsKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkSurfacePresentModeEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ - sprintf "minX = %A" x.minX - sprintf "minY = %A" x.minY - sprintf "minZ = %A" x.minZ - sprintf "maxX = %A" x.maxX - sprintf "maxY = %A" x.maxY - sprintf "maxZ = %A" x.maxZ - ] |> sprintf "VkAabbPositionsKHR { %s }" + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "presentMode = %A" x.presentMode + ] |> sprintf "VkSurfacePresentModeEXT { %s }" end - [] - type VkDeviceOrHostAddressConstKHR = + [] + type VkSurfacePresentScalingCapabilitiesEXT = struct - [] - val mutable public deviceAddress : VkDeviceAddress - [] - val mutable public hostAddress : nativeint + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public supportedPresentScaling : VkPresentScalingFlagsEXT + val mutable public supportedPresentGravityX : VkPresentGravityFlagsEXT + val mutable public supportedPresentGravityY : VkPresentGravityFlagsEXT + val mutable public minScaledImageExtent : VkExtent2D + val mutable public maxScaledImageExtent : VkExtent2D - static member DeviceAddress(value : VkDeviceAddress) = - let mutable result = Unchecked.defaultof - result.deviceAddress <- value - result + new(pNext : nativeint, supportedPresentScaling : VkPresentScalingFlagsEXT, supportedPresentGravityX : VkPresentGravityFlagsEXT, supportedPresentGravityY : VkPresentGravityFlagsEXT, minScaledImageExtent : VkExtent2D, maxScaledImageExtent : VkExtent2D) = + { + sType = 1000274001u + pNext = pNext + supportedPresentScaling = supportedPresentScaling + supportedPresentGravityX = supportedPresentGravityX + supportedPresentGravityY = supportedPresentGravityY + minScaledImageExtent = minScaledImageExtent + maxScaledImageExtent = maxScaledImageExtent + } - static member HostAddress(value : nativeint) = - let mutable result = Unchecked.defaultof - result.hostAddress <- value - result + new(supportedPresentScaling : VkPresentScalingFlagsEXT, supportedPresentGravityX : VkPresentGravityFlagsEXT, supportedPresentGravityY : VkPresentGravityFlagsEXT, minScaledImageExtent : VkExtent2D, maxScaledImageExtent : VkExtent2D) = + VkSurfacePresentScalingCapabilitiesEXT(Unchecked.defaultof, supportedPresentScaling, supportedPresentGravityX, supportedPresentGravityY, minScaledImageExtent, maxScaledImageExtent) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.supportedPresentScaling = Unchecked.defaultof && x.supportedPresentGravityX = Unchecked.defaultof && x.supportedPresentGravityY = Unchecked.defaultof && x.minScaledImageExtent = Unchecked.defaultof && x.maxScaledImageExtent = Unchecked.defaultof + + static member Empty = + VkSurfacePresentScalingCapabilitiesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ - sprintf "deviceAddress = %A" x.deviceAddress - sprintf "hostAddress = %A" x.hostAddress - ] |> sprintf "VkDeviceOrHostAddressConstKHR { %s }" + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "supportedPresentScaling = %A" x.supportedPresentScaling + sprintf "supportedPresentGravityX = %A" x.supportedPresentGravityX + sprintf "supportedPresentGravityY = %A" x.supportedPresentGravityY + sprintf "minScaledImageExtent = %A" x.minScaledImageExtent + sprintf "maxScaledImageExtent = %A" x.maxScaledImageExtent + ] |> sprintf "VkSurfacePresentScalingCapabilitiesEXT { %s }" end + + +/// Requires KHRSwapchain, EXTSurfaceMaintenance1, (KHRGetPhysicalDeviceProperties2 | Vulkan11). +module EXTSwapchainMaintenance1 = + let Type = ExtensionType.Device + let Name = "VK_EXT_swapchain_maintenance1" + let Number = 276 + [] - type VkAccelerationStructureGeometryTrianglesDataKHR = + type VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public vertexFormat : VkFormat - val mutable public vertexData : VkDeviceOrHostAddressConstKHR - val mutable public vertexStride : VkDeviceSize - val mutable public maxVertex : uint32 - val mutable public indexType : VkIndexType - val mutable public indexData : VkDeviceOrHostAddressConstKHR - val mutable public transformData : VkDeviceOrHostAddressConstKHR + val mutable public swapchainMaintenance1 : VkBool32 - new(pNext : nativeint, vertexFormat : VkFormat, vertexData : VkDeviceOrHostAddressConstKHR, vertexStride : VkDeviceSize, maxVertex : uint32, indexType : VkIndexType, indexData : VkDeviceOrHostAddressConstKHR, transformData : VkDeviceOrHostAddressConstKHR) = + new(pNext : nativeint, swapchainMaintenance1 : VkBool32) = { - sType = 1000150005u + sType = 1000275000u pNext = pNext - vertexFormat = vertexFormat - vertexData = vertexData - vertexStride = vertexStride - maxVertex = maxVertex - indexType = indexType - indexData = indexData - transformData = transformData + swapchainMaintenance1 = swapchainMaintenance1 } - new(vertexFormat : VkFormat, vertexData : VkDeviceOrHostAddressConstKHR, vertexStride : VkDeviceSize, maxVertex : uint32, indexType : VkIndexType, indexData : VkDeviceOrHostAddressConstKHR, transformData : VkDeviceOrHostAddressConstKHR) = - VkAccelerationStructureGeometryTrianglesDataKHR(Unchecked.defaultof, vertexFormat, vertexData, vertexStride, maxVertex, indexType, indexData, transformData) + new(swapchainMaintenance1 : VkBool32) = + VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT(Unchecked.defaultof, swapchainMaintenance1) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.vertexFormat = Unchecked.defaultof && x.vertexData = Unchecked.defaultof && x.vertexStride = Unchecked.defaultof && x.maxVertex = Unchecked.defaultof && x.indexType = Unchecked.defaultof && x.indexData = Unchecked.defaultof && x.transformData = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.swapchainMaintenance1 = Unchecked.defaultof static member Empty = - VkAccelerationStructureGeometryTrianglesDataKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "vertexFormat = %A" x.vertexFormat - sprintf "vertexData = %A" x.vertexData - sprintf "vertexStride = %A" x.vertexStride - sprintf "maxVertex = %A" x.maxVertex - sprintf "indexType = %A" x.indexType - sprintf "indexData = %A" x.indexData - sprintf "transformData = %A" x.transformData - ] |> sprintf "VkAccelerationStructureGeometryTrianglesDataKHR { %s }" + sprintf "swapchainMaintenance1 = %A" x.swapchainMaintenance1 + ] |> sprintf "VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT { %s }" end [] - type VkAccelerationStructureGeometryAabbsDataKHR = + type VkReleaseSwapchainImagesInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public data : VkDeviceOrHostAddressConstKHR - val mutable public stride : VkDeviceSize + val mutable public swapchain : KHRSwapchain.VkSwapchainKHR + val mutable public imageIndexCount : uint32 + val mutable public pImageIndices : nativeptr - new(pNext : nativeint, data : VkDeviceOrHostAddressConstKHR, stride : VkDeviceSize) = + new(pNext : nativeint, swapchain : KHRSwapchain.VkSwapchainKHR, imageIndexCount : uint32, pImageIndices : nativeptr) = { - sType = 1000150003u + sType = 1000275005u pNext = pNext - data = data - stride = stride + swapchain = swapchain + imageIndexCount = imageIndexCount + pImageIndices = pImageIndices } - new(data : VkDeviceOrHostAddressConstKHR, stride : VkDeviceSize) = - VkAccelerationStructureGeometryAabbsDataKHR(Unchecked.defaultof, data, stride) + new(swapchain : KHRSwapchain.VkSwapchainKHR, imageIndexCount : uint32, pImageIndices : nativeptr) = + VkReleaseSwapchainImagesInfoEXT(Unchecked.defaultof, swapchain, imageIndexCount, pImageIndices) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.data = Unchecked.defaultof && x.stride = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.swapchain = Unchecked.defaultof && x.imageIndexCount = Unchecked.defaultof && x.pImageIndices = Unchecked.defaultof> static member Empty = - VkAccelerationStructureGeometryAabbsDataKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkReleaseSwapchainImagesInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "data = %A" x.data - sprintf "stride = %A" x.stride - ] |> sprintf "VkAccelerationStructureGeometryAabbsDataKHR { %s }" + sprintf "swapchain = %A" x.swapchain + sprintf "imageIndexCount = %A" x.imageIndexCount + sprintf "pImageIndices = %A" x.pImageIndices + ] |> sprintf "VkReleaseSwapchainImagesInfoEXT { %s }" end [] - type VkAccelerationStructureGeometryInstancesDataKHR = + type VkSwapchainPresentFenceInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public arrayOfPointers : VkBool32 - val mutable public data : VkDeviceOrHostAddressConstKHR + val mutable public swapchainCount : uint32 + val mutable public pFences : nativeptr - new(pNext : nativeint, arrayOfPointers : VkBool32, data : VkDeviceOrHostAddressConstKHR) = + new(pNext : nativeint, swapchainCount : uint32, pFences : nativeptr) = { - sType = 1000150004u + sType = 1000275001u pNext = pNext - arrayOfPointers = arrayOfPointers - data = data + swapchainCount = swapchainCount + pFences = pFences } - new(arrayOfPointers : VkBool32, data : VkDeviceOrHostAddressConstKHR) = - VkAccelerationStructureGeometryInstancesDataKHR(Unchecked.defaultof, arrayOfPointers, data) + new(swapchainCount : uint32, pFences : nativeptr) = + VkSwapchainPresentFenceInfoEXT(Unchecked.defaultof, swapchainCount, pFences) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.arrayOfPointers = Unchecked.defaultof && x.data = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.swapchainCount = Unchecked.defaultof && x.pFences = Unchecked.defaultof> static member Empty = - VkAccelerationStructureGeometryInstancesDataKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkSwapchainPresentFenceInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "arrayOfPointers = %A" x.arrayOfPointers - sprintf "data = %A" x.data - ] |> sprintf "VkAccelerationStructureGeometryInstancesDataKHR { %s }" + sprintf "swapchainCount = %A" x.swapchainCount + sprintf "pFences = %A" x.pFences + ] |> sprintf "VkSwapchainPresentFenceInfoEXT { %s }" end - [] - type VkAccelerationStructureGeometryDataKHR = + [] + type VkSwapchainPresentModeInfoEXT = struct - [] - val mutable public triangles : VkAccelerationStructureGeometryTrianglesDataKHR - [] - val mutable public aabbs : VkAccelerationStructureGeometryAabbsDataKHR - [] - val mutable public instances : VkAccelerationStructureGeometryInstancesDataKHR + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public swapchainCount : uint32 + val mutable public pPresentModes : nativeptr - static member Triangles(value : VkAccelerationStructureGeometryTrianglesDataKHR) = - let mutable result = Unchecked.defaultof - result.triangles <- value - result + new(pNext : nativeint, swapchainCount : uint32, pPresentModes : nativeptr) = + { + sType = 1000275003u + pNext = pNext + swapchainCount = swapchainCount + pPresentModes = pPresentModes + } - static member Aabbs(value : VkAccelerationStructureGeometryAabbsDataKHR) = - let mutable result = Unchecked.defaultof - result.aabbs <- value - result + new(swapchainCount : uint32, pPresentModes : nativeptr) = + VkSwapchainPresentModeInfoEXT(Unchecked.defaultof, swapchainCount, pPresentModes) - static member Instances(value : VkAccelerationStructureGeometryInstancesDataKHR) = - let mutable result = Unchecked.defaultof - result.instances <- value - result + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.swapchainCount = Unchecked.defaultof && x.pPresentModes = Unchecked.defaultof> + + static member Empty = + VkSwapchainPresentModeInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ - sprintf "triangles = %A" x.triangles - sprintf "aabbs = %A" x.aabbs - sprintf "instances = %A" x.instances - ] |> sprintf "VkAccelerationStructureGeometryDataKHR { %s }" + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "swapchainCount = %A" x.swapchainCount + sprintf "pPresentModes = %A" x.pPresentModes + ] |> sprintf "VkSwapchainPresentModeInfoEXT { %s }" end [] - type VkAccelerationStructureGeometryKHR = + type VkSwapchainPresentModesCreateInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public geometryType : VkGeometryTypeKHR - val mutable public geometry : VkAccelerationStructureGeometryDataKHR - val mutable public flags : VkGeometryFlagsKHR + val mutable public presentModeCount : uint32 + val mutable public pPresentModes : nativeptr - new(pNext : nativeint, geometryType : VkGeometryTypeKHR, geometry : VkAccelerationStructureGeometryDataKHR, flags : VkGeometryFlagsKHR) = + new(pNext : nativeint, presentModeCount : uint32, pPresentModes : nativeptr) = { - sType = 1000150006u + sType = 1000275002u pNext = pNext - geometryType = geometryType - geometry = geometry - flags = flags + presentModeCount = presentModeCount + pPresentModes = pPresentModes } - new(geometryType : VkGeometryTypeKHR, geometry : VkAccelerationStructureGeometryDataKHR, flags : VkGeometryFlagsKHR) = - VkAccelerationStructureGeometryKHR(Unchecked.defaultof, geometryType, geometry, flags) + new(presentModeCount : uint32, pPresentModes : nativeptr) = + VkSwapchainPresentModesCreateInfoEXT(Unchecked.defaultof, presentModeCount, pPresentModes) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.geometryType = Unchecked.defaultof && x.geometry = Unchecked.defaultof && x.flags = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.presentModeCount = Unchecked.defaultof && x.pPresentModes = Unchecked.defaultof> static member Empty = - VkAccelerationStructureGeometryKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkSwapchainPresentModesCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "geometryType = %A" x.geometryType - sprintf "geometry = %A" x.geometry - sprintf "flags = %A" x.flags - ] |> sprintf "VkAccelerationStructureGeometryKHR { %s }" + sprintf "presentModeCount = %A" x.presentModeCount + sprintf "pPresentModes = %A" x.pPresentModes + ] |> sprintf "VkSwapchainPresentModesCreateInfoEXT { %s }" end - [] - type VkDeviceOrHostAddressKHR = + [] + type VkSwapchainPresentScalingCreateInfoEXT = struct - [] - val mutable public deviceAddress : VkDeviceAddress - [] - val mutable public hostAddress : nativeint + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public scalingBehavior : EXTSurfaceMaintenance1.VkPresentScalingFlagsEXT + val mutable public presentGravityX : EXTSurfaceMaintenance1.VkPresentGravityFlagsEXT + val mutable public presentGravityY : EXTSurfaceMaintenance1.VkPresentGravityFlagsEXT - static member DeviceAddress(value : VkDeviceAddress) = - let mutable result = Unchecked.defaultof - result.deviceAddress <- value - result + new(pNext : nativeint, scalingBehavior : EXTSurfaceMaintenance1.VkPresentScalingFlagsEXT, presentGravityX : EXTSurfaceMaintenance1.VkPresentGravityFlagsEXT, presentGravityY : EXTSurfaceMaintenance1.VkPresentGravityFlagsEXT) = + { + sType = 1000275004u + pNext = pNext + scalingBehavior = scalingBehavior + presentGravityX = presentGravityX + presentGravityY = presentGravityY + } - static member HostAddress(value : nativeint) = - let mutable result = Unchecked.defaultof - result.hostAddress <- value - result + new(scalingBehavior : EXTSurfaceMaintenance1.VkPresentScalingFlagsEXT, presentGravityX : EXTSurfaceMaintenance1.VkPresentGravityFlagsEXT, presentGravityY : EXTSurfaceMaintenance1.VkPresentGravityFlagsEXT) = + VkSwapchainPresentScalingCreateInfoEXT(Unchecked.defaultof, scalingBehavior, presentGravityX, presentGravityY) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.scalingBehavior = Unchecked.defaultof && x.presentGravityX = Unchecked.defaultof && x.presentGravityY = Unchecked.defaultof + + static member Empty = + VkSwapchainPresentScalingCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ - sprintf "deviceAddress = %A" x.deviceAddress - sprintf "hostAddress = %A" x.hostAddress - ] |> sprintf "VkDeviceOrHostAddressKHR { %s }" + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "scalingBehavior = %A" x.scalingBehavior + sprintf "presentGravityX = %A" x.presentGravityX + sprintf "presentGravityY = %A" x.presentGravityY + ] |> sprintf "VkSwapchainPresentScalingCreateInfoEXT { %s }" end + + [] + module EnumExtensions = + type KHRSwapchain.VkSwapchainCreateFlagsKHR with + static member inline DeferredMemoryAllocationBitExt = unbox 0x00000008 + + module VkRaw = + [] + type VkReleaseSwapchainImagesEXTDel = delegate of VkDevice * nativeptr -> VkResult + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTSwapchainMaintenance1") + static let s_vkReleaseSwapchainImagesEXTDel = VkRaw.vkImportInstanceDelegate "vkReleaseSwapchainImagesEXT" + static do Report.End(3) |> ignore + static member vkReleaseSwapchainImagesEXT = s_vkReleaseSwapchainImagesEXTDel + let vkReleaseSwapchainImagesEXT(device : VkDevice, pReleaseInfo : nativeptr) = Loader.vkReleaseSwapchainImagesEXT.Invoke(device, pReleaseInfo) + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +/// Promoted to Vulkan13. +module EXTTexelBufferAlignment = + let Type = ExtensionType.Device + let Name = "VK_EXT_texel_buffer_alignment" + let Number = 282 + [] - type VkAccelerationStructureBuildGeometryInfoKHR = + type VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public _type : VkAccelerationStructureTypeKHR - val mutable public flags : VkBuildAccelerationStructureFlagsKHR - val mutable public mode : VkBuildAccelerationStructureModeKHR - val mutable public srcAccelerationStructure : VkAccelerationStructureKHR - val mutable public dstAccelerationStructure : VkAccelerationStructureKHR - val mutable public geometryCount : uint32 - val mutable public pGeometries : nativeptr - val mutable public ppGeometries : nativeptr> - val mutable public scratchData : VkDeviceOrHostAddressKHR + val mutable public texelBufferAlignment : VkBool32 - new(pNext : nativeint, _type : VkAccelerationStructureTypeKHR, flags : VkBuildAccelerationStructureFlagsKHR, mode : VkBuildAccelerationStructureModeKHR, srcAccelerationStructure : VkAccelerationStructureKHR, dstAccelerationStructure : VkAccelerationStructureKHR, geometryCount : uint32, pGeometries : nativeptr, ppGeometries : nativeptr>, scratchData : VkDeviceOrHostAddressKHR) = + new(pNext : nativeint, texelBufferAlignment : VkBool32) = { - sType = 1000150000u + sType = 1000281000u pNext = pNext - _type = _type - flags = flags - mode = mode - srcAccelerationStructure = srcAccelerationStructure - dstAccelerationStructure = dstAccelerationStructure - geometryCount = geometryCount - pGeometries = pGeometries - ppGeometries = ppGeometries - scratchData = scratchData + texelBufferAlignment = texelBufferAlignment } - new(_type : VkAccelerationStructureTypeKHR, flags : VkBuildAccelerationStructureFlagsKHR, mode : VkBuildAccelerationStructureModeKHR, srcAccelerationStructure : VkAccelerationStructureKHR, dstAccelerationStructure : VkAccelerationStructureKHR, geometryCount : uint32, pGeometries : nativeptr, ppGeometries : nativeptr>, scratchData : VkDeviceOrHostAddressKHR) = - VkAccelerationStructureBuildGeometryInfoKHR(Unchecked.defaultof, _type, flags, mode, srcAccelerationStructure, dstAccelerationStructure, geometryCount, pGeometries, ppGeometries, scratchData) + new(texelBufferAlignment : VkBool32) = + VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(Unchecked.defaultof, texelBufferAlignment) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x._type = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.mode = Unchecked.defaultof && x.srcAccelerationStructure = Unchecked.defaultof && x.dstAccelerationStructure = Unchecked.defaultof && x.geometryCount = Unchecked.defaultof && x.pGeometries = Unchecked.defaultof> && x.ppGeometries = Unchecked.defaultof>> && x.scratchData = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.texelBufferAlignment = Unchecked.defaultof static member Empty = - VkAccelerationStructureBuildGeometryInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof>>, Unchecked.defaultof) + VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "_type = %A" x._type - sprintf "flags = %A" x.flags - sprintf "mode = %A" x.mode - sprintf "srcAccelerationStructure = %A" x.srcAccelerationStructure - sprintf "dstAccelerationStructure = %A" x.dstAccelerationStructure - sprintf "geometryCount = %A" x.geometryCount - sprintf "pGeometries = %A" x.pGeometries - sprintf "ppGeometries = %A" x.ppGeometries - sprintf "scratchData = %A" x.scratchData - ] |> sprintf "VkAccelerationStructureBuildGeometryInfoKHR { %s }" + sprintf "texelBufferAlignment = %A" x.texelBufferAlignment + ] |> sprintf "VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT { %s }" + end + + type VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT = Vulkan13.VkPhysicalDeviceTexelBufferAlignmentProperties + + + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +/// Promoted to Vulkan13. +module EXTTextureCompressionAstcHdr = + let Type = ExtensionType.Device + let Name = "VK_EXT_texture_compression_astc_hdr" + let Number = 67 + + type VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = Vulkan13.VkPhysicalDeviceTextureCompressionASTCHDRFeatures + + + [] + module EnumExtensions = + type VkFormat with + static member inline Astc44SfloatBlockExt = unbox 1000066000 + static member inline Astc54SfloatBlockExt = unbox 1000066001 + static member inline Astc55SfloatBlockExt = unbox 1000066002 + static member inline Astc65SfloatBlockExt = unbox 1000066003 + static member inline Astc66SfloatBlockExt = unbox 1000066004 + static member inline Astc85SfloatBlockExt = unbox 1000066005 + static member inline Astc86SfloatBlockExt = unbox 1000066006 + static member inline Astc88SfloatBlockExt = unbox 1000066007 + static member inline Astc105SfloatBlockExt = unbox 1000066008 + static member inline Astc106SfloatBlockExt = unbox 1000066009 + static member inline Astc108SfloatBlockExt = unbox 1000066010 + static member inline Astc1010SfloatBlockExt = unbox 1000066011 + static member inline Astc1210SfloatBlockExt = unbox 1000066012 + static member inline Astc1212SfloatBlockExt = unbox 1000066013 + + +/// Promoted to Vulkan13. +module EXTToolingInfo = + let Type = ExtensionType.Device + let Name = "VK_EXT_tooling_info" + let Number = 246 + + type VkToolPurposeFlagsEXT = Vulkan13.VkToolPurposeFlags + + type VkPhysicalDeviceToolPropertiesEXT = Vulkan13.VkPhysicalDeviceToolProperties + + + module VkRaw = + [] + type VkGetPhysicalDeviceToolPropertiesEXTDel = delegate of VkPhysicalDevice * nativeptr * nativeptr -> VkResult + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTToolingInfo") + static let s_vkGetPhysicalDeviceToolPropertiesEXTDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceToolPropertiesEXT" + static do Report.End(3) |> ignore + static member vkGetPhysicalDeviceToolPropertiesEXT = s_vkGetPhysicalDeviceToolPropertiesEXTDel + let vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice : VkPhysicalDevice, pToolCount : nativeptr, pToolProperties : nativeptr) = Loader.vkGetPhysicalDeviceToolPropertiesEXT.Invoke(physicalDevice, pToolCount, pToolProperties) + + [] + module ``EXTDebugReport`` = + [] + module EnumExtensions = + type Vulkan13.VkToolPurposeFlags with + static member inline DebugReportingBitExt = unbox 0x00000020 + + + [] + module ``EXTDebugMarker`` = + [] + module EnumExtensions = + type Vulkan13.VkToolPurposeFlags with + static member inline DebugMarkersBitExt = unbox 0x00000040 + + + [] + module ``EXTDebugUtils`` = + [] + module EnumExtensions = + type Vulkan13.VkToolPurposeFlags with + static member inline DebugReportingBitExt = unbox 0x00000020 + static member inline DebugMarkersBitExt = unbox 0x00000040 + + +module EXTValidationCache = + let Type = ExtensionType.Device + let Name = "VK_EXT_validation_cache" + let Number = 161 + + + [] + type VkValidationCacheEXT = + struct + val mutable public Handle : uint64 + new(h) = { Handle = h } + static member Null = VkValidationCacheEXT(0UL) + member x.IsNull = x.Handle = 0UL + member x.IsValid = x.Handle <> 0UL end + type VkValidationCacheHeaderVersionEXT = + | One = 1 + + [] - type VkAccelerationStructureBuildRangeInfoKHR = + type VkShaderModuleValidationCacheCreateInfoEXT = struct - val mutable public primitiveCount : uint32 - val mutable public primitiveOffset : uint32 - val mutable public firstVertex : uint32 - val mutable public transformOffset : uint32 + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public validationCache : VkValidationCacheEXT - new(primitiveCount : uint32, primitiveOffset : uint32, firstVertex : uint32, transformOffset : uint32) = + new(pNext : nativeint, validationCache : VkValidationCacheEXT) = { - primitiveCount = primitiveCount - primitiveOffset = primitiveOffset - firstVertex = firstVertex - transformOffset = transformOffset + sType = 1000160001u + pNext = pNext + validationCache = validationCache } + new(validationCache : VkValidationCacheEXT) = + VkShaderModuleValidationCacheCreateInfoEXT(Unchecked.defaultof, validationCache) + member x.IsEmpty = - x.primitiveCount = Unchecked.defaultof && x.primitiveOffset = Unchecked.defaultof && x.firstVertex = Unchecked.defaultof && x.transformOffset = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.validationCache = Unchecked.defaultof static member Empty = - VkAccelerationStructureBuildRangeInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkShaderModuleValidationCacheCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ - sprintf "primitiveCount = %A" x.primitiveCount - sprintf "primitiveOffset = %A" x.primitiveOffset - sprintf "firstVertex = %A" x.firstVertex - sprintf "transformOffset = %A" x.transformOffset - ] |> sprintf "VkAccelerationStructureBuildRangeInfoKHR { %s }" + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "validationCache = %A" x.validationCache + ] |> sprintf "VkShaderModuleValidationCacheCreateInfoEXT { %s }" end [] - type VkAccelerationStructureBuildSizesInfoKHR = + type VkValidationCacheCreateInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public accelerationStructureSize : VkDeviceSize - val mutable public updateScratchSize : VkDeviceSize - val mutable public buildScratchSize : VkDeviceSize + val mutable public flags : VkValidationCacheCreateFlagsEXT + val mutable public initialDataSize : uint64 + val mutable public pInitialData : nativeint - new(pNext : nativeint, accelerationStructureSize : VkDeviceSize, updateScratchSize : VkDeviceSize, buildScratchSize : VkDeviceSize) = + new(pNext : nativeint, flags : VkValidationCacheCreateFlagsEXT, initialDataSize : uint64, pInitialData : nativeint) = { - sType = 1000150020u + sType = 1000160000u pNext = pNext - accelerationStructureSize = accelerationStructureSize - updateScratchSize = updateScratchSize - buildScratchSize = buildScratchSize + flags = flags + initialDataSize = initialDataSize + pInitialData = pInitialData } - new(accelerationStructureSize : VkDeviceSize, updateScratchSize : VkDeviceSize, buildScratchSize : VkDeviceSize) = - VkAccelerationStructureBuildSizesInfoKHR(Unchecked.defaultof, accelerationStructureSize, updateScratchSize, buildScratchSize) + new(flags : VkValidationCacheCreateFlagsEXT, initialDataSize : uint64, pInitialData : nativeint) = + VkValidationCacheCreateInfoEXT(Unchecked.defaultof, flags, initialDataSize, pInitialData) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.accelerationStructureSize = Unchecked.defaultof && x.updateScratchSize = Unchecked.defaultof && x.buildScratchSize = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.initialDataSize = Unchecked.defaultof && x.pInitialData = Unchecked.defaultof static member Empty = - VkAccelerationStructureBuildSizesInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkValidationCacheCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "accelerationStructureSize = %A" x.accelerationStructureSize - sprintf "updateScratchSize = %A" x.updateScratchSize - sprintf "buildScratchSize = %A" x.buildScratchSize - ] |> sprintf "VkAccelerationStructureBuildSizesInfoKHR { %s }" + sprintf "flags = %A" x.flags + sprintf "initialDataSize = %A" x.initialDataSize + sprintf "pInitialData = %A" x.pInitialData + ] |> sprintf "VkValidationCacheCreateInfoEXT { %s }" end + + [] + module EnumExtensions = + type VkObjectType with + static member inline ValidationCacheExt = unbox 1000160000 + + module VkRaw = + [] + type VkCreateValidationCacheEXTDel = delegate of VkDevice * nativeptr * nativeptr * nativeptr -> VkResult + [] + type VkDestroyValidationCacheEXTDel = delegate of VkDevice * VkValidationCacheEXT * nativeptr -> unit + [] + type VkMergeValidationCachesEXTDel = delegate of VkDevice * VkValidationCacheEXT * uint32 * nativeptr -> VkResult + [] + type VkGetValidationCacheDataEXTDel = delegate of VkDevice * VkValidationCacheEXT * nativeptr * nativeint -> VkResult + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTValidationCache") + static let s_vkCreateValidationCacheEXTDel = VkRaw.vkImportInstanceDelegate "vkCreateValidationCacheEXT" + static let s_vkDestroyValidationCacheEXTDel = VkRaw.vkImportInstanceDelegate "vkDestroyValidationCacheEXT" + static let s_vkMergeValidationCachesEXTDel = VkRaw.vkImportInstanceDelegate "vkMergeValidationCachesEXT" + static let s_vkGetValidationCacheDataEXTDel = VkRaw.vkImportInstanceDelegate "vkGetValidationCacheDataEXT" + static do Report.End(3) |> ignore + static member vkCreateValidationCacheEXT = s_vkCreateValidationCacheEXTDel + static member vkDestroyValidationCacheEXT = s_vkDestroyValidationCacheEXTDel + static member vkMergeValidationCachesEXT = s_vkMergeValidationCachesEXTDel + static member vkGetValidationCacheDataEXT = s_vkGetValidationCacheDataEXTDel + let vkCreateValidationCacheEXT(device : VkDevice, pCreateInfo : nativeptr, pAllocator : nativeptr, pValidationCache : nativeptr) = Loader.vkCreateValidationCacheEXT.Invoke(device, pCreateInfo, pAllocator, pValidationCache) + let vkDestroyValidationCacheEXT(device : VkDevice, validationCache : VkValidationCacheEXT, pAllocator : nativeptr) = Loader.vkDestroyValidationCacheEXT.Invoke(device, validationCache, pAllocator) + let vkMergeValidationCachesEXT(device : VkDevice, dstCache : VkValidationCacheEXT, srcCacheCount : uint32, pSrcCaches : nativeptr) = Loader.vkMergeValidationCachesEXT.Invoke(device, dstCache, srcCacheCount, pSrcCaches) + let vkGetValidationCacheDataEXT(device : VkDevice, validationCache : VkValidationCacheEXT, pDataSize : nativeptr, pData : nativeint) = Loader.vkGetValidationCacheDataEXT.Invoke(device, validationCache, pDataSize, pData) + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module KHRVertexAttributeDivisor = + let Type = ExtensionType.Device + let Name = "VK_KHR_vertex_attribute_divisor" + let Number = 526 + [] - type VkAccelerationStructureCreateInfoKHR = + type VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public createFlags : VkAccelerationStructureCreateFlagsKHR - val mutable public buffer : VkBuffer - val mutable public offset : VkDeviceSize - val mutable public size : VkDeviceSize - val mutable public _type : VkAccelerationStructureTypeKHR - val mutable public deviceAddress : VkDeviceAddress + val mutable public vertexAttributeInstanceRateDivisor : VkBool32 + val mutable public vertexAttributeInstanceRateZeroDivisor : VkBool32 - new(pNext : nativeint, createFlags : VkAccelerationStructureCreateFlagsKHR, buffer : VkBuffer, offset : VkDeviceSize, size : VkDeviceSize, _type : VkAccelerationStructureTypeKHR, deviceAddress : VkDeviceAddress) = + new(pNext : nativeint, vertexAttributeInstanceRateDivisor : VkBool32, vertexAttributeInstanceRateZeroDivisor : VkBool32) = { - sType = 1000150017u + sType = 1000190002u pNext = pNext - createFlags = createFlags - buffer = buffer - offset = offset - size = size - _type = _type - deviceAddress = deviceAddress + vertexAttributeInstanceRateDivisor = vertexAttributeInstanceRateDivisor + vertexAttributeInstanceRateZeroDivisor = vertexAttributeInstanceRateZeroDivisor } - new(createFlags : VkAccelerationStructureCreateFlagsKHR, buffer : VkBuffer, offset : VkDeviceSize, size : VkDeviceSize, _type : VkAccelerationStructureTypeKHR, deviceAddress : VkDeviceAddress) = - VkAccelerationStructureCreateInfoKHR(Unchecked.defaultof, createFlags, buffer, offset, size, _type, deviceAddress) + new(vertexAttributeInstanceRateDivisor : VkBool32, vertexAttributeInstanceRateZeroDivisor : VkBool32) = + VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR(Unchecked.defaultof, vertexAttributeInstanceRateDivisor, vertexAttributeInstanceRateZeroDivisor) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.createFlags = Unchecked.defaultof && x.buffer = Unchecked.defaultof && x.offset = Unchecked.defaultof && x.size = Unchecked.defaultof && x._type = Unchecked.defaultof && x.deviceAddress = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.vertexAttributeInstanceRateDivisor = Unchecked.defaultof && x.vertexAttributeInstanceRateZeroDivisor = Unchecked.defaultof static member Empty = - VkAccelerationStructureCreateInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "createFlags = %A" x.createFlags - sprintf "buffer = %A" x.buffer - sprintf "offset = %A" x.offset - sprintf "size = %A" x.size - sprintf "_type = %A" x._type - sprintf "deviceAddress = %A" x.deviceAddress - ] |> sprintf "VkAccelerationStructureCreateInfoKHR { %s }" + sprintf "vertexAttributeInstanceRateDivisor = %A" x.vertexAttributeInstanceRateDivisor + sprintf "vertexAttributeInstanceRateZeroDivisor = %A" x.vertexAttributeInstanceRateZeroDivisor + ] |> sprintf "VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR { %s }" end [] - type VkAccelerationStructureDeviceAddressInfoKHR = + type VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public accelerationStructure : VkAccelerationStructureKHR + val mutable public maxVertexAttribDivisor : uint32 + val mutable public supportsNonZeroFirstInstance : VkBool32 - new(pNext : nativeint, accelerationStructure : VkAccelerationStructureKHR) = + new(pNext : nativeint, maxVertexAttribDivisor : uint32, supportsNonZeroFirstInstance : VkBool32) = { - sType = 1000150002u + sType = 1000525000u pNext = pNext - accelerationStructure = accelerationStructure + maxVertexAttribDivisor = maxVertexAttribDivisor + supportsNonZeroFirstInstance = supportsNonZeroFirstInstance } - new(accelerationStructure : VkAccelerationStructureKHR) = - VkAccelerationStructureDeviceAddressInfoKHR(Unchecked.defaultof, accelerationStructure) + new(maxVertexAttribDivisor : uint32, supportsNonZeroFirstInstance : VkBool32) = + VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR(Unchecked.defaultof, maxVertexAttribDivisor, supportsNonZeroFirstInstance) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.accelerationStructure = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.maxVertexAttribDivisor = Unchecked.defaultof && x.supportsNonZeroFirstInstance = Unchecked.defaultof static member Empty = - VkAccelerationStructureDeviceAddressInfoKHR(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "accelerationStructure = %A" x.accelerationStructure - ] |> sprintf "VkAccelerationStructureDeviceAddressInfoKHR { %s }" + sprintf "maxVertexAttribDivisor = %A" x.maxVertexAttribDivisor + sprintf "supportsNonZeroFirstInstance = %A" x.supportsNonZeroFirstInstance + ] |> sprintf "VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR { %s }" end [] - type VkTransformMatrixKHR = + type VkVertexInputBindingDivisorDescriptionKHR = struct - val mutable public matrix : M34f + val mutable public binding : uint32 + val mutable public divisor : uint32 - new(matrix : M34f) = + new(binding : uint32, divisor : uint32) = { - matrix = matrix + binding = binding + divisor = divisor } member x.IsEmpty = - x.matrix = Unchecked.defaultof + x.binding = Unchecked.defaultof && x.divisor = Unchecked.defaultof static member Empty = - VkTransformMatrixKHR(Unchecked.defaultof) + VkVertexInputBindingDivisorDescriptionKHR(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ - sprintf "matrix = %A" x.matrix - ] |> sprintf "VkTransformMatrixKHR { %s }" + sprintf "binding = %A" x.binding + sprintf "divisor = %A" x.divisor + ] |> sprintf "VkVertexInputBindingDivisorDescriptionKHR { %s }" end [] - type VkAccelerationStructureInstanceKHR = + type VkPipelineVertexInputDivisorStateCreateInfoKHR = struct - val mutable public transform : VkTransformMatrixKHR - val mutable public instanceCustomIndex : uint24 - val mutable public mask : uint8 - val mutable public instanceShaderBindingTableRecordOffset : uint24 - val mutable public flags : uint8 - val mutable public accelerationStructureReference : uint64 + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public vertexBindingDivisorCount : uint32 + val mutable public pVertexBindingDivisors : nativeptr - new(transform : VkTransformMatrixKHR, instanceCustomIndex : uint24, mask : uint8, instanceShaderBindingTableRecordOffset : uint24, flags : uint8, accelerationStructureReference : uint64) = + new(pNext : nativeint, vertexBindingDivisorCount : uint32, pVertexBindingDivisors : nativeptr) = { - transform = transform - instanceCustomIndex = instanceCustomIndex - mask = mask - instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset - flags = flags - accelerationStructureReference = accelerationStructureReference + sType = 1000190001u + pNext = pNext + vertexBindingDivisorCount = vertexBindingDivisorCount + pVertexBindingDivisors = pVertexBindingDivisors } + new(vertexBindingDivisorCount : uint32, pVertexBindingDivisors : nativeptr) = + VkPipelineVertexInputDivisorStateCreateInfoKHR(Unchecked.defaultof, vertexBindingDivisorCount, pVertexBindingDivisors) + member x.IsEmpty = - x.transform = Unchecked.defaultof && x.instanceCustomIndex = Unchecked.defaultof && x.mask = Unchecked.defaultof && x.instanceShaderBindingTableRecordOffset = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.accelerationStructureReference = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.vertexBindingDivisorCount = Unchecked.defaultof && x.pVertexBindingDivisors = Unchecked.defaultof> static member Empty = - VkAccelerationStructureInstanceKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPipelineVertexInputDivisorStateCreateInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ - sprintf "transform = %A" x.transform - sprintf "instanceCustomIndex = %A" x.instanceCustomIndex - sprintf "mask = %A" x.mask - sprintf "instanceShaderBindingTableRecordOffset = %A" x.instanceShaderBindingTableRecordOffset - sprintf "flags = %A" x.flags - sprintf "accelerationStructureReference = %A" x.accelerationStructureReference - ] |> sprintf "VkAccelerationStructureInstanceKHR { %s }" + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "vertexBindingDivisorCount = %A" x.vertexBindingDivisorCount + sprintf "pVertexBindingDivisors = %A" x.pVertexBindingDivisors + ] |> sprintf "VkPipelineVertexInputDivisorStateCreateInfoKHR { %s }" end + + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +/// Promoted to KHRVertexAttributeDivisor. +module EXTVertexAttributeDivisor = + let Type = ExtensionType.Device + let Name = "VK_EXT_vertex_attribute_divisor" + let Number = 191 + + type VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT = KHRVertexAttributeDivisor.VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR + [] - type VkAccelerationStructureVersionInfoKHR = + type VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public pVersionData : nativeptr + val mutable public maxVertexAttribDivisor : uint32 - new(pNext : nativeint, pVersionData : nativeptr) = + new(pNext : nativeint, maxVertexAttribDivisor : uint32) = { - sType = 1000150009u + sType = 1000190000u pNext = pNext - pVersionData = pVersionData + maxVertexAttribDivisor = maxVertexAttribDivisor } - new(pVersionData : nativeptr) = - VkAccelerationStructureVersionInfoKHR(Unchecked.defaultof, pVersionData) + new(maxVertexAttribDivisor : uint32) = + VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(Unchecked.defaultof, maxVertexAttribDivisor) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.pVersionData = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.maxVertexAttribDivisor = Unchecked.defaultof static member Empty = - VkAccelerationStructureVersionInfoKHR(Unchecked.defaultof, Unchecked.defaultof>) + VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "pVersionData = %A" x.pVersionData - ] |> sprintf "VkAccelerationStructureVersionInfoKHR { %s }" + sprintf "maxVertexAttribDivisor = %A" x.maxVertexAttribDivisor + ] |> sprintf "VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT { %s }" end + type VkPipelineVertexInputDivisorStateCreateInfoEXT = KHRVertexAttributeDivisor.VkPipelineVertexInputDivisorStateCreateInfoKHR + + type VkVertexInputBindingDivisorDescriptionEXT = KHRVertexAttributeDivisor.VkVertexInputBindingDivisorDescriptionKHR + + + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module EXTVertexInputDynamicState = + let Type = ExtensionType.Device + let Name = "VK_EXT_vertex_input_dynamic_state" + let Number = 353 + [] - type VkCopyAccelerationStructureInfoKHR = + type VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public src : VkAccelerationStructureKHR - val mutable public dst : VkAccelerationStructureKHR - val mutable public mode : VkCopyAccelerationStructureModeKHR + val mutable public vertexInputDynamicState : VkBool32 - new(pNext : nativeint, src : VkAccelerationStructureKHR, dst : VkAccelerationStructureKHR, mode : VkCopyAccelerationStructureModeKHR) = + new(pNext : nativeint, vertexInputDynamicState : VkBool32) = { - sType = 1000150010u + sType = 1000352000u pNext = pNext - src = src - dst = dst - mode = mode + vertexInputDynamicState = vertexInputDynamicState } - new(src : VkAccelerationStructureKHR, dst : VkAccelerationStructureKHR, mode : VkCopyAccelerationStructureModeKHR) = - VkCopyAccelerationStructureInfoKHR(Unchecked.defaultof, src, dst, mode) + new(vertexInputDynamicState : VkBool32) = + VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT(Unchecked.defaultof, vertexInputDynamicState) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.src = Unchecked.defaultof && x.dst = Unchecked.defaultof && x.mode = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.vertexInputDynamicState = Unchecked.defaultof static member Empty = - VkCopyAccelerationStructureInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "src = %A" x.src - sprintf "dst = %A" x.dst - sprintf "mode = %A" x.mode - ] |> sprintf "VkCopyAccelerationStructureInfoKHR { %s }" + sprintf "vertexInputDynamicState = %A" x.vertexInputDynamicState + ] |> sprintf "VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT { %s }" end + type VkVertexInputAttributeDescription2EXT = EXTShaderObject.VkVertexInputAttributeDescription2EXT + + type VkVertexInputBindingDescription2EXT = EXTShaderObject.VkVertexInputBindingDescription2EXT + + + [] + module EnumExtensions = + type VkDynamicState with + static member inline VertexInputExt = unbox 1000352000 + + module VkRaw = + let vkCmdSetVertexInputEXT = EXTShaderObject.VkRaw.vkCmdSetVertexInputEXT + +/// Requires KHRSamplerYcbcrConversion | Vulkan11. +/// Promoted to Vulkan13. +module EXTYcbcr2plane444Formats = + let Type = ExtensionType.Device + let Name = "VK_EXT_ycbcr_2plane_444_formats" + let Number = 331 + [] - type VkCopyAccelerationStructureToMemoryInfoKHR = + type VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public src : VkAccelerationStructureKHR - val mutable public dst : VkDeviceOrHostAddressKHR - val mutable public mode : VkCopyAccelerationStructureModeKHR + val mutable public ycbcr2plane444Formats : VkBool32 - new(pNext : nativeint, src : VkAccelerationStructureKHR, dst : VkDeviceOrHostAddressKHR, mode : VkCopyAccelerationStructureModeKHR) = + new(pNext : nativeint, ycbcr2plane444Formats : VkBool32) = { - sType = 1000150011u + sType = 1000330000u pNext = pNext - src = src - dst = dst - mode = mode + ycbcr2plane444Formats = ycbcr2plane444Formats } - new(src : VkAccelerationStructureKHR, dst : VkDeviceOrHostAddressKHR, mode : VkCopyAccelerationStructureModeKHR) = - VkCopyAccelerationStructureToMemoryInfoKHR(Unchecked.defaultof, src, dst, mode) + new(ycbcr2plane444Formats : VkBool32) = + VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(Unchecked.defaultof, ycbcr2plane444Formats) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.src = Unchecked.defaultof && x.dst = Unchecked.defaultof && x.mode = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.ycbcr2plane444Formats = Unchecked.defaultof static member Empty = - VkCopyAccelerationStructureToMemoryInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "src = %A" x.src - sprintf "dst = %A" x.dst - sprintf "mode = %A" x.mode - ] |> sprintf "VkCopyAccelerationStructureToMemoryInfoKHR { %s }" + sprintf "ycbcr2plane444Formats = %A" x.ycbcr2plane444Formats + ] |> sprintf "VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT { %s }" end + + [] + module EnumExtensions = + type VkFormat with + static member inline G8B8r82plane444UnormExt = unbox 1000330000 + static member inline G10x6B10x6r10x62plane444Unorm3pack16Ext = unbox 1000330001 + static member inline G12x4B12x4r12x42plane444Unorm3pack16Ext = unbox 1000330002 + static member inline G16B16r162plane444UnormExt = unbox 1000330003 + + +/// Requires KHRSamplerYcbcrConversion | Vulkan11. +module EXTYcbcrImageArrays = + let Type = ExtensionType.Device + let Name = "VK_EXT_ycbcr_image_arrays" + let Number = 253 + [] - type VkCopyMemoryToAccelerationStructureInfoKHR = + type VkPhysicalDeviceYcbcrImageArraysFeaturesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public src : VkDeviceOrHostAddressConstKHR - val mutable public dst : VkAccelerationStructureKHR - val mutable public mode : VkCopyAccelerationStructureModeKHR + val mutable public ycbcrImageArrays : VkBool32 - new(pNext : nativeint, src : VkDeviceOrHostAddressConstKHR, dst : VkAccelerationStructureKHR, mode : VkCopyAccelerationStructureModeKHR) = + new(pNext : nativeint, ycbcrImageArrays : VkBool32) = { - sType = 1000150012u + sType = 1000252000u pNext = pNext - src = src - dst = dst - mode = mode + ycbcrImageArrays = ycbcrImageArrays } - new(src : VkDeviceOrHostAddressConstKHR, dst : VkAccelerationStructureKHR, mode : VkCopyAccelerationStructureModeKHR) = - VkCopyMemoryToAccelerationStructureInfoKHR(Unchecked.defaultof, src, dst, mode) + new(ycbcrImageArrays : VkBool32) = + VkPhysicalDeviceYcbcrImageArraysFeaturesEXT(Unchecked.defaultof, ycbcrImageArrays) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.src = Unchecked.defaultof && x.dst = Unchecked.defaultof && x.mode = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.ycbcrImageArrays = Unchecked.defaultof static member Empty = - VkCopyMemoryToAccelerationStructureInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceYcbcrImageArraysFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "src = %A" x.src - sprintf "dst = %A" x.dst - sprintf "mode = %A" x.mode - ] |> sprintf "VkCopyMemoryToAccelerationStructureInfoKHR { %s }" + sprintf "ycbcrImageArrays = %A" x.ycbcrImageArrays + ] |> sprintf "VkPhysicalDeviceYcbcrImageArraysFeaturesEXT { %s }" end + + +/// Requires (KHRExternalMemoryCapabilities, KHRExternalMemory) | Vulkan11. +module FUCHSIAExternalMemory = + let Type = ExtensionType.Device + let Name = "VK_FUCHSIA_external_memory" + let Number = 365 + [] - type VkPhysicalDeviceAccelerationStructureFeaturesKHR = + type VkImportMemoryZirconHandleInfoFUCHSIA = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public accelerationStructure : VkBool32 - val mutable public accelerationStructureCaptureReplay : VkBool32 - val mutable public accelerationStructureIndirectBuild : VkBool32 - val mutable public accelerationStructureHostCommands : VkBool32 - val mutable public descriptorBindingAccelerationStructureUpdateAfterBind : VkBool32 + val mutable public handleType : Vulkan11.VkExternalMemoryHandleTypeFlags + val mutable public handle : nativeint - new(pNext : nativeint, accelerationStructure : VkBool32, accelerationStructureCaptureReplay : VkBool32, accelerationStructureIndirectBuild : VkBool32, accelerationStructureHostCommands : VkBool32, descriptorBindingAccelerationStructureUpdateAfterBind : VkBool32) = + new(pNext : nativeint, handleType : Vulkan11.VkExternalMemoryHandleTypeFlags, handle : nativeint) = { - sType = 1000150013u + sType = 1000364000u pNext = pNext - accelerationStructure = accelerationStructure - accelerationStructureCaptureReplay = accelerationStructureCaptureReplay - accelerationStructureIndirectBuild = accelerationStructureIndirectBuild - accelerationStructureHostCommands = accelerationStructureHostCommands - descriptorBindingAccelerationStructureUpdateAfterBind = descriptorBindingAccelerationStructureUpdateAfterBind + handleType = handleType + handle = handle } - new(accelerationStructure : VkBool32, accelerationStructureCaptureReplay : VkBool32, accelerationStructureIndirectBuild : VkBool32, accelerationStructureHostCommands : VkBool32, descriptorBindingAccelerationStructureUpdateAfterBind : VkBool32) = - VkPhysicalDeviceAccelerationStructureFeaturesKHR(Unchecked.defaultof, accelerationStructure, accelerationStructureCaptureReplay, accelerationStructureIndirectBuild, accelerationStructureHostCommands, descriptorBindingAccelerationStructureUpdateAfterBind) + new(handleType : Vulkan11.VkExternalMemoryHandleTypeFlags, handle : nativeint) = + VkImportMemoryZirconHandleInfoFUCHSIA(Unchecked.defaultof, handleType, handle) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.accelerationStructure = Unchecked.defaultof && x.accelerationStructureCaptureReplay = Unchecked.defaultof && x.accelerationStructureIndirectBuild = Unchecked.defaultof && x.accelerationStructureHostCommands = Unchecked.defaultof && x.descriptorBindingAccelerationStructureUpdateAfterBind = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.handleType = Unchecked.defaultof && x.handle = Unchecked.defaultof static member Empty = - VkPhysicalDeviceAccelerationStructureFeaturesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkImportMemoryZirconHandleInfoFUCHSIA(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "accelerationStructure = %A" x.accelerationStructure - sprintf "accelerationStructureCaptureReplay = %A" x.accelerationStructureCaptureReplay - sprintf "accelerationStructureIndirectBuild = %A" x.accelerationStructureIndirectBuild - sprintf "accelerationStructureHostCommands = %A" x.accelerationStructureHostCommands - sprintf "descriptorBindingAccelerationStructureUpdateAfterBind = %A" x.descriptorBindingAccelerationStructureUpdateAfterBind - ] |> sprintf "VkPhysicalDeviceAccelerationStructureFeaturesKHR { %s }" + sprintf "handleType = %A" x.handleType + sprintf "handle = %A" x.handle + ] |> sprintf "VkImportMemoryZirconHandleInfoFUCHSIA { %s }" end [] - type VkPhysicalDeviceAccelerationStructurePropertiesKHR = + type VkMemoryGetZirconHandleInfoFUCHSIA = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public maxGeometryCount : uint64 - val mutable public maxInstanceCount : uint64 - val mutable public maxPrimitiveCount : uint64 - val mutable public maxPerStageDescriptorAccelerationStructures : uint32 - val mutable public maxPerStageDescriptorUpdateAfterBindAccelerationStructures : uint32 - val mutable public maxDescriptorSetAccelerationStructures : uint32 - val mutable public maxDescriptorSetUpdateAfterBindAccelerationStructures : uint32 - val mutable public minAccelerationStructureScratchOffsetAlignment : uint32 + val mutable public memory : VkDeviceMemory + val mutable public handleType : Vulkan11.VkExternalMemoryHandleTypeFlags - new(pNext : nativeint, maxGeometryCount : uint64, maxInstanceCount : uint64, maxPrimitiveCount : uint64, maxPerStageDescriptorAccelerationStructures : uint32, maxPerStageDescriptorUpdateAfterBindAccelerationStructures : uint32, maxDescriptorSetAccelerationStructures : uint32, maxDescriptorSetUpdateAfterBindAccelerationStructures : uint32, minAccelerationStructureScratchOffsetAlignment : uint32) = + new(pNext : nativeint, memory : VkDeviceMemory, handleType : Vulkan11.VkExternalMemoryHandleTypeFlags) = { - sType = 1000150014u + sType = 1000364002u pNext = pNext - maxGeometryCount = maxGeometryCount - maxInstanceCount = maxInstanceCount - maxPrimitiveCount = maxPrimitiveCount - maxPerStageDescriptorAccelerationStructures = maxPerStageDescriptorAccelerationStructures - maxPerStageDescriptorUpdateAfterBindAccelerationStructures = maxPerStageDescriptorUpdateAfterBindAccelerationStructures - maxDescriptorSetAccelerationStructures = maxDescriptorSetAccelerationStructures - maxDescriptorSetUpdateAfterBindAccelerationStructures = maxDescriptorSetUpdateAfterBindAccelerationStructures - minAccelerationStructureScratchOffsetAlignment = minAccelerationStructureScratchOffsetAlignment + memory = memory + handleType = handleType } - new(maxGeometryCount : uint64, maxInstanceCount : uint64, maxPrimitiveCount : uint64, maxPerStageDescriptorAccelerationStructures : uint32, maxPerStageDescriptorUpdateAfterBindAccelerationStructures : uint32, maxDescriptorSetAccelerationStructures : uint32, maxDescriptorSetUpdateAfterBindAccelerationStructures : uint32, minAccelerationStructureScratchOffsetAlignment : uint32) = - VkPhysicalDeviceAccelerationStructurePropertiesKHR(Unchecked.defaultof, maxGeometryCount, maxInstanceCount, maxPrimitiveCount, maxPerStageDescriptorAccelerationStructures, maxPerStageDescriptorUpdateAfterBindAccelerationStructures, maxDescriptorSetAccelerationStructures, maxDescriptorSetUpdateAfterBindAccelerationStructures, minAccelerationStructureScratchOffsetAlignment) + new(memory : VkDeviceMemory, handleType : Vulkan11.VkExternalMemoryHandleTypeFlags) = + VkMemoryGetZirconHandleInfoFUCHSIA(Unchecked.defaultof, memory, handleType) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.maxGeometryCount = Unchecked.defaultof && x.maxInstanceCount = Unchecked.defaultof && x.maxPrimitiveCount = Unchecked.defaultof && x.maxPerStageDescriptorAccelerationStructures = Unchecked.defaultof && x.maxPerStageDescriptorUpdateAfterBindAccelerationStructures = Unchecked.defaultof && x.maxDescriptorSetAccelerationStructures = Unchecked.defaultof && x.maxDescriptorSetUpdateAfterBindAccelerationStructures = Unchecked.defaultof && x.minAccelerationStructureScratchOffsetAlignment = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.memory = Unchecked.defaultof && x.handleType = Unchecked.defaultof static member Empty = - VkPhysicalDeviceAccelerationStructurePropertiesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkMemoryGetZirconHandleInfoFUCHSIA(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "maxGeometryCount = %A" x.maxGeometryCount - sprintf "maxInstanceCount = %A" x.maxInstanceCount - sprintf "maxPrimitiveCount = %A" x.maxPrimitiveCount - sprintf "maxPerStageDescriptorAccelerationStructures = %A" x.maxPerStageDescriptorAccelerationStructures - sprintf "maxPerStageDescriptorUpdateAfterBindAccelerationStructures = %A" x.maxPerStageDescriptorUpdateAfterBindAccelerationStructures - sprintf "maxDescriptorSetAccelerationStructures = %A" x.maxDescriptorSetAccelerationStructures - sprintf "maxDescriptorSetUpdateAfterBindAccelerationStructures = %A" x.maxDescriptorSetUpdateAfterBindAccelerationStructures - sprintf "minAccelerationStructureScratchOffsetAlignment = %A" x.minAccelerationStructureScratchOffsetAlignment - ] |> sprintf "VkPhysicalDeviceAccelerationStructurePropertiesKHR { %s }" + sprintf "memory = %A" x.memory + sprintf "handleType = %A" x.handleType + ] |> sprintf "VkMemoryGetZirconHandleInfoFUCHSIA { %s }" end [] - type VkWriteDescriptorSetAccelerationStructureKHR = + type VkMemoryZirconHandlePropertiesFUCHSIA = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public accelerationStructureCount : uint32 - val mutable public pAccelerationStructures : nativeptr + val mutable public memoryTypeBits : uint32 - new(pNext : nativeint, accelerationStructureCount : uint32, pAccelerationStructures : nativeptr) = + new(pNext : nativeint, memoryTypeBits : uint32) = { - sType = 1000150007u + sType = 1000364001u pNext = pNext - accelerationStructureCount = accelerationStructureCount - pAccelerationStructures = pAccelerationStructures + memoryTypeBits = memoryTypeBits } - new(accelerationStructureCount : uint32, pAccelerationStructures : nativeptr) = - VkWriteDescriptorSetAccelerationStructureKHR(Unchecked.defaultof, accelerationStructureCount, pAccelerationStructures) + new(memoryTypeBits : uint32) = + VkMemoryZirconHandlePropertiesFUCHSIA(Unchecked.defaultof, memoryTypeBits) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.accelerationStructureCount = Unchecked.defaultof && x.pAccelerationStructures = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.memoryTypeBits = Unchecked.defaultof static member Empty = - VkWriteDescriptorSetAccelerationStructureKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + VkMemoryZirconHandlePropertiesFUCHSIA(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "accelerationStructureCount = %A" x.accelerationStructureCount - sprintf "pAccelerationStructures = %A" x.pAccelerationStructures - ] |> sprintf "VkWriteDescriptorSetAccelerationStructureKHR { %s }" + sprintf "memoryTypeBits = %A" x.memoryTypeBits + ] |> sprintf "VkMemoryZirconHandlePropertiesFUCHSIA { %s }" end [] module EnumExtensions = - type VkAccessFlags with - static member inline AccelerationStructureReadBitKhr = unbox 0x00200000 - static member inline AccelerationStructureWriteBitKhr = unbox 0x00400000 - type VkBufferUsageFlags with - static member inline AccelerationStructureBuildInputReadOnlyBitKhr = unbox 0x00080000 - static member inline AccelerationStructureStorageBitKhr = unbox 0x00100000 - type VkDebugReportObjectTypeEXT with - static member inline AccelerationStructureKhr = unbox 1000150000 - type VkDescriptorType with - static member inline AccelerationStructureKhr = unbox 1000150000 - type VkFormatFeatureFlags with - static member inline AccelerationStructureVertexBufferBitKhr = unbox 0x20000000 - type VkIndexType with - static member inline NoneKhr = unbox 1000165000 - type VkObjectType with - static member inline AccelerationStructureKhr = unbox 1000150000 - type VkPipelineStageFlags with - static member inline AccelerationStructureBuildBitKhr = unbox 0x02000000 - type VkQueryType with - static member inline AccelerationStructureCompactedSizeKhr = unbox 1000150000 - static member inline AccelerationStructureSerializationSizeKhr = unbox 1000150001 + type Vulkan11.VkExternalMemoryHandleTypeFlags with + static member inline ZirconVmoBitFuchsia = unbox 0x00000800 module VkRaw = [] - type VkCreateAccelerationStructureKHRDel = delegate of VkDevice * nativeptr * nativeptr * nativeptr -> VkResult - [] - type VkDestroyAccelerationStructureKHRDel = delegate of VkDevice * VkAccelerationStructureKHR * nativeptr -> unit - [] - type VkCmdBuildAccelerationStructuresKHRDel = delegate of VkCommandBuffer * uint32 * nativeptr * nativeptr> -> unit - [] - type VkCmdBuildAccelerationStructuresIndirectKHRDel = delegate of VkCommandBuffer * uint32 * nativeptr * nativeptr * nativeptr * nativeptr> -> unit - [] - type VkBuildAccelerationStructuresKHRDel = delegate of VkDevice * VkDeferredOperationKHR * uint32 * nativeptr * nativeptr> -> VkResult - [] - type VkCopyAccelerationStructureKHRDel = delegate of VkDevice * VkDeferredOperationKHR * nativeptr -> VkResult - [] - type VkCopyAccelerationStructureToMemoryKHRDel = delegate of VkDevice * VkDeferredOperationKHR * nativeptr -> VkResult - [] - type VkCopyMemoryToAccelerationStructureKHRDel = delegate of VkDevice * VkDeferredOperationKHR * nativeptr -> VkResult - [] - type VkWriteAccelerationStructuresPropertiesKHRDel = delegate of VkDevice * uint32 * nativeptr * VkQueryType * uint64 * nativeint * uint64 -> VkResult - [] - type VkCmdCopyAccelerationStructureKHRDel = delegate of VkCommandBuffer * nativeptr -> unit - [] - type VkCmdCopyAccelerationStructureToMemoryKHRDel = delegate of VkCommandBuffer * nativeptr -> unit - [] - type VkCmdCopyMemoryToAccelerationStructureKHRDel = delegate of VkCommandBuffer * nativeptr -> unit - [] - type VkGetAccelerationStructureDeviceAddressKHRDel = delegate of VkDevice * nativeptr -> VkDeviceAddress - [] - type VkCmdWriteAccelerationStructuresPropertiesKHRDel = delegate of VkCommandBuffer * uint32 * nativeptr * VkQueryType * VkQueryPool * uint32 -> unit - [] - type VkGetDeviceAccelerationStructureCompatibilityKHRDel = delegate of VkDevice * nativeptr * nativeptr -> unit + type VkGetMemoryZirconHandleFUCHSIADel = delegate of VkDevice * nativeptr * nativeptr -> VkResult [] - type VkGetAccelerationStructureBuildSizesKHRDel = delegate of VkDevice * VkAccelerationStructureBuildTypeKHR * nativeptr * nativeptr * nativeptr -> unit + type VkGetMemoryZirconHandlePropertiesFUCHSIADel = delegate of VkDevice * Vulkan11.VkExternalMemoryHandleTypeFlags * nativeint * nativeptr -> VkResult [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRAccelerationStructure") - static let s_vkCreateAccelerationStructureKHRDel = VkRaw.vkImportInstanceDelegate "vkCreateAccelerationStructureKHR" - static let s_vkDestroyAccelerationStructureKHRDel = VkRaw.vkImportInstanceDelegate "vkDestroyAccelerationStructureKHR" - static let s_vkCmdBuildAccelerationStructuresKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdBuildAccelerationStructuresKHR" - static let s_vkCmdBuildAccelerationStructuresIndirectKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdBuildAccelerationStructuresIndirectKHR" - static let s_vkBuildAccelerationStructuresKHRDel = VkRaw.vkImportInstanceDelegate "vkBuildAccelerationStructuresKHR" - static let s_vkCopyAccelerationStructureKHRDel = VkRaw.vkImportInstanceDelegate "vkCopyAccelerationStructureKHR" - static let s_vkCopyAccelerationStructureToMemoryKHRDel = VkRaw.vkImportInstanceDelegate "vkCopyAccelerationStructureToMemoryKHR" - static let s_vkCopyMemoryToAccelerationStructureKHRDel = VkRaw.vkImportInstanceDelegate "vkCopyMemoryToAccelerationStructureKHR" - static let s_vkWriteAccelerationStructuresPropertiesKHRDel = VkRaw.vkImportInstanceDelegate "vkWriteAccelerationStructuresPropertiesKHR" - static let s_vkCmdCopyAccelerationStructureKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdCopyAccelerationStructureKHR" - static let s_vkCmdCopyAccelerationStructureToMemoryKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdCopyAccelerationStructureToMemoryKHR" - static let s_vkCmdCopyMemoryToAccelerationStructureKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdCopyMemoryToAccelerationStructureKHR" - static let s_vkGetAccelerationStructureDeviceAddressKHRDel = VkRaw.vkImportInstanceDelegate "vkGetAccelerationStructureDeviceAddressKHR" - static let s_vkCmdWriteAccelerationStructuresPropertiesKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdWriteAccelerationStructuresPropertiesKHR" - static let s_vkGetDeviceAccelerationStructureCompatibilityKHRDel = VkRaw.vkImportInstanceDelegate "vkGetDeviceAccelerationStructureCompatibilityKHR" - static let s_vkGetAccelerationStructureBuildSizesKHRDel = VkRaw.vkImportInstanceDelegate "vkGetAccelerationStructureBuildSizesKHR" + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading FUCHSIAExternalMemory") + static let s_vkGetMemoryZirconHandleFUCHSIADel = VkRaw.vkImportInstanceDelegate "vkGetMemoryZirconHandleFUCHSIA" + static let s_vkGetMemoryZirconHandlePropertiesFUCHSIADel = VkRaw.vkImportInstanceDelegate "vkGetMemoryZirconHandlePropertiesFUCHSIA" static do Report.End(3) |> ignore - static member vkCreateAccelerationStructureKHR = s_vkCreateAccelerationStructureKHRDel - static member vkDestroyAccelerationStructureKHR = s_vkDestroyAccelerationStructureKHRDel - static member vkCmdBuildAccelerationStructuresKHR = s_vkCmdBuildAccelerationStructuresKHRDel - static member vkCmdBuildAccelerationStructuresIndirectKHR = s_vkCmdBuildAccelerationStructuresIndirectKHRDel - static member vkBuildAccelerationStructuresKHR = s_vkBuildAccelerationStructuresKHRDel - static member vkCopyAccelerationStructureKHR = s_vkCopyAccelerationStructureKHRDel - static member vkCopyAccelerationStructureToMemoryKHR = s_vkCopyAccelerationStructureToMemoryKHRDel - static member vkCopyMemoryToAccelerationStructureKHR = s_vkCopyMemoryToAccelerationStructureKHRDel - static member vkWriteAccelerationStructuresPropertiesKHR = s_vkWriteAccelerationStructuresPropertiesKHRDel - static member vkCmdCopyAccelerationStructureKHR = s_vkCmdCopyAccelerationStructureKHRDel - static member vkCmdCopyAccelerationStructureToMemoryKHR = s_vkCmdCopyAccelerationStructureToMemoryKHRDel - static member vkCmdCopyMemoryToAccelerationStructureKHR = s_vkCmdCopyMemoryToAccelerationStructureKHRDel - static member vkGetAccelerationStructureDeviceAddressKHR = s_vkGetAccelerationStructureDeviceAddressKHRDel - static member vkCmdWriteAccelerationStructuresPropertiesKHR = s_vkCmdWriteAccelerationStructuresPropertiesKHRDel - static member vkGetDeviceAccelerationStructureCompatibilityKHR = s_vkGetDeviceAccelerationStructureCompatibilityKHRDel - static member vkGetAccelerationStructureBuildSizesKHR = s_vkGetAccelerationStructureBuildSizesKHRDel - let vkCreateAccelerationStructureKHR(device : VkDevice, pCreateInfo : nativeptr, pAllocator : nativeptr, pAccelerationStructure : nativeptr) = Loader.vkCreateAccelerationStructureKHR.Invoke(device, pCreateInfo, pAllocator, pAccelerationStructure) - let vkDestroyAccelerationStructureKHR(device : VkDevice, accelerationStructure : VkAccelerationStructureKHR, pAllocator : nativeptr) = Loader.vkDestroyAccelerationStructureKHR.Invoke(device, accelerationStructure, pAllocator) - let vkCmdBuildAccelerationStructuresKHR(commandBuffer : VkCommandBuffer, infoCount : uint32, pInfos : nativeptr, ppBuildRangeInfos : nativeptr>) = Loader.vkCmdBuildAccelerationStructuresKHR.Invoke(commandBuffer, infoCount, pInfos, ppBuildRangeInfos) - let vkCmdBuildAccelerationStructuresIndirectKHR(commandBuffer : VkCommandBuffer, infoCount : uint32, pInfos : nativeptr, pIndirectDeviceAddresses : nativeptr, pIndirectStrides : nativeptr, ppMaxPrimitiveCounts : nativeptr>) = Loader.vkCmdBuildAccelerationStructuresIndirectKHR.Invoke(commandBuffer, infoCount, pInfos, pIndirectDeviceAddresses, pIndirectStrides, ppMaxPrimitiveCounts) - let vkBuildAccelerationStructuresKHR(device : VkDevice, deferredOperation : VkDeferredOperationKHR, infoCount : uint32, pInfos : nativeptr, ppBuildRangeInfos : nativeptr>) = Loader.vkBuildAccelerationStructuresKHR.Invoke(device, deferredOperation, infoCount, pInfos, ppBuildRangeInfos) - let vkCopyAccelerationStructureKHR(device : VkDevice, deferredOperation : VkDeferredOperationKHR, pInfo : nativeptr) = Loader.vkCopyAccelerationStructureKHR.Invoke(device, deferredOperation, pInfo) - let vkCopyAccelerationStructureToMemoryKHR(device : VkDevice, deferredOperation : VkDeferredOperationKHR, pInfo : nativeptr) = Loader.vkCopyAccelerationStructureToMemoryKHR.Invoke(device, deferredOperation, pInfo) - let vkCopyMemoryToAccelerationStructureKHR(device : VkDevice, deferredOperation : VkDeferredOperationKHR, pInfo : nativeptr) = Loader.vkCopyMemoryToAccelerationStructureKHR.Invoke(device, deferredOperation, pInfo) - let vkWriteAccelerationStructuresPropertiesKHR(device : VkDevice, accelerationStructureCount : uint32, pAccelerationStructures : nativeptr, queryType : VkQueryType, dataSize : uint64, pData : nativeint, stride : uint64) = Loader.vkWriteAccelerationStructuresPropertiesKHR.Invoke(device, accelerationStructureCount, pAccelerationStructures, queryType, dataSize, pData, stride) - let vkCmdCopyAccelerationStructureKHR(commandBuffer : VkCommandBuffer, pInfo : nativeptr) = Loader.vkCmdCopyAccelerationStructureKHR.Invoke(commandBuffer, pInfo) - let vkCmdCopyAccelerationStructureToMemoryKHR(commandBuffer : VkCommandBuffer, pInfo : nativeptr) = Loader.vkCmdCopyAccelerationStructureToMemoryKHR.Invoke(commandBuffer, pInfo) - let vkCmdCopyMemoryToAccelerationStructureKHR(commandBuffer : VkCommandBuffer, pInfo : nativeptr) = Loader.vkCmdCopyMemoryToAccelerationStructureKHR.Invoke(commandBuffer, pInfo) - let vkGetAccelerationStructureDeviceAddressKHR(device : VkDevice, pInfo : nativeptr) = Loader.vkGetAccelerationStructureDeviceAddressKHR.Invoke(device, pInfo) - let vkCmdWriteAccelerationStructuresPropertiesKHR(commandBuffer : VkCommandBuffer, accelerationStructureCount : uint32, pAccelerationStructures : nativeptr, queryType : VkQueryType, queryPool : VkQueryPool, firstQuery : uint32) = Loader.vkCmdWriteAccelerationStructuresPropertiesKHR.Invoke(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) - let vkGetDeviceAccelerationStructureCompatibilityKHR(device : VkDevice, pVersionInfo : nativeptr, pCompatibility : nativeptr) = Loader.vkGetDeviceAccelerationStructureCompatibilityKHR.Invoke(device, pVersionInfo, pCompatibility) - let vkGetAccelerationStructureBuildSizesKHR(device : VkDevice, buildType : VkAccelerationStructureBuildTypeKHR, pBuildInfo : nativeptr, pMaxPrimitiveCounts : nativeptr, pSizeInfo : nativeptr) = Loader.vkGetAccelerationStructureBuildSizesKHR.Invoke(device, buildType, pBuildInfo, pMaxPrimitiveCounts, pSizeInfo) - - module KHRFormatFeatureFlags2 = - [] - module EnumExtensions = - type VkFormatFeatureFlags2 with - static member inline FormatFeature2AccelerationStructureVertexBufferBitKhr = unbox 0x20000000 + static member vkGetMemoryZirconHandleFUCHSIA = s_vkGetMemoryZirconHandleFUCHSIADel + static member vkGetMemoryZirconHandlePropertiesFUCHSIA = s_vkGetMemoryZirconHandlePropertiesFUCHSIADel + let vkGetMemoryZirconHandleFUCHSIA(device : VkDevice, pGetZirconHandleInfo : nativeptr, pZirconHandle : nativeptr) = Loader.vkGetMemoryZirconHandleFUCHSIA.Invoke(device, pGetZirconHandleInfo, pZirconHandle) + let vkGetMemoryZirconHandlePropertiesFUCHSIA(device : VkDevice, handleType : Vulkan11.VkExternalMemoryHandleTypeFlags, zirconHandle : nativeint, pMemoryZirconHandleProperties : nativeptr) = Loader.vkGetMemoryZirconHandlePropertiesFUCHSIA.Invoke(device, handleType, zirconHandle, pMemoryZirconHandleProperties) +/// Requires FUCHSIAExternalMemory, (KHRSamplerYcbcrConversion | Vulkan11). +module FUCHSIABufferCollection = + let Type = ExtensionType.Device + let Name = "VK_FUCHSIA_buffer_collection" + let Number = 367 -module KHRShaderFloatControls = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_KHR_shader_float_controls" - let Number = 198 - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] + [] + type VkBufferCollectionFUCHSIA = + struct + val mutable public Handle : uint64 + new(h) = { Handle = h } + static member Null = VkBufferCollectionFUCHSIA(0UL) + member x.IsNull = x.Handle = 0UL + member x.IsValid = x.Handle <> 0UL + end + [] + type VkImageFormatConstraintsFlagsFUCHSIA = + | All = 0 + | None = 0 - type VkShaderFloatControlsIndependenceKHR = VkShaderFloatControlsIndependence + [] + type VkImageConstraintsInfoFlagsFUCHSIA = + | All = 31 + | None = 0 + | CpuReadRarely = 0x00000001 + | CpuReadOften = 0x00000002 + | CpuWriteRarely = 0x00000004 + | CpuWriteOften = 0x00000008 + | ProtectedOptional = 0x00000010 - type VkPhysicalDeviceFloatControlsPropertiesKHR = VkPhysicalDeviceFloatControlsProperties + [] + type VkBufferCollectionBufferCreateInfoFUCHSIA = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public collection : VkBufferCollectionFUCHSIA + val mutable public index : uint32 - [] - module EnumExtensions = - type VkShaderFloatControlsIndependence with - static member inline D32BitOnlyKhr = unbox 0 - static member inline AllKhr = unbox 1 - static member inline NoneKhr = unbox 2 + new(pNext : nativeint, collection : VkBufferCollectionFUCHSIA, index : uint32) = + { + sType = 1000366005u + pNext = pNext + collection = collection + index = index + } + new(collection : VkBufferCollectionFUCHSIA, index : uint32) = + VkBufferCollectionBufferCreateInfoFUCHSIA(Unchecked.defaultof, collection, index) -module KHRSpirv14 = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - open KHRShaderFloatControls - let Name = "VK_KHR_spirv_1_4" - let Number = 237 + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.collection = Unchecked.defaultof && x.index = Unchecked.defaultof - let Required = [ KHRShaderFloatControls.Name ] + static member Empty = + VkBufferCollectionBufferCreateInfoFUCHSIA(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "collection = %A" x.collection + sprintf "index = %A" x.index + ] |> sprintf "VkBufferCollectionBufferCreateInfoFUCHSIA { %s }" + end -module KHRRayTracingPipeline = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open EXTDebugReport - open EXTDescriptorIndexing - open KHRAccelerationStructure - open KHRBufferDeviceAddress - open KHRDeferredHostOperations - open KHRGetPhysicalDeviceProperties2 - open KHRMaintenance3 - open KHRPipelineLibrary - open KHRShaderFloatControls - open KHRSpirv14 - let Name = "VK_KHR_ray_tracing_pipeline" - let Number = 348 + [] + type VkBufferCollectionConstraintsInfoFUCHSIA = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public minBufferCount : uint32 + val mutable public maxBufferCount : uint32 + val mutable public minBufferCountForCamping : uint32 + val mutable public minBufferCountForDedicatedSlack : uint32 + val mutable public minBufferCountForSharedSlack : uint32 - let Required = [ KHRAccelerationStructure.Name; KHRSpirv14.Name ] + new(pNext : nativeint, minBufferCount : uint32, maxBufferCount : uint32, minBufferCountForCamping : uint32, minBufferCountForDedicatedSlack : uint32, minBufferCountForSharedSlack : uint32) = + { + sType = 1000366009u + pNext = pNext + minBufferCount = minBufferCount + maxBufferCount = maxBufferCount + minBufferCountForCamping = minBufferCountForCamping + minBufferCountForDedicatedSlack = minBufferCountForDedicatedSlack + minBufferCountForSharedSlack = minBufferCountForSharedSlack + } + new(minBufferCount : uint32, maxBufferCount : uint32, minBufferCountForCamping : uint32, minBufferCountForDedicatedSlack : uint32, minBufferCountForSharedSlack : uint32) = + VkBufferCollectionConstraintsInfoFUCHSIA(Unchecked.defaultof, minBufferCount, maxBufferCount, minBufferCountForCamping, minBufferCountForDedicatedSlack, minBufferCountForSharedSlack) - type VkRayTracingShaderGroupTypeKHR = - | General = 0 - | TrianglesHitGroup = 1 - | ProceduralHitGroup = 2 + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.minBufferCount = Unchecked.defaultof && x.maxBufferCount = Unchecked.defaultof && x.minBufferCountForCamping = Unchecked.defaultof && x.minBufferCountForDedicatedSlack = Unchecked.defaultof && x.minBufferCountForSharedSlack = Unchecked.defaultof - type VkShaderGroupShaderKHR = - | General = 0 - | ClosestHit = 1 - | AnyHit = 2 - | Intersection = 3 + static member Empty = + VkBufferCollectionConstraintsInfoFUCHSIA(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "minBufferCount = %A" x.minBufferCount + sprintf "maxBufferCount = %A" x.maxBufferCount + sprintf "minBufferCountForCamping = %A" x.minBufferCountForCamping + sprintf "minBufferCountForDedicatedSlack = %A" x.minBufferCountForDedicatedSlack + sprintf "minBufferCountForSharedSlack = %A" x.minBufferCountForSharedSlack + ] |> sprintf "VkBufferCollectionConstraintsInfoFUCHSIA { %s }" + end [] - type VkPhysicalDeviceRayTracingPipelineFeaturesKHR = + type VkBufferCollectionCreateInfoFUCHSIA = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public rayTracingPipeline : VkBool32 - val mutable public rayTracingPipelineShaderGroupHandleCaptureReplay : VkBool32 - val mutable public rayTracingPipelineShaderGroupHandleCaptureReplayMixed : VkBool32 - val mutable public rayTracingPipelineTraceRaysIndirect : VkBool32 - val mutable public rayTraversalPrimitiveCulling : VkBool32 + val mutable public collectionToken : nativeint - new(pNext : nativeint, rayTracingPipeline : VkBool32, rayTracingPipelineShaderGroupHandleCaptureReplay : VkBool32, rayTracingPipelineShaderGroupHandleCaptureReplayMixed : VkBool32, rayTracingPipelineTraceRaysIndirect : VkBool32, rayTraversalPrimitiveCulling : VkBool32) = + new(pNext : nativeint, collectionToken : nativeint) = { - sType = 1000347000u + sType = 1000366000u pNext = pNext - rayTracingPipeline = rayTracingPipeline - rayTracingPipelineShaderGroupHandleCaptureReplay = rayTracingPipelineShaderGroupHandleCaptureReplay - rayTracingPipelineShaderGroupHandleCaptureReplayMixed = rayTracingPipelineShaderGroupHandleCaptureReplayMixed - rayTracingPipelineTraceRaysIndirect = rayTracingPipelineTraceRaysIndirect - rayTraversalPrimitiveCulling = rayTraversalPrimitiveCulling + collectionToken = collectionToken } - new(rayTracingPipeline : VkBool32, rayTracingPipelineShaderGroupHandleCaptureReplay : VkBool32, rayTracingPipelineShaderGroupHandleCaptureReplayMixed : VkBool32, rayTracingPipelineTraceRaysIndirect : VkBool32, rayTraversalPrimitiveCulling : VkBool32) = - VkPhysicalDeviceRayTracingPipelineFeaturesKHR(Unchecked.defaultof, rayTracingPipeline, rayTracingPipelineShaderGroupHandleCaptureReplay, rayTracingPipelineShaderGroupHandleCaptureReplayMixed, rayTracingPipelineTraceRaysIndirect, rayTraversalPrimitiveCulling) + new(collectionToken : nativeint) = + VkBufferCollectionCreateInfoFUCHSIA(Unchecked.defaultof, collectionToken) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.rayTracingPipeline = Unchecked.defaultof && x.rayTracingPipelineShaderGroupHandleCaptureReplay = Unchecked.defaultof && x.rayTracingPipelineShaderGroupHandleCaptureReplayMixed = Unchecked.defaultof && x.rayTracingPipelineTraceRaysIndirect = Unchecked.defaultof && x.rayTraversalPrimitiveCulling = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.collectionToken = Unchecked.defaultof static member Empty = - VkPhysicalDeviceRayTracingPipelineFeaturesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkBufferCollectionCreateInfoFUCHSIA(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "rayTracingPipeline = %A" x.rayTracingPipeline - sprintf "rayTracingPipelineShaderGroupHandleCaptureReplay = %A" x.rayTracingPipelineShaderGroupHandleCaptureReplay - sprintf "rayTracingPipelineShaderGroupHandleCaptureReplayMixed = %A" x.rayTracingPipelineShaderGroupHandleCaptureReplayMixed - sprintf "rayTracingPipelineTraceRaysIndirect = %A" x.rayTracingPipelineTraceRaysIndirect - sprintf "rayTraversalPrimitiveCulling = %A" x.rayTraversalPrimitiveCulling - ] |> sprintf "VkPhysicalDeviceRayTracingPipelineFeaturesKHR { %s }" + sprintf "collectionToken = %A" x.collectionToken + ] |> sprintf "VkBufferCollectionCreateInfoFUCHSIA { %s }" end [] - type VkPhysicalDeviceRayTracingPipelinePropertiesKHR = + type VkBufferCollectionImageCreateInfoFUCHSIA = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public shaderGroupHandleSize : uint32 - val mutable public maxRayRecursionDepth : uint32 - val mutable public maxShaderGroupStride : uint32 - val mutable public shaderGroupBaseAlignment : uint32 - val mutable public shaderGroupHandleCaptureReplaySize : uint32 - val mutable public maxRayDispatchInvocationCount : uint32 - val mutable public shaderGroupHandleAlignment : uint32 - val mutable public maxRayHitAttributeSize : uint32 + val mutable public collection : VkBufferCollectionFUCHSIA + val mutable public index : uint32 - new(pNext : nativeint, shaderGroupHandleSize : uint32, maxRayRecursionDepth : uint32, maxShaderGroupStride : uint32, shaderGroupBaseAlignment : uint32, shaderGroupHandleCaptureReplaySize : uint32, maxRayDispatchInvocationCount : uint32, shaderGroupHandleAlignment : uint32, maxRayHitAttributeSize : uint32) = + new(pNext : nativeint, collection : VkBufferCollectionFUCHSIA, index : uint32) = { - sType = 1000347001u + sType = 1000366002u pNext = pNext - shaderGroupHandleSize = shaderGroupHandleSize - maxRayRecursionDepth = maxRayRecursionDepth - maxShaderGroupStride = maxShaderGroupStride - shaderGroupBaseAlignment = shaderGroupBaseAlignment - shaderGroupHandleCaptureReplaySize = shaderGroupHandleCaptureReplaySize - maxRayDispatchInvocationCount = maxRayDispatchInvocationCount - shaderGroupHandleAlignment = shaderGroupHandleAlignment - maxRayHitAttributeSize = maxRayHitAttributeSize + collection = collection + index = index } - new(shaderGroupHandleSize : uint32, maxRayRecursionDepth : uint32, maxShaderGroupStride : uint32, shaderGroupBaseAlignment : uint32, shaderGroupHandleCaptureReplaySize : uint32, maxRayDispatchInvocationCount : uint32, shaderGroupHandleAlignment : uint32, maxRayHitAttributeSize : uint32) = - VkPhysicalDeviceRayTracingPipelinePropertiesKHR(Unchecked.defaultof, shaderGroupHandleSize, maxRayRecursionDepth, maxShaderGroupStride, shaderGroupBaseAlignment, shaderGroupHandleCaptureReplaySize, maxRayDispatchInvocationCount, shaderGroupHandleAlignment, maxRayHitAttributeSize) + new(collection : VkBufferCollectionFUCHSIA, index : uint32) = + VkBufferCollectionImageCreateInfoFUCHSIA(Unchecked.defaultof, collection, index) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.shaderGroupHandleSize = Unchecked.defaultof && x.maxRayRecursionDepth = Unchecked.defaultof && x.maxShaderGroupStride = Unchecked.defaultof && x.shaderGroupBaseAlignment = Unchecked.defaultof && x.shaderGroupHandleCaptureReplaySize = Unchecked.defaultof && x.maxRayDispatchInvocationCount = Unchecked.defaultof && x.shaderGroupHandleAlignment = Unchecked.defaultof && x.maxRayHitAttributeSize = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.collection = Unchecked.defaultof && x.index = Unchecked.defaultof static member Empty = - VkPhysicalDeviceRayTracingPipelinePropertiesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkBufferCollectionImageCreateInfoFUCHSIA(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "shaderGroupHandleSize = %A" x.shaderGroupHandleSize - sprintf "maxRayRecursionDepth = %A" x.maxRayRecursionDepth - sprintf "maxShaderGroupStride = %A" x.maxShaderGroupStride - sprintf "shaderGroupBaseAlignment = %A" x.shaderGroupBaseAlignment - sprintf "shaderGroupHandleCaptureReplaySize = %A" x.shaderGroupHandleCaptureReplaySize - sprintf "maxRayDispatchInvocationCount = %A" x.maxRayDispatchInvocationCount - sprintf "shaderGroupHandleAlignment = %A" x.shaderGroupHandleAlignment - sprintf "maxRayHitAttributeSize = %A" x.maxRayHitAttributeSize - ] |> sprintf "VkPhysicalDeviceRayTracingPipelinePropertiesKHR { %s }" + sprintf "collection = %A" x.collection + sprintf "index = %A" x.index + ] |> sprintf "VkBufferCollectionImageCreateInfoFUCHSIA { %s }" end [] - type VkRayTracingShaderGroupCreateInfoKHR = + type VkSysmemColorSpaceFUCHSIA = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public _type : VkRayTracingShaderGroupTypeKHR - val mutable public generalShader : uint32 - val mutable public closestHitShader : uint32 - val mutable public anyHitShader : uint32 - val mutable public intersectionShader : uint32 - val mutable public pShaderGroupCaptureReplayHandle : nativeint + val mutable public colorSpace : uint32 - new(pNext : nativeint, _type : VkRayTracingShaderGroupTypeKHR, generalShader : uint32, closestHitShader : uint32, anyHitShader : uint32, intersectionShader : uint32, pShaderGroupCaptureReplayHandle : nativeint) = + new(pNext : nativeint, colorSpace : uint32) = { - sType = 1000150016u + sType = 1000366008u pNext = pNext - _type = _type - generalShader = generalShader - closestHitShader = closestHitShader - anyHitShader = anyHitShader - intersectionShader = intersectionShader - pShaderGroupCaptureReplayHandle = pShaderGroupCaptureReplayHandle + colorSpace = colorSpace } - new(_type : VkRayTracingShaderGroupTypeKHR, generalShader : uint32, closestHitShader : uint32, anyHitShader : uint32, intersectionShader : uint32, pShaderGroupCaptureReplayHandle : nativeint) = - VkRayTracingShaderGroupCreateInfoKHR(Unchecked.defaultof, _type, generalShader, closestHitShader, anyHitShader, intersectionShader, pShaderGroupCaptureReplayHandle) + new(colorSpace : uint32) = + VkSysmemColorSpaceFUCHSIA(Unchecked.defaultof, colorSpace) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x._type = Unchecked.defaultof && x.generalShader = Unchecked.defaultof && x.closestHitShader = Unchecked.defaultof && x.anyHitShader = Unchecked.defaultof && x.intersectionShader = Unchecked.defaultof && x.pShaderGroupCaptureReplayHandle = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.colorSpace = Unchecked.defaultof static member Empty = - VkRayTracingShaderGroupCreateInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkSysmemColorSpaceFUCHSIA(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "_type = %A" x._type - sprintf "generalShader = %A" x.generalShader - sprintf "closestHitShader = %A" x.closestHitShader - sprintf "anyHitShader = %A" x.anyHitShader - sprintf "intersectionShader = %A" x.intersectionShader - sprintf "pShaderGroupCaptureReplayHandle = %A" x.pShaderGroupCaptureReplayHandle - ] |> sprintf "VkRayTracingShaderGroupCreateInfoKHR { %s }" + sprintf "colorSpace = %A" x.colorSpace + ] |> sprintf "VkSysmemColorSpaceFUCHSIA { %s }" end [] - type VkRayTracingPipelineInterfaceCreateInfoKHR = + type VkBufferCollectionPropertiesFUCHSIA = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public maxPipelineRayPayloadSize : uint32 - val mutable public maxPipelineRayHitAttributeSize : uint32 + val mutable public memoryTypeBits : uint32 + val mutable public bufferCount : uint32 + val mutable public createInfoIndex : uint32 + val mutable public sysmemPixelFormat : uint64 + val mutable public formatFeatures : VkFormatFeatureFlags + val mutable public sysmemColorSpaceIndex : VkSysmemColorSpaceFUCHSIA + val mutable public samplerYcbcrConversionComponents : VkComponentMapping + val mutable public suggestedYcbcrModel : Vulkan11.VkSamplerYcbcrModelConversion + val mutable public suggestedYcbcrRange : Vulkan11.VkSamplerYcbcrRange + val mutable public suggestedXChromaOffset : Vulkan11.VkChromaLocation + val mutable public suggestedYChromaOffset : Vulkan11.VkChromaLocation - new(pNext : nativeint, maxPipelineRayPayloadSize : uint32, maxPipelineRayHitAttributeSize : uint32) = + new(pNext : nativeint, memoryTypeBits : uint32, bufferCount : uint32, createInfoIndex : uint32, sysmemPixelFormat : uint64, formatFeatures : VkFormatFeatureFlags, sysmemColorSpaceIndex : VkSysmemColorSpaceFUCHSIA, samplerYcbcrConversionComponents : VkComponentMapping, suggestedYcbcrModel : Vulkan11.VkSamplerYcbcrModelConversion, suggestedYcbcrRange : Vulkan11.VkSamplerYcbcrRange, suggestedXChromaOffset : Vulkan11.VkChromaLocation, suggestedYChromaOffset : Vulkan11.VkChromaLocation) = { - sType = 1000150018u + sType = 1000366003u pNext = pNext - maxPipelineRayPayloadSize = maxPipelineRayPayloadSize - maxPipelineRayHitAttributeSize = maxPipelineRayHitAttributeSize + memoryTypeBits = memoryTypeBits + bufferCount = bufferCount + createInfoIndex = createInfoIndex + sysmemPixelFormat = sysmemPixelFormat + formatFeatures = formatFeatures + sysmemColorSpaceIndex = sysmemColorSpaceIndex + samplerYcbcrConversionComponents = samplerYcbcrConversionComponents + suggestedYcbcrModel = suggestedYcbcrModel + suggestedYcbcrRange = suggestedYcbcrRange + suggestedXChromaOffset = suggestedXChromaOffset + suggestedYChromaOffset = suggestedYChromaOffset } - new(maxPipelineRayPayloadSize : uint32, maxPipelineRayHitAttributeSize : uint32) = - VkRayTracingPipelineInterfaceCreateInfoKHR(Unchecked.defaultof, maxPipelineRayPayloadSize, maxPipelineRayHitAttributeSize) + new(memoryTypeBits : uint32, bufferCount : uint32, createInfoIndex : uint32, sysmemPixelFormat : uint64, formatFeatures : VkFormatFeatureFlags, sysmemColorSpaceIndex : VkSysmemColorSpaceFUCHSIA, samplerYcbcrConversionComponents : VkComponentMapping, suggestedYcbcrModel : Vulkan11.VkSamplerYcbcrModelConversion, suggestedYcbcrRange : Vulkan11.VkSamplerYcbcrRange, suggestedXChromaOffset : Vulkan11.VkChromaLocation, suggestedYChromaOffset : Vulkan11.VkChromaLocation) = + VkBufferCollectionPropertiesFUCHSIA(Unchecked.defaultof, memoryTypeBits, bufferCount, createInfoIndex, sysmemPixelFormat, formatFeatures, sysmemColorSpaceIndex, samplerYcbcrConversionComponents, suggestedYcbcrModel, suggestedYcbcrRange, suggestedXChromaOffset, suggestedYChromaOffset) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.maxPipelineRayPayloadSize = Unchecked.defaultof && x.maxPipelineRayHitAttributeSize = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.memoryTypeBits = Unchecked.defaultof && x.bufferCount = Unchecked.defaultof && x.createInfoIndex = Unchecked.defaultof && x.sysmemPixelFormat = Unchecked.defaultof && x.formatFeatures = Unchecked.defaultof && x.sysmemColorSpaceIndex = Unchecked.defaultof && x.samplerYcbcrConversionComponents = Unchecked.defaultof && x.suggestedYcbcrModel = Unchecked.defaultof && x.suggestedYcbcrRange = Unchecked.defaultof && x.suggestedXChromaOffset = Unchecked.defaultof && x.suggestedYChromaOffset = Unchecked.defaultof static member Empty = - VkRayTracingPipelineInterfaceCreateInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkBufferCollectionPropertiesFUCHSIA(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "maxPipelineRayPayloadSize = %A" x.maxPipelineRayPayloadSize - sprintf "maxPipelineRayHitAttributeSize = %A" x.maxPipelineRayHitAttributeSize - ] |> sprintf "VkRayTracingPipelineInterfaceCreateInfoKHR { %s }" + sprintf "memoryTypeBits = %A" x.memoryTypeBits + sprintf "bufferCount = %A" x.bufferCount + sprintf "createInfoIndex = %A" x.createInfoIndex + sprintf "sysmemPixelFormat = %A" x.sysmemPixelFormat + sprintf "formatFeatures = %A" x.formatFeatures + sprintf "sysmemColorSpaceIndex = %A" x.sysmemColorSpaceIndex + sprintf "samplerYcbcrConversionComponents = %A" x.samplerYcbcrConversionComponents + sprintf "suggestedYcbcrModel = %A" x.suggestedYcbcrModel + sprintf "suggestedYcbcrRange = %A" x.suggestedYcbcrRange + sprintf "suggestedXChromaOffset = %A" x.suggestedXChromaOffset + sprintf "suggestedYChromaOffset = %A" x.suggestedYChromaOffset + ] |> sprintf "VkBufferCollectionPropertiesFUCHSIA { %s }" end [] - type VkRayTracingPipelineCreateInfoKHR = + type VkBufferConstraintsInfoFUCHSIA = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public flags : VkPipelineCreateFlags - val mutable public stageCount : uint32 - val mutable public pStages : nativeptr - val mutable public groupCount : uint32 - val mutable public pGroups : nativeptr - val mutable public maxPipelineRayRecursionDepth : uint32 - val mutable public pLibraryInfo : nativeptr - val mutable public pLibraryInterface : nativeptr - val mutable public pDynamicState : nativeptr - val mutable public layout : VkPipelineLayout - val mutable public basePipelineHandle : VkPipeline - val mutable public basePipelineIndex : int + val mutable public createInfo : VkBufferCreateInfo + val mutable public requiredFormatFeatures : VkFormatFeatureFlags + val mutable public bufferCollectionConstraints : VkBufferCollectionConstraintsInfoFUCHSIA - new(pNext : nativeint, flags : VkPipelineCreateFlags, stageCount : uint32, pStages : nativeptr, groupCount : uint32, pGroups : nativeptr, maxPipelineRayRecursionDepth : uint32, pLibraryInfo : nativeptr, pLibraryInterface : nativeptr, pDynamicState : nativeptr, layout : VkPipelineLayout, basePipelineHandle : VkPipeline, basePipelineIndex : int) = + new(pNext : nativeint, createInfo : VkBufferCreateInfo, requiredFormatFeatures : VkFormatFeatureFlags, bufferCollectionConstraints : VkBufferCollectionConstraintsInfoFUCHSIA) = { - sType = 1000150015u + sType = 1000366004u pNext = pNext - flags = flags - stageCount = stageCount - pStages = pStages - groupCount = groupCount - pGroups = pGroups - maxPipelineRayRecursionDepth = maxPipelineRayRecursionDepth - pLibraryInfo = pLibraryInfo - pLibraryInterface = pLibraryInterface - pDynamicState = pDynamicState - layout = layout - basePipelineHandle = basePipelineHandle - basePipelineIndex = basePipelineIndex + createInfo = createInfo + requiredFormatFeatures = requiredFormatFeatures + bufferCollectionConstraints = bufferCollectionConstraints } - new(flags : VkPipelineCreateFlags, stageCount : uint32, pStages : nativeptr, groupCount : uint32, pGroups : nativeptr, maxPipelineRayRecursionDepth : uint32, pLibraryInfo : nativeptr, pLibraryInterface : nativeptr, pDynamicState : nativeptr, layout : VkPipelineLayout, basePipelineHandle : VkPipeline, basePipelineIndex : int) = - VkRayTracingPipelineCreateInfoKHR(Unchecked.defaultof, flags, stageCount, pStages, groupCount, pGroups, maxPipelineRayRecursionDepth, pLibraryInfo, pLibraryInterface, pDynamicState, layout, basePipelineHandle, basePipelineIndex) + new(createInfo : VkBufferCreateInfo, requiredFormatFeatures : VkFormatFeatureFlags, bufferCollectionConstraints : VkBufferCollectionConstraintsInfoFUCHSIA) = + VkBufferConstraintsInfoFUCHSIA(Unchecked.defaultof, createInfo, requiredFormatFeatures, bufferCollectionConstraints) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.stageCount = Unchecked.defaultof && x.pStages = Unchecked.defaultof> && x.groupCount = Unchecked.defaultof && x.pGroups = Unchecked.defaultof> && x.maxPipelineRayRecursionDepth = Unchecked.defaultof && x.pLibraryInfo = Unchecked.defaultof> && x.pLibraryInterface = Unchecked.defaultof> && x.pDynamicState = Unchecked.defaultof> && x.layout = Unchecked.defaultof && x.basePipelineHandle = Unchecked.defaultof && x.basePipelineIndex = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.createInfo = Unchecked.defaultof && x.requiredFormatFeatures = Unchecked.defaultof && x.bufferCollectionConstraints = Unchecked.defaultof static member Empty = - VkRayTracingPipelineCreateInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof>, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkBufferConstraintsInfoFUCHSIA(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "flags = %A" x.flags - sprintf "stageCount = %A" x.stageCount - sprintf "pStages = %A" x.pStages - sprintf "groupCount = %A" x.groupCount - sprintf "pGroups = %A" x.pGroups - sprintf "maxPipelineRayRecursionDepth = %A" x.maxPipelineRayRecursionDepth - sprintf "pLibraryInfo = %A" x.pLibraryInfo - sprintf "pLibraryInterface = %A" x.pLibraryInterface - sprintf "pDynamicState = %A" x.pDynamicState - sprintf "layout = %A" x.layout - sprintf "basePipelineHandle = %A" x.basePipelineHandle - sprintf "basePipelineIndex = %A" x.basePipelineIndex - ] |> sprintf "VkRayTracingPipelineCreateInfoKHR { %s }" + sprintf "createInfo = %A" x.createInfo + sprintf "requiredFormatFeatures = %A" x.requiredFormatFeatures + sprintf "bufferCollectionConstraints = %A" x.bufferCollectionConstraints + ] |> sprintf "VkBufferConstraintsInfoFUCHSIA { %s }" end [] - type VkStridedDeviceAddressRegionKHR = + type VkImageFormatConstraintsInfoFUCHSIA = struct - val mutable public deviceAddress : VkDeviceAddress - val mutable public stride : VkDeviceSize - val mutable public size : VkDeviceSize + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public imageCreateInfo : VkImageCreateInfo + val mutable public requiredFormatFeatures : VkFormatFeatureFlags + val mutable public flags : VkImageFormatConstraintsFlagsFUCHSIA + val mutable public sysmemPixelFormat : uint64 + val mutable public colorSpaceCount : uint32 + val mutable public pColorSpaces : nativeptr - new(deviceAddress : VkDeviceAddress, stride : VkDeviceSize, size : VkDeviceSize) = + new(pNext : nativeint, imageCreateInfo : VkImageCreateInfo, requiredFormatFeatures : VkFormatFeatureFlags, flags : VkImageFormatConstraintsFlagsFUCHSIA, sysmemPixelFormat : uint64, colorSpaceCount : uint32, pColorSpaces : nativeptr) = { - deviceAddress = deviceAddress - stride = stride - size = size + sType = 1000366007u + pNext = pNext + imageCreateInfo = imageCreateInfo + requiredFormatFeatures = requiredFormatFeatures + flags = flags + sysmemPixelFormat = sysmemPixelFormat + colorSpaceCount = colorSpaceCount + pColorSpaces = pColorSpaces } + new(imageCreateInfo : VkImageCreateInfo, requiredFormatFeatures : VkFormatFeatureFlags, flags : VkImageFormatConstraintsFlagsFUCHSIA, sysmemPixelFormat : uint64, colorSpaceCount : uint32, pColorSpaces : nativeptr) = + VkImageFormatConstraintsInfoFUCHSIA(Unchecked.defaultof, imageCreateInfo, requiredFormatFeatures, flags, sysmemPixelFormat, colorSpaceCount, pColorSpaces) + member x.IsEmpty = - x.deviceAddress = Unchecked.defaultof && x.stride = Unchecked.defaultof && x.size = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.imageCreateInfo = Unchecked.defaultof && x.requiredFormatFeatures = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.sysmemPixelFormat = Unchecked.defaultof && x.colorSpaceCount = Unchecked.defaultof && x.pColorSpaces = Unchecked.defaultof> static member Empty = - VkStridedDeviceAddressRegionKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkImageFormatConstraintsInfoFUCHSIA(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ - sprintf "deviceAddress = %A" x.deviceAddress - sprintf "stride = %A" x.stride - sprintf "size = %A" x.size - ] |> sprintf "VkStridedDeviceAddressRegionKHR { %s }" + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "imageCreateInfo = %A" x.imageCreateInfo + sprintf "requiredFormatFeatures = %A" x.requiredFormatFeatures + sprintf "flags = %A" x.flags + sprintf "sysmemPixelFormat = %A" x.sysmemPixelFormat + sprintf "colorSpaceCount = %A" x.colorSpaceCount + sprintf "pColorSpaces = %A" x.pColorSpaces + ] |> sprintf "VkImageFormatConstraintsInfoFUCHSIA { %s }" end [] - type VkTraceRaysIndirectCommandKHR = + type VkImageConstraintsInfoFUCHSIA = struct - val mutable public width : uint32 - val mutable public height : uint32 - val mutable public depth : uint32 + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public formatConstraintsCount : uint32 + val mutable public pFormatConstraints : nativeptr + val mutable public bufferCollectionConstraints : VkBufferCollectionConstraintsInfoFUCHSIA + val mutable public flags : VkImageConstraintsInfoFlagsFUCHSIA - new(width : uint32, height : uint32, depth : uint32) = + new(pNext : nativeint, formatConstraintsCount : uint32, pFormatConstraints : nativeptr, bufferCollectionConstraints : VkBufferCollectionConstraintsInfoFUCHSIA, flags : VkImageConstraintsInfoFlagsFUCHSIA) = { - width = width - height = height - depth = depth + sType = 1000366006u + pNext = pNext + formatConstraintsCount = formatConstraintsCount + pFormatConstraints = pFormatConstraints + bufferCollectionConstraints = bufferCollectionConstraints + flags = flags } + new(formatConstraintsCount : uint32, pFormatConstraints : nativeptr, bufferCollectionConstraints : VkBufferCollectionConstraintsInfoFUCHSIA, flags : VkImageConstraintsInfoFlagsFUCHSIA) = + VkImageConstraintsInfoFUCHSIA(Unchecked.defaultof, formatConstraintsCount, pFormatConstraints, bufferCollectionConstraints, flags) + member x.IsEmpty = - x.width = Unchecked.defaultof && x.height = Unchecked.defaultof && x.depth = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.formatConstraintsCount = Unchecked.defaultof && x.pFormatConstraints = Unchecked.defaultof> && x.bufferCollectionConstraints = Unchecked.defaultof && x.flags = Unchecked.defaultof static member Empty = - VkTraceRaysIndirectCommandKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkImageConstraintsInfoFUCHSIA(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ - sprintf "width = %A" x.width - sprintf "height = %A" x.height - sprintf "depth = %A" x.depth - ] |> sprintf "VkTraceRaysIndirectCommandKHR { %s }" - end - - - [] - module EnumExtensions = - type VkBufferUsageFlags with - static member inline ShaderBindingTableBitKhr = unbox 0x00000400 - type VkDynamicState with - static member inline RayTracingPipelineStackSizeKhr = unbox 1000347000 - type VkPipelineBindPoint with - static member inline RayTracingKhr = unbox 1000165000 - type VkPipelineCreateFlags with - static member inline RayTracingNoNullAnyHitShadersBitKhr = unbox 0x00004000 - static member inline RayTracingNoNullClosestHitShadersBitKhr = unbox 0x00008000 - static member inline RayTracingNoNullMissShadersBitKhr = unbox 0x00010000 - static member inline RayTracingNoNullIntersectionShadersBitKhr = unbox 0x00020000 - static member inline RayTracingSkipTrianglesBitKhr = unbox 0x00001000 - static member inline RayTracingSkipAabbsBitKhr = unbox 0x00002000 - static member inline RayTracingShaderGroupHandleCaptureReplayBitKhr = unbox 0x00080000 - type VkPipelineStageFlags with - static member inline RayTracingShaderBitKhr = unbox 0x00200000 - type VkShaderStageFlags with - static member inline RaygenBitKhr = unbox 0x00000100 - static member inline AnyHitBitKhr = unbox 0x00000200 - static member inline ClosestHitBitKhr = unbox 0x00000400 - static member inline MissBitKhr = unbox 0x00000800 - static member inline IntersectionBitKhr = unbox 0x00001000 - static member inline CallableBitKhr = unbox 0x00002000 - - module VkRaw = - [] - type VkCmdTraceRaysKHRDel = delegate of VkCommandBuffer * nativeptr * nativeptr * nativeptr * nativeptr * uint32 * uint32 * uint32 -> unit - [] - type VkCreateRayTracingPipelinesKHRDel = delegate of VkDevice * VkDeferredOperationKHR * VkPipelineCache * uint32 * nativeptr * nativeptr * nativeptr -> VkResult - [] - type VkGetRayTracingShaderGroupHandlesKHRDel = delegate of VkDevice * VkPipeline * uint32 * uint32 * uint64 * nativeint -> VkResult - [] - type VkGetRayTracingCaptureReplayShaderGroupHandlesKHRDel = delegate of VkDevice * VkPipeline * uint32 * uint32 * uint64 * nativeint -> VkResult - [] - type VkCmdTraceRaysIndirectKHRDel = delegate of VkCommandBuffer * nativeptr * nativeptr * nativeptr * nativeptr * VkDeviceAddress -> unit - [] - type VkGetRayTracingShaderGroupStackSizeKHRDel = delegate of VkDevice * VkPipeline * uint32 * VkShaderGroupShaderKHR -> VkDeviceSize - [] - type VkCmdSetRayTracingPipelineStackSizeKHRDel = delegate of VkCommandBuffer * uint32 -> unit - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRRayTracingPipeline") - static let s_vkCmdTraceRaysKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdTraceRaysKHR" - static let s_vkCreateRayTracingPipelinesKHRDel = VkRaw.vkImportInstanceDelegate "vkCreateRayTracingPipelinesKHR" - static let s_vkGetRayTracingShaderGroupHandlesKHRDel = VkRaw.vkImportInstanceDelegate "vkGetRayTracingShaderGroupHandlesKHR" - static let s_vkGetRayTracingCaptureReplayShaderGroupHandlesKHRDel = VkRaw.vkImportInstanceDelegate "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" - static let s_vkCmdTraceRaysIndirectKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdTraceRaysIndirectKHR" - static let s_vkGetRayTracingShaderGroupStackSizeKHRDel = VkRaw.vkImportInstanceDelegate "vkGetRayTracingShaderGroupStackSizeKHR" - static let s_vkCmdSetRayTracingPipelineStackSizeKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdSetRayTracingPipelineStackSizeKHR" - static do Report.End(3) |> ignore - static member vkCmdTraceRaysKHR = s_vkCmdTraceRaysKHRDel - static member vkCreateRayTracingPipelinesKHR = s_vkCreateRayTracingPipelinesKHRDel - static member vkGetRayTracingShaderGroupHandlesKHR = s_vkGetRayTracingShaderGroupHandlesKHRDel - static member vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = s_vkGetRayTracingCaptureReplayShaderGroupHandlesKHRDel - static member vkCmdTraceRaysIndirectKHR = s_vkCmdTraceRaysIndirectKHRDel - static member vkGetRayTracingShaderGroupStackSizeKHR = s_vkGetRayTracingShaderGroupStackSizeKHRDel - static member vkCmdSetRayTracingPipelineStackSizeKHR = s_vkCmdSetRayTracingPipelineStackSizeKHRDel - let vkCmdTraceRaysKHR(commandBuffer : VkCommandBuffer, pRaygenShaderBindingTable : nativeptr, pMissShaderBindingTable : nativeptr, pHitShaderBindingTable : nativeptr, pCallableShaderBindingTable : nativeptr, width : uint32, height : uint32, depth : uint32) = Loader.vkCmdTraceRaysKHR.Invoke(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, width, height, depth) - let vkCreateRayTracingPipelinesKHR(device : VkDevice, deferredOperation : VkDeferredOperationKHR, pipelineCache : VkPipelineCache, createInfoCount : uint32, pCreateInfos : nativeptr, pAllocator : nativeptr, pPipelines : nativeptr) = Loader.vkCreateRayTracingPipelinesKHR.Invoke(device, deferredOperation, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) - let vkGetRayTracingShaderGroupHandlesKHR(device : VkDevice, pipeline : VkPipeline, firstGroup : uint32, groupCount : uint32, dataSize : uint64, pData : nativeint) = Loader.vkGetRayTracingShaderGroupHandlesKHR.Invoke(device, pipeline, firstGroup, groupCount, dataSize, pData) - let vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(device : VkDevice, pipeline : VkPipeline, firstGroup : uint32, groupCount : uint32, dataSize : uint64, pData : nativeint) = Loader.vkGetRayTracingCaptureReplayShaderGroupHandlesKHR.Invoke(device, pipeline, firstGroup, groupCount, dataSize, pData) - let vkCmdTraceRaysIndirectKHR(commandBuffer : VkCommandBuffer, pRaygenShaderBindingTable : nativeptr, pMissShaderBindingTable : nativeptr, pHitShaderBindingTable : nativeptr, pCallableShaderBindingTable : nativeptr, indirectDeviceAddress : VkDeviceAddress) = Loader.vkCmdTraceRaysIndirectKHR.Invoke(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress) - let vkGetRayTracingShaderGroupStackSizeKHR(device : VkDevice, pipeline : VkPipeline, group : uint32, groupShader : VkShaderGroupShaderKHR) = Loader.vkGetRayTracingShaderGroupStackSizeKHR.Invoke(device, pipeline, group, groupShader) - let vkCmdSetRayTracingPipelineStackSizeKHR(commandBuffer : VkCommandBuffer, pipelineStackSize : uint32) = Loader.vkCmdSetRayTracingPipelineStackSizeKHR.Invoke(commandBuffer, pipelineStackSize) - -module NVRayTracing = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open EXTDebugReport - open EXTDescriptorIndexing - open KHRAccelerationStructure - open KHRBufferDeviceAddress - open KHRDeferredHostOperations - open KHRGetMemoryRequirements2 - open KHRGetPhysicalDeviceProperties2 - open KHRMaintenance3 - open KHRPipelineLibrary - open KHRRayTracingPipeline - open KHRShaderFloatControls - open KHRSpirv14 - let Name = "VK_NV_ray_tracing" - let Number = 166 - - let Required = [ KHRGetMemoryRequirements2.Name; KHRGetPhysicalDeviceProperties2.Name ] - - - - [] - type VkAccelerationStructureNV = - struct - val mutable public Handle : uint64 - new(h) = { Handle = h } - static member Null = VkAccelerationStructureNV(0UL) - member x.IsNull = x.Handle = 0UL - member x.IsValid = x.Handle <> 0UL + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "formatConstraintsCount = %A" x.formatConstraintsCount + sprintf "pFormatConstraints = %A" x.pFormatConstraints + sprintf "bufferCollectionConstraints = %A" x.bufferCollectionConstraints + sprintf "flags = %A" x.flags + ] |> sprintf "VkImageConstraintsInfoFUCHSIA { %s }" end - type VkRayTracingShaderGroupTypeNV = VkRayTracingShaderGroupTypeKHR - type VkGeometryTypeNV = VkGeometryTypeKHR - type VkAccelerationStructureTypeNV = VkAccelerationStructureTypeKHR - type VkGeometryFlagsNV = VkGeometryFlagsKHR - type VkGeometryInstanceFlagsNV = VkGeometryInstanceFlagsKHR - type VkBuildAccelerationStructureFlagsNV = VkBuildAccelerationStructureFlagsKHR - type VkCopyAccelerationStructureModeNV = VkCopyAccelerationStructureModeKHR - - type VkAccelerationStructureMemoryRequirementsTypeNV = - | Object = 0 - | BuildScratch = 1 - | UpdateScratch = 2 - - - type VkAabbPositionsNV = VkAabbPositionsKHR - [] - type VkGeometryTrianglesNV = + type VkImportMemoryBufferCollectionFUCHSIA = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public vertexData : VkBuffer - val mutable public vertexOffset : VkDeviceSize - val mutable public vertexCount : uint32 - val mutable public vertexStride : VkDeviceSize - val mutable public vertexFormat : VkFormat - val mutable public indexData : VkBuffer - val mutable public indexOffset : VkDeviceSize - val mutable public indexCount : uint32 - val mutable public indexType : VkIndexType - val mutable public transformData : VkBuffer - val mutable public transformOffset : VkDeviceSize + val mutable public collection : VkBufferCollectionFUCHSIA + val mutable public index : uint32 - new(pNext : nativeint, vertexData : VkBuffer, vertexOffset : VkDeviceSize, vertexCount : uint32, vertexStride : VkDeviceSize, vertexFormat : VkFormat, indexData : VkBuffer, indexOffset : VkDeviceSize, indexCount : uint32, indexType : VkIndexType, transformData : VkBuffer, transformOffset : VkDeviceSize) = + new(pNext : nativeint, collection : VkBufferCollectionFUCHSIA, index : uint32) = { - sType = 1000165004u + sType = 1000366001u pNext = pNext - vertexData = vertexData - vertexOffset = vertexOffset - vertexCount = vertexCount - vertexStride = vertexStride - vertexFormat = vertexFormat - indexData = indexData - indexOffset = indexOffset - indexCount = indexCount - indexType = indexType - transformData = transformData - transformOffset = transformOffset + collection = collection + index = index } - new(vertexData : VkBuffer, vertexOffset : VkDeviceSize, vertexCount : uint32, vertexStride : VkDeviceSize, vertexFormat : VkFormat, indexData : VkBuffer, indexOffset : VkDeviceSize, indexCount : uint32, indexType : VkIndexType, transformData : VkBuffer, transformOffset : VkDeviceSize) = - VkGeometryTrianglesNV(Unchecked.defaultof, vertexData, vertexOffset, vertexCount, vertexStride, vertexFormat, indexData, indexOffset, indexCount, indexType, transformData, transformOffset) + new(collection : VkBufferCollectionFUCHSIA, index : uint32) = + VkImportMemoryBufferCollectionFUCHSIA(Unchecked.defaultof, collection, index) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.vertexData = Unchecked.defaultof && x.vertexOffset = Unchecked.defaultof && x.vertexCount = Unchecked.defaultof && x.vertexStride = Unchecked.defaultof && x.vertexFormat = Unchecked.defaultof && x.indexData = Unchecked.defaultof && x.indexOffset = Unchecked.defaultof && x.indexCount = Unchecked.defaultof && x.indexType = Unchecked.defaultof && x.transformData = Unchecked.defaultof && x.transformOffset = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.collection = Unchecked.defaultof && x.index = Unchecked.defaultof static member Empty = - VkGeometryTrianglesNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkImportMemoryBufferCollectionFUCHSIA(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "vertexData = %A" x.vertexData - sprintf "vertexOffset = %A" x.vertexOffset - sprintf "vertexCount = %A" x.vertexCount - sprintf "vertexStride = %A" x.vertexStride - sprintf "vertexFormat = %A" x.vertexFormat - sprintf "indexData = %A" x.indexData - sprintf "indexOffset = %A" x.indexOffset - sprintf "indexCount = %A" x.indexCount - sprintf "indexType = %A" x.indexType - sprintf "transformData = %A" x.transformData - sprintf "transformOffset = %A" x.transformOffset - ] |> sprintf "VkGeometryTrianglesNV { %s }" + sprintf "collection = %A" x.collection + sprintf "index = %A" x.index + ] |> sprintf "VkImportMemoryBufferCollectionFUCHSIA { %s }" end - [] - type VkGeometryAABBNV = - struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public aabbData : VkBuffer - val mutable public numAABBs : uint32 - val mutable public stride : uint32 - val mutable public offset : VkDeviceSize - new(pNext : nativeint, aabbData : VkBuffer, numAABBs : uint32, stride : uint32, offset : VkDeviceSize) = - { - sType = 1000165005u - pNext = pNext - aabbData = aabbData - numAABBs = numAABBs - stride = stride - offset = offset - } + [] + module EnumExtensions = + type VkObjectType with + /// VkBufferCollectionFUCHSIA + static member inline BufferCollectionFuchsia = unbox 1000366000 + + module VkRaw = + [] + type VkCreateBufferCollectionFUCHSIADel = delegate of VkDevice * nativeptr * nativeptr * nativeptr -> VkResult + [] + type VkSetBufferCollectionImageConstraintsFUCHSIADel = delegate of VkDevice * VkBufferCollectionFUCHSIA * nativeptr -> VkResult + [] + type VkSetBufferCollectionBufferConstraintsFUCHSIADel = delegate of VkDevice * VkBufferCollectionFUCHSIA * nativeptr -> VkResult + [] + type VkDestroyBufferCollectionFUCHSIADel = delegate of VkDevice * VkBufferCollectionFUCHSIA * nativeptr -> unit + [] + type VkGetBufferCollectionPropertiesFUCHSIADel = delegate of VkDevice * VkBufferCollectionFUCHSIA * nativeptr -> VkResult + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading FUCHSIABufferCollection") + static let s_vkCreateBufferCollectionFUCHSIADel = VkRaw.vkImportInstanceDelegate "vkCreateBufferCollectionFUCHSIA" + static let s_vkSetBufferCollectionImageConstraintsFUCHSIADel = VkRaw.vkImportInstanceDelegate "vkSetBufferCollectionImageConstraintsFUCHSIA" + static let s_vkSetBufferCollectionBufferConstraintsFUCHSIADel = VkRaw.vkImportInstanceDelegate "vkSetBufferCollectionBufferConstraintsFUCHSIA" + static let s_vkDestroyBufferCollectionFUCHSIADel = VkRaw.vkImportInstanceDelegate "vkDestroyBufferCollectionFUCHSIA" + static let s_vkGetBufferCollectionPropertiesFUCHSIADel = VkRaw.vkImportInstanceDelegate "vkGetBufferCollectionPropertiesFUCHSIA" + static do Report.End(3) |> ignore + static member vkCreateBufferCollectionFUCHSIA = s_vkCreateBufferCollectionFUCHSIADel + static member vkSetBufferCollectionImageConstraintsFUCHSIA = s_vkSetBufferCollectionImageConstraintsFUCHSIADel + static member vkSetBufferCollectionBufferConstraintsFUCHSIA = s_vkSetBufferCollectionBufferConstraintsFUCHSIADel + static member vkDestroyBufferCollectionFUCHSIA = s_vkDestroyBufferCollectionFUCHSIADel + static member vkGetBufferCollectionPropertiesFUCHSIA = s_vkGetBufferCollectionPropertiesFUCHSIADel + let vkCreateBufferCollectionFUCHSIA(device : VkDevice, pCreateInfo : nativeptr, pAllocator : nativeptr, pCollection : nativeptr) = Loader.vkCreateBufferCollectionFUCHSIA.Invoke(device, pCreateInfo, pAllocator, pCollection) + let vkSetBufferCollectionImageConstraintsFUCHSIA(device : VkDevice, collection : VkBufferCollectionFUCHSIA, pImageConstraintsInfo : nativeptr) = Loader.vkSetBufferCollectionImageConstraintsFUCHSIA.Invoke(device, collection, pImageConstraintsInfo) + let vkSetBufferCollectionBufferConstraintsFUCHSIA(device : VkDevice, collection : VkBufferCollectionFUCHSIA, pBufferConstraintsInfo : nativeptr) = Loader.vkSetBufferCollectionBufferConstraintsFUCHSIA.Invoke(device, collection, pBufferConstraintsInfo) + let vkDestroyBufferCollectionFUCHSIA(device : VkDevice, collection : VkBufferCollectionFUCHSIA, pAllocator : nativeptr) = Loader.vkDestroyBufferCollectionFUCHSIA.Invoke(device, collection, pAllocator) + let vkGetBufferCollectionPropertiesFUCHSIA(device : VkDevice, collection : VkBufferCollectionFUCHSIA, pProperties : nativeptr) = Loader.vkGetBufferCollectionPropertiesFUCHSIA.Invoke(device, collection, pProperties) + + [] + module ``EXTDebugReport`` = + [] + module EnumExtensions = + type EXTDebugReport.VkDebugReportObjectTypeEXT with + static member inline BufferCollectionFuchsia = unbox 1000366000 - new(aabbData : VkBuffer, numAABBs : uint32, stride : uint32, offset : VkDeviceSize) = - VkGeometryAABBNV(Unchecked.defaultof, aabbData, numAABBs, stride, offset) - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.aabbData = Unchecked.defaultof && x.numAABBs = Unchecked.defaultof && x.stride = Unchecked.defaultof && x.offset = Unchecked.defaultof +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +/// Promoted to Vulkan11. +module KHRExternalSemaphoreCapabilities = + let Type = ExtensionType.Instance + let Name = "VK_KHR_external_semaphore_capabilities" + let Number = 77 - static member Empty = - VkGeometryAABBNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + type VkExternalSemaphoreHandleTypeFlagsKHR = Vulkan11.VkExternalSemaphoreHandleTypeFlags + type VkExternalSemaphoreFeatureFlagsKHR = Vulkan11.VkExternalSemaphoreFeatureFlags - override x.ToString() = - String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "aabbData = %A" x.aabbData - sprintf "numAABBs = %A" x.numAABBs - sprintf "stride = %A" x.stride - sprintf "offset = %A" x.offset - ] |> sprintf "VkGeometryAABBNV { %s }" - end + type VkExternalSemaphorePropertiesKHR = Vulkan11.VkExternalSemaphoreProperties - [] - type VkGeometryDataNV = - struct - val mutable public triangles : VkGeometryTrianglesNV - val mutable public aabbs : VkGeometryAABBNV + type VkPhysicalDeviceExternalSemaphoreInfoKHR = Vulkan11.VkPhysicalDeviceExternalSemaphoreInfo - new(triangles : VkGeometryTrianglesNV, aabbs : VkGeometryAABBNV) = - { - triangles = triangles - aabbs = aabbs - } + type VkPhysicalDeviceIDPropertiesKHR = KHRExternalMemoryCapabilities.VkPhysicalDeviceIDPropertiesKHR - member x.IsEmpty = - x.triangles = Unchecked.defaultof && x.aabbs = Unchecked.defaultof - static member Empty = - VkGeometryDataNV(Unchecked.defaultof, Unchecked.defaultof) + [] + module EnumExtensions = + type Vulkan11.VkExternalSemaphoreFeatureFlags with + static member inline ExportableBitKhr = unbox 0x00000001 + static member inline ImportableBitKhr = unbox 0x00000002 + type Vulkan11.VkExternalSemaphoreHandleTypeFlags with + static member inline OpaqueFdBitKhr = unbox 0x00000001 + static member inline OpaqueWin32BitKhr = unbox 0x00000002 + static member inline OpaqueWin32KmtBitKhr = unbox 0x00000004 + static member inline D3d12FenceBitKhr = unbox 0x00000008 + static member inline SyncFdBitKhr = unbox 0x00000010 - override x.ToString() = - String.concat "; " [ - sprintf "triangles = %A" x.triangles - sprintf "aabbs = %A" x.aabbs - ] |> sprintf "VkGeometryDataNV { %s }" - end + module VkRaw = + [] + type VkGetPhysicalDeviceExternalSemaphorePropertiesKHRDel = delegate of VkPhysicalDevice * nativeptr * nativeptr -> unit - [] - type VkGeometryNV = - struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public geometryType : VkGeometryTypeKHR - val mutable public geometry : VkGeometryDataNV - val mutable public flags : VkGeometryFlagsKHR + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRExternalSemaphoreCapabilities") + static let s_vkGetPhysicalDeviceExternalSemaphorePropertiesKHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR" + static do Report.End(3) |> ignore + static member vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = s_vkGetPhysicalDeviceExternalSemaphorePropertiesKHRDel + let vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice : VkPhysicalDevice, pExternalSemaphoreInfo : nativeptr, pExternalSemaphoreProperties : nativeptr) = Loader.vkGetPhysicalDeviceExternalSemaphorePropertiesKHR.Invoke(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) - new(pNext : nativeint, geometryType : VkGeometryTypeKHR, geometry : VkGeometryDataNV, flags : VkGeometryFlagsKHR) = - { - sType = 1000165003u - pNext = pNext - geometryType = geometryType - geometry = geometry - flags = flags - } +/// Requires KHRExternalSemaphoreCapabilities. +/// Promoted to Vulkan11. +module KHRExternalSemaphore = + let Type = ExtensionType.Device + let Name = "VK_KHR_external_semaphore" + let Number = 78 - new(geometryType : VkGeometryTypeKHR, geometry : VkGeometryDataNV, flags : VkGeometryFlagsKHR) = - VkGeometryNV(Unchecked.defaultof, geometryType, geometry, flags) + type VkSemaphoreImportFlagsKHR = Vulkan11.VkSemaphoreImportFlags - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.geometryType = Unchecked.defaultof && x.geometry = Unchecked.defaultof && x.flags = Unchecked.defaultof + type VkExportSemaphoreCreateInfoKHR = Vulkan11.VkExportSemaphoreCreateInfo - static member Empty = - VkGeometryNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) - override x.ToString() = - String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "geometryType = %A" x.geometryType - sprintf "geometry = %A" x.geometry - sprintf "flags = %A" x.flags - ] |> sprintf "VkGeometryNV { %s }" - end + [] + module EnumExtensions = + type Vulkan11.VkSemaphoreImportFlags with + static member inline TemporaryBitKhr = unbox 0x00000001 + + +/// Requires KHRExternalSemaphoreCapabilities, KHRExternalSemaphore. +module FUCHSIAExternalSemaphore = + let Type = ExtensionType.Device + let Name = "VK_FUCHSIA_external_semaphore" + let Number = 366 [] - type VkAccelerationStructureInfoNV = + type VkImportSemaphoreZirconHandleInfoFUCHSIA = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public _type : VkAccelerationStructureTypeNV - val mutable public flags : VkBuildAccelerationStructureFlagsNV - val mutable public instanceCount : uint32 - val mutable public geometryCount : uint32 - val mutable public pGeometries : nativeptr + val mutable public semaphore : VkSemaphore + val mutable public flags : Vulkan11.VkSemaphoreImportFlags + val mutable public handleType : Vulkan11.VkExternalSemaphoreHandleTypeFlags + val mutable public zirconHandle : nativeint - new(pNext : nativeint, _type : VkAccelerationStructureTypeNV, flags : VkBuildAccelerationStructureFlagsNV, instanceCount : uint32, geometryCount : uint32, pGeometries : nativeptr) = + new(pNext : nativeint, semaphore : VkSemaphore, flags : Vulkan11.VkSemaphoreImportFlags, handleType : Vulkan11.VkExternalSemaphoreHandleTypeFlags, zirconHandle : nativeint) = { - sType = 1000165012u + sType = 1000365000u pNext = pNext - _type = _type + semaphore = semaphore flags = flags - instanceCount = instanceCount - geometryCount = geometryCount - pGeometries = pGeometries + handleType = handleType + zirconHandle = zirconHandle } - new(_type : VkAccelerationStructureTypeNV, flags : VkBuildAccelerationStructureFlagsNV, instanceCount : uint32, geometryCount : uint32, pGeometries : nativeptr) = - VkAccelerationStructureInfoNV(Unchecked.defaultof, _type, flags, instanceCount, geometryCount, pGeometries) + new(semaphore : VkSemaphore, flags : Vulkan11.VkSemaphoreImportFlags, handleType : Vulkan11.VkExternalSemaphoreHandleTypeFlags, zirconHandle : nativeint) = + VkImportSemaphoreZirconHandleInfoFUCHSIA(Unchecked.defaultof, semaphore, flags, handleType, zirconHandle) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x._type = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.instanceCount = Unchecked.defaultof && x.geometryCount = Unchecked.defaultof && x.pGeometries = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.semaphore = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.handleType = Unchecked.defaultof && x.zirconHandle = Unchecked.defaultof static member Empty = - VkAccelerationStructureInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + VkImportSemaphoreZirconHandleInfoFUCHSIA(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "_type = %A" x._type + sprintf "semaphore = %A" x.semaphore sprintf "flags = %A" x.flags - sprintf "instanceCount = %A" x.instanceCount - sprintf "geometryCount = %A" x.geometryCount - sprintf "pGeometries = %A" x.pGeometries - ] |> sprintf "VkAccelerationStructureInfoNV { %s }" + sprintf "handleType = %A" x.handleType + sprintf "zirconHandle = %A" x.zirconHandle + ] |> sprintf "VkImportSemaphoreZirconHandleInfoFUCHSIA { %s }" end [] - type VkAccelerationStructureCreateInfoNV = + type VkSemaphoreGetZirconHandleInfoFUCHSIA = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public compactedSize : VkDeviceSize - val mutable public info : VkAccelerationStructureInfoNV + val mutable public semaphore : VkSemaphore + val mutable public handleType : Vulkan11.VkExternalSemaphoreHandleTypeFlags - new(pNext : nativeint, compactedSize : VkDeviceSize, info : VkAccelerationStructureInfoNV) = + new(pNext : nativeint, semaphore : VkSemaphore, handleType : Vulkan11.VkExternalSemaphoreHandleTypeFlags) = { - sType = 1000165001u + sType = 1000365001u pNext = pNext - compactedSize = compactedSize - info = info + semaphore = semaphore + handleType = handleType } - new(compactedSize : VkDeviceSize, info : VkAccelerationStructureInfoNV) = - VkAccelerationStructureCreateInfoNV(Unchecked.defaultof, compactedSize, info) + new(semaphore : VkSemaphore, handleType : Vulkan11.VkExternalSemaphoreHandleTypeFlags) = + VkSemaphoreGetZirconHandleInfoFUCHSIA(Unchecked.defaultof, semaphore, handleType) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.compactedSize = Unchecked.defaultof && x.info = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.semaphore = Unchecked.defaultof && x.handleType = Unchecked.defaultof static member Empty = - VkAccelerationStructureCreateInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkSemaphoreGetZirconHandleInfoFUCHSIA(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "compactedSize = %A" x.compactedSize - sprintf "info = %A" x.info - ] |> sprintf "VkAccelerationStructureCreateInfoNV { %s }" + sprintf "semaphore = %A" x.semaphore + sprintf "handleType = %A" x.handleType + ] |> sprintf "VkSemaphoreGetZirconHandleInfoFUCHSIA { %s }" end - type VkAccelerationStructureInstanceNV = VkAccelerationStructureInstanceKHR + + [] + module EnumExtensions = + type Vulkan11.VkExternalSemaphoreHandleTypeFlags with + static member inline ZirconEventBitFuchsia = unbox 0x00000080 + + module VkRaw = + [] + type VkImportSemaphoreZirconHandleFUCHSIADel = delegate of VkDevice * nativeptr -> VkResult + [] + type VkGetSemaphoreZirconHandleFUCHSIADel = delegate of VkDevice * nativeptr * nativeptr -> VkResult + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading FUCHSIAExternalSemaphore") + static let s_vkImportSemaphoreZirconHandleFUCHSIADel = VkRaw.vkImportInstanceDelegate "vkImportSemaphoreZirconHandleFUCHSIA" + static let s_vkGetSemaphoreZirconHandleFUCHSIADel = VkRaw.vkImportInstanceDelegate "vkGetSemaphoreZirconHandleFUCHSIA" + static do Report.End(3) |> ignore + static member vkImportSemaphoreZirconHandleFUCHSIA = s_vkImportSemaphoreZirconHandleFUCHSIADel + static member vkGetSemaphoreZirconHandleFUCHSIA = s_vkGetSemaphoreZirconHandleFUCHSIADel + let vkImportSemaphoreZirconHandleFUCHSIA(device : VkDevice, pImportSemaphoreZirconHandleInfo : nativeptr) = Loader.vkImportSemaphoreZirconHandleFUCHSIA.Invoke(device, pImportSemaphoreZirconHandleInfo) + let vkGetSemaphoreZirconHandleFUCHSIA(device : VkDevice, pGetZirconHandleInfo : nativeptr, pZirconHandle : nativeptr) = Loader.vkGetSemaphoreZirconHandleFUCHSIA.Invoke(device, pGetZirconHandleInfo, pZirconHandle) + +/// Requires KHRSurface. +module GGPStreamDescriptorSurface = + let Type = ExtensionType.Instance + let Name = "VK_GGP_stream_descriptor_surface" + let Number = 50 [] - type VkAccelerationStructureMemoryRequirementsInfoNV = + type VkStreamDescriptorSurfaceCreateInfoGGP = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public _type : VkAccelerationStructureMemoryRequirementsTypeNV - val mutable public accelerationStructure : VkAccelerationStructureNV + val mutable public flags : VkStreamDescriptorSurfaceCreateFlagsGGP + val mutable public streamDescriptor : nativeint - new(pNext : nativeint, _type : VkAccelerationStructureMemoryRequirementsTypeNV, accelerationStructure : VkAccelerationStructureNV) = + new(pNext : nativeint, flags : VkStreamDescriptorSurfaceCreateFlagsGGP, streamDescriptor : nativeint) = { - sType = 1000165008u + sType = 1000049000u pNext = pNext - _type = _type - accelerationStructure = accelerationStructure + flags = flags + streamDescriptor = streamDescriptor } - new(_type : VkAccelerationStructureMemoryRequirementsTypeNV, accelerationStructure : VkAccelerationStructureNV) = - VkAccelerationStructureMemoryRequirementsInfoNV(Unchecked.defaultof, _type, accelerationStructure) + new(flags : VkStreamDescriptorSurfaceCreateFlagsGGP, streamDescriptor : nativeint) = + VkStreamDescriptorSurfaceCreateInfoGGP(Unchecked.defaultof, flags, streamDescriptor) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x._type = Unchecked.defaultof && x.accelerationStructure = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.streamDescriptor = Unchecked.defaultof static member Empty = - VkAccelerationStructureMemoryRequirementsInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkStreamDescriptorSurfaceCreateInfoGGP(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "_type = %A" x._type - sprintf "accelerationStructure = %A" x.accelerationStructure - ] |> sprintf "VkAccelerationStructureMemoryRequirementsInfoNV { %s }" + sprintf "flags = %A" x.flags + sprintf "streamDescriptor = %A" x.streamDescriptor + ] |> sprintf "VkStreamDescriptorSurfaceCreateInfoGGP { %s }" end + + module VkRaw = + [] + type VkCreateStreamDescriptorSurfaceGGPDel = delegate of VkInstance * nativeptr * nativeptr * nativeptr -> VkResult + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading GGPStreamDescriptorSurface") + static let s_vkCreateStreamDescriptorSurfaceGGPDel = VkRaw.vkImportInstanceDelegate "vkCreateStreamDescriptorSurfaceGGP" + static do Report.End(3) |> ignore + static member vkCreateStreamDescriptorSurfaceGGP = s_vkCreateStreamDescriptorSurfaceGGPDel + let vkCreateStreamDescriptorSurfaceGGP(instance : VkInstance, pCreateInfo : nativeptr, pAllocator : nativeptr, pSurface : nativeptr) = Loader.vkCreateStreamDescriptorSurfaceGGP.Invoke(instance, pCreateInfo, pAllocator, pSurface) + +/// Requires KHRSwapchain, GGPStreamDescriptorSurface. +module GGPFrameToken = + let Type = ExtensionType.Device + let Name = "VK_GGP_frame_token" + let Number = 192 + [] - type VkBindAccelerationStructureMemoryInfoNV = + type VkPresentFrameTokenGGP = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public accelerationStructure : VkAccelerationStructureNV - val mutable public memory : VkDeviceMemory - val mutable public memoryOffset : VkDeviceSize - val mutable public deviceIndexCount : uint32 - val mutable public pDeviceIndices : nativeptr + val mutable public frameToken : nativeint - new(pNext : nativeint, accelerationStructure : VkAccelerationStructureNV, memory : VkDeviceMemory, memoryOffset : VkDeviceSize, deviceIndexCount : uint32, pDeviceIndices : nativeptr) = + new(pNext : nativeint, frameToken : nativeint) = { - sType = 1000165006u + sType = 1000191000u pNext = pNext - accelerationStructure = accelerationStructure - memory = memory - memoryOffset = memoryOffset - deviceIndexCount = deviceIndexCount - pDeviceIndices = pDeviceIndices + frameToken = frameToken } - new(accelerationStructure : VkAccelerationStructureNV, memory : VkDeviceMemory, memoryOffset : VkDeviceSize, deviceIndexCount : uint32, pDeviceIndices : nativeptr) = - VkBindAccelerationStructureMemoryInfoNV(Unchecked.defaultof, accelerationStructure, memory, memoryOffset, deviceIndexCount, pDeviceIndices) + new(frameToken : nativeint) = + VkPresentFrameTokenGGP(Unchecked.defaultof, frameToken) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.accelerationStructure = Unchecked.defaultof && x.memory = Unchecked.defaultof && x.memoryOffset = Unchecked.defaultof && x.deviceIndexCount = Unchecked.defaultof && x.pDeviceIndices = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.frameToken = Unchecked.defaultof static member Empty = - VkBindAccelerationStructureMemoryInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + VkPresentFrameTokenGGP(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "accelerationStructure = %A" x.accelerationStructure - sprintf "memory = %A" x.memory - sprintf "memoryOffset = %A" x.memoryOffset - sprintf "deviceIndexCount = %A" x.deviceIndexCount - sprintf "pDeviceIndices = %A" x.pDeviceIndices - ] |> sprintf "VkBindAccelerationStructureMemoryInfoNV { %s }" + sprintf "frameToken = %A" x.frameToken + ] |> sprintf "VkPresentFrameTokenGGP { %s }" end - type VkMemoryRequirements2KHR = KHRGetMemoryRequirements2.VkMemoryRequirements2KHR + + +module GOOGLEDecorateString = + let Type = ExtensionType.Device + let Name = "VK_GOOGLE_decorate_string" + let Number = 225 + +/// Requires KHRSwapchain. +module GOOGLEDisplayTiming = + let Type = ExtensionType.Device + let Name = "VK_GOOGLE_display_timing" + let Number = 93 [] - type VkPhysicalDeviceRayTracingPropertiesNV = + type VkPastPresentationTimingGOOGLE = struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public shaderGroupHandleSize : uint32 - val mutable public maxRecursionDepth : uint32 - val mutable public maxShaderGroupStride : uint32 - val mutable public shaderGroupBaseAlignment : uint32 - val mutable public maxGeometryCount : uint64 - val mutable public maxInstanceCount : uint64 - val mutable public maxTriangleCount : uint64 - val mutable public maxDescriptorSetAccelerationStructures : uint32 + val mutable public presentID : uint32 + val mutable public desiredPresentTime : uint64 + val mutable public actualPresentTime : uint64 + val mutable public earliestPresentTime : uint64 + val mutable public presentMargin : uint64 - new(pNext : nativeint, shaderGroupHandleSize : uint32, maxRecursionDepth : uint32, maxShaderGroupStride : uint32, shaderGroupBaseAlignment : uint32, maxGeometryCount : uint64, maxInstanceCount : uint64, maxTriangleCount : uint64, maxDescriptorSetAccelerationStructures : uint32) = + new(presentID : uint32, desiredPresentTime : uint64, actualPresentTime : uint64, earliestPresentTime : uint64, presentMargin : uint64) = { - sType = 1000165009u - pNext = pNext - shaderGroupHandleSize = shaderGroupHandleSize - maxRecursionDepth = maxRecursionDepth - maxShaderGroupStride = maxShaderGroupStride - shaderGroupBaseAlignment = shaderGroupBaseAlignment - maxGeometryCount = maxGeometryCount - maxInstanceCount = maxInstanceCount - maxTriangleCount = maxTriangleCount - maxDescriptorSetAccelerationStructures = maxDescriptorSetAccelerationStructures + presentID = presentID + desiredPresentTime = desiredPresentTime + actualPresentTime = actualPresentTime + earliestPresentTime = earliestPresentTime + presentMargin = presentMargin } - new(shaderGroupHandleSize : uint32, maxRecursionDepth : uint32, maxShaderGroupStride : uint32, shaderGroupBaseAlignment : uint32, maxGeometryCount : uint64, maxInstanceCount : uint64, maxTriangleCount : uint64, maxDescriptorSetAccelerationStructures : uint32) = - VkPhysicalDeviceRayTracingPropertiesNV(Unchecked.defaultof, shaderGroupHandleSize, maxRecursionDepth, maxShaderGroupStride, shaderGroupBaseAlignment, maxGeometryCount, maxInstanceCount, maxTriangleCount, maxDescriptorSetAccelerationStructures) - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.shaderGroupHandleSize = Unchecked.defaultof && x.maxRecursionDepth = Unchecked.defaultof && x.maxShaderGroupStride = Unchecked.defaultof && x.shaderGroupBaseAlignment = Unchecked.defaultof && x.maxGeometryCount = Unchecked.defaultof && x.maxInstanceCount = Unchecked.defaultof && x.maxTriangleCount = Unchecked.defaultof && x.maxDescriptorSetAccelerationStructures = Unchecked.defaultof + x.presentID = Unchecked.defaultof && x.desiredPresentTime = Unchecked.defaultof && x.actualPresentTime = Unchecked.defaultof && x.earliestPresentTime = Unchecked.defaultof && x.presentMargin = Unchecked.defaultof static member Empty = - VkPhysicalDeviceRayTracingPropertiesNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPastPresentationTimingGOOGLE(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "shaderGroupHandleSize = %A" x.shaderGroupHandleSize - sprintf "maxRecursionDepth = %A" x.maxRecursionDepth - sprintf "maxShaderGroupStride = %A" x.maxShaderGroupStride - sprintf "shaderGroupBaseAlignment = %A" x.shaderGroupBaseAlignment - sprintf "maxGeometryCount = %A" x.maxGeometryCount - sprintf "maxInstanceCount = %A" x.maxInstanceCount - sprintf "maxTriangleCount = %A" x.maxTriangleCount - sprintf "maxDescriptorSetAccelerationStructures = %A" x.maxDescriptorSetAccelerationStructures - ] |> sprintf "VkPhysicalDeviceRayTracingPropertiesNV { %s }" + sprintf "presentID = %A" x.presentID + sprintf "desiredPresentTime = %A" x.desiredPresentTime + sprintf "actualPresentTime = %A" x.actualPresentTime + sprintf "earliestPresentTime = %A" x.earliestPresentTime + sprintf "presentMargin = %A" x.presentMargin + ] |> sprintf "VkPastPresentationTimingGOOGLE { %s }" end [] - type VkRayTracingShaderGroupCreateInfoNV = + type VkPresentTimeGOOGLE = struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public _type : VkRayTracingShaderGroupTypeKHR - val mutable public generalShader : uint32 - val mutable public closestHitShader : uint32 - val mutable public anyHitShader : uint32 - val mutable public intersectionShader : uint32 + val mutable public presentID : uint32 + val mutable public desiredPresentTime : uint64 - new(pNext : nativeint, _type : VkRayTracingShaderGroupTypeKHR, generalShader : uint32, closestHitShader : uint32, anyHitShader : uint32, intersectionShader : uint32) = + new(presentID : uint32, desiredPresentTime : uint64) = { - sType = 1000165011u - pNext = pNext - _type = _type - generalShader = generalShader - closestHitShader = closestHitShader - anyHitShader = anyHitShader - intersectionShader = intersectionShader + presentID = presentID + desiredPresentTime = desiredPresentTime } - new(_type : VkRayTracingShaderGroupTypeKHR, generalShader : uint32, closestHitShader : uint32, anyHitShader : uint32, intersectionShader : uint32) = - VkRayTracingShaderGroupCreateInfoNV(Unchecked.defaultof, _type, generalShader, closestHitShader, anyHitShader, intersectionShader) - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x._type = Unchecked.defaultof && x.generalShader = Unchecked.defaultof && x.closestHitShader = Unchecked.defaultof && x.anyHitShader = Unchecked.defaultof && x.intersectionShader = Unchecked.defaultof + x.presentID = Unchecked.defaultof && x.desiredPresentTime = Unchecked.defaultof static member Empty = - VkRayTracingShaderGroupCreateInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPresentTimeGOOGLE(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "_type = %A" x._type - sprintf "generalShader = %A" x.generalShader - sprintf "closestHitShader = %A" x.closestHitShader - sprintf "anyHitShader = %A" x.anyHitShader - sprintf "intersectionShader = %A" x.intersectionShader - ] |> sprintf "VkRayTracingShaderGroupCreateInfoNV { %s }" + sprintf "presentID = %A" x.presentID + sprintf "desiredPresentTime = %A" x.desiredPresentTime + ] |> sprintf "VkPresentTimeGOOGLE { %s }" end [] - type VkRayTracingPipelineCreateInfoNV = + type VkPresentTimesInfoGOOGLE = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public flags : VkPipelineCreateFlags - val mutable public stageCount : uint32 - val mutable public pStages : nativeptr - val mutable public groupCount : uint32 - val mutable public pGroups : nativeptr - val mutable public maxRecursionDepth : uint32 - val mutable public layout : VkPipelineLayout - val mutable public basePipelineHandle : VkPipeline - val mutable public basePipelineIndex : int + val mutable public swapchainCount : uint32 + val mutable public pTimes : nativeptr - new(pNext : nativeint, flags : VkPipelineCreateFlags, stageCount : uint32, pStages : nativeptr, groupCount : uint32, pGroups : nativeptr, maxRecursionDepth : uint32, layout : VkPipelineLayout, basePipelineHandle : VkPipeline, basePipelineIndex : int) = + new(pNext : nativeint, swapchainCount : uint32, pTimes : nativeptr) = { - sType = 1000165000u + sType = 1000092000u pNext = pNext - flags = flags - stageCount = stageCount - pStages = pStages - groupCount = groupCount - pGroups = pGroups - maxRecursionDepth = maxRecursionDepth - layout = layout - basePipelineHandle = basePipelineHandle - basePipelineIndex = basePipelineIndex + swapchainCount = swapchainCount + pTimes = pTimes } - new(flags : VkPipelineCreateFlags, stageCount : uint32, pStages : nativeptr, groupCount : uint32, pGroups : nativeptr, maxRecursionDepth : uint32, layout : VkPipelineLayout, basePipelineHandle : VkPipeline, basePipelineIndex : int) = - VkRayTracingPipelineCreateInfoNV(Unchecked.defaultof, flags, stageCount, pStages, groupCount, pGroups, maxRecursionDepth, layout, basePipelineHandle, basePipelineIndex) + new(swapchainCount : uint32, pTimes : nativeptr) = + VkPresentTimesInfoGOOGLE(Unchecked.defaultof, swapchainCount, pTimes) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.stageCount = Unchecked.defaultof && x.pStages = Unchecked.defaultof> && x.groupCount = Unchecked.defaultof && x.pGroups = Unchecked.defaultof> && x.maxRecursionDepth = Unchecked.defaultof && x.layout = Unchecked.defaultof && x.basePipelineHandle = Unchecked.defaultof && x.basePipelineIndex = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.swapchainCount = Unchecked.defaultof && x.pTimes = Unchecked.defaultof> static member Empty = - VkRayTracingPipelineCreateInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPresentTimesInfoGOOGLE(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "flags = %A" x.flags - sprintf "stageCount = %A" x.stageCount - sprintf "pStages = %A" x.pStages - sprintf "groupCount = %A" x.groupCount - sprintf "pGroups = %A" x.pGroups - sprintf "maxRecursionDepth = %A" x.maxRecursionDepth - sprintf "layout = %A" x.layout - sprintf "basePipelineHandle = %A" x.basePipelineHandle - sprintf "basePipelineIndex = %A" x.basePipelineIndex - ] |> sprintf "VkRayTracingPipelineCreateInfoNV { %s }" + sprintf "swapchainCount = %A" x.swapchainCount + sprintf "pTimes = %A" x.pTimes + ] |> sprintf "VkPresentTimesInfoGOOGLE { %s }" end - type VkTransformMatrixNV = VkTransformMatrixKHR - [] - type VkWriteDescriptorSetAccelerationStructureNV = + type VkRefreshCycleDurationGOOGLE = struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public accelerationStructureCount : uint32 - val mutable public pAccelerationStructures : nativeptr + val mutable public refreshDuration : uint64 - new(pNext : nativeint, accelerationStructureCount : uint32, pAccelerationStructures : nativeptr) = + new(refreshDuration : uint64) = { - sType = 1000165007u - pNext = pNext - accelerationStructureCount = accelerationStructureCount - pAccelerationStructures = pAccelerationStructures + refreshDuration = refreshDuration } - new(accelerationStructureCount : uint32, pAccelerationStructures : nativeptr) = - VkWriteDescriptorSetAccelerationStructureNV(Unchecked.defaultof, accelerationStructureCount, pAccelerationStructures) - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.accelerationStructureCount = Unchecked.defaultof && x.pAccelerationStructures = Unchecked.defaultof> + x.refreshDuration = Unchecked.defaultof static member Empty = - VkWriteDescriptorSetAccelerationStructureNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + VkRefreshCycleDurationGOOGLE(Unchecked.defaultof) override x.ToString() = - String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "accelerationStructureCount = %A" x.accelerationStructureCount - sprintf "pAccelerationStructures = %A" x.pAccelerationStructures - ] |> sprintf "VkWriteDescriptorSetAccelerationStructureNV { %s }" - end - - - [] - module EnumExtensions = - type VkAccelerationStructureTypeKHR with - static member inline TopLevelNv = unbox 0 - static member inline BottomLevelNv = unbox 1 - type VkAccessFlags with - static member inline AccelerationStructureReadBitNv = unbox 0x00200000 - static member inline AccelerationStructureWriteBitNv = unbox 0x00400000 - type VkBufferUsageFlags with - static member inline RayTracingBitNv = unbox 0x00000400 - type VkBuildAccelerationStructureFlagsKHR with - static member inline AllowUpdateBitNv = unbox 0x00000001 - static member inline AllowCompactionBitNv = unbox 0x00000002 - static member inline PreferFastTraceBitNv = unbox 0x00000004 - static member inline PreferFastBuildBitNv = unbox 0x00000008 - static member inline LowMemoryBitNv = unbox 0x00000010 - type VkCopyAccelerationStructureModeKHR with - static member inline CloneNv = unbox 0 - static member inline CompactNv = unbox 1 - type VkDebugReportObjectTypeEXT with - static member inline AccelerationStructureNv = unbox 1000165000 - type VkDescriptorType with - static member inline AccelerationStructureNv = unbox 1000165000 - type VkGeometryFlagsKHR with - static member inline OpaqueBitNv = unbox 0x00000001 - static member inline NoDuplicateAnyHitInvocationBitNv = unbox 0x00000002 - type VkGeometryInstanceFlagsKHR with - static member inline TriangleCullDisableBitNv = unbox 0x00000001 - static member inline TriangleFrontCounterclockwiseBitNv = unbox 0x00000002 - static member inline ForceOpaqueBitNv = unbox 0x00000004 - static member inline ForceNoOpaqueBitNv = unbox 0x00000008 - type VkGeometryTypeKHR with - static member inline TrianglesNv = unbox 0 - static member inline AabbsNv = unbox 1 - type VkIndexType with - static member inline NoneNv = unbox 1000165000 - type VkObjectType with - static member inline AccelerationStructureNv = unbox 1000165000 - type VkPipelineBindPoint with - static member inline RayTracingNv = unbox 1000165000 - type VkPipelineCreateFlags with - static member inline DeferCompileBitNv = unbox 0x00000020 - type VkPipelineStageFlags with - static member inline RayTracingShaderBitNv = unbox 0x00200000 - static member inline AccelerationStructureBuildBitNv = unbox 0x02000000 - type VkQueryType with - static member inline AccelerationStructureCompactedSizeNv = unbox 1000165000 - type VkRayTracingShaderGroupTypeKHR with - static member inline GeneralNv = unbox 0 - static member inline TrianglesHitGroupNv = unbox 1 - static member inline ProceduralHitGroupNv = unbox 2 - type VkShaderStageFlags with - static member inline RaygenBitNv = unbox 0x00000100 - static member inline AnyHitBitNv = unbox 0x00000200 - static member inline ClosestHitBitNv = unbox 0x00000400 - static member inline MissBitNv = unbox 0x00000800 - static member inline IntersectionBitNv = unbox 0x00001000 - static member inline CallableBitNv = unbox 0x00002000 - - module VkRaw = - [] - type VkCreateAccelerationStructureNVDel = delegate of VkDevice * nativeptr * nativeptr * nativeptr -> VkResult - [] - type VkDestroyAccelerationStructureNVDel = delegate of VkDevice * VkAccelerationStructureNV * nativeptr -> unit - [] - type VkGetAccelerationStructureMemoryRequirementsNVDel = delegate of VkDevice * nativeptr * nativeptr -> unit - [] - type VkBindAccelerationStructureMemoryNVDel = delegate of VkDevice * uint32 * nativeptr -> VkResult - [] - type VkCmdBuildAccelerationStructureNVDel = delegate of VkCommandBuffer * nativeptr * VkBuffer * VkDeviceSize * VkBool32 * VkAccelerationStructureNV * VkAccelerationStructureNV * VkBuffer * VkDeviceSize -> unit - [] - type VkCmdCopyAccelerationStructureNVDel = delegate of VkCommandBuffer * VkAccelerationStructureNV * VkAccelerationStructureNV * VkCopyAccelerationStructureModeKHR -> unit - [] - type VkCmdTraceRaysNVDel = delegate of VkCommandBuffer * VkBuffer * VkDeviceSize * VkBuffer * VkDeviceSize * VkDeviceSize * VkBuffer * VkDeviceSize * VkDeviceSize * VkBuffer * VkDeviceSize * VkDeviceSize * uint32 * uint32 * uint32 -> unit - [] - type VkCreateRayTracingPipelinesNVDel = delegate of VkDevice * VkPipelineCache * uint32 * nativeptr * nativeptr * nativeptr -> VkResult - [] - type VkGetRayTracingShaderGroupHandlesNVDel = delegate of VkDevice * VkPipeline * uint32 * uint32 * uint64 * nativeint -> VkResult - [] - type VkGetAccelerationStructureHandleNVDel = delegate of VkDevice * VkAccelerationStructureNV * uint64 * nativeint -> VkResult - [] - type VkCmdWriteAccelerationStructuresPropertiesNVDel = delegate of VkCommandBuffer * uint32 * nativeptr * VkQueryType * VkQueryPool * uint32 -> unit - [] - type VkCompileDeferredNVDel = delegate of VkDevice * VkPipeline * uint32 -> VkResult - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading NVRayTracing") - static let s_vkCreateAccelerationStructureNVDel = VkRaw.vkImportInstanceDelegate "vkCreateAccelerationStructureNV" - static let s_vkDestroyAccelerationStructureNVDel = VkRaw.vkImportInstanceDelegate "vkDestroyAccelerationStructureNV" - static let s_vkGetAccelerationStructureMemoryRequirementsNVDel = VkRaw.vkImportInstanceDelegate "vkGetAccelerationStructureMemoryRequirementsNV" - static let s_vkBindAccelerationStructureMemoryNVDel = VkRaw.vkImportInstanceDelegate "vkBindAccelerationStructureMemoryNV" - static let s_vkCmdBuildAccelerationStructureNVDel = VkRaw.vkImportInstanceDelegate "vkCmdBuildAccelerationStructureNV" - static let s_vkCmdCopyAccelerationStructureNVDel = VkRaw.vkImportInstanceDelegate "vkCmdCopyAccelerationStructureNV" - static let s_vkCmdTraceRaysNVDel = VkRaw.vkImportInstanceDelegate "vkCmdTraceRaysNV" - static let s_vkCreateRayTracingPipelinesNVDel = VkRaw.vkImportInstanceDelegate "vkCreateRayTracingPipelinesNV" - static let s_vkGetRayTracingShaderGroupHandlesNVDel = VkRaw.vkImportInstanceDelegate "vkGetRayTracingShaderGroupHandlesNV" - static let s_vkGetAccelerationStructureHandleNVDel = VkRaw.vkImportInstanceDelegate "vkGetAccelerationStructureHandleNV" - static let s_vkCmdWriteAccelerationStructuresPropertiesNVDel = VkRaw.vkImportInstanceDelegate "vkCmdWriteAccelerationStructuresPropertiesNV" - static let s_vkCompileDeferredNVDel = VkRaw.vkImportInstanceDelegate "vkCompileDeferredNV" - static do Report.End(3) |> ignore - static member vkCreateAccelerationStructureNV = s_vkCreateAccelerationStructureNVDel - static member vkDestroyAccelerationStructureNV = s_vkDestroyAccelerationStructureNVDel - static member vkGetAccelerationStructureMemoryRequirementsNV = s_vkGetAccelerationStructureMemoryRequirementsNVDel - static member vkBindAccelerationStructureMemoryNV = s_vkBindAccelerationStructureMemoryNVDel - static member vkCmdBuildAccelerationStructureNV = s_vkCmdBuildAccelerationStructureNVDel - static member vkCmdCopyAccelerationStructureNV = s_vkCmdCopyAccelerationStructureNVDel - static member vkCmdTraceRaysNV = s_vkCmdTraceRaysNVDel - static member vkCreateRayTracingPipelinesNV = s_vkCreateRayTracingPipelinesNVDel - static member vkGetRayTracingShaderGroupHandlesNV = s_vkGetRayTracingShaderGroupHandlesNVDel - static member vkGetAccelerationStructureHandleNV = s_vkGetAccelerationStructureHandleNVDel - static member vkCmdWriteAccelerationStructuresPropertiesNV = s_vkCmdWriteAccelerationStructuresPropertiesNVDel - static member vkCompileDeferredNV = s_vkCompileDeferredNVDel - let vkCreateAccelerationStructureNV(device : VkDevice, pCreateInfo : nativeptr, pAllocator : nativeptr, pAccelerationStructure : nativeptr) = Loader.vkCreateAccelerationStructureNV.Invoke(device, pCreateInfo, pAllocator, pAccelerationStructure) - let vkDestroyAccelerationStructureNV(device : VkDevice, accelerationStructure : VkAccelerationStructureNV, pAllocator : nativeptr) = Loader.vkDestroyAccelerationStructureNV.Invoke(device, accelerationStructure, pAllocator) - let vkGetAccelerationStructureMemoryRequirementsNV(device : VkDevice, pInfo : nativeptr, pMemoryRequirements : nativeptr) = Loader.vkGetAccelerationStructureMemoryRequirementsNV.Invoke(device, pInfo, pMemoryRequirements) - let vkBindAccelerationStructureMemoryNV(device : VkDevice, bindInfoCount : uint32, pBindInfos : nativeptr) = Loader.vkBindAccelerationStructureMemoryNV.Invoke(device, bindInfoCount, pBindInfos) - let vkCmdBuildAccelerationStructureNV(commandBuffer : VkCommandBuffer, pInfo : nativeptr, instanceData : VkBuffer, instanceOffset : VkDeviceSize, update : VkBool32, dst : VkAccelerationStructureNV, src : VkAccelerationStructureNV, scratch : VkBuffer, scratchOffset : VkDeviceSize) = Loader.vkCmdBuildAccelerationStructureNV.Invoke(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset) - let vkCmdCopyAccelerationStructureNV(commandBuffer : VkCommandBuffer, dst : VkAccelerationStructureNV, src : VkAccelerationStructureNV, mode : VkCopyAccelerationStructureModeKHR) = Loader.vkCmdCopyAccelerationStructureNV.Invoke(commandBuffer, dst, src, mode) - let vkCmdTraceRaysNV(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) = Loader.vkCmdTraceRaysNV.Invoke(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth) - let vkCreateRayTracingPipelinesNV(device : VkDevice, pipelineCache : VkPipelineCache, createInfoCount : uint32, pCreateInfos : nativeptr, pAllocator : nativeptr, pPipelines : nativeptr) = Loader.vkCreateRayTracingPipelinesNV.Invoke(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines) - let vkGetRayTracingShaderGroupHandlesNV(device : VkDevice, pipeline : VkPipeline, firstGroup : uint32, groupCount : uint32, dataSize : uint64, pData : nativeint) = Loader.vkGetRayTracingShaderGroupHandlesNV.Invoke(device, pipeline, firstGroup, groupCount, dataSize, pData) - let vkGetAccelerationStructureHandleNV(device : VkDevice, accelerationStructure : VkAccelerationStructureNV, dataSize : uint64, pData : nativeint) = Loader.vkGetAccelerationStructureHandleNV.Invoke(device, accelerationStructure, dataSize, pData) - let vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer : VkCommandBuffer, accelerationStructureCount : uint32, pAccelerationStructures : nativeptr, queryType : VkQueryType, queryPool : VkQueryPool, firstQuery : uint32) = Loader.vkCmdWriteAccelerationStructuresPropertiesNV.Invoke(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery) - let vkCompileDeferredNV(device : VkDevice, pipeline : VkPipeline, shader : uint32) = Loader.vkCompileDeferredNV.Invoke(device, pipeline, shader) + String.concat "; " [ + sprintf "refreshDuration = %A" x.refreshDuration + ] |> sprintf "VkRefreshCycleDurationGOOGLE { %s }" + end -module NVMeshShader = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_NV_mesh_shader" - let Number = 203 - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] + module VkRaw = + [] + type VkGetRefreshCycleDurationGOOGLEDel = delegate of VkDevice * KHRSwapchain.VkSwapchainKHR * nativeptr -> VkResult + [] + type VkGetPastPresentationTimingGOOGLEDel = delegate of VkDevice * KHRSwapchain.VkSwapchainKHR * nativeptr * nativeptr -> VkResult + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading GOOGLEDisplayTiming") + static let s_vkGetRefreshCycleDurationGOOGLEDel = VkRaw.vkImportInstanceDelegate "vkGetRefreshCycleDurationGOOGLE" + static let s_vkGetPastPresentationTimingGOOGLEDel = VkRaw.vkImportInstanceDelegate "vkGetPastPresentationTimingGOOGLE" + static do Report.End(3) |> ignore + static member vkGetRefreshCycleDurationGOOGLE = s_vkGetRefreshCycleDurationGOOGLEDel + static member vkGetPastPresentationTimingGOOGLE = s_vkGetPastPresentationTimingGOOGLEDel + let vkGetRefreshCycleDurationGOOGLE(device : VkDevice, swapchain : KHRSwapchain.VkSwapchainKHR, pDisplayTimingProperties : nativeptr) = Loader.vkGetRefreshCycleDurationGOOGLE.Invoke(device, swapchain, pDisplayTimingProperties) + let vkGetPastPresentationTimingGOOGLE(device : VkDevice, swapchain : KHRSwapchain.VkSwapchainKHR, pPresentationTimingCount : nativeptr, pPresentationTimings : nativeptr) = Loader.vkGetPastPresentationTimingGOOGLE.Invoke(device, swapchain, pPresentationTimingCount, pPresentationTimings) + +module GOOGLEHlslFunctionality1 = + let Type = ExtensionType.Device + let Name = "VK_GOOGLE_hlsl_functionality1" + let Number = 224 + +module GOOGLEUserType = + let Type = ExtensionType.Device + let Name = "VK_GOOGLE_user_type" + let Number = 290 +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module HUAWEIClusterCullingShader = + let Type = ExtensionType.Device + let Name = "VK_HUAWEI_cluster_culling_shader" + let Number = 405 [] - type VkDrawMeshTasksIndirectCommandNV = + type VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI = struct - val mutable public taskCount : uint32 - val mutable public firstTask : uint32 + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public clustercullingShader : VkBool32 + val mutable public multiviewClusterCullingShader : VkBool32 - new(taskCount : uint32, firstTask : uint32) = + new(pNext : nativeint, clustercullingShader : VkBool32, multiviewClusterCullingShader : VkBool32) = { - taskCount = taskCount - firstTask = firstTask + sType = 1000404000u + pNext = pNext + clustercullingShader = clustercullingShader + multiviewClusterCullingShader = multiviewClusterCullingShader } + new(clustercullingShader : VkBool32, multiviewClusterCullingShader : VkBool32) = + VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI(Unchecked.defaultof, clustercullingShader, multiviewClusterCullingShader) + member x.IsEmpty = - x.taskCount = Unchecked.defaultof && x.firstTask = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.clustercullingShader = Unchecked.defaultof && x.multiviewClusterCullingShader = Unchecked.defaultof static member Empty = - VkDrawMeshTasksIndirectCommandNV(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ - sprintf "taskCount = %A" x.taskCount - sprintf "firstTask = %A" x.firstTask - ] |> sprintf "VkDrawMeshTasksIndirectCommandNV { %s }" + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "clustercullingShader = %A" x.clustercullingShader + sprintf "multiviewClusterCullingShader = %A" x.multiviewClusterCullingShader + ] |> sprintf "VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI { %s }" end [] - type VkPhysicalDeviceMeshShaderFeaturesNV = + type VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public taskShader : VkBool32 - val mutable public meshShader : VkBool32 + val mutable public maxWorkGroupCount : V3ui + val mutable public maxWorkGroupSize : V3ui + val mutable public maxOutputClusterCount : uint32 + val mutable public indirectBufferOffsetAlignment : VkDeviceSize - new(pNext : nativeint, taskShader : VkBool32, meshShader : VkBool32) = + new(pNext : nativeint, maxWorkGroupCount : V3ui, maxWorkGroupSize : V3ui, maxOutputClusterCount : uint32, indirectBufferOffsetAlignment : VkDeviceSize) = { - sType = 1000202000u + sType = 1000404001u pNext = pNext - taskShader = taskShader - meshShader = meshShader + maxWorkGroupCount = maxWorkGroupCount + maxWorkGroupSize = maxWorkGroupSize + maxOutputClusterCount = maxOutputClusterCount + indirectBufferOffsetAlignment = indirectBufferOffsetAlignment } - new(taskShader : VkBool32, meshShader : VkBool32) = - VkPhysicalDeviceMeshShaderFeaturesNV(Unchecked.defaultof, taskShader, meshShader) + new(maxWorkGroupCount : V3ui, maxWorkGroupSize : V3ui, maxOutputClusterCount : uint32, indirectBufferOffsetAlignment : VkDeviceSize) = + VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI(Unchecked.defaultof, maxWorkGroupCount, maxWorkGroupSize, maxOutputClusterCount, indirectBufferOffsetAlignment) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.taskShader = Unchecked.defaultof && x.meshShader = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.maxWorkGroupCount = Unchecked.defaultof && x.maxWorkGroupSize = Unchecked.defaultof && x.maxOutputClusterCount = Unchecked.defaultof && x.indirectBufferOffsetAlignment = Unchecked.defaultof static member Empty = - VkPhysicalDeviceMeshShaderFeaturesNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "taskShader = %A" x.taskShader - sprintf "meshShader = %A" x.meshShader - ] |> sprintf "VkPhysicalDeviceMeshShaderFeaturesNV { %s }" + sprintf "maxWorkGroupCount = %A" x.maxWorkGroupCount + sprintf "maxWorkGroupSize = %A" x.maxWorkGroupSize + sprintf "maxOutputClusterCount = %A" x.maxOutputClusterCount + sprintf "indirectBufferOffsetAlignment = %A" x.indirectBufferOffsetAlignment + ] |> sprintf "VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI { %s }" end [] - type VkPhysicalDeviceMeshShaderPropertiesNV = + type VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public maxDrawMeshTasksCount : uint32 - val mutable public maxTaskWorkGroupInvocations : uint32 - val mutable public maxTaskWorkGroupSize : V3ui - val mutable public maxTaskTotalMemorySize : uint32 - val mutable public maxTaskOutputCount : uint32 - val mutable public maxMeshWorkGroupInvocations : uint32 - val mutable public maxMeshWorkGroupSize : V3ui - val mutable public maxMeshTotalMemorySize : uint32 - val mutable public maxMeshOutputVertices : uint32 - val mutable public maxMeshOutputPrimitives : uint32 - val mutable public maxMeshMultiviewViewCount : uint32 - val mutable public meshOutputPerVertexGranularity : uint32 - val mutable public meshOutputPerPrimitiveGranularity : uint32 + val mutable public clusterShadingRate : VkBool32 - new(pNext : nativeint, maxDrawMeshTasksCount : uint32, maxTaskWorkGroupInvocations : uint32, maxTaskWorkGroupSize : V3ui, maxTaskTotalMemorySize : uint32, maxTaskOutputCount : uint32, maxMeshWorkGroupInvocations : uint32, maxMeshWorkGroupSize : V3ui, maxMeshTotalMemorySize : uint32, maxMeshOutputVertices : uint32, maxMeshOutputPrimitives : uint32, maxMeshMultiviewViewCount : uint32, meshOutputPerVertexGranularity : uint32, meshOutputPerPrimitiveGranularity : uint32) = + new(pNext : nativeint, clusterShadingRate : VkBool32) = { - sType = 1000202001u + sType = 1000404002u pNext = pNext - maxDrawMeshTasksCount = maxDrawMeshTasksCount - maxTaskWorkGroupInvocations = maxTaskWorkGroupInvocations - maxTaskWorkGroupSize = maxTaskWorkGroupSize - maxTaskTotalMemorySize = maxTaskTotalMemorySize - maxTaskOutputCount = maxTaskOutputCount - maxMeshWorkGroupInvocations = maxMeshWorkGroupInvocations - maxMeshWorkGroupSize = maxMeshWorkGroupSize - maxMeshTotalMemorySize = maxMeshTotalMemorySize - maxMeshOutputVertices = maxMeshOutputVertices - maxMeshOutputPrimitives = maxMeshOutputPrimitives - maxMeshMultiviewViewCount = maxMeshMultiviewViewCount - meshOutputPerVertexGranularity = meshOutputPerVertexGranularity - meshOutputPerPrimitiveGranularity = meshOutputPerPrimitiveGranularity + clusterShadingRate = clusterShadingRate } - new(maxDrawMeshTasksCount : uint32, maxTaskWorkGroupInvocations : uint32, maxTaskWorkGroupSize : V3ui, maxTaskTotalMemorySize : uint32, maxTaskOutputCount : uint32, maxMeshWorkGroupInvocations : uint32, maxMeshWorkGroupSize : V3ui, maxMeshTotalMemorySize : uint32, maxMeshOutputVertices : uint32, maxMeshOutputPrimitives : uint32, maxMeshMultiviewViewCount : uint32, meshOutputPerVertexGranularity : uint32, meshOutputPerPrimitiveGranularity : uint32) = - VkPhysicalDeviceMeshShaderPropertiesNV(Unchecked.defaultof, maxDrawMeshTasksCount, maxTaskWorkGroupInvocations, maxTaskWorkGroupSize, maxTaskTotalMemorySize, maxTaskOutputCount, maxMeshWorkGroupInvocations, maxMeshWorkGroupSize, maxMeshTotalMemorySize, maxMeshOutputVertices, maxMeshOutputPrimitives, maxMeshMultiviewViewCount, meshOutputPerVertexGranularity, meshOutputPerPrimitiveGranularity) + new(clusterShadingRate : VkBool32) = + VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI(Unchecked.defaultof, clusterShadingRate) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.maxDrawMeshTasksCount = Unchecked.defaultof && x.maxTaskWorkGroupInvocations = Unchecked.defaultof && x.maxTaskWorkGroupSize = Unchecked.defaultof && x.maxTaskTotalMemorySize = Unchecked.defaultof && x.maxTaskOutputCount = Unchecked.defaultof && x.maxMeshWorkGroupInvocations = Unchecked.defaultof && x.maxMeshWorkGroupSize = Unchecked.defaultof && x.maxMeshTotalMemorySize = Unchecked.defaultof && x.maxMeshOutputVertices = Unchecked.defaultof && x.maxMeshOutputPrimitives = Unchecked.defaultof && x.maxMeshMultiviewViewCount = Unchecked.defaultof && x.meshOutputPerVertexGranularity = Unchecked.defaultof && x.meshOutputPerPrimitiveGranularity = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.clusterShadingRate = Unchecked.defaultof static member Empty = - VkPhysicalDeviceMeshShaderPropertiesNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "maxDrawMeshTasksCount = %A" x.maxDrawMeshTasksCount - sprintf "maxTaskWorkGroupInvocations = %A" x.maxTaskWorkGroupInvocations - sprintf "maxTaskWorkGroupSize = %A" x.maxTaskWorkGroupSize - sprintf "maxTaskTotalMemorySize = %A" x.maxTaskTotalMemorySize - sprintf "maxTaskOutputCount = %A" x.maxTaskOutputCount - sprintf "maxMeshWorkGroupInvocations = %A" x.maxMeshWorkGroupInvocations - sprintf "maxMeshWorkGroupSize = %A" x.maxMeshWorkGroupSize - sprintf "maxMeshTotalMemorySize = %A" x.maxMeshTotalMemorySize - sprintf "maxMeshOutputVertices = %A" x.maxMeshOutputVertices - sprintf "maxMeshOutputPrimitives = %A" x.maxMeshOutputPrimitives - sprintf "maxMeshMultiviewViewCount = %A" x.maxMeshMultiviewViewCount - sprintf "meshOutputPerVertexGranularity = %A" x.meshOutputPerVertexGranularity - sprintf "meshOutputPerPrimitiveGranularity = %A" x.meshOutputPerPrimitiveGranularity - ] |> sprintf "VkPhysicalDeviceMeshShaderPropertiesNV { %s }" + sprintf "clusterShadingRate = %A" x.clusterShadingRate + ] |> sprintf "VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI { %s }" end [] module EnumExtensions = - type VkPipelineStageFlags with - static member inline TaskShaderBitNv = unbox 0x00080000 - static member inline MeshShaderBitNv = unbox 0x00100000 + type Vulkan13.VkPipelineStageFlags2 with + static member inline PipelineStage2ClusterCullingShaderBitHuawei = unbox 0x00000200 + type VkQueryPipelineStatisticFlags with + static member inline ClusterCullingShaderInvocationsBitHuawei = unbox 0x00002000 type VkShaderStageFlags with - static member inline TaskBitNv = unbox 0x00000040 - static member inline MeshBitNv = unbox 0x00000080 + static member inline ClusterCullingBitHuawei = unbox 0x00080000 module VkRaw = [] - type VkCmdDrawMeshTasksNVDel = delegate of VkCommandBuffer * uint32 * uint32 -> unit - [] - type VkCmdDrawMeshTasksIndirectNVDel = delegate of VkCommandBuffer * VkBuffer * VkDeviceSize * uint32 * uint32 -> unit + type VkCmdDrawClusterHUAWEIDel = delegate of VkCommandBuffer * uint32 * uint32 * uint32 -> unit [] - type VkCmdDrawMeshTasksIndirectCountNVDel = delegate of VkCommandBuffer * VkBuffer * VkDeviceSize * VkBuffer * VkDeviceSize * uint32 * uint32 -> unit + type VkCmdDrawClusterIndirectHUAWEIDel = delegate of VkCommandBuffer * VkBuffer * VkDeviceSize -> unit [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading NVMeshShader") - static let s_vkCmdDrawMeshTasksNVDel = VkRaw.vkImportInstanceDelegate "vkCmdDrawMeshTasksNV" - static let s_vkCmdDrawMeshTasksIndirectNVDel = VkRaw.vkImportInstanceDelegate "vkCmdDrawMeshTasksIndirectNV" - static let s_vkCmdDrawMeshTasksIndirectCountNVDel = VkRaw.vkImportInstanceDelegate "vkCmdDrawMeshTasksIndirectCountNV" + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading HUAWEIClusterCullingShader") + static let s_vkCmdDrawClusterHUAWEIDel = VkRaw.vkImportInstanceDelegate "vkCmdDrawClusterHUAWEI" + static let s_vkCmdDrawClusterIndirectHUAWEIDel = VkRaw.vkImportInstanceDelegate "vkCmdDrawClusterIndirectHUAWEI" static do Report.End(3) |> ignore - static member vkCmdDrawMeshTasksNV = s_vkCmdDrawMeshTasksNVDel - static member vkCmdDrawMeshTasksIndirectNV = s_vkCmdDrawMeshTasksIndirectNVDel - static member vkCmdDrawMeshTasksIndirectCountNV = s_vkCmdDrawMeshTasksIndirectCountNVDel - let vkCmdDrawMeshTasksNV(commandBuffer : VkCommandBuffer, taskCount : uint32, firstTask : uint32) = Loader.vkCmdDrawMeshTasksNV.Invoke(commandBuffer, taskCount, firstTask) - let vkCmdDrawMeshTasksIndirectNV(commandBuffer : VkCommandBuffer, buffer : VkBuffer, offset : VkDeviceSize, drawCount : uint32, stride : uint32) = Loader.vkCmdDrawMeshTasksIndirectNV.Invoke(commandBuffer, buffer, offset, drawCount, stride) - let vkCmdDrawMeshTasksIndirectCountNV(commandBuffer : VkCommandBuffer, buffer : VkBuffer, offset : VkDeviceSize, countBuffer : VkBuffer, countBufferOffset : VkDeviceSize, maxDrawCount : uint32, stride : uint32) = Loader.vkCmdDrawMeshTasksIndirectCountNV.Invoke(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - -module NVDeviceDiagnosticCheckpoints = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_NV_device_diagnostic_checkpoints" - let Number = 207 - - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] + static member vkCmdDrawClusterHUAWEI = s_vkCmdDrawClusterHUAWEIDel + static member vkCmdDrawClusterIndirectHUAWEI = s_vkCmdDrawClusterIndirectHUAWEIDel + let vkCmdDrawClusterHUAWEI(commandBuffer : VkCommandBuffer, groupCountX : uint32, groupCountY : uint32, groupCountZ : uint32) = Loader.vkCmdDrawClusterHUAWEI.Invoke(commandBuffer, groupCountX, groupCountY, groupCountZ) + let vkCmdDrawClusterIndirectHUAWEI(commandBuffer : VkCommandBuffer, buffer : VkBuffer, offset : VkDeviceSize) = Loader.vkCmdDrawClusterIndirectHUAWEI.Invoke(commandBuffer, buffer, offset) +/// Requires KHRRayTracingPipeline, (KHRSynchronization2 | Vulkan13). +module HUAWEIInvocationMask = + let Type = ExtensionType.Device + let Name = "VK_HUAWEI_invocation_mask" + let Number = 371 [] - type VkCheckpointDataNV = + type VkPhysicalDeviceInvocationMaskFeaturesHUAWEI = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public stage : VkPipelineStageFlags - val mutable public pCheckpointMarker : nativeint + val mutable public invocationMask : VkBool32 - new(pNext : nativeint, stage : VkPipelineStageFlags, pCheckpointMarker : nativeint) = + new(pNext : nativeint, invocationMask : VkBool32) = { - sType = 1000206000u + sType = 1000370000u pNext = pNext - stage = stage - pCheckpointMarker = pCheckpointMarker + invocationMask = invocationMask } - new(stage : VkPipelineStageFlags, pCheckpointMarker : nativeint) = - VkCheckpointDataNV(Unchecked.defaultof, stage, pCheckpointMarker) + new(invocationMask : VkBool32) = + VkPhysicalDeviceInvocationMaskFeaturesHUAWEI(Unchecked.defaultof, invocationMask) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.stage = Unchecked.defaultof && x.pCheckpointMarker = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.invocationMask = Unchecked.defaultof static member Empty = - VkCheckpointDataNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceInvocationMaskFeaturesHUAWEI(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "stage = %A" x.stage - sprintf "pCheckpointMarker = %A" x.pCheckpointMarker - ] |> sprintf "VkCheckpointDataNV { %s }" + sprintf "invocationMask = %A" x.invocationMask + ] |> sprintf "VkPhysicalDeviceInvocationMaskFeaturesHUAWEI { %s }" end + + [] + module EnumExtensions = + type Vulkan13.VkAccessFlags2 with + static member inline Access2InvocationMaskReadBitHuawei = unbox 0x00000080 + type VkImageUsageFlags with + static member inline InvocationMaskBitHuawei = unbox 0x00040000 + type Vulkan13.VkPipelineStageFlags2 with + static member inline PipelineStage2InvocationMaskBitHuawei = unbox 0x00000100 + + module VkRaw = + [] + type VkCmdBindInvocationMaskHUAWEIDel = delegate of VkCommandBuffer * VkImageView * VkImageLayout -> unit + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading HUAWEIInvocationMask") + static let s_vkCmdBindInvocationMaskHUAWEIDel = VkRaw.vkImportInstanceDelegate "vkCmdBindInvocationMaskHUAWEI" + static do Report.End(3) |> ignore + static member vkCmdBindInvocationMaskHUAWEI = s_vkCmdBindInvocationMaskHUAWEIDel + let vkCmdBindInvocationMaskHUAWEI(commandBuffer : VkCommandBuffer, imageView : VkImageView, imageLayout : VkImageLayout) = Loader.vkCmdBindInvocationMaskHUAWEI.Invoke(commandBuffer, imageView, imageLayout) + +/// Requires ((KHRCreateRenderpass2 | Vulkan12), KHRSynchronization2) | Vulkan13. +module HUAWEISubpassShading = + let Type = ExtensionType.Device + let Name = "VK_HUAWEI_subpass_shading" + let Number = 370 + [] - type VkQueueFamilyCheckpointPropertiesNV = + type VkPhysicalDeviceSubpassShadingFeaturesHUAWEI = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public checkpointExecutionStageMask : VkPipelineStageFlags + val mutable public subpassShading : VkBool32 - new(pNext : nativeint, checkpointExecutionStageMask : VkPipelineStageFlags) = + new(pNext : nativeint, subpassShading : VkBool32) = { - sType = 1000206001u + sType = 1000369001u pNext = pNext - checkpointExecutionStageMask = checkpointExecutionStageMask + subpassShading = subpassShading } - new(checkpointExecutionStageMask : VkPipelineStageFlags) = - VkQueueFamilyCheckpointPropertiesNV(Unchecked.defaultof, checkpointExecutionStageMask) + new(subpassShading : VkBool32) = + VkPhysicalDeviceSubpassShadingFeaturesHUAWEI(Unchecked.defaultof, subpassShading) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.checkpointExecutionStageMask = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.subpassShading = Unchecked.defaultof static member Empty = - VkQueueFamilyCheckpointPropertiesNV(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceSubpassShadingFeaturesHUAWEI(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "checkpointExecutionStageMask = %A" x.checkpointExecutionStageMask - ] |> sprintf "VkQueueFamilyCheckpointPropertiesNV { %s }" + sprintf "subpassShading = %A" x.subpassShading + ] |> sprintf "VkPhysicalDeviceSubpassShadingFeaturesHUAWEI { %s }" end + [] + type VkPhysicalDeviceSubpassShadingPropertiesHUAWEI = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public maxSubpassShadingWorkgroupSizeAspectRatio : uint32 - module VkRaw = - [] - type VkCmdSetCheckpointNVDel = delegate of VkCommandBuffer * nativeint -> unit - [] - type VkGetQueueCheckpointDataNVDel = delegate of VkQueue * nativeptr * nativeptr -> unit - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading NVDeviceDiagnosticCheckpoints") - static let s_vkCmdSetCheckpointNVDel = VkRaw.vkImportInstanceDelegate "vkCmdSetCheckpointNV" - static let s_vkGetQueueCheckpointDataNVDel = VkRaw.vkImportInstanceDelegate "vkGetQueueCheckpointDataNV" - static do Report.End(3) |> ignore - static member vkCmdSetCheckpointNV = s_vkCmdSetCheckpointNVDel - static member vkGetQueueCheckpointDataNV = s_vkGetQueueCheckpointDataNVDel - let vkCmdSetCheckpointNV(commandBuffer : VkCommandBuffer, pCheckpointMarker : nativeint) = Loader.vkCmdSetCheckpointNV.Invoke(commandBuffer, pCheckpointMarker) - let vkGetQueueCheckpointDataNV(queue : VkQueue, pCheckpointDataCount : nativeptr, pCheckpointData : nativeptr) = Loader.vkGetQueueCheckpointDataNV.Invoke(queue, pCheckpointDataCount, pCheckpointData) - -module KHRSynchronization2 = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_KHR_synchronization2" - let Number = 315 - - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] + new(pNext : nativeint, maxSubpassShadingWorkgroupSizeAspectRatio : uint32) = + { + sType = 1000369002u + pNext = pNext + maxSubpassShadingWorkgroupSizeAspectRatio = maxSubpassShadingWorkgroupSizeAspectRatio + } + new(maxSubpassShadingWorkgroupSizeAspectRatio : uint32) = + VkPhysicalDeviceSubpassShadingPropertiesHUAWEI(Unchecked.defaultof, maxSubpassShadingWorkgroupSizeAspectRatio) - type VkFlags64 = uint64 - type VkPipelineStageFlags2KHR = VkPipelineStageFlags2 - type VkAccessFlags2KHR = VkAccessFlags2 - type VkSubmitFlagsKHR = VkSubmitFlags + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.maxSubpassShadingWorkgroupSizeAspectRatio = Unchecked.defaultof - type VkBufferMemoryBarrier2KHR = VkBufferMemoryBarrier2 + static member Empty = + VkPhysicalDeviceSubpassShadingPropertiesHUAWEI(Unchecked.defaultof, Unchecked.defaultof) - type VkCommandBufferSubmitInfoKHR = VkCommandBufferSubmitInfo + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "maxSubpassShadingWorkgroupSizeAspectRatio = %A" x.maxSubpassShadingWorkgroupSizeAspectRatio + ] |> sprintf "VkPhysicalDeviceSubpassShadingPropertiesHUAWEI { %s }" + end - type VkDependencyInfoKHR = VkDependencyInfo + [] + type VkSubpassShadingPipelineCreateInfoHUAWEI = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public renderPass : VkRenderPass + val mutable public subpass : uint32 - type VkImageMemoryBarrier2KHR = VkImageMemoryBarrier2 + new(pNext : nativeint, renderPass : VkRenderPass, subpass : uint32) = + { + sType = 1000369000u + pNext = pNext + renderPass = renderPass + subpass = subpass + } - type VkMemoryBarrier2KHR = VkMemoryBarrier2 + new(renderPass : VkRenderPass, subpass : uint32) = + VkSubpassShadingPipelineCreateInfoHUAWEI(Unchecked.defaultof, renderPass, subpass) - type VkPhysicalDeviceSynchronization2FeaturesKHR = VkPhysicalDeviceSynchronization2Features + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.renderPass = Unchecked.defaultof && x.subpass = Unchecked.defaultof - type VkSemaphoreSubmitInfoKHR = VkSemaphoreSubmitInfo + static member Empty = + VkSubpassShadingPipelineCreateInfoHUAWEI(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) - type VkSubmitInfo2KHR = VkSubmitInfo2 + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "renderPass = %A" x.renderPass + sprintf "subpass = %A" x.subpass + ] |> sprintf "VkSubpassShadingPipelineCreateInfoHUAWEI { %s }" + end [] module EnumExtensions = - type VkAccessFlags with - static member inline NoneKhr = unbox 0 - type VkEventCreateFlags with - static member inline DeviceOnlyBitKhr = unbox 0x00000001 - type VkImageLayout with - static member inline ReadOnlyOptimalKhr = unbox 1000314000 - static member inline AttachmentOptimalKhr = unbox 1000314001 - type VkPipelineStageFlags with - static member inline NoneKhr = unbox 0 + type VkPipelineBindPoint with + static member inline SubpassShadingHuawei = unbox 1000369003 + type Vulkan13.VkPipelineStageFlags2 with + static member inline PipelineStage2SubpassShaderBitHuawei = unbox 0x00000080 + type VkShaderStageFlags with + static member inline SubpassShadingBitHuawei = unbox 0x00004000 module VkRaw = [] - type VkCmdSetEvent2KHRDel = delegate of VkCommandBuffer * VkEvent * nativeptr -> unit - [] - type VkCmdResetEvent2KHRDel = delegate of VkCommandBuffer * VkEvent * VkPipelineStageFlags2 -> unit - [] - type VkCmdWaitEvents2KHRDel = delegate of VkCommandBuffer * uint32 * nativeptr * nativeptr -> unit - [] - type VkCmdPipelineBarrier2KHRDel = delegate of VkCommandBuffer * nativeptr -> unit - [] - type VkCmdWriteTimestamp2KHRDel = delegate of VkCommandBuffer * VkPipelineStageFlags2 * VkQueryPool * uint32 -> unit + type VkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEIDel = delegate of VkDevice * VkRenderPass * nativeptr -> VkResult [] - type VkQueueSubmit2KHRDel = delegate of VkQueue * uint32 * nativeptr * VkFence -> VkResult + type VkCmdSubpassShadingHUAWEIDel = delegate of VkCommandBuffer -> unit [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRSynchronization2") - static let s_vkCmdSetEvent2KHRDel = VkRaw.vkImportInstanceDelegate "vkCmdSetEvent2KHR" - static let s_vkCmdResetEvent2KHRDel = VkRaw.vkImportInstanceDelegate "vkCmdResetEvent2KHR" - static let s_vkCmdWaitEvents2KHRDel = VkRaw.vkImportInstanceDelegate "vkCmdWaitEvents2KHR" - static let s_vkCmdPipelineBarrier2KHRDel = VkRaw.vkImportInstanceDelegate "vkCmdPipelineBarrier2KHR" - static let s_vkCmdWriteTimestamp2KHRDel = VkRaw.vkImportInstanceDelegate "vkCmdWriteTimestamp2KHR" - static let s_vkQueueSubmit2KHRDel = VkRaw.vkImportInstanceDelegate "vkQueueSubmit2KHR" + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading HUAWEISubpassShading") + static let s_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEIDel = VkRaw.vkImportInstanceDelegate "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI" + static let s_vkCmdSubpassShadingHUAWEIDel = VkRaw.vkImportInstanceDelegate "vkCmdSubpassShadingHUAWEI" static do Report.End(3) |> ignore - static member vkCmdSetEvent2KHR = s_vkCmdSetEvent2KHRDel - static member vkCmdResetEvent2KHR = s_vkCmdResetEvent2KHRDel - static member vkCmdWaitEvents2KHR = s_vkCmdWaitEvents2KHRDel - static member vkCmdPipelineBarrier2KHR = s_vkCmdPipelineBarrier2KHRDel - static member vkCmdWriteTimestamp2KHR = s_vkCmdWriteTimestamp2KHRDel - static member vkQueueSubmit2KHR = s_vkQueueSubmit2KHRDel - let vkCmdSetEvent2KHR(commandBuffer : VkCommandBuffer, event : VkEvent, pDependencyInfo : nativeptr) = Loader.vkCmdSetEvent2KHR.Invoke(commandBuffer, event, pDependencyInfo) - let vkCmdResetEvent2KHR(commandBuffer : VkCommandBuffer, event : VkEvent, stageMask : VkPipelineStageFlags2) = Loader.vkCmdResetEvent2KHR.Invoke(commandBuffer, event, stageMask) - let vkCmdWaitEvents2KHR(commandBuffer : VkCommandBuffer, eventCount : uint32, pEvents : nativeptr, pDependencyInfos : nativeptr) = Loader.vkCmdWaitEvents2KHR.Invoke(commandBuffer, eventCount, pEvents, pDependencyInfos) - let vkCmdPipelineBarrier2KHR(commandBuffer : VkCommandBuffer, pDependencyInfo : nativeptr) = Loader.vkCmdPipelineBarrier2KHR.Invoke(commandBuffer, pDependencyInfo) - let vkCmdWriteTimestamp2KHR(commandBuffer : VkCommandBuffer, stage : VkPipelineStageFlags2, queryPool : VkQueryPool, query : uint32) = Loader.vkCmdWriteTimestamp2KHR.Invoke(commandBuffer, stage, queryPool, query) - let vkQueueSubmit2KHR(queue : VkQueue, submitCount : uint32, pSubmits : nativeptr, fence : VkFence) = Loader.vkQueueSubmit2KHR.Invoke(queue, submitCount, pSubmits, fence) - - module EXTTransformFeedback = - [] - module EnumExtensions = - type VkAccessFlags2 with - static member inline Access2TransformFeedbackWriteBitExt = unbox 0x02000000 - static member inline Access2TransformFeedbackCounterReadBitExt = unbox 0x04000000 - static member inline Access2TransformFeedbackCounterWriteBitExt = unbox 0x08000000 - type VkPipelineStageFlags2 with - static member inline PipelineStage2TransformFeedbackBitExt = unbox 0x01000000 - - - module EXTConditionalRendering = - [] - module EnumExtensions = - type VkAccessFlags2 with - /// read access flag for reading conditional rendering predicate - static member inline Access2ConditionalRenderingReadBitExt = unbox 0x00100000 - type VkPipelineStageFlags2 with - /// A pipeline stage for conditional rendering predicate fetch - static member inline PipelineStage2ConditionalRenderingBitExt = unbox 0x00040000 - - - module NVDeviceGeneratedCommands = - [] - module EnumExtensions = - type VkAccessFlags2 with - static member inline Access2CommandPreprocessReadBitNv = unbox 0x00020000 - static member inline Access2CommandPreprocessWriteBitNv = unbox 0x00040000 - type VkPipelineStageFlags2 with - static member inline PipelineStage2CommandPreprocessBitNv = unbox 0x00020000 - - - module KHRFragmentShadingRate = - [] - module EnumExtensions = - type VkAccessFlags2 with - static member inline Access2FragmentShadingRateAttachmentReadBitKhr = unbox 0x00800000 - type VkPipelineStageFlags2 with - static member inline PipelineStage2FragmentShadingRateAttachmentBitKhr = unbox 0x00400000 - - - module NVShadingRateImage = - [] - module EnumExtensions = - type VkAccessFlags2 with - static member inline Access2ShadingRateImageReadBitNv = unbox 0x00800000 - type VkPipelineStageFlags2 with - static member inline PipelineStage2ShadingRateImageBitNv = unbox 0x00400000 - - - module KHRAccelerationStructure = - [] - module EnumExtensions = - type VkAccessFlags2 with - static member inline Access2AccelerationStructureReadBitKhr = unbox 0x00200000 - static member inline Access2AccelerationStructureWriteBitKhr = unbox 0x00400000 - type VkPipelineStageFlags2 with - static member inline PipelineStage2AccelerationStructureBuildBitKhr = unbox 0x02000000 - - - module KHRRayTracingPipeline = - [] - module EnumExtensions = - type VkPipelineStageFlags2 with - static member inline PipelineStage2RayTracingShaderBitKhr = unbox 0x00200000 - - - module NVRayTracing = - [] - module EnumExtensions = - type VkAccessFlags2 with - static member inline Access2AccelerationStructureReadBitNv = unbox 0x00200000 - static member inline Access2AccelerationStructureWriteBitNv = unbox 0x00400000 - type VkPipelineStageFlags2 with - static member inline PipelineStage2RayTracingShaderBitNv = unbox 0x00200000 - static member inline PipelineStage2AccelerationStructureBuildBitNv = unbox 0x02000000 - - - module EXTFragmentDensityMap = - [] - module EnumExtensions = - type VkAccessFlags2 with - static member inline Access2FragmentDensityMapReadBitExt = unbox 0x01000000 - type VkPipelineStageFlags2 with - static member inline PipelineStage2FragmentDensityProcessBitExt = unbox 0x00800000 - - - module EXTBlendOperationAdvanced = - [] - module EnumExtensions = - type VkAccessFlags2 with - static member inline Access2ColorAttachmentReadNoncoherentBitExt = unbox 0x00080000 - - - module NVMeshShader = - [] - module EnumExtensions = - type VkPipelineStageFlags2 with - static member inline PipelineStage2TaskShaderBitNv = unbox 0x00080000 - static member inline PipelineStage2MeshShaderBitNv = unbox 0x00100000 - - - module AMDBufferMarker = - module VkRaw = - [] - type VkCmdWriteBufferMarker2AMDDel = delegate of VkCommandBuffer * VkPipelineStageFlags2 * VkBuffer * VkDeviceSize * uint32 -> unit - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRSynchronization2 -> AMDBufferMarker") - static let s_vkCmdWriteBufferMarker2AMDDel = VkRaw.vkImportInstanceDelegate "vkCmdWriteBufferMarker2AMD" - static do Report.End(3) |> ignore - static member vkCmdWriteBufferMarker2AMD = s_vkCmdWriteBufferMarker2AMDDel - let vkCmdWriteBufferMarker2AMD(commandBuffer : VkCommandBuffer, stage : VkPipelineStageFlags2, dstBuffer : VkBuffer, dstOffset : VkDeviceSize, marker : uint32) = Loader.vkCmdWriteBufferMarker2AMD.Invoke(commandBuffer, stage, dstBuffer, dstOffset, marker) - - module NVDeviceDiagnosticCheckpoints = - [] - type VkCheckpointData2NV = - struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public stage : VkPipelineStageFlags2 - val mutable public pCheckpointMarker : nativeint - - new(pNext : nativeint, stage : VkPipelineStageFlags2, pCheckpointMarker : nativeint) = - { - sType = 1000314009u - pNext = pNext - stage = stage - pCheckpointMarker = pCheckpointMarker - } - - new(stage : VkPipelineStageFlags2, pCheckpointMarker : nativeint) = - VkCheckpointData2NV(Unchecked.defaultof, stage, pCheckpointMarker) - - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.stage = Unchecked.defaultof && x.pCheckpointMarker = Unchecked.defaultof - - static member Empty = - VkCheckpointData2NV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) - - override x.ToString() = - String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "stage = %A" x.stage - sprintf "pCheckpointMarker = %A" x.pCheckpointMarker - ] |> sprintf "VkCheckpointData2NV { %s }" - end - - [] - type VkQueueFamilyCheckpointProperties2NV = - struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public checkpointExecutionStageMask : VkPipelineStageFlags2 - - new(pNext : nativeint, checkpointExecutionStageMask : VkPipelineStageFlags2) = - { - sType = 1000314008u - pNext = pNext - checkpointExecutionStageMask = checkpointExecutionStageMask - } - - new(checkpointExecutionStageMask : VkPipelineStageFlags2) = - VkQueueFamilyCheckpointProperties2NV(Unchecked.defaultof, checkpointExecutionStageMask) - - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.checkpointExecutionStageMask = Unchecked.defaultof - - static member Empty = - VkQueueFamilyCheckpointProperties2NV(Unchecked.defaultof, Unchecked.defaultof) - - override x.ToString() = - String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "checkpointExecutionStageMask = %A" x.checkpointExecutionStageMask - ] |> sprintf "VkQueueFamilyCheckpointProperties2NV { %s }" - end - - - module VkRaw = - [] - type VkGetQueueCheckpointData2NVDel = delegate of VkQueue * nativeptr * nativeptr -> unit - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRSynchronization2 -> NVDeviceDiagnosticCheckpoints") - static let s_vkGetQueueCheckpointData2NVDel = VkRaw.vkImportInstanceDelegate "vkGetQueueCheckpointData2NV" - static do Report.End(3) |> ignore - static member vkGetQueueCheckpointData2NV = s_vkGetQueueCheckpointData2NVDel - let vkGetQueueCheckpointData2NV(queue : VkQueue, pCheckpointDataCount : nativeptr, pCheckpointData : nativeptr) = Loader.vkGetQueueCheckpointData2NV.Invoke(queue, pCheckpointDataCount, pCheckpointData) - -module KHRVideoQueue = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - open KHRSynchronization2 - let Name = "VK_KHR_video_queue" - let Number = 24 - - let Required = [ KHRGetPhysicalDeviceProperties2.Name; KHRSynchronization2.Name ] - - - - [] - type VkVideoSessionKHR = - struct - val mutable public Handle : uint64 - new(h) = { Handle = h } - static member Null = VkVideoSessionKHR(0UL) - member x.IsNull = x.Handle = 0UL - member x.IsValid = x.Handle <> 0UL - end - - [] - type VkVideoSessionParametersKHR = - struct - val mutable public Handle : uint64 - new(h) = { Handle = h } - static member Null = VkVideoSessionParametersKHR(0UL) - member x.IsNull = x.Handle = 0UL - member x.IsValid = x.Handle <> 0UL - end - - [] - type VkVideoCodecOperationFlagsKHR = - | All = 0 - | InvalidBit = 0 - - [] - type VkVideoChromaSubsamplingFlagsKHR = - | All = 15 - | InvalidBit = 0 - | MonochromeBit = 0x00000001 - | D420Bit = 0x00000002 - | D422Bit = 0x00000004 - | D444Bit = 0x00000008 - - [] - type VkVideoComponentBitDepthFlagsKHR = - | All = 21 - | Invalid = 0 - | D8Bit = 0x00000001 - | D10Bit = 0x00000004 - | D12Bit = 0x00000010 + static member vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = s_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEIDel + static member vkCmdSubpassShadingHUAWEI = s_vkCmdSubpassShadingHUAWEIDel + let vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device : VkDevice, renderpass : VkRenderPass, pMaxWorkgroupSize : nativeptr) = Loader.vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI.Invoke(device, renderpass, pMaxWorkgroupSize) + let vkCmdSubpassShadingHUAWEI(commandBuffer : VkCommandBuffer) = Loader.vkCmdSubpassShadingHUAWEI.Invoke(commandBuffer) - [] - type VkVideoCapabilityFlagsKHR = - | All = 3 - | None = 0 - | ProtectedContentBit = 0x00000001 - | SeparateReferenceImagesBit = 0x00000002 +module IMGFilterCubic = + let Type = ExtensionType.Device + let Name = "VK_IMG_filter_cubic" + let Number = 16 - [] - type VkVideoSessionCreateFlagsKHR = - | All = 1 - | Default = 0 - | ProtectedContentBit = 0x00000001 + [] + module EnumExtensions = + type VkFilter with + static member inline CubicImg = unbox 1000015000 + type VkFormatFeatureFlags with + /// Format can be filtered with VK_FILTER_CUBIC_IMG when being sampled + static member inline SampledImageFilterCubicBitImg = unbox 0x00002000 - [] - type VkVideoCodingControlFlagsKHR = - | All = 1 - | Default = 0 - | ResetBit = 0x00000001 - [] - type VkVideoCodingQualityPresetFlagsKHR = - | All = 7 - | None = 0 - | NormalBit = 0x00000001 - | PowerBit = 0x00000002 - | QualityBit = 0x00000004 +/// Deprecated. +module IMGFormatPvrtc = + let Type = ExtensionType.Device + let Name = "VK_IMG_format_pvrtc" + let Number = 55 + + [] + module EnumExtensions = + type VkFormat with + static member inline Pvrtc12bppUnormBlockImg = unbox 1000054000 + static member inline Pvrtc14bppUnormBlockImg = unbox 1000054001 + static member inline Pvrtc22bppUnormBlockImg = unbox 1000054002 + static member inline Pvrtc24bppUnormBlockImg = unbox 1000054003 + static member inline Pvrtc12bppSrgbBlockImg = unbox 1000054004 + static member inline Pvrtc14bppSrgbBlockImg = unbox 1000054005 + static member inline Pvrtc22bppSrgbBlockImg = unbox 1000054006 + static member inline Pvrtc24bppSrgbBlockImg = unbox 1000054007 - type VkQueryResultStatusKHR = - | Error = -1 - | NotReady = 0 - | Complete = 1 +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module IMGRelaxedLineRasterization = + let Type = ExtensionType.Device + let Name = "VK_IMG_relaxed_line_rasterization" + let Number = 111 [] - type VkPhysicalDeviceVideoFormatInfoKHR = + type VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public imageUsage : VkImageUsageFlags + val mutable public relaxedLineRasterization : VkBool32 - new(pNext : nativeint, imageUsage : VkImageUsageFlags) = + new(pNext : nativeint, relaxedLineRasterization : VkBool32) = { - sType = 1000023014u + sType = 1000110000u pNext = pNext - imageUsage = imageUsage + relaxedLineRasterization = relaxedLineRasterization } - new(imageUsage : VkImageUsageFlags) = - VkPhysicalDeviceVideoFormatInfoKHR(Unchecked.defaultof, imageUsage) + new(relaxedLineRasterization : VkBool32) = + VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG(Unchecked.defaultof, relaxedLineRasterization) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.imageUsage = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.relaxedLineRasterization = Unchecked.defaultof static member Empty = - VkPhysicalDeviceVideoFormatInfoKHR(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "imageUsage = %A" x.imageUsage - ] |> sprintf "VkPhysicalDeviceVideoFormatInfoKHR { %s }" + sprintf "relaxedLineRasterization = %A" x.relaxedLineRasterization + ] |> sprintf "VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG { %s }" end + + +module INTELPerformanceQuery = + let Type = ExtensionType.Device + let Name = "VK_INTEL_performance_query" + let Number = 211 + + [] - type VkQueueFamilyQueryResultStatusProperties2KHR = + type VkPerformanceConfigurationINTEL = struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public queryResultStatusSupport : VkBool32 + val mutable public Handle : uint64 + new(h) = { Handle = h } + static member Null = VkPerformanceConfigurationINTEL(0UL) + member x.IsNull = x.Handle = 0UL + member x.IsValid = x.Handle <> 0UL + end - new(pNext : nativeint, queryResultStatusSupport : VkBool32) = - { - sType = 1000023016u - pNext = pNext - queryResultStatusSupport = queryResultStatusSupport - } + type VkPerformanceConfigurationTypeINTEL = + | CommandQueueMetricsDiscoveryActivated = 0 - new(queryResultStatusSupport : VkBool32) = - VkQueueFamilyQueryResultStatusProperties2KHR(Unchecked.defaultof, queryResultStatusSupport) + type VkQueryPoolSamplingModeINTEL = + | Manual = 0 - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.queryResultStatusSupport = Unchecked.defaultof + type VkPerformanceOverrideTypeINTEL = + | NullHardware = 0 + | FlushGpuCaches = 1 - static member Empty = - VkQueueFamilyQueryResultStatusProperties2KHR(Unchecked.defaultof, Unchecked.defaultof) + type VkPerformanceParameterTypeINTEL = + | HwCountersSupported = 0 + | StreamMarkerValidBits = 1 + + type VkPerformanceValueTypeINTEL = + | Uint32 = 0 + | Uint64 = 1 + | Float = 2 + | Bool = 3 + | String = 4 - override x.ToString() = - String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "queryResultStatusSupport = %A" x.queryResultStatusSupport - ] |> sprintf "VkQueueFamilyQueryResultStatusProperties2KHR { %s }" - end [] - type VkVideoPictureResourceKHR = + type VkInitializePerformanceApiInfoINTEL = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public codedOffset : VkOffset2D - val mutable public codedExtent : VkExtent2D - val mutable public baseArrayLayer : uint32 - val mutable public imageViewBinding : VkImageView + val mutable public pUserData : nativeint - new(pNext : nativeint, codedOffset : VkOffset2D, codedExtent : VkExtent2D, baseArrayLayer : uint32, imageViewBinding : VkImageView) = + new(pNext : nativeint, pUserData : nativeint) = { - sType = 1000023002u + sType = 1000210001u pNext = pNext - codedOffset = codedOffset - codedExtent = codedExtent - baseArrayLayer = baseArrayLayer - imageViewBinding = imageViewBinding + pUserData = pUserData } - new(codedOffset : VkOffset2D, codedExtent : VkExtent2D, baseArrayLayer : uint32, imageViewBinding : VkImageView) = - VkVideoPictureResourceKHR(Unchecked.defaultof, codedOffset, codedExtent, baseArrayLayer, imageViewBinding) + new(pUserData : nativeint) = + VkInitializePerformanceApiInfoINTEL(Unchecked.defaultof, pUserData) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.codedOffset = Unchecked.defaultof && x.codedExtent = Unchecked.defaultof && x.baseArrayLayer = Unchecked.defaultof && x.imageViewBinding = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.pUserData = Unchecked.defaultof static member Empty = - VkVideoPictureResourceKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkInitializePerformanceApiInfoINTEL(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "codedOffset = %A" x.codedOffset - sprintf "codedExtent = %A" x.codedExtent - sprintf "baseArrayLayer = %A" x.baseArrayLayer - sprintf "imageViewBinding = %A" x.imageViewBinding - ] |> sprintf "VkVideoPictureResourceKHR { %s }" + sprintf "pUserData = %A" x.pUserData + ] |> sprintf "VkInitializePerformanceApiInfoINTEL { %s }" end [] - type VkVideoReferenceSlotKHR = + type VkPerformanceConfigurationAcquireInfoINTEL = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public slotIndex : int8 - val mutable public pPictureResource : nativeptr + val mutable public _type : VkPerformanceConfigurationTypeINTEL - new(pNext : nativeint, slotIndex : int8, pPictureResource : nativeptr) = + new(pNext : nativeint, _type : VkPerformanceConfigurationTypeINTEL) = { - sType = 1000023011u + sType = 1000210005u pNext = pNext - slotIndex = slotIndex - pPictureResource = pPictureResource + _type = _type } - new(slotIndex : int8, pPictureResource : nativeptr) = - VkVideoReferenceSlotKHR(Unchecked.defaultof, slotIndex, pPictureResource) + new(_type : VkPerformanceConfigurationTypeINTEL) = + VkPerformanceConfigurationAcquireInfoINTEL(Unchecked.defaultof, _type) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.slotIndex = Unchecked.defaultof && x.pPictureResource = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x._type = Unchecked.defaultof static member Empty = - VkVideoReferenceSlotKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + VkPerformanceConfigurationAcquireInfoINTEL(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "slotIndex = %A" x.slotIndex - sprintf "pPictureResource = %A" x.pPictureResource - ] |> sprintf "VkVideoReferenceSlotKHR { %s }" + sprintf "_type = %A" x._type + ] |> sprintf "VkPerformanceConfigurationAcquireInfoINTEL { %s }" end [] - type VkVideoBeginCodingInfoKHR = + type VkPerformanceMarkerInfoINTEL = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public flags : VkVideoBeginCodingFlagsKHR - val mutable public codecQualityPreset : VkVideoCodingQualityPresetFlagsKHR - val mutable public videoSession : VkVideoSessionKHR - val mutable public videoSessionParameters : VkVideoSessionParametersKHR - val mutable public referenceSlotCount : uint32 - val mutable public pReferenceSlots : nativeptr + val mutable public marker : uint64 - new(pNext : nativeint, flags : VkVideoBeginCodingFlagsKHR, codecQualityPreset : VkVideoCodingQualityPresetFlagsKHR, videoSession : VkVideoSessionKHR, videoSessionParameters : VkVideoSessionParametersKHR, referenceSlotCount : uint32, pReferenceSlots : nativeptr) = + new(pNext : nativeint, marker : uint64) = { - sType = 1000023008u + sType = 1000210002u pNext = pNext - flags = flags - codecQualityPreset = codecQualityPreset - videoSession = videoSession - videoSessionParameters = videoSessionParameters - referenceSlotCount = referenceSlotCount - pReferenceSlots = pReferenceSlots + marker = marker } - new(flags : VkVideoBeginCodingFlagsKHR, codecQualityPreset : VkVideoCodingQualityPresetFlagsKHR, videoSession : VkVideoSessionKHR, videoSessionParameters : VkVideoSessionParametersKHR, referenceSlotCount : uint32, pReferenceSlots : nativeptr) = - VkVideoBeginCodingInfoKHR(Unchecked.defaultof, flags, codecQualityPreset, videoSession, videoSessionParameters, referenceSlotCount, pReferenceSlots) + new(marker : uint64) = + VkPerformanceMarkerInfoINTEL(Unchecked.defaultof, marker) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.codecQualityPreset = Unchecked.defaultof && x.videoSession = Unchecked.defaultof && x.videoSessionParameters = Unchecked.defaultof && x.referenceSlotCount = Unchecked.defaultof && x.pReferenceSlots = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.marker = Unchecked.defaultof static member Empty = - VkVideoBeginCodingInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + VkPerformanceMarkerInfoINTEL(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "flags = %A" x.flags - sprintf "codecQualityPreset = %A" x.codecQualityPreset - sprintf "videoSession = %A" x.videoSession - sprintf "videoSessionParameters = %A" x.videoSessionParameters - sprintf "referenceSlotCount = %A" x.referenceSlotCount - sprintf "pReferenceSlots = %A" x.pReferenceSlots - ] |> sprintf "VkVideoBeginCodingInfoKHR { %s }" + sprintf "marker = %A" x.marker + ] |> sprintf "VkPerformanceMarkerInfoINTEL { %s }" end [] - type VkVideoBindMemoryKHR = + type VkPerformanceOverrideInfoINTEL = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public memoryBindIndex : uint32 - val mutable public memory : VkDeviceMemory - val mutable public memoryOffset : VkDeviceSize - val mutable public memorySize : VkDeviceSize + val mutable public _type : VkPerformanceOverrideTypeINTEL + val mutable public enable : VkBool32 + val mutable public parameter : uint64 - new(pNext : nativeint, memoryBindIndex : uint32, memory : VkDeviceMemory, memoryOffset : VkDeviceSize, memorySize : VkDeviceSize) = + new(pNext : nativeint, _type : VkPerformanceOverrideTypeINTEL, enable : VkBool32, parameter : uint64) = { - sType = 1000023004u + sType = 1000210004u pNext = pNext - memoryBindIndex = memoryBindIndex - memory = memory - memoryOffset = memoryOffset - memorySize = memorySize + _type = _type + enable = enable + parameter = parameter } - new(memoryBindIndex : uint32, memory : VkDeviceMemory, memoryOffset : VkDeviceSize, memorySize : VkDeviceSize) = - VkVideoBindMemoryKHR(Unchecked.defaultof, memoryBindIndex, memory, memoryOffset, memorySize) + new(_type : VkPerformanceOverrideTypeINTEL, enable : VkBool32, parameter : uint64) = + VkPerformanceOverrideInfoINTEL(Unchecked.defaultof, _type, enable, parameter) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.memoryBindIndex = Unchecked.defaultof && x.memory = Unchecked.defaultof && x.memoryOffset = Unchecked.defaultof && x.memorySize = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x._type = Unchecked.defaultof && x.enable = Unchecked.defaultof && x.parameter = Unchecked.defaultof static member Empty = - VkVideoBindMemoryKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPerformanceOverrideInfoINTEL(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "memoryBindIndex = %A" x.memoryBindIndex - sprintf "memory = %A" x.memory - sprintf "memoryOffset = %A" x.memoryOffset - sprintf "memorySize = %A" x.memorySize - ] |> sprintf "VkVideoBindMemoryKHR { %s }" + sprintf "_type = %A" x._type + sprintf "enable = %A" x.enable + sprintf "parameter = %A" x.parameter + ] |> sprintf "VkPerformanceOverrideInfoINTEL { %s }" end [] - type VkVideoCapabilitiesKHR = + type VkPerformanceStreamMarkerInfoINTEL = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public capabilityFlags : VkVideoCapabilityFlagsKHR - val mutable public minBitstreamBufferOffsetAlignment : VkDeviceSize - val mutable public minBitstreamBufferSizeAlignment : VkDeviceSize - val mutable public videoPictureExtentGranularity : VkExtent2D - val mutable public minExtent : VkExtent2D - val mutable public maxExtent : VkExtent2D - val mutable public maxReferencePicturesSlotsCount : uint32 - val mutable public maxReferencePicturesActiveCount : uint32 - val mutable public stdHeaderVersion : VkExtensionProperties + val mutable public marker : uint32 - new(pNext : nativeint, capabilityFlags : VkVideoCapabilityFlagsKHR, minBitstreamBufferOffsetAlignment : VkDeviceSize, minBitstreamBufferSizeAlignment : VkDeviceSize, videoPictureExtentGranularity : VkExtent2D, minExtent : VkExtent2D, maxExtent : VkExtent2D, maxReferencePicturesSlotsCount : uint32, maxReferencePicturesActiveCount : uint32, stdHeaderVersion : VkExtensionProperties) = + new(pNext : nativeint, marker : uint32) = { - sType = 1000023001u + sType = 1000210003u pNext = pNext - capabilityFlags = capabilityFlags - minBitstreamBufferOffsetAlignment = minBitstreamBufferOffsetAlignment - minBitstreamBufferSizeAlignment = minBitstreamBufferSizeAlignment - videoPictureExtentGranularity = videoPictureExtentGranularity - minExtent = minExtent - maxExtent = maxExtent - maxReferencePicturesSlotsCount = maxReferencePicturesSlotsCount - maxReferencePicturesActiveCount = maxReferencePicturesActiveCount - stdHeaderVersion = stdHeaderVersion + marker = marker } - new(capabilityFlags : VkVideoCapabilityFlagsKHR, minBitstreamBufferOffsetAlignment : VkDeviceSize, minBitstreamBufferSizeAlignment : VkDeviceSize, videoPictureExtentGranularity : VkExtent2D, minExtent : VkExtent2D, maxExtent : VkExtent2D, maxReferencePicturesSlotsCount : uint32, maxReferencePicturesActiveCount : uint32, stdHeaderVersion : VkExtensionProperties) = - VkVideoCapabilitiesKHR(Unchecked.defaultof, capabilityFlags, minBitstreamBufferOffsetAlignment, minBitstreamBufferSizeAlignment, videoPictureExtentGranularity, minExtent, maxExtent, maxReferencePicturesSlotsCount, maxReferencePicturesActiveCount, stdHeaderVersion) + new(marker : uint32) = + VkPerformanceStreamMarkerInfoINTEL(Unchecked.defaultof, marker) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.capabilityFlags = Unchecked.defaultof && x.minBitstreamBufferOffsetAlignment = Unchecked.defaultof && x.minBitstreamBufferSizeAlignment = Unchecked.defaultof && x.videoPictureExtentGranularity = Unchecked.defaultof && x.minExtent = Unchecked.defaultof && x.maxExtent = Unchecked.defaultof && x.maxReferencePicturesSlotsCount = Unchecked.defaultof && x.maxReferencePicturesActiveCount = Unchecked.defaultof && x.stdHeaderVersion = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.marker = Unchecked.defaultof static member Empty = - VkVideoCapabilitiesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPerformanceStreamMarkerInfoINTEL(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "capabilityFlags = %A" x.capabilityFlags - sprintf "minBitstreamBufferOffsetAlignment = %A" x.minBitstreamBufferOffsetAlignment - sprintf "minBitstreamBufferSizeAlignment = %A" x.minBitstreamBufferSizeAlignment - sprintf "videoPictureExtentGranularity = %A" x.videoPictureExtentGranularity - sprintf "minExtent = %A" x.minExtent - sprintf "maxExtent = %A" x.maxExtent - sprintf "maxReferencePicturesSlotsCount = %A" x.maxReferencePicturesSlotsCount - sprintf "maxReferencePicturesActiveCount = %A" x.maxReferencePicturesActiveCount - sprintf "stdHeaderVersion = %A" x.stdHeaderVersion - ] |> sprintf "VkVideoCapabilitiesKHR { %s }" + sprintf "marker = %A" x.marker + ] |> sprintf "VkPerformanceStreamMarkerInfoINTEL { %s }" end - [] - type VkVideoCodingControlInfoKHR = + [] + type VkPerformanceValueDataINTEL = struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public flags : VkVideoCodingControlFlagsKHR + [] + val mutable public value32 : uint32 + [] + val mutable public value64 : uint64 + [] + val mutable public valueFloat : float32 + [] + val mutable public valueBool : VkBool32 + [] + val mutable public valueString : cstr - new(pNext : nativeint, flags : VkVideoCodingControlFlagsKHR) = - { - sType = 1000023010u - pNext = pNext - flags = flags - } + static member Value32(value : uint32) = + let mutable result = Unchecked.defaultof + result.value32 <- value + result - new(flags : VkVideoCodingControlFlagsKHR) = - VkVideoCodingControlInfoKHR(Unchecked.defaultof, flags) + static member Value64(value : uint64) = + let mutable result = Unchecked.defaultof + result.value64 <- value + result - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof + static member ValueFloat(value : float32) = + let mutable result = Unchecked.defaultof + result.valueFloat <- value + result - static member Empty = - VkVideoCodingControlInfoKHR(Unchecked.defaultof, Unchecked.defaultof) + static member ValueBool(value : VkBool32) = + let mutable result = Unchecked.defaultof + result.valueBool <- value + result + + static member ValueString(value : cstr) = + let mutable result = Unchecked.defaultof + result.valueString <- value + result override x.ToString() = String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "flags = %A" x.flags - ] |> sprintf "VkVideoCodingControlInfoKHR { %s }" + sprintf "value32 = %A" x.value32 + sprintf "value64 = %A" x.value64 + sprintf "valueFloat = %A" x.valueFloat + sprintf "valueBool = %A" x.valueBool + sprintf "valueString = %A" x.valueString + ] |> sprintf "VkPerformanceValueDataINTEL { %s }" end [] - type VkVideoEndCodingInfoKHR = + type VkPerformanceValueINTEL = struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public flags : VkVideoEndCodingFlagsKHR + val mutable public _type : VkPerformanceValueTypeINTEL + val mutable public data : VkPerformanceValueDataINTEL - new(pNext : nativeint, flags : VkVideoEndCodingFlagsKHR) = + new(_type : VkPerformanceValueTypeINTEL, data : VkPerformanceValueDataINTEL) = { - sType = 1000023009u - pNext = pNext - flags = flags + _type = _type + data = data } - new(flags : VkVideoEndCodingFlagsKHR) = - VkVideoEndCodingInfoKHR(Unchecked.defaultof, flags) - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof + x._type = Unchecked.defaultof && x.data = Unchecked.defaultof static member Empty = - VkVideoEndCodingInfoKHR(Unchecked.defaultof, Unchecked.defaultof) + VkPerformanceValueINTEL(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "flags = %A" x.flags - ] |> sprintf "VkVideoEndCodingInfoKHR { %s }" + sprintf "_type = %A" x._type + sprintf "data = %A" x.data + ] |> sprintf "VkPerformanceValueINTEL { %s }" end [] - type VkVideoFormatPropertiesKHR = + type VkQueryPoolPerformanceQueryCreateInfoINTEL = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public format : VkFormat - val mutable public componentMapping : VkComponentMapping - val mutable public imageCreateFlags : VkImageCreateFlags - val mutable public imageType : VkImageType - val mutable public imageTiling : VkImageTiling - val mutable public imageUsageFlags : VkImageUsageFlags + val mutable public performanceCountersSampling : VkQueryPoolSamplingModeINTEL - new(pNext : nativeint, format : VkFormat, componentMapping : VkComponentMapping, imageCreateFlags : VkImageCreateFlags, imageType : VkImageType, imageTiling : VkImageTiling, imageUsageFlags : VkImageUsageFlags) = + new(pNext : nativeint, performanceCountersSampling : VkQueryPoolSamplingModeINTEL) = { - sType = 1000023015u + sType = 1000210000u pNext = pNext - format = format - componentMapping = componentMapping - imageCreateFlags = imageCreateFlags - imageType = imageType - imageTiling = imageTiling - imageUsageFlags = imageUsageFlags + performanceCountersSampling = performanceCountersSampling } - new(format : VkFormat, componentMapping : VkComponentMapping, imageCreateFlags : VkImageCreateFlags, imageType : VkImageType, imageTiling : VkImageTiling, imageUsageFlags : VkImageUsageFlags) = - VkVideoFormatPropertiesKHR(Unchecked.defaultof, format, componentMapping, imageCreateFlags, imageType, imageTiling, imageUsageFlags) + new(performanceCountersSampling : VkQueryPoolSamplingModeINTEL) = + VkQueryPoolPerformanceQueryCreateInfoINTEL(Unchecked.defaultof, performanceCountersSampling) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.format = Unchecked.defaultof && x.componentMapping = Unchecked.defaultof && x.imageCreateFlags = Unchecked.defaultof && x.imageType = Unchecked.defaultof && x.imageTiling = Unchecked.defaultof && x.imageUsageFlags = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.performanceCountersSampling = Unchecked.defaultof static member Empty = - VkVideoFormatPropertiesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkQueryPoolPerformanceQueryCreateInfoINTEL(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "format = %A" x.format - sprintf "componentMapping = %A" x.componentMapping - sprintf "imageCreateFlags = %A" x.imageCreateFlags - sprintf "imageType = %A" x.imageType - sprintf "imageTiling = %A" x.imageTiling - sprintf "imageUsageFlags = %A" x.imageUsageFlags - ] |> sprintf "VkVideoFormatPropertiesKHR { %s }" + sprintf "performanceCountersSampling = %A" x.performanceCountersSampling + ] |> sprintf "VkQueryPoolPerformanceQueryCreateInfoINTEL { %s }" end - [] - type VkVideoGetMemoryPropertiesKHR = - struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public memoryBindIndex : uint32 - val mutable public pMemoryRequirements : nativeptr + type VkQueryPoolCreateInfoINTEL = VkQueryPoolPerformanceQueryCreateInfoINTEL - new(pNext : nativeint, memoryBindIndex : uint32, pMemoryRequirements : nativeptr) = - { - sType = 1000023003u - pNext = pNext - memoryBindIndex = memoryBindIndex - pMemoryRequirements = pMemoryRequirements - } - new(memoryBindIndex : uint32, pMemoryRequirements : nativeptr) = - VkVideoGetMemoryPropertiesKHR(Unchecked.defaultof, memoryBindIndex, pMemoryRequirements) + [] + module EnumExtensions = + type VkObjectType with + static member inline PerformanceConfigurationIntel = unbox 1000210000 + type VkQueryType with + static member inline PerformanceQueryIntel = unbox 1000210000 - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.memoryBindIndex = Unchecked.defaultof && x.pMemoryRequirements = Unchecked.defaultof> + module VkRaw = + [] + type VkInitializePerformanceApiINTELDel = delegate of VkDevice * nativeptr -> VkResult + [] + type VkUninitializePerformanceApiINTELDel = delegate of VkDevice -> unit + [] + type VkCmdSetPerformanceMarkerINTELDel = delegate of VkCommandBuffer * nativeptr -> VkResult + [] + type VkCmdSetPerformanceStreamMarkerINTELDel = delegate of VkCommandBuffer * nativeptr -> VkResult + [] + type VkCmdSetPerformanceOverrideINTELDel = delegate of VkCommandBuffer * nativeptr -> VkResult + [] + type VkAcquirePerformanceConfigurationINTELDel = delegate of VkDevice * nativeptr * nativeptr -> VkResult + [] + type VkReleasePerformanceConfigurationINTELDel = delegate of VkDevice * VkPerformanceConfigurationINTEL -> VkResult + [] + type VkQueueSetPerformanceConfigurationINTELDel = delegate of VkQueue * VkPerformanceConfigurationINTEL -> VkResult + [] + type VkGetPerformanceParameterINTELDel = delegate of VkDevice * VkPerformanceParameterTypeINTEL * nativeptr -> VkResult - static member Empty = - VkVideoGetMemoryPropertiesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading INTELPerformanceQuery") + static let s_vkInitializePerformanceApiINTELDel = VkRaw.vkImportInstanceDelegate "vkInitializePerformanceApiINTEL" + static let s_vkUninitializePerformanceApiINTELDel = VkRaw.vkImportInstanceDelegate "vkUninitializePerformanceApiINTEL" + static let s_vkCmdSetPerformanceMarkerINTELDel = VkRaw.vkImportInstanceDelegate "vkCmdSetPerformanceMarkerINTEL" + static let s_vkCmdSetPerformanceStreamMarkerINTELDel = VkRaw.vkImportInstanceDelegate "vkCmdSetPerformanceStreamMarkerINTEL" + static let s_vkCmdSetPerformanceOverrideINTELDel = VkRaw.vkImportInstanceDelegate "vkCmdSetPerformanceOverrideINTEL" + static let s_vkAcquirePerformanceConfigurationINTELDel = VkRaw.vkImportInstanceDelegate "vkAcquirePerformanceConfigurationINTEL" + static let s_vkReleasePerformanceConfigurationINTELDel = VkRaw.vkImportInstanceDelegate "vkReleasePerformanceConfigurationINTEL" + static let s_vkQueueSetPerformanceConfigurationINTELDel = VkRaw.vkImportInstanceDelegate "vkQueueSetPerformanceConfigurationINTEL" + static let s_vkGetPerformanceParameterINTELDel = VkRaw.vkImportInstanceDelegate "vkGetPerformanceParameterINTEL" + static do Report.End(3) |> ignore + static member vkInitializePerformanceApiINTEL = s_vkInitializePerformanceApiINTELDel + static member vkUninitializePerformanceApiINTEL = s_vkUninitializePerformanceApiINTELDel + static member vkCmdSetPerformanceMarkerINTEL = s_vkCmdSetPerformanceMarkerINTELDel + static member vkCmdSetPerformanceStreamMarkerINTEL = s_vkCmdSetPerformanceStreamMarkerINTELDel + static member vkCmdSetPerformanceOverrideINTEL = s_vkCmdSetPerformanceOverrideINTELDel + static member vkAcquirePerformanceConfigurationINTEL = s_vkAcquirePerformanceConfigurationINTELDel + static member vkReleasePerformanceConfigurationINTEL = s_vkReleasePerformanceConfigurationINTELDel + static member vkQueueSetPerformanceConfigurationINTEL = s_vkQueueSetPerformanceConfigurationINTELDel + static member vkGetPerformanceParameterINTEL = s_vkGetPerformanceParameterINTELDel + let vkInitializePerformanceApiINTEL(device : VkDevice, pInitializeInfo : nativeptr) = Loader.vkInitializePerformanceApiINTEL.Invoke(device, pInitializeInfo) + let vkUninitializePerformanceApiINTEL(device : VkDevice) = Loader.vkUninitializePerformanceApiINTEL.Invoke(device) + let vkCmdSetPerformanceMarkerINTEL(commandBuffer : VkCommandBuffer, pMarkerInfo : nativeptr) = Loader.vkCmdSetPerformanceMarkerINTEL.Invoke(commandBuffer, pMarkerInfo) + let vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer : VkCommandBuffer, pMarkerInfo : nativeptr) = Loader.vkCmdSetPerformanceStreamMarkerINTEL.Invoke(commandBuffer, pMarkerInfo) + let vkCmdSetPerformanceOverrideINTEL(commandBuffer : VkCommandBuffer, pOverrideInfo : nativeptr) = Loader.vkCmdSetPerformanceOverrideINTEL.Invoke(commandBuffer, pOverrideInfo) + let vkAcquirePerformanceConfigurationINTEL(device : VkDevice, pAcquireInfo : nativeptr, pConfiguration : nativeptr) = Loader.vkAcquirePerformanceConfigurationINTEL.Invoke(device, pAcquireInfo, pConfiguration) + let vkReleasePerformanceConfigurationINTEL(device : VkDevice, configuration : VkPerformanceConfigurationINTEL) = Loader.vkReleasePerformanceConfigurationINTEL.Invoke(device, configuration) + let vkQueueSetPerformanceConfigurationINTEL(queue : VkQueue, configuration : VkPerformanceConfigurationINTEL) = Loader.vkQueueSetPerformanceConfigurationINTEL.Invoke(queue, configuration) + let vkGetPerformanceParameterINTEL(device : VkDevice, parameter : VkPerformanceParameterTypeINTEL, pValue : nativeptr) = Loader.vkGetPerformanceParameterINTEL.Invoke(device, parameter, pValue) - override x.ToString() = - String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "memoryBindIndex = %A" x.memoryBindIndex - sprintf "pMemoryRequirements = %A" x.pMemoryRequirements - ] |> sprintf "VkVideoGetMemoryPropertiesKHR { %s }" - end +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module INTELShaderIntegerFunctions2 = + let Type = ExtensionType.Device + let Name = "VK_INTEL_shader_integer_functions2" + let Number = 210 [] - type VkVideoProfileKHR = + type VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public videoCodecOperation : VkVideoCodecOperationFlagsKHR - val mutable public chromaSubsampling : VkVideoChromaSubsamplingFlagsKHR - val mutable public lumaBitDepth : VkVideoComponentBitDepthFlagsKHR - val mutable public chromaBitDepth : VkVideoComponentBitDepthFlagsKHR + val mutable public shaderIntegerFunctions2 : VkBool32 - new(pNext : nativeint, videoCodecOperation : VkVideoCodecOperationFlagsKHR, chromaSubsampling : VkVideoChromaSubsamplingFlagsKHR, lumaBitDepth : VkVideoComponentBitDepthFlagsKHR, chromaBitDepth : VkVideoComponentBitDepthFlagsKHR) = + new(pNext : nativeint, shaderIntegerFunctions2 : VkBool32) = { - sType = 1000023000u + sType = 1000209000u pNext = pNext - videoCodecOperation = videoCodecOperation - chromaSubsampling = chromaSubsampling - lumaBitDepth = lumaBitDepth - chromaBitDepth = chromaBitDepth + shaderIntegerFunctions2 = shaderIntegerFunctions2 } - new(videoCodecOperation : VkVideoCodecOperationFlagsKHR, chromaSubsampling : VkVideoChromaSubsamplingFlagsKHR, lumaBitDepth : VkVideoComponentBitDepthFlagsKHR, chromaBitDepth : VkVideoComponentBitDepthFlagsKHR) = - VkVideoProfileKHR(Unchecked.defaultof, videoCodecOperation, chromaSubsampling, lumaBitDepth, chromaBitDepth) + new(shaderIntegerFunctions2 : VkBool32) = + VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(Unchecked.defaultof, shaderIntegerFunctions2) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.videoCodecOperation = Unchecked.defaultof && x.chromaSubsampling = Unchecked.defaultof && x.lumaBitDepth = Unchecked.defaultof && x.chromaBitDepth = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.shaderIntegerFunctions2 = Unchecked.defaultof static member Empty = - VkVideoProfileKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "videoCodecOperation = %A" x.videoCodecOperation - sprintf "chromaSubsampling = %A" x.chromaSubsampling - sprintf "lumaBitDepth = %A" x.lumaBitDepth - sprintf "chromaBitDepth = %A" x.chromaBitDepth - ] |> sprintf "VkVideoProfileKHR { %s }" + sprintf "shaderIntegerFunctions2 = %A" x.shaderIntegerFunctions2 + ] |> sprintf "VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL { %s }" end - [] - type VkVideoProfilesKHR = - struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public profileCount : uint32 - val mutable public pProfiles : nativeptr - new(pNext : nativeint, profileCount : uint32, pProfiles : nativeptr) = - { - sType = 1000023013u - pNext = pNext - profileCount = profileCount - pProfiles = pProfiles - } - new(profileCount : uint32, pProfiles : nativeptr) = - VkVideoProfilesKHR(Unchecked.defaultof, profileCount, pProfiles) +/// Promoted to Vulkan11. +module KHRStorageBufferStorageClass = + let Type = ExtensionType.Device + let Name = "VK_KHR_storage_buffer_storage_class" + let Number = 132 + +/// Requires (KHRGetPhysicalDeviceProperties2, KHRStorageBufferStorageClass) | Vulkan11. +/// Promoted to Vulkan11. +module KHR16bitStorage = + let Type = ExtensionType.Device + let Name = "VK_KHR_16bit_storage" + let Number = 84 - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.profileCount = Unchecked.defaultof && x.pProfiles = Unchecked.defaultof> + type VkPhysicalDevice16BitStorageFeaturesKHR = Vulkan11.VkPhysicalDevice16BitStorageFeatures - static member Empty = - VkVideoProfilesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) - override x.ToString() = - String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "profileCount = %A" x.profileCount - sprintf "pProfiles = %A" x.pProfiles - ] |> sprintf "VkVideoProfilesKHR { %s }" - end + +/// Requires (KHRGetPhysicalDeviceProperties2, KHRStorageBufferStorageClass) | Vulkan11. +/// Promoted to Vulkan12. +module KHR8bitStorage = + let Type = ExtensionType.Device + let Name = "VK_KHR_8bit_storage" + let Number = 178 + + type VkPhysicalDevice8BitStorageFeaturesKHR = Vulkan12.VkPhysicalDevice8BitStorageFeatures + + + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module KHRCooperativeMatrix = + let Type = ExtensionType.Device + let Name = "VK_KHR_cooperative_matrix" + let Number = 507 + + type VkScopeKHR = + | Device = 1 + | Workgroup = 2 + | Subgroup = 3 + | QueueFamily = 5 + + type VkComponentTypeKHR = + | Float16 = 0 + | Float32 = 1 + | Float64 = 2 + | Sint8 = 3 + | Sint16 = 4 + | Sint32 = 5 + | Sint64 = 6 + | Uint8 = 7 + | Uint16 = 8 + | Uint32 = 9 + | Uint64 = 10 + [] - type VkVideoQueueFamilyProperties2KHR = + type VkCooperativeMatrixPropertiesKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public videoCodecOperations : VkVideoCodecOperationFlagsKHR + val mutable public MSize : uint32 + val mutable public NSize : uint32 + val mutable public KSize : uint32 + val mutable public AType : VkComponentTypeKHR + val mutable public BType : VkComponentTypeKHR + val mutable public CType : VkComponentTypeKHR + val mutable public ResultType : VkComponentTypeKHR + val mutable public saturatingAccumulation : VkBool32 + val mutable public scope : VkScopeKHR - new(pNext : nativeint, videoCodecOperations : VkVideoCodecOperationFlagsKHR) = + new(pNext : nativeint, MSize : uint32, NSize : uint32, KSize : uint32, AType : VkComponentTypeKHR, BType : VkComponentTypeKHR, CType : VkComponentTypeKHR, ResultType : VkComponentTypeKHR, saturatingAccumulation : VkBool32, scope : VkScopeKHR) = { - sType = 1000023012u + sType = 1000506001u pNext = pNext - videoCodecOperations = videoCodecOperations + MSize = MSize + NSize = NSize + KSize = KSize + AType = AType + BType = BType + CType = CType + ResultType = ResultType + saturatingAccumulation = saturatingAccumulation + scope = scope } - new(videoCodecOperations : VkVideoCodecOperationFlagsKHR) = - VkVideoQueueFamilyProperties2KHR(Unchecked.defaultof, videoCodecOperations) + new(MSize : uint32, NSize : uint32, KSize : uint32, AType : VkComponentTypeKHR, BType : VkComponentTypeKHR, CType : VkComponentTypeKHR, ResultType : VkComponentTypeKHR, saturatingAccumulation : VkBool32, scope : VkScopeKHR) = + VkCooperativeMatrixPropertiesKHR(Unchecked.defaultof, MSize, NSize, KSize, AType, BType, CType, ResultType, saturatingAccumulation, scope) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.videoCodecOperations = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.MSize = Unchecked.defaultof && x.NSize = Unchecked.defaultof && x.KSize = Unchecked.defaultof && x.AType = Unchecked.defaultof && x.BType = Unchecked.defaultof && x.CType = Unchecked.defaultof && x.ResultType = Unchecked.defaultof && x.saturatingAccumulation = Unchecked.defaultof && x.scope = Unchecked.defaultof static member Empty = - VkVideoQueueFamilyProperties2KHR(Unchecked.defaultof, Unchecked.defaultof) + VkCooperativeMatrixPropertiesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "videoCodecOperations = %A" x.videoCodecOperations - ] |> sprintf "VkVideoQueueFamilyProperties2KHR { %s }" + sprintf "MSize = %A" x.MSize + sprintf "NSize = %A" x.NSize + sprintf "KSize = %A" x.KSize + sprintf "AType = %A" x.AType + sprintf "BType = %A" x.BType + sprintf "CType = %A" x.CType + sprintf "ResultType = %A" x.ResultType + sprintf "saturatingAccumulation = %A" x.saturatingAccumulation + sprintf "scope = %A" x.scope + ] |> sprintf "VkCooperativeMatrixPropertiesKHR { %s }" end [] - type VkVideoSessionCreateInfoKHR = + type VkPhysicalDeviceCooperativeMatrixFeaturesKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public queueFamilyIndex : uint32 - val mutable public flags : VkVideoSessionCreateFlagsKHR - val mutable public pVideoProfile : nativeptr - val mutable public pictureFormat : VkFormat - val mutable public maxCodedExtent : VkExtent2D - val mutable public referencePicturesFormat : VkFormat - val mutable public maxReferencePicturesSlotsCount : uint32 - val mutable public maxReferencePicturesActiveCount : uint32 - val mutable public pStdHeaderVersion : nativeptr + val mutable public cooperativeMatrix : VkBool32 + val mutable public cooperativeMatrixRobustBufferAccess : VkBool32 - new(pNext : nativeint, queueFamilyIndex : uint32, flags : VkVideoSessionCreateFlagsKHR, pVideoProfile : nativeptr, pictureFormat : VkFormat, maxCodedExtent : VkExtent2D, referencePicturesFormat : VkFormat, maxReferencePicturesSlotsCount : uint32, maxReferencePicturesActiveCount : uint32, pStdHeaderVersion : nativeptr) = + new(pNext : nativeint, cooperativeMatrix : VkBool32, cooperativeMatrixRobustBufferAccess : VkBool32) = { - sType = 1000023005u + sType = 1000506000u pNext = pNext - queueFamilyIndex = queueFamilyIndex - flags = flags - pVideoProfile = pVideoProfile - pictureFormat = pictureFormat - maxCodedExtent = maxCodedExtent - referencePicturesFormat = referencePicturesFormat - maxReferencePicturesSlotsCount = maxReferencePicturesSlotsCount - maxReferencePicturesActiveCount = maxReferencePicturesActiveCount - pStdHeaderVersion = pStdHeaderVersion + cooperativeMatrix = cooperativeMatrix + cooperativeMatrixRobustBufferAccess = cooperativeMatrixRobustBufferAccess } - new(queueFamilyIndex : uint32, flags : VkVideoSessionCreateFlagsKHR, pVideoProfile : nativeptr, pictureFormat : VkFormat, maxCodedExtent : VkExtent2D, referencePicturesFormat : VkFormat, maxReferencePicturesSlotsCount : uint32, maxReferencePicturesActiveCount : uint32, pStdHeaderVersion : nativeptr) = - VkVideoSessionCreateInfoKHR(Unchecked.defaultof, queueFamilyIndex, flags, pVideoProfile, pictureFormat, maxCodedExtent, referencePicturesFormat, maxReferencePicturesSlotsCount, maxReferencePicturesActiveCount, pStdHeaderVersion) + new(cooperativeMatrix : VkBool32, cooperativeMatrixRobustBufferAccess : VkBool32) = + VkPhysicalDeviceCooperativeMatrixFeaturesKHR(Unchecked.defaultof, cooperativeMatrix, cooperativeMatrixRobustBufferAccess) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.queueFamilyIndex = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.pVideoProfile = Unchecked.defaultof> && x.pictureFormat = Unchecked.defaultof && x.maxCodedExtent = Unchecked.defaultof && x.referencePicturesFormat = Unchecked.defaultof && x.maxReferencePicturesSlotsCount = Unchecked.defaultof && x.maxReferencePicturesActiveCount = Unchecked.defaultof && x.pStdHeaderVersion = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.cooperativeMatrix = Unchecked.defaultof && x.cooperativeMatrixRobustBufferAccess = Unchecked.defaultof static member Empty = - VkVideoSessionCreateInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + VkPhysicalDeviceCooperativeMatrixFeaturesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "queueFamilyIndex = %A" x.queueFamilyIndex - sprintf "flags = %A" x.flags - sprintf "pVideoProfile = %A" x.pVideoProfile - sprintf "pictureFormat = %A" x.pictureFormat - sprintf "maxCodedExtent = %A" x.maxCodedExtent - sprintf "referencePicturesFormat = %A" x.referencePicturesFormat - sprintf "maxReferencePicturesSlotsCount = %A" x.maxReferencePicturesSlotsCount - sprintf "maxReferencePicturesActiveCount = %A" x.maxReferencePicturesActiveCount - sprintf "pStdHeaderVersion = %A" x.pStdHeaderVersion - ] |> sprintf "VkVideoSessionCreateInfoKHR { %s }" + sprintf "cooperativeMatrix = %A" x.cooperativeMatrix + sprintf "cooperativeMatrixRobustBufferAccess = %A" x.cooperativeMatrixRobustBufferAccess + ] |> sprintf "VkPhysicalDeviceCooperativeMatrixFeaturesKHR { %s }" end [] - type VkVideoSessionParametersCreateInfoKHR = + type VkPhysicalDeviceCooperativeMatrixPropertiesKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public videoSessionParametersTemplate : VkVideoSessionParametersKHR - val mutable public videoSession : VkVideoSessionKHR + val mutable public cooperativeMatrixSupportedStages : VkShaderStageFlags - new(pNext : nativeint, videoSessionParametersTemplate : VkVideoSessionParametersKHR, videoSession : VkVideoSessionKHR) = + new(pNext : nativeint, cooperativeMatrixSupportedStages : VkShaderStageFlags) = { - sType = 1000023006u + sType = 1000506002u pNext = pNext - videoSessionParametersTemplate = videoSessionParametersTemplate - videoSession = videoSession + cooperativeMatrixSupportedStages = cooperativeMatrixSupportedStages } - new(videoSessionParametersTemplate : VkVideoSessionParametersKHR, videoSession : VkVideoSessionKHR) = - VkVideoSessionParametersCreateInfoKHR(Unchecked.defaultof, videoSessionParametersTemplate, videoSession) + new(cooperativeMatrixSupportedStages : VkShaderStageFlags) = + VkPhysicalDeviceCooperativeMatrixPropertiesKHR(Unchecked.defaultof, cooperativeMatrixSupportedStages) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.videoSessionParametersTemplate = Unchecked.defaultof && x.videoSession = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.cooperativeMatrixSupportedStages = Unchecked.defaultof static member Empty = - VkVideoSessionParametersCreateInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceCooperativeMatrixPropertiesKHR(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "videoSessionParametersTemplate = %A" x.videoSessionParametersTemplate - sprintf "videoSession = %A" x.videoSession - ] |> sprintf "VkVideoSessionParametersCreateInfoKHR { %s }" + sprintf "cooperativeMatrixSupportedStages = %A" x.cooperativeMatrixSupportedStages + ] |> sprintf "VkPhysicalDeviceCooperativeMatrixPropertiesKHR { %s }" end + + module VkRaw = + [] + type VkGetPhysicalDeviceCooperativeMatrixPropertiesKHRDel = delegate of VkPhysicalDevice * nativeptr * nativeptr -> VkResult + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRCooperativeMatrix") + static let s_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR" + static do Report.End(3) |> ignore + static member vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR = s_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHRDel + let vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR(physicalDevice : VkPhysicalDevice, pPropertyCount : nativeptr, pProperties : nativeptr) = Loader.vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR.Invoke(physicalDevice, pPropertyCount, pProperties) + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module KHRPushDescriptor = + let Type = ExtensionType.Device + let Name = "VK_KHR_push_descriptor" + let Number = 81 + [] - type VkVideoSessionParametersUpdateInfoKHR = + type VkPhysicalDevicePushDescriptorPropertiesKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public updateSequenceCount : uint32 + val mutable public maxPushDescriptors : uint32 - new(pNext : nativeint, updateSequenceCount : uint32) = + new(pNext : nativeint, maxPushDescriptors : uint32) = { - sType = 1000023007u + sType = 1000080000u pNext = pNext - updateSequenceCount = updateSequenceCount + maxPushDescriptors = maxPushDescriptors } - new(updateSequenceCount : uint32) = - VkVideoSessionParametersUpdateInfoKHR(Unchecked.defaultof, updateSequenceCount) + new(maxPushDescriptors : uint32) = + VkPhysicalDevicePushDescriptorPropertiesKHR(Unchecked.defaultof, maxPushDescriptors) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.updateSequenceCount = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.maxPushDescriptors = Unchecked.defaultof static member Empty = - VkVideoSessionParametersUpdateInfoKHR(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDevicePushDescriptorPropertiesKHR(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "updateSequenceCount = %A" x.updateSequenceCount - ] |> sprintf "VkVideoSessionParametersUpdateInfoKHR { %s }" + sprintf "maxPushDescriptors = %A" x.maxPushDescriptors + ] |> sprintf "VkPhysicalDevicePushDescriptorPropertiesKHR { %s }" end [] module EnumExtensions = - type VkObjectType with - /// VkVideoSessionKHR - static member inline VideoSessionKhr = unbox 1000023000 - /// VkVideoSessionParametersKHR - static member inline VideoSessionParametersKhr = unbox 1000023001 - type VkQueryResultFlags with - static member inline WithStatusBitKhr = unbox 0x00000010 - type VkQueryType with - static member inline ResultStatusOnlyKhr = unbox 1000023000 - type VkResult with - static member inline ErrorImageUsageNotSupportedKhr = unbox -1000023000 - static member inline ErrorVideoPictureLayoutNotSupportedKhr = unbox -1000023001 - static member inline ErrorVideoProfileOperationNotSupportedKhr = unbox -1000023002 - static member inline ErrorVideoProfileFormatNotSupportedKhr = unbox -1000023003 - static member inline ErrorVideoProfileCodecNotSupportedKhr = unbox -1000023004 - static member inline ErrorVideoStdVersionNotSupportedKhr = unbox -1000023005 + type VkDescriptorSetLayoutCreateFlags with + /// Descriptors are pushed via flink:vkCmdPushDescriptorSetKHR + static member inline PushDescriptorBitKhr = unbox 0x00000001 module VkRaw = [] - type VkGetPhysicalDeviceVideoCapabilitiesKHRDel = delegate of VkPhysicalDevice * nativeptr * nativeptr -> VkResult - [] - type VkGetPhysicalDeviceVideoFormatPropertiesKHRDel = delegate of VkPhysicalDevice * nativeptr * nativeptr * nativeptr -> VkResult - [] - type VkCreateVideoSessionKHRDel = delegate of VkDevice * nativeptr * nativeptr * nativeptr -> VkResult - [] - type VkDestroyVideoSessionKHRDel = delegate of VkDevice * VkVideoSessionKHR * nativeptr -> unit - [] - type VkGetVideoSessionMemoryRequirementsKHRDel = delegate of VkDevice * VkVideoSessionKHR * nativeptr * nativeptr -> VkResult - [] - type VkBindVideoSessionMemoryKHRDel = delegate of VkDevice * VkVideoSessionKHR * uint32 * nativeptr -> VkResult - [] - type VkCreateVideoSessionParametersKHRDel = delegate of VkDevice * nativeptr * nativeptr * nativeptr -> VkResult - [] - type VkUpdateVideoSessionParametersKHRDel = delegate of VkDevice * VkVideoSessionParametersKHR * nativeptr -> VkResult - [] - type VkDestroyVideoSessionParametersKHRDel = delegate of VkDevice * VkVideoSessionParametersKHR * nativeptr -> unit + type VkCmdPushDescriptorSetKHRDel = delegate of VkCommandBuffer * VkPipelineBindPoint * VkPipelineLayout * uint32 * uint32 * nativeptr -> unit + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRPushDescriptor") + static let s_vkCmdPushDescriptorSetKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdPushDescriptorSetKHR" + static do Report.End(3) |> ignore + static member vkCmdPushDescriptorSetKHR = s_vkCmdPushDescriptorSetKHRDel + let vkCmdPushDescriptorSetKHR(commandBuffer : VkCommandBuffer, pipelineBindPoint : VkPipelineBindPoint, layout : VkPipelineLayout, set : uint32, descriptorWriteCount : uint32, pDescriptorWrites : nativeptr) = Loader.vkCmdPushDescriptorSetKHR.Invoke(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) + + [] + module ``Vulkan11`` = + [] + module EnumExtensions = + type Vulkan11.VkDescriptorUpdateTemplateType with + /// Create descriptor update template for pushed descriptor updates + static member inline PushDescriptorsKhr = unbox 1 + + module VkRaw = + [] + type VkCmdPushDescriptorSetWithTemplateKHRDel = delegate of VkCommandBuffer * Vulkan11.VkDescriptorUpdateTemplate * VkPipelineLayout * uint32 * nativeint -> unit + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRPushDescriptor -> Vulkan11") + static let s_vkCmdPushDescriptorSetWithTemplateKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdPushDescriptorSetWithTemplateKHR" + static do Report.End(3) |> ignore + static member vkCmdPushDescriptorSetWithTemplateKHR = s_vkCmdPushDescriptorSetWithTemplateKHRDel + let vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer : VkCommandBuffer, descriptorUpdateTemplate : Vulkan11.VkDescriptorUpdateTemplate, layout : VkPipelineLayout, set : uint32, pData : nativeint) = Loader.vkCmdPushDescriptorSetWithTemplateKHR.Invoke(commandBuffer, descriptorUpdateTemplate, layout, set, pData) + + [] + module ``KHRDescriptorUpdateTemplate`` = + [] + module EnumExtensions = + type Vulkan11.VkDescriptorUpdateTemplateType with + /// Create descriptor update template for pushed descriptor updates + static member inline PushDescriptorsKhr = unbox 1 + + module VkRaw = + let vkCmdPushDescriptorSetWithTemplateKHR = VkRaw.vkCmdPushDescriptorSetWithTemplateKHR + +/// Promoted to Vulkan11. +module KHRDescriptorUpdateTemplate = + let Type = ExtensionType.Device + let Name = "VK_KHR_descriptor_update_template" + let Number = 86 + + type VkDescriptorUpdateTemplateKHR = Vulkan11.VkDescriptorUpdateTemplate + type VkDescriptorUpdateTemplateCreateFlagsKHR = VkDescriptorUpdateTemplateCreateFlags + type VkDescriptorUpdateTemplateTypeKHR = Vulkan11.VkDescriptorUpdateTemplateType + + type VkDescriptorUpdateTemplateCreateInfoKHR = Vulkan11.VkDescriptorUpdateTemplateCreateInfo + + type VkDescriptorUpdateTemplateEntryKHR = Vulkan11.VkDescriptorUpdateTemplateEntry + + + [] + module EnumExtensions = + type Vulkan11.VkDescriptorUpdateTemplateType with + static member inline DescriptorSetKhr = unbox 0 + type VkObjectType with + static member inline DescriptorUpdateTemplateKhr = unbox 1000085000 + + module VkRaw = [] - type VkCmdBeginVideoCodingKHRDel = delegate of VkCommandBuffer * nativeptr -> unit + type VkCreateDescriptorUpdateTemplateKHRDel = delegate of VkDevice * nativeptr * nativeptr * nativeptr -> VkResult [] - type VkCmdEndVideoCodingKHRDel = delegate of VkCommandBuffer * nativeptr -> unit + type VkDestroyDescriptorUpdateTemplateKHRDel = delegate of VkDevice * Vulkan11.VkDescriptorUpdateTemplate * nativeptr -> unit [] - type VkCmdControlVideoCodingKHRDel = delegate of VkCommandBuffer * nativeptr -> unit + type VkUpdateDescriptorSetWithTemplateKHRDel = delegate of VkDevice * VkDescriptorSet * Vulkan11.VkDescriptorUpdateTemplate * nativeint -> unit [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRVideoQueue") - static let s_vkGetPhysicalDeviceVideoCapabilitiesKHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceVideoCapabilitiesKHR" - static let s_vkGetPhysicalDeviceVideoFormatPropertiesKHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceVideoFormatPropertiesKHR" - static let s_vkCreateVideoSessionKHRDel = VkRaw.vkImportInstanceDelegate "vkCreateVideoSessionKHR" - static let s_vkDestroyVideoSessionKHRDel = VkRaw.vkImportInstanceDelegate "vkDestroyVideoSessionKHR" - static let s_vkGetVideoSessionMemoryRequirementsKHRDel = VkRaw.vkImportInstanceDelegate "vkGetVideoSessionMemoryRequirementsKHR" - static let s_vkBindVideoSessionMemoryKHRDel = VkRaw.vkImportInstanceDelegate "vkBindVideoSessionMemoryKHR" - static let s_vkCreateVideoSessionParametersKHRDel = VkRaw.vkImportInstanceDelegate "vkCreateVideoSessionParametersKHR" - static let s_vkUpdateVideoSessionParametersKHRDel = VkRaw.vkImportInstanceDelegate "vkUpdateVideoSessionParametersKHR" - static let s_vkDestroyVideoSessionParametersKHRDel = VkRaw.vkImportInstanceDelegate "vkDestroyVideoSessionParametersKHR" - static let s_vkCmdBeginVideoCodingKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdBeginVideoCodingKHR" - static let s_vkCmdEndVideoCodingKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdEndVideoCodingKHR" - static let s_vkCmdControlVideoCodingKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdControlVideoCodingKHR" + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRDescriptorUpdateTemplate") + static let s_vkCreateDescriptorUpdateTemplateKHRDel = VkRaw.vkImportInstanceDelegate "vkCreateDescriptorUpdateTemplateKHR" + static let s_vkDestroyDescriptorUpdateTemplateKHRDel = VkRaw.vkImportInstanceDelegate "vkDestroyDescriptorUpdateTemplateKHR" + static let s_vkUpdateDescriptorSetWithTemplateKHRDel = VkRaw.vkImportInstanceDelegate "vkUpdateDescriptorSetWithTemplateKHR" static do Report.End(3) |> ignore - static member vkGetPhysicalDeviceVideoCapabilitiesKHR = s_vkGetPhysicalDeviceVideoCapabilitiesKHRDel - static member vkGetPhysicalDeviceVideoFormatPropertiesKHR = s_vkGetPhysicalDeviceVideoFormatPropertiesKHRDel - static member vkCreateVideoSessionKHR = s_vkCreateVideoSessionKHRDel - static member vkDestroyVideoSessionKHR = s_vkDestroyVideoSessionKHRDel - static member vkGetVideoSessionMemoryRequirementsKHR = s_vkGetVideoSessionMemoryRequirementsKHRDel - static member vkBindVideoSessionMemoryKHR = s_vkBindVideoSessionMemoryKHRDel - static member vkCreateVideoSessionParametersKHR = s_vkCreateVideoSessionParametersKHRDel - static member vkUpdateVideoSessionParametersKHR = s_vkUpdateVideoSessionParametersKHRDel - static member vkDestroyVideoSessionParametersKHR = s_vkDestroyVideoSessionParametersKHRDel - static member vkCmdBeginVideoCodingKHR = s_vkCmdBeginVideoCodingKHRDel - static member vkCmdEndVideoCodingKHR = s_vkCmdEndVideoCodingKHRDel - static member vkCmdControlVideoCodingKHR = s_vkCmdControlVideoCodingKHRDel - let vkGetPhysicalDeviceVideoCapabilitiesKHR(physicalDevice : VkPhysicalDevice, pVideoProfile : nativeptr, pCapabilities : nativeptr) = Loader.vkGetPhysicalDeviceVideoCapabilitiesKHR.Invoke(physicalDevice, pVideoProfile, pCapabilities) - let vkGetPhysicalDeviceVideoFormatPropertiesKHR(physicalDevice : VkPhysicalDevice, pVideoFormatInfo : nativeptr, pVideoFormatPropertyCount : nativeptr, pVideoFormatProperties : nativeptr) = Loader.vkGetPhysicalDeviceVideoFormatPropertiesKHR.Invoke(physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties) - let vkCreateVideoSessionKHR(device : VkDevice, pCreateInfo : nativeptr, pAllocator : nativeptr, pVideoSession : nativeptr) = Loader.vkCreateVideoSessionKHR.Invoke(device, pCreateInfo, pAllocator, pVideoSession) - let vkDestroyVideoSessionKHR(device : VkDevice, videoSession : VkVideoSessionKHR, pAllocator : nativeptr) = Loader.vkDestroyVideoSessionKHR.Invoke(device, videoSession, pAllocator) - let vkGetVideoSessionMemoryRequirementsKHR(device : VkDevice, videoSession : VkVideoSessionKHR, pVideoSessionMemoryRequirementsCount : nativeptr, pVideoSessionMemoryRequirements : nativeptr) = Loader.vkGetVideoSessionMemoryRequirementsKHR.Invoke(device, videoSession, pVideoSessionMemoryRequirementsCount, pVideoSessionMemoryRequirements) - let vkBindVideoSessionMemoryKHR(device : VkDevice, videoSession : VkVideoSessionKHR, videoSessionBindMemoryCount : uint32, pVideoSessionBindMemories : nativeptr) = Loader.vkBindVideoSessionMemoryKHR.Invoke(device, videoSession, videoSessionBindMemoryCount, pVideoSessionBindMemories) - let vkCreateVideoSessionParametersKHR(device : VkDevice, pCreateInfo : nativeptr, pAllocator : nativeptr, pVideoSessionParameters : nativeptr) = Loader.vkCreateVideoSessionParametersKHR.Invoke(device, pCreateInfo, pAllocator, pVideoSessionParameters) - let vkUpdateVideoSessionParametersKHR(device : VkDevice, videoSessionParameters : VkVideoSessionParametersKHR, pUpdateInfo : nativeptr) = Loader.vkUpdateVideoSessionParametersKHR.Invoke(device, videoSessionParameters, pUpdateInfo) - let vkDestroyVideoSessionParametersKHR(device : VkDevice, videoSessionParameters : VkVideoSessionParametersKHR, pAllocator : nativeptr) = Loader.vkDestroyVideoSessionParametersKHR.Invoke(device, videoSessionParameters, pAllocator) - let vkCmdBeginVideoCodingKHR(commandBuffer : VkCommandBuffer, pBeginInfo : nativeptr) = Loader.vkCmdBeginVideoCodingKHR.Invoke(commandBuffer, pBeginInfo) - let vkCmdEndVideoCodingKHR(commandBuffer : VkCommandBuffer, pEndCodingInfo : nativeptr) = Loader.vkCmdEndVideoCodingKHR.Invoke(commandBuffer, pEndCodingInfo) - let vkCmdControlVideoCodingKHR(commandBuffer : VkCommandBuffer, pCodingControlInfo : nativeptr) = Loader.vkCmdControlVideoCodingKHR.Invoke(commandBuffer, pCodingControlInfo) - -module KHRVideoDecodeQueue = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - open KHRSynchronization2 - open KHRVideoQueue - let Name = "VK_KHR_video_decode_queue" - let Number = 25 + static member vkCreateDescriptorUpdateTemplateKHR = s_vkCreateDescriptorUpdateTemplateKHRDel + static member vkDestroyDescriptorUpdateTemplateKHR = s_vkDestroyDescriptorUpdateTemplateKHRDel + static member vkUpdateDescriptorSetWithTemplateKHR = s_vkUpdateDescriptorSetWithTemplateKHRDel + let vkCreateDescriptorUpdateTemplateKHR(device : VkDevice, pCreateInfo : nativeptr, pAllocator : nativeptr, pDescriptorUpdateTemplate : nativeptr) = Loader.vkCreateDescriptorUpdateTemplateKHR.Invoke(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) + let vkDestroyDescriptorUpdateTemplateKHR(device : VkDevice, descriptorUpdateTemplate : Vulkan11.VkDescriptorUpdateTemplate, pAllocator : nativeptr) = Loader.vkDestroyDescriptorUpdateTemplateKHR.Invoke(device, descriptorUpdateTemplate, pAllocator) + let vkUpdateDescriptorSetWithTemplateKHR(device : VkDevice, descriptorSet : VkDescriptorSet, descriptorUpdateTemplate : Vulkan11.VkDescriptorUpdateTemplate, pData : nativeint) = Loader.vkUpdateDescriptorSetWithTemplateKHR.Invoke(device, descriptorSet, descriptorUpdateTemplate, pData) - let Required = [ KHRSynchronization2.Name; KHRVideoQueue.Name ] + [] + module ``KHRPushDescriptor`` = + [] + module EnumExtensions = + type Vulkan11.VkDescriptorUpdateTemplateType with + /// Create descriptor update template for pushed descriptor updates + static member inline PushDescriptorsKhr = unbox 1 + module VkRaw = + let vkCmdPushDescriptorSetWithTemplateKHR = KHRPushDescriptor.``Vulkan11``.VkRaw.vkCmdPushDescriptorSetWithTemplateKHR - [] - type VkVideoDecodeCapabilityFlagsKHR = - | All = 3 - | Default = 0 - | DpbAndOutputCoincideBit = 0x00000001 - | DpbAndOutputDistinctBit = 0x00000002 + [] + module ``EXTDebugReport`` = + [] + module EnumExtensions = + type EXTDebugReport.VkDebugReportObjectTypeEXT with + static member inline DescriptorUpdateTemplateKhr = unbox 1000085000 - [] - type VkVideoDecodeFlagsKHR = - | All = 1 - | Default = 0 - | Reserved0Bit = 0x00000001 +/// Requires KHRSwapchain, KHRDisplay. +module KHRDisplaySwapchain = + let Type = ExtensionType.Device + let Name = "VK_KHR_display_swapchain" + let Number = 4 [] - type VkVideoDecodeCapabilitiesKHR = + type VkDisplayPresentInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public flags : VkVideoDecodeCapabilityFlagsKHR + val mutable public srcRect : VkRect2D + val mutable public dstRect : VkRect2D + val mutable public persistent : VkBool32 - new(pNext : nativeint, flags : VkVideoDecodeCapabilityFlagsKHR) = + new(pNext : nativeint, srcRect : VkRect2D, dstRect : VkRect2D, persistent : VkBool32) = { - sType = 1000024001u + sType = 1000003000u pNext = pNext - flags = flags + srcRect = srcRect + dstRect = dstRect + persistent = persistent } - new(flags : VkVideoDecodeCapabilityFlagsKHR) = - VkVideoDecodeCapabilitiesKHR(Unchecked.defaultof, flags) + new(srcRect : VkRect2D, dstRect : VkRect2D, persistent : VkBool32) = + VkDisplayPresentInfoKHR(Unchecked.defaultof, srcRect, dstRect, persistent) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.srcRect = Unchecked.defaultof && x.dstRect = Unchecked.defaultof && x.persistent = Unchecked.defaultof static member Empty = - VkVideoDecodeCapabilitiesKHR(Unchecked.defaultof, Unchecked.defaultof) + VkDisplayPresentInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "flags = %A" x.flags - ] |> sprintf "VkVideoDecodeCapabilitiesKHR { %s }" + sprintf "srcRect = %A" x.srcRect + sprintf "dstRect = %A" x.dstRect + sprintf "persistent = %A" x.persistent + ] |> sprintf "VkDisplayPresentInfoKHR { %s }" end + + [] + module EnumExtensions = + type VkResult with + static member inline ErrorIncompatibleDisplayKhr = unbox -1000003001 + + module VkRaw = + [] + type VkCreateSharedSwapchainsKHRDel = delegate of VkDevice * uint32 * nativeptr * nativeptr * nativeptr -> VkResult + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRDisplaySwapchain") + static let s_vkCreateSharedSwapchainsKHRDel = VkRaw.vkImportInstanceDelegate "vkCreateSharedSwapchainsKHR" + static do Report.End(3) |> ignore + static member vkCreateSharedSwapchainsKHR = s_vkCreateSharedSwapchainsKHRDel + let vkCreateSharedSwapchainsKHR(device : VkDevice, swapchainCount : uint32, pCreateInfos : nativeptr, pAllocator : nativeptr, pSwapchains : nativeptr) = Loader.vkCreateSharedSwapchainsKHR.Invoke(device, swapchainCount, pCreateInfos, pAllocator, pSwapchains) + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +/// Promoted to Vulkan12. +module KHRDriverProperties = + let Type = ExtensionType.Device + let Name = "VK_KHR_driver_properties" + let Number = 197 + + type VkDriverIdKHR = Vulkan12.VkDriverId + + type VkConformanceVersionKHR = Vulkan12.VkConformanceVersion + + type VkPhysicalDeviceDriverPropertiesKHR = Vulkan12.VkPhysicalDeviceDriverProperties + + + [] + module EnumExtensions = + type Vulkan12.VkDriverId with + static member inline AmdProprietaryKhr = unbox 1 + static member inline AmdOpenSourceKhr = unbox 2 + static member inline MesaRadvKhr = unbox 3 + static member inline NvidiaProprietaryKhr = unbox 4 + static member inline IntelProprietaryWindowsKhr = unbox 5 + static member inline IntelOpenSourceMesaKhr = unbox 6 + static member inline ImaginationProprietaryKhr = unbox 7 + static member inline QualcommProprietaryKhr = unbox 8 + static member inline ArmProprietaryKhr = unbox 9 + static member inline GoogleSwiftshaderKhr = unbox 10 + static member inline GgpProprietaryKhr = unbox 11 + static member inline BroadcomProprietaryKhr = unbox 12 + + +/// Requires KHRDynamicRendering | Vulkan13. +module KHRDynamicRenderingLocalRead = + let Type = ExtensionType.Device + let Name = "VK_KHR_dynamic_rendering_local_read" + let Number = 233 + [] - type VkVideoDecodeInfoKHR = + type VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public flags : VkVideoDecodeFlagsKHR - val mutable public srcBuffer : VkBuffer - val mutable public srcBufferOffset : VkDeviceSize - val mutable public srcBufferRange : VkDeviceSize - val mutable public dstPictureResource : VkVideoPictureResourceKHR - val mutable public pSetupReferenceSlot : nativeptr - val mutable public referenceSlotCount : uint32 - val mutable public pReferenceSlots : nativeptr + val mutable public dynamicRenderingLocalRead : VkBool32 - new(pNext : nativeint, flags : VkVideoDecodeFlagsKHR, srcBuffer : VkBuffer, srcBufferOffset : VkDeviceSize, srcBufferRange : VkDeviceSize, dstPictureResource : VkVideoPictureResourceKHR, pSetupReferenceSlot : nativeptr, referenceSlotCount : uint32, pReferenceSlots : nativeptr) = + new(pNext : nativeint, dynamicRenderingLocalRead : VkBool32) = { - sType = 1000024000u + sType = 1000232000u pNext = pNext - flags = flags - srcBuffer = srcBuffer - srcBufferOffset = srcBufferOffset - srcBufferRange = srcBufferRange - dstPictureResource = dstPictureResource - pSetupReferenceSlot = pSetupReferenceSlot - referenceSlotCount = referenceSlotCount - pReferenceSlots = pReferenceSlots + dynamicRenderingLocalRead = dynamicRenderingLocalRead } - new(flags : VkVideoDecodeFlagsKHR, srcBuffer : VkBuffer, srcBufferOffset : VkDeviceSize, srcBufferRange : VkDeviceSize, dstPictureResource : VkVideoPictureResourceKHR, pSetupReferenceSlot : nativeptr, referenceSlotCount : uint32, pReferenceSlots : nativeptr) = - VkVideoDecodeInfoKHR(Unchecked.defaultof, flags, srcBuffer, srcBufferOffset, srcBufferRange, dstPictureResource, pSetupReferenceSlot, referenceSlotCount, pReferenceSlots) + new(dynamicRenderingLocalRead : VkBool32) = + VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR(Unchecked.defaultof, dynamicRenderingLocalRead) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.srcBuffer = Unchecked.defaultof && x.srcBufferOffset = Unchecked.defaultof && x.srcBufferRange = Unchecked.defaultof && x.dstPictureResource = Unchecked.defaultof && x.pSetupReferenceSlot = Unchecked.defaultof> && x.referenceSlotCount = Unchecked.defaultof && x.pReferenceSlots = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.dynamicRenderingLocalRead = Unchecked.defaultof static member Empty = - VkVideoDecodeInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>) + VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "flags = %A" x.flags - sprintf "srcBuffer = %A" x.srcBuffer - sprintf "srcBufferOffset = %A" x.srcBufferOffset - sprintf "srcBufferRange = %A" x.srcBufferRange - sprintf "dstPictureResource = %A" x.dstPictureResource - sprintf "pSetupReferenceSlot = %A" x.pSetupReferenceSlot - sprintf "referenceSlotCount = %A" x.referenceSlotCount - sprintf "pReferenceSlots = %A" x.pReferenceSlots - ] |> sprintf "VkVideoDecodeInfoKHR { %s }" + sprintf "dynamicRenderingLocalRead = %A" x.dynamicRenderingLocalRead + ] |> sprintf "VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR { %s }" end - - [] - module EnumExtensions = - type VkAccessFlags2 with - static member inline Access2VideoDecodeReadBitKhr = unbox 0x00000008 - static member inline Access2VideoDecodeWriteBitKhr = unbox 0x00000010 - type VkBufferUsageFlags with - static member inline VideoDecodeSrcBitKhr = unbox 0x00002000 - static member inline VideoDecodeDstBitKhr = unbox 0x00004000 - type VkFormatFeatureFlags with - static member inline VideoDecodeOutputBitKhr = unbox 0x02000000 - static member inline VideoDecodeDpbBitKhr = unbox 0x04000000 - type VkImageLayout with - static member inline VideoDecodeDstKhr = unbox 1000024000 - static member inline VideoDecodeSrcKhr = unbox 1000024001 - static member inline VideoDecodeDpbKhr = unbox 1000024002 - type VkImageUsageFlags with - static member inline VideoDecodeDstBitKhr = unbox 0x00000400 - static member inline VideoDecodeSrcBitKhr = unbox 0x00000800 - static member inline VideoDecodeDpbBitKhr = unbox 0x00001000 - type VkPipelineStageFlags2 with - static member inline PipelineStage2VideoDecodeBitKhr = unbox 0x04000000 - type VkQueueFlags with - static member inline VideoDecodeBitKhr = unbox 0x00000020 - - module VkRaw = - [] - type VkCmdDecodeVideoKHRDel = delegate of VkCommandBuffer * nativeptr -> unit - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRVideoDecodeQueue") - static let s_vkCmdDecodeVideoKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdDecodeVideoKHR" - static do Report.End(3) |> ignore - static member vkCmdDecodeVideoKHR = s_vkCmdDecodeVideoKHRDel - let vkCmdDecodeVideoKHR(commandBuffer : VkCommandBuffer, pFrameInfo : nativeptr) = Loader.vkCmdDecodeVideoKHR.Invoke(commandBuffer, pFrameInfo) - - module KHRFormatFeatureFlags2 = - [] - module EnumExtensions = - type VkFormatFeatureFlags2 with - static member inline FormatFeature2VideoDecodeOutputBitKhr = unbox 0x02000000 - static member inline FormatFeature2VideoDecodeDpbBitKhr = unbox 0x04000000 - - -module EXTVideoDecodeH264 = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - open KHRSynchronization2 - open KHRVideoDecodeQueue - open KHRVideoQueue - let Name = "VK_EXT_video_decode_h264" - let Number = 41 - - let Required = [ KHRVideoDecodeQueue.Name ] - - - [] - type VkVideoDecodeH264PictureLayoutFlagsEXT = - | All = 3 - | Progressive = 0 - | InterlacedInterleavedLinesBit = 0x00000001 - | InterlacedSeparatePlanesBit = 0x00000002 - - [] - type VkVideoDecodeH264CapabilitiesEXT = + type VkRenderingAttachmentLocationInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public maxLevel : nativeint - val mutable public fieldOffsetGranularity : VkOffset2D + val mutable public colorAttachmentCount : uint32 + val mutable public pColorAttachmentLocations : nativeptr - new(pNext : nativeint, maxLevel : nativeint, fieldOffsetGranularity : VkOffset2D) = + new(pNext : nativeint, colorAttachmentCount : uint32, pColorAttachmentLocations : nativeptr) = { - sType = 1000040000u + sType = 1000232001u pNext = pNext - maxLevel = maxLevel - fieldOffsetGranularity = fieldOffsetGranularity + colorAttachmentCount = colorAttachmentCount + pColorAttachmentLocations = pColorAttachmentLocations } - new(maxLevel : nativeint, fieldOffsetGranularity : VkOffset2D) = - VkVideoDecodeH264CapabilitiesEXT(Unchecked.defaultof, maxLevel, fieldOffsetGranularity) + new(colorAttachmentCount : uint32, pColorAttachmentLocations : nativeptr) = + VkRenderingAttachmentLocationInfoKHR(Unchecked.defaultof, colorAttachmentCount, pColorAttachmentLocations) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.maxLevel = Unchecked.defaultof && x.fieldOffsetGranularity = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.colorAttachmentCount = Unchecked.defaultof && x.pColorAttachmentLocations = Unchecked.defaultof> static member Empty = - VkVideoDecodeH264CapabilitiesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkRenderingAttachmentLocationInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "maxLevel = %A" x.maxLevel - sprintf "fieldOffsetGranularity = %A" x.fieldOffsetGranularity - ] |> sprintf "VkVideoDecodeH264CapabilitiesEXT { %s }" + sprintf "colorAttachmentCount = %A" x.colorAttachmentCount + sprintf "pColorAttachmentLocations = %A" x.pColorAttachmentLocations + ] |> sprintf "VkRenderingAttachmentLocationInfoKHR { %s }" end [] - type VkVideoDecodeH264DpbSlotInfoEXT = + type VkRenderingInputAttachmentIndexInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public pStdReferenceInfo : nativeptr + val mutable public colorAttachmentCount : uint32 + val mutable public pColorAttachmentInputIndices : nativeptr + val mutable public pDepthInputAttachmentIndex : nativeptr + val mutable public pStencilInputAttachmentIndex : nativeptr - new(pNext : nativeint, pStdReferenceInfo : nativeptr) = + new(pNext : nativeint, colorAttachmentCount : uint32, pColorAttachmentInputIndices : nativeptr, pDepthInputAttachmentIndex : nativeptr, pStencilInputAttachmentIndex : nativeptr) = { - sType = 1000040006u + sType = 1000232002u pNext = pNext - pStdReferenceInfo = pStdReferenceInfo + colorAttachmentCount = colorAttachmentCount + pColorAttachmentInputIndices = pColorAttachmentInputIndices + pDepthInputAttachmentIndex = pDepthInputAttachmentIndex + pStencilInputAttachmentIndex = pStencilInputAttachmentIndex } - new(pStdReferenceInfo : nativeptr) = - VkVideoDecodeH264DpbSlotInfoEXT(Unchecked.defaultof, pStdReferenceInfo) + new(colorAttachmentCount : uint32, pColorAttachmentInputIndices : nativeptr, pDepthInputAttachmentIndex : nativeptr, pStencilInputAttachmentIndex : nativeptr) = + VkRenderingInputAttachmentIndexInfoKHR(Unchecked.defaultof, colorAttachmentCount, pColorAttachmentInputIndices, pDepthInputAttachmentIndex, pStencilInputAttachmentIndex) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.pStdReferenceInfo = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.colorAttachmentCount = Unchecked.defaultof && x.pColorAttachmentInputIndices = Unchecked.defaultof> && x.pDepthInputAttachmentIndex = Unchecked.defaultof> && x.pStencilInputAttachmentIndex = Unchecked.defaultof> static member Empty = - VkVideoDecodeH264DpbSlotInfoEXT(Unchecked.defaultof, Unchecked.defaultof>) + VkRenderingInputAttachmentIndexInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof>, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "pStdReferenceInfo = %A" x.pStdReferenceInfo - ] |> sprintf "VkVideoDecodeH264DpbSlotInfoEXT { %s }" + sprintf "colorAttachmentCount = %A" x.colorAttachmentCount + sprintf "pColorAttachmentInputIndices = %A" x.pColorAttachmentInputIndices + sprintf "pDepthInputAttachmentIndex = %A" x.pDepthInputAttachmentIndex + sprintf "pStencilInputAttachmentIndex = %A" x.pStencilInputAttachmentIndex + ] |> sprintf "VkRenderingInputAttachmentIndexInfoKHR { %s }" end + + [] + module EnumExtensions = + type VkImageLayout with + static member inline RenderingLocalReadKhr = unbox 1000232000 + + module VkRaw = + [] + type VkCmdSetRenderingAttachmentLocationsKHRDel = delegate of VkCommandBuffer * nativeptr -> unit + [] + type VkCmdSetRenderingInputAttachmentIndicesKHRDel = delegate of VkCommandBuffer * nativeptr -> unit + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRDynamicRenderingLocalRead") + static let s_vkCmdSetRenderingAttachmentLocationsKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdSetRenderingAttachmentLocationsKHR" + static let s_vkCmdSetRenderingInputAttachmentIndicesKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdSetRenderingInputAttachmentIndicesKHR" + static do Report.End(3) |> ignore + static member vkCmdSetRenderingAttachmentLocationsKHR = s_vkCmdSetRenderingAttachmentLocationsKHRDel + static member vkCmdSetRenderingInputAttachmentIndicesKHR = s_vkCmdSetRenderingInputAttachmentIndicesKHRDel + let vkCmdSetRenderingAttachmentLocationsKHR(commandBuffer : VkCommandBuffer, pLocationInfo : nativeptr) = Loader.vkCmdSetRenderingAttachmentLocationsKHR.Invoke(commandBuffer, pLocationInfo) + let vkCmdSetRenderingInputAttachmentIndicesKHR(commandBuffer : VkCommandBuffer, pLocationInfo : nativeptr) = Loader.vkCmdSetRenderingInputAttachmentIndicesKHR.Invoke(commandBuffer, pLocationInfo) + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +/// Promoted to Vulkan11. +module KHRExternalFenceCapabilities = + let Type = ExtensionType.Instance + let Name = "VK_KHR_external_fence_capabilities" + let Number = 113 + + type VkExternalFenceHandleTypeFlagsKHR = Vulkan11.VkExternalFenceHandleTypeFlags + type VkExternalFenceFeatureFlagsKHR = Vulkan11.VkExternalFenceFeatureFlags + + type VkExternalFencePropertiesKHR = Vulkan11.VkExternalFenceProperties + + type VkPhysicalDeviceExternalFenceInfoKHR = Vulkan11.VkPhysicalDeviceExternalFenceInfo + + type VkPhysicalDeviceIDPropertiesKHR = KHRExternalMemoryCapabilities.VkPhysicalDeviceIDPropertiesKHR + + + [] + module EnumExtensions = + type Vulkan11.VkExternalFenceFeatureFlags with + static member inline ExportableBitKhr = unbox 0x00000001 + static member inline ImportableBitKhr = unbox 0x00000002 + type Vulkan11.VkExternalFenceHandleTypeFlags with + static member inline OpaqueFdBitKhr = unbox 0x00000001 + static member inline OpaqueWin32BitKhr = unbox 0x00000002 + static member inline OpaqueWin32KmtBitKhr = unbox 0x00000004 + static member inline SyncFdBitKhr = unbox 0x00000008 + + module VkRaw = + [] + type VkGetPhysicalDeviceExternalFencePropertiesKHRDel = delegate of VkPhysicalDevice * nativeptr * nativeptr -> unit + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRExternalFenceCapabilities") + static let s_vkGetPhysicalDeviceExternalFencePropertiesKHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceExternalFencePropertiesKHR" + static do Report.End(3) |> ignore + static member vkGetPhysicalDeviceExternalFencePropertiesKHR = s_vkGetPhysicalDeviceExternalFencePropertiesKHRDel + let vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice : VkPhysicalDevice, pExternalFenceInfo : nativeptr, pExternalFenceProperties : nativeptr) = Loader.vkGetPhysicalDeviceExternalFencePropertiesKHR.Invoke(physicalDevice, pExternalFenceInfo, pExternalFenceProperties) + +/// Requires KHRExternalFenceCapabilities. +/// Promoted to Vulkan11. +module KHRExternalFence = + let Type = ExtensionType.Device + let Name = "VK_KHR_external_fence" + let Number = 114 + + type VkFenceImportFlagsKHR = Vulkan11.VkFenceImportFlags + + type VkExportFenceCreateInfoKHR = Vulkan11.VkExportFenceCreateInfo + + + [] + module EnumExtensions = + type Vulkan11.VkFenceImportFlags with + static member inline TemporaryBitKhr = unbox 0x00000001 + + +/// Requires KHRExternalFence | Vulkan11. +module KHRExternalFenceFd = + let Type = ExtensionType.Device + let Name = "VK_KHR_external_fence_fd" + let Number = 116 + [] - type VkVideoDecodeH264MvcEXT = + type VkFenceGetFdInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public pStdMvc : nativeptr + val mutable public fence : VkFence + val mutable public handleType : Vulkan11.VkExternalFenceHandleTypeFlags - new(pNext : nativeint, pStdMvc : nativeptr) = + new(pNext : nativeint, fence : VkFence, handleType : Vulkan11.VkExternalFenceHandleTypeFlags) = { - sType = 1000040002u + sType = 1000115001u pNext = pNext - pStdMvc = pStdMvc + fence = fence + handleType = handleType } - new(pStdMvc : nativeptr) = - VkVideoDecodeH264MvcEXT(Unchecked.defaultof, pStdMvc) + new(fence : VkFence, handleType : Vulkan11.VkExternalFenceHandleTypeFlags) = + VkFenceGetFdInfoKHR(Unchecked.defaultof, fence, handleType) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.pStdMvc = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.fence = Unchecked.defaultof && x.handleType = Unchecked.defaultof static member Empty = - VkVideoDecodeH264MvcEXT(Unchecked.defaultof, Unchecked.defaultof>) + VkFenceGetFdInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "pStdMvc = %A" x.pStdMvc - ] |> sprintf "VkVideoDecodeH264MvcEXT { %s }" + sprintf "fence = %A" x.fence + sprintf "handleType = %A" x.handleType + ] |> sprintf "VkFenceGetFdInfoKHR { %s }" end [] - type VkVideoDecodeH264PictureInfoEXT = + type VkImportFenceFdInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public pStdPictureInfo : nativeptr - val mutable public slicesCount : uint32 - val mutable public pSlicesDataOffsets : nativeptr + val mutable public fence : VkFence + val mutable public flags : Vulkan11.VkFenceImportFlags + val mutable public handleType : Vulkan11.VkExternalFenceHandleTypeFlags + val mutable public fd : int32 - new(pNext : nativeint, pStdPictureInfo : nativeptr, slicesCount : uint32, pSlicesDataOffsets : nativeptr) = + new(pNext : nativeint, fence : VkFence, flags : Vulkan11.VkFenceImportFlags, handleType : Vulkan11.VkExternalFenceHandleTypeFlags, fd : int32) = { - sType = 1000040001u + sType = 1000115000u pNext = pNext - pStdPictureInfo = pStdPictureInfo - slicesCount = slicesCount - pSlicesDataOffsets = pSlicesDataOffsets + fence = fence + flags = flags + handleType = handleType + fd = fd } - new(pStdPictureInfo : nativeptr, slicesCount : uint32, pSlicesDataOffsets : nativeptr) = - VkVideoDecodeH264PictureInfoEXT(Unchecked.defaultof, pStdPictureInfo, slicesCount, pSlicesDataOffsets) + new(fence : VkFence, flags : Vulkan11.VkFenceImportFlags, handleType : Vulkan11.VkExternalFenceHandleTypeFlags, fd : int32) = + VkImportFenceFdInfoKHR(Unchecked.defaultof, fence, flags, handleType, fd) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.pStdPictureInfo = Unchecked.defaultof> && x.slicesCount = Unchecked.defaultof && x.pSlicesDataOffsets = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.fence = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.handleType = Unchecked.defaultof && x.fd = Unchecked.defaultof static member Empty = - VkVideoDecodeH264PictureInfoEXT(Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>) + VkImportFenceFdInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "pStdPictureInfo = %A" x.pStdPictureInfo - sprintf "slicesCount = %A" x.slicesCount - sprintf "pSlicesDataOffsets = %A" x.pSlicesDataOffsets - ] |> sprintf "VkVideoDecodeH264PictureInfoEXT { %s }" + sprintf "fence = %A" x.fence + sprintf "flags = %A" x.flags + sprintf "handleType = %A" x.handleType + sprintf "fd = %A" x.fd + ] |> sprintf "VkImportFenceFdInfoKHR { %s }" end + + module VkRaw = + [] + type VkImportFenceFdKHRDel = delegate of VkDevice * nativeptr -> VkResult + [] + type VkGetFenceFdKHRDel = delegate of VkDevice * nativeptr * nativeptr -> VkResult + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRExternalFenceFd") + static let s_vkImportFenceFdKHRDel = VkRaw.vkImportInstanceDelegate "vkImportFenceFdKHR" + static let s_vkGetFenceFdKHRDel = VkRaw.vkImportInstanceDelegate "vkGetFenceFdKHR" + static do Report.End(3) |> ignore + static member vkImportFenceFdKHR = s_vkImportFenceFdKHRDel + static member vkGetFenceFdKHR = s_vkGetFenceFdKHRDel + let vkImportFenceFdKHR(device : VkDevice, pImportFenceFdInfo : nativeptr) = Loader.vkImportFenceFdKHR.Invoke(device, pImportFenceFdInfo) + let vkGetFenceFdKHR(device : VkDevice, pGetFdInfo : nativeptr, pFd : nativeptr) = Loader.vkGetFenceFdKHR.Invoke(device, pGetFdInfo, pFd) + +/// Requires KHRExternalFence. +module KHRExternalFenceWin32 = + let Type = ExtensionType.Device + let Name = "VK_KHR_external_fence_win32" + let Number = 115 + [] - type VkVideoDecodeH264ProfileEXT = + type VkExportFenceWin32HandleInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public stdProfileIdc : nativeint - val mutable public pictureLayout : VkVideoDecodeH264PictureLayoutFlagsEXT + val mutable public pAttributes : nativeptr + val mutable public dwAccess : uint32 + val mutable public name : cstr - new(pNext : nativeint, stdProfileIdc : nativeint, pictureLayout : VkVideoDecodeH264PictureLayoutFlagsEXT) = + new(pNext : nativeint, pAttributes : nativeptr, dwAccess : uint32, name : cstr) = { - sType = 1000040003u + sType = 1000114001u pNext = pNext - stdProfileIdc = stdProfileIdc - pictureLayout = pictureLayout + pAttributes = pAttributes + dwAccess = dwAccess + name = name } - new(stdProfileIdc : nativeint, pictureLayout : VkVideoDecodeH264PictureLayoutFlagsEXT) = - VkVideoDecodeH264ProfileEXT(Unchecked.defaultof, stdProfileIdc, pictureLayout) + new(pAttributes : nativeptr, dwAccess : uint32, name : cstr) = + VkExportFenceWin32HandleInfoKHR(Unchecked.defaultof, pAttributes, dwAccess, name) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.stdProfileIdc = Unchecked.defaultof && x.pictureLayout = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.pAttributes = Unchecked.defaultof> && x.dwAccess = Unchecked.defaultof && x.name = Unchecked.defaultof static member Empty = - VkVideoDecodeH264ProfileEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkExportFenceWin32HandleInfoKHR(Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "stdProfileIdc = %A" x.stdProfileIdc - sprintf "pictureLayout = %A" x.pictureLayout - ] |> sprintf "VkVideoDecodeH264ProfileEXT { %s }" + sprintf "pAttributes = %A" x.pAttributes + sprintf "dwAccess = %A" x.dwAccess + sprintf "name = %A" x.name + ] |> sprintf "VkExportFenceWin32HandleInfoKHR { %s }" end [] - type VkVideoDecodeH264SessionParametersAddInfoEXT = + type VkFenceGetWin32HandleInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public spsStdCount : uint32 - val mutable public pSpsStd : nativeptr - val mutable public ppsStdCount : uint32 - val mutable public pPpsStd : nativeptr + val mutable public fence : VkFence + val mutable public handleType : Vulkan11.VkExternalFenceHandleTypeFlags - new(pNext : nativeint, spsStdCount : uint32, pSpsStd : nativeptr, ppsStdCount : uint32, pPpsStd : nativeptr) = + new(pNext : nativeint, fence : VkFence, handleType : Vulkan11.VkExternalFenceHandleTypeFlags) = { - sType = 1000040005u + sType = 1000114002u pNext = pNext - spsStdCount = spsStdCount - pSpsStd = pSpsStd - ppsStdCount = ppsStdCount - pPpsStd = pPpsStd + fence = fence + handleType = handleType } - new(spsStdCount : uint32, pSpsStd : nativeptr, ppsStdCount : uint32, pPpsStd : nativeptr) = - VkVideoDecodeH264SessionParametersAddInfoEXT(Unchecked.defaultof, spsStdCount, pSpsStd, ppsStdCount, pPpsStd) + new(fence : VkFence, handleType : Vulkan11.VkExternalFenceHandleTypeFlags) = + VkFenceGetWin32HandleInfoKHR(Unchecked.defaultof, fence, handleType) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.spsStdCount = Unchecked.defaultof && x.pSpsStd = Unchecked.defaultof> && x.ppsStdCount = Unchecked.defaultof && x.pPpsStd = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.fence = Unchecked.defaultof && x.handleType = Unchecked.defaultof static member Empty = - VkVideoDecodeH264SessionParametersAddInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>) + VkFenceGetWin32HandleInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "spsStdCount = %A" x.spsStdCount - sprintf "pSpsStd = %A" x.pSpsStd - sprintf "ppsStdCount = %A" x.ppsStdCount - sprintf "pPpsStd = %A" x.pPpsStd - ] |> sprintf "VkVideoDecodeH264SessionParametersAddInfoEXT { %s }" + sprintf "fence = %A" x.fence + sprintf "handleType = %A" x.handleType + ] |> sprintf "VkFenceGetWin32HandleInfoKHR { %s }" end [] - type VkVideoDecodeH264SessionParametersCreateInfoEXT = + type VkImportFenceWin32HandleInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public maxSpsStdCount : uint32 - val mutable public maxPpsStdCount : uint32 - val mutable public pParametersAddInfo : nativeptr + val mutable public fence : VkFence + val mutable public flags : Vulkan11.VkFenceImportFlags + val mutable public handleType : Vulkan11.VkExternalFenceHandleTypeFlags + val mutable public handle : nativeint + val mutable public name : cstr - new(pNext : nativeint, maxSpsStdCount : uint32, maxPpsStdCount : uint32, pParametersAddInfo : nativeptr) = + new(pNext : nativeint, fence : VkFence, flags : Vulkan11.VkFenceImportFlags, handleType : Vulkan11.VkExternalFenceHandleTypeFlags, handle : nativeint, name : cstr) = { - sType = 1000040004u + sType = 1000114000u pNext = pNext - maxSpsStdCount = maxSpsStdCount - maxPpsStdCount = maxPpsStdCount - pParametersAddInfo = pParametersAddInfo + fence = fence + flags = flags + handleType = handleType + handle = handle + name = name } - new(maxSpsStdCount : uint32, maxPpsStdCount : uint32, pParametersAddInfo : nativeptr) = - VkVideoDecodeH264SessionParametersCreateInfoEXT(Unchecked.defaultof, maxSpsStdCount, maxPpsStdCount, pParametersAddInfo) + new(fence : VkFence, flags : Vulkan11.VkFenceImportFlags, handleType : Vulkan11.VkExternalFenceHandleTypeFlags, handle : nativeint, name : cstr) = + VkImportFenceWin32HandleInfoKHR(Unchecked.defaultof, fence, flags, handleType, handle, name) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.maxSpsStdCount = Unchecked.defaultof && x.maxPpsStdCount = Unchecked.defaultof && x.pParametersAddInfo = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.fence = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.handleType = Unchecked.defaultof && x.handle = Unchecked.defaultof && x.name = Unchecked.defaultof static member Empty = - VkVideoDecodeH264SessionParametersCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + VkImportFenceWin32HandleInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "maxSpsStdCount = %A" x.maxSpsStdCount - sprintf "maxPpsStdCount = %A" x.maxPpsStdCount - sprintf "pParametersAddInfo = %A" x.pParametersAddInfo - ] |> sprintf "VkVideoDecodeH264SessionParametersCreateInfoEXT { %s }" + sprintf "fence = %A" x.fence + sprintf "flags = %A" x.flags + sprintf "handleType = %A" x.handleType + sprintf "handle = %A" x.handle + sprintf "name = %A" x.name + ] |> sprintf "VkImportFenceWin32HandleInfoKHR { %s }" end - [] - module EnumExtensions = - type VkVideoCodecOperationFlagsKHR with - static member inline DecodeH264BitExt = unbox 0x00000001 - - -module EXTVideoDecodeH265 = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - open KHRSynchronization2 - open KHRVideoDecodeQueue - open KHRVideoQueue - let Name = "VK_EXT_video_decode_h265" - let Number = 188 + module VkRaw = + [] + type VkImportFenceWin32HandleKHRDel = delegate of VkDevice * nativeptr -> VkResult + [] + type VkGetFenceWin32HandleKHRDel = delegate of VkDevice * nativeptr * nativeptr -> VkResult - let Required = [ KHRVideoDecodeQueue.Name ] + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRExternalFenceWin32") + static let s_vkImportFenceWin32HandleKHRDel = VkRaw.vkImportInstanceDelegate "vkImportFenceWin32HandleKHR" + static let s_vkGetFenceWin32HandleKHRDel = VkRaw.vkImportInstanceDelegate "vkGetFenceWin32HandleKHR" + static do Report.End(3) |> ignore + static member vkImportFenceWin32HandleKHR = s_vkImportFenceWin32HandleKHRDel + static member vkGetFenceWin32HandleKHR = s_vkGetFenceWin32HandleKHRDel + let vkImportFenceWin32HandleKHR(device : VkDevice, pImportFenceWin32HandleInfo : nativeptr) = Loader.vkImportFenceWin32HandleKHR.Invoke(device, pImportFenceWin32HandleInfo) + let vkGetFenceWin32HandleKHR(device : VkDevice, pGetWin32HandleInfo : nativeptr, pHandle : nativeptr) = Loader.vkGetFenceWin32HandleKHR.Invoke(device, pGetWin32HandleInfo, pHandle) +/// Requires KHRExternalMemory | Vulkan11. +module KHRExternalMemoryWin32 = + let Type = ExtensionType.Device + let Name = "VK_KHR_external_memory_win32" + let Number = 74 [] - type VkVideoDecodeH265CapabilitiesEXT = + type VkExportMemoryWin32HandleInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public maxLevel : nativeint + val mutable public pAttributes : nativeptr + val mutable public dwAccess : uint32 + val mutable public name : cstr - new(pNext : nativeint, maxLevel : nativeint) = + new(pNext : nativeint, pAttributes : nativeptr, dwAccess : uint32, name : cstr) = { - sType = 1000187000u + sType = 1000073001u pNext = pNext - maxLevel = maxLevel + pAttributes = pAttributes + dwAccess = dwAccess + name = name } - new(maxLevel : nativeint) = - VkVideoDecodeH265CapabilitiesEXT(Unchecked.defaultof, maxLevel) + new(pAttributes : nativeptr, dwAccess : uint32, name : cstr) = + VkExportMemoryWin32HandleInfoKHR(Unchecked.defaultof, pAttributes, dwAccess, name) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.maxLevel = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.pAttributes = Unchecked.defaultof> && x.dwAccess = Unchecked.defaultof && x.name = Unchecked.defaultof static member Empty = - VkVideoDecodeH265CapabilitiesEXT(Unchecked.defaultof, Unchecked.defaultof) + VkExportMemoryWin32HandleInfoKHR(Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "maxLevel = %A" x.maxLevel - ] |> sprintf "VkVideoDecodeH265CapabilitiesEXT { %s }" + sprintf "pAttributes = %A" x.pAttributes + sprintf "dwAccess = %A" x.dwAccess + sprintf "name = %A" x.name + ] |> sprintf "VkExportMemoryWin32HandleInfoKHR { %s }" end [] - type VkVideoDecodeH265DpbSlotInfoEXT = + type VkImportMemoryWin32HandleInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public pStdReferenceInfo : nativeptr + val mutable public handleType : Vulkan11.VkExternalMemoryHandleTypeFlags + val mutable public handle : nativeint + val mutable public name : cstr - new(pNext : nativeint, pStdReferenceInfo : nativeptr) = + new(pNext : nativeint, handleType : Vulkan11.VkExternalMemoryHandleTypeFlags, handle : nativeint, name : cstr) = { - sType = 1000187005u + sType = 1000073000u pNext = pNext - pStdReferenceInfo = pStdReferenceInfo + handleType = handleType + handle = handle + name = name } - new(pStdReferenceInfo : nativeptr) = - VkVideoDecodeH265DpbSlotInfoEXT(Unchecked.defaultof, pStdReferenceInfo) + new(handleType : Vulkan11.VkExternalMemoryHandleTypeFlags, handle : nativeint, name : cstr) = + VkImportMemoryWin32HandleInfoKHR(Unchecked.defaultof, handleType, handle, name) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.pStdReferenceInfo = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.handleType = Unchecked.defaultof && x.handle = Unchecked.defaultof && x.name = Unchecked.defaultof static member Empty = - VkVideoDecodeH265DpbSlotInfoEXT(Unchecked.defaultof, Unchecked.defaultof>) + VkImportMemoryWin32HandleInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "pStdReferenceInfo = %A" x.pStdReferenceInfo - ] |> sprintf "VkVideoDecodeH265DpbSlotInfoEXT { %s }" + sprintf "handleType = %A" x.handleType + sprintf "handle = %A" x.handle + sprintf "name = %A" x.name + ] |> sprintf "VkImportMemoryWin32HandleInfoKHR { %s }" end [] - type VkVideoDecodeH265PictureInfoEXT = + type VkMemoryGetWin32HandleInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public pStdPictureInfo : nativeptr - val mutable public slicesCount : uint32 - val mutable public pSlicesDataOffsets : nativeptr + val mutable public memory : VkDeviceMemory + val mutable public handleType : Vulkan11.VkExternalMemoryHandleTypeFlags - new(pNext : nativeint, pStdPictureInfo : nativeptr, slicesCount : uint32, pSlicesDataOffsets : nativeptr) = + new(pNext : nativeint, memory : VkDeviceMemory, handleType : Vulkan11.VkExternalMemoryHandleTypeFlags) = { - sType = 1000187004u + sType = 1000073003u pNext = pNext - pStdPictureInfo = pStdPictureInfo - slicesCount = slicesCount - pSlicesDataOffsets = pSlicesDataOffsets + memory = memory + handleType = handleType } - new(pStdPictureInfo : nativeptr, slicesCount : uint32, pSlicesDataOffsets : nativeptr) = - VkVideoDecodeH265PictureInfoEXT(Unchecked.defaultof, pStdPictureInfo, slicesCount, pSlicesDataOffsets) + new(memory : VkDeviceMemory, handleType : Vulkan11.VkExternalMemoryHandleTypeFlags) = + VkMemoryGetWin32HandleInfoKHR(Unchecked.defaultof, memory, handleType) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.pStdPictureInfo = Unchecked.defaultof> && x.slicesCount = Unchecked.defaultof && x.pSlicesDataOffsets = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.memory = Unchecked.defaultof && x.handleType = Unchecked.defaultof static member Empty = - VkVideoDecodeH265PictureInfoEXT(Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>) + VkMemoryGetWin32HandleInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "pStdPictureInfo = %A" x.pStdPictureInfo - sprintf "slicesCount = %A" x.slicesCount - sprintf "pSlicesDataOffsets = %A" x.pSlicesDataOffsets - ] |> sprintf "VkVideoDecodeH265PictureInfoEXT { %s }" + sprintf "memory = %A" x.memory + sprintf "handleType = %A" x.handleType + ] |> sprintf "VkMemoryGetWin32HandleInfoKHR { %s }" end [] - type VkVideoDecodeH265ProfileEXT = + type VkMemoryWin32HandlePropertiesKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public stdProfileIdc : nativeint + val mutable public memoryTypeBits : uint32 - new(pNext : nativeint, stdProfileIdc : nativeint) = + new(pNext : nativeint, memoryTypeBits : uint32) = { - sType = 1000187003u + sType = 1000073002u pNext = pNext - stdProfileIdc = stdProfileIdc + memoryTypeBits = memoryTypeBits } - new(stdProfileIdc : nativeint) = - VkVideoDecodeH265ProfileEXT(Unchecked.defaultof, stdProfileIdc) + new(memoryTypeBits : uint32) = + VkMemoryWin32HandlePropertiesKHR(Unchecked.defaultof, memoryTypeBits) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.stdProfileIdc = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.memoryTypeBits = Unchecked.defaultof static member Empty = - VkVideoDecodeH265ProfileEXT(Unchecked.defaultof, Unchecked.defaultof) + VkMemoryWin32HandlePropertiesKHR(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "stdProfileIdc = %A" x.stdProfileIdc - ] |> sprintf "VkVideoDecodeH265ProfileEXT { %s }" + sprintf "memoryTypeBits = %A" x.memoryTypeBits + ] |> sprintf "VkMemoryWin32HandlePropertiesKHR { %s }" end + + module VkRaw = + [] + type VkGetMemoryWin32HandleKHRDel = delegate of VkDevice * nativeptr * nativeptr -> VkResult + [] + type VkGetMemoryWin32HandlePropertiesKHRDel = delegate of VkDevice * Vulkan11.VkExternalMemoryHandleTypeFlags * nativeint * nativeptr -> VkResult + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRExternalMemoryWin32") + static let s_vkGetMemoryWin32HandleKHRDel = VkRaw.vkImportInstanceDelegate "vkGetMemoryWin32HandleKHR" + static let s_vkGetMemoryWin32HandlePropertiesKHRDel = VkRaw.vkImportInstanceDelegate "vkGetMemoryWin32HandlePropertiesKHR" + static do Report.End(3) |> ignore + static member vkGetMemoryWin32HandleKHR = s_vkGetMemoryWin32HandleKHRDel + static member vkGetMemoryWin32HandlePropertiesKHR = s_vkGetMemoryWin32HandlePropertiesKHRDel + let vkGetMemoryWin32HandleKHR(device : VkDevice, pGetWin32HandleInfo : nativeptr, pHandle : nativeptr) = Loader.vkGetMemoryWin32HandleKHR.Invoke(device, pGetWin32HandleInfo, pHandle) + let vkGetMemoryWin32HandlePropertiesKHR(device : VkDevice, handleType : Vulkan11.VkExternalMemoryHandleTypeFlags, handle : nativeint, pMemoryWin32HandleProperties : nativeptr) = Loader.vkGetMemoryWin32HandlePropertiesKHR.Invoke(device, handleType, handle, pMemoryWin32HandleProperties) + +/// Requires KHRExternalSemaphore | Vulkan11. +module KHRExternalSemaphoreFd = + let Type = ExtensionType.Device + let Name = "VK_KHR_external_semaphore_fd" + let Number = 80 + [] - type VkVideoDecodeH265SessionParametersAddInfoEXT = + type VkImportSemaphoreFdInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public vpsStdCount : uint32 - val mutable public pVpsStd : nativeptr - val mutable public spsStdCount : uint32 - val mutable public pSpsStd : nativeptr - val mutable public ppsStdCount : uint32 - val mutable public pPpsStd : nativeptr + val mutable public semaphore : VkSemaphore + val mutable public flags : Vulkan11.VkSemaphoreImportFlags + val mutable public handleType : Vulkan11.VkExternalSemaphoreHandleTypeFlags + val mutable public fd : int32 - new(pNext : nativeint, vpsStdCount : uint32, pVpsStd : nativeptr, spsStdCount : uint32, pSpsStd : nativeptr, ppsStdCount : uint32, pPpsStd : nativeptr) = + new(pNext : nativeint, semaphore : VkSemaphore, flags : Vulkan11.VkSemaphoreImportFlags, handleType : Vulkan11.VkExternalSemaphoreHandleTypeFlags, fd : int32) = { - sType = 1000187002u + sType = 1000079000u pNext = pNext - vpsStdCount = vpsStdCount - pVpsStd = pVpsStd - spsStdCount = spsStdCount - pSpsStd = pSpsStd - ppsStdCount = ppsStdCount - pPpsStd = pPpsStd + semaphore = semaphore + flags = flags + handleType = handleType + fd = fd } - new(vpsStdCount : uint32, pVpsStd : nativeptr, spsStdCount : uint32, pSpsStd : nativeptr, ppsStdCount : uint32, pPpsStd : nativeptr) = - VkVideoDecodeH265SessionParametersAddInfoEXT(Unchecked.defaultof, vpsStdCount, pVpsStd, spsStdCount, pSpsStd, ppsStdCount, pPpsStd) + new(semaphore : VkSemaphore, flags : Vulkan11.VkSemaphoreImportFlags, handleType : Vulkan11.VkExternalSemaphoreHandleTypeFlags, fd : int32) = + VkImportSemaphoreFdInfoKHR(Unchecked.defaultof, semaphore, flags, handleType, fd) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.vpsStdCount = Unchecked.defaultof && x.pVpsStd = Unchecked.defaultof> && x.spsStdCount = Unchecked.defaultof && x.pSpsStd = Unchecked.defaultof> && x.ppsStdCount = Unchecked.defaultof && x.pPpsStd = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.semaphore = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.handleType = Unchecked.defaultof && x.fd = Unchecked.defaultof static member Empty = - VkVideoDecodeH265SessionParametersAddInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>) + VkImportSemaphoreFdInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "vpsStdCount = %A" x.vpsStdCount - sprintf "pVpsStd = %A" x.pVpsStd - sprintf "spsStdCount = %A" x.spsStdCount - sprintf "pSpsStd = %A" x.pSpsStd - sprintf "ppsStdCount = %A" x.ppsStdCount - sprintf "pPpsStd = %A" x.pPpsStd - ] |> sprintf "VkVideoDecodeH265SessionParametersAddInfoEXT { %s }" + sprintf "semaphore = %A" x.semaphore + sprintf "flags = %A" x.flags + sprintf "handleType = %A" x.handleType + sprintf "fd = %A" x.fd + ] |> sprintf "VkImportSemaphoreFdInfoKHR { %s }" end [] - type VkVideoDecodeH265SessionParametersCreateInfoEXT = + type VkSemaphoreGetFdInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public maxVpsStdCount : uint32 - val mutable public maxSpsStdCount : uint32 - val mutable public maxPpsStdCount : uint32 - val mutable public pParametersAddInfo : nativeptr + val mutable public semaphore : VkSemaphore + val mutable public handleType : Vulkan11.VkExternalSemaphoreHandleTypeFlags - new(pNext : nativeint, maxVpsStdCount : uint32, maxSpsStdCount : uint32, maxPpsStdCount : uint32, pParametersAddInfo : nativeptr) = + new(pNext : nativeint, semaphore : VkSemaphore, handleType : Vulkan11.VkExternalSemaphoreHandleTypeFlags) = { - sType = 1000187001u + sType = 1000079001u pNext = pNext - maxVpsStdCount = maxVpsStdCount - maxSpsStdCount = maxSpsStdCount - maxPpsStdCount = maxPpsStdCount - pParametersAddInfo = pParametersAddInfo + semaphore = semaphore + handleType = handleType } - new(maxVpsStdCount : uint32, maxSpsStdCount : uint32, maxPpsStdCount : uint32, pParametersAddInfo : nativeptr) = - VkVideoDecodeH265SessionParametersCreateInfoEXT(Unchecked.defaultof, maxVpsStdCount, maxSpsStdCount, maxPpsStdCount, pParametersAddInfo) + new(semaphore : VkSemaphore, handleType : Vulkan11.VkExternalSemaphoreHandleTypeFlags) = + VkSemaphoreGetFdInfoKHR(Unchecked.defaultof, semaphore, handleType) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.maxVpsStdCount = Unchecked.defaultof && x.maxSpsStdCount = Unchecked.defaultof && x.maxPpsStdCount = Unchecked.defaultof && x.pParametersAddInfo = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.semaphore = Unchecked.defaultof && x.handleType = Unchecked.defaultof static member Empty = - VkVideoDecodeH265SessionParametersCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + VkSemaphoreGetFdInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "maxVpsStdCount = %A" x.maxVpsStdCount - sprintf "maxSpsStdCount = %A" x.maxSpsStdCount - sprintf "maxPpsStdCount = %A" x.maxPpsStdCount - sprintf "pParametersAddInfo = %A" x.pParametersAddInfo - ] |> sprintf "VkVideoDecodeH265SessionParametersCreateInfoEXT { %s }" + sprintf "semaphore = %A" x.semaphore + sprintf "handleType = %A" x.handleType + ] |> sprintf "VkSemaphoreGetFdInfoKHR { %s }" end - [] - module EnumExtensions = - type VkVideoCodecOperationFlagsKHR with - static member inline DecodeH265BitExt = unbox 0x00000002 - - -module KHRVideoEncodeQueue = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - open KHRSynchronization2 - open KHRVideoQueue - let Name = "VK_KHR_video_encode_queue" - let Number = 300 - - let Required = [ KHRSynchronization2.Name; KHRVideoQueue.Name ] - - - [] - type VkVideoEncodeFlagsKHR = - | All = 1 - | Default = 0 - | Reserved0Bit = 0x00000001 - - [] - type VkVideoEncodeCapabilityFlagsKHR = - | All = 1 - | Default = 0 - | PrecedingExternallyEncodedBytesBit = 0x00000001 - - [] - type VkVideoEncodeRateControlFlagsKHR = - | All = 1 - | Default = 0 - | Reserved0Bit = 0x00000001 + module VkRaw = + [] + type VkImportSemaphoreFdKHRDel = delegate of VkDevice * nativeptr -> VkResult + [] + type VkGetSemaphoreFdKHRDel = delegate of VkDevice * nativeptr * nativeptr -> VkResult - [] - type VkVideoEncodeRateControlModeFlagsKHR = - | NoneBit = 0 - | CbrBit = 1 - | VbrBit = 2 + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRExternalSemaphoreFd") + static let s_vkImportSemaphoreFdKHRDel = VkRaw.vkImportInstanceDelegate "vkImportSemaphoreFdKHR" + static let s_vkGetSemaphoreFdKHRDel = VkRaw.vkImportInstanceDelegate "vkGetSemaphoreFdKHR" + static do Report.End(3) |> ignore + static member vkImportSemaphoreFdKHR = s_vkImportSemaphoreFdKHRDel + static member vkGetSemaphoreFdKHR = s_vkGetSemaphoreFdKHRDel + let vkImportSemaphoreFdKHR(device : VkDevice, pImportSemaphoreFdInfo : nativeptr) = Loader.vkImportSemaphoreFdKHR.Invoke(device, pImportSemaphoreFdInfo) + let vkGetSemaphoreFdKHR(device : VkDevice, pGetFdInfo : nativeptr, pFd : nativeptr) = Loader.vkGetSemaphoreFdKHR.Invoke(device, pGetFdInfo, pFd) +/// Requires KHRExternalSemaphore. +module KHRExternalSemaphoreWin32 = + let Type = ExtensionType.Device + let Name = "VK_KHR_external_semaphore_win32" + let Number = 79 [] - type VkVideoEncodeCapabilitiesKHR = + type VkD3D12FenceSubmitInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public flags : VkVideoEncodeCapabilityFlagsKHR - val mutable public rateControlModes : VkVideoEncodeRateControlModeFlagsKHR - val mutable public rateControlLayerCount : byte - val mutable public qualityLevelCount : byte - val mutable public inputImageDataFillAlignment : VkExtent2D + val mutable public waitSemaphoreValuesCount : uint32 + val mutable public pWaitSemaphoreValues : nativeptr + val mutable public signalSemaphoreValuesCount : uint32 + val mutable public pSignalSemaphoreValues : nativeptr - new(pNext : nativeint, flags : VkVideoEncodeCapabilityFlagsKHR, rateControlModes : VkVideoEncodeRateControlModeFlagsKHR, rateControlLayerCount : byte, qualityLevelCount : byte, inputImageDataFillAlignment : VkExtent2D) = + new(pNext : nativeint, waitSemaphoreValuesCount : uint32, pWaitSemaphoreValues : nativeptr, signalSemaphoreValuesCount : uint32, pSignalSemaphoreValues : nativeptr) = { - sType = 1000299003u + sType = 1000078002u pNext = pNext - flags = flags - rateControlModes = rateControlModes - rateControlLayerCount = rateControlLayerCount - qualityLevelCount = qualityLevelCount - inputImageDataFillAlignment = inputImageDataFillAlignment + waitSemaphoreValuesCount = waitSemaphoreValuesCount + pWaitSemaphoreValues = pWaitSemaphoreValues + signalSemaphoreValuesCount = signalSemaphoreValuesCount + pSignalSemaphoreValues = pSignalSemaphoreValues } - new(flags : VkVideoEncodeCapabilityFlagsKHR, rateControlModes : VkVideoEncodeRateControlModeFlagsKHR, rateControlLayerCount : byte, qualityLevelCount : byte, inputImageDataFillAlignment : VkExtent2D) = - VkVideoEncodeCapabilitiesKHR(Unchecked.defaultof, flags, rateControlModes, rateControlLayerCount, qualityLevelCount, inputImageDataFillAlignment) + new(waitSemaphoreValuesCount : uint32, pWaitSemaphoreValues : nativeptr, signalSemaphoreValuesCount : uint32, pSignalSemaphoreValues : nativeptr) = + VkD3D12FenceSubmitInfoKHR(Unchecked.defaultof, waitSemaphoreValuesCount, pWaitSemaphoreValues, signalSemaphoreValuesCount, pSignalSemaphoreValues) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.rateControlModes = Unchecked.defaultof && x.rateControlLayerCount = Unchecked.defaultof && x.qualityLevelCount = Unchecked.defaultof && x.inputImageDataFillAlignment = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.waitSemaphoreValuesCount = Unchecked.defaultof && x.pWaitSemaphoreValues = Unchecked.defaultof> && x.signalSemaphoreValuesCount = Unchecked.defaultof && x.pSignalSemaphoreValues = Unchecked.defaultof> static member Empty = - VkVideoEncodeCapabilitiesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkD3D12FenceSubmitInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "flags = %A" x.flags - sprintf "rateControlModes = %A" x.rateControlModes - sprintf "rateControlLayerCount = %A" x.rateControlLayerCount - sprintf "qualityLevelCount = %A" x.qualityLevelCount - sprintf "inputImageDataFillAlignment = %A" x.inputImageDataFillAlignment - ] |> sprintf "VkVideoEncodeCapabilitiesKHR { %s }" + sprintf "waitSemaphoreValuesCount = %A" x.waitSemaphoreValuesCount + sprintf "pWaitSemaphoreValues = %A" x.pWaitSemaphoreValues + sprintf "signalSemaphoreValuesCount = %A" x.signalSemaphoreValuesCount + sprintf "pSignalSemaphoreValues = %A" x.pSignalSemaphoreValues + ] |> sprintf "VkD3D12FenceSubmitInfoKHR { %s }" end [] - type VkVideoEncodeInfoKHR = + type VkExportSemaphoreWin32HandleInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public flags : VkVideoEncodeFlagsKHR - val mutable public qualityLevel : uint32 - val mutable public dstBitstreamBuffer : VkBuffer - val mutable public dstBitstreamBufferOffset : VkDeviceSize - val mutable public dstBitstreamBufferMaxRange : VkDeviceSize - val mutable public srcPictureResource : VkVideoPictureResourceKHR - val mutable public pSetupReferenceSlot : nativeptr - val mutable public referenceSlotCount : uint32 - val mutable public pReferenceSlots : nativeptr - val mutable public precedingExternallyEncodedBytes : uint32 + val mutable public pAttributes : nativeptr + val mutable public dwAccess : uint32 + val mutable public name : cstr - new(pNext : nativeint, flags : VkVideoEncodeFlagsKHR, qualityLevel : uint32, dstBitstreamBuffer : VkBuffer, dstBitstreamBufferOffset : VkDeviceSize, dstBitstreamBufferMaxRange : VkDeviceSize, srcPictureResource : VkVideoPictureResourceKHR, pSetupReferenceSlot : nativeptr, referenceSlotCount : uint32, pReferenceSlots : nativeptr, precedingExternallyEncodedBytes : uint32) = + new(pNext : nativeint, pAttributes : nativeptr, dwAccess : uint32, name : cstr) = { - sType = 1000299000u + sType = 1000078001u pNext = pNext - flags = flags - qualityLevel = qualityLevel - dstBitstreamBuffer = dstBitstreamBuffer - dstBitstreamBufferOffset = dstBitstreamBufferOffset - dstBitstreamBufferMaxRange = dstBitstreamBufferMaxRange - srcPictureResource = srcPictureResource - pSetupReferenceSlot = pSetupReferenceSlot - referenceSlotCount = referenceSlotCount - pReferenceSlots = pReferenceSlots - precedingExternallyEncodedBytes = precedingExternallyEncodedBytes + pAttributes = pAttributes + dwAccess = dwAccess + name = name } - new(flags : VkVideoEncodeFlagsKHR, qualityLevel : uint32, dstBitstreamBuffer : VkBuffer, dstBitstreamBufferOffset : VkDeviceSize, dstBitstreamBufferMaxRange : VkDeviceSize, srcPictureResource : VkVideoPictureResourceKHR, pSetupReferenceSlot : nativeptr, referenceSlotCount : uint32, pReferenceSlots : nativeptr, precedingExternallyEncodedBytes : uint32) = - VkVideoEncodeInfoKHR(Unchecked.defaultof, flags, qualityLevel, dstBitstreamBuffer, dstBitstreamBufferOffset, dstBitstreamBufferMaxRange, srcPictureResource, pSetupReferenceSlot, referenceSlotCount, pReferenceSlots, precedingExternallyEncodedBytes) + new(pAttributes : nativeptr, dwAccess : uint32, name : cstr) = + VkExportSemaphoreWin32HandleInfoKHR(Unchecked.defaultof, pAttributes, dwAccess, name) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.qualityLevel = Unchecked.defaultof && x.dstBitstreamBuffer = Unchecked.defaultof && x.dstBitstreamBufferOffset = Unchecked.defaultof && x.dstBitstreamBufferMaxRange = Unchecked.defaultof && x.srcPictureResource = Unchecked.defaultof && x.pSetupReferenceSlot = Unchecked.defaultof> && x.referenceSlotCount = Unchecked.defaultof && x.pReferenceSlots = Unchecked.defaultof> && x.precedingExternallyEncodedBytes = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.pAttributes = Unchecked.defaultof> && x.dwAccess = Unchecked.defaultof && x.name = Unchecked.defaultof static member Empty = - VkVideoEncodeInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof) + VkExportSemaphoreWin32HandleInfoKHR(Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "flags = %A" x.flags - sprintf "qualityLevel = %A" x.qualityLevel - sprintf "dstBitstreamBuffer = %A" x.dstBitstreamBuffer - sprintf "dstBitstreamBufferOffset = %A" x.dstBitstreamBufferOffset - sprintf "dstBitstreamBufferMaxRange = %A" x.dstBitstreamBufferMaxRange - sprintf "srcPictureResource = %A" x.srcPictureResource - sprintf "pSetupReferenceSlot = %A" x.pSetupReferenceSlot - sprintf "referenceSlotCount = %A" x.referenceSlotCount - sprintf "pReferenceSlots = %A" x.pReferenceSlots - sprintf "precedingExternallyEncodedBytes = %A" x.precedingExternallyEncodedBytes - ] |> sprintf "VkVideoEncodeInfoKHR { %s }" + sprintf "pAttributes = %A" x.pAttributes + sprintf "dwAccess = %A" x.dwAccess + sprintf "name = %A" x.name + ] |> sprintf "VkExportSemaphoreWin32HandleInfoKHR { %s }" end [] - type VkVideoEncodeRateControlLayerInfoKHR = + type VkImportSemaphoreWin32HandleInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public averageBitrate : uint32 - val mutable public maxBitrate : uint32 - val mutable public frameRateNumerator : uint32 - val mutable public frameRateDenominator : uint32 - val mutable public virtualBufferSizeInMs : uint32 - val mutable public initialVirtualBufferSizeInMs : uint32 + val mutable public semaphore : VkSemaphore + val mutable public flags : Vulkan11.VkSemaphoreImportFlags + val mutable public handleType : Vulkan11.VkExternalSemaphoreHandleTypeFlags + val mutable public handle : nativeint + val mutable public name : cstr - new(pNext : nativeint, averageBitrate : uint32, maxBitrate : uint32, frameRateNumerator : uint32, frameRateDenominator : uint32, virtualBufferSizeInMs : uint32, initialVirtualBufferSizeInMs : uint32) = + new(pNext : nativeint, semaphore : VkSemaphore, flags : Vulkan11.VkSemaphoreImportFlags, handleType : Vulkan11.VkExternalSemaphoreHandleTypeFlags, handle : nativeint, name : cstr) = { - sType = 1000299002u + sType = 1000078000u pNext = pNext - averageBitrate = averageBitrate - maxBitrate = maxBitrate - frameRateNumerator = frameRateNumerator - frameRateDenominator = frameRateDenominator - virtualBufferSizeInMs = virtualBufferSizeInMs - initialVirtualBufferSizeInMs = initialVirtualBufferSizeInMs + semaphore = semaphore + flags = flags + handleType = handleType + handle = handle + name = name } - new(averageBitrate : uint32, maxBitrate : uint32, frameRateNumerator : uint32, frameRateDenominator : uint32, virtualBufferSizeInMs : uint32, initialVirtualBufferSizeInMs : uint32) = - VkVideoEncodeRateControlLayerInfoKHR(Unchecked.defaultof, averageBitrate, maxBitrate, frameRateNumerator, frameRateDenominator, virtualBufferSizeInMs, initialVirtualBufferSizeInMs) + new(semaphore : VkSemaphore, flags : Vulkan11.VkSemaphoreImportFlags, handleType : Vulkan11.VkExternalSemaphoreHandleTypeFlags, handle : nativeint, name : cstr) = + VkImportSemaphoreWin32HandleInfoKHR(Unchecked.defaultof, semaphore, flags, handleType, handle, name) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.averageBitrate = Unchecked.defaultof && x.maxBitrate = Unchecked.defaultof && x.frameRateNumerator = Unchecked.defaultof && x.frameRateDenominator = Unchecked.defaultof && x.virtualBufferSizeInMs = Unchecked.defaultof && x.initialVirtualBufferSizeInMs = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.semaphore = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.handleType = Unchecked.defaultof && x.handle = Unchecked.defaultof && x.name = Unchecked.defaultof static member Empty = - VkVideoEncodeRateControlLayerInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkImportSemaphoreWin32HandleInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "averageBitrate = %A" x.averageBitrate - sprintf "maxBitrate = %A" x.maxBitrate - sprintf "frameRateNumerator = %A" x.frameRateNumerator - sprintf "frameRateDenominator = %A" x.frameRateDenominator - sprintf "virtualBufferSizeInMs = %A" x.virtualBufferSizeInMs - sprintf "initialVirtualBufferSizeInMs = %A" x.initialVirtualBufferSizeInMs - ] |> sprintf "VkVideoEncodeRateControlLayerInfoKHR { %s }" + sprintf "semaphore = %A" x.semaphore + sprintf "flags = %A" x.flags + sprintf "handleType = %A" x.handleType + sprintf "handle = %A" x.handle + sprintf "name = %A" x.name + ] |> sprintf "VkImportSemaphoreWin32HandleInfoKHR { %s }" end [] - type VkVideoEncodeRateControlInfoKHR = + type VkSemaphoreGetWin32HandleInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public flags : VkVideoEncodeRateControlFlagsKHR - val mutable public rateControlMode : VkVideoEncodeRateControlModeFlagsKHR - val mutable public layerCount : byte - val mutable public pLayerConfigs : nativeptr + val mutable public semaphore : VkSemaphore + val mutable public handleType : Vulkan11.VkExternalSemaphoreHandleTypeFlags - new(pNext : nativeint, flags : VkVideoEncodeRateControlFlagsKHR, rateControlMode : VkVideoEncodeRateControlModeFlagsKHR, layerCount : byte, pLayerConfigs : nativeptr) = + new(pNext : nativeint, semaphore : VkSemaphore, handleType : Vulkan11.VkExternalSemaphoreHandleTypeFlags) = { - sType = 1000299001u + sType = 1000078003u pNext = pNext - flags = flags - rateControlMode = rateControlMode - layerCount = layerCount - pLayerConfigs = pLayerConfigs + semaphore = semaphore + handleType = handleType } - new(flags : VkVideoEncodeRateControlFlagsKHR, rateControlMode : VkVideoEncodeRateControlModeFlagsKHR, layerCount : byte, pLayerConfigs : nativeptr) = - VkVideoEncodeRateControlInfoKHR(Unchecked.defaultof, flags, rateControlMode, layerCount, pLayerConfigs) + new(semaphore : VkSemaphore, handleType : Vulkan11.VkExternalSemaphoreHandleTypeFlags) = + VkSemaphoreGetWin32HandleInfoKHR(Unchecked.defaultof, semaphore, handleType) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.rateControlMode = Unchecked.defaultof && x.layerCount = Unchecked.defaultof && x.pLayerConfigs = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.semaphore = Unchecked.defaultof && x.handleType = Unchecked.defaultof static member Empty = - VkVideoEncodeRateControlInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + VkSemaphoreGetWin32HandleInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "flags = %A" x.flags - sprintf "rateControlMode = %A" x.rateControlMode - sprintf "layerCount = %A" x.layerCount - sprintf "pLayerConfigs = %A" x.pLayerConfigs - ] |> sprintf "VkVideoEncodeRateControlInfoKHR { %s }" + sprintf "semaphore = %A" x.semaphore + sprintf "handleType = %A" x.handleType + ] |> sprintf "VkSemaphoreGetWin32HandleInfoKHR { %s }" end - [] - module EnumExtensions = - type VkAccessFlags2 with - static member inline Access2VideoEncodeReadBitKhr = unbox 0x00000020 - static member inline Access2VideoEncodeWriteBitKhr = unbox 0x00000040 - type VkBufferUsageFlags with - static member inline VideoEncodeDstBitKhr = unbox 0x00008000 - static member inline VideoEncodeSrcBitKhr = unbox 0x00010000 - type VkFormatFeatureFlags with - static member inline VideoEncodeInputBitKhr = unbox 0x08000000 - static member inline VideoEncodeDpbBitKhr = unbox 0x10000000 - type VkImageLayout with - static member inline VideoEncodeDstKhr = unbox 1000299000 - static member inline VideoEncodeSrcKhr = unbox 1000299001 - static member inline VideoEncodeDpbKhr = unbox 1000299002 - type VkImageUsageFlags with - static member inline VideoEncodeDstBitKhr = unbox 0x00002000 - static member inline VideoEncodeSrcBitKhr = unbox 0x00004000 - static member inline VideoEncodeDpbBitKhr = unbox 0x00008000 - type VkPipelineStageFlags2 with - static member inline PipelineStage2VideoEncodeBitKhr = unbox 0x08000000 - type VkQueryType with - static member inline VideoEncodeBitstreamBufferRangeKhr = unbox 1000299000 - type VkQueueFlags with - static member inline VideoEncodeBitKhr = unbox 0x00000040 - module VkRaw = [] - type VkCmdEncodeVideoKHRDel = delegate of VkCommandBuffer * nativeptr -> unit + type VkImportSemaphoreWin32HandleKHRDel = delegate of VkDevice * nativeptr -> VkResult + [] + type VkGetSemaphoreWin32HandleKHRDel = delegate of VkDevice * nativeptr * nativeptr -> VkResult [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRVideoEncodeQueue") - static let s_vkCmdEncodeVideoKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdEncodeVideoKHR" + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRExternalSemaphoreWin32") + static let s_vkImportSemaphoreWin32HandleKHRDel = VkRaw.vkImportInstanceDelegate "vkImportSemaphoreWin32HandleKHR" + static let s_vkGetSemaphoreWin32HandleKHRDel = VkRaw.vkImportInstanceDelegate "vkGetSemaphoreWin32HandleKHR" static do Report.End(3) |> ignore - static member vkCmdEncodeVideoKHR = s_vkCmdEncodeVideoKHRDel - let vkCmdEncodeVideoKHR(commandBuffer : VkCommandBuffer, pEncodeInfo : nativeptr) = Loader.vkCmdEncodeVideoKHR.Invoke(commandBuffer, pEncodeInfo) - - module KHRFormatFeatureFlags2 = - [] - module EnumExtensions = - type VkFormatFeatureFlags2 with - static member inline FormatFeature2VideoEncodeInputBitKhr = unbox 0x08000000 - static member inline FormatFeature2VideoEncodeDpbBitKhr = unbox 0x10000000 - - -module EXTVideoEncodeH264 = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - open KHRSynchronization2 - open KHRVideoEncodeQueue - open KHRVideoQueue - let Name = "VK_EXT_video_encode_h264" - let Number = 39 - - let Required = [ KHRVideoEncodeQueue.Name ] - - - [] - type VkVideoEncodeH264CapabilityFlagsEXT = - | All = 33554431 - | None = 0 - | Direct8x8InferenceEnabledBit = 0x00000001 - | Direct8x8InferenceDisabledBit = 0x00000002 - | SeparateColourPlaneBit = 0x00000004 - | QpprimeYZeroTransformBypassBit = 0x00000008 - | ScalingListsBit = 0x00000010 - | HrdComplianceBit = 0x00000020 - | ChromaQpOffsetBit = 0x00000040 - | SecondChromaQpOffsetBit = 0x00000080 - | PicInitQpMinus26Bit = 0x00000100 - | WeightedPredBit = 0x00000200 - | WeightedBipredExplicitBit = 0x00000400 - | WeightedBipredImplicitBit = 0x00000800 - | WeightedPredNoTableBit = 0x00001000 - | Transform8x8Bit = 0x00002000 - | CabacBit = 0x00004000 - | CavlcBit = 0x00008000 - | DeblockingFilterDisabledBit = 0x00010000 - | DeblockingFilterEnabledBit = 0x00020000 - | DeblockingFilterPartialBit = 0x00040000 - | DisableDirectSpatialMvPredBit = 0x00080000 - | MultipleSlicePerFrameBit = 0x00100000 - | SliceMbCountBit = 0x00200000 - | RowUnalignedSliceBit = 0x00400000 - | DifferentSliceTypeBit = 0x00800000 - | BFrameInL1ListBit = 0x01000000 - - [] - type VkVideoEncodeH264InputModeFlagsEXT = - | All = 7 - | None = 0 - | FrameBit = 0x00000001 - | SliceBit = 0x00000002 - | NonVclBit = 0x00000004 - - [] - type VkVideoEncodeH264OutputModeFlagsEXT = - | All = 7 - | None = 0 - | FrameBit = 0x00000001 - | SliceBit = 0x00000002 - | NonVclBit = 0x00000004 - - [] - type VkVideoEncodeH264RateControlStructureFlagsEXT = - | All = 3 - | Unknown = 0 - | FlatBit = 0x00000001 - | DyadicBit = 0x00000002 + static member vkImportSemaphoreWin32HandleKHR = s_vkImportSemaphoreWin32HandleKHRDel + static member vkGetSemaphoreWin32HandleKHR = s_vkGetSemaphoreWin32HandleKHRDel + let vkImportSemaphoreWin32HandleKHR(device : VkDevice, pImportSemaphoreWin32HandleInfo : nativeptr) = Loader.vkImportSemaphoreWin32HandleKHR.Invoke(device, pImportSemaphoreWin32HandleInfo) + let vkGetSemaphoreWin32HandleKHR(device : VkDevice, pGetWin32HandleInfo : nativeptr, pHandle : nativeptr) = Loader.vkGetSemaphoreWin32HandleKHR.Invoke(device, pGetWin32HandleInfo, pHandle) +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module KHRFragmentShaderBarycentric = + let Type = ExtensionType.Device + let Name = "VK_KHR_fragment_shader_barycentric" + let Number = 323 [] - type VkVideoEncodeH264CapabilitiesEXT = + type VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public flags : VkVideoEncodeH264CapabilityFlagsEXT - val mutable public inputModeFlags : VkVideoEncodeH264InputModeFlagsEXT - val mutable public outputModeFlags : VkVideoEncodeH264OutputModeFlagsEXT - val mutable public maxPPictureL0ReferenceCount : byte - val mutable public maxBPictureL0ReferenceCount : byte - val mutable public maxL1ReferenceCount : byte - val mutable public motionVectorsOverPicBoundariesFlag : VkBool32 - val mutable public maxBytesPerPicDenom : uint32 - val mutable public maxBitsPerMbDenom : uint32 - val mutable public log2MaxMvLengthHorizontal : uint32 - val mutable public log2MaxMvLengthVertical : uint32 + val mutable public fragmentShaderBarycentric : VkBool32 - new(pNext : nativeint, flags : VkVideoEncodeH264CapabilityFlagsEXT, inputModeFlags : VkVideoEncodeH264InputModeFlagsEXT, outputModeFlags : VkVideoEncodeH264OutputModeFlagsEXT, maxPPictureL0ReferenceCount : byte, maxBPictureL0ReferenceCount : byte, maxL1ReferenceCount : byte, motionVectorsOverPicBoundariesFlag : VkBool32, maxBytesPerPicDenom : uint32, maxBitsPerMbDenom : uint32, log2MaxMvLengthHorizontal : uint32, log2MaxMvLengthVertical : uint32) = + new(pNext : nativeint, fragmentShaderBarycentric : VkBool32) = { - sType = 1000038000u + sType = 1000203000u pNext = pNext - flags = flags - inputModeFlags = inputModeFlags - outputModeFlags = outputModeFlags - maxPPictureL0ReferenceCount = maxPPictureL0ReferenceCount - maxBPictureL0ReferenceCount = maxBPictureL0ReferenceCount - maxL1ReferenceCount = maxL1ReferenceCount - motionVectorsOverPicBoundariesFlag = motionVectorsOverPicBoundariesFlag - maxBytesPerPicDenom = maxBytesPerPicDenom - maxBitsPerMbDenom = maxBitsPerMbDenom - log2MaxMvLengthHorizontal = log2MaxMvLengthHorizontal - log2MaxMvLengthVertical = log2MaxMvLengthVertical + fragmentShaderBarycentric = fragmentShaderBarycentric } - new(flags : VkVideoEncodeH264CapabilityFlagsEXT, inputModeFlags : VkVideoEncodeH264InputModeFlagsEXT, outputModeFlags : VkVideoEncodeH264OutputModeFlagsEXT, maxPPictureL0ReferenceCount : byte, maxBPictureL0ReferenceCount : byte, maxL1ReferenceCount : byte, motionVectorsOverPicBoundariesFlag : VkBool32, maxBytesPerPicDenom : uint32, maxBitsPerMbDenom : uint32, log2MaxMvLengthHorizontal : uint32, log2MaxMvLengthVertical : uint32) = - VkVideoEncodeH264CapabilitiesEXT(Unchecked.defaultof, flags, inputModeFlags, outputModeFlags, maxPPictureL0ReferenceCount, maxBPictureL0ReferenceCount, maxL1ReferenceCount, motionVectorsOverPicBoundariesFlag, maxBytesPerPicDenom, maxBitsPerMbDenom, log2MaxMvLengthHorizontal, log2MaxMvLengthVertical) + new(fragmentShaderBarycentric : VkBool32) = + VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR(Unchecked.defaultof, fragmentShaderBarycentric) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.inputModeFlags = Unchecked.defaultof && x.outputModeFlags = Unchecked.defaultof && x.maxPPictureL0ReferenceCount = Unchecked.defaultof && x.maxBPictureL0ReferenceCount = Unchecked.defaultof && x.maxL1ReferenceCount = Unchecked.defaultof && x.motionVectorsOverPicBoundariesFlag = Unchecked.defaultof && x.maxBytesPerPicDenom = Unchecked.defaultof && x.maxBitsPerMbDenom = Unchecked.defaultof && x.log2MaxMvLengthHorizontal = Unchecked.defaultof && x.log2MaxMvLengthVertical = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.fragmentShaderBarycentric = Unchecked.defaultof static member Empty = - VkVideoEncodeH264CapabilitiesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "flags = %A" x.flags - sprintf "inputModeFlags = %A" x.inputModeFlags - sprintf "outputModeFlags = %A" x.outputModeFlags - sprintf "maxPPictureL0ReferenceCount = %A" x.maxPPictureL0ReferenceCount - sprintf "maxBPictureL0ReferenceCount = %A" x.maxBPictureL0ReferenceCount - sprintf "maxL1ReferenceCount = %A" x.maxL1ReferenceCount - sprintf "motionVectorsOverPicBoundariesFlag = %A" x.motionVectorsOverPicBoundariesFlag - sprintf "maxBytesPerPicDenom = %A" x.maxBytesPerPicDenom - sprintf "maxBitsPerMbDenom = %A" x.maxBitsPerMbDenom - sprintf "log2MaxMvLengthHorizontal = %A" x.log2MaxMvLengthHorizontal - sprintf "log2MaxMvLengthVertical = %A" x.log2MaxMvLengthVertical - ] |> sprintf "VkVideoEncodeH264CapabilitiesEXT { %s }" + sprintf "fragmentShaderBarycentric = %A" x.fragmentShaderBarycentric + ] |> sprintf "VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR { %s }" end [] - type VkVideoEncodeH264DpbSlotInfoEXT = + type VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public slotIndex : int8 - val mutable public pStdReferenceInfo : nativeptr + val mutable public triStripVertexOrderIndependentOfProvokingVertex : VkBool32 - new(pNext : nativeint, slotIndex : int8, pStdReferenceInfo : nativeptr) = + new(pNext : nativeint, triStripVertexOrderIndependentOfProvokingVertex : VkBool32) = { - sType = 1000038004u + sType = 1000322000u pNext = pNext - slotIndex = slotIndex - pStdReferenceInfo = pStdReferenceInfo + triStripVertexOrderIndependentOfProvokingVertex = triStripVertexOrderIndependentOfProvokingVertex } - new(slotIndex : int8, pStdReferenceInfo : nativeptr) = - VkVideoEncodeH264DpbSlotInfoEXT(Unchecked.defaultof, slotIndex, pStdReferenceInfo) + new(triStripVertexOrderIndependentOfProvokingVertex : VkBool32) = + VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR(Unchecked.defaultof, triStripVertexOrderIndependentOfProvokingVertex) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.slotIndex = Unchecked.defaultof && x.pStdReferenceInfo = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.triStripVertexOrderIndependentOfProvokingVertex = Unchecked.defaultof static member Empty = - VkVideoEncodeH264DpbSlotInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "slotIndex = %A" x.slotIndex - sprintf "pStdReferenceInfo = %A" x.pStdReferenceInfo - ] |> sprintf "VkVideoEncodeH264DpbSlotInfoEXT { %s }" + sprintf "triStripVertexOrderIndependentOfProvokingVertex = %A" x.triStripVertexOrderIndependentOfProvokingVertex + ] |> sprintf "VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR { %s }" end - [] - type VkVideoEncodeH264EmitPictureParametersEXT = - struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public spsId : byte - val mutable public emitSpsEnable : VkBool32 - val mutable public ppsIdEntryCount : uint32 - val mutable public ppsIdEntries : nativeptr - new(pNext : nativeint, spsId : byte, emitSpsEnable : VkBool32, ppsIdEntryCount : uint32, ppsIdEntries : nativeptr) = - { - sType = 1000038006u - pNext = pNext - spsId = spsId - emitSpsEnable = emitSpsEnable - ppsIdEntryCount = ppsIdEntryCount - ppsIdEntries = ppsIdEntries - } - new(spsId : byte, emitSpsEnable : VkBool32, ppsIdEntryCount : uint32, ppsIdEntries : nativeptr) = - VkVideoEncodeH264EmitPictureParametersEXT(Unchecked.defaultof, spsId, emitSpsEnable, ppsIdEntryCount, ppsIdEntries) +/// Requires (((KHRGetPhysicalDeviceProperties2, KHRMaintenance2) | Vulkan11), KHRImageFormatList) | Vulkan12. +/// Promoted to Vulkan12. +module KHRImagelessFramebuffer = + let Type = ExtensionType.Device + let Name = "VK_KHR_imageless_framebuffer" + let Number = 109 - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.spsId = Unchecked.defaultof && x.emitSpsEnable = Unchecked.defaultof && x.ppsIdEntryCount = Unchecked.defaultof && x.ppsIdEntries = Unchecked.defaultof> + type VkFramebufferAttachmentImageInfoKHR = Vulkan12.VkFramebufferAttachmentImageInfo - static member Empty = - VkVideoEncodeH264EmitPictureParametersEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + type VkFramebufferAttachmentsCreateInfoKHR = Vulkan12.VkFramebufferAttachmentsCreateInfo - override x.ToString() = - String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "spsId = %A" x.spsId - sprintf "emitSpsEnable = %A" x.emitSpsEnable - sprintf "ppsIdEntryCount = %A" x.ppsIdEntryCount - sprintf "ppsIdEntries = %A" x.ppsIdEntries - ] |> sprintf "VkVideoEncodeH264EmitPictureParametersEXT { %s }" - end + type VkPhysicalDeviceImagelessFramebufferFeaturesKHR = Vulkan12.VkPhysicalDeviceImagelessFramebufferFeatures + + type VkRenderPassAttachmentBeginInfoKHR = Vulkan12.VkRenderPassAttachmentBeginInfo + + + [] + module EnumExtensions = + type VkFramebufferCreateFlags with + static member inline ImagelessBitKhr = unbox 0x00000001 + + +/// Requires KHRSwapchain. +module KHRIncrementalPresent = + let Type = ExtensionType.Device + let Name = "VK_KHR_incremental_present" + let Number = 85 [] - type VkVideoEncodeH264FrameSizeEXT = + type VkRectLayerKHR = struct - val mutable public frameISize : uint32 - val mutable public framePSize : uint32 - val mutable public frameBSize : uint32 + val mutable public offset : VkOffset2D + val mutable public extent : VkExtent2D + val mutable public layer : uint32 - new(frameISize : uint32, framePSize : uint32, frameBSize : uint32) = + new(offset : VkOffset2D, extent : VkExtent2D, layer : uint32) = { - frameISize = frameISize - framePSize = framePSize - frameBSize = frameBSize + offset = offset + extent = extent + layer = layer } member x.IsEmpty = - x.frameISize = Unchecked.defaultof && x.framePSize = Unchecked.defaultof && x.frameBSize = Unchecked.defaultof + x.offset = Unchecked.defaultof && x.extent = Unchecked.defaultof && x.layer = Unchecked.defaultof static member Empty = - VkVideoEncodeH264FrameSizeEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkRectLayerKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ - sprintf "frameISize = %A" x.frameISize - sprintf "framePSize = %A" x.framePSize - sprintf "frameBSize = %A" x.frameBSize - ] |> sprintf "VkVideoEncodeH264FrameSizeEXT { %s }" + sprintf "offset = %A" x.offset + sprintf "extent = %A" x.extent + sprintf "layer = %A" x.layer + ] |> sprintf "VkRectLayerKHR { %s }" end [] - type VkVideoEncodeH264ReferenceListsEXT = + type VkPresentRegionKHR = struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public referenceList0EntryCount : byte - val mutable public pReferenceList0Entries : nativeptr - val mutable public referenceList1EntryCount : byte - val mutable public pReferenceList1Entries : nativeptr - val mutable public pMemMgmtCtrlOperations : nativeptr + val mutable public rectangleCount : uint32 + val mutable public pRectangles : nativeptr - new(pNext : nativeint, referenceList0EntryCount : byte, pReferenceList0Entries : nativeptr, referenceList1EntryCount : byte, pReferenceList1Entries : nativeptr, pMemMgmtCtrlOperations : nativeptr) = + new(rectangleCount : uint32, pRectangles : nativeptr) = { - sType = 1000038010u - pNext = pNext - referenceList0EntryCount = referenceList0EntryCount - pReferenceList0Entries = pReferenceList0Entries - referenceList1EntryCount = referenceList1EntryCount - pReferenceList1Entries = pReferenceList1Entries - pMemMgmtCtrlOperations = pMemMgmtCtrlOperations + rectangleCount = rectangleCount + pRectangles = pRectangles } - new(referenceList0EntryCount : byte, pReferenceList0Entries : nativeptr, referenceList1EntryCount : byte, pReferenceList1Entries : nativeptr, pMemMgmtCtrlOperations : nativeptr) = - VkVideoEncodeH264ReferenceListsEXT(Unchecked.defaultof, referenceList0EntryCount, pReferenceList0Entries, referenceList1EntryCount, pReferenceList1Entries, pMemMgmtCtrlOperations) - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.referenceList0EntryCount = Unchecked.defaultof && x.pReferenceList0Entries = Unchecked.defaultof> && x.referenceList1EntryCount = Unchecked.defaultof && x.pReferenceList1Entries = Unchecked.defaultof> && x.pMemMgmtCtrlOperations = Unchecked.defaultof> + x.rectangleCount = Unchecked.defaultof && x.pRectangles = Unchecked.defaultof> static member Empty = - VkVideoEncodeH264ReferenceListsEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof>) + VkPresentRegionKHR(Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "referenceList0EntryCount = %A" x.referenceList0EntryCount - sprintf "pReferenceList0Entries = %A" x.pReferenceList0Entries - sprintf "referenceList1EntryCount = %A" x.referenceList1EntryCount - sprintf "pReferenceList1Entries = %A" x.pReferenceList1Entries - sprintf "pMemMgmtCtrlOperations = %A" x.pMemMgmtCtrlOperations - ] |> sprintf "VkVideoEncodeH264ReferenceListsEXT { %s }" + sprintf "rectangleCount = %A" x.rectangleCount + sprintf "pRectangles = %A" x.pRectangles + ] |> sprintf "VkPresentRegionKHR { %s }" end [] - type VkVideoEncodeH264NaluSliceEXT = + type VkPresentRegionsKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public mbCount : uint32 - val mutable public pReferenceFinalLists : nativeptr - val mutable public pSliceHeaderStd : nativeptr + val mutable public swapchainCount : uint32 + val mutable public pRegions : nativeptr - new(pNext : nativeint, mbCount : uint32, pReferenceFinalLists : nativeptr, pSliceHeaderStd : nativeptr) = + new(pNext : nativeint, swapchainCount : uint32, pRegions : nativeptr) = { - sType = 1000038005u + sType = 1000084000u pNext = pNext - mbCount = mbCount - pReferenceFinalLists = pReferenceFinalLists - pSliceHeaderStd = pSliceHeaderStd + swapchainCount = swapchainCount + pRegions = pRegions } - new(mbCount : uint32, pReferenceFinalLists : nativeptr, pSliceHeaderStd : nativeptr) = - VkVideoEncodeH264NaluSliceEXT(Unchecked.defaultof, mbCount, pReferenceFinalLists, pSliceHeaderStd) + new(swapchainCount : uint32, pRegions : nativeptr) = + VkPresentRegionsKHR(Unchecked.defaultof, swapchainCount, pRegions) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.mbCount = Unchecked.defaultof && x.pReferenceFinalLists = Unchecked.defaultof> && x.pSliceHeaderStd = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.swapchainCount = Unchecked.defaultof && x.pRegions = Unchecked.defaultof> static member Empty = - VkVideoEncodeH264NaluSliceEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof>) + VkPresentRegionsKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "mbCount = %A" x.mbCount - sprintf "pReferenceFinalLists = %A" x.pReferenceFinalLists - sprintf "pSliceHeaderStd = %A" x.pSliceHeaderStd - ] |> sprintf "VkVideoEncodeH264NaluSliceEXT { %s }" + sprintf "swapchainCount = %A" x.swapchainCount + sprintf "pRegions = %A" x.pRegions + ] |> sprintf "VkPresentRegionsKHR { %s }" end - [] - type VkVideoEncodeH264ProfileEXT = - struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public stdProfileIdc : nativeint - new(pNext : nativeint, stdProfileIdc : nativeint) = - { - sType = 1000038007u - pNext = pNext - stdProfileIdc = stdProfileIdc - } - new(stdProfileIdc : nativeint) = - VkVideoEncodeH264ProfileEXT(Unchecked.defaultof, stdProfileIdc) +/// Requires Vulkan11. +/// Promoted to Vulkan13. +module KHRMaintenance4 = + let Type = ExtensionType.Device + let Name = "VK_KHR_maintenance4" + let Number = 414 - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.stdProfileIdc = Unchecked.defaultof + type VkDeviceBufferMemoryRequirementsKHR = Vulkan13.VkDeviceBufferMemoryRequirements - static member Empty = - VkVideoEncodeH264ProfileEXT(Unchecked.defaultof, Unchecked.defaultof) + type VkDeviceImageMemoryRequirementsKHR = Vulkan13.VkDeviceImageMemoryRequirements - override x.ToString() = - String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "stdProfileIdc = %A" x.stdProfileIdc - ] |> sprintf "VkVideoEncodeH264ProfileEXT { %s }" - end + type VkPhysicalDeviceMaintenance4FeaturesKHR = Vulkan13.VkPhysicalDeviceMaintenance4Features + + type VkPhysicalDeviceMaintenance4PropertiesKHR = Vulkan13.VkPhysicalDeviceMaintenance4Properties - [] - type VkVideoEncodeH264QpEXT = - struct - val mutable public qpI : int - val mutable public qpP : int - val mutable public qpB : int - new(qpI : int, qpP : int, qpB : int) = - { - qpI = qpI - qpP = qpP - qpB = qpB - } + [] + module EnumExtensions = + type VkImageAspectFlags with + static member inline NoneKhr = unbox 0 - member x.IsEmpty = - x.qpI = Unchecked.defaultof && x.qpP = Unchecked.defaultof && x.qpB = Unchecked.defaultof + module VkRaw = + [] + type VkGetDeviceBufferMemoryRequirementsKHRDel = delegate of VkDevice * nativeptr * nativeptr -> unit + [] + type VkGetDeviceImageMemoryRequirementsKHRDel = delegate of VkDevice * nativeptr * nativeptr -> unit + [] + type VkGetDeviceImageSparseMemoryRequirementsKHRDel = delegate of VkDevice * nativeptr * nativeptr * nativeptr -> unit - static member Empty = - VkVideoEncodeH264QpEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRMaintenance4") + static let s_vkGetDeviceBufferMemoryRequirementsKHRDel = VkRaw.vkImportInstanceDelegate "vkGetDeviceBufferMemoryRequirementsKHR" + static let s_vkGetDeviceImageMemoryRequirementsKHRDel = VkRaw.vkImportInstanceDelegate "vkGetDeviceImageMemoryRequirementsKHR" + static let s_vkGetDeviceImageSparseMemoryRequirementsKHRDel = VkRaw.vkImportInstanceDelegate "vkGetDeviceImageSparseMemoryRequirementsKHR" + static do Report.End(3) |> ignore + static member vkGetDeviceBufferMemoryRequirementsKHR = s_vkGetDeviceBufferMemoryRequirementsKHRDel + static member vkGetDeviceImageMemoryRequirementsKHR = s_vkGetDeviceImageMemoryRequirementsKHRDel + static member vkGetDeviceImageSparseMemoryRequirementsKHR = s_vkGetDeviceImageSparseMemoryRequirementsKHRDel + let vkGetDeviceBufferMemoryRequirementsKHR(device : VkDevice, pInfo : nativeptr, pMemoryRequirements : nativeptr) = Loader.vkGetDeviceBufferMemoryRequirementsKHR.Invoke(device, pInfo, pMemoryRequirements) + let vkGetDeviceImageMemoryRequirementsKHR(device : VkDevice, pInfo : nativeptr, pMemoryRequirements : nativeptr) = Loader.vkGetDeviceImageMemoryRequirementsKHR.Invoke(device, pInfo, pMemoryRequirements) + let vkGetDeviceImageSparseMemoryRequirementsKHR(device : VkDevice, pInfo : nativeptr, pSparseMemoryRequirementCount : nativeptr, pSparseMemoryRequirements : nativeptr) = Loader.vkGetDeviceImageSparseMemoryRequirementsKHR.Invoke(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) - override x.ToString() = - String.concat "; " [ - sprintf "qpI = %A" x.qpI - sprintf "qpP = %A" x.qpP - sprintf "qpB = %A" x.qpB - ] |> sprintf "VkVideoEncodeH264QpEXT { %s }" - end +/// Requires Vulkan11. +module KHRMaintenance6 = + let Type = ExtensionType.Device + let Name = "VK_KHR_maintenance6" + let Number = 546 [] - type VkVideoEncodeH264RateControlInfoEXT = + type VkBindDescriptorSetsInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public gopFrameCount : uint32 - val mutable public idrPeriod : uint32 - val mutable public consecutiveBFrameCount : uint32 - val mutable public rateControlStructure : VkVideoEncodeH264RateControlStructureFlagsEXT - val mutable public temporalLayerCount : byte + val mutable public stageFlags : VkShaderStageFlags + val mutable public layout : VkPipelineLayout + val mutable public firstSet : uint32 + val mutable public descriptorSetCount : uint32 + val mutable public pDescriptorSets : nativeptr + val mutable public dynamicOffsetCount : uint32 + val mutable public pDynamicOffsets : nativeptr - new(pNext : nativeint, gopFrameCount : uint32, idrPeriod : uint32, consecutiveBFrameCount : uint32, rateControlStructure : VkVideoEncodeH264RateControlStructureFlagsEXT, temporalLayerCount : byte) = + new(pNext : nativeint, stageFlags : VkShaderStageFlags, layout : VkPipelineLayout, firstSet : uint32, descriptorSetCount : uint32, pDescriptorSets : nativeptr, dynamicOffsetCount : uint32, pDynamicOffsets : nativeptr) = { - sType = 1000038008u + sType = 1000545003u pNext = pNext - gopFrameCount = gopFrameCount - idrPeriod = idrPeriod - consecutiveBFrameCount = consecutiveBFrameCount - rateControlStructure = rateControlStructure - temporalLayerCount = temporalLayerCount + stageFlags = stageFlags + layout = layout + firstSet = firstSet + descriptorSetCount = descriptorSetCount + pDescriptorSets = pDescriptorSets + dynamicOffsetCount = dynamicOffsetCount + pDynamicOffsets = pDynamicOffsets } - new(gopFrameCount : uint32, idrPeriod : uint32, consecutiveBFrameCount : uint32, rateControlStructure : VkVideoEncodeH264RateControlStructureFlagsEXT, temporalLayerCount : byte) = - VkVideoEncodeH264RateControlInfoEXT(Unchecked.defaultof, gopFrameCount, idrPeriod, consecutiveBFrameCount, rateControlStructure, temporalLayerCount) + new(stageFlags : VkShaderStageFlags, layout : VkPipelineLayout, firstSet : uint32, descriptorSetCount : uint32, pDescriptorSets : nativeptr, dynamicOffsetCount : uint32, pDynamicOffsets : nativeptr) = + VkBindDescriptorSetsInfoKHR(Unchecked.defaultof, stageFlags, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.gopFrameCount = Unchecked.defaultof && x.idrPeriod = Unchecked.defaultof && x.consecutiveBFrameCount = Unchecked.defaultof && x.rateControlStructure = Unchecked.defaultof && x.temporalLayerCount = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.stageFlags = Unchecked.defaultof && x.layout = Unchecked.defaultof && x.firstSet = Unchecked.defaultof && x.descriptorSetCount = Unchecked.defaultof && x.pDescriptorSets = Unchecked.defaultof> && x.dynamicOffsetCount = Unchecked.defaultof && x.pDynamicOffsets = Unchecked.defaultof> static member Empty = - VkVideoEncodeH264RateControlInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkBindDescriptorSetsInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "gopFrameCount = %A" x.gopFrameCount - sprintf "idrPeriod = %A" x.idrPeriod - sprintf "consecutiveBFrameCount = %A" x.consecutiveBFrameCount - sprintf "rateControlStructure = %A" x.rateControlStructure - sprintf "temporalLayerCount = %A" x.temporalLayerCount - ] |> sprintf "VkVideoEncodeH264RateControlInfoEXT { %s }" + sprintf "stageFlags = %A" x.stageFlags + sprintf "layout = %A" x.layout + sprintf "firstSet = %A" x.firstSet + sprintf "descriptorSetCount = %A" x.descriptorSetCount + sprintf "pDescriptorSets = %A" x.pDescriptorSets + sprintf "dynamicOffsetCount = %A" x.dynamicOffsetCount + sprintf "pDynamicOffsets = %A" x.pDynamicOffsets + ] |> sprintf "VkBindDescriptorSetsInfoKHR { %s }" end [] - type VkVideoEncodeH264RateControlLayerInfoEXT = + type VkBindMemoryStatusKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public temporalLayerId : byte - val mutable public useInitialRcQp : VkBool32 - val mutable public initialRcQp : VkVideoEncodeH264QpEXT - val mutable public useMinQp : VkBool32 - val mutable public minQp : VkVideoEncodeH264QpEXT - val mutable public useMaxQp : VkBool32 - val mutable public maxQp : VkVideoEncodeH264QpEXT - val mutable public useMaxFrameSize : VkBool32 - val mutable public maxFrameSize : VkVideoEncodeH264FrameSizeEXT + val mutable public pResult : nativeptr - new(pNext : nativeint, temporalLayerId : byte, useInitialRcQp : VkBool32, initialRcQp : VkVideoEncodeH264QpEXT, useMinQp : VkBool32, minQp : VkVideoEncodeH264QpEXT, useMaxQp : VkBool32, maxQp : VkVideoEncodeH264QpEXT, useMaxFrameSize : VkBool32, maxFrameSize : VkVideoEncodeH264FrameSizeEXT) = + new(pNext : nativeint, pResult : nativeptr) = { - sType = 1000038009u + sType = 1000545002u pNext = pNext - temporalLayerId = temporalLayerId - useInitialRcQp = useInitialRcQp - initialRcQp = initialRcQp - useMinQp = useMinQp - minQp = minQp - useMaxQp = useMaxQp - maxQp = maxQp - useMaxFrameSize = useMaxFrameSize - maxFrameSize = maxFrameSize + pResult = pResult } - new(temporalLayerId : byte, useInitialRcQp : VkBool32, initialRcQp : VkVideoEncodeH264QpEXT, useMinQp : VkBool32, minQp : VkVideoEncodeH264QpEXT, useMaxQp : VkBool32, maxQp : VkVideoEncodeH264QpEXT, useMaxFrameSize : VkBool32, maxFrameSize : VkVideoEncodeH264FrameSizeEXT) = - VkVideoEncodeH264RateControlLayerInfoEXT(Unchecked.defaultof, temporalLayerId, useInitialRcQp, initialRcQp, useMinQp, minQp, useMaxQp, maxQp, useMaxFrameSize, maxFrameSize) + new(pResult : nativeptr) = + VkBindMemoryStatusKHR(Unchecked.defaultof, pResult) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.temporalLayerId = Unchecked.defaultof && x.useInitialRcQp = Unchecked.defaultof && x.initialRcQp = Unchecked.defaultof && x.useMinQp = Unchecked.defaultof && x.minQp = Unchecked.defaultof && x.useMaxQp = Unchecked.defaultof && x.maxQp = Unchecked.defaultof && x.useMaxFrameSize = Unchecked.defaultof && x.maxFrameSize = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.pResult = Unchecked.defaultof> static member Empty = - VkVideoEncodeH264RateControlLayerInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkBindMemoryStatusKHR(Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "temporalLayerId = %A" x.temporalLayerId - sprintf "useInitialRcQp = %A" x.useInitialRcQp - sprintf "initialRcQp = %A" x.initialRcQp - sprintf "useMinQp = %A" x.useMinQp - sprintf "minQp = %A" x.minQp - sprintf "useMaxQp = %A" x.useMaxQp - sprintf "maxQp = %A" x.maxQp - sprintf "useMaxFrameSize = %A" x.useMaxFrameSize - sprintf "maxFrameSize = %A" x.maxFrameSize - ] |> sprintf "VkVideoEncodeH264RateControlLayerInfoEXT { %s }" + sprintf "pResult = %A" x.pResult + ] |> sprintf "VkBindMemoryStatusKHR { %s }" end [] - type VkVideoEncodeH264SessionParametersAddInfoEXT = + type VkPhysicalDeviceMaintenance6FeaturesKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public spsStdCount : uint32 - val mutable public pSpsStd : nativeptr - val mutable public ppsStdCount : uint32 - val mutable public pPpsStd : nativeptr + val mutable public maintenance6 : VkBool32 - new(pNext : nativeint, spsStdCount : uint32, pSpsStd : nativeptr, ppsStdCount : uint32, pPpsStd : nativeptr) = + new(pNext : nativeint, maintenance6 : VkBool32) = { - sType = 1000038002u + sType = 1000545000u pNext = pNext - spsStdCount = spsStdCount - pSpsStd = pSpsStd - ppsStdCount = ppsStdCount - pPpsStd = pPpsStd + maintenance6 = maintenance6 } - new(spsStdCount : uint32, pSpsStd : nativeptr, ppsStdCount : uint32, pPpsStd : nativeptr) = - VkVideoEncodeH264SessionParametersAddInfoEXT(Unchecked.defaultof, spsStdCount, pSpsStd, ppsStdCount, pPpsStd) + new(maintenance6 : VkBool32) = + VkPhysicalDeviceMaintenance6FeaturesKHR(Unchecked.defaultof, maintenance6) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.spsStdCount = Unchecked.defaultof && x.pSpsStd = Unchecked.defaultof> && x.ppsStdCount = Unchecked.defaultof && x.pPpsStd = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.maintenance6 = Unchecked.defaultof static member Empty = - VkVideoEncodeH264SessionParametersAddInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>) + VkPhysicalDeviceMaintenance6FeaturesKHR(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "spsStdCount = %A" x.spsStdCount - sprintf "pSpsStd = %A" x.pSpsStd - sprintf "ppsStdCount = %A" x.ppsStdCount - sprintf "pPpsStd = %A" x.pPpsStd - ] |> sprintf "VkVideoEncodeH264SessionParametersAddInfoEXT { %s }" + sprintf "maintenance6 = %A" x.maintenance6 + ] |> sprintf "VkPhysicalDeviceMaintenance6FeaturesKHR { %s }" end [] - type VkVideoEncodeH264SessionParametersCreateInfoEXT = + type VkPhysicalDeviceMaintenance6PropertiesKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public maxSpsStdCount : uint32 - val mutable public maxPpsStdCount : uint32 - val mutable public pParametersAddInfo : nativeptr + val mutable public blockTexelViewCompatibleMultipleLayers : VkBool32 + val mutable public maxCombinedImageSamplerDescriptorCount : uint32 + val mutable public fragmentShadingRateClampCombinerInputs : VkBool32 - new(pNext : nativeint, maxSpsStdCount : uint32, maxPpsStdCount : uint32, pParametersAddInfo : nativeptr) = + new(pNext : nativeint, blockTexelViewCompatibleMultipleLayers : VkBool32, maxCombinedImageSamplerDescriptorCount : uint32, fragmentShadingRateClampCombinerInputs : VkBool32) = { - sType = 1000038001u + sType = 1000545001u pNext = pNext - maxSpsStdCount = maxSpsStdCount - maxPpsStdCount = maxPpsStdCount - pParametersAddInfo = pParametersAddInfo + blockTexelViewCompatibleMultipleLayers = blockTexelViewCompatibleMultipleLayers + maxCombinedImageSamplerDescriptorCount = maxCombinedImageSamplerDescriptorCount + fragmentShadingRateClampCombinerInputs = fragmentShadingRateClampCombinerInputs } - new(maxSpsStdCount : uint32, maxPpsStdCount : uint32, pParametersAddInfo : nativeptr) = - VkVideoEncodeH264SessionParametersCreateInfoEXT(Unchecked.defaultof, maxSpsStdCount, maxPpsStdCount, pParametersAddInfo) + new(blockTexelViewCompatibleMultipleLayers : VkBool32, maxCombinedImageSamplerDescriptorCount : uint32, fragmentShadingRateClampCombinerInputs : VkBool32) = + VkPhysicalDeviceMaintenance6PropertiesKHR(Unchecked.defaultof, blockTexelViewCompatibleMultipleLayers, maxCombinedImageSamplerDescriptorCount, fragmentShadingRateClampCombinerInputs) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.maxSpsStdCount = Unchecked.defaultof && x.maxPpsStdCount = Unchecked.defaultof && x.pParametersAddInfo = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.blockTexelViewCompatibleMultipleLayers = Unchecked.defaultof && x.maxCombinedImageSamplerDescriptorCount = Unchecked.defaultof && x.fragmentShadingRateClampCombinerInputs = Unchecked.defaultof static member Empty = - VkVideoEncodeH264SessionParametersCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + VkPhysicalDeviceMaintenance6PropertiesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "maxSpsStdCount = %A" x.maxSpsStdCount - sprintf "maxPpsStdCount = %A" x.maxPpsStdCount - sprintf "pParametersAddInfo = %A" x.pParametersAddInfo - ] |> sprintf "VkVideoEncodeH264SessionParametersCreateInfoEXT { %s }" + sprintf "blockTexelViewCompatibleMultipleLayers = %A" x.blockTexelViewCompatibleMultipleLayers + sprintf "maxCombinedImageSamplerDescriptorCount = %A" x.maxCombinedImageSamplerDescriptorCount + sprintf "fragmentShadingRateClampCombinerInputs = %A" x.fragmentShadingRateClampCombinerInputs + ] |> sprintf "VkPhysicalDeviceMaintenance6PropertiesKHR { %s }" end [] - type VkVideoEncodeH264VclFrameInfoEXT = + type VkPushConstantsInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public pReferenceFinalLists : nativeptr - val mutable public naluSliceEntryCount : uint32 - val mutable public pNaluSliceEntries : nativeptr - val mutable public pCurrentPictureInfo : nativeptr + val mutable public layout : VkPipelineLayout + val mutable public stageFlags : VkShaderStageFlags + val mutable public offset : uint32 + val mutable public size : uint32 + val mutable public pValues : nativeint - new(pNext : nativeint, pReferenceFinalLists : nativeptr, naluSliceEntryCount : uint32, pNaluSliceEntries : nativeptr, pCurrentPictureInfo : nativeptr) = + new(pNext : nativeint, layout : VkPipelineLayout, stageFlags : VkShaderStageFlags, offset : uint32, size : uint32, pValues : nativeint) = { - sType = 1000038003u + sType = 1000545004u pNext = pNext - pReferenceFinalLists = pReferenceFinalLists - naluSliceEntryCount = naluSliceEntryCount - pNaluSliceEntries = pNaluSliceEntries - pCurrentPictureInfo = pCurrentPictureInfo + layout = layout + stageFlags = stageFlags + offset = offset + size = size + pValues = pValues } - new(pReferenceFinalLists : nativeptr, naluSliceEntryCount : uint32, pNaluSliceEntries : nativeptr, pCurrentPictureInfo : nativeptr) = - VkVideoEncodeH264VclFrameInfoEXT(Unchecked.defaultof, pReferenceFinalLists, naluSliceEntryCount, pNaluSliceEntries, pCurrentPictureInfo) + new(layout : VkPipelineLayout, stageFlags : VkShaderStageFlags, offset : uint32, size : uint32, pValues : nativeint) = + VkPushConstantsInfoKHR(Unchecked.defaultof, layout, stageFlags, offset, size, pValues) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.pReferenceFinalLists = Unchecked.defaultof> && x.naluSliceEntryCount = Unchecked.defaultof && x.pNaluSliceEntries = Unchecked.defaultof> && x.pCurrentPictureInfo = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.layout = Unchecked.defaultof && x.stageFlags = Unchecked.defaultof && x.offset = Unchecked.defaultof && x.size = Unchecked.defaultof && x.pValues = Unchecked.defaultof static member Empty = - VkVideoEncodeH264VclFrameInfoEXT(Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof>) + VkPushConstantsInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "pReferenceFinalLists = %A" x.pReferenceFinalLists - sprintf "naluSliceEntryCount = %A" x.naluSliceEntryCount - sprintf "pNaluSliceEntries = %A" x.pNaluSliceEntries - sprintf "pCurrentPictureInfo = %A" x.pCurrentPictureInfo - ] |> sprintf "VkVideoEncodeH264VclFrameInfoEXT { %s }" + sprintf "layout = %A" x.layout + sprintf "stageFlags = %A" x.stageFlags + sprintf "offset = %A" x.offset + sprintf "size = %A" x.size + sprintf "pValues = %A" x.pValues + ] |> sprintf "VkPushConstantsInfoKHR { %s }" end + module VkRaw = + [] + type VkCmdBindDescriptorSets2KHRDel = delegate of VkCommandBuffer * nativeptr -> unit + [] + type VkCmdPushConstants2KHRDel = delegate of VkCommandBuffer * nativeptr -> unit + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRMaintenance6") + static let s_vkCmdBindDescriptorSets2KHRDel = VkRaw.vkImportInstanceDelegate "vkCmdBindDescriptorSets2KHR" + static let s_vkCmdPushConstants2KHRDel = VkRaw.vkImportInstanceDelegate "vkCmdPushConstants2KHR" + static do Report.End(3) |> ignore + static member vkCmdBindDescriptorSets2KHR = s_vkCmdBindDescriptorSets2KHRDel + static member vkCmdPushConstants2KHR = s_vkCmdPushConstants2KHRDel + let vkCmdBindDescriptorSets2KHR(commandBuffer : VkCommandBuffer, pBindDescriptorSetsInfo : nativeptr) = Loader.vkCmdBindDescriptorSets2KHR.Invoke(commandBuffer, pBindDescriptorSetsInfo) + let vkCmdPushConstants2KHR(commandBuffer : VkCommandBuffer, pPushConstantsInfo : nativeptr) = Loader.vkCmdPushConstants2KHR.Invoke(commandBuffer, pPushConstantsInfo) + [] - module EnumExtensions = - type VkVideoCodecOperationFlagsKHR with - static member inline EncodeH264BitExt = unbox 0x00010000 - - -module EXTVideoEncodeH265 = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - open KHRSynchronization2 - open KHRVideoEncodeQueue - open KHRVideoQueue - let Name = "VK_EXT_video_encode_h265" - let Number = 40 + module ``KHRPushDescriptor`` = + [] + type VkPushDescriptorSetInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public stageFlags : VkShaderStageFlags + val mutable public layout : VkPipelineLayout + val mutable public set : uint32 + val mutable public descriptorWriteCount : uint32 + val mutable public pDescriptorWrites : nativeptr - let Required = [ KHRVideoEncodeQueue.Name ] + new(pNext : nativeint, stageFlags : VkShaderStageFlags, layout : VkPipelineLayout, set : uint32, descriptorWriteCount : uint32, pDescriptorWrites : nativeptr) = + { + sType = 1000545005u + pNext = pNext + stageFlags = stageFlags + layout = layout + set = set + descriptorWriteCount = descriptorWriteCount + pDescriptorWrites = pDescriptorWrites + } + new(stageFlags : VkShaderStageFlags, layout : VkPipelineLayout, set : uint32, descriptorWriteCount : uint32, pDescriptorWrites : nativeptr) = + VkPushDescriptorSetInfoKHR(Unchecked.defaultof, stageFlags, layout, set, descriptorWriteCount, pDescriptorWrites) - [] - type VkVideoEncodeH265CapabilityFlagsEXT = - | All = 67108863 - | None = 0 - | SeparateColourPlaneBit = 0x00000001 - | ScalingListsBit = 0x00000002 - | SampleAdaptiveOffsetEnabledBit = 0x00000004 - | PcmEnableBit = 0x00000008 - | SpsTemporalMvpEnabledBit = 0x00000010 - | HrdComplianceBit = 0x00000020 - | InitQpMinus26Bit = 0x00000040 - | Log2ParallelMergeLevelMinus2Bit = 0x00000080 - | SignDataHidingEnabledBit = 0x00000100 - | TransformSkipEnabledBit = 0x00000200 - | TransformSkipDisabledBit = 0x00000400 - | PpsSliceChromaQpOffsetsPresentBit = 0x00000800 - | WeightedPredBit = 0x00001000 - | WeightedBipredBit = 0x00002000 - | WeightedPredNoTableBit = 0x00004000 - | TransquantBypassEnabledBit = 0x00008000 - | EntropyCodingSyncEnabledBit = 0x00010000 - | DeblockingFilterOverrideEnabledBit = 0x00020000 - | MultipleTilePerFrameBit = 0x00040000 - | MultipleSlicePerTileBit = 0x00080000 - | MultipleTilePerSliceBit = 0x00100000 - | SliceSegmentCtbCountBit = 0x00200000 - | RowUnalignedSliceSegmentBit = 0x00400000 - | DependentSliceSegmentBit = 0x00800000 - | DifferentSliceTypeBit = 0x01000000 - | BFrameInL1ListBit = 0x02000000 + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.stageFlags = Unchecked.defaultof && x.layout = Unchecked.defaultof && x.set = Unchecked.defaultof && x.descriptorWriteCount = Unchecked.defaultof && x.pDescriptorWrites = Unchecked.defaultof> - [] - type VkVideoEncodeH265InputModeFlagsEXT = - | All = 7 - | None = 0 - | FrameBit = 0x00000001 - | SliceSegmentBit = 0x00000002 - | NonVclBit = 0x00000004 + static member Empty = + VkPushDescriptorSetInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) - [] - type VkVideoEncodeH265OutputModeFlagsEXT = - | All = 7 - | None = 0 - | FrameBit = 0x00000001 - | SliceSegmentBit = 0x00000002 - | NonVclBit = 0x00000004 + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "stageFlags = %A" x.stageFlags + sprintf "layout = %A" x.layout + sprintf "set = %A" x.set + sprintf "descriptorWriteCount = %A" x.descriptorWriteCount + sprintf "pDescriptorWrites = %A" x.pDescriptorWrites + ] |> sprintf "VkPushDescriptorSetInfoKHR { %s }" + end - [] - type VkVideoEncodeH265CtbSizeFlagsEXT = - | All = 7 - | None = 0 - | D16Bit = 0x00000001 - | D32Bit = 0x00000002 - | D64Bit = 0x00000004 + [] + type VkPushDescriptorSetWithTemplateInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public descriptorUpdateTemplate : Vulkan11.VkDescriptorUpdateTemplate + val mutable public layout : VkPipelineLayout + val mutable public set : uint32 + val mutable public pData : nativeint + + new(pNext : nativeint, descriptorUpdateTemplate : Vulkan11.VkDescriptorUpdateTemplate, layout : VkPipelineLayout, set : uint32, pData : nativeint) = + { + sType = 1000545006u + pNext = pNext + descriptorUpdateTemplate = descriptorUpdateTemplate + layout = layout + set = set + pData = pData + } + + new(descriptorUpdateTemplate : Vulkan11.VkDescriptorUpdateTemplate, layout : VkPipelineLayout, set : uint32, pData : nativeint) = + VkPushDescriptorSetWithTemplateInfoKHR(Unchecked.defaultof, descriptorUpdateTemplate, layout, set, pData) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.descriptorUpdateTemplate = Unchecked.defaultof && x.layout = Unchecked.defaultof && x.set = Unchecked.defaultof && x.pData = Unchecked.defaultof + + static member Empty = + VkPushDescriptorSetWithTemplateInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "descriptorUpdateTemplate = %A" x.descriptorUpdateTemplate + sprintf "layout = %A" x.layout + sprintf "set = %A" x.set + sprintf "pData = %A" x.pData + ] |> sprintf "VkPushDescriptorSetWithTemplateInfoKHR { %s }" + end + + + module VkRaw = + [] + type VkCmdPushDescriptorSet2KHRDel = delegate of VkCommandBuffer * nativeptr -> unit + [] + type VkCmdPushDescriptorSetWithTemplate2KHRDel = delegate of VkCommandBuffer * nativeptr -> unit + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRMaintenance6 -> KHRPushDescriptor") + static let s_vkCmdPushDescriptorSet2KHRDel = VkRaw.vkImportInstanceDelegate "vkCmdPushDescriptorSet2KHR" + static let s_vkCmdPushDescriptorSetWithTemplate2KHRDel = VkRaw.vkImportInstanceDelegate "vkCmdPushDescriptorSetWithTemplate2KHR" + static do Report.End(3) |> ignore + static member vkCmdPushDescriptorSet2KHR = s_vkCmdPushDescriptorSet2KHRDel + static member vkCmdPushDescriptorSetWithTemplate2KHR = s_vkCmdPushDescriptorSetWithTemplate2KHRDel + let vkCmdPushDescriptorSet2KHR(commandBuffer : VkCommandBuffer, pPushDescriptorSetInfo : nativeptr) = Loader.vkCmdPushDescriptorSet2KHR.Invoke(commandBuffer, pPushDescriptorSetInfo) + let vkCmdPushDescriptorSetWithTemplate2KHR(commandBuffer : VkCommandBuffer, pPushDescriptorSetWithTemplateInfo : nativeptr) = Loader.vkCmdPushDescriptorSetWithTemplate2KHR.Invoke(commandBuffer, pPushDescriptorSetWithTemplateInfo) + + [] + module ``EXTDescriptorBuffer`` = + [] + type VkBindDescriptorBufferEmbeddedSamplersInfoEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public stageFlags : VkShaderStageFlags + val mutable public layout : VkPipelineLayout + val mutable public set : uint32 + + new(pNext : nativeint, stageFlags : VkShaderStageFlags, layout : VkPipelineLayout, set : uint32) = + { + sType = 1000545008u + pNext = pNext + stageFlags = stageFlags + layout = layout + set = set + } + + new(stageFlags : VkShaderStageFlags, layout : VkPipelineLayout, set : uint32) = + VkBindDescriptorBufferEmbeddedSamplersInfoEXT(Unchecked.defaultof, stageFlags, layout, set) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.stageFlags = Unchecked.defaultof && x.layout = Unchecked.defaultof && x.set = Unchecked.defaultof + + static member Empty = + VkBindDescriptorBufferEmbeddedSamplersInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "stageFlags = %A" x.stageFlags + sprintf "layout = %A" x.layout + sprintf "set = %A" x.set + ] |> sprintf "VkBindDescriptorBufferEmbeddedSamplersInfoEXT { %s }" + end + + [] + type VkSetDescriptorBufferOffsetsInfoEXT = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public stageFlags : VkShaderStageFlags + val mutable public layout : VkPipelineLayout + val mutable public firstSet : uint32 + val mutable public setCount : uint32 + val mutable public pBufferIndices : nativeptr + val mutable public pOffsets : nativeptr + + new(pNext : nativeint, stageFlags : VkShaderStageFlags, layout : VkPipelineLayout, firstSet : uint32, setCount : uint32, pBufferIndices : nativeptr, pOffsets : nativeptr) = + { + sType = 1000545007u + pNext = pNext + stageFlags = stageFlags + layout = layout + firstSet = firstSet + setCount = setCount + pBufferIndices = pBufferIndices + pOffsets = pOffsets + } + + new(stageFlags : VkShaderStageFlags, layout : VkPipelineLayout, firstSet : uint32, setCount : uint32, pBufferIndices : nativeptr, pOffsets : nativeptr) = + VkSetDescriptorBufferOffsetsInfoEXT(Unchecked.defaultof, stageFlags, layout, firstSet, setCount, pBufferIndices, pOffsets) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.stageFlags = Unchecked.defaultof && x.layout = Unchecked.defaultof && x.firstSet = Unchecked.defaultof && x.setCount = Unchecked.defaultof && x.pBufferIndices = Unchecked.defaultof> && x.pOffsets = Unchecked.defaultof> + + static member Empty = + VkSetDescriptorBufferOffsetsInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof>) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "stageFlags = %A" x.stageFlags + sprintf "layout = %A" x.layout + sprintf "firstSet = %A" x.firstSet + sprintf "setCount = %A" x.setCount + sprintf "pBufferIndices = %A" x.pBufferIndices + sprintf "pOffsets = %A" x.pOffsets + ] |> sprintf "VkSetDescriptorBufferOffsetsInfoEXT { %s }" + end + + + module VkRaw = + [] + type VkCmdSetDescriptorBufferOffsets2EXTDel = delegate of VkCommandBuffer * nativeptr -> unit + [] + type VkCmdBindDescriptorBufferEmbeddedSamplers2EXTDel = delegate of VkCommandBuffer * nativeptr -> unit + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRMaintenance6 -> EXTDescriptorBuffer") + static let s_vkCmdSetDescriptorBufferOffsets2EXTDel = VkRaw.vkImportInstanceDelegate "vkCmdSetDescriptorBufferOffsets2EXT" + static let s_vkCmdBindDescriptorBufferEmbeddedSamplers2EXTDel = VkRaw.vkImportInstanceDelegate "vkCmdBindDescriptorBufferEmbeddedSamplers2EXT" + static do Report.End(3) |> ignore + static member vkCmdSetDescriptorBufferOffsets2EXT = s_vkCmdSetDescriptorBufferOffsets2EXTDel + static member vkCmdBindDescriptorBufferEmbeddedSamplers2EXT = s_vkCmdBindDescriptorBufferEmbeddedSamplers2EXTDel + let vkCmdSetDescriptorBufferOffsets2EXT(commandBuffer : VkCommandBuffer, pSetDescriptorBufferOffsetsInfo : nativeptr) = Loader.vkCmdSetDescriptorBufferOffsets2EXT.Invoke(commandBuffer, pSetDescriptorBufferOffsetsInfo) + let vkCmdBindDescriptorBufferEmbeddedSamplers2EXT(commandBuffer : VkCommandBuffer, pBindDescriptorBufferEmbeddedSamplersInfo : nativeptr) = Loader.vkCmdBindDescriptorBufferEmbeddedSamplers2EXT.Invoke(commandBuffer, pBindDescriptorBufferEmbeddedSamplersInfo) + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module KHRPerformanceQuery = + let Type = ExtensionType.Device + let Name = "VK_KHR_performance_query" + let Number = 117 [] - type VkVideoEncodeH265TransformBlockSizeFlagsEXT = - | All = 15 + type VkPerformanceCounterDescriptionFlagsKHR = + | All = 3 | None = 0 - | D4Bit = 0x00000001 - | D8Bit = 0x00000002 - | D16Bit = 0x00000004 - | D32Bit = 0x00000008 + | PerformanceImpactingBit = 0x00000001 + | ConcurrentlyImpactedBit = 0x00000002 + + type VkPerformanceCounterScopeKHR = + | CommandBuffer = 0 + | RenderPass = 1 + | Command = 2 + + type VkPerformanceCounterStorageKHR = + | Int32 = 0 + | Int64 = 1 + | Uint32 = 2 + | Uint64 = 3 + | Float32 = 4 + | Float64 = 5 + + type VkPerformanceCounterUnitKHR = + | Generic = 0 + | Percentage = 1 + | Nanoseconds = 2 + | Bytes = 3 + | BytesPerSecond = 4 + | Kelvin = 5 + | Watts = 6 + | Volts = 7 + | Amps = 8 + | Hertz = 9 + | Cycles = 10 [] - type VkVideoEncodeH265RateControlStructureFlagsEXT = - | All = 3 - | Unknown = 0 - | FlatBit = 0x00000001 - | DyadicBit = 0x00000002 + type VkAcquireProfilingLockFlagsKHR = + | All = 0 + | None = 0 [] - type VkVideoEncodeH265CapabilitiesEXT = + type VkAcquireProfilingLockInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public flags : VkVideoEncodeH265CapabilityFlagsEXT - val mutable public inputModeFlags : VkVideoEncodeH265InputModeFlagsEXT - val mutable public outputModeFlags : VkVideoEncodeH265OutputModeFlagsEXT - val mutable public ctbSizes : VkVideoEncodeH265CtbSizeFlagsEXT - val mutable public transformBlockSizes : VkVideoEncodeH265TransformBlockSizeFlagsEXT - val mutable public maxPPictureL0ReferenceCount : byte - val mutable public maxBPictureL0ReferenceCount : byte - val mutable public maxL1ReferenceCount : byte - val mutable public maxSubLayersCount : byte - val mutable public minLog2MinLumaCodingBlockSizeMinus3 : byte - val mutable public maxLog2MinLumaCodingBlockSizeMinus3 : byte - val mutable public minLog2MinLumaTransformBlockSizeMinus2 : byte - val mutable public maxLog2MinLumaTransformBlockSizeMinus2 : byte - val mutable public minMaxTransformHierarchyDepthInter : byte - val mutable public maxMaxTransformHierarchyDepthInter : byte - val mutable public minMaxTransformHierarchyDepthIntra : byte - val mutable public maxMaxTransformHierarchyDepthIntra : byte - val mutable public maxDiffCuQpDeltaDepth : byte - val mutable public minMaxNumMergeCand : byte - val mutable public maxMaxNumMergeCand : byte + val mutable public flags : VkAcquireProfilingLockFlagsKHR + val mutable public timeout : uint64 - new(pNext : nativeint, flags : VkVideoEncodeH265CapabilityFlagsEXT, inputModeFlags : VkVideoEncodeH265InputModeFlagsEXT, outputModeFlags : VkVideoEncodeH265OutputModeFlagsEXT, ctbSizes : VkVideoEncodeH265CtbSizeFlagsEXT, transformBlockSizes : VkVideoEncodeH265TransformBlockSizeFlagsEXT, maxPPictureL0ReferenceCount : byte, maxBPictureL0ReferenceCount : byte, maxL1ReferenceCount : byte, maxSubLayersCount : byte, minLog2MinLumaCodingBlockSizeMinus3 : byte, maxLog2MinLumaCodingBlockSizeMinus3 : byte, minLog2MinLumaTransformBlockSizeMinus2 : byte, maxLog2MinLumaTransformBlockSizeMinus2 : byte, minMaxTransformHierarchyDepthInter : byte, maxMaxTransformHierarchyDepthInter : byte, minMaxTransformHierarchyDepthIntra : byte, maxMaxTransformHierarchyDepthIntra : byte, maxDiffCuQpDeltaDepth : byte, minMaxNumMergeCand : byte, maxMaxNumMergeCand : byte) = + new(pNext : nativeint, flags : VkAcquireProfilingLockFlagsKHR, timeout : uint64) = { - sType = 1000039000u + sType = 1000116004u pNext = pNext flags = flags - inputModeFlags = inputModeFlags - outputModeFlags = outputModeFlags - ctbSizes = ctbSizes - transformBlockSizes = transformBlockSizes - maxPPictureL0ReferenceCount = maxPPictureL0ReferenceCount - maxBPictureL0ReferenceCount = maxBPictureL0ReferenceCount - maxL1ReferenceCount = maxL1ReferenceCount - maxSubLayersCount = maxSubLayersCount - minLog2MinLumaCodingBlockSizeMinus3 = minLog2MinLumaCodingBlockSizeMinus3 - maxLog2MinLumaCodingBlockSizeMinus3 = maxLog2MinLumaCodingBlockSizeMinus3 - minLog2MinLumaTransformBlockSizeMinus2 = minLog2MinLumaTransformBlockSizeMinus2 - maxLog2MinLumaTransformBlockSizeMinus2 = maxLog2MinLumaTransformBlockSizeMinus2 - minMaxTransformHierarchyDepthInter = minMaxTransformHierarchyDepthInter - maxMaxTransformHierarchyDepthInter = maxMaxTransformHierarchyDepthInter - minMaxTransformHierarchyDepthIntra = minMaxTransformHierarchyDepthIntra - maxMaxTransformHierarchyDepthIntra = maxMaxTransformHierarchyDepthIntra - maxDiffCuQpDeltaDepth = maxDiffCuQpDeltaDepth - minMaxNumMergeCand = minMaxNumMergeCand - maxMaxNumMergeCand = maxMaxNumMergeCand + timeout = timeout } - new(flags : VkVideoEncodeH265CapabilityFlagsEXT, inputModeFlags : VkVideoEncodeH265InputModeFlagsEXT, outputModeFlags : VkVideoEncodeH265OutputModeFlagsEXT, ctbSizes : VkVideoEncodeH265CtbSizeFlagsEXT, transformBlockSizes : VkVideoEncodeH265TransformBlockSizeFlagsEXT, maxPPictureL0ReferenceCount : byte, maxBPictureL0ReferenceCount : byte, maxL1ReferenceCount : byte, maxSubLayersCount : byte, minLog2MinLumaCodingBlockSizeMinus3 : byte, maxLog2MinLumaCodingBlockSizeMinus3 : byte, minLog2MinLumaTransformBlockSizeMinus2 : byte, maxLog2MinLumaTransformBlockSizeMinus2 : byte, minMaxTransformHierarchyDepthInter : byte, maxMaxTransformHierarchyDepthInter : byte, minMaxTransformHierarchyDepthIntra : byte, maxMaxTransformHierarchyDepthIntra : byte, maxDiffCuQpDeltaDepth : byte, minMaxNumMergeCand : byte, maxMaxNumMergeCand : byte) = - VkVideoEncodeH265CapabilitiesEXT(Unchecked.defaultof, flags, inputModeFlags, outputModeFlags, ctbSizes, transformBlockSizes, maxPPictureL0ReferenceCount, maxBPictureL0ReferenceCount, maxL1ReferenceCount, maxSubLayersCount, minLog2MinLumaCodingBlockSizeMinus3, maxLog2MinLumaCodingBlockSizeMinus3, minLog2MinLumaTransformBlockSizeMinus2, maxLog2MinLumaTransformBlockSizeMinus2, minMaxTransformHierarchyDepthInter, maxMaxTransformHierarchyDepthInter, minMaxTransformHierarchyDepthIntra, maxMaxTransformHierarchyDepthIntra, maxDiffCuQpDeltaDepth, minMaxNumMergeCand, maxMaxNumMergeCand) + new(flags : VkAcquireProfilingLockFlagsKHR, timeout : uint64) = + VkAcquireProfilingLockInfoKHR(Unchecked.defaultof, flags, timeout) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.inputModeFlags = Unchecked.defaultof && x.outputModeFlags = Unchecked.defaultof && x.ctbSizes = Unchecked.defaultof && x.transformBlockSizes = Unchecked.defaultof && x.maxPPictureL0ReferenceCount = Unchecked.defaultof && x.maxBPictureL0ReferenceCount = Unchecked.defaultof && x.maxL1ReferenceCount = Unchecked.defaultof && x.maxSubLayersCount = Unchecked.defaultof && x.minLog2MinLumaCodingBlockSizeMinus3 = Unchecked.defaultof && x.maxLog2MinLumaCodingBlockSizeMinus3 = Unchecked.defaultof && x.minLog2MinLumaTransformBlockSizeMinus2 = Unchecked.defaultof && x.maxLog2MinLumaTransformBlockSizeMinus2 = Unchecked.defaultof && x.minMaxTransformHierarchyDepthInter = Unchecked.defaultof && x.maxMaxTransformHierarchyDepthInter = Unchecked.defaultof && x.minMaxTransformHierarchyDepthIntra = Unchecked.defaultof && x.maxMaxTransformHierarchyDepthIntra = Unchecked.defaultof && x.maxDiffCuQpDeltaDepth = Unchecked.defaultof && x.minMaxNumMergeCand = Unchecked.defaultof && x.maxMaxNumMergeCand = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.timeout = Unchecked.defaultof static member Empty = - VkVideoEncodeH265CapabilitiesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkAcquireProfilingLockInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext sprintf "flags = %A" x.flags - sprintf "inputModeFlags = %A" x.inputModeFlags - sprintf "outputModeFlags = %A" x.outputModeFlags - sprintf "ctbSizes = %A" x.ctbSizes - sprintf "transformBlockSizes = %A" x.transformBlockSizes - sprintf "maxPPictureL0ReferenceCount = %A" x.maxPPictureL0ReferenceCount - sprintf "maxBPictureL0ReferenceCount = %A" x.maxBPictureL0ReferenceCount - sprintf "maxL1ReferenceCount = %A" x.maxL1ReferenceCount - sprintf "maxSubLayersCount = %A" x.maxSubLayersCount - sprintf "minLog2MinLumaCodingBlockSizeMinus3 = %A" x.minLog2MinLumaCodingBlockSizeMinus3 - sprintf "maxLog2MinLumaCodingBlockSizeMinus3 = %A" x.maxLog2MinLumaCodingBlockSizeMinus3 - sprintf "minLog2MinLumaTransformBlockSizeMinus2 = %A" x.minLog2MinLumaTransformBlockSizeMinus2 - sprintf "maxLog2MinLumaTransformBlockSizeMinus2 = %A" x.maxLog2MinLumaTransformBlockSizeMinus2 - sprintf "minMaxTransformHierarchyDepthInter = %A" x.minMaxTransformHierarchyDepthInter - sprintf "maxMaxTransformHierarchyDepthInter = %A" x.maxMaxTransformHierarchyDepthInter - sprintf "minMaxTransformHierarchyDepthIntra = %A" x.minMaxTransformHierarchyDepthIntra - sprintf "maxMaxTransformHierarchyDepthIntra = %A" x.maxMaxTransformHierarchyDepthIntra - sprintf "maxDiffCuQpDeltaDepth = %A" x.maxDiffCuQpDeltaDepth - sprintf "minMaxNumMergeCand = %A" x.minMaxNumMergeCand - sprintf "maxMaxNumMergeCand = %A" x.maxMaxNumMergeCand - ] |> sprintf "VkVideoEncodeH265CapabilitiesEXT { %s }" + sprintf "timeout = %A" x.timeout + ] |> sprintf "VkAcquireProfilingLockInfoKHR { %s }" end [] - type VkVideoEncodeH265DpbSlotInfoEXT = + type VkPerformanceCounterDescriptionKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public slotIndex : int8 - val mutable public pStdReferenceInfo : nativeptr + val mutable public flags : VkPerformanceCounterDescriptionFlagsKHR + val mutable public name : String256 + val mutable public category : String256 + val mutable public description : String256 - new(pNext : nativeint, slotIndex : int8, pStdReferenceInfo : nativeptr) = + new(pNext : nativeint, flags : VkPerformanceCounterDescriptionFlagsKHR, name : String256, category : String256, description : String256) = { - sType = 1000039004u + sType = 1000116006u pNext = pNext - slotIndex = slotIndex - pStdReferenceInfo = pStdReferenceInfo + flags = flags + name = name + category = category + description = description } - new(slotIndex : int8, pStdReferenceInfo : nativeptr) = - VkVideoEncodeH265DpbSlotInfoEXT(Unchecked.defaultof, slotIndex, pStdReferenceInfo) + new(flags : VkPerformanceCounterDescriptionFlagsKHR, name : String256, category : String256, description : String256) = + VkPerformanceCounterDescriptionKHR(Unchecked.defaultof, flags, name, category, description) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.slotIndex = Unchecked.defaultof && x.pStdReferenceInfo = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.name = Unchecked.defaultof && x.category = Unchecked.defaultof && x.description = Unchecked.defaultof static member Empty = - VkVideoEncodeH265DpbSlotInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + VkPerformanceCounterDescriptionKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "slotIndex = %A" x.slotIndex - sprintf "pStdReferenceInfo = %A" x.pStdReferenceInfo - ] |> sprintf "VkVideoEncodeH265DpbSlotInfoEXT { %s }" + sprintf "flags = %A" x.flags + sprintf "name = %A" x.name + sprintf "category = %A" x.category + sprintf "description = %A" x.description + ] |> sprintf "VkPerformanceCounterDescriptionKHR { %s }" end [] - type VkVideoEncodeH265EmitPictureParametersEXT = + type VkPerformanceCounterKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public vpsId : byte - val mutable public spsId : byte - val mutable public emitVpsEnable : VkBool32 - val mutable public emitSpsEnable : VkBool32 - val mutable public ppsIdEntryCount : uint32 - val mutable public ppsIdEntries : nativeptr + val mutable public unit : VkPerformanceCounterUnitKHR + val mutable public scope : VkPerformanceCounterScopeKHR + val mutable public storage : VkPerformanceCounterStorageKHR + val mutable public uuid : Guid - new(pNext : nativeint, vpsId : byte, spsId : byte, emitVpsEnable : VkBool32, emitSpsEnable : VkBool32, ppsIdEntryCount : uint32, ppsIdEntries : nativeptr) = + new(pNext : nativeint, unit : VkPerformanceCounterUnitKHR, scope : VkPerformanceCounterScopeKHR, storage : VkPerformanceCounterStorageKHR, uuid : Guid) = { - sType = 1000039006u + sType = 1000116005u pNext = pNext - vpsId = vpsId - spsId = spsId - emitVpsEnable = emitVpsEnable - emitSpsEnable = emitSpsEnable - ppsIdEntryCount = ppsIdEntryCount - ppsIdEntries = ppsIdEntries + unit = unit + scope = scope + storage = storage + uuid = uuid } - new(vpsId : byte, spsId : byte, emitVpsEnable : VkBool32, emitSpsEnable : VkBool32, ppsIdEntryCount : uint32, ppsIdEntries : nativeptr) = - VkVideoEncodeH265EmitPictureParametersEXT(Unchecked.defaultof, vpsId, spsId, emitVpsEnable, emitSpsEnable, ppsIdEntryCount, ppsIdEntries) + new(unit : VkPerformanceCounterUnitKHR, scope : VkPerformanceCounterScopeKHR, storage : VkPerformanceCounterStorageKHR, uuid : Guid) = + VkPerformanceCounterKHR(Unchecked.defaultof, unit, scope, storage, uuid) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.vpsId = Unchecked.defaultof && x.spsId = Unchecked.defaultof && x.emitVpsEnable = Unchecked.defaultof && x.emitSpsEnable = Unchecked.defaultof && x.ppsIdEntryCount = Unchecked.defaultof && x.ppsIdEntries = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.unit = Unchecked.defaultof && x.scope = Unchecked.defaultof && x.storage = Unchecked.defaultof && x.uuid = Unchecked.defaultof static member Empty = - VkVideoEncodeH265EmitPictureParametersEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + VkPerformanceCounterKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "vpsId = %A" x.vpsId - sprintf "spsId = %A" x.spsId - sprintf "emitVpsEnable = %A" x.emitVpsEnable - sprintf "emitSpsEnable = %A" x.emitSpsEnable - sprintf "ppsIdEntryCount = %A" x.ppsIdEntryCount - sprintf "ppsIdEntries = %A" x.ppsIdEntries - ] |> sprintf "VkVideoEncodeH265EmitPictureParametersEXT { %s }" + sprintf "unit = %A" x.unit + sprintf "scope = %A" x.scope + sprintf "storage = %A" x.storage + sprintf "uuid = %A" x.uuid + ] |> sprintf "VkPerformanceCounterKHR { %s }" end - [] - type VkVideoEncodeH265FrameSizeEXT = + /// Union of all the possible return types a counter result could return + [] + type VkPerformanceCounterResultKHR = struct - val mutable public frameISize : uint32 - val mutable public framePSize : uint32 - val mutable public frameBSize : uint32 + [] + val mutable public int32 : int32 + [] + val mutable public int64 : int64 + [] + val mutable public uint32 : uint32 + [] + val mutable public uint64 : uint64 + [] + val mutable public float32 : float32 + [] + val mutable public float64 : float - new(frameISize : uint32, framePSize : uint32, frameBSize : uint32) = - { - frameISize = frameISize - framePSize = framePSize - frameBSize = frameBSize - } + static member Int32(value : int32) = + let mutable result = Unchecked.defaultof + result.int32 <- value + result - member x.IsEmpty = - x.frameISize = Unchecked.defaultof && x.framePSize = Unchecked.defaultof && x.frameBSize = Unchecked.defaultof + static member Int64(value : int64) = + let mutable result = Unchecked.defaultof + result.int64 <- value + result - static member Empty = - VkVideoEncodeH265FrameSizeEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + static member Uint32(value : uint32) = + let mutable result = Unchecked.defaultof + result.uint32 <- value + result + + static member Uint64(value : uint64) = + let mutable result = Unchecked.defaultof + result.uint64 <- value + result + + static member Float32(value : float32) = + let mutable result = Unchecked.defaultof + result.float32 <- value + result + + static member Float64(value : float) = + let mutable result = Unchecked.defaultof + result.float64 <- value + result override x.ToString() = String.concat "; " [ - sprintf "frameISize = %A" x.frameISize - sprintf "framePSize = %A" x.framePSize - sprintf "frameBSize = %A" x.frameBSize - ] |> sprintf "VkVideoEncodeH265FrameSizeEXT { %s }" + sprintf "int32 = %A" x.int32 + sprintf "int64 = %A" x.int64 + sprintf "uint32 = %A" x.uint32 + sprintf "uint64 = %A" x.uint64 + sprintf "float32 = %A" x.float32 + sprintf "float64 = %A" x.float64 + ] |> sprintf "VkPerformanceCounterResultKHR { %s }" end [] - type VkVideoEncodeH265ReferenceListsEXT = + type VkPerformanceQuerySubmitInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public referenceList0EntryCount : byte - val mutable public pReferenceList0Entries : nativeptr - val mutable public referenceList1EntryCount : byte - val mutable public pReferenceList1Entries : nativeptr - val mutable public pReferenceModifications : nativeptr + val mutable public counterPassIndex : uint32 - new(pNext : nativeint, referenceList0EntryCount : byte, pReferenceList0Entries : nativeptr, referenceList1EntryCount : byte, pReferenceList1Entries : nativeptr, pReferenceModifications : nativeptr) = + new(pNext : nativeint, counterPassIndex : uint32) = { - sType = 1000039008u + sType = 1000116003u pNext = pNext - referenceList0EntryCount = referenceList0EntryCount - pReferenceList0Entries = pReferenceList0Entries - referenceList1EntryCount = referenceList1EntryCount - pReferenceList1Entries = pReferenceList1Entries - pReferenceModifications = pReferenceModifications + counterPassIndex = counterPassIndex } - new(referenceList0EntryCount : byte, pReferenceList0Entries : nativeptr, referenceList1EntryCount : byte, pReferenceList1Entries : nativeptr, pReferenceModifications : nativeptr) = - VkVideoEncodeH265ReferenceListsEXT(Unchecked.defaultof, referenceList0EntryCount, pReferenceList0Entries, referenceList1EntryCount, pReferenceList1Entries, pReferenceModifications) + new(counterPassIndex : uint32) = + VkPerformanceQuerySubmitInfoKHR(Unchecked.defaultof, counterPassIndex) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.referenceList0EntryCount = Unchecked.defaultof && x.pReferenceList0Entries = Unchecked.defaultof> && x.referenceList1EntryCount = Unchecked.defaultof && x.pReferenceList1Entries = Unchecked.defaultof> && x.pReferenceModifications = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.counterPassIndex = Unchecked.defaultof static member Empty = - VkVideoEncodeH265ReferenceListsEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof>) + VkPerformanceQuerySubmitInfoKHR(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "referenceList0EntryCount = %A" x.referenceList0EntryCount - sprintf "pReferenceList0Entries = %A" x.pReferenceList0Entries - sprintf "referenceList1EntryCount = %A" x.referenceList1EntryCount - sprintf "pReferenceList1Entries = %A" x.pReferenceList1Entries - sprintf "pReferenceModifications = %A" x.pReferenceModifications - ] |> sprintf "VkVideoEncodeH265ReferenceListsEXT { %s }" + sprintf "counterPassIndex = %A" x.counterPassIndex + ] |> sprintf "VkPerformanceQuerySubmitInfoKHR { %s }" end [] - type VkVideoEncodeH265NaluSliceSegmentEXT = + type VkPhysicalDevicePerformanceQueryFeaturesKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public ctbCount : uint32 - val mutable public pReferenceFinalLists : nativeptr - val mutable public pSliceSegmentHeaderStd : nativeptr + val mutable public performanceCounterQueryPools : VkBool32 + val mutable public performanceCounterMultipleQueryPools : VkBool32 - new(pNext : nativeint, ctbCount : uint32, pReferenceFinalLists : nativeptr, pSliceSegmentHeaderStd : nativeptr) = + new(pNext : nativeint, performanceCounterQueryPools : VkBool32, performanceCounterMultipleQueryPools : VkBool32) = { - sType = 1000039005u + sType = 1000116000u pNext = pNext - ctbCount = ctbCount - pReferenceFinalLists = pReferenceFinalLists - pSliceSegmentHeaderStd = pSliceSegmentHeaderStd + performanceCounterQueryPools = performanceCounterQueryPools + performanceCounterMultipleQueryPools = performanceCounterMultipleQueryPools } - new(ctbCount : uint32, pReferenceFinalLists : nativeptr, pSliceSegmentHeaderStd : nativeptr) = - VkVideoEncodeH265NaluSliceSegmentEXT(Unchecked.defaultof, ctbCount, pReferenceFinalLists, pSliceSegmentHeaderStd) + new(performanceCounterQueryPools : VkBool32, performanceCounterMultipleQueryPools : VkBool32) = + VkPhysicalDevicePerformanceQueryFeaturesKHR(Unchecked.defaultof, performanceCounterQueryPools, performanceCounterMultipleQueryPools) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.ctbCount = Unchecked.defaultof && x.pReferenceFinalLists = Unchecked.defaultof> && x.pSliceSegmentHeaderStd = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.performanceCounterQueryPools = Unchecked.defaultof && x.performanceCounterMultipleQueryPools = Unchecked.defaultof static member Empty = - VkVideoEncodeH265NaluSliceSegmentEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof>) + VkPhysicalDevicePerformanceQueryFeaturesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "ctbCount = %A" x.ctbCount - sprintf "pReferenceFinalLists = %A" x.pReferenceFinalLists - sprintf "pSliceSegmentHeaderStd = %A" x.pSliceSegmentHeaderStd - ] |> sprintf "VkVideoEncodeH265NaluSliceSegmentEXT { %s }" + sprintf "performanceCounterQueryPools = %A" x.performanceCounterQueryPools + sprintf "performanceCounterMultipleQueryPools = %A" x.performanceCounterMultipleQueryPools + ] |> sprintf "VkPhysicalDevicePerformanceQueryFeaturesKHR { %s }" end [] - type VkVideoEncodeH265ProfileEXT = + type VkPhysicalDevicePerformanceQueryPropertiesKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public stdProfileIdc : nativeint + val mutable public allowCommandBufferQueryCopies : VkBool32 - new(pNext : nativeint, stdProfileIdc : nativeint) = + new(pNext : nativeint, allowCommandBufferQueryCopies : VkBool32) = { - sType = 1000039007u + sType = 1000116001u pNext = pNext - stdProfileIdc = stdProfileIdc + allowCommandBufferQueryCopies = allowCommandBufferQueryCopies } - new(stdProfileIdc : nativeint) = - VkVideoEncodeH265ProfileEXT(Unchecked.defaultof, stdProfileIdc) + new(allowCommandBufferQueryCopies : VkBool32) = + VkPhysicalDevicePerformanceQueryPropertiesKHR(Unchecked.defaultof, allowCommandBufferQueryCopies) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.stdProfileIdc = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.allowCommandBufferQueryCopies = Unchecked.defaultof static member Empty = - VkVideoEncodeH265ProfileEXT(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDevicePerformanceQueryPropertiesKHR(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "stdProfileIdc = %A" x.stdProfileIdc - ] |> sprintf "VkVideoEncodeH265ProfileEXT { %s }" + sprintf "allowCommandBufferQueryCopies = %A" x.allowCommandBufferQueryCopies + ] |> sprintf "VkPhysicalDevicePerformanceQueryPropertiesKHR { %s }" end [] - type VkVideoEncodeH265QpEXT = + type VkQueryPoolPerformanceCreateInfoKHR = struct - val mutable public qpI : int - val mutable public qpP : int - val mutable public qpB : int + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public queueFamilyIndex : uint32 + val mutable public counterIndexCount : uint32 + val mutable public pCounterIndices : nativeptr - new(qpI : int, qpP : int, qpB : int) = + new(pNext : nativeint, queueFamilyIndex : uint32, counterIndexCount : uint32, pCounterIndices : nativeptr) = { - qpI = qpI - qpP = qpP - qpB = qpB + sType = 1000116002u + pNext = pNext + queueFamilyIndex = queueFamilyIndex + counterIndexCount = counterIndexCount + pCounterIndices = pCounterIndices } + new(queueFamilyIndex : uint32, counterIndexCount : uint32, pCounterIndices : nativeptr) = + VkQueryPoolPerformanceCreateInfoKHR(Unchecked.defaultof, queueFamilyIndex, counterIndexCount, pCounterIndices) + member x.IsEmpty = - x.qpI = Unchecked.defaultof && x.qpP = Unchecked.defaultof && x.qpB = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.queueFamilyIndex = Unchecked.defaultof && x.counterIndexCount = Unchecked.defaultof && x.pCounterIndices = Unchecked.defaultof> static member Empty = - VkVideoEncodeH265QpEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkQueryPoolPerformanceCreateInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ - sprintf "qpI = %A" x.qpI - sprintf "qpP = %A" x.qpP - sprintf "qpB = %A" x.qpB - ] |> sprintf "VkVideoEncodeH265QpEXT { %s }" + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "queueFamilyIndex = %A" x.queueFamilyIndex + sprintf "counterIndexCount = %A" x.counterIndexCount + sprintf "pCounterIndices = %A" x.pCounterIndices + ] |> sprintf "VkQueryPoolPerformanceCreateInfoKHR { %s }" end + + [] + module EnumExtensions = + type VkQueryType with + static member inline PerformanceQueryKhr = unbox 1000116000 + + module VkRaw = + [] + type VkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHRDel = delegate of VkPhysicalDevice * uint32 * nativeptr * nativeptr * nativeptr -> VkResult + [] + type VkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHRDel = delegate of VkPhysicalDevice * nativeptr * nativeptr -> unit + [] + type VkAcquireProfilingLockKHRDel = delegate of VkDevice * nativeptr -> VkResult + [] + type VkReleaseProfilingLockKHRDel = delegate of VkDevice -> unit + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRPerformanceQuery") + static let s_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHRDel = VkRaw.vkImportInstanceDelegate "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR" + static let s_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR" + static let s_vkAcquireProfilingLockKHRDel = VkRaw.vkImportInstanceDelegate "vkAcquireProfilingLockKHR" + static let s_vkReleaseProfilingLockKHRDel = VkRaw.vkImportInstanceDelegate "vkReleaseProfilingLockKHR" + static do Report.End(3) |> ignore + static member vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = s_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHRDel + static member vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = s_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHRDel + static member vkAcquireProfilingLockKHR = s_vkAcquireProfilingLockKHRDel + static member vkReleaseProfilingLockKHR = s_vkReleaseProfilingLockKHRDel + let vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice : VkPhysicalDevice, queueFamilyIndex : uint32, pCounterCount : nativeptr, pCounters : nativeptr, pCounterDescriptions : nativeptr) = Loader.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR.Invoke(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) + let vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice : VkPhysicalDevice, pPerformanceQueryCreateInfo : nativeptr, pNumPasses : nativeptr) = Loader.vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR.Invoke(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) + let vkAcquireProfilingLockKHR(device : VkDevice, pInfo : nativeptr) = Loader.vkAcquireProfilingLockKHR.Invoke(device, pInfo) + let vkReleaseProfilingLockKHR(device : VkDevice) = Loader.vkReleaseProfilingLockKHR.Invoke(device) + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module KHRPortabilitySubset = + let Type = ExtensionType.Device + let Name = "VK_KHR_portability_subset" + let Number = 164 + [] - type VkVideoEncodeH265RateControlInfoEXT = + type VkPhysicalDevicePortabilitySubsetFeaturesKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public gopFrameCount : uint32 - val mutable public idrPeriod : uint32 - val mutable public consecutiveBFrameCount : uint32 - val mutable public rateControlStructure : VkVideoEncodeH265RateControlStructureFlagsEXT - val mutable public subLayerCount : byte + val mutable public constantAlphaColorBlendFactors : VkBool32 + val mutable public events : VkBool32 + val mutable public imageViewFormatReinterpretation : VkBool32 + val mutable public imageViewFormatSwizzle : VkBool32 + val mutable public imageView2DOn3DImage : VkBool32 + val mutable public multisampleArrayImage : VkBool32 + val mutable public mutableComparisonSamplers : VkBool32 + val mutable public pointPolygons : VkBool32 + val mutable public samplerMipLodBias : VkBool32 + val mutable public separateStencilMaskRef : VkBool32 + val mutable public shaderSampleRateInterpolationFunctions : VkBool32 + val mutable public tessellationIsolines : VkBool32 + val mutable public tessellationPointMode : VkBool32 + val mutable public triangleFans : VkBool32 + val mutable public vertexAttributeAccessBeyondStride : VkBool32 - new(pNext : nativeint, gopFrameCount : uint32, idrPeriod : uint32, consecutiveBFrameCount : uint32, rateControlStructure : VkVideoEncodeH265RateControlStructureFlagsEXT, subLayerCount : byte) = - { - sType = 1000039009u - pNext = pNext - gopFrameCount = gopFrameCount - idrPeriod = idrPeriod - consecutiveBFrameCount = consecutiveBFrameCount - rateControlStructure = rateControlStructure - subLayerCount = subLayerCount + new(pNext : nativeint, constantAlphaColorBlendFactors : VkBool32, events : VkBool32, imageViewFormatReinterpretation : VkBool32, imageViewFormatSwizzle : VkBool32, imageView2DOn3DImage : VkBool32, multisampleArrayImage : VkBool32, mutableComparisonSamplers : VkBool32, pointPolygons : VkBool32, samplerMipLodBias : VkBool32, separateStencilMaskRef : VkBool32, shaderSampleRateInterpolationFunctions : VkBool32, tessellationIsolines : VkBool32, tessellationPointMode : VkBool32, triangleFans : VkBool32, vertexAttributeAccessBeyondStride : VkBool32) = + { + sType = 1000163000u + pNext = pNext + constantAlphaColorBlendFactors = constantAlphaColorBlendFactors + events = events + imageViewFormatReinterpretation = imageViewFormatReinterpretation + imageViewFormatSwizzle = imageViewFormatSwizzle + imageView2DOn3DImage = imageView2DOn3DImage + multisampleArrayImage = multisampleArrayImage + mutableComparisonSamplers = mutableComparisonSamplers + pointPolygons = pointPolygons + samplerMipLodBias = samplerMipLodBias + separateStencilMaskRef = separateStencilMaskRef + shaderSampleRateInterpolationFunctions = shaderSampleRateInterpolationFunctions + tessellationIsolines = tessellationIsolines + tessellationPointMode = tessellationPointMode + triangleFans = triangleFans + vertexAttributeAccessBeyondStride = vertexAttributeAccessBeyondStride } - new(gopFrameCount : uint32, idrPeriod : uint32, consecutiveBFrameCount : uint32, rateControlStructure : VkVideoEncodeH265RateControlStructureFlagsEXT, subLayerCount : byte) = - VkVideoEncodeH265RateControlInfoEXT(Unchecked.defaultof, gopFrameCount, idrPeriod, consecutiveBFrameCount, rateControlStructure, subLayerCount) + new(constantAlphaColorBlendFactors : VkBool32, events : VkBool32, imageViewFormatReinterpretation : VkBool32, imageViewFormatSwizzle : VkBool32, imageView2DOn3DImage : VkBool32, multisampleArrayImage : VkBool32, mutableComparisonSamplers : VkBool32, pointPolygons : VkBool32, samplerMipLodBias : VkBool32, separateStencilMaskRef : VkBool32, shaderSampleRateInterpolationFunctions : VkBool32, tessellationIsolines : VkBool32, tessellationPointMode : VkBool32, triangleFans : VkBool32, vertexAttributeAccessBeyondStride : VkBool32) = + VkPhysicalDevicePortabilitySubsetFeaturesKHR(Unchecked.defaultof, constantAlphaColorBlendFactors, events, imageViewFormatReinterpretation, imageViewFormatSwizzle, imageView2DOn3DImage, multisampleArrayImage, mutableComparisonSamplers, pointPolygons, samplerMipLodBias, separateStencilMaskRef, shaderSampleRateInterpolationFunctions, tessellationIsolines, tessellationPointMode, triangleFans, vertexAttributeAccessBeyondStride) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.gopFrameCount = Unchecked.defaultof && x.idrPeriod = Unchecked.defaultof && x.consecutiveBFrameCount = Unchecked.defaultof && x.rateControlStructure = Unchecked.defaultof && x.subLayerCount = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.constantAlphaColorBlendFactors = Unchecked.defaultof && x.events = Unchecked.defaultof && x.imageViewFormatReinterpretation = Unchecked.defaultof && x.imageViewFormatSwizzle = Unchecked.defaultof && x.imageView2DOn3DImage = Unchecked.defaultof && x.multisampleArrayImage = Unchecked.defaultof && x.mutableComparisonSamplers = Unchecked.defaultof && x.pointPolygons = Unchecked.defaultof && x.samplerMipLodBias = Unchecked.defaultof && x.separateStencilMaskRef = Unchecked.defaultof && x.shaderSampleRateInterpolationFunctions = Unchecked.defaultof && x.tessellationIsolines = Unchecked.defaultof && x.tessellationPointMode = Unchecked.defaultof && x.triangleFans = Unchecked.defaultof && x.vertexAttributeAccessBeyondStride = Unchecked.defaultof static member Empty = - VkVideoEncodeH265RateControlInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDevicePortabilitySubsetFeaturesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "gopFrameCount = %A" x.gopFrameCount - sprintf "idrPeriod = %A" x.idrPeriod - sprintf "consecutiveBFrameCount = %A" x.consecutiveBFrameCount - sprintf "rateControlStructure = %A" x.rateControlStructure - sprintf "subLayerCount = %A" x.subLayerCount - ] |> sprintf "VkVideoEncodeH265RateControlInfoEXT { %s }" + sprintf "constantAlphaColorBlendFactors = %A" x.constantAlphaColorBlendFactors + sprintf "events = %A" x.events + sprintf "imageViewFormatReinterpretation = %A" x.imageViewFormatReinterpretation + sprintf "imageViewFormatSwizzle = %A" x.imageViewFormatSwizzle + sprintf "imageView2DOn3DImage = %A" x.imageView2DOn3DImage + sprintf "multisampleArrayImage = %A" x.multisampleArrayImage + sprintf "mutableComparisonSamplers = %A" x.mutableComparisonSamplers + sprintf "pointPolygons = %A" x.pointPolygons + sprintf "samplerMipLodBias = %A" x.samplerMipLodBias + sprintf "separateStencilMaskRef = %A" x.separateStencilMaskRef + sprintf "shaderSampleRateInterpolationFunctions = %A" x.shaderSampleRateInterpolationFunctions + sprintf "tessellationIsolines = %A" x.tessellationIsolines + sprintf "tessellationPointMode = %A" x.tessellationPointMode + sprintf "triangleFans = %A" x.triangleFans + sprintf "vertexAttributeAccessBeyondStride = %A" x.vertexAttributeAccessBeyondStride + ] |> sprintf "VkPhysicalDevicePortabilitySubsetFeaturesKHR { %s }" end [] - type VkVideoEncodeH265RateControlLayerInfoEXT = + type VkPhysicalDevicePortabilitySubsetPropertiesKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public temporalId : byte - val mutable public useInitialRcQp : VkBool32 - val mutable public initialRcQp : VkVideoEncodeH265QpEXT - val mutable public useMinQp : VkBool32 - val mutable public minQp : VkVideoEncodeH265QpEXT - val mutable public useMaxQp : VkBool32 - val mutable public maxQp : VkVideoEncodeH265QpEXT - val mutable public useMaxFrameSize : VkBool32 - val mutable public maxFrameSize : VkVideoEncodeH265FrameSizeEXT + val mutable public minVertexInputBindingStrideAlignment : uint32 - new(pNext : nativeint, temporalId : byte, useInitialRcQp : VkBool32, initialRcQp : VkVideoEncodeH265QpEXT, useMinQp : VkBool32, minQp : VkVideoEncodeH265QpEXT, useMaxQp : VkBool32, maxQp : VkVideoEncodeH265QpEXT, useMaxFrameSize : VkBool32, maxFrameSize : VkVideoEncodeH265FrameSizeEXT) = + new(pNext : nativeint, minVertexInputBindingStrideAlignment : uint32) = { - sType = 1000039010u + sType = 1000163001u pNext = pNext - temporalId = temporalId - useInitialRcQp = useInitialRcQp - initialRcQp = initialRcQp - useMinQp = useMinQp - minQp = minQp - useMaxQp = useMaxQp - maxQp = maxQp - useMaxFrameSize = useMaxFrameSize - maxFrameSize = maxFrameSize + minVertexInputBindingStrideAlignment = minVertexInputBindingStrideAlignment } - new(temporalId : byte, useInitialRcQp : VkBool32, initialRcQp : VkVideoEncodeH265QpEXT, useMinQp : VkBool32, minQp : VkVideoEncodeH265QpEXT, useMaxQp : VkBool32, maxQp : VkVideoEncodeH265QpEXT, useMaxFrameSize : VkBool32, maxFrameSize : VkVideoEncodeH265FrameSizeEXT) = - VkVideoEncodeH265RateControlLayerInfoEXT(Unchecked.defaultof, temporalId, useInitialRcQp, initialRcQp, useMinQp, minQp, useMaxQp, maxQp, useMaxFrameSize, maxFrameSize) + new(minVertexInputBindingStrideAlignment : uint32) = + VkPhysicalDevicePortabilitySubsetPropertiesKHR(Unchecked.defaultof, minVertexInputBindingStrideAlignment) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.temporalId = Unchecked.defaultof && x.useInitialRcQp = Unchecked.defaultof && x.initialRcQp = Unchecked.defaultof && x.useMinQp = Unchecked.defaultof && x.minQp = Unchecked.defaultof && x.useMaxQp = Unchecked.defaultof && x.maxQp = Unchecked.defaultof && x.useMaxFrameSize = Unchecked.defaultof && x.maxFrameSize = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.minVertexInputBindingStrideAlignment = Unchecked.defaultof static member Empty = - VkVideoEncodeH265RateControlLayerInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDevicePortabilitySubsetPropertiesKHR(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "temporalId = %A" x.temporalId - sprintf "useInitialRcQp = %A" x.useInitialRcQp - sprintf "initialRcQp = %A" x.initialRcQp - sprintf "useMinQp = %A" x.useMinQp - sprintf "minQp = %A" x.minQp - sprintf "useMaxQp = %A" x.useMaxQp - sprintf "maxQp = %A" x.maxQp - sprintf "useMaxFrameSize = %A" x.useMaxFrameSize - sprintf "maxFrameSize = %A" x.maxFrameSize - ] |> sprintf "VkVideoEncodeH265RateControlLayerInfoEXT { %s }" + sprintf "minVertexInputBindingStrideAlignment = %A" x.minVertexInputBindingStrideAlignment + ] |> sprintf "VkPhysicalDevicePortabilitySubsetPropertiesKHR { %s }" end + + +/// Requires KHRSwapchain, KHRGetPhysicalDeviceProperties2 | Vulkan11. +module KHRPresentId = + let Type = ExtensionType.Device + let Name = "VK_KHR_present_id" + let Number = 295 + [] - type VkVideoEncodeH265SessionParametersAddInfoEXT = + type VkPhysicalDevicePresentIdFeaturesKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public vpsStdCount : uint32 - val mutable public pVpsStd : nativeptr - val mutable public spsStdCount : uint32 - val mutable public pSpsStd : nativeptr - val mutable public ppsStdCount : uint32 - val mutable public pPpsStd : nativeptr + val mutable public presentId : VkBool32 - new(pNext : nativeint, vpsStdCount : uint32, pVpsStd : nativeptr, spsStdCount : uint32, pSpsStd : nativeptr, ppsStdCount : uint32, pPpsStd : nativeptr) = + new(pNext : nativeint, presentId : VkBool32) = { - sType = 1000039002u + sType = 1000294001u pNext = pNext - vpsStdCount = vpsStdCount - pVpsStd = pVpsStd - spsStdCount = spsStdCount - pSpsStd = pSpsStd - ppsStdCount = ppsStdCount - pPpsStd = pPpsStd + presentId = presentId } - new(vpsStdCount : uint32, pVpsStd : nativeptr, spsStdCount : uint32, pSpsStd : nativeptr, ppsStdCount : uint32, pPpsStd : nativeptr) = - VkVideoEncodeH265SessionParametersAddInfoEXT(Unchecked.defaultof, vpsStdCount, pVpsStd, spsStdCount, pSpsStd, ppsStdCount, pPpsStd) + new(presentId : VkBool32) = + VkPhysicalDevicePresentIdFeaturesKHR(Unchecked.defaultof, presentId) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.vpsStdCount = Unchecked.defaultof && x.pVpsStd = Unchecked.defaultof> && x.spsStdCount = Unchecked.defaultof && x.pSpsStd = Unchecked.defaultof> && x.ppsStdCount = Unchecked.defaultof && x.pPpsStd = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.presentId = Unchecked.defaultof static member Empty = - VkVideoEncodeH265SessionParametersAddInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>) + VkPhysicalDevicePresentIdFeaturesKHR(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "vpsStdCount = %A" x.vpsStdCount - sprintf "pVpsStd = %A" x.pVpsStd - sprintf "spsStdCount = %A" x.spsStdCount - sprintf "pSpsStd = %A" x.pSpsStd - sprintf "ppsStdCount = %A" x.ppsStdCount - sprintf "pPpsStd = %A" x.pPpsStd - ] |> sprintf "VkVideoEncodeH265SessionParametersAddInfoEXT { %s }" + sprintf "presentId = %A" x.presentId + ] |> sprintf "VkPhysicalDevicePresentIdFeaturesKHR { %s }" end [] - type VkVideoEncodeH265SessionParametersCreateInfoEXT = + type VkPresentIdKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public maxVpsStdCount : uint32 - val mutable public maxSpsStdCount : uint32 - val mutable public maxPpsStdCount : uint32 - val mutable public pParametersAddInfo : nativeptr + val mutable public swapchainCount : uint32 + val mutable public pPresentIds : nativeptr - new(pNext : nativeint, maxVpsStdCount : uint32, maxSpsStdCount : uint32, maxPpsStdCount : uint32, pParametersAddInfo : nativeptr) = + new(pNext : nativeint, swapchainCount : uint32, pPresentIds : nativeptr) = { - sType = 1000039001u + sType = 1000294000u pNext = pNext - maxVpsStdCount = maxVpsStdCount - maxSpsStdCount = maxSpsStdCount - maxPpsStdCount = maxPpsStdCount - pParametersAddInfo = pParametersAddInfo + swapchainCount = swapchainCount + pPresentIds = pPresentIds } - new(maxVpsStdCount : uint32, maxSpsStdCount : uint32, maxPpsStdCount : uint32, pParametersAddInfo : nativeptr) = - VkVideoEncodeH265SessionParametersCreateInfoEXT(Unchecked.defaultof, maxVpsStdCount, maxSpsStdCount, maxPpsStdCount, pParametersAddInfo) + new(swapchainCount : uint32, pPresentIds : nativeptr) = + VkPresentIdKHR(Unchecked.defaultof, swapchainCount, pPresentIds) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.maxVpsStdCount = Unchecked.defaultof && x.maxSpsStdCount = Unchecked.defaultof && x.maxPpsStdCount = Unchecked.defaultof && x.pParametersAddInfo = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.swapchainCount = Unchecked.defaultof && x.pPresentIds = Unchecked.defaultof> static member Empty = - VkVideoEncodeH265SessionParametersCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + VkPresentIdKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "maxVpsStdCount = %A" x.maxVpsStdCount - sprintf "maxSpsStdCount = %A" x.maxSpsStdCount - sprintf "maxPpsStdCount = %A" x.maxPpsStdCount - sprintf "pParametersAddInfo = %A" x.pParametersAddInfo - ] |> sprintf "VkVideoEncodeH265SessionParametersCreateInfoEXT { %s }" + sprintf "swapchainCount = %A" x.swapchainCount + sprintf "pPresentIds = %A" x.pPresentIds + ] |> sprintf "VkPresentIdKHR { %s }" end + + +/// Requires KHRSwapchain, KHRPresentId. +module KHRPresentWait = + let Type = ExtensionType.Device + let Name = "VK_KHR_present_wait" + let Number = 249 + [] - type VkVideoEncodeH265VclFrameInfoEXT = + type VkPhysicalDevicePresentWaitFeaturesKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public pReferenceFinalLists : nativeptr - val mutable public naluSliceSegmentEntryCount : uint32 - val mutable public pNaluSliceSegmentEntries : nativeptr - val mutable public pCurrentPictureInfo : nativeptr + val mutable public presentWait : VkBool32 - new(pNext : nativeint, pReferenceFinalLists : nativeptr, naluSliceSegmentEntryCount : uint32, pNaluSliceSegmentEntries : nativeptr, pCurrentPictureInfo : nativeptr) = + new(pNext : nativeint, presentWait : VkBool32) = { - sType = 1000039003u + sType = 1000248000u pNext = pNext - pReferenceFinalLists = pReferenceFinalLists - naluSliceSegmentEntryCount = naluSliceSegmentEntryCount - pNaluSliceSegmentEntries = pNaluSliceSegmentEntries - pCurrentPictureInfo = pCurrentPictureInfo + presentWait = presentWait } - new(pReferenceFinalLists : nativeptr, naluSliceSegmentEntryCount : uint32, pNaluSliceSegmentEntries : nativeptr, pCurrentPictureInfo : nativeptr) = - VkVideoEncodeH265VclFrameInfoEXT(Unchecked.defaultof, pReferenceFinalLists, naluSliceSegmentEntryCount, pNaluSliceSegmentEntries, pCurrentPictureInfo) + new(presentWait : VkBool32) = + VkPhysicalDevicePresentWaitFeaturesKHR(Unchecked.defaultof, presentWait) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.pReferenceFinalLists = Unchecked.defaultof> && x.naluSliceSegmentEntryCount = Unchecked.defaultof && x.pNaluSliceSegmentEntries = Unchecked.defaultof> && x.pCurrentPictureInfo = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.presentWait = Unchecked.defaultof static member Empty = - VkVideoEncodeH265VclFrameInfoEXT(Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof>) + VkPhysicalDevicePresentWaitFeaturesKHR(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "pReferenceFinalLists = %A" x.pReferenceFinalLists - sprintf "naluSliceSegmentEntryCount = %A" x.naluSliceSegmentEntryCount - sprintf "pNaluSliceSegmentEntries = %A" x.pNaluSliceSegmentEntries - sprintf "pCurrentPictureInfo = %A" x.pCurrentPictureInfo - ] |> sprintf "VkVideoEncodeH265VclFrameInfoEXT { %s }" + sprintf "presentWait = %A" x.presentWait + ] |> sprintf "VkPhysicalDevicePresentWaitFeaturesKHR { %s }" end - [] - module EnumExtensions = - type VkVideoCodecOperationFlagsKHR with - static member inline EncodeH265BitExt = unbox 0x00020000 - - -module EXTYcbcr2plane444Formats = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open EXTDebugReport - open KHRBindMemory2 - open KHRGetMemoryRequirements2 - open KHRGetPhysicalDeviceProperties2 - open KHRMaintenance1 - open KHRSamplerYcbcrConversion - let Name = "VK_EXT_ycbcr_2plane_444_formats" - let Number = 331 + module VkRaw = + [] + type VkWaitForPresentKHRDel = delegate of VkDevice * KHRSwapchain.VkSwapchainKHR * uint64 * uint64 -> VkResult - let Required = [ KHRSamplerYcbcrConversion.Name ] + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRPresentWait") + static let s_vkWaitForPresentKHRDel = VkRaw.vkImportInstanceDelegate "vkWaitForPresentKHR" + static do Report.End(3) |> ignore + static member vkWaitForPresentKHR = s_vkWaitForPresentKHRDel + let vkWaitForPresentKHR(device : VkDevice, swapchain : KHRSwapchain.VkSwapchainKHR, presentId : uint64, timeout : uint64) = Loader.vkWaitForPresentKHR.Invoke(device, swapchain, presentId, timeout) +/// Requires KHRSpirv14, KHRAccelerationStructure. +module KHRRayQuery = + let Type = ExtensionType.Device + let Name = "VK_KHR_ray_query" + let Number = 349 [] - type VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT = + type VkPhysicalDeviceRayQueryFeaturesKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public ycbcr2plane444Formats : VkBool32 + val mutable public rayQuery : VkBool32 - new(pNext : nativeint, ycbcr2plane444Formats : VkBool32) = + new(pNext : nativeint, rayQuery : VkBool32) = { - sType = 1000330000u + sType = 1000348013u pNext = pNext - ycbcr2plane444Formats = ycbcr2plane444Formats + rayQuery = rayQuery } - new(ycbcr2plane444Formats : VkBool32) = - VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(Unchecked.defaultof, ycbcr2plane444Formats) + new(rayQuery : VkBool32) = + VkPhysicalDeviceRayQueryFeaturesKHR(Unchecked.defaultof, rayQuery) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.ycbcr2plane444Formats = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.rayQuery = Unchecked.defaultof static member Empty = - VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceRayQueryFeaturesKHR(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "ycbcr2plane444Formats = %A" x.ycbcr2plane444Formats - ] |> sprintf "VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT { %s }" + sprintf "rayQuery = %A" x.rayQuery + ] |> sprintf "VkPhysicalDeviceRayQueryFeaturesKHR { %s }" end - [] - module EnumExtensions = - type VkFormat with - static member inline G8B8r82plane444UnormExt = unbox 1000330000 - static member inline G10x6B10x6r10x62plane444Unorm3pack16Ext = unbox 1000330001 - static member inline G12x4B12x4r12x42plane444Unorm3pack16Ext = unbox 1000330002 - static member inline G16B16r162plane444UnormExt = unbox 1000330003 - - -module EXTYcbcrImageArrays = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open EXTDebugReport - open KHRBindMemory2 - open KHRGetMemoryRequirements2 - open KHRGetPhysicalDeviceProperties2 - open KHRMaintenance1 - open KHRSamplerYcbcrConversion - let Name = "VK_EXT_ycbcr_image_arrays" - let Number = 253 - - let Required = [ KHRSamplerYcbcrConversion.Name ] +/// Requires KHRAccelerationStructure. +module KHRRayTracingMaintenance1 = + let Type = ExtensionType.Device + let Name = "VK_KHR_ray_tracing_maintenance1" + let Number = 387 [] - type VkPhysicalDeviceYcbcrImageArraysFeaturesEXT = + type VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public ycbcrImageArrays : VkBool32 + val mutable public rayTracingMaintenance1 : VkBool32 + val mutable public rayTracingPipelineTraceRaysIndirect2 : VkBool32 - new(pNext : nativeint, ycbcrImageArrays : VkBool32) = + new(pNext : nativeint, rayTracingMaintenance1 : VkBool32, rayTracingPipelineTraceRaysIndirect2 : VkBool32) = { - sType = 1000252000u + sType = 1000386000u pNext = pNext - ycbcrImageArrays = ycbcrImageArrays + rayTracingMaintenance1 = rayTracingMaintenance1 + rayTracingPipelineTraceRaysIndirect2 = rayTracingPipelineTraceRaysIndirect2 } - new(ycbcrImageArrays : VkBool32) = - VkPhysicalDeviceYcbcrImageArraysFeaturesEXT(Unchecked.defaultof, ycbcrImageArrays) + new(rayTracingMaintenance1 : VkBool32, rayTracingPipelineTraceRaysIndirect2 : VkBool32) = + VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR(Unchecked.defaultof, rayTracingMaintenance1, rayTracingPipelineTraceRaysIndirect2) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.ycbcrImageArrays = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.rayTracingMaintenance1 = Unchecked.defaultof && x.rayTracingPipelineTraceRaysIndirect2 = Unchecked.defaultof static member Empty = - VkPhysicalDeviceYcbcrImageArraysFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "ycbcrImageArrays = %A" x.ycbcrImageArrays - ] |> sprintf "VkPhysicalDeviceYcbcrImageArraysFeaturesEXT { %s }" + sprintf "rayTracingMaintenance1 = %A" x.rayTracingMaintenance1 + sprintf "rayTracingPipelineTraceRaysIndirect2 = %A" x.rayTracingPipelineTraceRaysIndirect2 + ] |> sprintf "VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR { %s }" end + [] + module EnumExtensions = + type VkQueryType with + static member inline AccelerationStructureSerializationBottomLevelPointersKhr = unbox 1000386000 + static member inline AccelerationStructureSizeKhr = unbox 1000386001 -module FUCHSIAExternalMemory = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRExternalMemory - open KHRExternalMemoryCapabilities - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_FUCHSIA_external_memory" - let Number = 365 - - let Required = [ KHRExternalMemory.Name; KHRExternalMemoryCapabilities.Name ] + [] + module ``KHRSynchronization2 | Vulkan13`` = + [] + module EnumExtensions = + type Vulkan13.VkPipelineStageFlags2 with + static member inline PipelineStage2AccelerationStructureCopyBitKhr = unbox 0x10000000 - [] - type VkImportMemoryZirconHandleInfoFUCHSIA = - struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public handleType : VkExternalMemoryHandleTypeFlags - val mutable public handle : nativeint - new(pNext : nativeint, handleType : VkExternalMemoryHandleTypeFlags, handle : nativeint) = - { - sType = 1000364000u - pNext = pNext - handleType = handleType - handle = handle - } + [] + module ``(KHRSynchronization2 | Vulkan13), KHRRayTracingPipeline`` = + [] + module EnumExtensions = + type Vulkan13.VkAccessFlags2 with + static member inline Access2ShaderBindingTableReadBitKhr = unbox 0x00000100 - new(handleType : VkExternalMemoryHandleTypeFlags, handle : nativeint) = - VkImportMemoryZirconHandleInfoFUCHSIA(Unchecked.defaultof, handleType, handle) - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.handleType = Unchecked.defaultof && x.handle = Unchecked.defaultof + [] + module ``KHRRayTracingPipeline`` = + [] + type VkTraceRaysIndirectCommand2KHR = + struct + val mutable public raygenShaderRecordAddress : VkDeviceAddress + val mutable public raygenShaderRecordSize : VkDeviceSize + val mutable public missShaderBindingTableAddress : VkDeviceAddress + val mutable public missShaderBindingTableSize : VkDeviceSize + val mutable public missShaderBindingTableStride : VkDeviceSize + val mutable public hitShaderBindingTableAddress : VkDeviceAddress + val mutable public hitShaderBindingTableSize : VkDeviceSize + val mutable public hitShaderBindingTableStride : VkDeviceSize + val mutable public callableShaderBindingTableAddress : VkDeviceAddress + val mutable public callableShaderBindingTableSize : VkDeviceSize + val mutable public callableShaderBindingTableStride : VkDeviceSize + val mutable public width : uint32 + val mutable public height : uint32 + val mutable public depth : uint32 - static member Empty = - VkImportMemoryZirconHandleInfoFUCHSIA(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + new(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) = + { + raygenShaderRecordAddress = raygenShaderRecordAddress + raygenShaderRecordSize = raygenShaderRecordSize + missShaderBindingTableAddress = missShaderBindingTableAddress + missShaderBindingTableSize = missShaderBindingTableSize + missShaderBindingTableStride = missShaderBindingTableStride + hitShaderBindingTableAddress = hitShaderBindingTableAddress + hitShaderBindingTableSize = hitShaderBindingTableSize + hitShaderBindingTableStride = hitShaderBindingTableStride + callableShaderBindingTableAddress = callableShaderBindingTableAddress + callableShaderBindingTableSize = callableShaderBindingTableSize + callableShaderBindingTableStride = callableShaderBindingTableStride + width = width + height = height + depth = depth + } - override x.ToString() = - String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "handleType = %A" x.handleType - sprintf "handle = %A" x.handle - ] |> sprintf "VkImportMemoryZirconHandleInfoFUCHSIA { %s }" - end + member x.IsEmpty = + x.raygenShaderRecordAddress = Unchecked.defaultof && x.raygenShaderRecordSize = Unchecked.defaultof && x.missShaderBindingTableAddress = Unchecked.defaultof && x.missShaderBindingTableSize = Unchecked.defaultof && x.missShaderBindingTableStride = Unchecked.defaultof && x.hitShaderBindingTableAddress = Unchecked.defaultof && x.hitShaderBindingTableSize = Unchecked.defaultof && x.hitShaderBindingTableStride = Unchecked.defaultof && x.callableShaderBindingTableAddress = Unchecked.defaultof && x.callableShaderBindingTableSize = Unchecked.defaultof && x.callableShaderBindingTableStride = Unchecked.defaultof && x.width = Unchecked.defaultof && x.height = Unchecked.defaultof && x.depth = Unchecked.defaultof - [] - type VkMemoryGetZirconHandleInfoFUCHSIA = - struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public memory : VkDeviceMemory - val mutable public handleType : VkExternalMemoryHandleTypeFlags + static member Empty = + VkTraceRaysIndirectCommand2KHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) - new(pNext : nativeint, memory : VkDeviceMemory, handleType : VkExternalMemoryHandleTypeFlags) = - { - sType = 1000364002u - pNext = pNext - memory = memory - handleType = handleType - } + override x.ToString() = + String.concat "; " [ + sprintf "raygenShaderRecordAddress = %A" x.raygenShaderRecordAddress + sprintf "raygenShaderRecordSize = %A" x.raygenShaderRecordSize + sprintf "missShaderBindingTableAddress = %A" x.missShaderBindingTableAddress + sprintf "missShaderBindingTableSize = %A" x.missShaderBindingTableSize + sprintf "missShaderBindingTableStride = %A" x.missShaderBindingTableStride + sprintf "hitShaderBindingTableAddress = %A" x.hitShaderBindingTableAddress + sprintf "hitShaderBindingTableSize = %A" x.hitShaderBindingTableSize + sprintf "hitShaderBindingTableStride = %A" x.hitShaderBindingTableStride + sprintf "callableShaderBindingTableAddress = %A" x.callableShaderBindingTableAddress + sprintf "callableShaderBindingTableSize = %A" x.callableShaderBindingTableSize + sprintf "callableShaderBindingTableStride = %A" x.callableShaderBindingTableStride + sprintf "width = %A" x.width + sprintf "height = %A" x.height + sprintf "depth = %A" x.depth + ] |> sprintf "VkTraceRaysIndirectCommand2KHR { %s }" + end - new(memory : VkDeviceMemory, handleType : VkExternalMemoryHandleTypeFlags) = - VkMemoryGetZirconHandleInfoFUCHSIA(Unchecked.defaultof, memory, handleType) - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.memory = Unchecked.defaultof && x.handleType = Unchecked.defaultof + module VkRaw = + [] + type VkCmdTraceRaysIndirect2KHRDel = delegate of VkCommandBuffer * VkDeviceAddress -> unit - static member Empty = - VkMemoryGetZirconHandleInfoFUCHSIA(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRRayTracingMaintenance1 -> KHRRayTracingPipeline") + static let s_vkCmdTraceRaysIndirect2KHRDel = VkRaw.vkImportInstanceDelegate "vkCmdTraceRaysIndirect2KHR" + static do Report.End(3) |> ignore + static member vkCmdTraceRaysIndirect2KHR = s_vkCmdTraceRaysIndirect2KHRDel + let vkCmdTraceRaysIndirect2KHR(commandBuffer : VkCommandBuffer, indirectDeviceAddress : VkDeviceAddress) = Loader.vkCmdTraceRaysIndirect2KHR.Invoke(commandBuffer, indirectDeviceAddress) - override x.ToString() = - String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "memory = %A" x.memory - sprintf "handleType = %A" x.handleType - ] |> sprintf "VkMemoryGetZirconHandleInfoFUCHSIA { %s }" - end +/// Requires KHRAccelerationStructure. +module KHRRayTracingPositionFetch = + let Type = ExtensionType.Device + let Name = "VK_KHR_ray_tracing_position_fetch" + let Number = 482 [] - type VkMemoryZirconHandlePropertiesFUCHSIA = + type VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public memoryTypeBits : uint32 + val mutable public rayTracingPositionFetch : VkBool32 - new(pNext : nativeint, memoryTypeBits : uint32) = + new(pNext : nativeint, rayTracingPositionFetch : VkBool32) = { - sType = 1000364001u + sType = 1000481000u pNext = pNext - memoryTypeBits = memoryTypeBits + rayTracingPositionFetch = rayTracingPositionFetch } - new(memoryTypeBits : uint32) = - VkMemoryZirconHandlePropertiesFUCHSIA(Unchecked.defaultof, memoryTypeBits) + new(rayTracingPositionFetch : VkBool32) = + VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR(Unchecked.defaultof, rayTracingPositionFetch) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.memoryTypeBits = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.rayTracingPositionFetch = Unchecked.defaultof static member Empty = - VkMemoryZirconHandlePropertiesFUCHSIA(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "memoryTypeBits = %A" x.memoryTypeBits - ] |> sprintf "VkMemoryZirconHandlePropertiesFUCHSIA { %s }" + sprintf "rayTracingPositionFetch = %A" x.rayTracingPositionFetch + ] |> sprintf "VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR { %s }" end [] module EnumExtensions = - type VkExternalMemoryHandleTypeFlags with - static member inline ZirconVmoBitFuchsia = unbox 0x00000800 + type KHRAccelerationStructure.VkBuildAccelerationStructureFlagsKHR with + static member inline AllowDataAccess = unbox 0x00000800 - module VkRaw = - [] - type VkGetMemoryZirconHandleFUCHSIADel = delegate of VkDevice * nativeptr * nativeptr -> VkResult - [] - type VkGetMemoryZirconHandlePropertiesFUCHSIADel = delegate of VkDevice * VkExternalMemoryHandleTypeFlags * nativeint * nativeptr -> VkResult - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading FUCHSIAExternalMemory") - static let s_vkGetMemoryZirconHandleFUCHSIADel = VkRaw.vkImportInstanceDelegate "vkGetMemoryZirconHandleFUCHSIA" - static let s_vkGetMemoryZirconHandlePropertiesFUCHSIADel = VkRaw.vkImportInstanceDelegate "vkGetMemoryZirconHandlePropertiesFUCHSIA" - static do Report.End(3) |> ignore - static member vkGetMemoryZirconHandleFUCHSIA = s_vkGetMemoryZirconHandleFUCHSIADel - static member vkGetMemoryZirconHandlePropertiesFUCHSIA = s_vkGetMemoryZirconHandlePropertiesFUCHSIADel - let vkGetMemoryZirconHandleFUCHSIA(device : VkDevice, pGetZirconHandleInfo : nativeptr, pZirconHandle : nativeptr) = Loader.vkGetMemoryZirconHandleFUCHSIA.Invoke(device, pGetZirconHandleInfo, pZirconHandle) - let vkGetMemoryZirconHandlePropertiesFUCHSIA(device : VkDevice, handleType : VkExternalMemoryHandleTypeFlags, zirconHandle : nativeint, pMemoryZirconHandleProperties : nativeptr) = Loader.vkGetMemoryZirconHandlePropertiesFUCHSIA.Invoke(device, handleType, zirconHandle, pMemoryZirconHandleProperties) +/// Promoted to Vulkan11. +module KHRRelaxedBlockLayout = + let Type = ExtensionType.Device + let Name = "VK_KHR_relaxed_block_layout" + let Number = 145 -module FUCHSIABufferCollection = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open EXTDebugReport - open FUCHSIAExternalMemory - open KHRBindMemory2 - open KHRExternalMemory - open KHRExternalMemoryCapabilities - open KHRGetMemoryRequirements2 - open KHRGetPhysicalDeviceProperties2 - open KHRMaintenance1 - open KHRSamplerYcbcrConversion - let Name = "VK_FUCHSIA_buffer_collection" - let Number = 367 +/// Promoted to Vulkan12. +module KHRSamplerMirrorClampToEdge = + let Type = ExtensionType.Device + let Name = "VK_KHR_sampler_mirror_clamp_to_edge" + let Number = 15 - let Required = [ FUCHSIAExternalMemory.Name; KHRSamplerYcbcrConversion.Name ] + [] + module EnumExtensions = + type VkSamplerAddressMode with + /// Note that this defines what was previously a core enum, and so uses the 'value' attribute rather than 'offset', and does not have a suffix. This is a special case, and should not be repeated + static member inline MirrorClampToEdge = unbox 4 +/// Requires ((KHRGetPhysicalDeviceProperties2 | Vulkan11), KHRCreateRenderpass2) | Vulkan12. +/// Promoted to Vulkan12. +module KHRSeparateDepthStencilLayouts = + let Type = ExtensionType.Device + let Name = "VK_KHR_separate_depth_stencil_layouts" + let Number = 242 - [] - type VkBufferCollectionFUCHSIA = - struct - val mutable public Handle : uint64 - new(h) = { Handle = h } - static member Null = VkBufferCollectionFUCHSIA(0UL) - member x.IsNull = x.Handle = 0UL - member x.IsValid = x.Handle <> 0UL - end + type VkAttachmentDescriptionStencilLayoutKHR = Vulkan12.VkAttachmentDescriptionStencilLayout - [] - type VkImageFormatConstraintsFlagsFUCHSIA = - | All = 0 - | None = 0 + type VkAttachmentReferenceStencilLayoutKHR = Vulkan12.VkAttachmentReferenceStencilLayout - [] - type VkImageConstraintsInfoFlagsFUCHSIA = - | All = 31 - | None = 0 - | CpuReadRarely = 0x00000001 - | CpuReadOften = 0x00000002 - | CpuWriteRarely = 0x00000004 - | CpuWriteOften = 0x00000008 - | ProtectedOptional = 0x00000010 + type VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = Vulkan12.VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures - [] - type VkBufferCollectionBufferCreateInfoFUCHSIA = - struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public collection : VkBufferCollectionFUCHSIA - val mutable public index : uint32 + [] + module EnumExtensions = + type VkImageLayout with + static member inline DepthAttachmentOptimalKhr = unbox 1000241000 + static member inline DepthReadOnlyOptimalKhr = unbox 1000241001 + static member inline StencilAttachmentOptimalKhr = unbox 1000241002 + static member inline StencilReadOnlyOptimalKhr = unbox 1000241003 - new(pNext : nativeint, collection : VkBufferCollectionFUCHSIA, index : uint32) = - { - sType = 1000366005u - pNext = pNext - collection = collection - index = index - } - new(collection : VkBufferCollectionFUCHSIA, index : uint32) = - VkBufferCollectionBufferCreateInfoFUCHSIA(Unchecked.defaultof, collection, index) +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +/// Promoted to Vulkan12. +module KHRShaderAtomicInt64 = + let Type = ExtensionType.Device + let Name = "VK_KHR_shader_atomic_int64" + let Number = 181 - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.collection = Unchecked.defaultof && x.index = Unchecked.defaultof + type VkPhysicalDeviceShaderAtomicInt64FeaturesKHR = Vulkan12.VkPhysicalDeviceShaderAtomicInt64Features - static member Empty = - VkBufferCollectionBufferCreateInfoFUCHSIA(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) - override x.ToString() = - String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "collection = %A" x.collection - sprintf "index = %A" x.index - ] |> sprintf "VkBufferCollectionBufferCreateInfoFUCHSIA { %s }" - end + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module KHRShaderClock = + let Type = ExtensionType.Device + let Name = "VK_KHR_shader_clock" + let Number = 182 [] - type VkBufferCollectionConstraintsInfoFUCHSIA = + type VkPhysicalDeviceShaderClockFeaturesKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public minBufferCount : uint32 - val mutable public maxBufferCount : uint32 - val mutable public minBufferCountForCamping : uint32 - val mutable public minBufferCountForDedicatedSlack : uint32 - val mutable public minBufferCountForSharedSlack : uint32 + val mutable public shaderSubgroupClock : VkBool32 + val mutable public shaderDeviceClock : VkBool32 - new(pNext : nativeint, minBufferCount : uint32, maxBufferCount : uint32, minBufferCountForCamping : uint32, minBufferCountForDedicatedSlack : uint32, minBufferCountForSharedSlack : uint32) = + new(pNext : nativeint, shaderSubgroupClock : VkBool32, shaderDeviceClock : VkBool32) = { - sType = 1000366009u + sType = 1000181000u pNext = pNext - minBufferCount = minBufferCount - maxBufferCount = maxBufferCount - minBufferCountForCamping = minBufferCountForCamping - minBufferCountForDedicatedSlack = minBufferCountForDedicatedSlack - minBufferCountForSharedSlack = minBufferCountForSharedSlack + shaderSubgroupClock = shaderSubgroupClock + shaderDeviceClock = shaderDeviceClock } - new(minBufferCount : uint32, maxBufferCount : uint32, minBufferCountForCamping : uint32, minBufferCountForDedicatedSlack : uint32, minBufferCountForSharedSlack : uint32) = - VkBufferCollectionConstraintsInfoFUCHSIA(Unchecked.defaultof, minBufferCount, maxBufferCount, minBufferCountForCamping, minBufferCountForDedicatedSlack, minBufferCountForSharedSlack) + new(shaderSubgroupClock : VkBool32, shaderDeviceClock : VkBool32) = + VkPhysicalDeviceShaderClockFeaturesKHR(Unchecked.defaultof, shaderSubgroupClock, shaderDeviceClock) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.minBufferCount = Unchecked.defaultof && x.maxBufferCount = Unchecked.defaultof && x.minBufferCountForCamping = Unchecked.defaultof && x.minBufferCountForDedicatedSlack = Unchecked.defaultof && x.minBufferCountForSharedSlack = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.shaderSubgroupClock = Unchecked.defaultof && x.shaderDeviceClock = Unchecked.defaultof static member Empty = - VkBufferCollectionConstraintsInfoFUCHSIA(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceShaderClockFeaturesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "minBufferCount = %A" x.minBufferCount - sprintf "maxBufferCount = %A" x.maxBufferCount - sprintf "minBufferCountForCamping = %A" x.minBufferCountForCamping - sprintf "minBufferCountForDedicatedSlack = %A" x.minBufferCountForDedicatedSlack - sprintf "minBufferCountForSharedSlack = %A" x.minBufferCountForSharedSlack - ] |> sprintf "VkBufferCollectionConstraintsInfoFUCHSIA { %s }" + sprintf "shaderSubgroupClock = %A" x.shaderSubgroupClock + sprintf "shaderDeviceClock = %A" x.shaderDeviceClock + ] |> sprintf "VkPhysicalDeviceShaderClockFeaturesKHR { %s }" end - [] - type VkBufferCollectionCreateInfoFUCHSIA = - struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public collectionToken : nativeint - - new(pNext : nativeint, collectionToken : nativeint) = - { - sType = 1000366000u - pNext = pNext - collectionToken = collectionToken - } - - new(collectionToken : nativeint) = - VkBufferCollectionCreateInfoFUCHSIA(Unchecked.defaultof, collectionToken) - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.collectionToken = Unchecked.defaultof - static member Empty = - VkBufferCollectionCreateInfoFUCHSIA(Unchecked.defaultof, Unchecked.defaultof) +/// Promoted to Vulkan11. +module KHRShaderDrawParameters = + let Type = ExtensionType.Device + let Name = "VK_KHR_shader_draw_parameters" + let Number = 64 - override x.ToString() = - String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "collectionToken = %A" x.collectionToken - ] |> sprintf "VkBufferCollectionCreateInfoFUCHSIA { %s }" - end +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module KHRShaderExpectAssume = + let Type = ExtensionType.Device + let Name = "VK_KHR_shader_expect_assume" + let Number = 545 [] - type VkBufferCollectionImageCreateInfoFUCHSIA = + type VkPhysicalDeviceShaderExpectAssumeFeaturesKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public collection : VkBufferCollectionFUCHSIA - val mutable public index : uint32 + val mutable public shaderExpectAssume : VkBool32 - new(pNext : nativeint, collection : VkBufferCollectionFUCHSIA, index : uint32) = + new(pNext : nativeint, shaderExpectAssume : VkBool32) = { - sType = 1000366002u + sType = 1000544000u pNext = pNext - collection = collection - index = index + shaderExpectAssume = shaderExpectAssume } - new(collection : VkBufferCollectionFUCHSIA, index : uint32) = - VkBufferCollectionImageCreateInfoFUCHSIA(Unchecked.defaultof, collection, index) + new(shaderExpectAssume : VkBool32) = + VkPhysicalDeviceShaderExpectAssumeFeaturesKHR(Unchecked.defaultof, shaderExpectAssume) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.collection = Unchecked.defaultof && x.index = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.shaderExpectAssume = Unchecked.defaultof static member Empty = - VkBufferCollectionImageCreateInfoFUCHSIA(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceShaderExpectAssumeFeaturesKHR(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "collection = %A" x.collection - sprintf "index = %A" x.index - ] |> sprintf "VkBufferCollectionImageCreateInfoFUCHSIA { %s }" + sprintf "shaderExpectAssume = %A" x.shaderExpectAssume + ] |> sprintf "VkPhysicalDeviceShaderExpectAssumeFeaturesKHR { %s }" end + + +/// Requires Vulkan11, KHRShaderFloatControls. +module KHRShaderFloatControls2 = + let Type = ExtensionType.Device + let Name = "VK_KHR_shader_float_controls2" + let Number = 529 + [] - type VkSysmemColorSpaceFUCHSIA = + type VkPhysicalDeviceShaderFloatControls2FeaturesKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public colorSpace : uint32 + val mutable public shaderFloatControls2 : VkBool32 - new(pNext : nativeint, colorSpace : uint32) = + new(pNext : nativeint, shaderFloatControls2 : VkBool32) = { - sType = 1000366008u + sType = 1000528000u pNext = pNext - colorSpace = colorSpace + shaderFloatControls2 = shaderFloatControls2 } - new(colorSpace : uint32) = - VkSysmemColorSpaceFUCHSIA(Unchecked.defaultof, colorSpace) + new(shaderFloatControls2 : VkBool32) = + VkPhysicalDeviceShaderFloatControls2FeaturesKHR(Unchecked.defaultof, shaderFloatControls2) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.colorSpace = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.shaderFloatControls2 = Unchecked.defaultof static member Empty = - VkSysmemColorSpaceFUCHSIA(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceShaderFloatControls2FeaturesKHR(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "colorSpace = %A" x.colorSpace - ] |> sprintf "VkSysmemColorSpaceFUCHSIA { %s }" + sprintf "shaderFloatControls2 = %A" x.shaderFloatControls2 + ] |> sprintf "VkPhysicalDeviceShaderFloatControls2FeaturesKHR { %s }" end + + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +/// Promoted to Vulkan13. +module KHRShaderIntegerDotProduct = + let Type = ExtensionType.Device + let Name = "VK_KHR_shader_integer_dot_product" + let Number = 281 + + type VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR = Vulkan13.VkPhysicalDeviceShaderIntegerDotProductFeatures + + type VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR = Vulkan13.VkPhysicalDeviceShaderIntegerDotProductProperties + + + +/// Requires Vulkan11. +module KHRShaderMaximalReconvergence = + let Type = ExtensionType.Device + let Name = "VK_KHR_shader_maximal_reconvergence" + let Number = 435 + [] - type VkBufferCollectionPropertiesFUCHSIA = + type VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public memoryTypeBits : uint32 - val mutable public bufferCount : uint32 - val mutable public createInfoIndex : uint32 - val mutable public sysmemPixelFormat : uint64 - val mutable public formatFeatures : VkFormatFeatureFlags - val mutable public sysmemColorSpaceIndex : VkSysmemColorSpaceFUCHSIA - val mutable public samplerYcbcrConversionComponents : VkComponentMapping - val mutable public suggestedYcbcrModel : VkSamplerYcbcrModelConversion - val mutable public suggestedYcbcrRange : VkSamplerYcbcrRange - val mutable public suggestedXChromaOffset : VkChromaLocation - val mutable public suggestedYChromaOffset : VkChromaLocation + val mutable public shaderMaximalReconvergence : VkBool32 - new(pNext : nativeint, memoryTypeBits : uint32, bufferCount : uint32, createInfoIndex : uint32, sysmemPixelFormat : uint64, formatFeatures : VkFormatFeatureFlags, sysmemColorSpaceIndex : VkSysmemColorSpaceFUCHSIA, samplerYcbcrConversionComponents : VkComponentMapping, suggestedYcbcrModel : VkSamplerYcbcrModelConversion, suggestedYcbcrRange : VkSamplerYcbcrRange, suggestedXChromaOffset : VkChromaLocation, suggestedYChromaOffset : VkChromaLocation) = + new(pNext : nativeint, shaderMaximalReconvergence : VkBool32) = { - sType = 1000366003u + sType = 1000434000u pNext = pNext - memoryTypeBits = memoryTypeBits - bufferCount = bufferCount - createInfoIndex = createInfoIndex - sysmemPixelFormat = sysmemPixelFormat - formatFeatures = formatFeatures - sysmemColorSpaceIndex = sysmemColorSpaceIndex - samplerYcbcrConversionComponents = samplerYcbcrConversionComponents - suggestedYcbcrModel = suggestedYcbcrModel - suggestedYcbcrRange = suggestedYcbcrRange - suggestedXChromaOffset = suggestedXChromaOffset - suggestedYChromaOffset = suggestedYChromaOffset + shaderMaximalReconvergence = shaderMaximalReconvergence } - new(memoryTypeBits : uint32, bufferCount : uint32, createInfoIndex : uint32, sysmemPixelFormat : uint64, formatFeatures : VkFormatFeatureFlags, sysmemColorSpaceIndex : VkSysmemColorSpaceFUCHSIA, samplerYcbcrConversionComponents : VkComponentMapping, suggestedYcbcrModel : VkSamplerYcbcrModelConversion, suggestedYcbcrRange : VkSamplerYcbcrRange, suggestedXChromaOffset : VkChromaLocation, suggestedYChromaOffset : VkChromaLocation) = - VkBufferCollectionPropertiesFUCHSIA(Unchecked.defaultof, memoryTypeBits, bufferCount, createInfoIndex, sysmemPixelFormat, formatFeatures, sysmemColorSpaceIndex, samplerYcbcrConversionComponents, suggestedYcbcrModel, suggestedYcbcrRange, suggestedXChromaOffset, suggestedYChromaOffset) + new(shaderMaximalReconvergence : VkBool32) = + VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR(Unchecked.defaultof, shaderMaximalReconvergence) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.memoryTypeBits = Unchecked.defaultof && x.bufferCount = Unchecked.defaultof && x.createInfoIndex = Unchecked.defaultof && x.sysmemPixelFormat = Unchecked.defaultof && x.formatFeatures = Unchecked.defaultof && x.sysmemColorSpaceIndex = Unchecked.defaultof && x.samplerYcbcrConversionComponents = Unchecked.defaultof && x.suggestedYcbcrModel = Unchecked.defaultof && x.suggestedYcbcrRange = Unchecked.defaultof && x.suggestedXChromaOffset = Unchecked.defaultof && x.suggestedYChromaOffset = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.shaderMaximalReconvergence = Unchecked.defaultof static member Empty = - VkBufferCollectionPropertiesFUCHSIA(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "memoryTypeBits = %A" x.memoryTypeBits - sprintf "bufferCount = %A" x.bufferCount - sprintf "createInfoIndex = %A" x.createInfoIndex - sprintf "sysmemPixelFormat = %A" x.sysmemPixelFormat - sprintf "formatFeatures = %A" x.formatFeatures - sprintf "sysmemColorSpaceIndex = %A" x.sysmemColorSpaceIndex - sprintf "samplerYcbcrConversionComponents = %A" x.samplerYcbcrConversionComponents - sprintf "suggestedYcbcrModel = %A" x.suggestedYcbcrModel - sprintf "suggestedYcbcrRange = %A" x.suggestedYcbcrRange - sprintf "suggestedXChromaOffset = %A" x.suggestedXChromaOffset - sprintf "suggestedYChromaOffset = %A" x.suggestedYChromaOffset - ] |> sprintf "VkBufferCollectionPropertiesFUCHSIA { %s }" + sprintf "shaderMaximalReconvergence = %A" x.shaderMaximalReconvergence + ] |> sprintf "VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR { %s }" end + + +/// Promoted to Vulkan13. +module KHRShaderNonSemanticInfo = + let Type = ExtensionType.Device + let Name = "VK_KHR_shader_non_semantic_info" + let Number = 294 + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +/// Promoted to Vulkan12. +module KHRVulkanMemoryModel = + let Type = ExtensionType.Device + let Name = "VK_KHR_vulkan_memory_model" + let Number = 212 + + type VkPhysicalDeviceVulkanMemoryModelFeaturesKHR = Vulkan12.VkPhysicalDeviceVulkanMemoryModelFeatures + + + +/// Requires Vulkan11, KHRVulkanMemoryModel, KHRShaderMaximalReconvergence. +module KHRShaderQuadControl = + let Type = ExtensionType.Device + let Name = "VK_KHR_shader_quad_control" + let Number = 236 + [] - type VkBufferConstraintsInfoFUCHSIA = + type VkPhysicalDeviceShaderQuadControlFeaturesKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public createInfo : VkBufferCreateInfo - val mutable public requiredFormatFeatures : VkFormatFeatureFlags - val mutable public bufferCollectionConstraints : VkBufferCollectionConstraintsInfoFUCHSIA + val mutable public shaderQuadControl : VkBool32 - new(pNext : nativeint, createInfo : VkBufferCreateInfo, requiredFormatFeatures : VkFormatFeatureFlags, bufferCollectionConstraints : VkBufferCollectionConstraintsInfoFUCHSIA) = + new(pNext : nativeint, shaderQuadControl : VkBool32) = { - sType = 1000366004u + sType = 1000235000u pNext = pNext - createInfo = createInfo - requiredFormatFeatures = requiredFormatFeatures - bufferCollectionConstraints = bufferCollectionConstraints + shaderQuadControl = shaderQuadControl } - new(createInfo : VkBufferCreateInfo, requiredFormatFeatures : VkFormatFeatureFlags, bufferCollectionConstraints : VkBufferCollectionConstraintsInfoFUCHSIA) = - VkBufferConstraintsInfoFUCHSIA(Unchecked.defaultof, createInfo, requiredFormatFeatures, bufferCollectionConstraints) + new(shaderQuadControl : VkBool32) = + VkPhysicalDeviceShaderQuadControlFeaturesKHR(Unchecked.defaultof, shaderQuadControl) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.createInfo = Unchecked.defaultof && x.requiredFormatFeatures = Unchecked.defaultof && x.bufferCollectionConstraints = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.shaderQuadControl = Unchecked.defaultof static member Empty = - VkBufferConstraintsInfoFUCHSIA(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceShaderQuadControlFeaturesKHR(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "createInfo = %A" x.createInfo - sprintf "requiredFormatFeatures = %A" x.requiredFormatFeatures - sprintf "bufferCollectionConstraints = %A" x.bufferCollectionConstraints - ] |> sprintf "VkBufferConstraintsInfoFUCHSIA { %s }" + sprintf "shaderQuadControl = %A" x.shaderQuadControl + ] |> sprintf "VkPhysicalDeviceShaderQuadControlFeaturesKHR { %s }" end + + +/// Requires Vulkan11. +/// Promoted to Vulkan12. +module KHRShaderSubgroupExtendedTypes = + let Type = ExtensionType.Device + let Name = "VK_KHR_shader_subgroup_extended_types" + let Number = 176 + + type VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = Vulkan12.VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures + + + +module KHRShaderSubgroupRotate = + let Type = ExtensionType.Device + let Name = "VK_KHR_shader_subgroup_rotate" + let Number = 417 + [] - type VkImageFormatConstraintsInfoFUCHSIA = + type VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public imageCreateInfo : VkImageCreateInfo - val mutable public requiredFormatFeatures : VkFormatFeatureFlags - val mutable public flags : VkImageFormatConstraintsFlagsFUCHSIA - val mutable public sysmemPixelFormat : uint64 - val mutable public colorSpaceCount : uint32 - val mutable public pColorSpaces : nativeptr + val mutable public shaderSubgroupRotate : VkBool32 + val mutable public shaderSubgroupRotateClustered : VkBool32 - new(pNext : nativeint, imageCreateInfo : VkImageCreateInfo, requiredFormatFeatures : VkFormatFeatureFlags, flags : VkImageFormatConstraintsFlagsFUCHSIA, sysmemPixelFormat : uint64, colorSpaceCount : uint32, pColorSpaces : nativeptr) = + new(pNext : nativeint, shaderSubgroupRotate : VkBool32, shaderSubgroupRotateClustered : VkBool32) = { - sType = 1000366007u + sType = 1000416000u pNext = pNext - imageCreateInfo = imageCreateInfo - requiredFormatFeatures = requiredFormatFeatures - flags = flags - sysmemPixelFormat = sysmemPixelFormat - colorSpaceCount = colorSpaceCount - pColorSpaces = pColorSpaces + shaderSubgroupRotate = shaderSubgroupRotate + shaderSubgroupRotateClustered = shaderSubgroupRotateClustered } - new(imageCreateInfo : VkImageCreateInfo, requiredFormatFeatures : VkFormatFeatureFlags, flags : VkImageFormatConstraintsFlagsFUCHSIA, sysmemPixelFormat : uint64, colorSpaceCount : uint32, pColorSpaces : nativeptr) = - VkImageFormatConstraintsInfoFUCHSIA(Unchecked.defaultof, imageCreateInfo, requiredFormatFeatures, flags, sysmemPixelFormat, colorSpaceCount, pColorSpaces) + new(shaderSubgroupRotate : VkBool32, shaderSubgroupRotateClustered : VkBool32) = + VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR(Unchecked.defaultof, shaderSubgroupRotate, shaderSubgroupRotateClustered) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.imageCreateInfo = Unchecked.defaultof && x.requiredFormatFeatures = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.sysmemPixelFormat = Unchecked.defaultof && x.colorSpaceCount = Unchecked.defaultof && x.pColorSpaces = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.shaderSubgroupRotate = Unchecked.defaultof && x.shaderSubgroupRotateClustered = Unchecked.defaultof static member Empty = - VkImageFormatConstraintsInfoFUCHSIA(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "imageCreateInfo = %A" x.imageCreateInfo - sprintf "requiredFormatFeatures = %A" x.requiredFormatFeatures - sprintf "flags = %A" x.flags - sprintf "sysmemPixelFormat = %A" x.sysmemPixelFormat - sprintf "colorSpaceCount = %A" x.colorSpaceCount - sprintf "pColorSpaces = %A" x.pColorSpaces - ] |> sprintf "VkImageFormatConstraintsInfoFUCHSIA { %s }" + sprintf "shaderSubgroupRotate = %A" x.shaderSubgroupRotate + sprintf "shaderSubgroupRotateClustered = %A" x.shaderSubgroupRotateClustered + ] |> sprintf "VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR { %s }" end + + [] + module EnumExtensions = + type Vulkan11.VkSubgroupFeatureFlags with + static member inline RotateBitKhr = unbox 0x00000200 + static member inline RotateClusteredBitKhr = unbox 0x00000400 + + +/// Requires Vulkan11. +module KHRShaderSubgroupUniformControlFlow = + let Type = ExtensionType.Device + let Name = "VK_KHR_shader_subgroup_uniform_control_flow" + let Number = 324 + [] - type VkImageConstraintsInfoFUCHSIA = + type VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public formatConstraintsCount : uint32 - val mutable public pFormatConstraints : nativeptr - val mutable public bufferCollectionConstraints : VkBufferCollectionConstraintsInfoFUCHSIA - val mutable public flags : VkImageConstraintsInfoFlagsFUCHSIA + val mutable public shaderSubgroupUniformControlFlow : VkBool32 - new(pNext : nativeint, formatConstraintsCount : uint32, pFormatConstraints : nativeptr, bufferCollectionConstraints : VkBufferCollectionConstraintsInfoFUCHSIA, flags : VkImageConstraintsInfoFlagsFUCHSIA) = + new(pNext : nativeint, shaderSubgroupUniformControlFlow : VkBool32) = { - sType = 1000366006u + sType = 1000323000u pNext = pNext - formatConstraintsCount = formatConstraintsCount - pFormatConstraints = pFormatConstraints - bufferCollectionConstraints = bufferCollectionConstraints - flags = flags + shaderSubgroupUniformControlFlow = shaderSubgroupUniformControlFlow } - new(formatConstraintsCount : uint32, pFormatConstraints : nativeptr, bufferCollectionConstraints : VkBufferCollectionConstraintsInfoFUCHSIA, flags : VkImageConstraintsInfoFlagsFUCHSIA) = - VkImageConstraintsInfoFUCHSIA(Unchecked.defaultof, formatConstraintsCount, pFormatConstraints, bufferCollectionConstraints, flags) + new(shaderSubgroupUniformControlFlow : VkBool32) = + VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR(Unchecked.defaultof, shaderSubgroupUniformControlFlow) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.formatConstraintsCount = Unchecked.defaultof && x.pFormatConstraints = Unchecked.defaultof> && x.bufferCollectionConstraints = Unchecked.defaultof && x.flags = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.shaderSubgroupUniformControlFlow = Unchecked.defaultof static member Empty = - VkImageConstraintsInfoFUCHSIA(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "formatConstraintsCount = %A" x.formatConstraintsCount - sprintf "pFormatConstraints = %A" x.pFormatConstraints - sprintf "bufferCollectionConstraints = %A" x.bufferCollectionConstraints - sprintf "flags = %A" x.flags - ] |> sprintf "VkImageConstraintsInfoFUCHSIA { %s }" + sprintf "shaderSubgroupUniformControlFlow = %A" x.shaderSubgroupUniformControlFlow + ] |> sprintf "VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR { %s }" end + + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +/// Promoted to Vulkan13. +module KHRShaderTerminateInvocation = + let Type = ExtensionType.Device + let Name = "VK_KHR_shader_terminate_invocation" + let Number = 216 + + type VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR = Vulkan13.VkPhysicalDeviceShaderTerminateInvocationFeatures + + + +/// Requires KHRSwapchain, KHRGetSurfaceCapabilities2, (KHRGetPhysicalDeviceProperties2 | Vulkan11). +module KHRSharedPresentableImage = + let Type = ExtensionType.Device + let Name = "VK_KHR_shared_presentable_image" + let Number = 112 + [] - type VkImportMemoryBufferCollectionFUCHSIA = + type VkSharedPresentSurfaceCapabilitiesKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public collection : VkBufferCollectionFUCHSIA - val mutable public index : uint32 + val mutable public sharedPresentSupportedUsageFlags : VkImageUsageFlags - new(pNext : nativeint, collection : VkBufferCollectionFUCHSIA, index : uint32) = + new(pNext : nativeint, sharedPresentSupportedUsageFlags : VkImageUsageFlags) = { - sType = 1000366001u + sType = 1000111000u pNext = pNext - collection = collection - index = index + sharedPresentSupportedUsageFlags = sharedPresentSupportedUsageFlags } - new(collection : VkBufferCollectionFUCHSIA, index : uint32) = - VkImportMemoryBufferCollectionFUCHSIA(Unchecked.defaultof, collection, index) + new(sharedPresentSupportedUsageFlags : VkImageUsageFlags) = + VkSharedPresentSurfaceCapabilitiesKHR(Unchecked.defaultof, sharedPresentSupportedUsageFlags) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.collection = Unchecked.defaultof && x.index = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.sharedPresentSupportedUsageFlags = Unchecked.defaultof static member Empty = - VkImportMemoryBufferCollectionFUCHSIA(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkSharedPresentSurfaceCapabilitiesKHR(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "collection = %A" x.collection - sprintf "index = %A" x.index - ] |> sprintf "VkImportMemoryBufferCollectionFUCHSIA { %s }" + sprintf "sharedPresentSupportedUsageFlags = %A" x.sharedPresentSupportedUsageFlags + ] |> sprintf "VkSharedPresentSurfaceCapabilitiesKHR { %s }" end [] module EnumExtensions = - type VkDebugReportObjectTypeEXT with - static member inline BufferCollectionFuchsia = unbox 1000366000 - type VkObjectType with - /// VkBufferCollectionFUCHSIA - static member inline BufferCollectionFuchsia = unbox 1000366000 + type VkImageLayout with + static member inline SharedPresentKhr = unbox 1000111000 + type KHRSurface.VkPresentModeKHR with + static member inline SharedDemandRefresh = unbox 1000111000 + static member inline SharedContinuousRefresh = unbox 1000111001 module VkRaw = [] - type VkCreateBufferCollectionFUCHSIADel = delegate of VkDevice * nativeptr * nativeptr * nativeptr -> VkResult - [] - type VkSetBufferCollectionImageConstraintsFUCHSIADel = delegate of VkDevice * VkBufferCollectionFUCHSIA * nativeptr -> VkResult - [] - type VkSetBufferCollectionBufferConstraintsFUCHSIADel = delegate of VkDevice * VkBufferCollectionFUCHSIA * nativeptr -> VkResult - [] - type VkDestroyBufferCollectionFUCHSIADel = delegate of VkDevice * VkBufferCollectionFUCHSIA * nativeptr -> unit - [] - type VkGetBufferCollectionPropertiesFUCHSIADel = delegate of VkDevice * VkBufferCollectionFUCHSIA * nativeptr -> VkResult + type VkGetSwapchainStatusKHRDel = delegate of VkDevice * KHRSwapchain.VkSwapchainKHR -> VkResult [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading FUCHSIABufferCollection") - static let s_vkCreateBufferCollectionFUCHSIADel = VkRaw.vkImportInstanceDelegate "vkCreateBufferCollectionFUCHSIA" - static let s_vkSetBufferCollectionImageConstraintsFUCHSIADel = VkRaw.vkImportInstanceDelegate "vkSetBufferCollectionImageConstraintsFUCHSIA" - static let s_vkSetBufferCollectionBufferConstraintsFUCHSIADel = VkRaw.vkImportInstanceDelegate "vkSetBufferCollectionBufferConstraintsFUCHSIA" - static let s_vkDestroyBufferCollectionFUCHSIADel = VkRaw.vkImportInstanceDelegate "vkDestroyBufferCollectionFUCHSIA" - static let s_vkGetBufferCollectionPropertiesFUCHSIADel = VkRaw.vkImportInstanceDelegate "vkGetBufferCollectionPropertiesFUCHSIA" + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRSharedPresentableImage") + static let s_vkGetSwapchainStatusKHRDel = VkRaw.vkImportInstanceDelegate "vkGetSwapchainStatusKHR" static do Report.End(3) |> ignore - static member vkCreateBufferCollectionFUCHSIA = s_vkCreateBufferCollectionFUCHSIADel - static member vkSetBufferCollectionImageConstraintsFUCHSIA = s_vkSetBufferCollectionImageConstraintsFUCHSIADel - static member vkSetBufferCollectionBufferConstraintsFUCHSIA = s_vkSetBufferCollectionBufferConstraintsFUCHSIADel - static member vkDestroyBufferCollectionFUCHSIA = s_vkDestroyBufferCollectionFUCHSIADel - static member vkGetBufferCollectionPropertiesFUCHSIA = s_vkGetBufferCollectionPropertiesFUCHSIADel - let vkCreateBufferCollectionFUCHSIA(device : VkDevice, pCreateInfo : nativeptr, pAllocator : nativeptr, pCollection : nativeptr) = Loader.vkCreateBufferCollectionFUCHSIA.Invoke(device, pCreateInfo, pAllocator, pCollection) - let vkSetBufferCollectionImageConstraintsFUCHSIA(device : VkDevice, collection : VkBufferCollectionFUCHSIA, pImageConstraintsInfo : nativeptr) = Loader.vkSetBufferCollectionImageConstraintsFUCHSIA.Invoke(device, collection, pImageConstraintsInfo) - let vkSetBufferCollectionBufferConstraintsFUCHSIA(device : VkDevice, collection : VkBufferCollectionFUCHSIA, pBufferConstraintsInfo : nativeptr) = Loader.vkSetBufferCollectionBufferConstraintsFUCHSIA.Invoke(device, collection, pBufferConstraintsInfo) - let vkDestroyBufferCollectionFUCHSIA(device : VkDevice, collection : VkBufferCollectionFUCHSIA, pAllocator : nativeptr) = Loader.vkDestroyBufferCollectionFUCHSIA.Invoke(device, collection, pAllocator) - let vkGetBufferCollectionPropertiesFUCHSIA(device : VkDevice, collection : VkBufferCollectionFUCHSIA, pProperties : nativeptr) = Loader.vkGetBufferCollectionPropertiesFUCHSIA.Invoke(device, collection, pProperties) + static member vkGetSwapchainStatusKHR = s_vkGetSwapchainStatusKHRDel + let vkGetSwapchainStatusKHR(device : VkDevice, swapchain : KHRSwapchain.VkSwapchainKHR) = Loader.vkGetSwapchainStatusKHR.Invoke(device, swapchain) -module KHRExternalSemaphoreCapabilities = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_KHR_external_semaphore_capabilities" - let Number = 77 +/// Requires KHRSwapchain, (KHRMaintenance2 | Vulkan11), (KHRImageFormatList | Vulkan12). +module KHRSwapchainMutableFormat = + let Type = ExtensionType.Device + let Name = "VK_KHR_swapchain_mutable_format" + let Number = 201 + + [] + module EnumExtensions = + type KHRSwapchain.VkSwapchainCreateFlagsKHR with + static member inline MutableFormatBit = unbox 0x00000004 + + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +/// Promoted to Vulkan12. +module KHRTimelineSemaphore = + let Type = ExtensionType.Device + let Name = "VK_KHR_timeline_semaphore" + let Number = 208 - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] + type VkSemaphoreTypeKHR = Vulkan12.VkSemaphoreType + type VkSemaphoreWaitFlagsKHR = Vulkan12.VkSemaphoreWaitFlags + type VkPhysicalDeviceTimelineSemaphoreFeaturesKHR = Vulkan12.VkPhysicalDeviceTimelineSemaphoreFeatures - type VkExternalSemaphoreHandleTypeFlagsKHR = VkExternalSemaphoreHandleTypeFlags - type VkExternalSemaphoreFeatureFlagsKHR = VkExternalSemaphoreFeatureFlags + type VkPhysicalDeviceTimelineSemaphorePropertiesKHR = Vulkan12.VkPhysicalDeviceTimelineSemaphoreProperties - type VkExternalSemaphorePropertiesKHR = VkExternalSemaphoreProperties + type VkSemaphoreSignalInfoKHR = Vulkan12.VkSemaphoreSignalInfo - type VkPhysicalDeviceExternalSemaphoreInfoKHR = VkPhysicalDeviceExternalSemaphoreInfo + type VkSemaphoreTypeCreateInfoKHR = Vulkan12.VkSemaphoreTypeCreateInfo - type VkPhysicalDeviceIDPropertiesKHR = KHRExternalMemoryCapabilities.VkPhysicalDeviceIDPropertiesKHR + type VkSemaphoreWaitInfoKHR = Vulkan12.VkSemaphoreWaitInfo + + type VkTimelineSemaphoreSubmitInfoKHR = Vulkan12.VkTimelineSemaphoreSubmitInfo [] module EnumExtensions = - type VkExternalSemaphoreFeatureFlags with - static member inline ExportableBitKhr = unbox 0x00000001 - static member inline ImportableBitKhr = unbox 0x00000002 - type VkExternalSemaphoreHandleTypeFlags with - static member inline OpaqueFdBitKhr = unbox 0x00000001 - static member inline OpaqueWin32BitKhr = unbox 0x00000002 - static member inline OpaqueWin32KmtBitKhr = unbox 0x00000004 - static member inline D3d12FenceBitKhr = unbox 0x00000008 - static member inline SyncFdBitKhr = unbox 0x00000010 + type Vulkan12.VkSemaphoreType with + static member inline BinaryKhr = unbox 0 + static member inline TimelineKhr = unbox 1 + type Vulkan12.VkSemaphoreWaitFlags with + static member inline AnyBitKhr = unbox 0x00000001 module VkRaw = [] - type VkGetPhysicalDeviceExternalSemaphorePropertiesKHRDel = delegate of VkPhysicalDevice * nativeptr * nativeptr -> unit + type VkGetSemaphoreCounterValueKHRDel = delegate of VkDevice * VkSemaphore * nativeptr -> VkResult + [] + type VkWaitSemaphoresKHRDel = delegate of VkDevice * nativeptr * uint64 -> VkResult + [] + type VkSignalSemaphoreKHRDel = delegate of VkDevice * nativeptr -> VkResult [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRExternalSemaphoreCapabilities") - static let s_vkGetPhysicalDeviceExternalSemaphorePropertiesKHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR" + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRTimelineSemaphore") + static let s_vkGetSemaphoreCounterValueKHRDel = VkRaw.vkImportInstanceDelegate "vkGetSemaphoreCounterValueKHR" + static let s_vkWaitSemaphoresKHRDel = VkRaw.vkImportInstanceDelegate "vkWaitSemaphoresKHR" + static let s_vkSignalSemaphoreKHRDel = VkRaw.vkImportInstanceDelegate "vkSignalSemaphoreKHR" static do Report.End(3) |> ignore - static member vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = s_vkGetPhysicalDeviceExternalSemaphorePropertiesKHRDel - let vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice : VkPhysicalDevice, pExternalSemaphoreInfo : nativeptr, pExternalSemaphoreProperties : nativeptr) = Loader.vkGetPhysicalDeviceExternalSemaphorePropertiesKHR.Invoke(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) - -module KHRExternalSemaphore = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRExternalSemaphoreCapabilities - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_KHR_external_semaphore" - let Number = 78 + static member vkGetSemaphoreCounterValueKHR = s_vkGetSemaphoreCounterValueKHRDel + static member vkWaitSemaphoresKHR = s_vkWaitSemaphoresKHRDel + static member vkSignalSemaphoreKHR = s_vkSignalSemaphoreKHRDel + let vkGetSemaphoreCounterValueKHR(device : VkDevice, semaphore : VkSemaphore, pValue : nativeptr) = Loader.vkGetSemaphoreCounterValueKHR.Invoke(device, semaphore, pValue) + let vkWaitSemaphoresKHR(device : VkDevice, pWaitInfo : nativeptr, timeout : uint64) = Loader.vkWaitSemaphoresKHR.Invoke(device, pWaitInfo, timeout) + let vkSignalSemaphoreKHR(device : VkDevice, pSignalInfo : nativeptr) = Loader.vkSignalSemaphoreKHR.Invoke(device, pSignalInfo) - let Required = [ KHRExternalSemaphoreCapabilities.Name ] +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +/// Promoted to Vulkan12. +module KHRUniformBufferStandardLayout = + let Type = ExtensionType.Device + let Name = "VK_KHR_uniform_buffer_standard_layout" + let Number = 254 + type VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = Vulkan12.VkPhysicalDeviceUniformBufferStandardLayoutFeatures - type VkSemaphoreImportFlagsKHR = VkSemaphoreImportFlags - type VkExportSemaphoreCreateInfoKHR = VkExportSemaphoreCreateInfo +/// Requires (KHRGetPhysicalDeviceProperties2, KHRStorageBufferStorageClass) | Vulkan11. +/// Promoted to Vulkan11. +module KHRVariablePointers = + let Type = ExtensionType.Device + let Name = "VK_KHR_variable_pointers" + let Number = 121 - [] - module EnumExtensions = - type VkSemaphoreImportFlags with - static member inline TemporaryBitKhr = unbox 0x00000001 + type VkPhysicalDeviceVariablePointerFeaturesKHR = Vulkan11.VkPhysicalDeviceVariablePointersFeatures + type VkPhysicalDeviceVariablePointersFeaturesKHR = Vulkan11.VkPhysicalDeviceVariablePointersFeatures -module FUCHSIAExternalSemaphore = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRExternalSemaphore - open KHRExternalSemaphoreCapabilities - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_FUCHSIA_external_semaphore" - let Number = 366 - let Required = [ KHRExternalSemaphore.Name; KHRExternalSemaphoreCapabilities.Name ] +/// Requires KHRVideoDecodeQueue. +module KHRVideoDecodeAv1 = + let Type = ExtensionType.Device + let Name = "VK_KHR_video_decode_av1" + let Number = 513 [] - type VkImportSemaphoreZirconHandleInfoFUCHSIA = + type VkVideoDecodeAV1CapabilitiesKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public semaphore : VkSemaphore - val mutable public flags : VkSemaphoreImportFlags - val mutable public handleType : VkExternalSemaphoreHandleTypeFlags - val mutable public zirconHandle : nativeint + val mutable public maxLevel : nativeint - new(pNext : nativeint, semaphore : VkSemaphore, flags : VkSemaphoreImportFlags, handleType : VkExternalSemaphoreHandleTypeFlags, zirconHandle : nativeint) = + new(pNext : nativeint, maxLevel : nativeint) = { - sType = 1000365000u + sType = 1000512000u pNext = pNext - semaphore = semaphore - flags = flags - handleType = handleType - zirconHandle = zirconHandle + maxLevel = maxLevel } - new(semaphore : VkSemaphore, flags : VkSemaphoreImportFlags, handleType : VkExternalSemaphoreHandleTypeFlags, zirconHandle : nativeint) = - VkImportSemaphoreZirconHandleInfoFUCHSIA(Unchecked.defaultof, semaphore, flags, handleType, zirconHandle) + new(maxLevel : nativeint) = + VkVideoDecodeAV1CapabilitiesKHR(Unchecked.defaultof, maxLevel) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.semaphore = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.handleType = Unchecked.defaultof && x.zirconHandle = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.maxLevel = Unchecked.defaultof static member Empty = - VkImportSemaphoreZirconHandleInfoFUCHSIA(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkVideoDecodeAV1CapabilitiesKHR(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "semaphore = %A" x.semaphore - sprintf "flags = %A" x.flags - sprintf "handleType = %A" x.handleType - sprintf "zirconHandle = %A" x.zirconHandle - ] |> sprintf "VkImportSemaphoreZirconHandleInfoFUCHSIA { %s }" + sprintf "maxLevel = %A" x.maxLevel + ] |> sprintf "VkVideoDecodeAV1CapabilitiesKHR { %s }" end [] - type VkSemaphoreGetZirconHandleInfoFUCHSIA = + type VkVideoDecodeAV1DpbSlotInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public semaphore : VkSemaphore - val mutable public handleType : VkExternalSemaphoreHandleTypeFlags + val mutable public pStdReferenceInfo : nativeptr - new(pNext : nativeint, semaphore : VkSemaphore, handleType : VkExternalSemaphoreHandleTypeFlags) = + new(pNext : nativeint, pStdReferenceInfo : nativeptr) = { - sType = 1000365001u + sType = 1000512005u pNext = pNext - semaphore = semaphore - handleType = handleType + pStdReferenceInfo = pStdReferenceInfo } - new(semaphore : VkSemaphore, handleType : VkExternalSemaphoreHandleTypeFlags) = - VkSemaphoreGetZirconHandleInfoFUCHSIA(Unchecked.defaultof, semaphore, handleType) + new(pStdReferenceInfo : nativeptr) = + VkVideoDecodeAV1DpbSlotInfoKHR(Unchecked.defaultof, pStdReferenceInfo) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.semaphore = Unchecked.defaultof && x.handleType = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.pStdReferenceInfo = Unchecked.defaultof> static member Empty = - VkSemaphoreGetZirconHandleInfoFUCHSIA(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkVideoDecodeAV1DpbSlotInfoKHR(Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "semaphore = %A" x.semaphore - sprintf "handleType = %A" x.handleType - ] |> sprintf "VkSemaphoreGetZirconHandleInfoFUCHSIA { %s }" + sprintf "pStdReferenceInfo = %A" x.pStdReferenceInfo + ] |> sprintf "VkVideoDecodeAV1DpbSlotInfoKHR { %s }" end - - [] - module EnumExtensions = - type VkExternalSemaphoreHandleTypeFlags with - static member inline ZirconEventBitFuchsia = unbox 0x00000080 - - module VkRaw = - [] - type VkImportSemaphoreZirconHandleFUCHSIADel = delegate of VkDevice * nativeptr -> VkResult - [] - type VkGetSemaphoreZirconHandleFUCHSIADel = delegate of VkDevice * nativeptr * nativeptr -> VkResult - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading FUCHSIAExternalSemaphore") - static let s_vkImportSemaphoreZirconHandleFUCHSIADel = VkRaw.vkImportInstanceDelegate "vkImportSemaphoreZirconHandleFUCHSIA" - static let s_vkGetSemaphoreZirconHandleFUCHSIADel = VkRaw.vkImportInstanceDelegate "vkGetSemaphoreZirconHandleFUCHSIA" - static do Report.End(3) |> ignore - static member vkImportSemaphoreZirconHandleFUCHSIA = s_vkImportSemaphoreZirconHandleFUCHSIADel - static member vkGetSemaphoreZirconHandleFUCHSIA = s_vkGetSemaphoreZirconHandleFUCHSIADel - let vkImportSemaphoreZirconHandleFUCHSIA(device : VkDevice, pImportSemaphoreZirconHandleInfo : nativeptr) = Loader.vkImportSemaphoreZirconHandleFUCHSIA.Invoke(device, pImportSemaphoreZirconHandleInfo) - let vkGetSemaphoreZirconHandleFUCHSIA(device : VkDevice, pGetZirconHandleInfo : nativeptr, pZirconHandle : nativeptr) = Loader.vkGetSemaphoreZirconHandleFUCHSIA.Invoke(device, pGetZirconHandleInfo, pZirconHandle) - -module FUCHSIAImagepipeSurface = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRSurface - let Name = "VK_FUCHSIA_imagepipe_surface" - let Number = 215 - - let Required = [ KHRSurface.Name ] - - [] - type VkImagePipeSurfaceCreateInfoFUCHSIA = + type VkVideoDecodeAV1PictureInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public flags : VkImagePipeSurfaceCreateFlagsFUCHSIA - val mutable public imagePipeHandle : nativeint + val mutable public pStdPictureInfo : nativeptr + val mutable public referenceNameSlotIndices : int32_7 + val mutable public frameHeaderOffset : uint32 + val mutable public tileCount : uint32 + val mutable public pTileOffsets : nativeptr + val mutable public pTileSizes : nativeptr - new(pNext : nativeint, flags : VkImagePipeSurfaceCreateFlagsFUCHSIA, imagePipeHandle : nativeint) = + new(pNext : nativeint, pStdPictureInfo : nativeptr, referenceNameSlotIndices : int32_7, frameHeaderOffset : uint32, tileCount : uint32, pTileOffsets : nativeptr, pTileSizes : nativeptr) = { - sType = 1000214000u + sType = 1000512001u pNext = pNext - flags = flags - imagePipeHandle = imagePipeHandle + pStdPictureInfo = pStdPictureInfo + referenceNameSlotIndices = referenceNameSlotIndices + frameHeaderOffset = frameHeaderOffset + tileCount = tileCount + pTileOffsets = pTileOffsets + pTileSizes = pTileSizes } - new(flags : VkImagePipeSurfaceCreateFlagsFUCHSIA, imagePipeHandle : nativeint) = - VkImagePipeSurfaceCreateInfoFUCHSIA(Unchecked.defaultof, flags, imagePipeHandle) + new(pStdPictureInfo : nativeptr, referenceNameSlotIndices : int32_7, frameHeaderOffset : uint32, tileCount : uint32, pTileOffsets : nativeptr, pTileSizes : nativeptr) = + VkVideoDecodeAV1PictureInfoKHR(Unchecked.defaultof, pStdPictureInfo, referenceNameSlotIndices, frameHeaderOffset, tileCount, pTileOffsets, pTileSizes) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.imagePipeHandle = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.pStdPictureInfo = Unchecked.defaultof> && x.referenceNameSlotIndices = Unchecked.defaultof && x.frameHeaderOffset = Unchecked.defaultof && x.tileCount = Unchecked.defaultof && x.pTileOffsets = Unchecked.defaultof> && x.pTileSizes = Unchecked.defaultof> static member Empty = - VkImagePipeSurfaceCreateInfoFUCHSIA(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkVideoDecodeAV1PictureInfoKHR(Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "flags = %A" x.flags - sprintf "imagePipeHandle = %A" x.imagePipeHandle - ] |> sprintf "VkImagePipeSurfaceCreateInfoFUCHSIA { %s }" + sprintf "pStdPictureInfo = %A" x.pStdPictureInfo + sprintf "referenceNameSlotIndices = %A" x.referenceNameSlotIndices + sprintf "frameHeaderOffset = %A" x.frameHeaderOffset + sprintf "tileCount = %A" x.tileCount + sprintf "pTileOffsets = %A" x.pTileOffsets + sprintf "pTileSizes = %A" x.pTileSizes + ] |> sprintf "VkVideoDecodeAV1PictureInfoKHR { %s }" end + [] + type VkVideoDecodeAV1ProfileInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public stdProfile : nativeint + val mutable public filmGrainSupport : VkBool32 - module VkRaw = - [] - type VkCreateImagePipeSurfaceFUCHSIADel = delegate of VkInstance * nativeptr * nativeptr * nativeptr -> VkResult + new(pNext : nativeint, stdProfile : nativeint, filmGrainSupport : VkBool32) = + { + sType = 1000512003u + pNext = pNext + stdProfile = stdProfile + filmGrainSupport = filmGrainSupport + } - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading FUCHSIAImagepipeSurface") - static let s_vkCreateImagePipeSurfaceFUCHSIADel = VkRaw.vkImportInstanceDelegate "vkCreateImagePipeSurfaceFUCHSIA" - static do Report.End(3) |> ignore - static member vkCreateImagePipeSurfaceFUCHSIA = s_vkCreateImagePipeSurfaceFUCHSIADel - let vkCreateImagePipeSurfaceFUCHSIA(instance : VkInstance, pCreateInfo : nativeptr, pAllocator : nativeptr, pSurface : nativeptr) = Loader.vkCreateImagePipeSurfaceFUCHSIA.Invoke(instance, pCreateInfo, pAllocator, pSurface) + new(stdProfile : nativeint, filmGrainSupport : VkBool32) = + VkVideoDecodeAV1ProfileInfoKHR(Unchecked.defaultof, stdProfile, filmGrainSupport) -module GGPStreamDescriptorSurface = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRSurface - let Name = "VK_GGP_stream_descriptor_surface" - let Number = 50 + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.stdProfile = Unchecked.defaultof && x.filmGrainSupport = Unchecked.defaultof - let Required = [ KHRSurface.Name ] + static member Empty = + VkVideoDecodeAV1ProfileInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "stdProfile = %A" x.stdProfile + sprintf "filmGrainSupport = %A" x.filmGrainSupport + ] |> sprintf "VkVideoDecodeAV1ProfileInfoKHR { %s }" + end [] - type VkStreamDescriptorSurfaceCreateInfoGGP = + type VkVideoDecodeAV1SessionParametersCreateInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public flags : VkStreamDescriptorSurfaceCreateFlagsGGP - val mutable public streamDescriptor : nativeint + val mutable public pStdSequenceHeader : nativeptr - new(pNext : nativeint, flags : VkStreamDescriptorSurfaceCreateFlagsGGP, streamDescriptor : nativeint) = + new(pNext : nativeint, pStdSequenceHeader : nativeptr) = { - sType = 1000049000u + sType = 1000512004u pNext = pNext - flags = flags - streamDescriptor = streamDescriptor + pStdSequenceHeader = pStdSequenceHeader } - new(flags : VkStreamDescriptorSurfaceCreateFlagsGGP, streamDescriptor : nativeint) = - VkStreamDescriptorSurfaceCreateInfoGGP(Unchecked.defaultof, flags, streamDescriptor) + new(pStdSequenceHeader : nativeptr) = + VkVideoDecodeAV1SessionParametersCreateInfoKHR(Unchecked.defaultof, pStdSequenceHeader) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.streamDescriptor = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.pStdSequenceHeader = Unchecked.defaultof> static member Empty = - VkStreamDescriptorSurfaceCreateInfoGGP(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkVideoDecodeAV1SessionParametersCreateInfoKHR(Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "flags = %A" x.flags - sprintf "streamDescriptor = %A" x.streamDescriptor - ] |> sprintf "VkStreamDescriptorSurfaceCreateInfoGGP { %s }" + sprintf "pStdSequenceHeader = %A" x.pStdSequenceHeader + ] |> sprintf "VkVideoDecodeAV1SessionParametersCreateInfoKHR { %s }" end - module VkRaw = - [] - type VkCreateStreamDescriptorSurfaceGGPDel = delegate of VkInstance * nativeptr * nativeptr * nativeptr -> VkResult + [] + module EnumExtensions = + type KHRVideoQueue.VkVideoCodecOperationFlagsKHR with + static member inline DecodeAv1Bit = unbox 0x00000004 - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading GGPStreamDescriptorSurface") - static let s_vkCreateStreamDescriptorSurfaceGGPDel = VkRaw.vkImportInstanceDelegate "vkCreateStreamDescriptorSurfaceGGP" - static do Report.End(3) |> ignore - static member vkCreateStreamDescriptorSurfaceGGP = s_vkCreateStreamDescriptorSurfaceGGPDel - let vkCreateStreamDescriptorSurfaceGGP(instance : VkInstance, pCreateInfo : nativeptr, pAllocator : nativeptr, pSurface : nativeptr) = Loader.vkCreateStreamDescriptorSurfaceGGP.Invoke(instance, pCreateInfo, pAllocator, pSurface) -module GGPFrameToken = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open GGPStreamDescriptorSurface - open KHRSurface - open KHRSwapchain - let Name = "VK_GGP_frame_token" - let Number = 192 +/// Requires KHRVideoDecodeQueue. +module KHRVideoDecodeH264 = + let Type = ExtensionType.Device + let Name = "VK_KHR_video_decode_h264" + let Number = 41 - let Required = [ GGPStreamDescriptorSurface.Name; KHRSwapchain.Name ] + [] + type VkVideoDecodeH264PictureLayoutFlagsKHR = + | All = 3 + | Progressive = 0 + | InterlacedInterleavedLinesBit = 0x00000001 + | InterlacedSeparatePlanesBit = 0x00000002 [] - type VkPresentFrameTokenGGP = + type VkVideoDecodeH264CapabilitiesKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public frameToken : nativeint + val mutable public maxLevelIdc : nativeint + val mutable public fieldOffsetGranularity : VkOffset2D - new(pNext : nativeint, frameToken : nativeint) = + new(pNext : nativeint, maxLevelIdc : nativeint, fieldOffsetGranularity : VkOffset2D) = { - sType = 1000191000u + sType = 1000040000u pNext = pNext - frameToken = frameToken + maxLevelIdc = maxLevelIdc + fieldOffsetGranularity = fieldOffsetGranularity } - new(frameToken : nativeint) = - VkPresentFrameTokenGGP(Unchecked.defaultof, frameToken) + new(maxLevelIdc : nativeint, fieldOffsetGranularity : VkOffset2D) = + VkVideoDecodeH264CapabilitiesKHR(Unchecked.defaultof, maxLevelIdc, fieldOffsetGranularity) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.frameToken = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.maxLevelIdc = Unchecked.defaultof && x.fieldOffsetGranularity = Unchecked.defaultof static member Empty = - VkPresentFrameTokenGGP(Unchecked.defaultof, Unchecked.defaultof) + VkVideoDecodeH264CapabilitiesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "frameToken = %A" x.frameToken - ] |> sprintf "VkPresentFrameTokenGGP { %s }" + sprintf "maxLevelIdc = %A" x.maxLevelIdc + sprintf "fieldOffsetGranularity = %A" x.fieldOffsetGranularity + ] |> sprintf "VkVideoDecodeH264CapabilitiesKHR { %s }" end + [] + type VkVideoDecodeH264DpbSlotInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public pStdReferenceInfo : nativeptr + new(pNext : nativeint, pStdReferenceInfo : nativeptr) = + { + sType = 1000040006u + pNext = pNext + pStdReferenceInfo = pStdReferenceInfo + } -module GOOGLEDecorateString = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_GOOGLE_decorate_string" - let Number = 225 - + new(pStdReferenceInfo : nativeptr) = + VkVideoDecodeH264DpbSlotInfoKHR(Unchecked.defaultof, pStdReferenceInfo) -module GOOGLEDisplayTiming = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRSurface - open KHRSwapchain - let Name = "VK_GOOGLE_display_timing" - let Number = 93 + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.pStdReferenceInfo = Unchecked.defaultof> - let Required = [ KHRSwapchain.Name ] + static member Empty = + VkVideoDecodeH264DpbSlotInfoKHR(Unchecked.defaultof, Unchecked.defaultof>) + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "pStdReferenceInfo = %A" x.pStdReferenceInfo + ] |> sprintf "VkVideoDecodeH264DpbSlotInfoKHR { %s }" + end [] - type VkPastPresentationTimingGOOGLE = + type VkVideoDecodeH264PictureInfoKHR = struct - val mutable public presentID : uint32 - val mutable public desiredPresentTime : uint64 - val mutable public actualPresentTime : uint64 - val mutable public earliestPresentTime : uint64 - val mutable public presentMargin : uint64 + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public pStdPictureInfo : nativeptr + val mutable public sliceCount : uint32 + val mutable public pSliceOffsets : nativeptr - new(presentID : uint32, desiredPresentTime : uint64, actualPresentTime : uint64, earliestPresentTime : uint64, presentMargin : uint64) = + new(pNext : nativeint, pStdPictureInfo : nativeptr, sliceCount : uint32, pSliceOffsets : nativeptr) = { - presentID = presentID - desiredPresentTime = desiredPresentTime - actualPresentTime = actualPresentTime - earliestPresentTime = earliestPresentTime - presentMargin = presentMargin + sType = 1000040001u + pNext = pNext + pStdPictureInfo = pStdPictureInfo + sliceCount = sliceCount + pSliceOffsets = pSliceOffsets } + new(pStdPictureInfo : nativeptr, sliceCount : uint32, pSliceOffsets : nativeptr) = + VkVideoDecodeH264PictureInfoKHR(Unchecked.defaultof, pStdPictureInfo, sliceCount, pSliceOffsets) + member x.IsEmpty = - x.presentID = Unchecked.defaultof && x.desiredPresentTime = Unchecked.defaultof && x.actualPresentTime = Unchecked.defaultof && x.earliestPresentTime = Unchecked.defaultof && x.presentMargin = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.pStdPictureInfo = Unchecked.defaultof> && x.sliceCount = Unchecked.defaultof && x.pSliceOffsets = Unchecked.defaultof> static member Empty = - VkPastPresentationTimingGOOGLE(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkVideoDecodeH264PictureInfoKHR(Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ - sprintf "presentID = %A" x.presentID - sprintf "desiredPresentTime = %A" x.desiredPresentTime - sprintf "actualPresentTime = %A" x.actualPresentTime - sprintf "earliestPresentTime = %A" x.earliestPresentTime - sprintf "presentMargin = %A" x.presentMargin - ] |> sprintf "VkPastPresentationTimingGOOGLE { %s }" + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "pStdPictureInfo = %A" x.pStdPictureInfo + sprintf "sliceCount = %A" x.sliceCount + sprintf "pSliceOffsets = %A" x.pSliceOffsets + ] |> sprintf "VkVideoDecodeH264PictureInfoKHR { %s }" end [] - type VkPresentTimeGOOGLE = + type VkVideoDecodeH264ProfileInfoKHR = struct - val mutable public presentID : uint32 - val mutable public desiredPresentTime : uint64 + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public stdProfileIdc : nativeint + val mutable public pictureLayout : VkVideoDecodeH264PictureLayoutFlagsKHR - new(presentID : uint32, desiredPresentTime : uint64) = + new(pNext : nativeint, stdProfileIdc : nativeint, pictureLayout : VkVideoDecodeH264PictureLayoutFlagsKHR) = { - presentID = presentID - desiredPresentTime = desiredPresentTime + sType = 1000040003u + pNext = pNext + stdProfileIdc = stdProfileIdc + pictureLayout = pictureLayout } + new(stdProfileIdc : nativeint, pictureLayout : VkVideoDecodeH264PictureLayoutFlagsKHR) = + VkVideoDecodeH264ProfileInfoKHR(Unchecked.defaultof, stdProfileIdc, pictureLayout) + member x.IsEmpty = - x.presentID = Unchecked.defaultof && x.desiredPresentTime = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.stdProfileIdc = Unchecked.defaultof && x.pictureLayout = Unchecked.defaultof static member Empty = - VkPresentTimeGOOGLE(Unchecked.defaultof, Unchecked.defaultof) + VkVideoDecodeH264ProfileInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ - sprintf "presentID = %A" x.presentID - sprintf "desiredPresentTime = %A" x.desiredPresentTime - ] |> sprintf "VkPresentTimeGOOGLE { %s }" + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "stdProfileIdc = %A" x.stdProfileIdc + sprintf "pictureLayout = %A" x.pictureLayout + ] |> sprintf "VkVideoDecodeH264ProfileInfoKHR { %s }" end [] - type VkPresentTimesInfoGOOGLE = + type VkVideoDecodeH264SessionParametersAddInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public swapchainCount : uint32 - val mutable public pTimes : nativeptr + val mutable public stdSPSCount : uint32 + val mutable public pStdSPSs : nativeptr + val mutable public stdPPSCount : uint32 + val mutable public pStdPPSs : nativeptr - new(pNext : nativeint, swapchainCount : uint32, pTimes : nativeptr) = + new(pNext : nativeint, stdSPSCount : uint32, pStdSPSs : nativeptr, stdPPSCount : uint32, pStdPPSs : nativeptr) = { - sType = 1000092000u + sType = 1000040005u pNext = pNext - swapchainCount = swapchainCount - pTimes = pTimes + stdSPSCount = stdSPSCount + pStdSPSs = pStdSPSs + stdPPSCount = stdPPSCount + pStdPPSs = pStdPPSs } - new(swapchainCount : uint32, pTimes : nativeptr) = - VkPresentTimesInfoGOOGLE(Unchecked.defaultof, swapchainCount, pTimes) + new(stdSPSCount : uint32, pStdSPSs : nativeptr, stdPPSCount : uint32, pStdPPSs : nativeptr) = + VkVideoDecodeH264SessionParametersAddInfoKHR(Unchecked.defaultof, stdSPSCount, pStdSPSs, stdPPSCount, pStdPPSs) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.swapchainCount = Unchecked.defaultof && x.pTimes = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.stdSPSCount = Unchecked.defaultof && x.pStdSPSs = Unchecked.defaultof> && x.stdPPSCount = Unchecked.defaultof && x.pStdPPSs = Unchecked.defaultof> static member Empty = - VkPresentTimesInfoGOOGLE(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + VkVideoDecodeH264SessionParametersAddInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "swapchainCount = %A" x.swapchainCount - sprintf "pTimes = %A" x.pTimes - ] |> sprintf "VkPresentTimesInfoGOOGLE { %s }" + sprintf "stdSPSCount = %A" x.stdSPSCount + sprintf "pStdSPSs = %A" x.pStdSPSs + sprintf "stdPPSCount = %A" x.stdPPSCount + sprintf "pStdPPSs = %A" x.pStdPPSs + ] |> sprintf "VkVideoDecodeH264SessionParametersAddInfoKHR { %s }" end [] - type VkRefreshCycleDurationGOOGLE = + type VkVideoDecodeH264SessionParametersCreateInfoKHR = struct - val mutable public refreshDuration : uint64 + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public maxStdSPSCount : uint32 + val mutable public maxStdPPSCount : uint32 + val mutable public pParametersAddInfo : nativeptr - new(refreshDuration : uint64) = + new(pNext : nativeint, maxStdSPSCount : uint32, maxStdPPSCount : uint32, pParametersAddInfo : nativeptr) = { - refreshDuration = refreshDuration + sType = 1000040004u + pNext = pNext + maxStdSPSCount = maxStdSPSCount + maxStdPPSCount = maxStdPPSCount + pParametersAddInfo = pParametersAddInfo } + new(maxStdSPSCount : uint32, maxStdPPSCount : uint32, pParametersAddInfo : nativeptr) = + VkVideoDecodeH264SessionParametersCreateInfoKHR(Unchecked.defaultof, maxStdSPSCount, maxStdPPSCount, pParametersAddInfo) + member x.IsEmpty = - x.refreshDuration = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.maxStdSPSCount = Unchecked.defaultof && x.maxStdPPSCount = Unchecked.defaultof && x.pParametersAddInfo = Unchecked.defaultof> static member Empty = - VkRefreshCycleDurationGOOGLE(Unchecked.defaultof) + VkVideoDecodeH264SessionParametersCreateInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ - sprintf "refreshDuration = %A" x.refreshDuration - ] |> sprintf "VkRefreshCycleDurationGOOGLE { %s }" + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "maxStdSPSCount = %A" x.maxStdSPSCount + sprintf "maxStdPPSCount = %A" x.maxStdPPSCount + sprintf "pParametersAddInfo = %A" x.pParametersAddInfo + ] |> sprintf "VkVideoDecodeH264SessionParametersCreateInfoKHR { %s }" end - module VkRaw = - [] - type VkGetRefreshCycleDurationGOOGLEDel = delegate of VkDevice * VkSwapchainKHR * nativeptr -> VkResult - [] - type VkGetPastPresentationTimingGOOGLEDel = delegate of VkDevice * VkSwapchainKHR * nativeptr * nativeptr -> VkResult - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading GOOGLEDisplayTiming") - static let s_vkGetRefreshCycleDurationGOOGLEDel = VkRaw.vkImportInstanceDelegate "vkGetRefreshCycleDurationGOOGLE" - static let s_vkGetPastPresentationTimingGOOGLEDel = VkRaw.vkImportInstanceDelegate "vkGetPastPresentationTimingGOOGLE" - static do Report.End(3) |> ignore - static member vkGetRefreshCycleDurationGOOGLE = s_vkGetRefreshCycleDurationGOOGLEDel - static member vkGetPastPresentationTimingGOOGLE = s_vkGetPastPresentationTimingGOOGLEDel - let vkGetRefreshCycleDurationGOOGLE(device : VkDevice, swapchain : VkSwapchainKHR, pDisplayTimingProperties : nativeptr) = Loader.vkGetRefreshCycleDurationGOOGLE.Invoke(device, swapchain, pDisplayTimingProperties) - let vkGetPastPresentationTimingGOOGLE(device : VkDevice, swapchain : VkSwapchainKHR, pPresentationTimingCount : nativeptr, pPresentationTimings : nativeptr) = Loader.vkGetPastPresentationTimingGOOGLE.Invoke(device, swapchain, pPresentationTimingCount, pPresentationTimings) - -module GOOGLEHlslFunctionality1 = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_GOOGLE_hlsl_functionality1" - let Number = 224 - + [] + module EnumExtensions = + type KHRVideoQueue.VkVideoCodecOperationFlagsKHR with + static member inline DecodeH264Bit = unbox 0x00000001 -module GOOGLESurfacelessQuery = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRSurface - let Name = "VK_GOOGLE_surfaceless_query" - let Number = 434 - let Required = [ KHRSurface.Name ] +/// Requires KHRVideoDecodeQueue. +module KHRVideoDecodeH265 = + let Type = ExtensionType.Device + let Name = "VK_KHR_video_decode_h265" + let Number = 188 + [] + type VkVideoDecodeH265CapabilitiesKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public maxLevelIdc : nativeint -module GOOGLEUserType = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_GOOGLE_user_type" - let Number = 290 + new(pNext : nativeint, maxLevelIdc : nativeint) = + { + sType = 1000187000u + pNext = pNext + maxLevelIdc = maxLevelIdc + } + new(maxLevelIdc : nativeint) = + VkVideoDecodeH265CapabilitiesKHR(Unchecked.defaultof, maxLevelIdc) -module HUAWEIInvocationMask = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open EXTDebugReport - open EXTDescriptorIndexing - open KHRAccelerationStructure - open KHRBufferDeviceAddress - open KHRDeferredHostOperations - open KHRGetPhysicalDeviceProperties2 - open KHRMaintenance3 - open KHRPipelineLibrary - open KHRRayTracingPipeline - open KHRShaderFloatControls - open KHRSpirv14 - open KHRSynchronization2 - let Name = "VK_HUAWEI_invocation_mask" - let Number = 371 + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.maxLevelIdc = Unchecked.defaultof - let Required = [ KHRRayTracingPipeline.Name; KHRSynchronization2.Name ] + static member Empty = + VkVideoDecodeH265CapabilitiesKHR(Unchecked.defaultof, Unchecked.defaultof) + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "maxLevelIdc = %A" x.maxLevelIdc + ] |> sprintf "VkVideoDecodeH265CapabilitiesKHR { %s }" + end [] - type VkPhysicalDeviceInvocationMaskFeaturesHUAWEI = + type VkVideoDecodeH265DpbSlotInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public invocationMask : VkBool32 + val mutable public pStdReferenceInfo : nativeptr - new(pNext : nativeint, invocationMask : VkBool32) = + new(pNext : nativeint, pStdReferenceInfo : nativeptr) = { - sType = 1000370000u + sType = 1000187005u pNext = pNext - invocationMask = invocationMask + pStdReferenceInfo = pStdReferenceInfo } - new(invocationMask : VkBool32) = - VkPhysicalDeviceInvocationMaskFeaturesHUAWEI(Unchecked.defaultof, invocationMask) + new(pStdReferenceInfo : nativeptr) = + VkVideoDecodeH265DpbSlotInfoKHR(Unchecked.defaultof, pStdReferenceInfo) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.invocationMask = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.pStdReferenceInfo = Unchecked.defaultof> static member Empty = - VkPhysicalDeviceInvocationMaskFeaturesHUAWEI(Unchecked.defaultof, Unchecked.defaultof) + VkVideoDecodeH265DpbSlotInfoKHR(Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "invocationMask = %A" x.invocationMask - ] |> sprintf "VkPhysicalDeviceInvocationMaskFeaturesHUAWEI { %s }" + sprintf "pStdReferenceInfo = %A" x.pStdReferenceInfo + ] |> sprintf "VkVideoDecodeH265DpbSlotInfoKHR { %s }" end + [] + type VkVideoDecodeH265PictureInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public pStdPictureInfo : nativeptr + val mutable public sliceSegmentCount : uint32 + val mutable public pSliceSegmentOffsets : nativeptr - [] - module EnumExtensions = - type VkAccessFlags2 with - static member inline Access2InvocationMaskReadBitHuawei = unbox 0x00000080 - type VkImageUsageFlags with - static member inline InvocationMaskBitHuawei = unbox 0x00040000 - type VkPipelineStageFlags2 with - static member inline PipelineStage2InvocationMaskBitHuawei = unbox 0x00000100 - - module VkRaw = - [] - type VkCmdBindInvocationMaskHUAWEIDel = delegate of VkCommandBuffer * VkImageView * VkImageLayout -> unit + new(pNext : nativeint, pStdPictureInfo : nativeptr, sliceSegmentCount : uint32, pSliceSegmentOffsets : nativeptr) = + { + sType = 1000187004u + pNext = pNext + pStdPictureInfo = pStdPictureInfo + sliceSegmentCount = sliceSegmentCount + pSliceSegmentOffsets = pSliceSegmentOffsets + } - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading HUAWEIInvocationMask") - static let s_vkCmdBindInvocationMaskHUAWEIDel = VkRaw.vkImportInstanceDelegate "vkCmdBindInvocationMaskHUAWEI" - static do Report.End(3) |> ignore - static member vkCmdBindInvocationMaskHUAWEI = s_vkCmdBindInvocationMaskHUAWEIDel - let vkCmdBindInvocationMaskHUAWEI(commandBuffer : VkCommandBuffer, imageView : VkImageView, imageLayout : VkImageLayout) = Loader.vkCmdBindInvocationMaskHUAWEI.Invoke(commandBuffer, imageView, imageLayout) + new(pStdPictureInfo : nativeptr, sliceSegmentCount : uint32, pSliceSegmentOffsets : nativeptr) = + VkVideoDecodeH265PictureInfoKHR(Unchecked.defaultof, pStdPictureInfo, sliceSegmentCount, pSliceSegmentOffsets) -module HUAWEISubpassShading = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRCreateRenderpass2 - open KHRGetPhysicalDeviceProperties2 - open KHRMaintenance2 - open KHRMultiview - open KHRSynchronization2 - let Name = "VK_HUAWEI_subpass_shading" - let Number = 370 + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.pStdPictureInfo = Unchecked.defaultof> && x.sliceSegmentCount = Unchecked.defaultof && x.pSliceSegmentOffsets = Unchecked.defaultof> - let Required = [ KHRCreateRenderpass2.Name; KHRSynchronization2.Name ] + static member Empty = + VkVideoDecodeH265PictureInfoKHR(Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>) + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "pStdPictureInfo = %A" x.pStdPictureInfo + sprintf "sliceSegmentCount = %A" x.sliceSegmentCount + sprintf "pSliceSegmentOffsets = %A" x.pSliceSegmentOffsets + ] |> sprintf "VkVideoDecodeH265PictureInfoKHR { %s }" + end [] - type VkPhysicalDeviceSubpassShadingFeaturesHUAWEI = + type VkVideoDecodeH265ProfileInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public subpassShading : VkBool32 + val mutable public stdProfileIdc : nativeint - new(pNext : nativeint, subpassShading : VkBool32) = + new(pNext : nativeint, stdProfileIdc : nativeint) = { - sType = 1000369001u + sType = 1000187003u pNext = pNext - subpassShading = subpassShading + stdProfileIdc = stdProfileIdc } - new(subpassShading : VkBool32) = - VkPhysicalDeviceSubpassShadingFeaturesHUAWEI(Unchecked.defaultof, subpassShading) + new(stdProfileIdc : nativeint) = + VkVideoDecodeH265ProfileInfoKHR(Unchecked.defaultof, stdProfileIdc) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.subpassShading = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.stdProfileIdc = Unchecked.defaultof static member Empty = - VkPhysicalDeviceSubpassShadingFeaturesHUAWEI(Unchecked.defaultof, Unchecked.defaultof) + VkVideoDecodeH265ProfileInfoKHR(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "subpassShading = %A" x.subpassShading - ] |> sprintf "VkPhysicalDeviceSubpassShadingFeaturesHUAWEI { %s }" + sprintf "stdProfileIdc = %A" x.stdProfileIdc + ] |> sprintf "VkVideoDecodeH265ProfileInfoKHR { %s }" end [] - type VkPhysicalDeviceSubpassShadingPropertiesHUAWEI = + type VkVideoDecodeH265SessionParametersAddInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public maxSubpassShadingWorkgroupSizeAspectRatio : uint32 + val mutable public stdVPSCount : uint32 + val mutable public pStdVPSs : nativeptr + val mutable public stdSPSCount : uint32 + val mutable public pStdSPSs : nativeptr + val mutable public stdPPSCount : uint32 + val mutable public pStdPPSs : nativeptr - new(pNext : nativeint, maxSubpassShadingWorkgroupSizeAspectRatio : uint32) = + new(pNext : nativeint, stdVPSCount : uint32, pStdVPSs : nativeptr, stdSPSCount : uint32, pStdSPSs : nativeptr, stdPPSCount : uint32, pStdPPSs : nativeptr) = { - sType = 1000369002u + sType = 1000187002u pNext = pNext - maxSubpassShadingWorkgroupSizeAspectRatio = maxSubpassShadingWorkgroupSizeAspectRatio + stdVPSCount = stdVPSCount + pStdVPSs = pStdVPSs + stdSPSCount = stdSPSCount + pStdSPSs = pStdSPSs + stdPPSCount = stdPPSCount + pStdPPSs = pStdPPSs } - new(maxSubpassShadingWorkgroupSizeAspectRatio : uint32) = - VkPhysicalDeviceSubpassShadingPropertiesHUAWEI(Unchecked.defaultof, maxSubpassShadingWorkgroupSizeAspectRatio) + new(stdVPSCount : uint32, pStdVPSs : nativeptr, stdSPSCount : uint32, pStdSPSs : nativeptr, stdPPSCount : uint32, pStdPPSs : nativeptr) = + VkVideoDecodeH265SessionParametersAddInfoKHR(Unchecked.defaultof, stdVPSCount, pStdVPSs, stdSPSCount, pStdSPSs, stdPPSCount, pStdPPSs) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.maxSubpassShadingWorkgroupSizeAspectRatio = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.stdVPSCount = Unchecked.defaultof && x.pStdVPSs = Unchecked.defaultof> && x.stdSPSCount = Unchecked.defaultof && x.pStdSPSs = Unchecked.defaultof> && x.stdPPSCount = Unchecked.defaultof && x.pStdPPSs = Unchecked.defaultof> static member Empty = - VkPhysicalDeviceSubpassShadingPropertiesHUAWEI(Unchecked.defaultof, Unchecked.defaultof) + VkVideoDecodeH265SessionParametersAddInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "maxSubpassShadingWorkgroupSizeAspectRatio = %A" x.maxSubpassShadingWorkgroupSizeAspectRatio - ] |> sprintf "VkPhysicalDeviceSubpassShadingPropertiesHUAWEI { %s }" + sprintf "stdVPSCount = %A" x.stdVPSCount + sprintf "pStdVPSs = %A" x.pStdVPSs + sprintf "stdSPSCount = %A" x.stdSPSCount + sprintf "pStdSPSs = %A" x.pStdSPSs + sprintf "stdPPSCount = %A" x.stdPPSCount + sprintf "pStdPPSs = %A" x.pStdPPSs + ] |> sprintf "VkVideoDecodeH265SessionParametersAddInfoKHR { %s }" end [] - type VkSubpassShadingPipelineCreateInfoHUAWEI = + type VkVideoDecodeH265SessionParametersCreateInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public renderPass : VkRenderPass - val mutable public subpass : uint32 + val mutable public maxStdVPSCount : uint32 + val mutable public maxStdSPSCount : uint32 + val mutable public maxStdPPSCount : uint32 + val mutable public pParametersAddInfo : nativeptr - new(pNext : nativeint, renderPass : VkRenderPass, subpass : uint32) = + new(pNext : nativeint, maxStdVPSCount : uint32, maxStdSPSCount : uint32, maxStdPPSCount : uint32, pParametersAddInfo : nativeptr) = { - sType = 1000369000u + sType = 1000187001u pNext = pNext - renderPass = renderPass - subpass = subpass + maxStdVPSCount = maxStdVPSCount + maxStdSPSCount = maxStdSPSCount + maxStdPPSCount = maxStdPPSCount + pParametersAddInfo = pParametersAddInfo } - new(renderPass : VkRenderPass, subpass : uint32) = - VkSubpassShadingPipelineCreateInfoHUAWEI(Unchecked.defaultof, renderPass, subpass) + new(maxStdVPSCount : uint32, maxStdSPSCount : uint32, maxStdPPSCount : uint32, pParametersAddInfo : nativeptr) = + VkVideoDecodeH265SessionParametersCreateInfoKHR(Unchecked.defaultof, maxStdVPSCount, maxStdSPSCount, maxStdPPSCount, pParametersAddInfo) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.renderPass = Unchecked.defaultof && x.subpass = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.maxStdVPSCount = Unchecked.defaultof && x.maxStdSPSCount = Unchecked.defaultof && x.maxStdPPSCount = Unchecked.defaultof && x.pParametersAddInfo = Unchecked.defaultof> static member Empty = - VkSubpassShadingPipelineCreateInfoHUAWEI(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkVideoDecodeH265SessionParametersCreateInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "renderPass = %A" x.renderPass - sprintf "subpass = %A" x.subpass - ] |> sprintf "VkSubpassShadingPipelineCreateInfoHUAWEI { %s }" + sprintf "maxStdVPSCount = %A" x.maxStdVPSCount + sprintf "maxStdSPSCount = %A" x.maxStdSPSCount + sprintf "maxStdPPSCount = %A" x.maxStdPPSCount + sprintf "pParametersAddInfo = %A" x.pParametersAddInfo + ] |> sprintf "VkVideoDecodeH265SessionParametersCreateInfoKHR { %s }" end [] module EnumExtensions = - type VkPipelineBindPoint with - static member inline SubpassShadingHuawei = unbox 1000369003 - type VkPipelineStageFlags2 with - static member inline PipelineStage2SubpassShadingBitHuawei = unbox 0x00000080 - type VkShaderStageFlags with - static member inline SubpassShadingBitHuawei = unbox 0x00004000 + type KHRVideoQueue.VkVideoCodecOperationFlagsKHR with + static member inline DecodeH265Bit = unbox 0x00000002 - module VkRaw = - [] - type VkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEIDel = delegate of VkDevice * VkRenderPass * nativeptr -> VkResult - [] - type VkCmdSubpassShadingHUAWEIDel = delegate of VkCommandBuffer -> unit - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading HUAWEISubpassShading") - static let s_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEIDel = VkRaw.vkImportInstanceDelegate "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI" - static let s_vkCmdSubpassShadingHUAWEIDel = VkRaw.vkImportInstanceDelegate "vkCmdSubpassShadingHUAWEI" - static do Report.End(3) |> ignore - static member vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = s_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEIDel - static member vkCmdSubpassShadingHUAWEI = s_vkCmdSubpassShadingHUAWEIDel - let vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device : VkDevice, renderpass : VkRenderPass, pMaxWorkgroupSize : nativeptr) = Loader.vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI.Invoke(device, renderpass, pMaxWorkgroupSize) - let vkCmdSubpassShadingHUAWEI(commandBuffer : VkCommandBuffer) = Loader.vkCmdSubpassShadingHUAWEI.Invoke(commandBuffer) +/// Requires KHRVideoEncodeQueue. +module KHRVideoEncodeH264 = + let Type = ExtensionType.Device + let Name = "VK_KHR_video_encode_h264" + let Number = 39 -module IMGFilterCubic = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_IMG_filter_cubic" - let Number = 16 + [] + type VkVideoEncodeH264CapabilityFlagsKHR = + | All = 511 + | None = 0 + | HrdComplianceBit = 0x00000001 + | PredictionWeightTableGeneratedBit = 0x00000002 + | RowUnalignedSliceBit = 0x00000004 + | DifferentSliceTypeBit = 0x00000008 + | BFrameInL0ListBit = 0x00000010 + | BFrameInL1ListBit = 0x00000020 + | PerPictureTypeMinMaxQpBit = 0x00000040 + | PerSliceConstantQpBit = 0x00000080 + | GeneratePrefixNaluBit = 0x00000100 + [] + type VkVideoEncodeH264StdFlagsKHR = + | All = 1835007 + | None = 0 + | SeparateColorPlaneFlagSetBit = 0x00000001 + | QpprimeYZeroTransformBypassFlagSetBit = 0x00000002 + | ScalingMatrixPresentFlagSetBit = 0x00000004 + | ChromaQpIndexOffsetBit = 0x00000008 + | SecondChromaQpIndexOffsetBit = 0x00000010 + | PicInitQpMinus26Bit = 0x00000020 + | WeightedPredFlagSetBit = 0x00000040 + | WeightedBipredIdcExplicitBit = 0x00000080 + | WeightedBipredIdcImplicitBit = 0x00000100 + | Transform8x8ModeFlagSetBit = 0x00000200 + | DirectSpatialMvPredFlagUnsetBit = 0x00000400 + | EntropyCodingModeFlagUnsetBit = 0x00000800 + | EntropyCodingModeFlagSetBit = 0x00001000 + | Direct8x8InferenceFlagUnsetBit = 0x00002000 + | ConstrainedIntraPredFlagSetBit = 0x00004000 + | DeblockingFilterDisabledBit = 0x00008000 + | DeblockingFilterEnabledBit = 0x00010000 + | DeblockingFilterPartialBit = 0x00020000 + | SliceQpDeltaBit = 0x00080000 + | DifferentSliceQpDeltaBit = 0x00100000 - [] - module EnumExtensions = - type VkFilter with - static member inline CubicImg = unbox 1000015000 - type VkFormatFeatureFlags with - /// Format can be filtered with VK_FILTER_CUBIC_IMG when being sampled - static member inline SampledImageFilterCubicBitImg = unbox 0x00002000 + [] + type VkVideoEncodeH264RateControlFlagsKHR = + | All = 31 + | None = 0 + | AttemptHrdComplianceBit = 0x00000001 + | RegularGopBit = 0x00000002 + | ReferencePatternFlatBit = 0x00000004 + | ReferencePatternDyadicBit = 0x00000008 + | TemporalLayerPatternDyadicBit = 0x00000010 -module IMGFormatPvrtc = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_IMG_format_pvrtc" - let Number = 55 + [] + type VkVideoEncodeH264CapabilitiesKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public flags : VkVideoEncodeH264CapabilityFlagsKHR + val mutable public maxLevelIdc : nativeint + val mutable public maxSliceCount : uint32 + val mutable public maxPPictureL0ReferenceCount : uint32 + val mutable public maxBPictureL0ReferenceCount : uint32 + val mutable public maxL1ReferenceCount : uint32 + val mutable public maxTemporalLayerCount : uint32 + val mutable public expectDyadicTemporalLayerPattern : VkBool32 + val mutable public minQp : int32 + val mutable public maxQp : int32 + val mutable public prefersGopRemainingFrames : VkBool32 + val mutable public requiresGopRemainingFrames : VkBool32 + val mutable public stdSyntaxFlags : VkVideoEncodeH264StdFlagsKHR + new(pNext : nativeint, flags : VkVideoEncodeH264CapabilityFlagsKHR, maxLevelIdc : nativeint, maxSliceCount : uint32, maxPPictureL0ReferenceCount : uint32, maxBPictureL0ReferenceCount : uint32, maxL1ReferenceCount : uint32, maxTemporalLayerCount : uint32, expectDyadicTemporalLayerPattern : VkBool32, minQp : int32, maxQp : int32, prefersGopRemainingFrames : VkBool32, requiresGopRemainingFrames : VkBool32, stdSyntaxFlags : VkVideoEncodeH264StdFlagsKHR) = + { + sType = 1000038000u + pNext = pNext + flags = flags + maxLevelIdc = maxLevelIdc + maxSliceCount = maxSliceCount + maxPPictureL0ReferenceCount = maxPPictureL0ReferenceCount + maxBPictureL0ReferenceCount = maxBPictureL0ReferenceCount + maxL1ReferenceCount = maxL1ReferenceCount + maxTemporalLayerCount = maxTemporalLayerCount + expectDyadicTemporalLayerPattern = expectDyadicTemporalLayerPattern + minQp = minQp + maxQp = maxQp + prefersGopRemainingFrames = prefersGopRemainingFrames + requiresGopRemainingFrames = requiresGopRemainingFrames + stdSyntaxFlags = stdSyntaxFlags + } - [] - module EnumExtensions = - type VkFormat with - static member inline Pvrtc12bppUnormBlockImg = unbox 1000054000 - static member inline Pvrtc14bppUnormBlockImg = unbox 1000054001 - static member inline Pvrtc22bppUnormBlockImg = unbox 1000054002 - static member inline Pvrtc24bppUnormBlockImg = unbox 1000054003 - static member inline Pvrtc12bppSrgbBlockImg = unbox 1000054004 - static member inline Pvrtc14bppSrgbBlockImg = unbox 1000054005 - static member inline Pvrtc22bppSrgbBlockImg = unbox 1000054006 - static member inline Pvrtc24bppSrgbBlockImg = unbox 1000054007 + new(flags : VkVideoEncodeH264CapabilityFlagsKHR, maxLevelIdc : nativeint, maxSliceCount : uint32, maxPPictureL0ReferenceCount : uint32, maxBPictureL0ReferenceCount : uint32, maxL1ReferenceCount : uint32, maxTemporalLayerCount : uint32, expectDyadicTemporalLayerPattern : VkBool32, minQp : int32, maxQp : int32, prefersGopRemainingFrames : VkBool32, requiresGopRemainingFrames : VkBool32, stdSyntaxFlags : VkVideoEncodeH264StdFlagsKHR) = + VkVideoEncodeH264CapabilitiesKHR(Unchecked.defaultof, flags, maxLevelIdc, maxSliceCount, maxPPictureL0ReferenceCount, maxBPictureL0ReferenceCount, maxL1ReferenceCount, maxTemporalLayerCount, expectDyadicTemporalLayerPattern, minQp, maxQp, prefersGopRemainingFrames, requiresGopRemainingFrames, stdSyntaxFlags) + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.maxLevelIdc = Unchecked.defaultof && x.maxSliceCount = Unchecked.defaultof && x.maxPPictureL0ReferenceCount = Unchecked.defaultof && x.maxBPictureL0ReferenceCount = Unchecked.defaultof && x.maxL1ReferenceCount = Unchecked.defaultof && x.maxTemporalLayerCount = Unchecked.defaultof && x.expectDyadicTemporalLayerPattern = Unchecked.defaultof && x.minQp = Unchecked.defaultof && x.maxQp = Unchecked.defaultof && x.prefersGopRemainingFrames = Unchecked.defaultof && x.requiresGopRemainingFrames = Unchecked.defaultof && x.stdSyntaxFlags = Unchecked.defaultof -module INTELPerformanceQuery = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_INTEL_performance_query" - let Number = 211 + static member Empty = + VkVideoEncodeH264CapabilitiesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "flags = %A" x.flags + sprintf "maxLevelIdc = %A" x.maxLevelIdc + sprintf "maxSliceCount = %A" x.maxSliceCount + sprintf "maxPPictureL0ReferenceCount = %A" x.maxPPictureL0ReferenceCount + sprintf "maxBPictureL0ReferenceCount = %A" x.maxBPictureL0ReferenceCount + sprintf "maxL1ReferenceCount = %A" x.maxL1ReferenceCount + sprintf "maxTemporalLayerCount = %A" x.maxTemporalLayerCount + sprintf "expectDyadicTemporalLayerPattern = %A" x.expectDyadicTemporalLayerPattern + sprintf "minQp = %A" x.minQp + sprintf "maxQp = %A" x.maxQp + sprintf "prefersGopRemainingFrames = %A" x.prefersGopRemainingFrames + sprintf "requiresGopRemainingFrames = %A" x.requiresGopRemainingFrames + sprintf "stdSyntaxFlags = %A" x.stdSyntaxFlags + ] |> sprintf "VkVideoEncodeH264CapabilitiesKHR { %s }" + end + + [] + type VkVideoEncodeH264DpbSlotInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public pStdReferenceInfo : nativeptr + + new(pNext : nativeint, pStdReferenceInfo : nativeptr) = + { + sType = 1000038004u + pNext = pNext + pStdReferenceInfo = pStdReferenceInfo + } + new(pStdReferenceInfo : nativeptr) = + VkVideoEncodeH264DpbSlotInfoKHR(Unchecked.defaultof, pStdReferenceInfo) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.pStdReferenceInfo = Unchecked.defaultof> + static member Empty = + VkVideoEncodeH264DpbSlotInfoKHR(Unchecked.defaultof, Unchecked.defaultof>) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "pStdReferenceInfo = %A" x.pStdReferenceInfo + ] |> sprintf "VkVideoEncodeH264DpbSlotInfoKHR { %s }" + end [] - type VkPerformanceConfigurationINTEL = + type VkVideoEncodeH264FrameSizeKHR = struct - val mutable public Handle : uint64 - new(h) = { Handle = h } - static member Null = VkPerformanceConfigurationINTEL(0UL) - member x.IsNull = x.Handle = 0UL - member x.IsValid = x.Handle <> 0UL + val mutable public frameISize : uint32 + val mutable public framePSize : uint32 + val mutable public frameBSize : uint32 + + new(frameISize : uint32, framePSize : uint32, frameBSize : uint32) = + { + frameISize = frameISize + framePSize = framePSize + frameBSize = frameBSize + } + + member x.IsEmpty = + x.frameISize = Unchecked.defaultof && x.framePSize = Unchecked.defaultof && x.frameBSize = Unchecked.defaultof + + static member Empty = + VkVideoEncodeH264FrameSizeKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "frameISize = %A" x.frameISize + sprintf "framePSize = %A" x.framePSize + sprintf "frameBSize = %A" x.frameBSize + ] |> sprintf "VkVideoEncodeH264FrameSizeKHR { %s }" end - type VkPerformanceConfigurationTypeINTEL = - | CommandQueueMetricsDiscoveryActivated = 0 + [] + type VkVideoEncodeH264GopRemainingFrameInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public useGopRemainingFrames : VkBool32 + val mutable public gopRemainingI : uint32 + val mutable public gopRemainingP : uint32 + val mutable public gopRemainingB : uint32 - type VkQueryPoolSamplingModeINTEL = - | Manual = 0 + new(pNext : nativeint, useGopRemainingFrames : VkBool32, gopRemainingI : uint32, gopRemainingP : uint32, gopRemainingB : uint32) = + { + sType = 1000038006u + pNext = pNext + useGopRemainingFrames = useGopRemainingFrames + gopRemainingI = gopRemainingI + gopRemainingP = gopRemainingP + gopRemainingB = gopRemainingB + } - type VkPerformanceOverrideTypeINTEL = - | NullHardware = 0 - | FlushGpuCaches = 1 + new(useGopRemainingFrames : VkBool32, gopRemainingI : uint32, gopRemainingP : uint32, gopRemainingB : uint32) = + VkVideoEncodeH264GopRemainingFrameInfoKHR(Unchecked.defaultof, useGopRemainingFrames, gopRemainingI, gopRemainingP, gopRemainingB) - type VkPerformanceParameterTypeINTEL = - | HwCountersSupported = 0 - | StreamMarkerValidBits = 1 + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.useGopRemainingFrames = Unchecked.defaultof && x.gopRemainingI = Unchecked.defaultof && x.gopRemainingP = Unchecked.defaultof && x.gopRemainingB = Unchecked.defaultof - type VkPerformanceValueTypeINTEL = - | Uint32 = 0 - | Uint64 = 1 - | Float = 2 - | Bool = 3 - | String = 4 + static member Empty = + VkVideoEncodeH264GopRemainingFrameInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "useGopRemainingFrames = %A" x.useGopRemainingFrames + sprintf "gopRemainingI = %A" x.gopRemainingI + sprintf "gopRemainingP = %A" x.gopRemainingP + sprintf "gopRemainingB = %A" x.gopRemainingB + ] |> sprintf "VkVideoEncodeH264GopRemainingFrameInfoKHR { %s }" + end [] - type VkInitializePerformanceApiInfoINTEL = + type VkVideoEncodeH264NaluSliceInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public pUserData : nativeint + val mutable public constantQp : int32 + val mutable public pStdSliceHeader : nativeptr - new(pNext : nativeint, pUserData : nativeint) = + new(pNext : nativeint, constantQp : int32, pStdSliceHeader : nativeptr) = { - sType = 1000210001u + sType = 1000038005u pNext = pNext - pUserData = pUserData + constantQp = constantQp + pStdSliceHeader = pStdSliceHeader } - new(pUserData : nativeint) = - VkInitializePerformanceApiInfoINTEL(Unchecked.defaultof, pUserData) + new(constantQp : int32, pStdSliceHeader : nativeptr) = + VkVideoEncodeH264NaluSliceInfoKHR(Unchecked.defaultof, constantQp, pStdSliceHeader) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.pUserData = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.constantQp = Unchecked.defaultof && x.pStdSliceHeader = Unchecked.defaultof> static member Empty = - VkInitializePerformanceApiInfoINTEL(Unchecked.defaultof, Unchecked.defaultof) + VkVideoEncodeH264NaluSliceInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "pUserData = %A" x.pUserData - ] |> sprintf "VkInitializePerformanceApiInfoINTEL { %s }" + sprintf "constantQp = %A" x.constantQp + sprintf "pStdSliceHeader = %A" x.pStdSliceHeader + ] |> sprintf "VkVideoEncodeH264NaluSliceInfoKHR { %s }" end [] - type VkPerformanceConfigurationAcquireInfoINTEL = + type VkVideoEncodeH264PictureInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public _type : VkPerformanceConfigurationTypeINTEL + val mutable public naluSliceEntryCount : uint32 + val mutable public pNaluSliceEntries : nativeptr + val mutable public pStdPictureInfo : nativeptr + val mutable public generatePrefixNalu : VkBool32 - new(pNext : nativeint, _type : VkPerformanceConfigurationTypeINTEL) = + new(pNext : nativeint, naluSliceEntryCount : uint32, pNaluSliceEntries : nativeptr, pStdPictureInfo : nativeptr, generatePrefixNalu : VkBool32) = { - sType = 1000210005u + sType = 1000038003u pNext = pNext - _type = _type + naluSliceEntryCount = naluSliceEntryCount + pNaluSliceEntries = pNaluSliceEntries + pStdPictureInfo = pStdPictureInfo + generatePrefixNalu = generatePrefixNalu } - new(_type : VkPerformanceConfigurationTypeINTEL) = - VkPerformanceConfigurationAcquireInfoINTEL(Unchecked.defaultof, _type) + new(naluSliceEntryCount : uint32, pNaluSliceEntries : nativeptr, pStdPictureInfo : nativeptr, generatePrefixNalu : VkBool32) = + VkVideoEncodeH264PictureInfoKHR(Unchecked.defaultof, naluSliceEntryCount, pNaluSliceEntries, pStdPictureInfo, generatePrefixNalu) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x._type = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.naluSliceEntryCount = Unchecked.defaultof && x.pNaluSliceEntries = Unchecked.defaultof> && x.pStdPictureInfo = Unchecked.defaultof> && x.generatePrefixNalu = Unchecked.defaultof static member Empty = - VkPerformanceConfigurationAcquireInfoINTEL(Unchecked.defaultof, Unchecked.defaultof) + VkVideoEncodeH264PictureInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof>, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "_type = %A" x._type - ] |> sprintf "VkPerformanceConfigurationAcquireInfoINTEL { %s }" + sprintf "naluSliceEntryCount = %A" x.naluSliceEntryCount + sprintf "pNaluSliceEntries = %A" x.pNaluSliceEntries + sprintf "pStdPictureInfo = %A" x.pStdPictureInfo + sprintf "generatePrefixNalu = %A" x.generatePrefixNalu + ] |> sprintf "VkVideoEncodeH264PictureInfoKHR { %s }" end [] - type VkPerformanceMarkerInfoINTEL = + type VkVideoEncodeH264ProfileInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public marker : uint64 + val mutable public stdProfileIdc : nativeint - new(pNext : nativeint, marker : uint64) = + new(pNext : nativeint, stdProfileIdc : nativeint) = { - sType = 1000210002u + sType = 1000038007u pNext = pNext - marker = marker + stdProfileIdc = stdProfileIdc } - new(marker : uint64) = - VkPerformanceMarkerInfoINTEL(Unchecked.defaultof, marker) + new(stdProfileIdc : nativeint) = + VkVideoEncodeH264ProfileInfoKHR(Unchecked.defaultof, stdProfileIdc) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.marker = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.stdProfileIdc = Unchecked.defaultof static member Empty = - VkPerformanceMarkerInfoINTEL(Unchecked.defaultof, Unchecked.defaultof) + VkVideoEncodeH264ProfileInfoKHR(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "marker = %A" x.marker - ] |> sprintf "VkPerformanceMarkerInfoINTEL { %s }" + sprintf "stdProfileIdc = %A" x.stdProfileIdc + ] |> sprintf "VkVideoEncodeH264ProfileInfoKHR { %s }" end [] - type VkPerformanceOverrideInfoINTEL = + type VkVideoEncodeH264QpKHR = + struct + val mutable public qpI : int32 + val mutable public qpP : int32 + val mutable public qpB : int32 + + new(qpI : int32, qpP : int32, qpB : int32) = + { + qpI = qpI + qpP = qpP + qpB = qpB + } + + member x.IsEmpty = + x.qpI = Unchecked.defaultof && x.qpP = Unchecked.defaultof && x.qpB = Unchecked.defaultof + + static member Empty = + VkVideoEncodeH264QpKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "qpI = %A" x.qpI + sprintf "qpP = %A" x.qpP + sprintf "qpB = %A" x.qpB + ] |> sprintf "VkVideoEncodeH264QpKHR { %s }" + end + + [] + type VkVideoEncodeH264QualityLevelPropertiesKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public _type : VkPerformanceOverrideTypeINTEL - val mutable public enable : VkBool32 - val mutable public parameter : uint64 + val mutable public preferredRateControlFlags : VkVideoEncodeH264RateControlFlagsKHR + val mutable public preferredGopFrameCount : uint32 + val mutable public preferredIdrPeriod : uint32 + val mutable public preferredConsecutiveBFrameCount : uint32 + val mutable public preferredTemporalLayerCount : uint32 + val mutable public preferredConstantQp : VkVideoEncodeH264QpKHR + val mutable public preferredMaxL0ReferenceCount : uint32 + val mutable public preferredMaxL1ReferenceCount : uint32 + val mutable public preferredStdEntropyCodingModeFlag : VkBool32 - new(pNext : nativeint, _type : VkPerformanceOverrideTypeINTEL, enable : VkBool32, parameter : uint64) = + new(pNext : nativeint, preferredRateControlFlags : VkVideoEncodeH264RateControlFlagsKHR, preferredGopFrameCount : uint32, preferredIdrPeriod : uint32, preferredConsecutiveBFrameCount : uint32, preferredTemporalLayerCount : uint32, preferredConstantQp : VkVideoEncodeH264QpKHR, preferredMaxL0ReferenceCount : uint32, preferredMaxL1ReferenceCount : uint32, preferredStdEntropyCodingModeFlag : VkBool32) = { - sType = 1000210004u + sType = 1000038011u pNext = pNext - _type = _type - enable = enable - parameter = parameter + preferredRateControlFlags = preferredRateControlFlags + preferredGopFrameCount = preferredGopFrameCount + preferredIdrPeriod = preferredIdrPeriod + preferredConsecutiveBFrameCount = preferredConsecutiveBFrameCount + preferredTemporalLayerCount = preferredTemporalLayerCount + preferredConstantQp = preferredConstantQp + preferredMaxL0ReferenceCount = preferredMaxL0ReferenceCount + preferredMaxL1ReferenceCount = preferredMaxL1ReferenceCount + preferredStdEntropyCodingModeFlag = preferredStdEntropyCodingModeFlag } - new(_type : VkPerformanceOverrideTypeINTEL, enable : VkBool32, parameter : uint64) = - VkPerformanceOverrideInfoINTEL(Unchecked.defaultof, _type, enable, parameter) + new(preferredRateControlFlags : VkVideoEncodeH264RateControlFlagsKHR, preferredGopFrameCount : uint32, preferredIdrPeriod : uint32, preferredConsecutiveBFrameCount : uint32, preferredTemporalLayerCount : uint32, preferredConstantQp : VkVideoEncodeH264QpKHR, preferredMaxL0ReferenceCount : uint32, preferredMaxL1ReferenceCount : uint32, preferredStdEntropyCodingModeFlag : VkBool32) = + VkVideoEncodeH264QualityLevelPropertiesKHR(Unchecked.defaultof, preferredRateControlFlags, preferredGopFrameCount, preferredIdrPeriod, preferredConsecutiveBFrameCount, preferredTemporalLayerCount, preferredConstantQp, preferredMaxL0ReferenceCount, preferredMaxL1ReferenceCount, preferredStdEntropyCodingModeFlag) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x._type = Unchecked.defaultof && x.enable = Unchecked.defaultof && x.parameter = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.preferredRateControlFlags = Unchecked.defaultof && x.preferredGopFrameCount = Unchecked.defaultof && x.preferredIdrPeriod = Unchecked.defaultof && x.preferredConsecutiveBFrameCount = Unchecked.defaultof && x.preferredTemporalLayerCount = Unchecked.defaultof && x.preferredConstantQp = Unchecked.defaultof && x.preferredMaxL0ReferenceCount = Unchecked.defaultof && x.preferredMaxL1ReferenceCount = Unchecked.defaultof && x.preferredStdEntropyCodingModeFlag = Unchecked.defaultof static member Empty = - VkPerformanceOverrideInfoINTEL(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkVideoEncodeH264QualityLevelPropertiesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "_type = %A" x._type - sprintf "enable = %A" x.enable - sprintf "parameter = %A" x.parameter - ] |> sprintf "VkPerformanceOverrideInfoINTEL { %s }" + sprintf "preferredRateControlFlags = %A" x.preferredRateControlFlags + sprintf "preferredGopFrameCount = %A" x.preferredGopFrameCount + sprintf "preferredIdrPeriod = %A" x.preferredIdrPeriod + sprintf "preferredConsecutiveBFrameCount = %A" x.preferredConsecutiveBFrameCount + sprintf "preferredTemporalLayerCount = %A" x.preferredTemporalLayerCount + sprintf "preferredConstantQp = %A" x.preferredConstantQp + sprintf "preferredMaxL0ReferenceCount = %A" x.preferredMaxL0ReferenceCount + sprintf "preferredMaxL1ReferenceCount = %A" x.preferredMaxL1ReferenceCount + sprintf "preferredStdEntropyCodingModeFlag = %A" x.preferredStdEntropyCodingModeFlag + ] |> sprintf "VkVideoEncodeH264QualityLevelPropertiesKHR { %s }" end [] - type VkPerformanceStreamMarkerInfoINTEL = + type VkVideoEncodeH264RateControlInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public marker : uint32 + val mutable public flags : VkVideoEncodeH264RateControlFlagsKHR + val mutable public gopFrameCount : uint32 + val mutable public idrPeriod : uint32 + val mutable public consecutiveBFrameCount : uint32 + val mutable public temporalLayerCount : uint32 - new(pNext : nativeint, marker : uint32) = + new(pNext : nativeint, flags : VkVideoEncodeH264RateControlFlagsKHR, gopFrameCount : uint32, idrPeriod : uint32, consecutiveBFrameCount : uint32, temporalLayerCount : uint32) = { - sType = 1000210003u + sType = 1000038008u pNext = pNext - marker = marker + flags = flags + gopFrameCount = gopFrameCount + idrPeriod = idrPeriod + consecutiveBFrameCount = consecutiveBFrameCount + temporalLayerCount = temporalLayerCount } - new(marker : uint32) = - VkPerformanceStreamMarkerInfoINTEL(Unchecked.defaultof, marker) + new(flags : VkVideoEncodeH264RateControlFlagsKHR, gopFrameCount : uint32, idrPeriod : uint32, consecutiveBFrameCount : uint32, temporalLayerCount : uint32) = + VkVideoEncodeH264RateControlInfoKHR(Unchecked.defaultof, flags, gopFrameCount, idrPeriod, consecutiveBFrameCount, temporalLayerCount) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.marker = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.gopFrameCount = Unchecked.defaultof && x.idrPeriod = Unchecked.defaultof && x.consecutiveBFrameCount = Unchecked.defaultof && x.temporalLayerCount = Unchecked.defaultof static member Empty = - VkPerformanceStreamMarkerInfoINTEL(Unchecked.defaultof, Unchecked.defaultof) + VkVideoEncodeH264RateControlInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "marker = %A" x.marker - ] |> sprintf "VkPerformanceStreamMarkerInfoINTEL { %s }" + sprintf "flags = %A" x.flags + sprintf "gopFrameCount = %A" x.gopFrameCount + sprintf "idrPeriod = %A" x.idrPeriod + sprintf "consecutiveBFrameCount = %A" x.consecutiveBFrameCount + sprintf "temporalLayerCount = %A" x.temporalLayerCount + ] |> sprintf "VkVideoEncodeH264RateControlInfoKHR { %s }" end - [] - type VkPerformanceValueDataINTEL = + [] + type VkVideoEncodeH264RateControlLayerInfoKHR = struct - [] - val mutable public value32 : uint32 - [] - val mutable public value64 : uint64 - [] - val mutable public valueFloat : float32 - [] - val mutable public valueBool : VkBool32 - [] - val mutable public valueString : cstr - - static member Value32(value : uint32) = - let mutable result = Unchecked.defaultof - result.value32 <- value - result + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public useMinQp : VkBool32 + val mutable public minQp : VkVideoEncodeH264QpKHR + val mutable public useMaxQp : VkBool32 + val mutable public maxQp : VkVideoEncodeH264QpKHR + val mutable public useMaxFrameSize : VkBool32 + val mutable public maxFrameSize : VkVideoEncodeH264FrameSizeKHR - static member Value64(value : uint64) = - let mutable result = Unchecked.defaultof - result.value64 <- value - result + new(pNext : nativeint, useMinQp : VkBool32, minQp : VkVideoEncodeH264QpKHR, useMaxQp : VkBool32, maxQp : VkVideoEncodeH264QpKHR, useMaxFrameSize : VkBool32, maxFrameSize : VkVideoEncodeH264FrameSizeKHR) = + { + sType = 1000038009u + pNext = pNext + useMinQp = useMinQp + minQp = minQp + useMaxQp = useMaxQp + maxQp = maxQp + useMaxFrameSize = useMaxFrameSize + maxFrameSize = maxFrameSize + } - static member ValueFloat(value : float32) = - let mutable result = Unchecked.defaultof - result.valueFloat <- value - result + new(useMinQp : VkBool32, minQp : VkVideoEncodeH264QpKHR, useMaxQp : VkBool32, maxQp : VkVideoEncodeH264QpKHR, useMaxFrameSize : VkBool32, maxFrameSize : VkVideoEncodeH264FrameSizeKHR) = + VkVideoEncodeH264RateControlLayerInfoKHR(Unchecked.defaultof, useMinQp, minQp, useMaxQp, maxQp, useMaxFrameSize, maxFrameSize) - static member ValueBool(value : VkBool32) = - let mutable result = Unchecked.defaultof - result.valueBool <- value - result + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.useMinQp = Unchecked.defaultof && x.minQp = Unchecked.defaultof && x.useMaxQp = Unchecked.defaultof && x.maxQp = Unchecked.defaultof && x.useMaxFrameSize = Unchecked.defaultof && x.maxFrameSize = Unchecked.defaultof - static member ValueString(value : cstr) = - let mutable result = Unchecked.defaultof - result.valueString <- value - result + static member Empty = + VkVideoEncodeH264RateControlLayerInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ - sprintf "value32 = %A" x.value32 - sprintf "value64 = %A" x.value64 - sprintf "valueFloat = %A" x.valueFloat - sprintf "valueBool = %A" x.valueBool - sprintf "valueString = %A" x.valueString - ] |> sprintf "VkPerformanceValueDataINTEL { %s }" + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "useMinQp = %A" x.useMinQp + sprintf "minQp = %A" x.minQp + sprintf "useMaxQp = %A" x.useMaxQp + sprintf "maxQp = %A" x.maxQp + sprintf "useMaxFrameSize = %A" x.useMaxFrameSize + sprintf "maxFrameSize = %A" x.maxFrameSize + ] |> sprintf "VkVideoEncodeH264RateControlLayerInfoKHR { %s }" end [] - type VkPerformanceValueINTEL = + type VkVideoEncodeH264SessionCreateInfoKHR = struct - val mutable public _type : VkPerformanceValueTypeINTEL - val mutable public data : VkPerformanceValueDataINTEL + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public useMaxLevelIdc : VkBool32 + val mutable public maxLevelIdc : nativeint - new(_type : VkPerformanceValueTypeINTEL, data : VkPerformanceValueDataINTEL) = + new(pNext : nativeint, useMaxLevelIdc : VkBool32, maxLevelIdc : nativeint) = { - _type = _type - data = data + sType = 1000038010u + pNext = pNext + useMaxLevelIdc = useMaxLevelIdc + maxLevelIdc = maxLevelIdc } + new(useMaxLevelIdc : VkBool32, maxLevelIdc : nativeint) = + VkVideoEncodeH264SessionCreateInfoKHR(Unchecked.defaultof, useMaxLevelIdc, maxLevelIdc) + member x.IsEmpty = - x._type = Unchecked.defaultof && x.data = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.useMaxLevelIdc = Unchecked.defaultof && x.maxLevelIdc = Unchecked.defaultof static member Empty = - VkPerformanceValueINTEL(Unchecked.defaultof, Unchecked.defaultof) + VkVideoEncodeH264SessionCreateInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ - sprintf "_type = %A" x._type - sprintf "data = %A" x.data - ] |> sprintf "VkPerformanceValueINTEL { %s }" + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "useMaxLevelIdc = %A" x.useMaxLevelIdc + sprintf "maxLevelIdc = %A" x.maxLevelIdc + ] |> sprintf "VkVideoEncodeH264SessionCreateInfoKHR { %s }" end [] - type VkQueryPoolPerformanceQueryCreateInfoINTEL = + type VkVideoEncodeH264SessionParametersAddInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public performanceCountersSampling : VkQueryPoolSamplingModeINTEL + val mutable public stdSPSCount : uint32 + val mutable public pStdSPSs : nativeptr + val mutable public stdPPSCount : uint32 + val mutable public pStdPPSs : nativeptr - new(pNext : nativeint, performanceCountersSampling : VkQueryPoolSamplingModeINTEL) = + new(pNext : nativeint, stdSPSCount : uint32, pStdSPSs : nativeptr, stdPPSCount : uint32, pStdPPSs : nativeptr) = { - sType = 1000210000u + sType = 1000038002u pNext = pNext - performanceCountersSampling = performanceCountersSampling + stdSPSCount = stdSPSCount + pStdSPSs = pStdSPSs + stdPPSCount = stdPPSCount + pStdPPSs = pStdPPSs } - new(performanceCountersSampling : VkQueryPoolSamplingModeINTEL) = - VkQueryPoolPerformanceQueryCreateInfoINTEL(Unchecked.defaultof, performanceCountersSampling) + new(stdSPSCount : uint32, pStdSPSs : nativeptr, stdPPSCount : uint32, pStdPPSs : nativeptr) = + VkVideoEncodeH264SessionParametersAddInfoKHR(Unchecked.defaultof, stdSPSCount, pStdSPSs, stdPPSCount, pStdPPSs) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.performanceCountersSampling = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.stdSPSCount = Unchecked.defaultof && x.pStdSPSs = Unchecked.defaultof> && x.stdPPSCount = Unchecked.defaultof && x.pStdPPSs = Unchecked.defaultof> static member Empty = - VkQueryPoolPerformanceQueryCreateInfoINTEL(Unchecked.defaultof, Unchecked.defaultof) + VkVideoEncodeH264SessionParametersAddInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "performanceCountersSampling = %A" x.performanceCountersSampling - ] |> sprintf "VkQueryPoolPerformanceQueryCreateInfoINTEL { %s }" + sprintf "stdSPSCount = %A" x.stdSPSCount + sprintf "pStdSPSs = %A" x.pStdSPSs + sprintf "stdPPSCount = %A" x.stdPPSCount + sprintf "pStdPPSs = %A" x.pStdPPSs + ] |> sprintf "VkVideoEncodeH264SessionParametersAddInfoKHR { %s }" end - type VkQueryPoolCreateInfoINTEL = VkQueryPoolPerformanceQueryCreateInfoINTEL - - - [] - module EnumExtensions = - type VkObjectType with - static member inline PerformanceConfigurationIntel = unbox 1000210000 - type VkQueryType with - static member inline PerformanceQueryIntel = unbox 1000210000 + [] + type VkVideoEncodeH264SessionParametersCreateInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public maxStdSPSCount : uint32 + val mutable public maxStdPPSCount : uint32 + val mutable public pParametersAddInfo : nativeptr - module VkRaw = - [] - type VkInitializePerformanceApiINTELDel = delegate of VkDevice * nativeptr -> VkResult - [] - type VkUninitializePerformanceApiINTELDel = delegate of VkDevice -> unit - [] - type VkCmdSetPerformanceMarkerINTELDel = delegate of VkCommandBuffer * nativeptr -> VkResult - [] - type VkCmdSetPerformanceStreamMarkerINTELDel = delegate of VkCommandBuffer * nativeptr -> VkResult - [] - type VkCmdSetPerformanceOverrideINTELDel = delegate of VkCommandBuffer * nativeptr -> VkResult - [] - type VkAcquirePerformanceConfigurationINTELDel = delegate of VkDevice * nativeptr * nativeptr -> VkResult - [] - type VkReleasePerformanceConfigurationINTELDel = delegate of VkDevice * VkPerformanceConfigurationINTEL -> VkResult - [] - type VkQueueSetPerformanceConfigurationINTELDel = delegate of VkQueue * VkPerformanceConfigurationINTEL -> VkResult - [] - type VkGetPerformanceParameterINTELDel = delegate of VkDevice * VkPerformanceParameterTypeINTEL * nativeptr -> VkResult + new(pNext : nativeint, maxStdSPSCount : uint32, maxStdPPSCount : uint32, pParametersAddInfo : nativeptr) = + { + sType = 1000038001u + pNext = pNext + maxStdSPSCount = maxStdSPSCount + maxStdPPSCount = maxStdPPSCount + pParametersAddInfo = pParametersAddInfo + } - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading INTELPerformanceQuery") - static let s_vkInitializePerformanceApiINTELDel = VkRaw.vkImportInstanceDelegate "vkInitializePerformanceApiINTEL" - static let s_vkUninitializePerformanceApiINTELDel = VkRaw.vkImportInstanceDelegate "vkUninitializePerformanceApiINTEL" - static let s_vkCmdSetPerformanceMarkerINTELDel = VkRaw.vkImportInstanceDelegate "vkCmdSetPerformanceMarkerINTEL" - static let s_vkCmdSetPerformanceStreamMarkerINTELDel = VkRaw.vkImportInstanceDelegate "vkCmdSetPerformanceStreamMarkerINTEL" - static let s_vkCmdSetPerformanceOverrideINTELDel = VkRaw.vkImportInstanceDelegate "vkCmdSetPerformanceOverrideINTEL" - static let s_vkAcquirePerformanceConfigurationINTELDel = VkRaw.vkImportInstanceDelegate "vkAcquirePerformanceConfigurationINTEL" - static let s_vkReleasePerformanceConfigurationINTELDel = VkRaw.vkImportInstanceDelegate "vkReleasePerformanceConfigurationINTEL" - static let s_vkQueueSetPerformanceConfigurationINTELDel = VkRaw.vkImportInstanceDelegate "vkQueueSetPerformanceConfigurationINTEL" - static let s_vkGetPerformanceParameterINTELDel = VkRaw.vkImportInstanceDelegate "vkGetPerformanceParameterINTEL" - static do Report.End(3) |> ignore - static member vkInitializePerformanceApiINTEL = s_vkInitializePerformanceApiINTELDel - static member vkUninitializePerformanceApiINTEL = s_vkUninitializePerformanceApiINTELDel - static member vkCmdSetPerformanceMarkerINTEL = s_vkCmdSetPerformanceMarkerINTELDel - static member vkCmdSetPerformanceStreamMarkerINTEL = s_vkCmdSetPerformanceStreamMarkerINTELDel - static member vkCmdSetPerformanceOverrideINTEL = s_vkCmdSetPerformanceOverrideINTELDel - static member vkAcquirePerformanceConfigurationINTEL = s_vkAcquirePerformanceConfigurationINTELDel - static member vkReleasePerformanceConfigurationINTEL = s_vkReleasePerformanceConfigurationINTELDel - static member vkQueueSetPerformanceConfigurationINTEL = s_vkQueueSetPerformanceConfigurationINTELDel - static member vkGetPerformanceParameterINTEL = s_vkGetPerformanceParameterINTELDel - let vkInitializePerformanceApiINTEL(device : VkDevice, pInitializeInfo : nativeptr) = Loader.vkInitializePerformanceApiINTEL.Invoke(device, pInitializeInfo) - let vkUninitializePerformanceApiINTEL(device : VkDevice) = Loader.vkUninitializePerformanceApiINTEL.Invoke(device) - let vkCmdSetPerformanceMarkerINTEL(commandBuffer : VkCommandBuffer, pMarkerInfo : nativeptr) = Loader.vkCmdSetPerformanceMarkerINTEL.Invoke(commandBuffer, pMarkerInfo) - let vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer : VkCommandBuffer, pMarkerInfo : nativeptr) = Loader.vkCmdSetPerformanceStreamMarkerINTEL.Invoke(commandBuffer, pMarkerInfo) - let vkCmdSetPerformanceOverrideINTEL(commandBuffer : VkCommandBuffer, pOverrideInfo : nativeptr) = Loader.vkCmdSetPerformanceOverrideINTEL.Invoke(commandBuffer, pOverrideInfo) - let vkAcquirePerformanceConfigurationINTEL(device : VkDevice, pAcquireInfo : nativeptr, pConfiguration : nativeptr) = Loader.vkAcquirePerformanceConfigurationINTEL.Invoke(device, pAcquireInfo, pConfiguration) - let vkReleasePerformanceConfigurationINTEL(device : VkDevice, configuration : VkPerformanceConfigurationINTEL) = Loader.vkReleasePerformanceConfigurationINTEL.Invoke(device, configuration) - let vkQueueSetPerformanceConfigurationINTEL(queue : VkQueue, configuration : VkPerformanceConfigurationINTEL) = Loader.vkQueueSetPerformanceConfigurationINTEL.Invoke(queue, configuration) - let vkGetPerformanceParameterINTEL(device : VkDevice, parameter : VkPerformanceParameterTypeINTEL, pValue : nativeptr) = Loader.vkGetPerformanceParameterINTEL.Invoke(device, parameter, pValue) + new(maxStdSPSCount : uint32, maxStdPPSCount : uint32, pParametersAddInfo : nativeptr) = + VkVideoEncodeH264SessionParametersCreateInfoKHR(Unchecked.defaultof, maxStdSPSCount, maxStdPPSCount, pParametersAddInfo) -module INTELShaderIntegerFunctions2 = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_INTEL_shader_integer_functions2" - let Number = 210 + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.maxStdSPSCount = Unchecked.defaultof && x.maxStdPPSCount = Unchecked.defaultof && x.pParametersAddInfo = Unchecked.defaultof> - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] + static member Empty = + VkVideoEncodeH264SessionParametersCreateInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "maxStdSPSCount = %A" x.maxStdSPSCount + sprintf "maxStdPPSCount = %A" x.maxStdPPSCount + sprintf "pParametersAddInfo = %A" x.pParametersAddInfo + ] |> sprintf "VkVideoEncodeH264SessionParametersCreateInfoKHR { %s }" + end [] - type VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL = + type VkVideoEncodeH264SessionParametersFeedbackInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public shaderIntegerFunctions2 : VkBool32 + val mutable public hasStdSPSOverrides : VkBool32 + val mutable public hasStdPPSOverrides : VkBool32 - new(pNext : nativeint, shaderIntegerFunctions2 : VkBool32) = + new(pNext : nativeint, hasStdSPSOverrides : VkBool32, hasStdPPSOverrides : VkBool32) = { - sType = 1000209000u + sType = 1000038013u pNext = pNext - shaderIntegerFunctions2 = shaderIntegerFunctions2 + hasStdSPSOverrides = hasStdSPSOverrides + hasStdPPSOverrides = hasStdPPSOverrides } - new(shaderIntegerFunctions2 : VkBool32) = - VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(Unchecked.defaultof, shaderIntegerFunctions2) + new(hasStdSPSOverrides : VkBool32, hasStdPPSOverrides : VkBool32) = + VkVideoEncodeH264SessionParametersFeedbackInfoKHR(Unchecked.defaultof, hasStdSPSOverrides, hasStdPPSOverrides) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.shaderIntegerFunctions2 = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.hasStdSPSOverrides = Unchecked.defaultof && x.hasStdPPSOverrides = Unchecked.defaultof static member Empty = - VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(Unchecked.defaultof, Unchecked.defaultof) + VkVideoEncodeH264SessionParametersFeedbackInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "shaderIntegerFunctions2 = %A" x.shaderIntegerFunctions2 - ] |> sprintf "VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL { %s }" + sprintf "hasStdSPSOverrides = %A" x.hasStdSPSOverrides + sprintf "hasStdPPSOverrides = %A" x.hasStdPPSOverrides + ] |> sprintf "VkVideoEncodeH264SessionParametersFeedbackInfoKHR { %s }" end + [] + type VkVideoEncodeH264SessionParametersGetInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public writeStdSPS : VkBool32 + val mutable public writeStdPPS : VkBool32 + val mutable public stdSPSId : uint32 + val mutable public stdPPSId : uint32 + new(pNext : nativeint, writeStdSPS : VkBool32, writeStdPPS : VkBool32, stdSPSId : uint32, stdPPSId : uint32) = + { + sType = 1000038012u + pNext = pNext + writeStdSPS = writeStdSPS + writeStdPPS = writeStdPPS + stdSPSId = stdSPSId + stdPPSId = stdPPSId + } -module KHRStorageBufferStorageClass = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_KHR_storage_buffer_storage_class" - let Number = 132 - - -module KHR16bitStorage = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - open KHRStorageBufferStorageClass - let Name = "VK_KHR_16bit_storage" - let Number = 84 - - let Required = [ KHRGetPhysicalDeviceProperties2.Name; KHRStorageBufferStorageClass.Name ] + new(writeStdSPS : VkBool32, writeStdPPS : VkBool32, stdSPSId : uint32, stdPPSId : uint32) = + VkVideoEncodeH264SessionParametersGetInfoKHR(Unchecked.defaultof, writeStdSPS, writeStdPPS, stdSPSId, stdPPSId) + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.writeStdSPS = Unchecked.defaultof && x.writeStdPPS = Unchecked.defaultof && x.stdSPSId = Unchecked.defaultof && x.stdPPSId = Unchecked.defaultof - type VkPhysicalDevice16BitStorageFeaturesKHR = VkPhysicalDevice16BitStorageFeatures + static member Empty = + VkVideoEncodeH264SessionParametersGetInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "writeStdSPS = %A" x.writeStdSPS + sprintf "writeStdPPS = %A" x.writeStdPPS + sprintf "stdSPSId = %A" x.stdSPSId + sprintf "stdPPSId = %A" x.stdPPSId + ] |> sprintf "VkVideoEncodeH264SessionParametersGetInfoKHR { %s }" + end -module KHR8bitStorage = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - open KHRStorageBufferStorageClass - let Name = "VK_KHR_8bit_storage" - let Number = 178 + [] + module EnumExtensions = + type KHRVideoQueue.VkVideoCodecOperationFlagsKHR with + static member inline EncodeH264Bit = unbox 0x00010000 - let Required = [ KHRGetPhysicalDeviceProperties2.Name; KHRStorageBufferStorageClass.Name ] +/// Requires KHRVideoEncodeQueue. +module KHRVideoEncodeH265 = + let Type = ExtensionType.Device + let Name = "VK_KHR_video_encode_h265" + let Number = 40 - type VkPhysicalDevice8BitStorageFeaturesKHR = VkPhysicalDevice8BitStorageFeatures + [] + type VkVideoEncodeH265CapabilityFlagsKHR = + | All = 1023 + | None = 0 + | HrdComplianceBit = 0x00000001 + | PredictionWeightTableGeneratedBit = 0x00000002 + | RowUnalignedSliceSegmentBit = 0x00000004 + | DifferentSliceSegmentTypeBit = 0x00000008 + | BFrameInL0ListBit = 0x00000010 + | BFrameInL1ListBit = 0x00000020 + | PerPictureTypeMinMaxQpBit = 0x00000040 + | PerSliceSegmentConstantQpBit = 0x00000080 + | MultipleTilesPerSliceSegmentBit = 0x00000100 + | MultipleSliceSegmentsPerTileBit = 0x00000200 + [] + type VkVideoEncodeH265StdFlagsKHR = + | All = 2097151 + | None = 0 + | SeparateColorPlaneFlagSetBit = 0x00000001 + | SampleAdaptiveOffsetEnabledFlagSetBit = 0x00000002 + | ScalingListDataPresentFlagSetBit = 0x00000004 + | PcmEnabledFlagSetBit = 0x00000008 + | SpsTemporalMvpEnabledFlagSetBit = 0x00000010 + | InitQpMinus26Bit = 0x00000020 + | WeightedPredFlagSetBit = 0x00000040 + | WeightedBipredFlagSetBit = 0x00000080 + | Log2ParallelMergeLevelMinus2Bit = 0x00000100 + | SignDataHidingEnabledFlagSetBit = 0x00000200 + | TransformSkipEnabledFlagSetBit = 0x00000400 + | TransformSkipEnabledFlagUnsetBit = 0x00000800 + | PpsSliceChromaQpOffsetsPresentFlagSetBit = 0x00001000 + | TransquantBypassEnabledFlagSetBit = 0x00002000 + | ConstrainedIntraPredFlagSetBit = 0x00004000 + | EntropyCodingSyncEnabledFlagSetBit = 0x00008000 + | DeblockingFilterOverrideEnabledFlagSetBit = 0x00010000 + | DependentSliceSegmentsEnabledFlagSetBit = 0x00020000 + | DependentSliceSegmentFlagSetBit = 0x00040000 + | SliceQpDeltaBit = 0x00080000 + | DifferentSliceQpDeltaBit = 0x00100000 + [] + type VkVideoEncodeH265CtbSizeFlagsKHR = + | All = 7 + | None = 0 + | D16Bit = 0x00000001 + | D32Bit = 0x00000002 + | D64Bit = 0x00000004 -module KHRAndroidSurface = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRSurface - let Name = "VK_KHR_android_surface" - let Number = 9 + [] + type VkVideoEncodeH265TransformBlockSizeFlagsKHR = + | All = 15 + | None = 0 + | D4Bit = 0x00000001 + | D8Bit = 0x00000002 + | D16Bit = 0x00000004 + | D32Bit = 0x00000008 - let Required = [ KHRSurface.Name ] + [] + type VkVideoEncodeH265RateControlFlagsKHR = + | All = 31 + | None = 0 + | AttemptHrdComplianceBit = 0x00000001 + | RegularGopBit = 0x00000002 + | ReferencePatternFlatBit = 0x00000004 + | ReferencePatternDyadicBit = 0x00000008 + | TemporalSubLayerPatternDyadicBit = 0x00000010 [] - type VkAndroidSurfaceCreateInfoKHR = + type VkVideoEncodeH265CapabilitiesKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public flags : VkAndroidSurfaceCreateFlagsKHR - val mutable public window : nativeptr + val mutable public flags : VkVideoEncodeH265CapabilityFlagsKHR + val mutable public maxLevelIdc : nativeint + val mutable public maxSliceSegmentCount : uint32 + val mutable public maxTiles : VkExtent2D + val mutable public ctbSizes : VkVideoEncodeH265CtbSizeFlagsKHR + val mutable public transformBlockSizes : VkVideoEncodeH265TransformBlockSizeFlagsKHR + val mutable public maxPPictureL0ReferenceCount : uint32 + val mutable public maxBPictureL0ReferenceCount : uint32 + val mutable public maxL1ReferenceCount : uint32 + val mutable public maxSubLayerCount : uint32 + val mutable public expectDyadicTemporalSubLayerPattern : VkBool32 + val mutable public minQp : int32 + val mutable public maxQp : int32 + val mutable public prefersGopRemainingFrames : VkBool32 + val mutable public requiresGopRemainingFrames : VkBool32 + val mutable public stdSyntaxFlags : VkVideoEncodeH265StdFlagsKHR - new(pNext : nativeint, flags : VkAndroidSurfaceCreateFlagsKHR, window : nativeptr) = + new(pNext : nativeint, flags : VkVideoEncodeH265CapabilityFlagsKHR, maxLevelIdc : nativeint, maxSliceSegmentCount : uint32, maxTiles : VkExtent2D, ctbSizes : VkVideoEncodeH265CtbSizeFlagsKHR, transformBlockSizes : VkVideoEncodeH265TransformBlockSizeFlagsKHR, maxPPictureL0ReferenceCount : uint32, maxBPictureL0ReferenceCount : uint32, maxL1ReferenceCount : uint32, maxSubLayerCount : uint32, expectDyadicTemporalSubLayerPattern : VkBool32, minQp : int32, maxQp : int32, prefersGopRemainingFrames : VkBool32, requiresGopRemainingFrames : VkBool32, stdSyntaxFlags : VkVideoEncodeH265StdFlagsKHR) = { - sType = 1000008000u + sType = 1000039000u pNext = pNext flags = flags - window = window + maxLevelIdc = maxLevelIdc + maxSliceSegmentCount = maxSliceSegmentCount + maxTiles = maxTiles + ctbSizes = ctbSizes + transformBlockSizes = transformBlockSizes + maxPPictureL0ReferenceCount = maxPPictureL0ReferenceCount + maxBPictureL0ReferenceCount = maxBPictureL0ReferenceCount + maxL1ReferenceCount = maxL1ReferenceCount + maxSubLayerCount = maxSubLayerCount + expectDyadicTemporalSubLayerPattern = expectDyadicTemporalSubLayerPattern + minQp = minQp + maxQp = maxQp + prefersGopRemainingFrames = prefersGopRemainingFrames + requiresGopRemainingFrames = requiresGopRemainingFrames + stdSyntaxFlags = stdSyntaxFlags } - new(flags : VkAndroidSurfaceCreateFlagsKHR, window : nativeptr) = - VkAndroidSurfaceCreateInfoKHR(Unchecked.defaultof, flags, window) + new(flags : VkVideoEncodeH265CapabilityFlagsKHR, maxLevelIdc : nativeint, maxSliceSegmentCount : uint32, maxTiles : VkExtent2D, ctbSizes : VkVideoEncodeH265CtbSizeFlagsKHR, transformBlockSizes : VkVideoEncodeH265TransformBlockSizeFlagsKHR, maxPPictureL0ReferenceCount : uint32, maxBPictureL0ReferenceCount : uint32, maxL1ReferenceCount : uint32, maxSubLayerCount : uint32, expectDyadicTemporalSubLayerPattern : VkBool32, minQp : int32, maxQp : int32, prefersGopRemainingFrames : VkBool32, requiresGopRemainingFrames : VkBool32, stdSyntaxFlags : VkVideoEncodeH265StdFlagsKHR) = + VkVideoEncodeH265CapabilitiesKHR(Unchecked.defaultof, flags, maxLevelIdc, maxSliceSegmentCount, maxTiles, ctbSizes, transformBlockSizes, maxPPictureL0ReferenceCount, maxBPictureL0ReferenceCount, maxL1ReferenceCount, maxSubLayerCount, expectDyadicTemporalSubLayerPattern, minQp, maxQp, prefersGopRemainingFrames, requiresGopRemainingFrames, stdSyntaxFlags) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.window = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.maxLevelIdc = Unchecked.defaultof && x.maxSliceSegmentCount = Unchecked.defaultof && x.maxTiles = Unchecked.defaultof && x.ctbSizes = Unchecked.defaultof && x.transformBlockSizes = Unchecked.defaultof && x.maxPPictureL0ReferenceCount = Unchecked.defaultof && x.maxBPictureL0ReferenceCount = Unchecked.defaultof && x.maxL1ReferenceCount = Unchecked.defaultof && x.maxSubLayerCount = Unchecked.defaultof && x.expectDyadicTemporalSubLayerPattern = Unchecked.defaultof && x.minQp = Unchecked.defaultof && x.maxQp = Unchecked.defaultof && x.prefersGopRemainingFrames = Unchecked.defaultof && x.requiresGopRemainingFrames = Unchecked.defaultof && x.stdSyntaxFlags = Unchecked.defaultof static member Empty = - VkAndroidSurfaceCreateInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + VkVideoEncodeH265CapabilitiesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext sprintf "flags = %A" x.flags - sprintf "window = %A" x.window - ] |> sprintf "VkAndroidSurfaceCreateInfoKHR { %s }" + sprintf "maxLevelIdc = %A" x.maxLevelIdc + sprintf "maxSliceSegmentCount = %A" x.maxSliceSegmentCount + sprintf "maxTiles = %A" x.maxTiles + sprintf "ctbSizes = %A" x.ctbSizes + sprintf "transformBlockSizes = %A" x.transformBlockSizes + sprintf "maxPPictureL0ReferenceCount = %A" x.maxPPictureL0ReferenceCount + sprintf "maxBPictureL0ReferenceCount = %A" x.maxBPictureL0ReferenceCount + sprintf "maxL1ReferenceCount = %A" x.maxL1ReferenceCount + sprintf "maxSubLayerCount = %A" x.maxSubLayerCount + sprintf "expectDyadicTemporalSubLayerPattern = %A" x.expectDyadicTemporalSubLayerPattern + sprintf "minQp = %A" x.minQp + sprintf "maxQp = %A" x.maxQp + sprintf "prefersGopRemainingFrames = %A" x.prefersGopRemainingFrames + sprintf "requiresGopRemainingFrames = %A" x.requiresGopRemainingFrames + sprintf "stdSyntaxFlags = %A" x.stdSyntaxFlags + ] |> sprintf "VkVideoEncodeH265CapabilitiesKHR { %s }" end - - module VkRaw = - [] - type VkCreateAndroidSurfaceKHRDel = delegate of VkInstance * nativeptr * nativeptr * nativeptr -> VkResult - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRAndroidSurface") - static let s_vkCreateAndroidSurfaceKHRDel = VkRaw.vkImportInstanceDelegate "vkCreateAndroidSurfaceKHR" - static do Report.End(3) |> ignore - static member vkCreateAndroidSurfaceKHR = s_vkCreateAndroidSurfaceKHRDel - let vkCreateAndroidSurfaceKHR(instance : VkInstance, pCreateInfo : nativeptr, pAllocator : nativeptr, pSurface : nativeptr) = Loader.vkCreateAndroidSurfaceKHR.Invoke(instance, pCreateInfo, pAllocator, pSurface) - -module KHRCopyCommands2 = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_KHR_copy_commands2" - let Number = 338 - - - type VkBlitImageInfo2KHR = VkBlitImageInfo2 - - type VkBufferCopy2KHR = VkBufferCopy2 - - type VkBufferImageCopy2KHR = VkBufferImageCopy2 - - type VkCopyBufferInfo2KHR = VkCopyBufferInfo2 - - type VkCopyBufferToImageInfo2KHR = VkCopyBufferToImageInfo2 - - type VkCopyImageInfo2KHR = VkCopyImageInfo2 - - type VkCopyImageToBufferInfo2KHR = VkCopyImageToBufferInfo2 - - type VkImageBlit2KHR = VkImageBlit2 - - type VkImageCopy2KHR = VkImageCopy2 - - type VkImageResolve2KHR = VkImageResolve2 - - type VkResolveImageInfo2KHR = VkResolveImageInfo2 - - - module VkRaw = - [] - type VkCmdCopyBuffer2KHRDel = delegate of VkCommandBuffer * nativeptr -> unit - [] - type VkCmdCopyImage2KHRDel = delegate of VkCommandBuffer * nativeptr -> unit - [] - type VkCmdCopyBufferToImage2KHRDel = delegate of VkCommandBuffer * nativeptr -> unit - [] - type VkCmdCopyImageToBuffer2KHRDel = delegate of VkCommandBuffer * nativeptr -> unit - [] - type VkCmdBlitImage2KHRDel = delegate of VkCommandBuffer * nativeptr -> unit - [] - type VkCmdResolveImage2KHRDel = delegate of VkCommandBuffer * nativeptr -> unit - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRCopyCommands2") - static let s_vkCmdCopyBuffer2KHRDel = VkRaw.vkImportInstanceDelegate "vkCmdCopyBuffer2KHR" - static let s_vkCmdCopyImage2KHRDel = VkRaw.vkImportInstanceDelegate "vkCmdCopyImage2KHR" - static let s_vkCmdCopyBufferToImage2KHRDel = VkRaw.vkImportInstanceDelegate "vkCmdCopyBufferToImage2KHR" - static let s_vkCmdCopyImageToBuffer2KHRDel = VkRaw.vkImportInstanceDelegate "vkCmdCopyImageToBuffer2KHR" - static let s_vkCmdBlitImage2KHRDel = VkRaw.vkImportInstanceDelegate "vkCmdBlitImage2KHR" - static let s_vkCmdResolveImage2KHRDel = VkRaw.vkImportInstanceDelegate "vkCmdResolveImage2KHR" - static do Report.End(3) |> ignore - static member vkCmdCopyBuffer2KHR = s_vkCmdCopyBuffer2KHRDel - static member vkCmdCopyImage2KHR = s_vkCmdCopyImage2KHRDel - static member vkCmdCopyBufferToImage2KHR = s_vkCmdCopyBufferToImage2KHRDel - static member vkCmdCopyImageToBuffer2KHR = s_vkCmdCopyImageToBuffer2KHRDel - static member vkCmdBlitImage2KHR = s_vkCmdBlitImage2KHRDel - static member vkCmdResolveImage2KHR = s_vkCmdResolveImage2KHRDel - let vkCmdCopyBuffer2KHR(commandBuffer : VkCommandBuffer, pCopyBufferInfo : nativeptr) = Loader.vkCmdCopyBuffer2KHR.Invoke(commandBuffer, pCopyBufferInfo) - let vkCmdCopyImage2KHR(commandBuffer : VkCommandBuffer, pCopyImageInfo : nativeptr) = Loader.vkCmdCopyImage2KHR.Invoke(commandBuffer, pCopyImageInfo) - let vkCmdCopyBufferToImage2KHR(commandBuffer : VkCommandBuffer, pCopyBufferToImageInfo : nativeptr) = Loader.vkCmdCopyBufferToImage2KHR.Invoke(commandBuffer, pCopyBufferToImageInfo) - let vkCmdCopyImageToBuffer2KHR(commandBuffer : VkCommandBuffer, pCopyImageToBufferInfo : nativeptr) = Loader.vkCmdCopyImageToBuffer2KHR.Invoke(commandBuffer, pCopyImageToBufferInfo) - let vkCmdBlitImage2KHR(commandBuffer : VkCommandBuffer, pBlitImageInfo : nativeptr) = Loader.vkCmdBlitImage2KHR.Invoke(commandBuffer, pBlitImageInfo) - let vkCmdResolveImage2KHR(commandBuffer : VkCommandBuffer, pResolveImageInfo : nativeptr) = Loader.vkCmdResolveImage2KHR.Invoke(commandBuffer, pResolveImageInfo) - -module KHRPushDescriptor = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_KHR_push_descriptor" - let Number = 81 - - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] - - [] - type VkPhysicalDevicePushDescriptorPropertiesKHR = + type VkVideoEncodeH265DpbSlotInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public maxPushDescriptors : uint32 + val mutable public pStdReferenceInfo : nativeptr - new(pNext : nativeint, maxPushDescriptors : uint32) = + new(pNext : nativeint, pStdReferenceInfo : nativeptr) = { - sType = 1000080000u + sType = 1000039004u pNext = pNext - maxPushDescriptors = maxPushDescriptors + pStdReferenceInfo = pStdReferenceInfo } - new(maxPushDescriptors : uint32) = - VkPhysicalDevicePushDescriptorPropertiesKHR(Unchecked.defaultof, maxPushDescriptors) + new(pStdReferenceInfo : nativeptr) = + VkVideoEncodeH265DpbSlotInfoKHR(Unchecked.defaultof, pStdReferenceInfo) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.maxPushDescriptors = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.pStdReferenceInfo = Unchecked.defaultof> static member Empty = - VkPhysicalDevicePushDescriptorPropertiesKHR(Unchecked.defaultof, Unchecked.defaultof) + VkVideoEncodeH265DpbSlotInfoKHR(Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "maxPushDescriptors = %A" x.maxPushDescriptors - ] |> sprintf "VkPhysicalDevicePushDescriptorPropertiesKHR { %s }" + sprintf "pStdReferenceInfo = %A" x.pStdReferenceInfo + ] |> sprintf "VkVideoEncodeH265DpbSlotInfoKHR { %s }" end + [] + type VkVideoEncodeH265FrameSizeKHR = + struct + val mutable public frameISize : uint32 + val mutable public framePSize : uint32 + val mutable public frameBSize : uint32 - [] - module EnumExtensions = - type VkDescriptorSetLayoutCreateFlags with - /// Descriptors are pushed via flink:vkCmdPushDescriptorSetKHR - static member inline PushDescriptorBitKhr = unbox 0x00000001 - - module VkRaw = - [] - type VkCmdPushDescriptorSetKHRDel = delegate of VkCommandBuffer * VkPipelineBindPoint * VkPipelineLayout * uint32 * uint32 * nativeptr -> unit - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRPushDescriptor") - static let s_vkCmdPushDescriptorSetKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdPushDescriptorSetKHR" - static do Report.End(3) |> ignore - static member vkCmdPushDescriptorSetKHR = s_vkCmdPushDescriptorSetKHRDel - let vkCmdPushDescriptorSetKHR(commandBuffer : VkCommandBuffer, pipelineBindPoint : VkPipelineBindPoint, layout : VkPipelineLayout, set : uint32, descriptorWriteCount : uint32, pDescriptorWrites : nativeptr) = Loader.vkCmdPushDescriptorSetKHR.Invoke(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) - - module Vulkan11 = - [] - module EnumExtensions = - type VkDescriptorUpdateTemplateType with - /// Create descriptor update template for pushed descriptor updates - static member inline PushDescriptorsKhr = unbox 1 - - module VkRaw = - [] - type VkCmdPushDescriptorSetWithTemplateKHRDel = delegate of VkCommandBuffer * VkDescriptorUpdateTemplate * VkPipelineLayout * uint32 * nativeint -> unit - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRPushDescriptor") - static let s_vkCmdPushDescriptorSetWithTemplateKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdPushDescriptorSetWithTemplateKHR" - static do Report.End(3) |> ignore - static member vkCmdPushDescriptorSetWithTemplateKHR = s_vkCmdPushDescriptorSetWithTemplateKHRDel - let vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer : VkCommandBuffer, descriptorUpdateTemplate : VkDescriptorUpdateTemplate, layout : VkPipelineLayout, set : uint32, pData : nativeint) = Loader.vkCmdPushDescriptorSetWithTemplateKHR.Invoke(commandBuffer, descriptorUpdateTemplate, layout, set, pData) - - module KHRDescriptorUpdateTemplate = - [] - module EnumExtensions = - type VkDescriptorUpdateTemplateType with - /// Create descriptor update template for pushed descriptor updates - static member inline PushDescriptorsKhr = unbox 1 - - module VkRaw = - let vkCmdPushDescriptorSetWithTemplateKHR = Vulkan11.VkRaw.vkCmdPushDescriptorSetWithTemplateKHR - -module KHRDescriptorUpdateTemplate = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open EXTDebugReport - let Name = "VK_KHR_descriptor_update_template" - let Number = 86 - - - type VkDescriptorUpdateTemplateKHR = VkDescriptorUpdateTemplate - type VkDescriptorUpdateTemplateCreateFlagsKHR = VkDescriptorUpdateTemplateCreateFlags - type VkDescriptorUpdateTemplateTypeKHR = VkDescriptorUpdateTemplateType - - type VkDescriptorUpdateTemplateCreateInfoKHR = VkDescriptorUpdateTemplateCreateInfo - - type VkDescriptorUpdateTemplateEntryKHR = VkDescriptorUpdateTemplateEntry - - - [] - module EnumExtensions = - type VkDescriptorUpdateTemplateType with - static member inline DescriptorSetKhr = unbox 0 - type VkObjectType with - static member inline DescriptorUpdateTemplateKhr = unbox 1000085000 - - module VkRaw = - [] - type VkCreateDescriptorUpdateTemplateKHRDel = delegate of VkDevice * nativeptr * nativeptr * nativeptr -> VkResult - [] - type VkDestroyDescriptorUpdateTemplateKHRDel = delegate of VkDevice * VkDescriptorUpdateTemplate * nativeptr -> unit - [] - type VkUpdateDescriptorSetWithTemplateKHRDel = delegate of VkDevice * VkDescriptorSet * VkDescriptorUpdateTemplate * nativeint -> unit - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRDescriptorUpdateTemplate") - static let s_vkCreateDescriptorUpdateTemplateKHRDel = VkRaw.vkImportInstanceDelegate "vkCreateDescriptorUpdateTemplateKHR" - static let s_vkDestroyDescriptorUpdateTemplateKHRDel = VkRaw.vkImportInstanceDelegate "vkDestroyDescriptorUpdateTemplateKHR" - static let s_vkUpdateDescriptorSetWithTemplateKHRDel = VkRaw.vkImportInstanceDelegate "vkUpdateDescriptorSetWithTemplateKHR" - static do Report.End(3) |> ignore - static member vkCreateDescriptorUpdateTemplateKHR = s_vkCreateDescriptorUpdateTemplateKHRDel - static member vkDestroyDescriptorUpdateTemplateKHR = s_vkDestroyDescriptorUpdateTemplateKHRDel - static member vkUpdateDescriptorSetWithTemplateKHR = s_vkUpdateDescriptorSetWithTemplateKHRDel - let vkCreateDescriptorUpdateTemplateKHR(device : VkDevice, pCreateInfo : nativeptr, pAllocator : nativeptr, pDescriptorUpdateTemplate : nativeptr) = Loader.vkCreateDescriptorUpdateTemplateKHR.Invoke(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate) - let vkDestroyDescriptorUpdateTemplateKHR(device : VkDevice, descriptorUpdateTemplate : VkDescriptorUpdateTemplate, pAllocator : nativeptr) = Loader.vkDestroyDescriptorUpdateTemplateKHR.Invoke(device, descriptorUpdateTemplate, pAllocator) - let vkUpdateDescriptorSetWithTemplateKHR(device : VkDevice, descriptorSet : VkDescriptorSet, descriptorUpdateTemplate : VkDescriptorUpdateTemplate, pData : nativeint) = Loader.vkUpdateDescriptorSetWithTemplateKHR.Invoke(device, descriptorSet, descriptorUpdateTemplate, pData) - - module KHRPushDescriptor = - [] - module EnumExtensions = - type VkDescriptorUpdateTemplateType with - /// Create descriptor update template for pushed descriptor updates - static member inline PushDescriptorsKhr = unbox 1 - - module VkRaw = - let vkCmdPushDescriptorSetWithTemplateKHR = KHRPushDescriptor.Vulkan11.VkRaw.vkCmdPushDescriptorSetWithTemplateKHR - - module EXTDebugReport = - [] - module EnumExtensions = - type VkDebugReportObjectTypeEXT with - static member inline DescriptorUpdateTemplateKhr = unbox 1000085000 - + new(frameISize : uint32, framePSize : uint32, frameBSize : uint32) = + { + frameISize = frameISize + framePSize = framePSize + frameBSize = frameBSize + } -module KHRDisplaySwapchain = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRDisplay - open KHRSurface - open KHRSwapchain - let Name = "VK_KHR_display_swapchain" - let Number = 4 + member x.IsEmpty = + x.frameISize = Unchecked.defaultof && x.framePSize = Unchecked.defaultof && x.frameBSize = Unchecked.defaultof - let Required = [ KHRDisplay.Name; KHRSwapchain.Name ] + static member Empty = + VkVideoEncodeH265FrameSizeKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + override x.ToString() = + String.concat "; " [ + sprintf "frameISize = %A" x.frameISize + sprintf "framePSize = %A" x.framePSize + sprintf "frameBSize = %A" x.frameBSize + ] |> sprintf "VkVideoEncodeH265FrameSizeKHR { %s }" + end [] - type VkDisplayPresentInfoKHR = + type VkVideoEncodeH265GopRemainingFrameInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public srcRect : VkRect2D - val mutable public dstRect : VkRect2D - val mutable public persistent : VkBool32 + val mutable public useGopRemainingFrames : VkBool32 + val mutable public gopRemainingI : uint32 + val mutable public gopRemainingP : uint32 + val mutable public gopRemainingB : uint32 - new(pNext : nativeint, srcRect : VkRect2D, dstRect : VkRect2D, persistent : VkBool32) = + new(pNext : nativeint, useGopRemainingFrames : VkBool32, gopRemainingI : uint32, gopRemainingP : uint32, gopRemainingB : uint32) = { - sType = 1000003000u + sType = 1000039006u pNext = pNext - srcRect = srcRect - dstRect = dstRect - persistent = persistent + useGopRemainingFrames = useGopRemainingFrames + gopRemainingI = gopRemainingI + gopRemainingP = gopRemainingP + gopRemainingB = gopRemainingB } - new(srcRect : VkRect2D, dstRect : VkRect2D, persistent : VkBool32) = - VkDisplayPresentInfoKHR(Unchecked.defaultof, srcRect, dstRect, persistent) + new(useGopRemainingFrames : VkBool32, gopRemainingI : uint32, gopRemainingP : uint32, gopRemainingB : uint32) = + VkVideoEncodeH265GopRemainingFrameInfoKHR(Unchecked.defaultof, useGopRemainingFrames, gopRemainingI, gopRemainingP, gopRemainingB) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.srcRect = Unchecked.defaultof && x.dstRect = Unchecked.defaultof && x.persistent = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.useGopRemainingFrames = Unchecked.defaultof && x.gopRemainingI = Unchecked.defaultof && x.gopRemainingP = Unchecked.defaultof && x.gopRemainingB = Unchecked.defaultof static member Empty = - VkDisplayPresentInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkVideoEncodeH265GopRemainingFrameInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "srcRect = %A" x.srcRect - sprintf "dstRect = %A" x.dstRect - sprintf "persistent = %A" x.persistent - ] |> sprintf "VkDisplayPresentInfoKHR { %s }" + sprintf "useGopRemainingFrames = %A" x.useGopRemainingFrames + sprintf "gopRemainingI = %A" x.gopRemainingI + sprintf "gopRemainingP = %A" x.gopRemainingP + sprintf "gopRemainingB = %A" x.gopRemainingB + ] |> sprintf "VkVideoEncodeH265GopRemainingFrameInfoKHR { %s }" end + [] + type VkVideoEncodeH265NaluSliceSegmentInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public constantQp : int32 + val mutable public pStdSliceSegmentHeader : nativeptr - [] - module EnumExtensions = - type VkResult with - static member inline ErrorIncompatibleDisplayKhr = unbox -1000003001 - - module VkRaw = - [] - type VkCreateSharedSwapchainsKHRDel = delegate of VkDevice * uint32 * nativeptr * nativeptr * nativeptr -> VkResult - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRDisplaySwapchain") - static let s_vkCreateSharedSwapchainsKHRDel = VkRaw.vkImportInstanceDelegate "vkCreateSharedSwapchainsKHR" - static do Report.End(3) |> ignore - static member vkCreateSharedSwapchainsKHR = s_vkCreateSharedSwapchainsKHRDel - let vkCreateSharedSwapchainsKHR(device : VkDevice, swapchainCount : uint32, pCreateInfos : nativeptr, pAllocator : nativeptr, pSwapchains : nativeptr) = Loader.vkCreateSharedSwapchainsKHR.Invoke(device, swapchainCount, pCreateInfos, pAllocator, pSwapchains) - -module KHRDrawIndirectCount = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_KHR_draw_indirect_count" - let Number = 170 - - - module VkRaw = - [] - type VkCmdDrawIndirectCountKHRDel = delegate of VkCommandBuffer * VkBuffer * VkDeviceSize * VkBuffer * VkDeviceSize * uint32 * uint32 -> unit - [] - type VkCmdDrawIndexedIndirectCountKHRDel = delegate of VkCommandBuffer * VkBuffer * VkDeviceSize * VkBuffer * VkDeviceSize * uint32 * uint32 -> unit - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRDrawIndirectCount") - static let s_vkCmdDrawIndirectCountKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdDrawIndirectCountKHR" - static let s_vkCmdDrawIndexedIndirectCountKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdDrawIndexedIndirectCountKHR" - static do Report.End(3) |> ignore - static member vkCmdDrawIndirectCountKHR = s_vkCmdDrawIndirectCountKHRDel - static member vkCmdDrawIndexedIndirectCountKHR = s_vkCmdDrawIndexedIndirectCountKHRDel - let vkCmdDrawIndirectCountKHR(commandBuffer : VkCommandBuffer, buffer : VkBuffer, offset : VkDeviceSize, countBuffer : VkBuffer, countBufferOffset : VkDeviceSize, maxDrawCount : uint32, stride : uint32) = Loader.vkCmdDrawIndirectCountKHR.Invoke(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - let vkCmdDrawIndexedIndirectCountKHR(commandBuffer : VkCommandBuffer, buffer : VkBuffer, offset : VkDeviceSize, countBuffer : VkBuffer, countBufferOffset : VkDeviceSize, maxDrawCount : uint32, stride : uint32) = Loader.vkCmdDrawIndexedIndirectCountKHR.Invoke(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) - -module KHRDriverProperties = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_KHR_driver_properties" - let Number = 197 - - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] - + new(pNext : nativeint, constantQp : int32, pStdSliceSegmentHeader : nativeptr) = + { + sType = 1000039005u + pNext = pNext + constantQp = constantQp + pStdSliceSegmentHeader = pStdSliceSegmentHeader + } - type VkDriverIdKHR = VkDriverId + new(constantQp : int32, pStdSliceSegmentHeader : nativeptr) = + VkVideoEncodeH265NaluSliceSegmentInfoKHR(Unchecked.defaultof, constantQp, pStdSliceSegmentHeader) - type VkConformanceVersionKHR = VkConformanceVersion + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.constantQp = Unchecked.defaultof && x.pStdSliceSegmentHeader = Unchecked.defaultof> - type VkPhysicalDeviceDriverPropertiesKHR = VkPhysicalDeviceDriverProperties + static member Empty = + VkVideoEncodeH265NaluSliceSegmentInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "constantQp = %A" x.constantQp + sprintf "pStdSliceSegmentHeader = %A" x.pStdSliceSegmentHeader + ] |> sprintf "VkVideoEncodeH265NaluSliceSegmentInfoKHR { %s }" + end - [] - module EnumExtensions = - type VkDriverId with - static member inline AmdProprietaryKhr = unbox 1 - static member inline AmdOpenSourceKhr = unbox 2 - static member inline MesaRadvKhr = unbox 3 - static member inline NvidiaProprietaryKhr = unbox 4 - static member inline IntelProprietaryWindowsKhr = unbox 5 - static member inline IntelOpenSourceMesaKhr = unbox 6 - static member inline ImaginationProprietaryKhr = unbox 7 - static member inline QualcommProprietaryKhr = unbox 8 - static member inline ArmProprietaryKhr = unbox 9 - static member inline GoogleSwiftshaderKhr = unbox 10 - static member inline GgpProprietaryKhr = unbox 11 - static member inline BroadcomProprietaryKhr = unbox 12 + [] + type VkVideoEncodeH265PictureInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public naluSliceSegmentEntryCount : uint32 + val mutable public pNaluSliceSegmentEntries : nativeptr + val mutable public pStdPictureInfo : nativeptr + new(pNext : nativeint, naluSliceSegmentEntryCount : uint32, pNaluSliceSegmentEntries : nativeptr, pStdPictureInfo : nativeptr) = + { + sType = 1000039003u + pNext = pNext + naluSliceSegmentEntryCount = naluSliceSegmentEntryCount + pNaluSliceSegmentEntries = pNaluSliceSegmentEntries + pStdPictureInfo = pStdPictureInfo + } -module NVFramebufferMixedSamples = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_NV_framebuffer_mixed_samples" - let Number = 153 + new(naluSliceSegmentEntryCount : uint32, pNaluSliceSegmentEntries : nativeptr, pStdPictureInfo : nativeptr) = + VkVideoEncodeH265PictureInfoKHR(Unchecked.defaultof, naluSliceSegmentEntryCount, pNaluSliceSegmentEntries, pStdPictureInfo) + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.naluSliceSegmentEntryCount = Unchecked.defaultof && x.pNaluSliceSegmentEntries = Unchecked.defaultof> && x.pStdPictureInfo = Unchecked.defaultof> - type VkCoverageModulationModeNV = - | None = 0 - | Rgb = 1 - | Alpha = 2 - | Rgba = 3 + static member Empty = + VkVideoEncodeH265PictureInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof>) + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "naluSliceSegmentEntryCount = %A" x.naluSliceSegmentEntryCount + sprintf "pNaluSliceSegmentEntries = %A" x.pNaluSliceSegmentEntries + sprintf "pStdPictureInfo = %A" x.pStdPictureInfo + ] |> sprintf "VkVideoEncodeH265PictureInfoKHR { %s }" + end [] - type VkPipelineCoverageModulationStateCreateInfoNV = + type VkVideoEncodeH265ProfileInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public flags : VkPipelineCoverageModulationStateCreateFlagsNV - val mutable public coverageModulationMode : VkCoverageModulationModeNV - val mutable public coverageModulationTableEnable : VkBool32 - val mutable public coverageModulationTableCount : uint32 - val mutable public pCoverageModulationTable : nativeptr + val mutable public stdProfileIdc : nativeint - new(pNext : nativeint, flags : VkPipelineCoverageModulationStateCreateFlagsNV, coverageModulationMode : VkCoverageModulationModeNV, coverageModulationTableEnable : VkBool32, coverageModulationTableCount : uint32, pCoverageModulationTable : nativeptr) = + new(pNext : nativeint, stdProfileIdc : nativeint) = { - sType = 1000152000u + sType = 1000039007u pNext = pNext - flags = flags - coverageModulationMode = coverageModulationMode - coverageModulationTableEnable = coverageModulationTableEnable - coverageModulationTableCount = coverageModulationTableCount - pCoverageModulationTable = pCoverageModulationTable + stdProfileIdc = stdProfileIdc } - new(flags : VkPipelineCoverageModulationStateCreateFlagsNV, coverageModulationMode : VkCoverageModulationModeNV, coverageModulationTableEnable : VkBool32, coverageModulationTableCount : uint32, pCoverageModulationTable : nativeptr) = - VkPipelineCoverageModulationStateCreateInfoNV(Unchecked.defaultof, flags, coverageModulationMode, coverageModulationTableEnable, coverageModulationTableCount, pCoverageModulationTable) - + new(stdProfileIdc : nativeint) = + VkVideoEncodeH265ProfileInfoKHR(Unchecked.defaultof, stdProfileIdc) + member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.coverageModulationMode = Unchecked.defaultof && x.coverageModulationTableEnable = Unchecked.defaultof && x.coverageModulationTableCount = Unchecked.defaultof && x.pCoverageModulationTable = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.stdProfileIdc = Unchecked.defaultof static member Empty = - VkPipelineCoverageModulationStateCreateInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + VkVideoEncodeH265ProfileInfoKHR(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "flags = %A" x.flags - sprintf "coverageModulationMode = %A" x.coverageModulationMode - sprintf "coverageModulationTableEnable = %A" x.coverageModulationTableEnable - sprintf "coverageModulationTableCount = %A" x.coverageModulationTableCount - sprintf "pCoverageModulationTable = %A" x.pCoverageModulationTable - ] |> sprintf "VkPipelineCoverageModulationStateCreateInfoNV { %s }" + sprintf "stdProfileIdc = %A" x.stdProfileIdc + ] |> sprintf "VkVideoEncodeH265ProfileInfoKHR { %s }" end + [] + type VkVideoEncodeH265QpKHR = + struct + val mutable public qpI : int32 + val mutable public qpP : int32 + val mutable public qpB : int32 + new(qpI : int32, qpP : int32, qpB : int32) = + { + qpI = qpI + qpP = qpP + qpB = qpB + } -module NVXMultiviewPerViewAttributes = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - open KHRMultiview - let Name = "VK_NVX_multiview_per_view_attributes" - let Number = 98 + member x.IsEmpty = + x.qpI = Unchecked.defaultof && x.qpP = Unchecked.defaultof && x.qpB = Unchecked.defaultof - let Required = [ KHRMultiview.Name ] + static member Empty = + VkVideoEncodeH265QpKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + override x.ToString() = + String.concat "; " [ + sprintf "qpI = %A" x.qpI + sprintf "qpP = %A" x.qpP + sprintf "qpB = %A" x.qpB + ] |> sprintf "VkVideoEncodeH265QpKHR { %s }" + end [] - type VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX = + type VkVideoEncodeH265QualityLevelPropertiesKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public perViewPositionAllComponents : VkBool32 + val mutable public preferredRateControlFlags : VkVideoEncodeH265RateControlFlagsKHR + val mutable public preferredGopFrameCount : uint32 + val mutable public preferredIdrPeriod : uint32 + val mutable public preferredConsecutiveBFrameCount : uint32 + val mutable public preferredSubLayerCount : uint32 + val mutable public preferredConstantQp : VkVideoEncodeH265QpKHR + val mutable public preferredMaxL0ReferenceCount : uint32 + val mutable public preferredMaxL1ReferenceCount : uint32 - new(pNext : nativeint, perViewPositionAllComponents : VkBool32) = + new(pNext : nativeint, preferredRateControlFlags : VkVideoEncodeH265RateControlFlagsKHR, preferredGopFrameCount : uint32, preferredIdrPeriod : uint32, preferredConsecutiveBFrameCount : uint32, preferredSubLayerCount : uint32, preferredConstantQp : VkVideoEncodeH265QpKHR, preferredMaxL0ReferenceCount : uint32, preferredMaxL1ReferenceCount : uint32) = { - sType = 1000097000u + sType = 1000039012u pNext = pNext - perViewPositionAllComponents = perViewPositionAllComponents + preferredRateControlFlags = preferredRateControlFlags + preferredGopFrameCount = preferredGopFrameCount + preferredIdrPeriod = preferredIdrPeriod + preferredConsecutiveBFrameCount = preferredConsecutiveBFrameCount + preferredSubLayerCount = preferredSubLayerCount + preferredConstantQp = preferredConstantQp + preferredMaxL0ReferenceCount = preferredMaxL0ReferenceCount + preferredMaxL1ReferenceCount = preferredMaxL1ReferenceCount } - new(perViewPositionAllComponents : VkBool32) = - VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(Unchecked.defaultof, perViewPositionAllComponents) + new(preferredRateControlFlags : VkVideoEncodeH265RateControlFlagsKHR, preferredGopFrameCount : uint32, preferredIdrPeriod : uint32, preferredConsecutiveBFrameCount : uint32, preferredSubLayerCount : uint32, preferredConstantQp : VkVideoEncodeH265QpKHR, preferredMaxL0ReferenceCount : uint32, preferredMaxL1ReferenceCount : uint32) = + VkVideoEncodeH265QualityLevelPropertiesKHR(Unchecked.defaultof, preferredRateControlFlags, preferredGopFrameCount, preferredIdrPeriod, preferredConsecutiveBFrameCount, preferredSubLayerCount, preferredConstantQp, preferredMaxL0ReferenceCount, preferredMaxL1ReferenceCount) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.perViewPositionAllComponents = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.preferredRateControlFlags = Unchecked.defaultof && x.preferredGopFrameCount = Unchecked.defaultof && x.preferredIdrPeriod = Unchecked.defaultof && x.preferredConsecutiveBFrameCount = Unchecked.defaultof && x.preferredSubLayerCount = Unchecked.defaultof && x.preferredConstantQp = Unchecked.defaultof && x.preferredMaxL0ReferenceCount = Unchecked.defaultof && x.preferredMaxL1ReferenceCount = Unchecked.defaultof static member Empty = - VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(Unchecked.defaultof, Unchecked.defaultof) + VkVideoEncodeH265QualityLevelPropertiesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "perViewPositionAllComponents = %A" x.perViewPositionAllComponents - ] |> sprintf "VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX { %s }" + sprintf "preferredRateControlFlags = %A" x.preferredRateControlFlags + sprintf "preferredGopFrameCount = %A" x.preferredGopFrameCount + sprintf "preferredIdrPeriod = %A" x.preferredIdrPeriod + sprintf "preferredConsecutiveBFrameCount = %A" x.preferredConsecutiveBFrameCount + sprintf "preferredSubLayerCount = %A" x.preferredSubLayerCount + sprintf "preferredConstantQp = %A" x.preferredConstantQp + sprintf "preferredMaxL0ReferenceCount = %A" x.preferredMaxL0ReferenceCount + sprintf "preferredMaxL1ReferenceCount = %A" x.preferredMaxL1ReferenceCount + ] |> sprintf "VkVideoEncodeH265QualityLevelPropertiesKHR { %s }" end + [] + type VkVideoEncodeH265RateControlInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public flags : VkVideoEncodeH265RateControlFlagsKHR + val mutable public gopFrameCount : uint32 + val mutable public idrPeriod : uint32 + val mutable public consecutiveBFrameCount : uint32 + val mutable public subLayerCount : uint32 - [] - module EnumExtensions = - type VkSubpassDescriptionFlags with - static member inline PerViewAttributesBitNvx = unbox 0x00000001 - static member inline PerViewPositionXOnlyBitNvx = unbox 0x00000002 - - -module KHRDynamicRendering = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRCreateRenderpass2 - open KHRDepthStencilResolve - open KHRGetPhysicalDeviceProperties2 - open KHRMaintenance2 - open KHRMultiview - let Name = "VK_KHR_dynamic_rendering" - let Number = 45 - - let Required = [ KHRDepthStencilResolve.Name; KHRGetPhysicalDeviceProperties2.Name ] - - - type VkRenderingFlagsKHR = VkRenderingFlags - - type VkCommandBufferInheritanceRenderingInfoKHR = VkCommandBufferInheritanceRenderingInfo - - type VkPhysicalDeviceDynamicRenderingFeaturesKHR = VkPhysicalDeviceDynamicRenderingFeatures - - type VkPipelineRenderingCreateInfoKHR = VkPipelineRenderingCreateInfo - - type VkRenderingAttachmentInfoKHR = VkRenderingAttachmentInfo - - type VkRenderingInfoKHR = VkRenderingInfo - - - [] - module EnumExtensions = - type VkAttachmentStoreOp with - static member inline NoneKhr = unbox 1000301000 - - module VkRaw = - [] - type VkCmdBeginRenderingKHRDel = delegate of VkCommandBuffer * nativeptr -> unit - [] - type VkCmdEndRenderingKHRDel = delegate of VkCommandBuffer -> unit - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRDynamicRendering") - static let s_vkCmdBeginRenderingKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdBeginRenderingKHR" - static let s_vkCmdEndRenderingKHRDel = VkRaw.vkImportInstanceDelegate "vkCmdEndRenderingKHR" - static do Report.End(3) |> ignore - static member vkCmdBeginRenderingKHR = s_vkCmdBeginRenderingKHRDel - static member vkCmdEndRenderingKHR = s_vkCmdEndRenderingKHRDel - let vkCmdBeginRenderingKHR(commandBuffer : VkCommandBuffer, pRenderingInfo : nativeptr) = Loader.vkCmdBeginRenderingKHR.Invoke(commandBuffer, pRenderingInfo) - let vkCmdEndRenderingKHR(commandBuffer : VkCommandBuffer) = Loader.vkCmdEndRenderingKHR.Invoke(commandBuffer) - - module KHRFragmentShadingRate = - [] - type VkRenderingFragmentShadingRateAttachmentInfoKHR = - struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public imageView : VkImageView - val mutable public imageLayout : VkImageLayout - val mutable public shadingRateAttachmentTexelSize : VkExtent2D - - new(pNext : nativeint, imageView : VkImageView, imageLayout : VkImageLayout, shadingRateAttachmentTexelSize : VkExtent2D) = - { - sType = 1000044006u - pNext = pNext - imageView = imageView - imageLayout = imageLayout - shadingRateAttachmentTexelSize = shadingRateAttachmentTexelSize - } - - new(imageView : VkImageView, imageLayout : VkImageLayout, shadingRateAttachmentTexelSize : VkExtent2D) = - VkRenderingFragmentShadingRateAttachmentInfoKHR(Unchecked.defaultof, imageView, imageLayout, shadingRateAttachmentTexelSize) - - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.imageView = Unchecked.defaultof && x.imageLayout = Unchecked.defaultof && x.shadingRateAttachmentTexelSize = Unchecked.defaultof - - static member Empty = - VkRenderingFragmentShadingRateAttachmentInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) - - override x.ToString() = - String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "imageView = %A" x.imageView - sprintf "imageLayout = %A" x.imageLayout - sprintf "shadingRateAttachmentTexelSize = %A" x.shadingRateAttachmentTexelSize - ] |> sprintf "VkRenderingFragmentShadingRateAttachmentInfoKHR { %s }" - end - - - [] - module EnumExtensions = - type VkPipelineCreateFlags with - static member inline RenderingFragmentShadingRateAttachmentBitKhr = unbox 0x00200000 - - - module EXTFragmentDensityMap = - [] - type VkRenderingFragmentDensityMapAttachmentInfoEXT = - struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public imageView : VkImageView - val mutable public imageLayout : VkImageLayout - - new(pNext : nativeint, imageView : VkImageView, imageLayout : VkImageLayout) = - { - sType = 1000044007u - pNext = pNext - imageView = imageView - imageLayout = imageLayout - } - - new(imageView : VkImageView, imageLayout : VkImageLayout) = - VkRenderingFragmentDensityMapAttachmentInfoEXT(Unchecked.defaultof, imageView, imageLayout) - - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.imageView = Unchecked.defaultof && x.imageLayout = Unchecked.defaultof - - static member Empty = - VkRenderingFragmentDensityMapAttachmentInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) - - override x.ToString() = - String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "imageView = %A" x.imageView - sprintf "imageLayout = %A" x.imageLayout - ] |> sprintf "VkRenderingFragmentDensityMapAttachmentInfoEXT { %s }" - end - - - [] - module EnumExtensions = - type VkPipelineCreateFlags with - static member inline RenderingFragmentDensityMapAttachmentBitExt = unbox 0x00400000 - - - module AMDMixedAttachmentSamples = - [] - type VkAttachmentSampleCountInfoAMD = - struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public colorAttachmentCount : uint32 - val mutable public pColorAttachmentSamples : nativeptr - val mutable public depthStencilAttachmentSamples : VkSampleCountFlags - - new(pNext : nativeint, colorAttachmentCount : uint32, pColorAttachmentSamples : nativeptr, depthStencilAttachmentSamples : VkSampleCountFlags) = - { - sType = 1000044008u - pNext = pNext - colorAttachmentCount = colorAttachmentCount - pColorAttachmentSamples = pColorAttachmentSamples - depthStencilAttachmentSamples = depthStencilAttachmentSamples - } - - new(colorAttachmentCount : uint32, pColorAttachmentSamples : nativeptr, depthStencilAttachmentSamples : VkSampleCountFlags) = - VkAttachmentSampleCountInfoAMD(Unchecked.defaultof, colorAttachmentCount, pColorAttachmentSamples, depthStencilAttachmentSamples) - - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.colorAttachmentCount = Unchecked.defaultof && x.pColorAttachmentSamples = Unchecked.defaultof> && x.depthStencilAttachmentSamples = Unchecked.defaultof - - static member Empty = - VkAttachmentSampleCountInfoAMD(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof) - - override x.ToString() = - String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "colorAttachmentCount = %A" x.colorAttachmentCount - sprintf "pColorAttachmentSamples = %A" x.pColorAttachmentSamples - sprintf "depthStencilAttachmentSamples = %A" x.depthStencilAttachmentSamples - ] |> sprintf "VkAttachmentSampleCountInfoAMD { %s }" - end - - - - module NVFramebufferMixedSamples = - type VkAttachmentSampleCountInfoNV = VkAttachmentSampleCountInfoAMD - - - - module NVXMultiviewPerViewAttributes = - [] - type VkMultiviewPerViewAttributesInfoNVX = - struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public perViewAttributes : VkBool32 - val mutable public perViewAttributesPositionXOnly : VkBool32 - - new(pNext : nativeint, perViewAttributes : VkBool32, perViewAttributesPositionXOnly : VkBool32) = - { - sType = 1000044009u - pNext = pNext - perViewAttributes = perViewAttributes - perViewAttributesPositionXOnly = perViewAttributesPositionXOnly - } + new(pNext : nativeint, flags : VkVideoEncodeH265RateControlFlagsKHR, gopFrameCount : uint32, idrPeriod : uint32, consecutiveBFrameCount : uint32, subLayerCount : uint32) = + { + sType = 1000039009u + pNext = pNext + flags = flags + gopFrameCount = gopFrameCount + idrPeriod = idrPeriod + consecutiveBFrameCount = consecutiveBFrameCount + subLayerCount = subLayerCount + } - new(perViewAttributes : VkBool32, perViewAttributesPositionXOnly : VkBool32) = - VkMultiviewPerViewAttributesInfoNVX(Unchecked.defaultof, perViewAttributes, perViewAttributesPositionXOnly) + new(flags : VkVideoEncodeH265RateControlFlagsKHR, gopFrameCount : uint32, idrPeriod : uint32, consecutiveBFrameCount : uint32, subLayerCount : uint32) = + VkVideoEncodeH265RateControlInfoKHR(Unchecked.defaultof, flags, gopFrameCount, idrPeriod, consecutiveBFrameCount, subLayerCount) - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.perViewAttributes = Unchecked.defaultof && x.perViewAttributesPositionXOnly = Unchecked.defaultof + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.gopFrameCount = Unchecked.defaultof && x.idrPeriod = Unchecked.defaultof && x.consecutiveBFrameCount = Unchecked.defaultof && x.subLayerCount = Unchecked.defaultof - static member Empty = - VkMultiviewPerViewAttributesInfoNVX(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + static member Empty = + VkVideoEncodeH265RateControlInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) - override x.ToString() = - String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "perViewAttributes = %A" x.perViewAttributes - sprintf "perViewAttributesPositionXOnly = %A" x.perViewAttributesPositionXOnly - ] |> sprintf "VkMultiviewPerViewAttributesInfoNVX { %s }" - end + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "flags = %A" x.flags + sprintf "gopFrameCount = %A" x.gopFrameCount + sprintf "idrPeriod = %A" x.idrPeriod + sprintf "consecutiveBFrameCount = %A" x.consecutiveBFrameCount + sprintf "subLayerCount = %A" x.subLayerCount + ] |> sprintf "VkVideoEncodeH265RateControlInfoKHR { %s }" + end + [] + type VkVideoEncodeH265RateControlLayerInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public useMinQp : VkBool32 + val mutable public minQp : VkVideoEncodeH265QpKHR + val mutable public useMaxQp : VkBool32 + val mutable public maxQp : VkVideoEncodeH265QpKHR + val mutable public useMaxFrameSize : VkBool32 + val mutable public maxFrameSize : VkVideoEncodeH265FrameSizeKHR + new(pNext : nativeint, useMinQp : VkBool32, minQp : VkVideoEncodeH265QpKHR, useMaxQp : VkBool32, maxQp : VkVideoEncodeH265QpKHR, useMaxFrameSize : VkBool32, maxFrameSize : VkVideoEncodeH265FrameSizeKHR) = + { + sType = 1000039010u + pNext = pNext + useMinQp = useMinQp + minQp = minQp + useMaxQp = useMaxQp + maxQp = maxQp + useMaxFrameSize = useMaxFrameSize + maxFrameSize = maxFrameSize + } -module KHRExternalFenceCapabilities = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_KHR_external_fence_capabilities" - let Number = 113 + new(useMinQp : VkBool32, minQp : VkVideoEncodeH265QpKHR, useMaxQp : VkBool32, maxQp : VkVideoEncodeH265QpKHR, useMaxFrameSize : VkBool32, maxFrameSize : VkVideoEncodeH265FrameSizeKHR) = + VkVideoEncodeH265RateControlLayerInfoKHR(Unchecked.defaultof, useMinQp, minQp, useMaxQp, maxQp, useMaxFrameSize, maxFrameSize) - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.useMinQp = Unchecked.defaultof && x.minQp = Unchecked.defaultof && x.useMaxQp = Unchecked.defaultof && x.maxQp = Unchecked.defaultof && x.useMaxFrameSize = Unchecked.defaultof && x.maxFrameSize = Unchecked.defaultof + static member Empty = + VkVideoEncodeH265RateControlLayerInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) - type VkExternalFenceHandleTypeFlagsKHR = VkExternalFenceHandleTypeFlags - type VkExternalFenceFeatureFlagsKHR = VkExternalFenceFeatureFlags + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "useMinQp = %A" x.useMinQp + sprintf "minQp = %A" x.minQp + sprintf "useMaxQp = %A" x.useMaxQp + sprintf "maxQp = %A" x.maxQp + sprintf "useMaxFrameSize = %A" x.useMaxFrameSize + sprintf "maxFrameSize = %A" x.maxFrameSize + ] |> sprintf "VkVideoEncodeH265RateControlLayerInfoKHR { %s }" + end - type VkExternalFencePropertiesKHR = VkExternalFenceProperties + [] + type VkVideoEncodeH265SessionCreateInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public useMaxLevelIdc : VkBool32 + val mutable public maxLevelIdc : nativeint - type VkPhysicalDeviceExternalFenceInfoKHR = VkPhysicalDeviceExternalFenceInfo + new(pNext : nativeint, useMaxLevelIdc : VkBool32, maxLevelIdc : nativeint) = + { + sType = 1000039011u + pNext = pNext + useMaxLevelIdc = useMaxLevelIdc + maxLevelIdc = maxLevelIdc + } - type VkPhysicalDeviceIDPropertiesKHR = KHRExternalMemoryCapabilities.VkPhysicalDeviceIDPropertiesKHR + new(useMaxLevelIdc : VkBool32, maxLevelIdc : nativeint) = + VkVideoEncodeH265SessionCreateInfoKHR(Unchecked.defaultof, useMaxLevelIdc, maxLevelIdc) + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.useMaxLevelIdc = Unchecked.defaultof && x.maxLevelIdc = Unchecked.defaultof - [] - module EnumExtensions = - type VkExternalFenceFeatureFlags with - static member inline ExportableBitKhr = unbox 0x00000001 - static member inline ImportableBitKhr = unbox 0x00000002 - type VkExternalFenceHandleTypeFlags with - static member inline OpaqueFdBitKhr = unbox 0x00000001 - static member inline OpaqueWin32BitKhr = unbox 0x00000002 - static member inline OpaqueWin32KmtBitKhr = unbox 0x00000004 - static member inline SyncFdBitKhr = unbox 0x00000008 + static member Empty = + VkVideoEncodeH265SessionCreateInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) - module VkRaw = - [] - type VkGetPhysicalDeviceExternalFencePropertiesKHRDel = delegate of VkPhysicalDevice * nativeptr * nativeptr -> unit + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "useMaxLevelIdc = %A" x.useMaxLevelIdc + sprintf "maxLevelIdc = %A" x.maxLevelIdc + ] |> sprintf "VkVideoEncodeH265SessionCreateInfoKHR { %s }" + end - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRExternalFenceCapabilities") - static let s_vkGetPhysicalDeviceExternalFencePropertiesKHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceExternalFencePropertiesKHR" - static do Report.End(3) |> ignore - static member vkGetPhysicalDeviceExternalFencePropertiesKHR = s_vkGetPhysicalDeviceExternalFencePropertiesKHRDel - let vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice : VkPhysicalDevice, pExternalFenceInfo : nativeptr, pExternalFenceProperties : nativeptr) = Loader.vkGetPhysicalDeviceExternalFencePropertiesKHR.Invoke(physicalDevice, pExternalFenceInfo, pExternalFenceProperties) + [] + type VkVideoEncodeH265SessionParametersAddInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public stdVPSCount : uint32 + val mutable public pStdVPSs : nativeptr + val mutable public stdSPSCount : uint32 + val mutable public pStdSPSs : nativeptr + val mutable public stdPPSCount : uint32 + val mutable public pStdPPSs : nativeptr -module KHRExternalFence = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRExternalFenceCapabilities - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_KHR_external_fence" - let Number = 114 + new(pNext : nativeint, stdVPSCount : uint32, pStdVPSs : nativeptr, stdSPSCount : uint32, pStdSPSs : nativeptr, stdPPSCount : uint32, pStdPPSs : nativeptr) = + { + sType = 1000039002u + pNext = pNext + stdVPSCount = stdVPSCount + pStdVPSs = pStdVPSs + stdSPSCount = stdSPSCount + pStdSPSs = pStdSPSs + stdPPSCount = stdPPSCount + pStdPPSs = pStdPPSs + } - let Required = [ KHRExternalFenceCapabilities.Name ] + new(stdVPSCount : uint32, pStdVPSs : nativeptr, stdSPSCount : uint32, pStdSPSs : nativeptr, stdPPSCount : uint32, pStdPPSs : nativeptr) = + VkVideoEncodeH265SessionParametersAddInfoKHR(Unchecked.defaultof, stdVPSCount, pStdVPSs, stdSPSCount, pStdSPSs, stdPPSCount, pStdPPSs) + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.stdVPSCount = Unchecked.defaultof && x.pStdVPSs = Unchecked.defaultof> && x.stdSPSCount = Unchecked.defaultof && x.pStdSPSs = Unchecked.defaultof> && x.stdPPSCount = Unchecked.defaultof && x.pStdPPSs = Unchecked.defaultof> - type VkFenceImportFlagsKHR = VkFenceImportFlags + static member Empty = + VkVideoEncodeH265SessionParametersAddInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>) - type VkExportFenceCreateInfoKHR = VkExportFenceCreateInfo + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "stdVPSCount = %A" x.stdVPSCount + sprintf "pStdVPSs = %A" x.pStdVPSs + sprintf "stdSPSCount = %A" x.stdSPSCount + sprintf "pStdSPSs = %A" x.pStdSPSs + sprintf "stdPPSCount = %A" x.stdPPSCount + sprintf "pStdPPSs = %A" x.pStdPPSs + ] |> sprintf "VkVideoEncodeH265SessionParametersAddInfoKHR { %s }" + end + [] + type VkVideoEncodeH265SessionParametersCreateInfoKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public maxStdVPSCount : uint32 + val mutable public maxStdSPSCount : uint32 + val mutable public maxStdPPSCount : uint32 + val mutable public pParametersAddInfo : nativeptr - [] - module EnumExtensions = - type VkFenceImportFlags with - static member inline TemporaryBitKhr = unbox 0x00000001 + new(pNext : nativeint, maxStdVPSCount : uint32, maxStdSPSCount : uint32, maxStdPPSCount : uint32, pParametersAddInfo : nativeptr) = + { + sType = 1000039001u + pNext = pNext + maxStdVPSCount = maxStdVPSCount + maxStdSPSCount = maxStdSPSCount + maxStdPPSCount = maxStdPPSCount + pParametersAddInfo = pParametersAddInfo + } + new(maxStdVPSCount : uint32, maxStdSPSCount : uint32, maxStdPPSCount : uint32, pParametersAddInfo : nativeptr) = + VkVideoEncodeH265SessionParametersCreateInfoKHR(Unchecked.defaultof, maxStdVPSCount, maxStdSPSCount, maxStdPPSCount, pParametersAddInfo) -module KHRExternalFenceFd = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRExternalFence - open KHRExternalFenceCapabilities - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_KHR_external_fence_fd" - let Number = 116 + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.maxStdVPSCount = Unchecked.defaultof && x.maxStdSPSCount = Unchecked.defaultof && x.maxStdPPSCount = Unchecked.defaultof && x.pParametersAddInfo = Unchecked.defaultof> - let Required = [ KHRExternalFence.Name ] + static member Empty = + VkVideoEncodeH265SessionParametersCreateInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "maxStdVPSCount = %A" x.maxStdVPSCount + sprintf "maxStdSPSCount = %A" x.maxStdSPSCount + sprintf "maxStdPPSCount = %A" x.maxStdPPSCount + sprintf "pParametersAddInfo = %A" x.pParametersAddInfo + ] |> sprintf "VkVideoEncodeH265SessionParametersCreateInfoKHR { %s }" + end [] - type VkFenceGetFdInfoKHR = + type VkVideoEncodeH265SessionParametersFeedbackInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public fence : VkFence - val mutable public handleType : VkExternalFenceHandleTypeFlags + val mutable public hasStdVPSOverrides : VkBool32 + val mutable public hasStdSPSOverrides : VkBool32 + val mutable public hasStdPPSOverrides : VkBool32 - new(pNext : nativeint, fence : VkFence, handleType : VkExternalFenceHandleTypeFlags) = + new(pNext : nativeint, hasStdVPSOverrides : VkBool32, hasStdSPSOverrides : VkBool32, hasStdPPSOverrides : VkBool32) = { - sType = 1000115001u + sType = 1000039014u pNext = pNext - fence = fence - handleType = handleType + hasStdVPSOverrides = hasStdVPSOverrides + hasStdSPSOverrides = hasStdSPSOverrides + hasStdPPSOverrides = hasStdPPSOverrides } - new(fence : VkFence, handleType : VkExternalFenceHandleTypeFlags) = - VkFenceGetFdInfoKHR(Unchecked.defaultof, fence, handleType) + new(hasStdVPSOverrides : VkBool32, hasStdSPSOverrides : VkBool32, hasStdPPSOverrides : VkBool32) = + VkVideoEncodeH265SessionParametersFeedbackInfoKHR(Unchecked.defaultof, hasStdVPSOverrides, hasStdSPSOverrides, hasStdPPSOverrides) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.fence = Unchecked.defaultof && x.handleType = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.hasStdVPSOverrides = Unchecked.defaultof && x.hasStdSPSOverrides = Unchecked.defaultof && x.hasStdPPSOverrides = Unchecked.defaultof static member Empty = - VkFenceGetFdInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkVideoEncodeH265SessionParametersFeedbackInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "fence = %A" x.fence - sprintf "handleType = %A" x.handleType - ] |> sprintf "VkFenceGetFdInfoKHR { %s }" + sprintf "hasStdVPSOverrides = %A" x.hasStdVPSOverrides + sprintf "hasStdSPSOverrides = %A" x.hasStdSPSOverrides + sprintf "hasStdPPSOverrides = %A" x.hasStdPPSOverrides + ] |> sprintf "VkVideoEncodeH265SessionParametersFeedbackInfoKHR { %s }" end [] - type VkImportFenceFdInfoKHR = + type VkVideoEncodeH265SessionParametersGetInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public fence : VkFence - val mutable public flags : VkFenceImportFlags - val mutable public handleType : VkExternalFenceHandleTypeFlags - val mutable public fd : int + val mutable public writeStdVPS : VkBool32 + val mutable public writeStdSPS : VkBool32 + val mutable public writeStdPPS : VkBool32 + val mutable public stdVPSId : uint32 + val mutable public stdSPSId : uint32 + val mutable public stdPPSId : uint32 - new(pNext : nativeint, fence : VkFence, flags : VkFenceImportFlags, handleType : VkExternalFenceHandleTypeFlags, fd : int) = + new(pNext : nativeint, writeStdVPS : VkBool32, writeStdSPS : VkBool32, writeStdPPS : VkBool32, stdVPSId : uint32, stdSPSId : uint32, stdPPSId : uint32) = { - sType = 1000115000u + sType = 1000039013u pNext = pNext - fence = fence - flags = flags - handleType = handleType - fd = fd + writeStdVPS = writeStdVPS + writeStdSPS = writeStdSPS + writeStdPPS = writeStdPPS + stdVPSId = stdVPSId + stdSPSId = stdSPSId + stdPPSId = stdPPSId } - new(fence : VkFence, flags : VkFenceImportFlags, handleType : VkExternalFenceHandleTypeFlags, fd : int) = - VkImportFenceFdInfoKHR(Unchecked.defaultof, fence, flags, handleType, fd) + new(writeStdVPS : VkBool32, writeStdSPS : VkBool32, writeStdPPS : VkBool32, stdVPSId : uint32, stdSPSId : uint32, stdPPSId : uint32) = + VkVideoEncodeH265SessionParametersGetInfoKHR(Unchecked.defaultof, writeStdVPS, writeStdSPS, writeStdPPS, stdVPSId, stdSPSId, stdPPSId) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.fence = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.handleType = Unchecked.defaultof && x.fd = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.writeStdVPS = Unchecked.defaultof && x.writeStdSPS = Unchecked.defaultof && x.writeStdPPS = Unchecked.defaultof && x.stdVPSId = Unchecked.defaultof && x.stdSPSId = Unchecked.defaultof && x.stdPPSId = Unchecked.defaultof static member Empty = - VkImportFenceFdInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkVideoEncodeH265SessionParametersGetInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "fence = %A" x.fence - sprintf "flags = %A" x.flags - sprintf "handleType = %A" x.handleType - sprintf "fd = %A" x.fd - ] |> sprintf "VkImportFenceFdInfoKHR { %s }" + sprintf "writeStdVPS = %A" x.writeStdVPS + sprintf "writeStdSPS = %A" x.writeStdSPS + sprintf "writeStdPPS = %A" x.writeStdPPS + sprintf "stdVPSId = %A" x.stdVPSId + sprintf "stdSPSId = %A" x.stdSPSId + sprintf "stdPPSId = %A" x.stdPPSId + ] |> sprintf "VkVideoEncodeH265SessionParametersGetInfoKHR { %s }" end - module VkRaw = - [] - type VkImportFenceFdKHRDel = delegate of VkDevice * nativeptr -> VkResult - [] - type VkGetFenceFdKHRDel = delegate of VkDevice * nativeptr * nativeptr -> VkResult - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRExternalFenceFd") - static let s_vkImportFenceFdKHRDel = VkRaw.vkImportInstanceDelegate "vkImportFenceFdKHR" - static let s_vkGetFenceFdKHRDel = VkRaw.vkImportInstanceDelegate "vkGetFenceFdKHR" - static do Report.End(3) |> ignore - static member vkImportFenceFdKHR = s_vkImportFenceFdKHRDel - static member vkGetFenceFdKHR = s_vkGetFenceFdKHRDel - let vkImportFenceFdKHR(device : VkDevice, pImportFenceFdInfo : nativeptr) = Loader.vkImportFenceFdKHR.Invoke(device, pImportFenceFdInfo) - let vkGetFenceFdKHR(device : VkDevice, pGetFdInfo : nativeptr, pFd : nativeptr) = Loader.vkGetFenceFdKHR.Invoke(device, pGetFdInfo, pFd) - -module KHRExternalFenceWin32 = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRExternalFence - open KHRExternalFenceCapabilities - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_KHR_external_fence_win32" - let Number = 115 + [] + module EnumExtensions = + type KHRVideoQueue.VkVideoCodecOperationFlagsKHR with + static member inline EncodeH265Bit = unbox 0x00020000 - let Required = [ KHRExternalFence.Name ] +/// Requires KHRVideoQueue. +module KHRVideoMaintenance1 = + let Type = ExtensionType.Device + let Name = "VK_KHR_video_maintenance1" + let Number = 516 [] - type VkExportFenceWin32HandleInfoKHR = + type VkPhysicalDeviceVideoMaintenance1FeaturesKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public pAttributes : nativeptr - val mutable public dwAccess : uint32 - val mutable public name : cstr + val mutable public videoMaintenance1 : VkBool32 - new(pNext : nativeint, pAttributes : nativeptr, dwAccess : uint32, name : cstr) = + new(pNext : nativeint, videoMaintenance1 : VkBool32) = { - sType = 1000114001u + sType = 1000515000u pNext = pNext - pAttributes = pAttributes - dwAccess = dwAccess - name = name + videoMaintenance1 = videoMaintenance1 } - new(pAttributes : nativeptr, dwAccess : uint32, name : cstr) = - VkExportFenceWin32HandleInfoKHR(Unchecked.defaultof, pAttributes, dwAccess, name) + new(videoMaintenance1 : VkBool32) = + VkPhysicalDeviceVideoMaintenance1FeaturesKHR(Unchecked.defaultof, videoMaintenance1) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.pAttributes = Unchecked.defaultof> && x.dwAccess = Unchecked.defaultof && x.name = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.videoMaintenance1 = Unchecked.defaultof static member Empty = - VkExportFenceWin32HandleInfoKHR(Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceVideoMaintenance1FeaturesKHR(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "pAttributes = %A" x.pAttributes - sprintf "dwAccess = %A" x.dwAccess - sprintf "name = %A" x.name - ] |> sprintf "VkExportFenceWin32HandleInfoKHR { %s }" + sprintf "videoMaintenance1 = %A" x.videoMaintenance1 + ] |> sprintf "VkPhysicalDeviceVideoMaintenance1FeaturesKHR { %s }" end [] - type VkFenceGetWin32HandleInfoKHR = + type VkVideoInlineQueryInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public fence : VkFence - val mutable public handleType : VkExternalFenceHandleTypeFlags + val mutable public queryPool : VkQueryPool + val mutable public firstQuery : uint32 + val mutable public queryCount : uint32 - new(pNext : nativeint, fence : VkFence, handleType : VkExternalFenceHandleTypeFlags) = + new(pNext : nativeint, queryPool : VkQueryPool, firstQuery : uint32, queryCount : uint32) = { - sType = 1000114002u + sType = 1000515001u pNext = pNext - fence = fence - handleType = handleType + queryPool = queryPool + firstQuery = firstQuery + queryCount = queryCount } - new(fence : VkFence, handleType : VkExternalFenceHandleTypeFlags) = - VkFenceGetWin32HandleInfoKHR(Unchecked.defaultof, fence, handleType) + new(queryPool : VkQueryPool, firstQuery : uint32, queryCount : uint32) = + VkVideoInlineQueryInfoKHR(Unchecked.defaultof, queryPool, firstQuery, queryCount) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.fence = Unchecked.defaultof && x.handleType = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.queryPool = Unchecked.defaultof && x.firstQuery = Unchecked.defaultof && x.queryCount = Unchecked.defaultof static member Empty = - VkFenceGetWin32HandleInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkVideoInlineQueryInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "fence = %A" x.fence - sprintf "handleType = %A" x.handleType - ] |> sprintf "VkFenceGetWin32HandleInfoKHR { %s }" + sprintf "queryPool = %A" x.queryPool + sprintf "firstQuery = %A" x.firstQuery + sprintf "queryCount = %A" x.queryCount + ] |> sprintf "VkVideoInlineQueryInfoKHR { %s }" end + + [] + module EnumExtensions = + type VkBufferCreateFlags with + static member inline VideoProfileIndependentBitKhr = unbox 0x00000040 + type VkImageCreateFlags with + static member inline VideoProfileIndependentBitKhr = unbox 0x00100000 + type KHRVideoQueue.VkVideoSessionCreateFlagsKHR with + static member inline InlineQueriesBit = unbox 0x00000004 + + +/// Requires KHRExternalMemoryWin32. +module KHRWin32KeyedMutex = + let Type = ExtensionType.Device + let Name = "VK_KHR_win32_keyed_mutex" + let Number = 76 + [] - type VkImportFenceWin32HandleInfoKHR = + type VkWin32KeyedMutexAcquireReleaseInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public fence : VkFence - val mutable public flags : VkFenceImportFlags - val mutable public handleType : VkExternalFenceHandleTypeFlags - val mutable public handle : nativeint - val mutable public name : cstr + val mutable public acquireCount : uint32 + val mutable public pAcquireSyncs : nativeptr + val mutable public pAcquireKeys : nativeptr + val mutable public pAcquireTimeouts : nativeptr + val mutable public releaseCount : uint32 + val mutable public pReleaseSyncs : nativeptr + val mutable public pReleaseKeys : nativeptr - new(pNext : nativeint, fence : VkFence, flags : VkFenceImportFlags, handleType : VkExternalFenceHandleTypeFlags, handle : nativeint, name : cstr) = + new(pNext : nativeint, acquireCount : uint32, pAcquireSyncs : nativeptr, pAcquireKeys : nativeptr, pAcquireTimeouts : nativeptr, releaseCount : uint32, pReleaseSyncs : nativeptr, pReleaseKeys : nativeptr) = { - sType = 1000114000u + sType = 1000075000u pNext = pNext - fence = fence - flags = flags - handleType = handleType - handle = handle - name = name + acquireCount = acquireCount + pAcquireSyncs = pAcquireSyncs + pAcquireKeys = pAcquireKeys + pAcquireTimeouts = pAcquireTimeouts + releaseCount = releaseCount + pReleaseSyncs = pReleaseSyncs + pReleaseKeys = pReleaseKeys + } + + new(acquireCount : uint32, pAcquireSyncs : nativeptr, pAcquireKeys : nativeptr, pAcquireTimeouts : nativeptr, releaseCount : uint32, pReleaseSyncs : nativeptr, pReleaseKeys : nativeptr) = + VkWin32KeyedMutexAcquireReleaseInfoKHR(Unchecked.defaultof, acquireCount, pAcquireSyncs, pAcquireKeys, pAcquireTimeouts, releaseCount, pReleaseSyncs, pReleaseKeys) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.acquireCount = Unchecked.defaultof && x.pAcquireSyncs = Unchecked.defaultof> && x.pAcquireKeys = Unchecked.defaultof> && x.pAcquireTimeouts = Unchecked.defaultof> && x.releaseCount = Unchecked.defaultof && x.pReleaseSyncs = Unchecked.defaultof> && x.pReleaseKeys = Unchecked.defaultof> + + static member Empty = + VkWin32KeyedMutexAcquireReleaseInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof>, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof>) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "acquireCount = %A" x.acquireCount + sprintf "pAcquireSyncs = %A" x.pAcquireSyncs + sprintf "pAcquireKeys = %A" x.pAcquireKeys + sprintf "pAcquireTimeouts = %A" x.pAcquireTimeouts + sprintf "releaseCount = %A" x.releaseCount + sprintf "pReleaseSyncs = %A" x.pReleaseSyncs + sprintf "pReleaseKeys = %A" x.pReleaseKeys + ] |> sprintf "VkWin32KeyedMutexAcquireReleaseInfoKHR { %s }" + end + + + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module KHRWorkgroupMemoryExplicitLayout = + let Type = ExtensionType.Device + let Name = "VK_KHR_workgroup_memory_explicit_layout" + let Number = 337 + + [] + type VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public workgroupMemoryExplicitLayout : VkBool32 + val mutable public workgroupMemoryExplicitLayoutScalarBlockLayout : VkBool32 + val mutable public workgroupMemoryExplicitLayout8BitAccess : VkBool32 + val mutable public workgroupMemoryExplicitLayout16BitAccess : VkBool32 + + new(pNext : nativeint, workgroupMemoryExplicitLayout : VkBool32, workgroupMemoryExplicitLayoutScalarBlockLayout : VkBool32, workgroupMemoryExplicitLayout8BitAccess : VkBool32, workgroupMemoryExplicitLayout16BitAccess : VkBool32) = + { + sType = 1000336000u + pNext = pNext + workgroupMemoryExplicitLayout = workgroupMemoryExplicitLayout + workgroupMemoryExplicitLayoutScalarBlockLayout = workgroupMemoryExplicitLayoutScalarBlockLayout + workgroupMemoryExplicitLayout8BitAccess = workgroupMemoryExplicitLayout8BitAccess + workgroupMemoryExplicitLayout16BitAccess = workgroupMemoryExplicitLayout16BitAccess } - new(fence : VkFence, flags : VkFenceImportFlags, handleType : VkExternalFenceHandleTypeFlags, handle : nativeint, name : cstr) = - VkImportFenceWin32HandleInfoKHR(Unchecked.defaultof, fence, flags, handleType, handle, name) + new(workgroupMemoryExplicitLayout : VkBool32, workgroupMemoryExplicitLayoutScalarBlockLayout : VkBool32, workgroupMemoryExplicitLayout8BitAccess : VkBool32, workgroupMemoryExplicitLayout16BitAccess : VkBool32) = + VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(Unchecked.defaultof, workgroupMemoryExplicitLayout, workgroupMemoryExplicitLayoutScalarBlockLayout, workgroupMemoryExplicitLayout8BitAccess, workgroupMemoryExplicitLayout16BitAccess) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.fence = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.handleType = Unchecked.defaultof && x.handle = Unchecked.defaultof && x.name = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.workgroupMemoryExplicitLayout = Unchecked.defaultof && x.workgroupMemoryExplicitLayoutScalarBlockLayout = Unchecked.defaultof && x.workgroupMemoryExplicitLayout8BitAccess = Unchecked.defaultof && x.workgroupMemoryExplicitLayout16BitAccess = Unchecked.defaultof static member Empty = - VkImportFenceWin32HandleInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "fence = %A" x.fence - sprintf "flags = %A" x.flags - sprintf "handleType = %A" x.handleType - sprintf "handle = %A" x.handle - sprintf "name = %A" x.name - ] |> sprintf "VkImportFenceWin32HandleInfoKHR { %s }" + sprintf "workgroupMemoryExplicitLayout = %A" x.workgroupMemoryExplicitLayout + sprintf "workgroupMemoryExplicitLayoutScalarBlockLayout = %A" x.workgroupMemoryExplicitLayoutScalarBlockLayout + sprintf "workgroupMemoryExplicitLayout8BitAccess = %A" x.workgroupMemoryExplicitLayout8BitAccess + sprintf "workgroupMemoryExplicitLayout16BitAccess = %A" x.workgroupMemoryExplicitLayout16BitAccess + ] |> sprintf "VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR { %s }" end - module VkRaw = - [] - type VkImportFenceWin32HandleKHRDel = delegate of VkDevice * nativeptr -> VkResult - [] - type VkGetFenceWin32HandleKHRDel = delegate of VkDevice * nativeptr * nativeptr -> VkResult - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRExternalFenceWin32") - static let s_vkImportFenceWin32HandleKHRDel = VkRaw.vkImportInstanceDelegate "vkImportFenceWin32HandleKHR" - static let s_vkGetFenceWin32HandleKHRDel = VkRaw.vkImportInstanceDelegate "vkGetFenceWin32HandleKHR" - static do Report.End(3) |> ignore - static member vkImportFenceWin32HandleKHR = s_vkImportFenceWin32HandleKHRDel - static member vkGetFenceWin32HandleKHR = s_vkGetFenceWin32HandleKHRDel - let vkImportFenceWin32HandleKHR(device : VkDevice, pImportFenceWin32HandleInfo : nativeptr) = Loader.vkImportFenceWin32HandleKHR.Invoke(device, pImportFenceWin32HandleInfo) - let vkGetFenceWin32HandleKHR(device : VkDevice, pGetWin32HandleInfo : nativeptr, pHandle : nativeptr) = Loader.vkGetFenceWin32HandleKHR.Invoke(device, pGetWin32HandleInfo, pHandle) +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +/// Promoted to Vulkan13. +module KHRZeroInitializeWorkgroupMemory = + let Type = ExtensionType.Device + let Name = "VK_KHR_zero_initialize_workgroup_memory" + let Number = 326 -module KHRExternalMemoryWin32 = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRExternalMemory - open KHRExternalMemoryCapabilities - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_KHR_external_memory_win32" - let Number = 74 + type VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = Vulkan13.VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures - let Required = [ KHRExternalMemory.Name ] + + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module MSFTLayeredDriver = + let Type = ExtensionType.Device + let Name = "VK_MSFT_layered_driver" + let Number = 531 + + type VkLayeredDriverUnderlyingApiMSFT = + | None = 0 + | D3d12 = 1 [] - type VkExportMemoryWin32HandleInfoKHR = + type VkPhysicalDeviceLayeredDriverPropertiesMSFT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public pAttributes : nativeptr - val mutable public dwAccess : uint32 - val mutable public name : cstr + val mutable public underlyingAPI : VkLayeredDriverUnderlyingApiMSFT - new(pNext : nativeint, pAttributes : nativeptr, dwAccess : uint32, name : cstr) = + new(pNext : nativeint, underlyingAPI : VkLayeredDriverUnderlyingApiMSFT) = { - sType = 1000073001u + sType = 1000530000u pNext = pNext - pAttributes = pAttributes - dwAccess = dwAccess - name = name + underlyingAPI = underlyingAPI } - new(pAttributes : nativeptr, dwAccess : uint32, name : cstr) = - VkExportMemoryWin32HandleInfoKHR(Unchecked.defaultof, pAttributes, dwAccess, name) + new(underlyingAPI : VkLayeredDriverUnderlyingApiMSFT) = + VkPhysicalDeviceLayeredDriverPropertiesMSFT(Unchecked.defaultof, underlyingAPI) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.pAttributes = Unchecked.defaultof> && x.dwAccess = Unchecked.defaultof && x.name = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.underlyingAPI = Unchecked.defaultof static member Empty = - VkExportMemoryWin32HandleInfoKHR(Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceLayeredDriverPropertiesMSFT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "pAttributes = %A" x.pAttributes - sprintf "dwAccess = %A" x.dwAccess - sprintf "name = %A" x.name - ] |> sprintf "VkExportMemoryWin32HandleInfoKHR { %s }" + sprintf "underlyingAPI = %A" x.underlyingAPI + ] |> sprintf "VkPhysicalDeviceLayeredDriverPropertiesMSFT { %s }" end + + +module NVXBinaryImport = + let Type = ExtensionType.Device + let Name = "VK_NVX_binary_import" + let Number = 30 + + [] - type VkImportMemoryWin32HandleInfoKHR = + type VkCuModuleNVX = + struct + val mutable public Handle : uint64 + new(h) = { Handle = h } + static member Null = VkCuModuleNVX(0UL) + member x.IsNull = x.Handle = 0UL + member x.IsValid = x.Handle <> 0UL + end + + [] + type VkCuFunctionNVX = + struct + val mutable public Handle : uint64 + new(h) = { Handle = h } + static member Null = VkCuFunctionNVX(0UL) + member x.IsNull = x.Handle = 0UL + member x.IsValid = x.Handle <> 0UL + end + + [] + type VkCuFunctionCreateInfoNVX = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public handleType : VkExternalMemoryHandleTypeFlags - val mutable public handle : nativeint - val mutable public name : cstr + val mutable public _module : VkCuModuleNVX + val mutable public pName : cstr - new(pNext : nativeint, handleType : VkExternalMemoryHandleTypeFlags, handle : nativeint, name : cstr) = + new(pNext : nativeint, _module : VkCuModuleNVX, pName : cstr) = { - sType = 1000073000u + sType = 1000029001u pNext = pNext - handleType = handleType - handle = handle - name = name + _module = _module + pName = pName } - new(handleType : VkExternalMemoryHandleTypeFlags, handle : nativeint, name : cstr) = - VkImportMemoryWin32HandleInfoKHR(Unchecked.defaultof, handleType, handle, name) + new(_module : VkCuModuleNVX, pName : cstr) = + VkCuFunctionCreateInfoNVX(Unchecked.defaultof, _module, pName) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.handleType = Unchecked.defaultof && x.handle = Unchecked.defaultof && x.name = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x._module = Unchecked.defaultof && x.pName = Unchecked.defaultof static member Empty = - VkImportMemoryWin32HandleInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkCuFunctionCreateInfoNVX(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "handleType = %A" x.handleType - sprintf "handle = %A" x.handle - sprintf "name = %A" x.name - ] |> sprintf "VkImportMemoryWin32HandleInfoKHR { %s }" + sprintf "_module = %A" x._module + sprintf "pName = %A" x.pName + ] |> sprintf "VkCuFunctionCreateInfoNVX { %s }" end [] - type VkMemoryGetWin32HandleInfoKHR = + type VkCuLaunchInfoNVX = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public memory : VkDeviceMemory - val mutable public handleType : VkExternalMemoryHandleTypeFlags + val mutable public _function : VkCuFunctionNVX + val mutable public gridDimX : uint32 + val mutable public gridDimY : uint32 + val mutable public gridDimZ : uint32 + val mutable public blockDimX : uint32 + val mutable public blockDimY : uint32 + val mutable public blockDimZ : uint32 + val mutable public sharedMemBytes : uint32 + val mutable public paramCount : uint64 + val mutable public pParams : nativeptr + val mutable public extraCount : uint64 + val mutable public pExtras : nativeptr - new(pNext : nativeint, memory : VkDeviceMemory, handleType : VkExternalMemoryHandleTypeFlags) = + new(pNext : nativeint, _function : VkCuFunctionNVX, gridDimX : uint32, gridDimY : uint32, gridDimZ : uint32, blockDimX : uint32, blockDimY : uint32, blockDimZ : uint32, sharedMemBytes : uint32, paramCount : uint64, pParams : nativeptr, extraCount : uint64, pExtras : nativeptr) = { - sType = 1000073003u + sType = 1000029002u pNext = pNext - memory = memory - handleType = handleType + _function = _function + gridDimX = gridDimX + gridDimY = gridDimY + gridDimZ = gridDimZ + blockDimX = blockDimX + blockDimY = blockDimY + blockDimZ = blockDimZ + sharedMemBytes = sharedMemBytes + paramCount = paramCount + pParams = pParams + extraCount = extraCount + pExtras = pExtras } - new(memory : VkDeviceMemory, handleType : VkExternalMemoryHandleTypeFlags) = - VkMemoryGetWin32HandleInfoKHR(Unchecked.defaultof, memory, handleType) + new(_function : VkCuFunctionNVX, gridDimX : uint32, gridDimY : uint32, gridDimZ : uint32, blockDimX : uint32, blockDimY : uint32, blockDimZ : uint32, sharedMemBytes : uint32, paramCount : uint64, pParams : nativeptr, extraCount : uint64, pExtras : nativeptr) = + VkCuLaunchInfoNVX(Unchecked.defaultof, _function, gridDimX, gridDimY, gridDimZ, blockDimX, blockDimY, blockDimZ, sharedMemBytes, paramCount, pParams, extraCount, pExtras) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.memory = Unchecked.defaultof && x.handleType = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x._function = Unchecked.defaultof && x.gridDimX = Unchecked.defaultof && x.gridDimY = Unchecked.defaultof && x.gridDimZ = Unchecked.defaultof && x.blockDimX = Unchecked.defaultof && x.blockDimY = Unchecked.defaultof && x.blockDimZ = Unchecked.defaultof && x.sharedMemBytes = Unchecked.defaultof && x.paramCount = Unchecked.defaultof && x.pParams = Unchecked.defaultof> && x.extraCount = Unchecked.defaultof && x.pExtras = Unchecked.defaultof> static member Empty = - VkMemoryGetWin32HandleInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkCuLaunchInfoNVX(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "memory = %A" x.memory - sprintf "handleType = %A" x.handleType - ] |> sprintf "VkMemoryGetWin32HandleInfoKHR { %s }" + sprintf "_function = %A" x._function + sprintf "gridDimX = %A" x.gridDimX + sprintf "gridDimY = %A" x.gridDimY + sprintf "gridDimZ = %A" x.gridDimZ + sprintf "blockDimX = %A" x.blockDimX + sprintf "blockDimY = %A" x.blockDimY + sprintf "blockDimZ = %A" x.blockDimZ + sprintf "sharedMemBytes = %A" x.sharedMemBytes + sprintf "paramCount = %A" x.paramCount + sprintf "pParams = %A" x.pParams + sprintf "extraCount = %A" x.extraCount + sprintf "pExtras = %A" x.pExtras + ] |> sprintf "VkCuLaunchInfoNVX { %s }" end [] - type VkMemoryWin32HandlePropertiesKHR = + type VkCuModuleCreateInfoNVX = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public memoryTypeBits : uint32 + val mutable public dataSize : uint64 + val mutable public pData : nativeint - new(pNext : nativeint, memoryTypeBits : uint32) = + new(pNext : nativeint, dataSize : uint64, pData : nativeint) = { - sType = 1000073002u + sType = 1000029000u pNext = pNext - memoryTypeBits = memoryTypeBits + dataSize = dataSize + pData = pData } - new(memoryTypeBits : uint32) = - VkMemoryWin32HandlePropertiesKHR(Unchecked.defaultof, memoryTypeBits) + new(dataSize : uint64, pData : nativeint) = + VkCuModuleCreateInfoNVX(Unchecked.defaultof, dataSize, pData) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.memoryTypeBits = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.dataSize = Unchecked.defaultof && x.pData = Unchecked.defaultof static member Empty = - VkMemoryWin32HandlePropertiesKHR(Unchecked.defaultof, Unchecked.defaultof) + VkCuModuleCreateInfoNVX(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "memoryTypeBits = %A" x.memoryTypeBits - ] |> sprintf "VkMemoryWin32HandlePropertiesKHR { %s }" + sprintf "dataSize = %A" x.dataSize + sprintf "pData = %A" x.pData + ] |> sprintf "VkCuModuleCreateInfoNVX { %s }" end + [] + module EnumExtensions = + type VkObjectType with + static member inline CuModuleNvx = unbox 1000029000 + static member inline CuFunctionNvx = unbox 1000029001 + module VkRaw = [] - type VkGetMemoryWin32HandleKHRDel = delegate of VkDevice * nativeptr * nativeptr -> VkResult + type VkCreateCuModuleNVXDel = delegate of VkDevice * nativeptr * nativeptr * nativeptr -> VkResult + [] + type VkCreateCuFunctionNVXDel = delegate of VkDevice * nativeptr * nativeptr * nativeptr -> VkResult [] - type VkGetMemoryWin32HandlePropertiesKHRDel = delegate of VkDevice * VkExternalMemoryHandleTypeFlags * nativeint * nativeptr -> VkResult + type VkDestroyCuModuleNVXDel = delegate of VkDevice * VkCuModuleNVX * nativeptr -> unit + [] + type VkDestroyCuFunctionNVXDel = delegate of VkDevice * VkCuFunctionNVX * nativeptr -> unit + [] + type VkCmdCuLaunchKernelNVXDel = delegate of VkCommandBuffer * nativeptr -> unit [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRExternalMemoryWin32") - static let s_vkGetMemoryWin32HandleKHRDel = VkRaw.vkImportInstanceDelegate "vkGetMemoryWin32HandleKHR" - static let s_vkGetMemoryWin32HandlePropertiesKHRDel = VkRaw.vkImportInstanceDelegate "vkGetMemoryWin32HandlePropertiesKHR" + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading NVXBinaryImport") + static let s_vkCreateCuModuleNVXDel = VkRaw.vkImportInstanceDelegate "vkCreateCuModuleNVX" + static let s_vkCreateCuFunctionNVXDel = VkRaw.vkImportInstanceDelegate "vkCreateCuFunctionNVX" + static let s_vkDestroyCuModuleNVXDel = VkRaw.vkImportInstanceDelegate "vkDestroyCuModuleNVX" + static let s_vkDestroyCuFunctionNVXDel = VkRaw.vkImportInstanceDelegate "vkDestroyCuFunctionNVX" + static let s_vkCmdCuLaunchKernelNVXDel = VkRaw.vkImportInstanceDelegate "vkCmdCuLaunchKernelNVX" static do Report.End(3) |> ignore - static member vkGetMemoryWin32HandleKHR = s_vkGetMemoryWin32HandleKHRDel - static member vkGetMemoryWin32HandlePropertiesKHR = s_vkGetMemoryWin32HandlePropertiesKHRDel - let vkGetMemoryWin32HandleKHR(device : VkDevice, pGetWin32HandleInfo : nativeptr, pHandle : nativeptr) = Loader.vkGetMemoryWin32HandleKHR.Invoke(device, pGetWin32HandleInfo, pHandle) - let vkGetMemoryWin32HandlePropertiesKHR(device : VkDevice, handleType : VkExternalMemoryHandleTypeFlags, handle : nativeint, pMemoryWin32HandleProperties : nativeptr) = Loader.vkGetMemoryWin32HandlePropertiesKHR.Invoke(device, handleType, handle, pMemoryWin32HandleProperties) + static member vkCreateCuModuleNVX = s_vkCreateCuModuleNVXDel + static member vkCreateCuFunctionNVX = s_vkCreateCuFunctionNVXDel + static member vkDestroyCuModuleNVX = s_vkDestroyCuModuleNVXDel + static member vkDestroyCuFunctionNVX = s_vkDestroyCuFunctionNVXDel + static member vkCmdCuLaunchKernelNVX = s_vkCmdCuLaunchKernelNVXDel + let vkCreateCuModuleNVX(device : VkDevice, pCreateInfo : nativeptr, pAllocator : nativeptr, pModule : nativeptr) = Loader.vkCreateCuModuleNVX.Invoke(device, pCreateInfo, pAllocator, pModule) + let vkCreateCuFunctionNVX(device : VkDevice, pCreateInfo : nativeptr, pAllocator : nativeptr, pFunction : nativeptr) = Loader.vkCreateCuFunctionNVX.Invoke(device, pCreateInfo, pAllocator, pFunction) + let vkDestroyCuModuleNVX(device : VkDevice, _module : VkCuModuleNVX, pAllocator : nativeptr) = Loader.vkDestroyCuModuleNVX.Invoke(device, _module, pAllocator) + let vkDestroyCuFunctionNVX(device : VkDevice, _function : VkCuFunctionNVX, pAllocator : nativeptr) = Loader.vkDestroyCuFunctionNVX.Invoke(device, _function, pAllocator) + let vkCmdCuLaunchKernelNVX(commandBuffer : VkCommandBuffer, pLaunchInfo : nativeptr) = Loader.vkCmdCuLaunchKernelNVX.Invoke(commandBuffer, pLaunchInfo) -module KHRExternalSemaphoreFd = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRExternalSemaphore - open KHRExternalSemaphoreCapabilities - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_KHR_external_semaphore_fd" - let Number = 80 + [] + module ``EXTDebugReport`` = + [] + module EnumExtensions = + type EXTDebugReport.VkDebugReportObjectTypeEXT with + static member inline CuModuleNvx = unbox 1000029000 + static member inline CuFunctionNvx = unbox 1000029001 - let Required = [ KHRExternalSemaphore.Name ] +module NVXImageViewHandle = + let Type = ExtensionType.Device + let Name = "VK_NVX_image_view_handle" + let Number = 31 [] - type VkImportSemaphoreFdInfoKHR = + type VkImageViewAddressPropertiesNVX = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public semaphore : VkSemaphore - val mutable public flags : VkSemaphoreImportFlags - val mutable public handleType : VkExternalSemaphoreHandleTypeFlags - val mutable public fd : int + val mutable public deviceAddress : VkDeviceAddress + val mutable public size : VkDeviceSize - new(pNext : nativeint, semaphore : VkSemaphore, flags : VkSemaphoreImportFlags, handleType : VkExternalSemaphoreHandleTypeFlags, fd : int) = + new(pNext : nativeint, deviceAddress : VkDeviceAddress, size : VkDeviceSize) = { - sType = 1000079000u + sType = 1000030001u pNext = pNext - semaphore = semaphore - flags = flags - handleType = handleType - fd = fd + deviceAddress = deviceAddress + size = size } - new(semaphore : VkSemaphore, flags : VkSemaphoreImportFlags, handleType : VkExternalSemaphoreHandleTypeFlags, fd : int) = - VkImportSemaphoreFdInfoKHR(Unchecked.defaultof, semaphore, flags, handleType, fd) + new(deviceAddress : VkDeviceAddress, size : VkDeviceSize) = + VkImageViewAddressPropertiesNVX(Unchecked.defaultof, deviceAddress, size) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.semaphore = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.handleType = Unchecked.defaultof && x.fd = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.deviceAddress = Unchecked.defaultof && x.size = Unchecked.defaultof static member Empty = - VkImportSemaphoreFdInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkImageViewAddressPropertiesNVX(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "semaphore = %A" x.semaphore - sprintf "flags = %A" x.flags - sprintf "handleType = %A" x.handleType - sprintf "fd = %A" x.fd - ] |> sprintf "VkImportSemaphoreFdInfoKHR { %s }" + sprintf "deviceAddress = %A" x.deviceAddress + sprintf "size = %A" x.size + ] |> sprintf "VkImageViewAddressPropertiesNVX { %s }" end [] - type VkSemaphoreGetFdInfoKHR = + type VkImageViewHandleInfoNVX = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public semaphore : VkSemaphore - val mutable public handleType : VkExternalSemaphoreHandleTypeFlags + val mutable public imageView : VkImageView + val mutable public descriptorType : VkDescriptorType + val mutable public sampler : VkSampler - new(pNext : nativeint, semaphore : VkSemaphore, handleType : VkExternalSemaphoreHandleTypeFlags) = + new(pNext : nativeint, imageView : VkImageView, descriptorType : VkDescriptorType, sampler : VkSampler) = { - sType = 1000079001u + sType = 1000030000u pNext = pNext - semaphore = semaphore - handleType = handleType + imageView = imageView + descriptorType = descriptorType + sampler = sampler } - new(semaphore : VkSemaphore, handleType : VkExternalSemaphoreHandleTypeFlags) = - VkSemaphoreGetFdInfoKHR(Unchecked.defaultof, semaphore, handleType) + new(imageView : VkImageView, descriptorType : VkDescriptorType, sampler : VkSampler) = + VkImageViewHandleInfoNVX(Unchecked.defaultof, imageView, descriptorType, sampler) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.semaphore = Unchecked.defaultof && x.handleType = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.imageView = Unchecked.defaultof && x.descriptorType = Unchecked.defaultof && x.sampler = Unchecked.defaultof static member Empty = - VkSemaphoreGetFdInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkImageViewHandleInfoNVX(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "semaphore = %A" x.semaphore - sprintf "handleType = %A" x.handleType - ] |> sprintf "VkSemaphoreGetFdInfoKHR { %s }" + sprintf "imageView = %A" x.imageView + sprintf "descriptorType = %A" x.descriptorType + sprintf "sampler = %A" x.sampler + ] |> sprintf "VkImageViewHandleInfoNVX { %s }" end module VkRaw = [] - type VkImportSemaphoreFdKHRDel = delegate of VkDevice * nativeptr -> VkResult + type VkGetImageViewHandleNVXDel = delegate of VkDevice * nativeptr -> uint32 [] - type VkGetSemaphoreFdKHRDel = delegate of VkDevice * nativeptr * nativeptr -> VkResult + type VkGetImageViewAddressNVXDel = delegate of VkDevice * VkImageView * nativeptr -> VkResult [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRExternalSemaphoreFd") - static let s_vkImportSemaphoreFdKHRDel = VkRaw.vkImportInstanceDelegate "vkImportSemaphoreFdKHR" - static let s_vkGetSemaphoreFdKHRDel = VkRaw.vkImportInstanceDelegate "vkGetSemaphoreFdKHR" + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading NVXImageViewHandle") + static let s_vkGetImageViewHandleNVXDel = VkRaw.vkImportInstanceDelegate "vkGetImageViewHandleNVX" + static let s_vkGetImageViewAddressNVXDel = VkRaw.vkImportInstanceDelegate "vkGetImageViewAddressNVX" static do Report.End(3) |> ignore - static member vkImportSemaphoreFdKHR = s_vkImportSemaphoreFdKHRDel - static member vkGetSemaphoreFdKHR = s_vkGetSemaphoreFdKHRDel - let vkImportSemaphoreFdKHR(device : VkDevice, pImportSemaphoreFdInfo : nativeptr) = Loader.vkImportSemaphoreFdKHR.Invoke(device, pImportSemaphoreFdInfo) - let vkGetSemaphoreFdKHR(device : VkDevice, pGetFdInfo : nativeptr, pFd : nativeptr) = Loader.vkGetSemaphoreFdKHR.Invoke(device, pGetFdInfo, pFd) - -module KHRExternalSemaphoreWin32 = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRExternalSemaphore - open KHRExternalSemaphoreCapabilities - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_KHR_external_semaphore_win32" - let Number = 79 - - let Required = [ KHRExternalSemaphore.Name ] + static member vkGetImageViewHandleNVX = s_vkGetImageViewHandleNVXDel + static member vkGetImageViewAddressNVX = s_vkGetImageViewAddressNVXDel + let vkGetImageViewHandleNVX(device : VkDevice, pInfo : nativeptr) = Loader.vkGetImageViewHandleNVX.Invoke(device, pInfo) + let vkGetImageViewAddressNVX(device : VkDevice, imageView : VkImageView, pProperties : nativeptr) = Loader.vkGetImageViewAddressNVX.Invoke(device, imageView, pProperties) +/// Requires KHRDisplay. +module EXTDirectModeDisplay = + let Type = ExtensionType.Instance + let Name = "VK_EXT_direct_mode_display" + let Number = 89 - [] - type VkD3D12FenceSubmitInfoKHR = - struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public waitSemaphoreValuesCount : uint32 - val mutable public pWaitSemaphoreValues : nativeptr - val mutable public signalSemaphoreValuesCount : uint32 - val mutable public pSignalSemaphoreValues : nativeptr + module VkRaw = + [] + type VkReleaseDisplayEXTDel = delegate of VkPhysicalDevice * KHRDisplay.VkDisplayKHR -> VkResult - new(pNext : nativeint, waitSemaphoreValuesCount : uint32, pWaitSemaphoreValues : nativeptr, signalSemaphoreValuesCount : uint32, pSignalSemaphoreValues : nativeptr) = - { - sType = 1000078002u - pNext = pNext - waitSemaphoreValuesCount = waitSemaphoreValuesCount - pWaitSemaphoreValues = pWaitSemaphoreValues - signalSemaphoreValuesCount = signalSemaphoreValuesCount - pSignalSemaphoreValues = pSignalSemaphoreValues - } + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTDirectModeDisplay") + static let s_vkReleaseDisplayEXTDel = VkRaw.vkImportInstanceDelegate "vkReleaseDisplayEXT" + static do Report.End(3) |> ignore + static member vkReleaseDisplayEXT = s_vkReleaseDisplayEXTDel + let vkReleaseDisplayEXT(physicalDevice : VkPhysicalDevice, display : KHRDisplay.VkDisplayKHR) = Loader.vkReleaseDisplayEXT.Invoke(physicalDevice, display) - new(waitSemaphoreValuesCount : uint32, pWaitSemaphoreValues : nativeptr, signalSemaphoreValuesCount : uint32, pSignalSemaphoreValues : nativeptr) = - VkD3D12FenceSubmitInfoKHR(Unchecked.defaultof, waitSemaphoreValuesCount, pWaitSemaphoreValues, signalSemaphoreValuesCount, pSignalSemaphoreValues) +/// Requires EXTDirectModeDisplay. +module NVAcquireWinrtDisplay = + let Type = ExtensionType.Device + let Name = "VK_NV_acquire_winrt_display" + let Number = 346 - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.waitSemaphoreValuesCount = Unchecked.defaultof && x.pWaitSemaphoreValues = Unchecked.defaultof> && x.signalSemaphoreValuesCount = Unchecked.defaultof && x.pSignalSemaphoreValues = Unchecked.defaultof> + module VkRaw = + [] + type VkAcquireWinrtDisplayNVDel = delegate of VkPhysicalDevice * KHRDisplay.VkDisplayKHR -> VkResult + [] + type VkGetWinrtDisplayNVDel = delegate of VkPhysicalDevice * uint32 * nativeptr -> VkResult - static member Empty = - VkD3D12FenceSubmitInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>) + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading NVAcquireWinrtDisplay") + static let s_vkAcquireWinrtDisplayNVDel = VkRaw.vkImportInstanceDelegate "vkAcquireWinrtDisplayNV" + static let s_vkGetWinrtDisplayNVDel = VkRaw.vkImportInstanceDelegate "vkGetWinrtDisplayNV" + static do Report.End(3) |> ignore + static member vkAcquireWinrtDisplayNV = s_vkAcquireWinrtDisplayNVDel + static member vkGetWinrtDisplayNV = s_vkGetWinrtDisplayNVDel + let vkAcquireWinrtDisplayNV(physicalDevice : VkPhysicalDevice, display : KHRDisplay.VkDisplayKHR) = Loader.vkAcquireWinrtDisplayNV.Invoke(physicalDevice, display) + let vkGetWinrtDisplayNV(physicalDevice : VkPhysicalDevice, deviceRelativeId : uint32, pDisplay : nativeptr) = Loader.vkGetWinrtDisplayNV.Invoke(physicalDevice, deviceRelativeId, pDisplay) - override x.ToString() = - String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "waitSemaphoreValuesCount = %A" x.waitSemaphoreValuesCount - sprintf "pWaitSemaphoreValues = %A" x.pWaitSemaphoreValues - sprintf "signalSemaphoreValuesCount = %A" x.signalSemaphoreValuesCount - sprintf "pSignalSemaphoreValues = %A" x.pSignalSemaphoreValues - ] |> sprintf "VkD3D12FenceSubmitInfoKHR { %s }" - end +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module NVComputeShaderDerivatives = + let Type = ExtensionType.Device + let Name = "VK_NV_compute_shader_derivatives" + let Number = 202 [] - type VkExportSemaphoreWin32HandleInfoKHR = + type VkPhysicalDeviceComputeShaderDerivativesFeaturesNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public pAttributes : nativeptr - val mutable public dwAccess : uint32 - val mutable public name : cstr + val mutable public computeDerivativeGroupQuads : VkBool32 + val mutable public computeDerivativeGroupLinear : VkBool32 - new(pNext : nativeint, pAttributes : nativeptr, dwAccess : uint32, name : cstr) = + new(pNext : nativeint, computeDerivativeGroupQuads : VkBool32, computeDerivativeGroupLinear : VkBool32) = { - sType = 1000078001u + sType = 1000201000u pNext = pNext - pAttributes = pAttributes - dwAccess = dwAccess - name = name + computeDerivativeGroupQuads = computeDerivativeGroupQuads + computeDerivativeGroupLinear = computeDerivativeGroupLinear } - new(pAttributes : nativeptr, dwAccess : uint32, name : cstr) = - VkExportSemaphoreWin32HandleInfoKHR(Unchecked.defaultof, pAttributes, dwAccess, name) + new(computeDerivativeGroupQuads : VkBool32, computeDerivativeGroupLinear : VkBool32) = + VkPhysicalDeviceComputeShaderDerivativesFeaturesNV(Unchecked.defaultof, computeDerivativeGroupQuads, computeDerivativeGroupLinear) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.pAttributes = Unchecked.defaultof> && x.dwAccess = Unchecked.defaultof && x.name = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.computeDerivativeGroupQuads = Unchecked.defaultof && x.computeDerivativeGroupLinear = Unchecked.defaultof static member Empty = - VkExportSemaphoreWin32HandleInfoKHR(Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceComputeShaderDerivativesFeaturesNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "pAttributes = %A" x.pAttributes - sprintf "dwAccess = %A" x.dwAccess - sprintf "name = %A" x.name - ] |> sprintf "VkExportSemaphoreWin32HandleInfoKHR { %s }" + sprintf "computeDerivativeGroupQuads = %A" x.computeDerivativeGroupQuads + sprintf "computeDerivativeGroupLinear = %A" x.computeDerivativeGroupLinear + ] |> sprintf "VkPhysicalDeviceComputeShaderDerivativesFeaturesNV { %s }" end - [] - type VkImportSemaphoreWin32HandleInfoKHR = - struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public semaphore : VkSemaphore - val mutable public flags : VkSemaphoreImportFlags - val mutable public handleType : VkExternalSemaphoreHandleTypeFlags - val mutable public handle : nativeint - val mutable public name : cstr - - new(pNext : nativeint, semaphore : VkSemaphore, flags : VkSemaphoreImportFlags, handleType : VkExternalSemaphoreHandleTypeFlags, handle : nativeint, name : cstr) = - { - sType = 1000078000u - pNext = pNext - semaphore = semaphore - flags = flags - handleType = handleType - handle = handle - name = name - } - - new(semaphore : VkSemaphore, flags : VkSemaphoreImportFlags, handleType : VkExternalSemaphoreHandleTypeFlags, handle : nativeint, name : cstr) = - VkImportSemaphoreWin32HandleInfoKHR(Unchecked.defaultof, semaphore, flags, handleType, handle, name) - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.semaphore = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.handleType = Unchecked.defaultof && x.handle = Unchecked.defaultof && x.name = Unchecked.defaultof - static member Empty = - VkImportSemaphoreWin32HandleInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module NVCooperativeMatrix = + let Type = ExtensionType.Device + let Name = "VK_NV_cooperative_matrix" + let Number = 250 - override x.ToString() = - String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "semaphore = %A" x.semaphore - sprintf "flags = %A" x.flags - sprintf "handleType = %A" x.handleType - sprintf "handle = %A" x.handle - sprintf "name = %A" x.name - ] |> sprintf "VkImportSemaphoreWin32HandleInfoKHR { %s }" - end + type VkScopeNV = KHRCooperativeMatrix.VkScopeKHR + type VkComponentTypeNV = KHRCooperativeMatrix.VkComponentTypeKHR [] - type VkSemaphoreGetWin32HandleInfoKHR = + type VkCooperativeMatrixPropertiesNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public semaphore : VkSemaphore - val mutable public handleType : VkExternalSemaphoreHandleTypeFlags + val mutable public MSize : uint32 + val mutable public NSize : uint32 + val mutable public KSize : uint32 + val mutable public AType : VkComponentTypeNV + val mutable public BType : VkComponentTypeNV + val mutable public CType : VkComponentTypeNV + val mutable public DType : VkComponentTypeNV + val mutable public scope : VkScopeNV - new(pNext : nativeint, semaphore : VkSemaphore, handleType : VkExternalSemaphoreHandleTypeFlags) = + new(pNext : nativeint, MSize : uint32, NSize : uint32, KSize : uint32, AType : VkComponentTypeNV, BType : VkComponentTypeNV, CType : VkComponentTypeNV, DType : VkComponentTypeNV, scope : VkScopeNV) = { - sType = 1000078003u + sType = 1000249001u pNext = pNext - semaphore = semaphore - handleType = handleType + MSize = MSize + NSize = NSize + KSize = KSize + AType = AType + BType = BType + CType = CType + DType = DType + scope = scope } - new(semaphore : VkSemaphore, handleType : VkExternalSemaphoreHandleTypeFlags) = - VkSemaphoreGetWin32HandleInfoKHR(Unchecked.defaultof, semaphore, handleType) + new(MSize : uint32, NSize : uint32, KSize : uint32, AType : VkComponentTypeNV, BType : VkComponentTypeNV, CType : VkComponentTypeNV, DType : VkComponentTypeNV, scope : VkScopeNV) = + VkCooperativeMatrixPropertiesNV(Unchecked.defaultof, MSize, NSize, KSize, AType, BType, CType, DType, scope) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.semaphore = Unchecked.defaultof && x.handleType = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.MSize = Unchecked.defaultof && x.NSize = Unchecked.defaultof && x.KSize = Unchecked.defaultof && x.AType = Unchecked.defaultof && x.BType = Unchecked.defaultof && x.CType = Unchecked.defaultof && x.DType = Unchecked.defaultof && x.scope = Unchecked.defaultof static member Empty = - VkSemaphoreGetWin32HandleInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkCooperativeMatrixPropertiesNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "semaphore = %A" x.semaphore - sprintf "handleType = %A" x.handleType - ] |> sprintf "VkSemaphoreGetWin32HandleInfoKHR { %s }" - end - - - module VkRaw = - [] - type VkImportSemaphoreWin32HandleKHRDel = delegate of VkDevice * nativeptr -> VkResult - [] - type VkGetSemaphoreWin32HandleKHRDel = delegate of VkDevice * nativeptr * nativeptr -> VkResult - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRExternalSemaphoreWin32") - static let s_vkImportSemaphoreWin32HandleKHRDel = VkRaw.vkImportInstanceDelegate "vkImportSemaphoreWin32HandleKHR" - static let s_vkGetSemaphoreWin32HandleKHRDel = VkRaw.vkImportInstanceDelegate "vkGetSemaphoreWin32HandleKHR" - static do Report.End(3) |> ignore - static member vkImportSemaphoreWin32HandleKHR = s_vkImportSemaphoreWin32HandleKHRDel - static member vkGetSemaphoreWin32HandleKHR = s_vkGetSemaphoreWin32HandleKHRDel - let vkImportSemaphoreWin32HandleKHR(device : VkDevice, pImportSemaphoreWin32HandleInfo : nativeptr) = Loader.vkImportSemaphoreWin32HandleKHR.Invoke(device, pImportSemaphoreWin32HandleInfo) - let vkGetSemaphoreWin32HandleKHR(device : VkDevice, pGetWin32HandleInfo : nativeptr, pHandle : nativeptr) = Loader.vkGetSemaphoreWin32HandleKHR.Invoke(device, pGetWin32HandleInfo, pHandle) - -module KHRFragmentShaderBarycentric = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_KHR_fragment_shader_barycentric" - let Number = 323 - - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] - + sprintf "MSize = %A" x.MSize + sprintf "NSize = %A" x.NSize + sprintf "KSize = %A" x.KSize + sprintf "AType = %A" x.AType + sprintf "BType = %A" x.BType + sprintf "CType = %A" x.CType + sprintf "DType = %A" x.DType + sprintf "scope = %A" x.scope + ] |> sprintf "VkCooperativeMatrixPropertiesNV { %s }" + end [] - type VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR = + type VkPhysicalDeviceCooperativeMatrixFeaturesNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public fragmentShaderBarycentric : VkBool32 + val mutable public cooperativeMatrix : VkBool32 + val mutable public cooperativeMatrixRobustBufferAccess : VkBool32 - new(pNext : nativeint, fragmentShaderBarycentric : VkBool32) = + new(pNext : nativeint, cooperativeMatrix : VkBool32, cooperativeMatrixRobustBufferAccess : VkBool32) = { - sType = 1000203000u + sType = 1000249000u pNext = pNext - fragmentShaderBarycentric = fragmentShaderBarycentric + cooperativeMatrix = cooperativeMatrix + cooperativeMatrixRobustBufferAccess = cooperativeMatrixRobustBufferAccess } - new(fragmentShaderBarycentric : VkBool32) = - VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR(Unchecked.defaultof, fragmentShaderBarycentric) + new(cooperativeMatrix : VkBool32, cooperativeMatrixRobustBufferAccess : VkBool32) = + VkPhysicalDeviceCooperativeMatrixFeaturesNV(Unchecked.defaultof, cooperativeMatrix, cooperativeMatrixRobustBufferAccess) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.fragmentShaderBarycentric = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.cooperativeMatrix = Unchecked.defaultof && x.cooperativeMatrixRobustBufferAccess = Unchecked.defaultof static member Empty = - VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceCooperativeMatrixFeaturesNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "fragmentShaderBarycentric = %A" x.fragmentShaderBarycentric - ] |> sprintf "VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR { %s }" + sprintf "cooperativeMatrix = %A" x.cooperativeMatrix + sprintf "cooperativeMatrixRobustBufferAccess = %A" x.cooperativeMatrixRobustBufferAccess + ] |> sprintf "VkPhysicalDeviceCooperativeMatrixFeaturesNV { %s }" end [] - type VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR = + type VkPhysicalDeviceCooperativeMatrixPropertiesNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public triStripVertexOrderIndependentOfProvokingVertex : VkBool32 + val mutable public cooperativeMatrixSupportedStages : VkShaderStageFlags - new(pNext : nativeint, triStripVertexOrderIndependentOfProvokingVertex : VkBool32) = + new(pNext : nativeint, cooperativeMatrixSupportedStages : VkShaderStageFlags) = { - sType = 1000322000u + sType = 1000249002u pNext = pNext - triStripVertexOrderIndependentOfProvokingVertex = triStripVertexOrderIndependentOfProvokingVertex + cooperativeMatrixSupportedStages = cooperativeMatrixSupportedStages } - new(triStripVertexOrderIndependentOfProvokingVertex : VkBool32) = - VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR(Unchecked.defaultof, triStripVertexOrderIndependentOfProvokingVertex) + new(cooperativeMatrixSupportedStages : VkShaderStageFlags) = + VkPhysicalDeviceCooperativeMatrixPropertiesNV(Unchecked.defaultof, cooperativeMatrixSupportedStages) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.triStripVertexOrderIndependentOfProvokingVertex = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.cooperativeMatrixSupportedStages = Unchecked.defaultof static member Empty = - VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceCooperativeMatrixPropertiesNV(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "triStripVertexOrderIndependentOfProvokingVertex = %A" x.triStripVertexOrderIndependentOfProvokingVertex - ] |> sprintf "VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR { %s }" + sprintf "cooperativeMatrixSupportedStages = %A" x.cooperativeMatrixSupportedStages + ] |> sprintf "VkPhysicalDeviceCooperativeMatrixPropertiesNV { %s }" end + [] + module EnumExtensions = + type KHRCooperativeMatrix.VkComponentTypeKHR with + static member inline Float16Nv = unbox 0 + static member inline Float32Nv = unbox 1 + static member inline Float64Nv = unbox 2 + static member inline Sint8Nv = unbox 3 + static member inline Sint16Nv = unbox 4 + static member inline Sint32Nv = unbox 5 + static member inline Sint64Nv = unbox 6 + static member inline Uint8Nv = unbox 7 + static member inline Uint16Nv = unbox 8 + static member inline Uint32Nv = unbox 9 + static member inline Uint64Nv = unbox 10 + type KHRCooperativeMatrix.VkScopeKHR with + static member inline DeviceNv = unbox 1 + static member inline WorkgroupNv = unbox 2 + static member inline SubgroupNv = unbox 3 + static member inline QueueFamilyNv = unbox 5 -module KHRGetDisplayProperties2 = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRDisplay - open KHRSurface - let Name = "VK_KHR_get_display_properties2" - let Number = 122 + module VkRaw = + [] + type VkGetPhysicalDeviceCooperativeMatrixPropertiesNVDel = delegate of VkPhysicalDevice * nativeptr * nativeptr -> VkResult - let Required = [ KHRDisplay.Name ] + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading NVCooperativeMatrix") + static let s_vkGetPhysicalDeviceCooperativeMatrixPropertiesNVDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV" + static do Report.End(3) |> ignore + static member vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = s_vkGetPhysicalDeviceCooperativeMatrixPropertiesNVDel + let vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice : VkPhysicalDevice, pPropertyCount : nativeptr, pProperties : nativeptr) = Loader.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV.Invoke(physicalDevice, pPropertyCount, pProperties) +/// Requires ((KHRGetPhysicalDeviceProperties2 | Vulkan11), KHRBufferDeviceAddress) | Vulkan12. +module NVCopyMemoryIndirect = + let Type = ExtensionType.Device + let Name = "VK_NV_copy_memory_indirect" + let Number = 427 [] - type VkDisplayModeProperties2KHR = + type VkCopyMemoryIndirectCommandNV = struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public displayModeProperties : VkDisplayModePropertiesKHR + val mutable public srcAddress : VkDeviceAddress + val mutable public dstAddress : VkDeviceAddress + val mutable public size : VkDeviceSize - new(pNext : nativeint, displayModeProperties : VkDisplayModePropertiesKHR) = + new(srcAddress : VkDeviceAddress, dstAddress : VkDeviceAddress, size : VkDeviceSize) = { - sType = 1000121002u - pNext = pNext - displayModeProperties = displayModeProperties + srcAddress = srcAddress + dstAddress = dstAddress + size = size } - new(displayModeProperties : VkDisplayModePropertiesKHR) = - VkDisplayModeProperties2KHR(Unchecked.defaultof, displayModeProperties) - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.displayModeProperties = Unchecked.defaultof + x.srcAddress = Unchecked.defaultof && x.dstAddress = Unchecked.defaultof && x.size = Unchecked.defaultof static member Empty = - VkDisplayModeProperties2KHR(Unchecked.defaultof, Unchecked.defaultof) + VkCopyMemoryIndirectCommandNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "displayModeProperties = %A" x.displayModeProperties - ] |> sprintf "VkDisplayModeProperties2KHR { %s }" + sprintf "srcAddress = %A" x.srcAddress + sprintf "dstAddress = %A" x.dstAddress + sprintf "size = %A" x.size + ] |> sprintf "VkCopyMemoryIndirectCommandNV { %s }" end [] - type VkDisplayPlaneCapabilities2KHR = + type VkCopyMemoryToImageIndirectCommandNV = struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public capabilities : VkDisplayPlaneCapabilitiesKHR + val mutable public srcAddress : VkDeviceAddress + val mutable public bufferRowLength : uint32 + val mutable public bufferImageHeight : uint32 + val mutable public imageSubresource : VkImageSubresourceLayers + val mutable public imageOffset : VkOffset3D + val mutable public imageExtent : VkExtent3D - new(pNext : nativeint, capabilities : VkDisplayPlaneCapabilitiesKHR) = + new(srcAddress : VkDeviceAddress, bufferRowLength : uint32, bufferImageHeight : uint32, imageSubresource : VkImageSubresourceLayers, imageOffset : VkOffset3D, imageExtent : VkExtent3D) = { - sType = 1000121004u - pNext = pNext - capabilities = capabilities + srcAddress = srcAddress + bufferRowLength = bufferRowLength + bufferImageHeight = bufferImageHeight + imageSubresource = imageSubresource + imageOffset = imageOffset + imageExtent = imageExtent } - new(capabilities : VkDisplayPlaneCapabilitiesKHR) = - VkDisplayPlaneCapabilities2KHR(Unchecked.defaultof, capabilities) - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.capabilities = Unchecked.defaultof + x.srcAddress = Unchecked.defaultof && x.bufferRowLength = Unchecked.defaultof && x.bufferImageHeight = Unchecked.defaultof && x.imageSubresource = Unchecked.defaultof && x.imageOffset = Unchecked.defaultof && x.imageExtent = Unchecked.defaultof static member Empty = - VkDisplayPlaneCapabilities2KHR(Unchecked.defaultof, Unchecked.defaultof) + VkCopyMemoryToImageIndirectCommandNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "capabilities = %A" x.capabilities - ] |> sprintf "VkDisplayPlaneCapabilities2KHR { %s }" + sprintf "srcAddress = %A" x.srcAddress + sprintf "bufferRowLength = %A" x.bufferRowLength + sprintf "bufferImageHeight = %A" x.bufferImageHeight + sprintf "imageSubresource = %A" x.imageSubresource + sprintf "imageOffset = %A" x.imageOffset + sprintf "imageExtent = %A" x.imageExtent + ] |> sprintf "VkCopyMemoryToImageIndirectCommandNV { %s }" end [] - type VkDisplayPlaneInfo2KHR = + type VkPhysicalDeviceCopyMemoryIndirectFeaturesNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public mode : VkDisplayModeKHR - val mutable public planeIndex : uint32 + val mutable public indirectCopy : VkBool32 - new(pNext : nativeint, mode : VkDisplayModeKHR, planeIndex : uint32) = + new(pNext : nativeint, indirectCopy : VkBool32) = { - sType = 1000121003u + sType = 1000426000u pNext = pNext - mode = mode - planeIndex = planeIndex + indirectCopy = indirectCopy } - new(mode : VkDisplayModeKHR, planeIndex : uint32) = - VkDisplayPlaneInfo2KHR(Unchecked.defaultof, mode, planeIndex) + new(indirectCopy : VkBool32) = + VkPhysicalDeviceCopyMemoryIndirectFeaturesNV(Unchecked.defaultof, indirectCopy) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.mode = Unchecked.defaultof && x.planeIndex = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.indirectCopy = Unchecked.defaultof static member Empty = - VkDisplayPlaneInfo2KHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceCopyMemoryIndirectFeaturesNV(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "mode = %A" x.mode - sprintf "planeIndex = %A" x.planeIndex - ] |> sprintf "VkDisplayPlaneInfo2KHR { %s }" + sprintf "indirectCopy = %A" x.indirectCopy + ] |> sprintf "VkPhysicalDeviceCopyMemoryIndirectFeaturesNV { %s }" end [] - type VkDisplayPlaneProperties2KHR = + type VkPhysicalDeviceCopyMemoryIndirectPropertiesNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public displayPlaneProperties : VkDisplayPlanePropertiesKHR + val mutable public supportedQueues : VkQueueFlags - new(pNext : nativeint, displayPlaneProperties : VkDisplayPlanePropertiesKHR) = + new(pNext : nativeint, supportedQueues : VkQueueFlags) = { - sType = 1000121001u + sType = 1000426001u pNext = pNext - displayPlaneProperties = displayPlaneProperties + supportedQueues = supportedQueues } - new(displayPlaneProperties : VkDisplayPlanePropertiesKHR) = - VkDisplayPlaneProperties2KHR(Unchecked.defaultof, displayPlaneProperties) + new(supportedQueues : VkQueueFlags) = + VkPhysicalDeviceCopyMemoryIndirectPropertiesNV(Unchecked.defaultof, supportedQueues) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.displayPlaneProperties = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.supportedQueues = Unchecked.defaultof static member Empty = - VkDisplayPlaneProperties2KHR(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceCopyMemoryIndirectPropertiesNV(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "displayPlaneProperties = %A" x.displayPlaneProperties - ] |> sprintf "VkDisplayPlaneProperties2KHR { %s }" + sprintf "supportedQueues = %A" x.supportedQueues + ] |> sprintf "VkPhysicalDeviceCopyMemoryIndirectPropertiesNV { %s }" end + + module VkRaw = + [] + type VkCmdCopyMemoryIndirectNVDel = delegate of VkCommandBuffer * VkDeviceAddress * uint32 * uint32 -> unit + [] + type VkCmdCopyMemoryToImageIndirectNVDel = delegate of VkCommandBuffer * VkDeviceAddress * uint32 * uint32 * VkImage * VkImageLayout * nativeptr -> unit + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading NVCopyMemoryIndirect") + static let s_vkCmdCopyMemoryIndirectNVDel = VkRaw.vkImportInstanceDelegate "vkCmdCopyMemoryIndirectNV" + static let s_vkCmdCopyMemoryToImageIndirectNVDel = VkRaw.vkImportInstanceDelegate "vkCmdCopyMemoryToImageIndirectNV" + static do Report.End(3) |> ignore + static member vkCmdCopyMemoryIndirectNV = s_vkCmdCopyMemoryIndirectNVDel + static member vkCmdCopyMemoryToImageIndirectNV = s_vkCmdCopyMemoryToImageIndirectNVDel + let vkCmdCopyMemoryIndirectNV(commandBuffer : VkCommandBuffer, copyBufferAddress : VkDeviceAddress, copyCount : uint32, stride : uint32) = Loader.vkCmdCopyMemoryIndirectNV.Invoke(commandBuffer, copyBufferAddress, copyCount, stride) + let vkCmdCopyMemoryToImageIndirectNV(commandBuffer : VkCommandBuffer, copyBufferAddress : VkDeviceAddress, copyCount : uint32, stride : uint32, dstImage : VkImage, dstImageLayout : VkImageLayout, pImageSubresources : nativeptr) = Loader.vkCmdCopyMemoryToImageIndirectNV.Invoke(commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources) + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module NVCornerSampledImage = + let Type = ExtensionType.Device + let Name = "VK_NV_corner_sampled_image" + let Number = 51 + [] - type VkDisplayProperties2KHR = + type VkPhysicalDeviceCornerSampledImageFeaturesNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public displayProperties : VkDisplayPropertiesKHR + val mutable public cornerSampledImage : VkBool32 - new(pNext : nativeint, displayProperties : VkDisplayPropertiesKHR) = + new(pNext : nativeint, cornerSampledImage : VkBool32) = { - sType = 1000121000u + sType = 1000050000u pNext = pNext - displayProperties = displayProperties + cornerSampledImage = cornerSampledImage } - new(displayProperties : VkDisplayPropertiesKHR) = - VkDisplayProperties2KHR(Unchecked.defaultof, displayProperties) + new(cornerSampledImage : VkBool32) = + VkPhysicalDeviceCornerSampledImageFeaturesNV(Unchecked.defaultof, cornerSampledImage) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.displayProperties = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.cornerSampledImage = Unchecked.defaultof static member Empty = - VkDisplayProperties2KHR(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceCornerSampledImageFeaturesNV(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "displayProperties = %A" x.displayProperties - ] |> sprintf "VkDisplayProperties2KHR { %s }" + sprintf "cornerSampledImage = %A" x.cornerSampledImage + ] |> sprintf "VkPhysicalDeviceCornerSampledImageFeaturesNV { %s }" end - module VkRaw = - [] - type VkGetPhysicalDeviceDisplayProperties2KHRDel = delegate of VkPhysicalDevice * nativeptr * nativeptr -> VkResult - [] - type VkGetPhysicalDeviceDisplayPlaneProperties2KHRDel = delegate of VkPhysicalDevice * nativeptr * nativeptr -> VkResult - [] - type VkGetDisplayModeProperties2KHRDel = delegate of VkPhysicalDevice * VkDisplayKHR * nativeptr * nativeptr -> VkResult - [] - type VkGetDisplayPlaneCapabilities2KHRDel = delegate of VkPhysicalDevice * nativeptr * nativeptr -> VkResult - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRGetDisplayProperties2") - static let s_vkGetPhysicalDeviceDisplayProperties2KHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceDisplayProperties2KHR" - static let s_vkGetPhysicalDeviceDisplayPlaneProperties2KHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceDisplayPlaneProperties2KHR" - static let s_vkGetDisplayModeProperties2KHRDel = VkRaw.vkImportInstanceDelegate "vkGetDisplayModeProperties2KHR" - static let s_vkGetDisplayPlaneCapabilities2KHRDel = VkRaw.vkImportInstanceDelegate "vkGetDisplayPlaneCapabilities2KHR" - static do Report.End(3) |> ignore - static member vkGetPhysicalDeviceDisplayProperties2KHR = s_vkGetPhysicalDeviceDisplayProperties2KHRDel - static member vkGetPhysicalDeviceDisplayPlaneProperties2KHR = s_vkGetPhysicalDeviceDisplayPlaneProperties2KHRDel - static member vkGetDisplayModeProperties2KHR = s_vkGetDisplayModeProperties2KHRDel - static member vkGetDisplayPlaneCapabilities2KHR = s_vkGetDisplayPlaneCapabilities2KHRDel - let vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice : VkPhysicalDevice, pPropertyCount : nativeptr, pProperties : nativeptr) = Loader.vkGetPhysicalDeviceDisplayProperties2KHR.Invoke(physicalDevice, pPropertyCount, pProperties) - let vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice : VkPhysicalDevice, pPropertyCount : nativeptr, pProperties : nativeptr) = Loader.vkGetPhysicalDeviceDisplayPlaneProperties2KHR.Invoke(physicalDevice, pPropertyCount, pProperties) - let vkGetDisplayModeProperties2KHR(physicalDevice : VkPhysicalDevice, display : VkDisplayKHR, pPropertyCount : nativeptr, pProperties : nativeptr) = Loader.vkGetDisplayModeProperties2KHR.Invoke(physicalDevice, display, pPropertyCount, pProperties) - let vkGetDisplayPlaneCapabilities2KHR(physicalDevice : VkPhysicalDevice, pDisplayPlaneInfo : nativeptr, pCapabilities : nativeptr) = Loader.vkGetDisplayPlaneCapabilities2KHR.Invoke(physicalDevice, pDisplayPlaneInfo, pCapabilities) - -module KHRGlobalPriority = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_KHR_global_priority" - let Number = 189 + [] + module EnumExtensions = + type VkImageCreateFlags with + static member inline CornerSampledBitNv = unbox 0x00002000 - type VkQueueGlobalPriorityKHR = - | Low = 128 - | Medium = 256 - | High = 512 - | Realtime = 1024 +module NVCudaKernelLaunch = + let Type = ExtensionType.Device + let Name = "VK_NV_cuda_kernel_launch" + let Number = 308 - [] - type VkQueueGlobalPriorityKHR_16 = + [] + type VkCudaModuleNV = struct - [] - val mutable public First : VkQueueGlobalPriorityKHR - - member x.Item - with get (i : int) : VkQueueGlobalPriorityKHR = - if i < 0 || i > 15 then raise <| IndexOutOfRangeException() - let ptr = &&x |> NativePtr.toNativeInt |> NativePtr.ofNativeInt - NativePtr.get ptr i - and set (i : int) (value : VkQueueGlobalPriorityKHR) = - if i < 0 || i > 15 then raise <| IndexOutOfRangeException() - let ptr = &&x |> NativePtr.toNativeInt |> NativePtr.ofNativeInt - NativePtr.set ptr i value - - member x.Length = 16 + val mutable public Handle : uint64 + new(h) = { Handle = h } + static member Null = VkCudaModuleNV(0UL) + member x.IsNull = x.Handle = 0UL + member x.IsValid = x.Handle <> 0UL + end - interface System.Collections.IEnumerable with - member x.GetEnumerator() = let x = x in (Seq.init 16 (fun i -> x.[i])).GetEnumerator() :> System.Collections.IEnumerator - interface System.Collections.Generic.IEnumerable with - member x.GetEnumerator() = let x = x in (Seq.init 16 (fun i -> x.[i])).GetEnumerator() + [] + type VkCudaFunctionNV = + struct + val mutable public Handle : uint64 + new(h) = { Handle = h } + static member Null = VkCudaFunctionNV(0UL) + member x.IsNull = x.Handle = 0UL + member x.IsValid = x.Handle <> 0UL end [] - type VkDeviceQueueGlobalPriorityCreateInfoKHR = + type VkCudaFunctionCreateInfoNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public globalPriority : VkQueueGlobalPriorityKHR + val mutable public _module : VkCudaModuleNV + val mutable public pName : cstr - new(pNext : nativeint, globalPriority : VkQueueGlobalPriorityKHR) = + new(pNext : nativeint, _module : VkCudaModuleNV, pName : cstr) = { - sType = 1000174000u + sType = 1000307001u pNext = pNext - globalPriority = globalPriority + _module = _module + pName = pName } - new(globalPriority : VkQueueGlobalPriorityKHR) = - VkDeviceQueueGlobalPriorityCreateInfoKHR(Unchecked.defaultof, globalPriority) + new(_module : VkCudaModuleNV, pName : cstr) = + VkCudaFunctionCreateInfoNV(Unchecked.defaultof, _module, pName) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.globalPriority = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x._module = Unchecked.defaultof && x.pName = Unchecked.defaultof static member Empty = - VkDeviceQueueGlobalPriorityCreateInfoKHR(Unchecked.defaultof, Unchecked.defaultof) + VkCudaFunctionCreateInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "globalPriority = %A" x.globalPriority - ] |> sprintf "VkDeviceQueueGlobalPriorityCreateInfoKHR { %s }" + sprintf "_module = %A" x._module + sprintf "pName = %A" x.pName + ] |> sprintf "VkCudaFunctionCreateInfoNV { %s }" end [] - type VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR = + type VkCudaLaunchInfoNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public globalPriorityQuery : VkBool32 + val mutable public _function : VkCudaFunctionNV + val mutable public gridDimX : uint32 + val mutable public gridDimY : uint32 + val mutable public gridDimZ : uint32 + val mutable public blockDimX : uint32 + val mutable public blockDimY : uint32 + val mutable public blockDimZ : uint32 + val mutable public sharedMemBytes : uint32 + val mutable public paramCount : uint64 + val mutable public pParams : nativeptr + val mutable public extraCount : uint64 + val mutable public pExtras : nativeptr - new(pNext : nativeint, globalPriorityQuery : VkBool32) = + new(pNext : nativeint, _function : VkCudaFunctionNV, gridDimX : uint32, gridDimY : uint32, gridDimZ : uint32, blockDimX : uint32, blockDimY : uint32, blockDimZ : uint32, sharedMemBytes : uint32, paramCount : uint64, pParams : nativeptr, extraCount : uint64, pExtras : nativeptr) = { - sType = 1000388000u + sType = 1000307002u pNext = pNext - globalPriorityQuery = globalPriorityQuery + _function = _function + gridDimX = gridDimX + gridDimY = gridDimY + gridDimZ = gridDimZ + blockDimX = blockDimX + blockDimY = blockDimY + blockDimZ = blockDimZ + sharedMemBytes = sharedMemBytes + paramCount = paramCount + pParams = pParams + extraCount = extraCount + pExtras = pExtras } - new(globalPriorityQuery : VkBool32) = - VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR(Unchecked.defaultof, globalPriorityQuery) + new(_function : VkCudaFunctionNV, gridDimX : uint32, gridDimY : uint32, gridDimZ : uint32, blockDimX : uint32, blockDimY : uint32, blockDimZ : uint32, sharedMemBytes : uint32, paramCount : uint64, pParams : nativeptr, extraCount : uint64, pExtras : nativeptr) = + VkCudaLaunchInfoNV(Unchecked.defaultof, _function, gridDimX, gridDimY, gridDimZ, blockDimX, blockDimY, blockDimZ, sharedMemBytes, paramCount, pParams, extraCount, pExtras) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.globalPriorityQuery = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x._function = Unchecked.defaultof && x.gridDimX = Unchecked.defaultof && x.gridDimY = Unchecked.defaultof && x.gridDimZ = Unchecked.defaultof && x.blockDimX = Unchecked.defaultof && x.blockDimY = Unchecked.defaultof && x.blockDimZ = Unchecked.defaultof && x.sharedMemBytes = Unchecked.defaultof && x.paramCount = Unchecked.defaultof && x.pParams = Unchecked.defaultof> && x.extraCount = Unchecked.defaultof && x.pExtras = Unchecked.defaultof> static member Empty = - VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR(Unchecked.defaultof, Unchecked.defaultof) + VkCudaLaunchInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "globalPriorityQuery = %A" x.globalPriorityQuery - ] |> sprintf "VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR { %s }" + sprintf "_function = %A" x._function + sprintf "gridDimX = %A" x.gridDimX + sprintf "gridDimY = %A" x.gridDimY + sprintf "gridDimZ = %A" x.gridDimZ + sprintf "blockDimX = %A" x.blockDimX + sprintf "blockDimY = %A" x.blockDimY + sprintf "blockDimZ = %A" x.blockDimZ + sprintf "sharedMemBytes = %A" x.sharedMemBytes + sprintf "paramCount = %A" x.paramCount + sprintf "pParams = %A" x.pParams + sprintf "extraCount = %A" x.extraCount + sprintf "pExtras = %A" x.pExtras + ] |> sprintf "VkCudaLaunchInfoNV { %s }" end [] - type VkQueueFamilyGlobalPriorityPropertiesKHR = + type VkCudaModuleCreateInfoNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public priorityCount : uint32 - val mutable public priorities : VkQueueGlobalPriorityKHR_16 + val mutable public dataSize : uint64 + val mutable public pData : nativeint - new(pNext : nativeint, priorityCount : uint32, priorities : VkQueueGlobalPriorityKHR_16) = + new(pNext : nativeint, dataSize : uint64, pData : nativeint) = { - sType = 1000388001u + sType = 1000307000u pNext = pNext - priorityCount = priorityCount - priorities = priorities + dataSize = dataSize + pData = pData } - new(priorityCount : uint32, priorities : VkQueueGlobalPriorityKHR_16) = - VkQueueFamilyGlobalPriorityPropertiesKHR(Unchecked.defaultof, priorityCount, priorities) + new(dataSize : uint64, pData : nativeint) = + VkCudaModuleCreateInfoNV(Unchecked.defaultof, dataSize, pData) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.priorityCount = Unchecked.defaultof && x.priorities = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.dataSize = Unchecked.defaultof && x.pData = Unchecked.defaultof static member Empty = - VkQueueFamilyGlobalPriorityPropertiesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkCudaModuleCreateInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "priorityCount = %A" x.priorityCount - sprintf "priorities = %A" x.priorities - ] |> sprintf "VkQueueFamilyGlobalPriorityPropertiesKHR { %s }" + sprintf "dataSize = %A" x.dataSize + sprintf "pData = %A" x.pData + ] |> sprintf "VkCudaModuleCreateInfoNV { %s }" end - - [] - module EnumExtensions = - type VkResult with - static member inline ErrorNotPermittedKhr = unbox -1000174001 - - -module KHRImagelessFramebuffer = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRImageFormatList - open KHRMaintenance2 - let Name = "VK_KHR_imageless_framebuffer" - let Number = 109 - - let Required = [ KHRImageFormatList.Name; KHRMaintenance2.Name ] - - - type VkFramebufferAttachmentImageInfoKHR = VkFramebufferAttachmentImageInfo - - type VkFramebufferAttachmentsCreateInfoKHR = VkFramebufferAttachmentsCreateInfo - - type VkPhysicalDeviceImagelessFramebufferFeaturesKHR = VkPhysicalDeviceImagelessFramebufferFeatures - - type VkRenderPassAttachmentBeginInfoKHR = VkRenderPassAttachmentBeginInfo - - - [] - module EnumExtensions = - type VkFramebufferCreateFlags with - static member inline ImagelessBitKhr = unbox 0x00000001 - - -module KHRIncrementalPresent = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRSurface - open KHRSwapchain - let Name = "VK_KHR_incremental_present" - let Number = 85 - - let Required = [ KHRSwapchain.Name ] - - [] - type VkRectLayerKHR = + type VkPhysicalDeviceCudaKernelLaunchFeaturesNV = struct - val mutable public offset : VkOffset2D - val mutable public extent : VkExtent2D - val mutable public layer : uint32 + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public cudaKernelLaunchFeatures : VkBool32 - new(offset : VkOffset2D, extent : VkExtent2D, layer : uint32) = + new(pNext : nativeint, cudaKernelLaunchFeatures : VkBool32) = { - offset = offset - extent = extent - layer = layer + sType = 1000307003u + pNext = pNext + cudaKernelLaunchFeatures = cudaKernelLaunchFeatures } - member x.IsEmpty = - x.offset = Unchecked.defaultof && x.extent = Unchecked.defaultof && x.layer = Unchecked.defaultof - - static member Empty = - VkRectLayerKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) - - override x.ToString() = - String.concat "; " [ - sprintf "offset = %A" x.offset - sprintf "extent = %A" x.extent - sprintf "layer = %A" x.layer - ] |> sprintf "VkRectLayerKHR { %s }" - end - - [] - type VkPresentRegionKHR = - struct - val mutable public rectangleCount : uint32 - val mutable public pRectangles : nativeptr - - new(rectangleCount : uint32, pRectangles : nativeptr) = - { - rectangleCount = rectangleCount - pRectangles = pRectangles - } + new(cudaKernelLaunchFeatures : VkBool32) = + VkPhysicalDeviceCudaKernelLaunchFeaturesNV(Unchecked.defaultof, cudaKernelLaunchFeatures) member x.IsEmpty = - x.rectangleCount = Unchecked.defaultof && x.pRectangles = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.cudaKernelLaunchFeatures = Unchecked.defaultof static member Empty = - VkPresentRegionKHR(Unchecked.defaultof, Unchecked.defaultof>) + VkPhysicalDeviceCudaKernelLaunchFeaturesNV(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ - sprintf "rectangleCount = %A" x.rectangleCount - sprintf "pRectangles = %A" x.pRectangles - ] |> sprintf "VkPresentRegionKHR { %s }" + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "cudaKernelLaunchFeatures = %A" x.cudaKernelLaunchFeatures + ] |> sprintf "VkPhysicalDeviceCudaKernelLaunchFeaturesNV { %s }" end [] - type VkPresentRegionsKHR = + type VkPhysicalDeviceCudaKernelLaunchPropertiesNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public swapchainCount : uint32 - val mutable public pRegions : nativeptr + val mutable public computeCapabilityMinor : uint32 + val mutable public computeCapabilityMajor : uint32 - new(pNext : nativeint, swapchainCount : uint32, pRegions : nativeptr) = + new(pNext : nativeint, computeCapabilityMinor : uint32, computeCapabilityMajor : uint32) = { - sType = 1000084000u + sType = 1000307004u pNext = pNext - swapchainCount = swapchainCount - pRegions = pRegions + computeCapabilityMinor = computeCapabilityMinor + computeCapabilityMajor = computeCapabilityMajor } - new(swapchainCount : uint32, pRegions : nativeptr) = - VkPresentRegionsKHR(Unchecked.defaultof, swapchainCount, pRegions) + new(computeCapabilityMinor : uint32, computeCapabilityMajor : uint32) = + VkPhysicalDeviceCudaKernelLaunchPropertiesNV(Unchecked.defaultof, computeCapabilityMinor, computeCapabilityMajor) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.swapchainCount = Unchecked.defaultof && x.pRegions = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.computeCapabilityMinor = Unchecked.defaultof && x.computeCapabilityMajor = Unchecked.defaultof static member Empty = - VkPresentRegionsKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + VkPhysicalDeviceCudaKernelLaunchPropertiesNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "swapchainCount = %A" x.swapchainCount - sprintf "pRegions = %A" x.pRegions - ] |> sprintf "VkPresentRegionsKHR { %s }" + sprintf "computeCapabilityMinor = %A" x.computeCapabilityMinor + sprintf "computeCapabilityMajor = %A" x.computeCapabilityMajor + ] |> sprintf "VkPhysicalDeviceCudaKernelLaunchPropertiesNV { %s }" end - -module KHRMaintenance4 = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_KHR_maintenance4" - let Number = 414 - - - type VkDeviceBufferMemoryRequirementsKHR = VkDeviceBufferMemoryRequirements - - type VkDeviceImageMemoryRequirementsKHR = VkDeviceImageMemoryRequirements - - type VkPhysicalDeviceMaintenance4FeaturesKHR = VkPhysicalDeviceMaintenance4Features - - type VkPhysicalDeviceMaintenance4PropertiesKHR = VkPhysicalDeviceMaintenance4Properties - - [] module EnumExtensions = - type VkImageAspectFlags with - static member inline NoneKhr = unbox 0 + type VkObjectType with + static member inline CudaModuleNv = unbox 1000307000 + static member inline CudaFunctionNv = unbox 1000307001 module VkRaw = [] - type VkGetDeviceBufferMemoryRequirementsKHRDel = delegate of VkDevice * nativeptr * nativeptr -> unit + type VkCreateCudaModuleNVDel = delegate of VkDevice * nativeptr * nativeptr * nativeptr -> VkResult [] - type VkGetDeviceImageMemoryRequirementsKHRDel = delegate of VkDevice * nativeptr * nativeptr -> unit + type VkGetCudaModuleCacheNVDel = delegate of VkDevice * VkCudaModuleNV * nativeptr * nativeint -> VkResult [] - type VkGetDeviceImageSparseMemoryRequirementsKHRDel = delegate of VkDevice * nativeptr * nativeptr * nativeptr -> unit + type VkCreateCudaFunctionNVDel = delegate of VkDevice * nativeptr * nativeptr * nativeptr -> VkResult + [] + type VkDestroyCudaModuleNVDel = delegate of VkDevice * VkCudaModuleNV * nativeptr -> unit + [] + type VkDestroyCudaFunctionNVDel = delegate of VkDevice * VkCudaFunctionNV * nativeptr -> unit + [] + type VkCmdCudaLaunchKernelNVDel = delegate of VkCommandBuffer * nativeptr -> unit [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRMaintenance4") - static let s_vkGetDeviceBufferMemoryRequirementsKHRDel = VkRaw.vkImportInstanceDelegate "vkGetDeviceBufferMemoryRequirementsKHR" - static let s_vkGetDeviceImageMemoryRequirementsKHRDel = VkRaw.vkImportInstanceDelegate "vkGetDeviceImageMemoryRequirementsKHR" - static let s_vkGetDeviceImageSparseMemoryRequirementsKHRDel = VkRaw.vkImportInstanceDelegate "vkGetDeviceImageSparseMemoryRequirementsKHR" + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading NVCudaKernelLaunch") + static let s_vkCreateCudaModuleNVDel = VkRaw.vkImportInstanceDelegate "vkCreateCudaModuleNV" + static let s_vkGetCudaModuleCacheNVDel = VkRaw.vkImportInstanceDelegate "vkGetCudaModuleCacheNV" + static let s_vkCreateCudaFunctionNVDel = VkRaw.vkImportInstanceDelegate "vkCreateCudaFunctionNV" + static let s_vkDestroyCudaModuleNVDel = VkRaw.vkImportInstanceDelegate "vkDestroyCudaModuleNV" + static let s_vkDestroyCudaFunctionNVDel = VkRaw.vkImportInstanceDelegate "vkDestroyCudaFunctionNV" + static let s_vkCmdCudaLaunchKernelNVDel = VkRaw.vkImportInstanceDelegate "vkCmdCudaLaunchKernelNV" static do Report.End(3) |> ignore - static member vkGetDeviceBufferMemoryRequirementsKHR = s_vkGetDeviceBufferMemoryRequirementsKHRDel - static member vkGetDeviceImageMemoryRequirementsKHR = s_vkGetDeviceImageMemoryRequirementsKHRDel - static member vkGetDeviceImageSparseMemoryRequirementsKHR = s_vkGetDeviceImageSparseMemoryRequirementsKHRDel - let vkGetDeviceBufferMemoryRequirementsKHR(device : VkDevice, pInfo : nativeptr, pMemoryRequirements : nativeptr) = Loader.vkGetDeviceBufferMemoryRequirementsKHR.Invoke(device, pInfo, pMemoryRequirements) - let vkGetDeviceImageMemoryRequirementsKHR(device : VkDevice, pInfo : nativeptr, pMemoryRequirements : nativeptr) = Loader.vkGetDeviceImageMemoryRequirementsKHR.Invoke(device, pInfo, pMemoryRequirements) - let vkGetDeviceImageSparseMemoryRequirementsKHR(device : VkDevice, pInfo : nativeptr, pSparseMemoryRequirementCount : nativeptr, pSparseMemoryRequirements : nativeptr) = Loader.vkGetDeviceImageSparseMemoryRequirementsKHR.Invoke(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) + static member vkCreateCudaModuleNV = s_vkCreateCudaModuleNVDel + static member vkGetCudaModuleCacheNV = s_vkGetCudaModuleCacheNVDel + static member vkCreateCudaFunctionNV = s_vkCreateCudaFunctionNVDel + static member vkDestroyCudaModuleNV = s_vkDestroyCudaModuleNVDel + static member vkDestroyCudaFunctionNV = s_vkDestroyCudaFunctionNVDel + static member vkCmdCudaLaunchKernelNV = s_vkCmdCudaLaunchKernelNVDel + let vkCreateCudaModuleNV(device : VkDevice, pCreateInfo : nativeptr, pAllocator : nativeptr, pModule : nativeptr) = Loader.vkCreateCudaModuleNV.Invoke(device, pCreateInfo, pAllocator, pModule) + let vkGetCudaModuleCacheNV(device : VkDevice, _module : VkCudaModuleNV, pCacheSize : nativeptr, pCacheData : nativeint) = Loader.vkGetCudaModuleCacheNV.Invoke(device, _module, pCacheSize, pCacheData) + let vkCreateCudaFunctionNV(device : VkDevice, pCreateInfo : nativeptr, pAllocator : nativeptr, pFunction : nativeptr) = Loader.vkCreateCudaFunctionNV.Invoke(device, pCreateInfo, pAllocator, pFunction) + let vkDestroyCudaModuleNV(device : VkDevice, _module : VkCudaModuleNV, pAllocator : nativeptr) = Loader.vkDestroyCudaModuleNV.Invoke(device, _module, pAllocator) + let vkDestroyCudaFunctionNV(device : VkDevice, _function : VkCudaFunctionNV, pAllocator : nativeptr) = Loader.vkDestroyCudaFunctionNV.Invoke(device, _function, pAllocator) + let vkCmdCudaLaunchKernelNV(commandBuffer : VkCommandBuffer, pLaunchInfo : nativeptr) = Loader.vkCmdCudaLaunchKernelNV.Invoke(commandBuffer, pLaunchInfo) -module KHRPerformanceQuery = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_KHR_performance_query" - let Number = 117 + [] + module ``EXTDebugReport`` = + [] + module EnumExtensions = + type EXTDebugReport.VkDebugReportObjectTypeEXT with + static member inline CudaModuleNv = unbox 1000307000 + static member inline CudaFunctionNv = unbox 1000307001 - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] +/// Deprecated by KHRDedicatedAllocation. +module NVDedicatedAllocation = + let Type = ExtensionType.Device + let Name = "VK_NV_dedicated_allocation" + let Number = 27 - [] - type VkPerformanceCounterDescriptionFlagsKHR = - | All = 3 - | None = 0 - | PerformanceImpactingBit = 0x00000001 - | ConcurrentlyImpactedBit = 0x00000002 + [] + type VkDedicatedAllocationBufferCreateInfoNV = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public dedicatedAllocation : VkBool32 - type VkPerformanceCounterScopeKHR = - | CommandBuffer = 0 - | RenderPass = 1 - | Command = 2 + new(pNext : nativeint, dedicatedAllocation : VkBool32) = + { + sType = 1000026001u + pNext = pNext + dedicatedAllocation = dedicatedAllocation + } - type VkPerformanceCounterStorageKHR = - | Int32 = 0 - | Int64 = 1 - | Uint32 = 2 - | Uint64 = 3 - | Float32 = 4 - | Float64 = 5 + new(dedicatedAllocation : VkBool32) = + VkDedicatedAllocationBufferCreateInfoNV(Unchecked.defaultof, dedicatedAllocation) - type VkPerformanceCounterUnitKHR = - | Generic = 0 - | Percentage = 1 - | Nanoseconds = 2 - | Bytes = 3 - | BytesPerSecond = 4 - | Kelvin = 5 - | Watts = 6 - | Volts = 7 - | Amps = 8 - | Hertz = 9 - | Cycles = 10 + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.dedicatedAllocation = Unchecked.defaultof - [] - type VkAcquireProfilingLockFlagsKHR = - | All = 0 - | None = 0 + static member Empty = + VkDedicatedAllocationBufferCreateInfoNV(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "dedicatedAllocation = %A" x.dedicatedAllocation + ] |> sprintf "VkDedicatedAllocationBufferCreateInfoNV { %s }" + end + + [] + type VkDedicatedAllocationImageCreateInfoNV = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public dedicatedAllocation : VkBool32 + + new(pNext : nativeint, dedicatedAllocation : VkBool32) = + { + sType = 1000026000u + pNext = pNext + dedicatedAllocation = dedicatedAllocation + } + new(dedicatedAllocation : VkBool32) = + VkDedicatedAllocationImageCreateInfoNV(Unchecked.defaultof, dedicatedAllocation) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.dedicatedAllocation = Unchecked.defaultof + + static member Empty = + VkDedicatedAllocationImageCreateInfoNV(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "dedicatedAllocation = %A" x.dedicatedAllocation + ] |> sprintf "VkDedicatedAllocationImageCreateInfoNV { %s }" + end [] - type VkAcquireProfilingLockInfoKHR = + type VkDedicatedAllocationMemoryAllocateInfoNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public flags : VkAcquireProfilingLockFlagsKHR - val mutable public timeout : uint64 + val mutable public image : VkImage + val mutable public buffer : VkBuffer - new(pNext : nativeint, flags : VkAcquireProfilingLockFlagsKHR, timeout : uint64) = + new(pNext : nativeint, image : VkImage, buffer : VkBuffer) = { - sType = 1000116004u + sType = 1000026002u pNext = pNext - flags = flags - timeout = timeout + image = image + buffer = buffer } - new(flags : VkAcquireProfilingLockFlagsKHR, timeout : uint64) = - VkAcquireProfilingLockInfoKHR(Unchecked.defaultof, flags, timeout) + new(image : VkImage, buffer : VkBuffer) = + VkDedicatedAllocationMemoryAllocateInfoNV(Unchecked.defaultof, image, buffer) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.timeout = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.image = Unchecked.defaultof && x.buffer = Unchecked.defaultof static member Empty = - VkAcquireProfilingLockInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkDedicatedAllocationMemoryAllocateInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "flags = %A" x.flags - sprintf "timeout = %A" x.timeout - ] |> sprintf "VkAcquireProfilingLockInfoKHR { %s }" + sprintf "image = %A" x.image + sprintf "buffer = %A" x.buffer + ] |> sprintf "VkDedicatedAllocationMemoryAllocateInfoNV { %s }" end + + +/// Requires (KHRDedicatedAllocation, KHRGetPhysicalDeviceProperties2) | Vulkan11. +module NVDedicatedAllocationImageAliasing = + let Type = ExtensionType.Device + let Name = "VK_NV_dedicated_allocation_image_aliasing" + let Number = 241 + [] - type VkPerformanceCounterDescriptionKHR = + type VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public flags : VkPerformanceCounterDescriptionFlagsKHR - val mutable public name : String256 - val mutable public category : String256 - val mutable public description : String256 + val mutable public dedicatedAllocationImageAliasing : VkBool32 - new(pNext : nativeint, flags : VkPerformanceCounterDescriptionFlagsKHR, name : String256, category : String256, description : String256) = + new(pNext : nativeint, dedicatedAllocationImageAliasing : VkBool32) = { - sType = 1000116006u + sType = 1000240000u pNext = pNext - flags = flags - name = name - category = category - description = description + dedicatedAllocationImageAliasing = dedicatedAllocationImageAliasing } - new(flags : VkPerformanceCounterDescriptionFlagsKHR, name : String256, category : String256, description : String256) = - VkPerformanceCounterDescriptionKHR(Unchecked.defaultof, flags, name, category, description) + new(dedicatedAllocationImageAliasing : VkBool32) = + VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV(Unchecked.defaultof, dedicatedAllocationImageAliasing) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.name = Unchecked.defaultof && x.category = Unchecked.defaultof && x.description = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.dedicatedAllocationImageAliasing = Unchecked.defaultof static member Empty = - VkPerformanceCounterDescriptionKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "flags = %A" x.flags - sprintf "name = %A" x.name - sprintf "category = %A" x.category - sprintf "description = %A" x.description - ] |> sprintf "VkPerformanceCounterDescriptionKHR { %s }" + sprintf "dedicatedAllocationImageAliasing = %A" x.dedicatedAllocationImageAliasing + ] |> sprintf "VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV { %s }" end + + +/// Requires Vulkan11. +module NVDescriptorPoolOverallocation = + let Type = ExtensionType.Device + let Name = "VK_NV_descriptor_pool_overallocation" + let Number = 547 + [] - type VkPerformanceCounterKHR = + type VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public unit : VkPerformanceCounterUnitKHR - val mutable public scope : VkPerformanceCounterScopeKHR - val mutable public storage : VkPerformanceCounterStorageKHR - val mutable public uuid : Guid + val mutable public descriptorPoolOverallocation : VkBool32 - new(pNext : nativeint, unit : VkPerformanceCounterUnitKHR, scope : VkPerformanceCounterScopeKHR, storage : VkPerformanceCounterStorageKHR, uuid : Guid) = + new(pNext : nativeint, descriptorPoolOverallocation : VkBool32) = { - sType = 1000116005u + sType = 1000546000u pNext = pNext - unit = unit - scope = scope - storage = storage - uuid = uuid + descriptorPoolOverallocation = descriptorPoolOverallocation } - new(unit : VkPerformanceCounterUnitKHR, scope : VkPerformanceCounterScopeKHR, storage : VkPerformanceCounterStorageKHR, uuid : Guid) = - VkPerformanceCounterKHR(Unchecked.defaultof, unit, scope, storage, uuid) + new(descriptorPoolOverallocation : VkBool32) = + VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV(Unchecked.defaultof, descriptorPoolOverallocation) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.unit = Unchecked.defaultof && x.scope = Unchecked.defaultof && x.storage = Unchecked.defaultof && x.uuid = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.descriptorPoolOverallocation = Unchecked.defaultof static member Empty = - VkPerformanceCounterKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "unit = %A" x.unit - sprintf "scope = %A" x.scope - sprintf "storage = %A" x.storage - sprintf "uuid = %A" x.uuid - ] |> sprintf "VkPerformanceCounterKHR { %s }" + sprintf "descriptorPoolOverallocation = %A" x.descriptorPoolOverallocation + ] |> sprintf "VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV { %s }" end - /// Union of all the possible return types a counter result could return - [] - type VkPerformanceCounterResultKHR = - struct - [] - val mutable public int32 : int - [] - val mutable public int64 : int64 - [] - val mutable public uint32 : uint32 - [] - val mutable public uint64 : uint64 - [] - val mutable public float32 : float32 - [] - val mutable public float64 : float - - static member Int32(value : int) = - let mutable result = Unchecked.defaultof - result.int32 <- value - result - - static member Int64(value : int64) = - let mutable result = Unchecked.defaultof - result.int64 <- value - result - static member Uint32(value : uint32) = - let mutable result = Unchecked.defaultof - result.uint32 <- value - result + [] + module EnumExtensions = + type VkDescriptorPoolCreateFlags with + static member inline AllowOverallocationSetsBitNv = unbox 0x00000008 + static member inline AllowOverallocationPoolsBitNv = unbox 0x00000010 - static member Uint64(value : uint64) = - let mutable result = Unchecked.defaultof - result.uint64 <- value - result - static member Float32(value : float32) = - let mutable result = Unchecked.defaultof - result.float32 <- value - result +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module NVDeviceDiagnosticsConfig = + let Type = ExtensionType.Device + let Name = "VK_NV_device_diagnostics_config" + let Number = 301 - static member Float64(value : float) = - let mutable result = Unchecked.defaultof - result.float64 <- value - result + [] + type VkDeviceDiagnosticsConfigFlagsNV = + | All = 15 + | None = 0 + | EnableShaderDebugInfoBit = 0x00000001 + | EnableResourceTrackingBit = 0x00000002 + | EnableAutomaticCheckpointsBit = 0x00000004 + | EnableShaderErrorReportingBit = 0x00000008 - override x.ToString() = - String.concat "; " [ - sprintf "int32 = %A" x.int32 - sprintf "int64 = %A" x.int64 - sprintf "uint32 = %A" x.uint32 - sprintf "uint64 = %A" x.uint64 - sprintf "float32 = %A" x.float32 - sprintf "float64 = %A" x.float64 - ] |> sprintf "VkPerformanceCounterResultKHR { %s }" - end [] - type VkPerformanceQuerySubmitInfoKHR = + type VkDeviceDiagnosticsConfigCreateInfoNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public counterPassIndex : uint32 + val mutable public flags : VkDeviceDiagnosticsConfigFlagsNV - new(pNext : nativeint, counterPassIndex : uint32) = + new(pNext : nativeint, flags : VkDeviceDiagnosticsConfigFlagsNV) = { - sType = 1000116003u + sType = 1000300001u pNext = pNext - counterPassIndex = counterPassIndex + flags = flags } - new(counterPassIndex : uint32) = - VkPerformanceQuerySubmitInfoKHR(Unchecked.defaultof, counterPassIndex) + new(flags : VkDeviceDiagnosticsConfigFlagsNV) = + VkDeviceDiagnosticsConfigCreateInfoNV(Unchecked.defaultof, flags) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.counterPassIndex = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof static member Empty = - VkPerformanceQuerySubmitInfoKHR(Unchecked.defaultof, Unchecked.defaultof) + VkDeviceDiagnosticsConfigCreateInfoNV(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "counterPassIndex = %A" x.counterPassIndex - ] |> sprintf "VkPerformanceQuerySubmitInfoKHR { %s }" + sprintf "flags = %A" x.flags + ] |> sprintf "VkDeviceDiagnosticsConfigCreateInfoNV { %s }" end [] - type VkPhysicalDevicePerformanceQueryFeaturesKHR = + type VkPhysicalDeviceDiagnosticsConfigFeaturesNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public performanceCounterQueryPools : VkBool32 - val mutable public performanceCounterMultipleQueryPools : VkBool32 + val mutable public diagnosticsConfig : VkBool32 - new(pNext : nativeint, performanceCounterQueryPools : VkBool32, performanceCounterMultipleQueryPools : VkBool32) = + new(pNext : nativeint, diagnosticsConfig : VkBool32) = { - sType = 1000116000u + sType = 1000300000u pNext = pNext - performanceCounterQueryPools = performanceCounterQueryPools - performanceCounterMultipleQueryPools = performanceCounterMultipleQueryPools + diagnosticsConfig = diagnosticsConfig } - new(performanceCounterQueryPools : VkBool32, performanceCounterMultipleQueryPools : VkBool32) = - VkPhysicalDevicePerformanceQueryFeaturesKHR(Unchecked.defaultof, performanceCounterQueryPools, performanceCounterMultipleQueryPools) + new(diagnosticsConfig : VkBool32) = + VkPhysicalDeviceDiagnosticsConfigFeaturesNV(Unchecked.defaultof, diagnosticsConfig) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.performanceCounterQueryPools = Unchecked.defaultof && x.performanceCounterMultipleQueryPools = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.diagnosticsConfig = Unchecked.defaultof static member Empty = - VkPhysicalDevicePerformanceQueryFeaturesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceDiagnosticsConfigFeaturesNV(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "performanceCounterQueryPools = %A" x.performanceCounterQueryPools - sprintf "performanceCounterMultipleQueryPools = %A" x.performanceCounterMultipleQueryPools - ] |> sprintf "VkPhysicalDevicePerformanceQueryFeaturesKHR { %s }" + sprintf "diagnosticsConfig = %A" x.diagnosticsConfig + ] |> sprintf "VkPhysicalDeviceDiagnosticsConfigFeaturesNV { %s }" end + + +/// Requires NVDeviceGeneratedCommands. +module NVDeviceGeneratedCommandsCompute = + let Type = ExtensionType.Device + let Name = "VK_NV_device_generated_commands_compute" + let Number = 429 + [] - type VkPhysicalDevicePerformanceQueryPropertiesKHR = + type VkBindPipelineIndirectCommandNV = struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public allowCommandBufferQueryCopies : VkBool32 + val mutable public pipelineAddress : VkDeviceAddress - new(pNext : nativeint, allowCommandBufferQueryCopies : VkBool32) = + new(pipelineAddress : VkDeviceAddress) = { - sType = 1000116001u - pNext = pNext - allowCommandBufferQueryCopies = allowCommandBufferQueryCopies + pipelineAddress = pipelineAddress } - new(allowCommandBufferQueryCopies : VkBool32) = - VkPhysicalDevicePerformanceQueryPropertiesKHR(Unchecked.defaultof, allowCommandBufferQueryCopies) - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.allowCommandBufferQueryCopies = Unchecked.defaultof + x.pipelineAddress = Unchecked.defaultof static member Empty = - VkPhysicalDevicePerformanceQueryPropertiesKHR(Unchecked.defaultof, Unchecked.defaultof) + VkBindPipelineIndirectCommandNV(Unchecked.defaultof) override x.ToString() = String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "allowCommandBufferQueryCopies = %A" x.allowCommandBufferQueryCopies - ] |> sprintf "VkPhysicalDevicePerformanceQueryPropertiesKHR { %s }" + sprintf "pipelineAddress = %A" x.pipelineAddress + ] |> sprintf "VkBindPipelineIndirectCommandNV { %s }" end [] - type VkQueryPoolPerformanceCreateInfoKHR = + type VkComputePipelineIndirectBufferInfoNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public queueFamilyIndex : uint32 - val mutable public counterIndexCount : uint32 - val mutable public pCounterIndices : nativeptr + val mutable public deviceAddress : VkDeviceAddress + val mutable public size : VkDeviceSize + val mutable public pipelineDeviceAddressCaptureReplay : VkDeviceAddress - new(pNext : nativeint, queueFamilyIndex : uint32, counterIndexCount : uint32, pCounterIndices : nativeptr) = + new(pNext : nativeint, deviceAddress : VkDeviceAddress, size : VkDeviceSize, pipelineDeviceAddressCaptureReplay : VkDeviceAddress) = { - sType = 1000116002u + sType = 1000428001u pNext = pNext - queueFamilyIndex = queueFamilyIndex - counterIndexCount = counterIndexCount - pCounterIndices = pCounterIndices + deviceAddress = deviceAddress + size = size + pipelineDeviceAddressCaptureReplay = pipelineDeviceAddressCaptureReplay } - new(queueFamilyIndex : uint32, counterIndexCount : uint32, pCounterIndices : nativeptr) = - VkQueryPoolPerformanceCreateInfoKHR(Unchecked.defaultof, queueFamilyIndex, counterIndexCount, pCounterIndices) + new(deviceAddress : VkDeviceAddress, size : VkDeviceSize, pipelineDeviceAddressCaptureReplay : VkDeviceAddress) = + VkComputePipelineIndirectBufferInfoNV(Unchecked.defaultof, deviceAddress, size, pipelineDeviceAddressCaptureReplay) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.queueFamilyIndex = Unchecked.defaultof && x.counterIndexCount = Unchecked.defaultof && x.pCounterIndices = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.deviceAddress = Unchecked.defaultof && x.size = Unchecked.defaultof && x.pipelineDeviceAddressCaptureReplay = Unchecked.defaultof static member Empty = - VkQueryPoolPerformanceCreateInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + VkComputePipelineIndirectBufferInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "queueFamilyIndex = %A" x.queueFamilyIndex - sprintf "counterIndexCount = %A" x.counterIndexCount - sprintf "pCounterIndices = %A" x.pCounterIndices - ] |> sprintf "VkQueryPoolPerformanceCreateInfoKHR { %s }" + sprintf "deviceAddress = %A" x.deviceAddress + sprintf "size = %A" x.size + sprintf "pipelineDeviceAddressCaptureReplay = %A" x.pipelineDeviceAddressCaptureReplay + ] |> sprintf "VkComputePipelineIndirectBufferInfoNV { %s }" end - - [] - module EnumExtensions = - type VkQueryType with - static member inline PerformanceQueryKhr = unbox 1000116000 - - module VkRaw = - [] - type VkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHRDel = delegate of VkPhysicalDevice * uint32 * nativeptr * nativeptr * nativeptr -> VkResult - [] - type VkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHRDel = delegate of VkPhysicalDevice * nativeptr * nativeptr -> unit - [] - type VkAcquireProfilingLockKHRDel = delegate of VkDevice * nativeptr -> VkResult - [] - type VkReleaseProfilingLockKHRDel = delegate of VkDevice -> unit - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRPerformanceQuery") - static let s_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHRDel = VkRaw.vkImportInstanceDelegate "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR" - static let s_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR" - static let s_vkAcquireProfilingLockKHRDel = VkRaw.vkImportInstanceDelegate "vkAcquireProfilingLockKHR" - static let s_vkReleaseProfilingLockKHRDel = VkRaw.vkImportInstanceDelegate "vkReleaseProfilingLockKHR" - static do Report.End(3) |> ignore - static member vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = s_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHRDel - static member vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = s_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHRDel - static member vkAcquireProfilingLockKHR = s_vkAcquireProfilingLockKHRDel - static member vkReleaseProfilingLockKHR = s_vkReleaseProfilingLockKHRDel - let vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice : VkPhysicalDevice, queueFamilyIndex : uint32, pCounterCount : nativeptr, pCounters : nativeptr, pCounterDescriptions : nativeptr) = Loader.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR.Invoke(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions) - let vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice : VkPhysicalDevice, pPerformanceQueryCreateInfo : nativeptr, pNumPasses : nativeptr) = Loader.vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR.Invoke(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses) - let vkAcquireProfilingLockKHR(device : VkDevice, pInfo : nativeptr) = Loader.vkAcquireProfilingLockKHR.Invoke(device, pInfo) - let vkReleaseProfilingLockKHR(device : VkDevice) = Loader.vkReleaseProfilingLockKHR.Invoke(device) - -module KHRPipelineExecutableProperties = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_KHR_pipeline_executable_properties" - let Number = 270 - - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] - - - type VkPipelineExecutableStatisticFormatKHR = - | Bool32 = 0 - | Int64 = 1 - | Uint64 = 2 - | Float64 = 3 - - [] - type VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR = + type VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public pipelineExecutableInfo : VkBool32 + val mutable public deviceGeneratedCompute : VkBool32 + val mutable public deviceGeneratedComputePipelines : VkBool32 + val mutable public deviceGeneratedComputeCaptureReplay : VkBool32 - new(pNext : nativeint, pipelineExecutableInfo : VkBool32) = + new(pNext : nativeint, deviceGeneratedCompute : VkBool32, deviceGeneratedComputePipelines : VkBool32, deviceGeneratedComputeCaptureReplay : VkBool32) = { - sType = 1000269000u + sType = 1000428000u pNext = pNext - pipelineExecutableInfo = pipelineExecutableInfo + deviceGeneratedCompute = deviceGeneratedCompute + deviceGeneratedComputePipelines = deviceGeneratedComputePipelines + deviceGeneratedComputeCaptureReplay = deviceGeneratedComputeCaptureReplay } - new(pipelineExecutableInfo : VkBool32) = - VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(Unchecked.defaultof, pipelineExecutableInfo) + new(deviceGeneratedCompute : VkBool32, deviceGeneratedComputePipelines : VkBool32, deviceGeneratedComputeCaptureReplay : VkBool32) = + VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV(Unchecked.defaultof, deviceGeneratedCompute, deviceGeneratedComputePipelines, deviceGeneratedComputeCaptureReplay) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.pipelineExecutableInfo = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.deviceGeneratedCompute = Unchecked.defaultof && x.deviceGeneratedComputePipelines = Unchecked.defaultof && x.deviceGeneratedComputeCaptureReplay = Unchecked.defaultof static member Empty = - VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "pipelineExecutableInfo = %A" x.pipelineExecutableInfo - ] |> sprintf "VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR { %s }" + sprintf "deviceGeneratedCompute = %A" x.deviceGeneratedCompute + sprintf "deviceGeneratedComputePipelines = %A" x.deviceGeneratedComputePipelines + sprintf "deviceGeneratedComputeCaptureReplay = %A" x.deviceGeneratedComputeCaptureReplay + ] |> sprintf "VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV { %s }" end [] - type VkPipelineExecutableInfoKHR = + type VkPipelineIndirectDeviceAddressInfoNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint + val mutable public pipelineBindPoint : VkPipelineBindPoint val mutable public pipeline : VkPipeline - val mutable public executableIndex : uint32 - new(pNext : nativeint, pipeline : VkPipeline, executableIndex : uint32) = + new(pNext : nativeint, pipelineBindPoint : VkPipelineBindPoint, pipeline : VkPipeline) = { - sType = 1000269003u + sType = 1000428002u pNext = pNext + pipelineBindPoint = pipelineBindPoint pipeline = pipeline - executableIndex = executableIndex } - new(pipeline : VkPipeline, executableIndex : uint32) = - VkPipelineExecutableInfoKHR(Unchecked.defaultof, pipeline, executableIndex) + new(pipelineBindPoint : VkPipelineBindPoint, pipeline : VkPipeline) = + VkPipelineIndirectDeviceAddressInfoNV(Unchecked.defaultof, pipelineBindPoint, pipeline) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.pipeline = Unchecked.defaultof && x.executableIndex = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.pipelineBindPoint = Unchecked.defaultof && x.pipeline = Unchecked.defaultof static member Empty = - VkPipelineExecutableInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPipelineIndirectDeviceAddressInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext + sprintf "pipelineBindPoint = %A" x.pipelineBindPoint sprintf "pipeline = %A" x.pipeline - sprintf "executableIndex = %A" x.executableIndex - ] |> sprintf "VkPipelineExecutableInfoKHR { %s }" + ] |> sprintf "VkPipelineIndirectDeviceAddressInfoNV { %s }" end + + [] + module EnumExtensions = + type VkDescriptorSetLayoutCreateFlags with + static member inline IndirectBindableBitNv = unbox 0x00000080 + type NVDeviceGeneratedCommands.VkIndirectCommandsTokenTypeNV with + static member inline Pipeline = unbox 1000428003 + static member inline Dispatch = unbox 1000428004 + + module VkRaw = + [] + type VkGetPipelineIndirectMemoryRequirementsNVDel = delegate of VkDevice * nativeptr * nativeptr -> unit + [] + type VkCmdUpdatePipelineIndirectBufferNVDel = delegate of VkCommandBuffer * VkPipelineBindPoint * VkPipeline -> unit + [] + type VkGetPipelineIndirectDeviceAddressNVDel = delegate of VkDevice * nativeptr -> VkDeviceAddress + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading NVDeviceGeneratedCommandsCompute") + static let s_vkGetPipelineIndirectMemoryRequirementsNVDel = VkRaw.vkImportInstanceDelegate "vkGetPipelineIndirectMemoryRequirementsNV" + static let s_vkCmdUpdatePipelineIndirectBufferNVDel = VkRaw.vkImportInstanceDelegate "vkCmdUpdatePipelineIndirectBufferNV" + static let s_vkGetPipelineIndirectDeviceAddressNVDel = VkRaw.vkImportInstanceDelegate "vkGetPipelineIndirectDeviceAddressNV" + static do Report.End(3) |> ignore + static member vkGetPipelineIndirectMemoryRequirementsNV = s_vkGetPipelineIndirectMemoryRequirementsNVDel + static member vkCmdUpdatePipelineIndirectBufferNV = s_vkCmdUpdatePipelineIndirectBufferNVDel + static member vkGetPipelineIndirectDeviceAddressNV = s_vkGetPipelineIndirectDeviceAddressNVDel + let vkGetPipelineIndirectMemoryRequirementsNV(device : VkDevice, pCreateInfo : nativeptr, pMemoryRequirements : nativeptr) = Loader.vkGetPipelineIndirectMemoryRequirementsNV.Invoke(device, pCreateInfo, pMemoryRequirements) + let vkCmdUpdatePipelineIndirectBufferNV(commandBuffer : VkCommandBuffer, pipelineBindPoint : VkPipelineBindPoint, pipeline : VkPipeline) = Loader.vkCmdUpdatePipelineIndirectBufferNV.Invoke(commandBuffer, pipelineBindPoint, pipeline) + let vkGetPipelineIndirectDeviceAddressNV(device : VkDevice, pInfo : nativeptr) = Loader.vkGetPipelineIndirectDeviceAddressNV.Invoke(device, pInfo) + +module NVExtendedSparseAddressSpace = + let Type = ExtensionType.Device + let Name = "VK_NV_extended_sparse_address_space" + let Number = 493 + [] - type VkPipelineExecutableInternalRepresentationKHR = + type VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public name : String256 - val mutable public description : String256 - val mutable public isText : VkBool32 - val mutable public dataSize : uint64 - val mutable public pData : nativeint + val mutable public extendedSparseAddressSpace : VkBool32 - new(pNext : nativeint, name : String256, description : String256, isText : VkBool32, dataSize : uint64, pData : nativeint) = + new(pNext : nativeint, extendedSparseAddressSpace : VkBool32) = { - sType = 1000269005u + sType = 1000492000u pNext = pNext - name = name - description = description - isText = isText - dataSize = dataSize - pData = pData + extendedSparseAddressSpace = extendedSparseAddressSpace } - new(name : String256, description : String256, isText : VkBool32, dataSize : uint64, pData : nativeint) = - VkPipelineExecutableInternalRepresentationKHR(Unchecked.defaultof, name, description, isText, dataSize, pData) + new(extendedSparseAddressSpace : VkBool32) = + VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV(Unchecked.defaultof, extendedSparseAddressSpace) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.name = Unchecked.defaultof && x.description = Unchecked.defaultof && x.isText = Unchecked.defaultof && x.dataSize = Unchecked.defaultof && x.pData = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.extendedSparseAddressSpace = Unchecked.defaultof static member Empty = - VkPipelineExecutableInternalRepresentationKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "name = %A" x.name - sprintf "description = %A" x.description - sprintf "isText = %A" x.isText - sprintf "dataSize = %A" x.dataSize - sprintf "pData = %A" x.pData - ] |> sprintf "VkPipelineExecutableInternalRepresentationKHR { %s }" + sprintf "extendedSparseAddressSpace = %A" x.extendedSparseAddressSpace + ] |> sprintf "VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV { %s }" end [] - type VkPipelineExecutablePropertiesKHR = + type VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public stages : VkShaderStageFlags - val mutable public name : String256 - val mutable public description : String256 - val mutable public subgroupSize : uint32 + val mutable public extendedSparseAddressSpaceSize : VkDeviceSize + val mutable public extendedSparseImageUsageFlags : VkImageUsageFlags + val mutable public extendedSparseBufferUsageFlags : VkBufferUsageFlags - new(pNext : nativeint, stages : VkShaderStageFlags, name : String256, description : String256, subgroupSize : uint32) = + new(pNext : nativeint, extendedSparseAddressSpaceSize : VkDeviceSize, extendedSparseImageUsageFlags : VkImageUsageFlags, extendedSparseBufferUsageFlags : VkBufferUsageFlags) = { - sType = 1000269002u + sType = 1000492001u pNext = pNext - stages = stages - name = name - description = description - subgroupSize = subgroupSize + extendedSparseAddressSpaceSize = extendedSparseAddressSpaceSize + extendedSparseImageUsageFlags = extendedSparseImageUsageFlags + extendedSparseBufferUsageFlags = extendedSparseBufferUsageFlags } - new(stages : VkShaderStageFlags, name : String256, description : String256, subgroupSize : uint32) = - VkPipelineExecutablePropertiesKHR(Unchecked.defaultof, stages, name, description, subgroupSize) + new(extendedSparseAddressSpaceSize : VkDeviceSize, extendedSparseImageUsageFlags : VkImageUsageFlags, extendedSparseBufferUsageFlags : VkBufferUsageFlags) = + VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV(Unchecked.defaultof, extendedSparseAddressSpaceSize, extendedSparseImageUsageFlags, extendedSparseBufferUsageFlags) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.stages = Unchecked.defaultof && x.name = Unchecked.defaultof && x.description = Unchecked.defaultof && x.subgroupSize = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.extendedSparseAddressSpaceSize = Unchecked.defaultof && x.extendedSparseImageUsageFlags = Unchecked.defaultof && x.extendedSparseBufferUsageFlags = Unchecked.defaultof static member Empty = - VkPipelineExecutablePropertiesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "stages = %A" x.stages - sprintf "name = %A" x.name - sprintf "description = %A" x.description - sprintf "subgroupSize = %A" x.subgroupSize - ] |> sprintf "VkPipelineExecutablePropertiesKHR { %s }" + sprintf "extendedSparseAddressSpaceSize = %A" x.extendedSparseAddressSpaceSize + sprintf "extendedSparseImageUsageFlags = %A" x.extendedSparseImageUsageFlags + sprintf "extendedSparseBufferUsageFlags = %A" x.extendedSparseBufferUsageFlags + ] |> sprintf "VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV { %s }" end - [] - type VkPipelineExecutableStatisticValueKHR = - struct - [] - val mutable public b32 : VkBool32 - [] - val mutable public i64 : int64 - [] - val mutable public u64 : uint64 - [] - val mutable public f64 : float - static member B32(value : VkBool32) = - let mutable result = Unchecked.defaultof - result.b32 <- value - result - static member I64(value : int64) = - let mutable result = Unchecked.defaultof - result.i64 <- value - result +/// Deprecated by KHRExternalMemoryCapabilities. +module NVExternalMemoryCapabilities = + let Type = ExtensionType.Instance + let Name = "VK_NV_external_memory_capabilities" + let Number = 56 - static member U64(value : uint64) = - let mutable result = Unchecked.defaultof - result.u64 <- value - result + [] + type VkExternalMemoryHandleTypeFlagsNV = + | All = 15 + | None = 0 + | OpaqueWin32Bit = 0x00000001 + | OpaqueWin32KmtBit = 0x00000002 + | D3d11ImageBit = 0x00000004 + | D3d11ImageKmtBit = 0x00000008 - static member F64(value : float) = - let mutable result = Unchecked.defaultof - result.f64 <- value - result + [] + type VkExternalMemoryFeatureFlagsNV = + | All = 7 + | None = 0 + | DedicatedOnlyBit = 0x00000001 + | ExportableBit = 0x00000002 + | ImportableBit = 0x00000004 - override x.ToString() = - String.concat "; " [ - sprintf "b32 = %A" x.b32 - sprintf "i64 = %A" x.i64 - sprintf "u64 = %A" x.u64 - sprintf "f64 = %A" x.f64 - ] |> sprintf "VkPipelineExecutableStatisticValueKHR { %s }" - end [] - type VkPipelineExecutableStatisticKHR = + type VkExternalImageFormatPropertiesNV = struct - val mutable public sType : uint32 - val mutable public pNext : nativeint - val mutable public name : String256 - val mutable public description : String256 - val mutable public format : VkPipelineExecutableStatisticFormatKHR - val mutable public value : VkPipelineExecutableStatisticValueKHR + val mutable public imageFormatProperties : VkImageFormatProperties + val mutable public externalMemoryFeatures : VkExternalMemoryFeatureFlagsNV + val mutable public exportFromImportedHandleTypes : VkExternalMemoryHandleTypeFlagsNV + val mutable public compatibleHandleTypes : VkExternalMemoryHandleTypeFlagsNV - new(pNext : nativeint, name : String256, description : String256, format : VkPipelineExecutableStatisticFormatKHR, value : VkPipelineExecutableStatisticValueKHR) = + new(imageFormatProperties : VkImageFormatProperties, externalMemoryFeatures : VkExternalMemoryFeatureFlagsNV, exportFromImportedHandleTypes : VkExternalMemoryHandleTypeFlagsNV, compatibleHandleTypes : VkExternalMemoryHandleTypeFlagsNV) = { - sType = 1000269004u - pNext = pNext - name = name - description = description - format = format - value = value + imageFormatProperties = imageFormatProperties + externalMemoryFeatures = externalMemoryFeatures + exportFromImportedHandleTypes = exportFromImportedHandleTypes + compatibleHandleTypes = compatibleHandleTypes } - new(name : String256, description : String256, format : VkPipelineExecutableStatisticFormatKHR, value : VkPipelineExecutableStatisticValueKHR) = - VkPipelineExecutableStatisticKHR(Unchecked.defaultof, name, description, format, value) - member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.name = Unchecked.defaultof && x.description = Unchecked.defaultof && x.format = Unchecked.defaultof && x.value = Unchecked.defaultof + x.imageFormatProperties = Unchecked.defaultof && x.externalMemoryFeatures = Unchecked.defaultof && x.exportFromImportedHandleTypes = Unchecked.defaultof && x.compatibleHandleTypes = Unchecked.defaultof static member Empty = - VkPipelineExecutableStatisticKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkExternalImageFormatPropertiesNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ - sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "name = %A" x.name - sprintf "description = %A" x.description - sprintf "format = %A" x.format - sprintf "value = %A" x.value - ] |> sprintf "VkPipelineExecutableStatisticKHR { %s }" + sprintf "imageFormatProperties = %A" x.imageFormatProperties + sprintf "externalMemoryFeatures = %A" x.externalMemoryFeatures + sprintf "exportFromImportedHandleTypes = %A" x.exportFromImportedHandleTypes + sprintf "compatibleHandleTypes = %A" x.compatibleHandleTypes + ] |> sprintf "VkExternalImageFormatPropertiesNV { %s }" end - type VkPipelineInfoKHR = EXTPipelineProperties.VkPipelineInfoKHR - - - [] - module EnumExtensions = - type VkPipelineCreateFlags with - static member inline CaptureStatisticsBitKhr = unbox 0x00000040 - static member inline CaptureInternalRepresentationsBitKhr = unbox 0x00000080 module VkRaw = [] - type VkGetPipelineExecutablePropertiesKHRDel = delegate of VkDevice * nativeptr * nativeptr * nativeptr -> VkResult - [] - type VkGetPipelineExecutableStatisticsKHRDel = delegate of VkDevice * nativeptr * nativeptr * nativeptr -> VkResult - [] - type VkGetPipelineExecutableInternalRepresentationsKHRDel = delegate of VkDevice * nativeptr * nativeptr * nativeptr -> VkResult + type VkGetPhysicalDeviceExternalImageFormatPropertiesNVDel = delegate of VkPhysicalDevice * VkFormat * VkImageType * VkImageTiling * VkImageUsageFlags * VkImageCreateFlags * VkExternalMemoryHandleTypeFlagsNV * nativeptr -> VkResult [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRPipelineExecutableProperties") - static let s_vkGetPipelineExecutablePropertiesKHRDel = VkRaw.vkImportInstanceDelegate "vkGetPipelineExecutablePropertiesKHR" - static let s_vkGetPipelineExecutableStatisticsKHRDel = VkRaw.vkImportInstanceDelegate "vkGetPipelineExecutableStatisticsKHR" - static let s_vkGetPipelineExecutableInternalRepresentationsKHRDel = VkRaw.vkImportInstanceDelegate "vkGetPipelineExecutableInternalRepresentationsKHR" + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading NVExternalMemoryCapabilities") + static let s_vkGetPhysicalDeviceExternalImageFormatPropertiesNVDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceExternalImageFormatPropertiesNV" static do Report.End(3) |> ignore - static member vkGetPipelineExecutablePropertiesKHR = s_vkGetPipelineExecutablePropertiesKHRDel - static member vkGetPipelineExecutableStatisticsKHR = s_vkGetPipelineExecutableStatisticsKHRDel - static member vkGetPipelineExecutableInternalRepresentationsKHR = s_vkGetPipelineExecutableInternalRepresentationsKHRDel - let vkGetPipelineExecutablePropertiesKHR(device : VkDevice, pPipelineInfo : nativeptr, pExecutableCount : nativeptr, pProperties : nativeptr) = Loader.vkGetPipelineExecutablePropertiesKHR.Invoke(device, pPipelineInfo, pExecutableCount, pProperties) - let vkGetPipelineExecutableStatisticsKHR(device : VkDevice, pExecutableInfo : nativeptr, pStatisticCount : nativeptr, pStatistics : nativeptr) = Loader.vkGetPipelineExecutableStatisticsKHR.Invoke(device, pExecutableInfo, pStatisticCount, pStatistics) - let vkGetPipelineExecutableInternalRepresentationsKHR(device : VkDevice, pExecutableInfo : nativeptr, pInternalRepresentationCount : nativeptr, pInternalRepresentations : nativeptr) = Loader.vkGetPipelineExecutableInternalRepresentationsKHR.Invoke(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations) - -module KHRPortabilityEnumeration = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_KHR_portability_enumeration" - let Number = 395 - - - [] - module EnumExtensions = - type VkInstanceCreateFlags with - static member inline EnumeratePortabilityBitKhr = unbox 0x00000001 - - -module KHRPortabilitySubset = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_KHR_portability_subset" - let Number = 164 - - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] + static member vkGetPhysicalDeviceExternalImageFormatPropertiesNV = s_vkGetPhysicalDeviceExternalImageFormatPropertiesNVDel + let vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice : VkPhysicalDevice, format : VkFormat, _type : VkImageType, tiling : VkImageTiling, usage : VkImageUsageFlags, flags : VkImageCreateFlags, externalHandleType : VkExternalMemoryHandleTypeFlagsNV, pExternalImageFormatProperties : nativeptr) = Loader.vkGetPhysicalDeviceExternalImageFormatPropertiesNV.Invoke(physicalDevice, format, _type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) +/// Requires NVExternalMemoryCapabilities. +/// Deprecated by KHRExternalMemory. +module NVExternalMemory = + let Type = ExtensionType.Device + let Name = "VK_NV_external_memory" + let Number = 57 [] - type VkPhysicalDevicePortabilitySubsetFeaturesKHR = + type VkExportMemoryAllocateInfoNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public constantAlphaColorBlendFactors : VkBool32 - val mutable public events : VkBool32 - val mutable public imageViewFormatReinterpretation : VkBool32 - val mutable public imageViewFormatSwizzle : VkBool32 - val mutable public imageView2DOn3DImage : VkBool32 - val mutable public multisampleArrayImage : VkBool32 - val mutable public mutableComparisonSamplers : VkBool32 - val mutable public pointPolygons : VkBool32 - val mutable public samplerMipLodBias : VkBool32 - val mutable public separateStencilMaskRef : VkBool32 - val mutable public shaderSampleRateInterpolationFunctions : VkBool32 - val mutable public tessellationIsolines : VkBool32 - val mutable public tessellationPointMode : VkBool32 - val mutable public triangleFans : VkBool32 - val mutable public vertexAttributeAccessBeyondStride : VkBool32 + val mutable public handleTypes : NVExternalMemoryCapabilities.VkExternalMemoryHandleTypeFlagsNV - new(pNext : nativeint, constantAlphaColorBlendFactors : VkBool32, events : VkBool32, imageViewFormatReinterpretation : VkBool32, imageViewFormatSwizzle : VkBool32, imageView2DOn3DImage : VkBool32, multisampleArrayImage : VkBool32, mutableComparisonSamplers : VkBool32, pointPolygons : VkBool32, samplerMipLodBias : VkBool32, separateStencilMaskRef : VkBool32, shaderSampleRateInterpolationFunctions : VkBool32, tessellationIsolines : VkBool32, tessellationPointMode : VkBool32, triangleFans : VkBool32, vertexAttributeAccessBeyondStride : VkBool32) = + new(pNext : nativeint, handleTypes : NVExternalMemoryCapabilities.VkExternalMemoryHandleTypeFlagsNV) = { - sType = 1000163000u + sType = 1000056001u pNext = pNext - constantAlphaColorBlendFactors = constantAlphaColorBlendFactors - events = events - imageViewFormatReinterpretation = imageViewFormatReinterpretation - imageViewFormatSwizzle = imageViewFormatSwizzle - imageView2DOn3DImage = imageView2DOn3DImage - multisampleArrayImage = multisampleArrayImage - mutableComparisonSamplers = mutableComparisonSamplers - pointPolygons = pointPolygons - samplerMipLodBias = samplerMipLodBias - separateStencilMaskRef = separateStencilMaskRef - shaderSampleRateInterpolationFunctions = shaderSampleRateInterpolationFunctions - tessellationIsolines = tessellationIsolines - tessellationPointMode = tessellationPointMode - triangleFans = triangleFans - vertexAttributeAccessBeyondStride = vertexAttributeAccessBeyondStride + handleTypes = handleTypes } - new(constantAlphaColorBlendFactors : VkBool32, events : VkBool32, imageViewFormatReinterpretation : VkBool32, imageViewFormatSwizzle : VkBool32, imageView2DOn3DImage : VkBool32, multisampleArrayImage : VkBool32, mutableComparisonSamplers : VkBool32, pointPolygons : VkBool32, samplerMipLodBias : VkBool32, separateStencilMaskRef : VkBool32, shaderSampleRateInterpolationFunctions : VkBool32, tessellationIsolines : VkBool32, tessellationPointMode : VkBool32, triangleFans : VkBool32, vertexAttributeAccessBeyondStride : VkBool32) = - VkPhysicalDevicePortabilitySubsetFeaturesKHR(Unchecked.defaultof, constantAlphaColorBlendFactors, events, imageViewFormatReinterpretation, imageViewFormatSwizzle, imageView2DOn3DImage, multisampleArrayImage, mutableComparisonSamplers, pointPolygons, samplerMipLodBias, separateStencilMaskRef, shaderSampleRateInterpolationFunctions, tessellationIsolines, tessellationPointMode, triangleFans, vertexAttributeAccessBeyondStride) + new(handleTypes : NVExternalMemoryCapabilities.VkExternalMemoryHandleTypeFlagsNV) = + VkExportMemoryAllocateInfoNV(Unchecked.defaultof, handleTypes) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.constantAlphaColorBlendFactors = Unchecked.defaultof && x.events = Unchecked.defaultof && x.imageViewFormatReinterpretation = Unchecked.defaultof && x.imageViewFormatSwizzle = Unchecked.defaultof && x.imageView2DOn3DImage = Unchecked.defaultof && x.multisampleArrayImage = Unchecked.defaultof && x.mutableComparisonSamplers = Unchecked.defaultof && x.pointPolygons = Unchecked.defaultof && x.samplerMipLodBias = Unchecked.defaultof && x.separateStencilMaskRef = Unchecked.defaultof && x.shaderSampleRateInterpolationFunctions = Unchecked.defaultof && x.tessellationIsolines = Unchecked.defaultof && x.tessellationPointMode = Unchecked.defaultof && x.triangleFans = Unchecked.defaultof && x.vertexAttributeAccessBeyondStride = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.handleTypes = Unchecked.defaultof static member Empty = - VkPhysicalDevicePortabilitySubsetFeaturesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkExportMemoryAllocateInfoNV(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "constantAlphaColorBlendFactors = %A" x.constantAlphaColorBlendFactors - sprintf "events = %A" x.events - sprintf "imageViewFormatReinterpretation = %A" x.imageViewFormatReinterpretation - sprintf "imageViewFormatSwizzle = %A" x.imageViewFormatSwizzle - sprintf "imageView2DOn3DImage = %A" x.imageView2DOn3DImage - sprintf "multisampleArrayImage = %A" x.multisampleArrayImage - sprintf "mutableComparisonSamplers = %A" x.mutableComparisonSamplers - sprintf "pointPolygons = %A" x.pointPolygons - sprintf "samplerMipLodBias = %A" x.samplerMipLodBias - sprintf "separateStencilMaskRef = %A" x.separateStencilMaskRef - sprintf "shaderSampleRateInterpolationFunctions = %A" x.shaderSampleRateInterpolationFunctions - sprintf "tessellationIsolines = %A" x.tessellationIsolines - sprintf "tessellationPointMode = %A" x.tessellationPointMode - sprintf "triangleFans = %A" x.triangleFans - sprintf "vertexAttributeAccessBeyondStride = %A" x.vertexAttributeAccessBeyondStride - ] |> sprintf "VkPhysicalDevicePortabilitySubsetFeaturesKHR { %s }" + sprintf "handleTypes = %A" x.handleTypes + ] |> sprintf "VkExportMemoryAllocateInfoNV { %s }" end [] - type VkPhysicalDevicePortabilitySubsetPropertiesKHR = + type VkExternalMemoryImageCreateInfoNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public minVertexInputBindingStrideAlignment : uint32 + val mutable public handleTypes : NVExternalMemoryCapabilities.VkExternalMemoryHandleTypeFlagsNV - new(pNext : nativeint, minVertexInputBindingStrideAlignment : uint32) = + new(pNext : nativeint, handleTypes : NVExternalMemoryCapabilities.VkExternalMemoryHandleTypeFlagsNV) = { - sType = 1000163001u + sType = 1000056000u pNext = pNext - minVertexInputBindingStrideAlignment = minVertexInputBindingStrideAlignment + handleTypes = handleTypes } - new(minVertexInputBindingStrideAlignment : uint32) = - VkPhysicalDevicePortabilitySubsetPropertiesKHR(Unchecked.defaultof, minVertexInputBindingStrideAlignment) + new(handleTypes : NVExternalMemoryCapabilities.VkExternalMemoryHandleTypeFlagsNV) = + VkExternalMemoryImageCreateInfoNV(Unchecked.defaultof, handleTypes) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.minVertexInputBindingStrideAlignment = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.handleTypes = Unchecked.defaultof static member Empty = - VkPhysicalDevicePortabilitySubsetPropertiesKHR(Unchecked.defaultof, Unchecked.defaultof) + VkExternalMemoryImageCreateInfoNV(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "minVertexInputBindingStrideAlignment = %A" x.minVertexInputBindingStrideAlignment - ] |> sprintf "VkPhysicalDevicePortabilitySubsetPropertiesKHR { %s }" + sprintf "handleTypes = %A" x.handleTypes + ] |> sprintf "VkExternalMemoryImageCreateInfoNV { %s }" end -module KHRPresentId = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRSurface - open KHRSwapchain - let Name = "VK_KHR_present_id" - let Number = 295 - - let Required = [ KHRSwapchain.Name ] +/// Requires KHRExternalMemory | Vulkan11. +module NVExternalMemoryRdma = + let Type = ExtensionType.Device + let Name = "VK_NV_external_memory_rdma" + let Number = 372 + type VkRemoteAddressNV = nativeint [] - type VkPhysicalDevicePresentIdFeaturesKHR = + type VkMemoryGetRemoteAddressInfoNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public presentId : VkBool32 + val mutable public memory : VkDeviceMemory + val mutable public handleType : Vulkan11.VkExternalMemoryHandleTypeFlags - new(pNext : nativeint, presentId : VkBool32) = + new(pNext : nativeint, memory : VkDeviceMemory, handleType : Vulkan11.VkExternalMemoryHandleTypeFlags) = { - sType = 1000294001u + sType = 1000371000u pNext = pNext - presentId = presentId + memory = memory + handleType = handleType } - new(presentId : VkBool32) = - VkPhysicalDevicePresentIdFeaturesKHR(Unchecked.defaultof, presentId) + new(memory : VkDeviceMemory, handleType : Vulkan11.VkExternalMemoryHandleTypeFlags) = + VkMemoryGetRemoteAddressInfoNV(Unchecked.defaultof, memory, handleType) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.presentId = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.memory = Unchecked.defaultof && x.handleType = Unchecked.defaultof static member Empty = - VkPhysicalDevicePresentIdFeaturesKHR(Unchecked.defaultof, Unchecked.defaultof) + VkMemoryGetRemoteAddressInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "presentId = %A" x.presentId - ] |> sprintf "VkPhysicalDevicePresentIdFeaturesKHR { %s }" + sprintf "memory = %A" x.memory + sprintf "handleType = %A" x.handleType + ] |> sprintf "VkMemoryGetRemoteAddressInfoNV { %s }" end [] - type VkPresentIdKHR = + type VkPhysicalDeviceExternalMemoryRDMAFeaturesNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public swapchainCount : uint32 - val mutable public pPresentIds : nativeptr + val mutable public externalMemoryRDMA : VkBool32 - new(pNext : nativeint, swapchainCount : uint32, pPresentIds : nativeptr) = + new(pNext : nativeint, externalMemoryRDMA : VkBool32) = { - sType = 1000294000u + sType = 1000371001u pNext = pNext - swapchainCount = swapchainCount - pPresentIds = pPresentIds + externalMemoryRDMA = externalMemoryRDMA } - new(swapchainCount : uint32, pPresentIds : nativeptr) = - VkPresentIdKHR(Unchecked.defaultof, swapchainCount, pPresentIds) + new(externalMemoryRDMA : VkBool32) = + VkPhysicalDeviceExternalMemoryRDMAFeaturesNV(Unchecked.defaultof, externalMemoryRDMA) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.swapchainCount = Unchecked.defaultof && x.pPresentIds = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.externalMemoryRDMA = Unchecked.defaultof static member Empty = - VkPresentIdKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + VkPhysicalDeviceExternalMemoryRDMAFeaturesNV(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "swapchainCount = %A" x.swapchainCount - sprintf "pPresentIds = %A" x.pPresentIds - ] |> sprintf "VkPresentIdKHR { %s }" + sprintf "externalMemoryRDMA = %A" x.externalMemoryRDMA + ] |> sprintf "VkPhysicalDeviceExternalMemoryRDMAFeaturesNV { %s }" end + [] + module EnumExtensions = + type Vulkan11.VkExternalMemoryHandleTypeFlags with + static member inline RdmaAddressBitNv = unbox 0x00001000 + type VkMemoryPropertyFlags with + static member inline RdmaCapableBitNv = unbox 0x00000100 -module KHRPresentWait = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRPresentId - open KHRSurface - open KHRSwapchain - let Name = "VK_KHR_present_wait" - let Number = 249 + module VkRaw = + [] + type VkGetMemoryRemoteAddressNVDel = delegate of VkDevice * nativeptr * nativeptr -> VkResult - let Required = [ KHRPresentId.Name; KHRSwapchain.Name ] + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading NVExternalMemoryRdma") + static let s_vkGetMemoryRemoteAddressNVDel = VkRaw.vkImportInstanceDelegate "vkGetMemoryRemoteAddressNV" + static do Report.End(3) |> ignore + static member vkGetMemoryRemoteAddressNV = s_vkGetMemoryRemoteAddressNVDel + let vkGetMemoryRemoteAddressNV(device : VkDevice, pMemoryGetRemoteAddressInfo : nativeptr, pAddress : nativeptr) = Loader.vkGetMemoryRemoteAddressNV.Invoke(device, pMemoryGetRemoteAddressInfo, pAddress) +/// Requires NVExternalMemory. +/// Deprecated by KHRExternalMemoryWin32. +module NVExternalMemoryWin32 = + let Type = ExtensionType.Device + let Name = "VK_NV_external_memory_win32" + let Number = 58 [] - type VkPhysicalDevicePresentWaitFeaturesKHR = + type VkExportMemoryWin32HandleInfoNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public presentWait : VkBool32 + val mutable public pAttributes : nativeptr + val mutable public dwAccess : uint32 - new(pNext : nativeint, presentWait : VkBool32) = + new(pNext : nativeint, pAttributes : nativeptr, dwAccess : uint32) = { - sType = 1000248000u + sType = 1000057001u pNext = pNext - presentWait = presentWait + pAttributes = pAttributes + dwAccess = dwAccess } - new(presentWait : VkBool32) = - VkPhysicalDevicePresentWaitFeaturesKHR(Unchecked.defaultof, presentWait) + new(pAttributes : nativeptr, dwAccess : uint32) = + VkExportMemoryWin32HandleInfoNV(Unchecked.defaultof, pAttributes, dwAccess) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.presentWait = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.pAttributes = Unchecked.defaultof> && x.dwAccess = Unchecked.defaultof static member Empty = - VkPhysicalDevicePresentWaitFeaturesKHR(Unchecked.defaultof, Unchecked.defaultof) + VkExportMemoryWin32HandleInfoNV(Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "presentWait = %A" x.presentWait - ] |> sprintf "VkPhysicalDevicePresentWaitFeaturesKHR { %s }" + sprintf "pAttributes = %A" x.pAttributes + sprintf "dwAccess = %A" x.dwAccess + ] |> sprintf "VkExportMemoryWin32HandleInfoNV { %s }" end - - module VkRaw = - [] - type VkWaitForPresentKHRDel = delegate of VkDevice * VkSwapchainKHR * uint64 * uint64 -> VkResult - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRPresentWait") - static let s_vkWaitForPresentKHRDel = VkRaw.vkImportInstanceDelegate "vkWaitForPresentKHR" - static do Report.End(3) |> ignore - static member vkWaitForPresentKHR = s_vkWaitForPresentKHRDel - let vkWaitForPresentKHR(device : VkDevice, swapchain : VkSwapchainKHR, presentId : uint64, timeout : uint64) = Loader.vkWaitForPresentKHR.Invoke(device, swapchain, presentId, timeout) - -module KHRRayQuery = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open EXTDebugReport - open EXTDescriptorIndexing - open KHRAccelerationStructure - open KHRBufferDeviceAddress - open KHRDeferredHostOperations - open KHRGetPhysicalDeviceProperties2 - open KHRMaintenance3 - open KHRShaderFloatControls - open KHRSpirv14 - let Name = "VK_KHR_ray_query" - let Number = 349 - - let Required = [ KHRAccelerationStructure.Name; KHRSpirv14.Name ] - - [] - type VkPhysicalDeviceRayQueryFeaturesKHR = + type VkImportMemoryWin32HandleInfoNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public rayQuery : VkBool32 + val mutable public handleType : NVExternalMemoryCapabilities.VkExternalMemoryHandleTypeFlagsNV + val mutable public handle : nativeint - new(pNext : nativeint, rayQuery : VkBool32) = + new(pNext : nativeint, handleType : NVExternalMemoryCapabilities.VkExternalMemoryHandleTypeFlagsNV, handle : nativeint) = { - sType = 1000348013u + sType = 1000057000u pNext = pNext - rayQuery = rayQuery + handleType = handleType + handle = handle } - new(rayQuery : VkBool32) = - VkPhysicalDeviceRayQueryFeaturesKHR(Unchecked.defaultof, rayQuery) + new(handleType : NVExternalMemoryCapabilities.VkExternalMemoryHandleTypeFlagsNV, handle : nativeint) = + VkImportMemoryWin32HandleInfoNV(Unchecked.defaultof, handleType, handle) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.rayQuery = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.handleType = Unchecked.defaultof && x.handle = Unchecked.defaultof static member Empty = - VkPhysicalDeviceRayQueryFeaturesKHR(Unchecked.defaultof, Unchecked.defaultof) + VkImportMemoryWin32HandleInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "rayQuery = %A" x.rayQuery - ] |> sprintf "VkPhysicalDeviceRayQueryFeaturesKHR { %s }" + sprintf "handleType = %A" x.handleType + sprintf "handle = %A" x.handle + ] |> sprintf "VkImportMemoryWin32HandleInfoNV { %s }" end + module VkRaw = + [] + type VkGetMemoryWin32HandleNVDel = delegate of VkDevice * VkDeviceMemory * NVExternalMemoryCapabilities.VkExternalMemoryHandleTypeFlagsNV * nativeptr -> VkResult -module KHRRayTracingMaintenance1 = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open EXTDebugReport - open EXTDescriptorIndexing - open KHRAccelerationStructure - open KHRBufferDeviceAddress - open KHRDeferredHostOperations - open KHRGetPhysicalDeviceProperties2 - open KHRMaintenance3 - let Name = "VK_KHR_ray_tracing_maintenance1" - let Number = 387 + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading NVExternalMemoryWin32") + static let s_vkGetMemoryWin32HandleNVDel = VkRaw.vkImportInstanceDelegate "vkGetMemoryWin32HandleNV" + static do Report.End(3) |> ignore + static member vkGetMemoryWin32HandleNV = s_vkGetMemoryWin32HandleNVDel + let vkGetMemoryWin32HandleNV(device : VkDevice, memory : VkDeviceMemory, handleType : NVExternalMemoryCapabilities.VkExternalMemoryHandleTypeFlagsNV, pHandle : nativeptr) = Loader.vkGetMemoryWin32HandleNV.Invoke(device, memory, handleType, pHandle) + +module NVFillRectangle = + let Type = ExtensionType.Device + let Name = "VK_NV_fill_rectangle" + let Number = 154 + + [] + module EnumExtensions = + type VkPolygonMode with + static member inline FillRectangleNv = unbox 1000153000 + + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +/// Promoted to KHRFragmentShaderBarycentric. +module NVFragmentShaderBarycentric = + let Type = ExtensionType.Device + let Name = "VK_NV_fragment_shader_barycentric" + let Number = 204 + + type VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV = KHRFragmentShaderBarycentric.VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR + + + +/// Requires KHRFragmentShadingRate. +module NVFragmentShadingRateEnums = + let Type = ExtensionType.Device + let Name = "VK_NV_fragment_shading_rate_enums" + let Number = 327 + + type VkFragmentShadingRateNV = + | D1InvocationPerPixel = 0 + | D1InvocationPer1x2Pixels = 1 + | D1InvocationPer2x1Pixels = 4 + | D1InvocationPer2x2Pixels = 5 + | D1InvocationPer2x4Pixels = 6 + | D1InvocationPer4x2Pixels = 9 + | D1InvocationPer4x4Pixels = 10 + | D2InvocationsPerPixel = 11 + | D4InvocationsPerPixel = 12 + | D8InvocationsPerPixel = 13 + | D16InvocationsPerPixel = 14 + | NoInvocations = 15 - let Required = [ KHRAccelerationStructure.Name ] + type VkFragmentShadingRateTypeNV = + | FragmentSize = 0 + | Enums = 1 [] - type VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR = + type VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public rayTracingMaintenance1 : VkBool32 - val mutable public rayTracingPipelineTraceRaysIndirect2 : VkBool32 + val mutable public fragmentShadingRateEnums : VkBool32 + val mutable public supersampleFragmentShadingRates : VkBool32 + val mutable public noInvocationFragmentShadingRates : VkBool32 - new(pNext : nativeint, rayTracingMaintenance1 : VkBool32, rayTracingPipelineTraceRaysIndirect2 : VkBool32) = + new(pNext : nativeint, fragmentShadingRateEnums : VkBool32, supersampleFragmentShadingRates : VkBool32, noInvocationFragmentShadingRates : VkBool32) = { - sType = 1000386000u + sType = 1000326001u pNext = pNext - rayTracingMaintenance1 = rayTracingMaintenance1 - rayTracingPipelineTraceRaysIndirect2 = rayTracingPipelineTraceRaysIndirect2 + fragmentShadingRateEnums = fragmentShadingRateEnums + supersampleFragmentShadingRates = supersampleFragmentShadingRates + noInvocationFragmentShadingRates = noInvocationFragmentShadingRates } - new(rayTracingMaintenance1 : VkBool32, rayTracingPipelineTraceRaysIndirect2 : VkBool32) = - VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR(Unchecked.defaultof, rayTracingMaintenance1, rayTracingPipelineTraceRaysIndirect2) + new(fragmentShadingRateEnums : VkBool32, supersampleFragmentShadingRates : VkBool32, noInvocationFragmentShadingRates : VkBool32) = + VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV(Unchecked.defaultof, fragmentShadingRateEnums, supersampleFragmentShadingRates, noInvocationFragmentShadingRates) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.rayTracingMaintenance1 = Unchecked.defaultof && x.rayTracingPipelineTraceRaysIndirect2 = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.fragmentShadingRateEnums = Unchecked.defaultof && x.supersampleFragmentShadingRates = Unchecked.defaultof && x.noInvocationFragmentShadingRates = Unchecked.defaultof static member Empty = - VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "rayTracingMaintenance1 = %A" x.rayTracingMaintenance1 - sprintf "rayTracingPipelineTraceRaysIndirect2 = %A" x.rayTracingPipelineTraceRaysIndirect2 - ] |> sprintf "VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR { %s }" + sprintf "fragmentShadingRateEnums = %A" x.fragmentShadingRateEnums + sprintf "supersampleFragmentShadingRates = %A" x.supersampleFragmentShadingRates + sprintf "noInvocationFragmentShadingRates = %A" x.noInvocationFragmentShadingRates + ] |> sprintf "VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV { %s }" end + [] + type VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public maxFragmentShadingRateInvocationCount : VkSampleCountFlags - [] - module EnumExtensions = - type VkQueryType with - static member inline AccelerationStructureSerializationBottomLevelPointersKhr = unbox 1000386000 - static member inline AccelerationStructureSizeKhr = unbox 1000386001 + new(pNext : nativeint, maxFragmentShadingRateInvocationCount : VkSampleCountFlags) = + { + sType = 1000326000u + pNext = pNext + maxFragmentShadingRateInvocationCount = maxFragmentShadingRateInvocationCount + } + new(maxFragmentShadingRateInvocationCount : VkSampleCountFlags) = + VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV(Unchecked.defaultof, maxFragmentShadingRateInvocationCount) - module KHRSynchronization2 = - [] - module EnumExtensions = - type VkAccessFlags2 with - static member inline Access2ShaderBindingTableReadBitKhr = unbox 0x00000100 - type VkPipelineStageFlags2 with - static member inline PipelineStage2AccelerationStructureCopyBitKhr = unbox 0x10000000 + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.maxFragmentShadingRateInvocationCount = Unchecked.defaultof + static member Empty = + VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV(Unchecked.defaultof, Unchecked.defaultof) - module KHRRayTracingPipeline = - [] - type VkTraceRaysIndirectCommand2KHR = - struct - val mutable public raygenShaderRecordAddress : VkDeviceAddress - val mutable public raygenShaderRecordSize : VkDeviceSize - val mutable public missShaderBindingTableAddress : VkDeviceAddress - val mutable public missShaderBindingTableSize : VkDeviceSize - val mutable public missShaderBindingTableStride : VkDeviceSize - val mutable public hitShaderBindingTableAddress : VkDeviceAddress - val mutable public hitShaderBindingTableSize : VkDeviceSize - val mutable public hitShaderBindingTableStride : VkDeviceSize - val mutable public callableShaderBindingTableAddress : VkDeviceAddress - val mutable public callableShaderBindingTableSize : VkDeviceSize - val mutable public callableShaderBindingTableStride : VkDeviceSize - val mutable public width : uint32 - val mutable public height : uint32 - val mutable public depth : uint32 + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "maxFragmentShadingRateInvocationCount = %A" x.maxFragmentShadingRateInvocationCount + ] |> sprintf "VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV { %s }" + end - new(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) = - { - raygenShaderRecordAddress = raygenShaderRecordAddress - raygenShaderRecordSize = raygenShaderRecordSize - missShaderBindingTableAddress = missShaderBindingTableAddress - missShaderBindingTableSize = missShaderBindingTableSize - missShaderBindingTableStride = missShaderBindingTableStride - hitShaderBindingTableAddress = hitShaderBindingTableAddress - hitShaderBindingTableSize = hitShaderBindingTableSize - hitShaderBindingTableStride = hitShaderBindingTableStride - callableShaderBindingTableAddress = callableShaderBindingTableAddress - callableShaderBindingTableSize = callableShaderBindingTableSize - callableShaderBindingTableStride = callableShaderBindingTableStride - width = width - height = height - depth = depth - } + [] + type VkPipelineFragmentShadingRateEnumStateCreateInfoNV = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public shadingRateType : VkFragmentShadingRateTypeNV + val mutable public shadingRate : VkFragmentShadingRateNV + val mutable public combinerOps : KHRFragmentShadingRate.VkFragmentShadingRateCombinerOpKHR_2 - member x.IsEmpty = - x.raygenShaderRecordAddress = Unchecked.defaultof && x.raygenShaderRecordSize = Unchecked.defaultof && x.missShaderBindingTableAddress = Unchecked.defaultof && x.missShaderBindingTableSize = Unchecked.defaultof && x.missShaderBindingTableStride = Unchecked.defaultof && x.hitShaderBindingTableAddress = Unchecked.defaultof && x.hitShaderBindingTableSize = Unchecked.defaultof && x.hitShaderBindingTableStride = Unchecked.defaultof && x.callableShaderBindingTableAddress = Unchecked.defaultof && x.callableShaderBindingTableSize = Unchecked.defaultof && x.callableShaderBindingTableStride = Unchecked.defaultof && x.width = Unchecked.defaultof && x.height = Unchecked.defaultof && x.depth = Unchecked.defaultof + new(pNext : nativeint, shadingRateType : VkFragmentShadingRateTypeNV, shadingRate : VkFragmentShadingRateNV, combinerOps : KHRFragmentShadingRate.VkFragmentShadingRateCombinerOpKHR_2) = + { + sType = 1000326002u + pNext = pNext + shadingRateType = shadingRateType + shadingRate = shadingRate + combinerOps = combinerOps + } - static member Empty = - VkTraceRaysIndirectCommand2KHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + new(shadingRateType : VkFragmentShadingRateTypeNV, shadingRate : VkFragmentShadingRateNV, combinerOps : KHRFragmentShadingRate.VkFragmentShadingRateCombinerOpKHR_2) = + VkPipelineFragmentShadingRateEnumStateCreateInfoNV(Unchecked.defaultof, shadingRateType, shadingRate, combinerOps) - override x.ToString() = - String.concat "; " [ - sprintf "raygenShaderRecordAddress = %A" x.raygenShaderRecordAddress - sprintf "raygenShaderRecordSize = %A" x.raygenShaderRecordSize - sprintf "missShaderBindingTableAddress = %A" x.missShaderBindingTableAddress - sprintf "missShaderBindingTableSize = %A" x.missShaderBindingTableSize - sprintf "missShaderBindingTableStride = %A" x.missShaderBindingTableStride - sprintf "hitShaderBindingTableAddress = %A" x.hitShaderBindingTableAddress - sprintf "hitShaderBindingTableSize = %A" x.hitShaderBindingTableSize - sprintf "hitShaderBindingTableStride = %A" x.hitShaderBindingTableStride - sprintf "callableShaderBindingTableAddress = %A" x.callableShaderBindingTableAddress - sprintf "callableShaderBindingTableSize = %A" x.callableShaderBindingTableSize - sprintf "callableShaderBindingTableStride = %A" x.callableShaderBindingTableStride - sprintf "width = %A" x.width - sprintf "height = %A" x.height - sprintf "depth = %A" x.depth - ] |> sprintf "VkTraceRaysIndirectCommand2KHR { %s }" - end + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.shadingRateType = Unchecked.defaultof && x.shadingRate = Unchecked.defaultof && x.combinerOps = Unchecked.defaultof + static member Empty = + VkPipelineFragmentShadingRateEnumStateCreateInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) - module VkRaw = - [] - type VkCmdTraceRaysIndirect2KHRDel = delegate of VkCommandBuffer * VkDeviceAddress -> unit + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "shadingRateType = %A" x.shadingRateType + sprintf "shadingRate = %A" x.shadingRate + sprintf "combinerOps = %A" x.combinerOps + ] |> sprintf "VkPipelineFragmentShadingRateEnumStateCreateInfoNV { %s }" + end - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRRayTracingMaintenance1 -> KHRRayTracingPipeline") - static let s_vkCmdTraceRaysIndirect2KHRDel = VkRaw.vkImportInstanceDelegate "vkCmdTraceRaysIndirect2KHR" - static do Report.End(3) |> ignore - static member vkCmdTraceRaysIndirect2KHR = s_vkCmdTraceRaysIndirect2KHRDel - let vkCmdTraceRaysIndirect2KHR(commandBuffer : VkCommandBuffer, indirectDeviceAddress : VkDeviceAddress) = Loader.vkCmdTraceRaysIndirect2KHR.Invoke(commandBuffer, indirectDeviceAddress) -module KHRRelaxedBlockLayout = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_KHR_relaxed_block_layout" - let Number = 145 + module VkRaw = + [] + type VkCmdSetFragmentShadingRateEnumNVDel = delegate of VkCommandBuffer * VkFragmentShadingRateNV * KHRFragmentShadingRate.VkFragmentShadingRateCombinerOpKHR_2 -> unit + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading NVFragmentShadingRateEnums") + static let s_vkCmdSetFragmentShadingRateEnumNVDel = VkRaw.vkImportInstanceDelegate "vkCmdSetFragmentShadingRateEnumNV" + static do Report.End(3) |> ignore + static member vkCmdSetFragmentShadingRateEnumNV = s_vkCmdSetFragmentShadingRateEnumNVDel + let vkCmdSetFragmentShadingRateEnumNV(commandBuffer : VkCommandBuffer, shadingRate : VkFragmentShadingRateNV, combinerOps : KHRFragmentShadingRate.VkFragmentShadingRateCombinerOpKHR_2) = Loader.vkCmdSetFragmentShadingRateEnumNV.Invoke(commandBuffer, shadingRate, combinerOps) -module KHRSamplerMirrorClampToEdge = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_KHR_sampler_mirror_clamp_to_edge" - let Number = 15 +module NVGeometryShaderPassthrough = + let Type = ExtensionType.Device + let Name = "VK_NV_geometry_shader_passthrough" + let Number = 96 +/// Deprecated. +module NVGlslShader = + let Type = ExtensionType.Device + let Name = "VK_NV_glsl_shader" + let Number = 13 [] module EnumExtensions = - type VkSamplerAddressMode with - /// Note that this defines what was previously a core enum, and so uses the 'value' attribute rather than 'offset', and does not have a suffix. This is a special case, and should not be repeated - static member inline MirrorClampToEdge = unbox 4 - /// Alias introduced for consistency with extension suffixing rules - static member inline MirrorClampToEdgeKhr = unbox 4 - - -module KHRSeparateDepthStencilLayouts = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRCreateRenderpass2 - open KHRGetPhysicalDeviceProperties2 - open KHRMaintenance2 - open KHRMultiview - let Name = "VK_KHR_separate_depth_stencil_layouts" - let Number = 242 + type VkResult with + static member inline ErrorInvalidShaderNv = unbox -1000012000 - let Required = [ KHRCreateRenderpass2.Name; KHRGetPhysicalDeviceProperties2.Name ] +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module NVInheritedViewportScissor = + let Type = ExtensionType.Device + let Name = "VK_NV_inherited_viewport_scissor" + let Number = 279 - type VkAttachmentDescriptionStencilLayoutKHR = VkAttachmentDescriptionStencilLayout + [] + type VkCommandBufferInheritanceViewportScissorInfoNV = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public viewportScissor2D : VkBool32 + val mutable public viewportDepthCount : uint32 + val mutable public pViewportDepths : nativeptr - type VkAttachmentReferenceStencilLayoutKHR = VkAttachmentReferenceStencilLayout + new(pNext : nativeint, viewportScissor2D : VkBool32, viewportDepthCount : uint32, pViewportDepths : nativeptr) = + { + sType = 1000278001u + pNext = pNext + viewportScissor2D = viewportScissor2D + viewportDepthCount = viewportDepthCount + pViewportDepths = pViewportDepths + } - type VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures + new(viewportScissor2D : VkBool32, viewportDepthCount : uint32, pViewportDepths : nativeptr) = + VkCommandBufferInheritanceViewportScissorInfoNV(Unchecked.defaultof, viewportScissor2D, viewportDepthCount, pViewportDepths) + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.viewportScissor2D = Unchecked.defaultof && x.viewportDepthCount = Unchecked.defaultof && x.pViewportDepths = Unchecked.defaultof> - [] - module EnumExtensions = - type VkImageLayout with - static member inline DepthAttachmentOptimalKhr = unbox 1000241000 - static member inline DepthReadOnlyOptimalKhr = unbox 1000241001 - static member inline StencilAttachmentOptimalKhr = unbox 1000241002 - static member inline StencilReadOnlyOptimalKhr = unbox 1000241003 + static member Empty = + VkCommandBufferInheritanceViewportScissorInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "viewportScissor2D = %A" x.viewportScissor2D + sprintf "viewportDepthCount = %A" x.viewportDepthCount + sprintf "pViewportDepths = %A" x.pViewportDepths + ] |> sprintf "VkCommandBufferInheritanceViewportScissorInfoNV { %s }" + end -module KHRShaderAtomicInt64 = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_KHR_shader_atomic_int64" - let Number = 181 + [] + type VkPhysicalDeviceInheritedViewportScissorFeaturesNV = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public inheritedViewportScissor2D : VkBool32 - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] + new(pNext : nativeint, inheritedViewportScissor2D : VkBool32) = + { + sType = 1000278000u + pNext = pNext + inheritedViewportScissor2D = inheritedViewportScissor2D + } + new(inheritedViewportScissor2D : VkBool32) = + VkPhysicalDeviceInheritedViewportScissorFeaturesNV(Unchecked.defaultof, inheritedViewportScissor2D) - type VkPhysicalDeviceShaderAtomicInt64FeaturesKHR = VkPhysicalDeviceShaderAtomicInt64Features + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.inheritedViewportScissor2D = Unchecked.defaultof + static member Empty = + VkPhysicalDeviceInheritedViewportScissorFeaturesNV(Unchecked.defaultof, Unchecked.defaultof) + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "inheritedViewportScissor2D = %A" x.inheritedViewportScissor2D + ] |> sprintf "VkPhysicalDeviceInheritedViewportScissorFeaturesNV { %s }" + end -module KHRShaderClock = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_KHR_shader_clock" - let Number = 182 - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module NVLinearColorAttachment = + let Type = ExtensionType.Device + let Name = "VK_NV_linear_color_attachment" + let Number = 431 [] - type VkPhysicalDeviceShaderClockFeaturesKHR = + type VkPhysicalDeviceLinearColorAttachmentFeaturesNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public shaderSubgroupClock : VkBool32 - val mutable public shaderDeviceClock : VkBool32 + val mutable public linearColorAttachment : VkBool32 - new(pNext : nativeint, shaderSubgroupClock : VkBool32, shaderDeviceClock : VkBool32) = + new(pNext : nativeint, linearColorAttachment : VkBool32) = { - sType = 1000181000u + sType = 1000430000u pNext = pNext - shaderSubgroupClock = shaderSubgroupClock - shaderDeviceClock = shaderDeviceClock + linearColorAttachment = linearColorAttachment } - new(shaderSubgroupClock : VkBool32, shaderDeviceClock : VkBool32) = - VkPhysicalDeviceShaderClockFeaturesKHR(Unchecked.defaultof, shaderSubgroupClock, shaderDeviceClock) + new(linearColorAttachment : VkBool32) = + VkPhysicalDeviceLinearColorAttachmentFeaturesNV(Unchecked.defaultof, linearColorAttachment) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.shaderSubgroupClock = Unchecked.defaultof && x.shaderDeviceClock = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.linearColorAttachment = Unchecked.defaultof static member Empty = - VkPhysicalDeviceShaderClockFeaturesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceLinearColorAttachmentFeaturesNV(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "shaderSubgroupClock = %A" x.shaderSubgroupClock - sprintf "shaderDeviceClock = %A" x.shaderDeviceClock - ] |> sprintf "VkPhysicalDeviceShaderClockFeaturesKHR { %s }" + sprintf "linearColorAttachment = %A" x.linearColorAttachment + ] |> sprintf "VkPhysicalDeviceLinearColorAttachmentFeaturesNV { %s }" end -module KHRShaderDrawParameters = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_KHR_shader_draw_parameters" - let Number = 64 - - -module KHRShaderFloat16Int8 = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_KHR_shader_float16_int8" - let Number = 83 - - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] - + [] + module ``KHRFormatFeatureFlags2 | Vulkan13`` = + [] + module EnumExtensions = + type Vulkan13.VkFormatFeatureFlags2 with + /// Format support linear image as render target, it cannot be mixed with non linear attachment + static member inline FormatFeature2LinearColorAttachmentBitNv = unbox 0x00000040 - type VkPhysicalDeviceFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features - type VkPhysicalDeviceShaderFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features +module NVLowLatency = + let Type = ExtensionType.Device + let Name = "VK_NV_low_latency" + let Number = 311 + [] + type VkQueryLowLatencySupportNV = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public pQueriedLowLatencyData : nativeint + new(pNext : nativeint, pQueriedLowLatencyData : nativeint) = + { + sType = 1000310000u + pNext = pNext + pQueriedLowLatencyData = pQueriedLowLatencyData + } -module KHRShaderIntegerDotProduct = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_KHR_shader_integer_dot_product" - let Number = 281 + new(pQueriedLowLatencyData : nativeint) = + VkQueryLowLatencySupportNV(Unchecked.defaultof, pQueriedLowLatencyData) - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.pQueriedLowLatencyData = Unchecked.defaultof + static member Empty = + VkQueryLowLatencySupportNV(Unchecked.defaultof, Unchecked.defaultof) - type VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR = VkPhysicalDeviceShaderIntegerDotProductFeatures + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "pQueriedLowLatencyData = %A" x.pQueriedLowLatencyData + ] |> sprintf "VkQueryLowLatencySupportNV { %s }" + end - type VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR = VkPhysicalDeviceShaderIntegerDotProductProperties +/// Requires Vulkan12 | KHRTimelineSemaphore. +module NVLowLatency2 = + let Type = ExtensionType.Device + let Name = "VK_NV_low_latency2" + let Number = 506 -module KHRShaderNonSemanticInfo = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_KHR_shader_non_semantic_info" - let Number = 294 + type VkLatencyMarkerNV = + | SimulationStart = 0 + | SimulationEnd = 1 + | RendersubmitStart = 2 + | RendersubmitEnd = 3 + | PresentStart = 4 + | PresentEnd = 5 + | InputSample = 6 + | TriggerFlash = 7 + | OutOfBandRendersubmitStart = 8 + | OutOfBandRendersubmitEnd = 9 + | OutOfBandPresentStart = 10 + | OutOfBandPresentEnd = 11 + type VkOutOfBandQueueTypeNV = + | Render = 0 + | Present = 1 -module KHRShaderSubgroupExtendedTypes = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_KHR_shader_subgroup_extended_types" - let Number = 176 + [] + type VkLatencyTimingsFrameReportNV = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public presentID : uint64 + val mutable public inputSampleTimeUs : uint64 + val mutable public simStartTimeUs : uint64 + val mutable public simEndTimeUs : uint64 + val mutable public renderSubmitStartTimeUs : uint64 + val mutable public renderSubmitEndTimeUs : uint64 + val mutable public presentStartTimeUs : uint64 + val mutable public presentEndTimeUs : uint64 + val mutable public driverStartTimeUs : uint64 + val mutable public driverEndTimeUs : uint64 + val mutable public osRenderQueueStartTimeUs : uint64 + val mutable public osRenderQueueEndTimeUs : uint64 + val mutable public gpuRenderStartTimeUs : uint64 + val mutable public gpuRenderEndTimeUs : uint64 - type VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures + new(pNext : nativeint, presentID : uint64, inputSampleTimeUs : uint64, simStartTimeUs : uint64, simEndTimeUs : uint64, renderSubmitStartTimeUs : uint64, renderSubmitEndTimeUs : uint64, presentStartTimeUs : uint64, presentEndTimeUs : uint64, driverStartTimeUs : uint64, driverEndTimeUs : uint64, osRenderQueueStartTimeUs : uint64, osRenderQueueEndTimeUs : uint64, gpuRenderStartTimeUs : uint64, gpuRenderEndTimeUs : uint64) = + { + sType = 1000505004u + pNext = pNext + presentID = presentID + inputSampleTimeUs = inputSampleTimeUs + simStartTimeUs = simStartTimeUs + simEndTimeUs = simEndTimeUs + renderSubmitStartTimeUs = renderSubmitStartTimeUs + renderSubmitEndTimeUs = renderSubmitEndTimeUs + presentStartTimeUs = presentStartTimeUs + presentEndTimeUs = presentEndTimeUs + driverStartTimeUs = driverStartTimeUs + driverEndTimeUs = driverEndTimeUs + osRenderQueueStartTimeUs = osRenderQueueStartTimeUs + osRenderQueueEndTimeUs = osRenderQueueEndTimeUs + gpuRenderStartTimeUs = gpuRenderStartTimeUs + gpuRenderEndTimeUs = gpuRenderEndTimeUs + } + new(presentID : uint64, inputSampleTimeUs : uint64, simStartTimeUs : uint64, simEndTimeUs : uint64, renderSubmitStartTimeUs : uint64, renderSubmitEndTimeUs : uint64, presentStartTimeUs : uint64, presentEndTimeUs : uint64, driverStartTimeUs : uint64, driverEndTimeUs : uint64, osRenderQueueStartTimeUs : uint64, osRenderQueueEndTimeUs : uint64, gpuRenderStartTimeUs : uint64, gpuRenderEndTimeUs : uint64) = + VkLatencyTimingsFrameReportNV(Unchecked.defaultof, presentID, inputSampleTimeUs, simStartTimeUs, simEndTimeUs, renderSubmitStartTimeUs, renderSubmitEndTimeUs, presentStartTimeUs, presentEndTimeUs, driverStartTimeUs, driverEndTimeUs, osRenderQueueStartTimeUs, osRenderQueueEndTimeUs, gpuRenderStartTimeUs, gpuRenderEndTimeUs) + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.presentID = Unchecked.defaultof && x.inputSampleTimeUs = Unchecked.defaultof && x.simStartTimeUs = Unchecked.defaultof && x.simEndTimeUs = Unchecked.defaultof && x.renderSubmitStartTimeUs = Unchecked.defaultof && x.renderSubmitEndTimeUs = Unchecked.defaultof && x.presentStartTimeUs = Unchecked.defaultof && x.presentEndTimeUs = Unchecked.defaultof && x.driverStartTimeUs = Unchecked.defaultof && x.driverEndTimeUs = Unchecked.defaultof && x.osRenderQueueStartTimeUs = Unchecked.defaultof && x.osRenderQueueEndTimeUs = Unchecked.defaultof && x.gpuRenderStartTimeUs = Unchecked.defaultof && x.gpuRenderEndTimeUs = Unchecked.defaultof -module KHRShaderSubgroupUniformControlFlow = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_KHR_shader_subgroup_uniform_control_flow" - let Number = 324 + static member Empty = + VkLatencyTimingsFrameReportNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "presentID = %A" x.presentID + sprintf "inputSampleTimeUs = %A" x.inputSampleTimeUs + sprintf "simStartTimeUs = %A" x.simStartTimeUs + sprintf "simEndTimeUs = %A" x.simEndTimeUs + sprintf "renderSubmitStartTimeUs = %A" x.renderSubmitStartTimeUs + sprintf "renderSubmitEndTimeUs = %A" x.renderSubmitEndTimeUs + sprintf "presentStartTimeUs = %A" x.presentStartTimeUs + sprintf "presentEndTimeUs = %A" x.presentEndTimeUs + sprintf "driverStartTimeUs = %A" x.driverStartTimeUs + sprintf "driverEndTimeUs = %A" x.driverEndTimeUs + sprintf "osRenderQueueStartTimeUs = %A" x.osRenderQueueStartTimeUs + sprintf "osRenderQueueEndTimeUs = %A" x.osRenderQueueEndTimeUs + sprintf "gpuRenderStartTimeUs = %A" x.gpuRenderStartTimeUs + sprintf "gpuRenderEndTimeUs = %A" x.gpuRenderEndTimeUs + ] |> sprintf "VkLatencyTimingsFrameReportNV { %s }" + end [] - type VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR = + type VkGetLatencyMarkerInfoNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public shaderSubgroupUniformControlFlow : VkBool32 + val mutable public timingCount : uint32 + val mutable public pTimings : nativeptr - new(pNext : nativeint, shaderSubgroupUniformControlFlow : VkBool32) = + new(pNext : nativeint, timingCount : uint32, pTimings : nativeptr) = { - sType = 1000323000u + sType = 1000505003u pNext = pNext - shaderSubgroupUniformControlFlow = shaderSubgroupUniformControlFlow + timingCount = timingCount + pTimings = pTimings } - new(shaderSubgroupUniformControlFlow : VkBool32) = - VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR(Unchecked.defaultof, shaderSubgroupUniformControlFlow) + new(timingCount : uint32, pTimings : nativeptr) = + VkGetLatencyMarkerInfoNV(Unchecked.defaultof, timingCount, pTimings) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.shaderSubgroupUniformControlFlow = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.timingCount = Unchecked.defaultof && x.pTimings = Unchecked.defaultof> static member Empty = - VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR(Unchecked.defaultof, Unchecked.defaultof) + VkGetLatencyMarkerInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "shaderSubgroupUniformControlFlow = %A" x.shaderSubgroupUniformControlFlow - ] |> sprintf "VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR { %s }" + sprintf "timingCount = %A" x.timingCount + sprintf "pTimings = %A" x.pTimings + ] |> sprintf "VkGetLatencyMarkerInfoNV { %s }" end + [] + type VkLatencySleepInfoNV = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public signalSemaphore : VkSemaphore + val mutable public value : uint64 + new(pNext : nativeint, signalSemaphore : VkSemaphore, value : uint64) = + { + sType = 1000505001u + pNext = pNext + signalSemaphore = signalSemaphore + value = value + } -module KHRShaderTerminateInvocation = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_KHR_shader_terminate_invocation" - let Number = 216 - - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] - - - type VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR = VkPhysicalDeviceShaderTerminateInvocationFeatures - - + new(signalSemaphore : VkSemaphore, value : uint64) = + VkLatencySleepInfoNV(Unchecked.defaultof, signalSemaphore, value) -module KHRSharedPresentableImage = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - open KHRGetSurfaceCapabilities2 - open KHRSurface - open KHRSwapchain - let Name = "VK_KHR_shared_presentable_image" - let Number = 112 + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.signalSemaphore = Unchecked.defaultof && x.value = Unchecked.defaultof - let Required = [ KHRGetPhysicalDeviceProperties2.Name; KHRGetSurfaceCapabilities2.Name; KHRSwapchain.Name ] + static member Empty = + VkLatencySleepInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "signalSemaphore = %A" x.signalSemaphore + sprintf "value = %A" x.value + ] |> sprintf "VkLatencySleepInfoNV { %s }" + end [] - type VkSharedPresentSurfaceCapabilitiesKHR = + type VkLatencySleepModeInfoNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public sharedPresentSupportedUsageFlags : VkImageUsageFlags + val mutable public lowLatencyMode : VkBool32 + val mutable public lowLatencyBoost : VkBool32 + val mutable public minimumIntervalUs : uint32 - new(pNext : nativeint, sharedPresentSupportedUsageFlags : VkImageUsageFlags) = + new(pNext : nativeint, lowLatencyMode : VkBool32, lowLatencyBoost : VkBool32, minimumIntervalUs : uint32) = { - sType = 1000111000u + sType = 1000505000u pNext = pNext - sharedPresentSupportedUsageFlags = sharedPresentSupportedUsageFlags + lowLatencyMode = lowLatencyMode + lowLatencyBoost = lowLatencyBoost + minimumIntervalUs = minimumIntervalUs } - new(sharedPresentSupportedUsageFlags : VkImageUsageFlags) = - VkSharedPresentSurfaceCapabilitiesKHR(Unchecked.defaultof, sharedPresentSupportedUsageFlags) + new(lowLatencyMode : VkBool32, lowLatencyBoost : VkBool32, minimumIntervalUs : uint32) = + VkLatencySleepModeInfoNV(Unchecked.defaultof, lowLatencyMode, lowLatencyBoost, minimumIntervalUs) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.sharedPresentSupportedUsageFlags = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.lowLatencyMode = Unchecked.defaultof && x.lowLatencyBoost = Unchecked.defaultof && x.minimumIntervalUs = Unchecked.defaultof static member Empty = - VkSharedPresentSurfaceCapabilitiesKHR(Unchecked.defaultof, Unchecked.defaultof) + VkLatencySleepModeInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "sharedPresentSupportedUsageFlags = %A" x.sharedPresentSupportedUsageFlags - ] |> sprintf "VkSharedPresentSurfaceCapabilitiesKHR { %s }" + sprintf "lowLatencyMode = %A" x.lowLatencyMode + sprintf "lowLatencyBoost = %A" x.lowLatencyBoost + sprintf "minimumIntervalUs = %A" x.minimumIntervalUs + ] |> sprintf "VkLatencySleepModeInfoNV { %s }" end + [] + type VkLatencySubmissionPresentIdNV = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public presentID : uint64 - [] - module EnumExtensions = - type VkImageLayout with - static member inline SharedPresentKhr = unbox 1000111000 - type VkPresentModeKHR with - static member inline SharedDemandRefresh = unbox 1000111000 - static member inline SharedContinuousRefresh = unbox 1000111001 - - module VkRaw = - [] - type VkGetSwapchainStatusKHRDel = delegate of VkDevice * VkSwapchainKHR -> VkResult + new(pNext : nativeint, presentID : uint64) = + { + sType = 1000505005u + pNext = pNext + presentID = presentID + } - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRSharedPresentableImage") - static let s_vkGetSwapchainStatusKHRDel = VkRaw.vkImportInstanceDelegate "vkGetSwapchainStatusKHR" - static do Report.End(3) |> ignore - static member vkGetSwapchainStatusKHR = s_vkGetSwapchainStatusKHRDel - let vkGetSwapchainStatusKHR(device : VkDevice, swapchain : VkSwapchainKHR) = Loader.vkGetSwapchainStatusKHR.Invoke(device, swapchain) + new(presentID : uint64) = + VkLatencySubmissionPresentIdNV(Unchecked.defaultof, presentID) -module KHRSurfaceProtectedCapabilities = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetSurfaceCapabilities2 - open KHRSurface - let Name = "VK_KHR_surface_protected_capabilities" - let Number = 240 + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.presentID = Unchecked.defaultof - let Required = [ KHRGetSurfaceCapabilities2.Name ] + static member Empty = + VkLatencySubmissionPresentIdNV(Unchecked.defaultof, Unchecked.defaultof) + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "presentID = %A" x.presentID + ] |> sprintf "VkLatencySubmissionPresentIdNV { %s }" + end [] - type VkSurfaceProtectedCapabilitiesKHR = + type VkLatencySurfaceCapabilitiesNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public supportsProtected : VkBool32 + val mutable public presentModeCount : uint32 + val mutable public pPresentModes : nativeptr - new(pNext : nativeint, supportsProtected : VkBool32) = + new(pNext : nativeint, presentModeCount : uint32, pPresentModes : nativeptr) = { - sType = 1000239000u + sType = 1000505008u pNext = pNext - supportsProtected = supportsProtected + presentModeCount = presentModeCount + pPresentModes = pPresentModes } - new(supportsProtected : VkBool32) = - VkSurfaceProtectedCapabilitiesKHR(Unchecked.defaultof, supportsProtected) + new(presentModeCount : uint32, pPresentModes : nativeptr) = + VkLatencySurfaceCapabilitiesNV(Unchecked.defaultof, presentModeCount, pPresentModes) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.supportsProtected = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.presentModeCount = Unchecked.defaultof && x.pPresentModes = Unchecked.defaultof> static member Empty = - VkSurfaceProtectedCapabilitiesKHR(Unchecked.defaultof, Unchecked.defaultof) + VkLatencySurfaceCapabilitiesNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "supportsProtected = %A" x.supportsProtected - ] |> sprintf "VkSurfaceProtectedCapabilitiesKHR { %s }" + sprintf "presentModeCount = %A" x.presentModeCount + sprintf "pPresentModes = %A" x.pPresentModes + ] |> sprintf "VkLatencySurfaceCapabilitiesNV { %s }" end + [] + type VkOutOfBandQueueTypeInfoNV = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public queueType : VkOutOfBandQueueTypeNV + new(pNext : nativeint, queueType : VkOutOfBandQueueTypeNV) = + { + sType = 1000505006u + pNext = pNext + queueType = queueType + } -module KHRSwapchainMutableFormat = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRImageFormatList - open KHRMaintenance2 - open KHRSurface - open KHRSwapchain - let Name = "VK_KHR_swapchain_mutable_format" - let Number = 201 + new(queueType : VkOutOfBandQueueTypeNV) = + VkOutOfBandQueueTypeInfoNV(Unchecked.defaultof, queueType) - let Required = [ KHRImageFormatList.Name; KHRMaintenance2.Name; KHRSwapchain.Name ] + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.queueType = Unchecked.defaultof + static member Empty = + VkOutOfBandQueueTypeInfoNV(Unchecked.defaultof, Unchecked.defaultof) - [] - module EnumExtensions = - type VkSwapchainCreateFlagsKHR with - static member inline MutableFormatBit = unbox 0x00000004 + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "queueType = %A" x.queueType + ] |> sprintf "VkOutOfBandQueueTypeInfoNV { %s }" + end + [] + type VkSetLatencyMarkerInfoNV = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public presentID : uint64 + val mutable public marker : VkLatencyMarkerNV -module KHRTimelineSemaphore = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_KHR_timeline_semaphore" - let Number = 208 + new(pNext : nativeint, presentID : uint64, marker : VkLatencyMarkerNV) = + { + sType = 1000505002u + pNext = pNext + presentID = presentID + marker = marker + } - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] + new(presentID : uint64, marker : VkLatencyMarkerNV) = + VkSetLatencyMarkerInfoNV(Unchecked.defaultof, presentID, marker) + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.presentID = Unchecked.defaultof && x.marker = Unchecked.defaultof - type VkSemaphoreTypeKHR = VkSemaphoreType - type VkSemaphoreWaitFlagsKHR = VkSemaphoreWaitFlags + static member Empty = + VkSetLatencyMarkerInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) - type VkPhysicalDeviceTimelineSemaphoreFeaturesKHR = VkPhysicalDeviceTimelineSemaphoreFeatures + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "presentID = %A" x.presentID + sprintf "marker = %A" x.marker + ] |> sprintf "VkSetLatencyMarkerInfoNV { %s }" + end - type VkPhysicalDeviceTimelineSemaphorePropertiesKHR = VkPhysicalDeviceTimelineSemaphoreProperties + [] + type VkSwapchainLatencyCreateInfoNV = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public latencyModeEnable : VkBool32 - type VkSemaphoreSignalInfoKHR = VkSemaphoreSignalInfo + new(pNext : nativeint, latencyModeEnable : VkBool32) = + { + sType = 1000505007u + pNext = pNext + latencyModeEnable = latencyModeEnable + } - type VkSemaphoreTypeCreateInfoKHR = VkSemaphoreTypeCreateInfo + new(latencyModeEnable : VkBool32) = + VkSwapchainLatencyCreateInfoNV(Unchecked.defaultof, latencyModeEnable) - type VkSemaphoreWaitInfoKHR = VkSemaphoreWaitInfo + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.latencyModeEnable = Unchecked.defaultof - type VkTimelineSemaphoreSubmitInfoKHR = VkTimelineSemaphoreSubmitInfo + static member Empty = + VkSwapchainLatencyCreateInfoNV(Unchecked.defaultof, Unchecked.defaultof) + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "latencyModeEnable = %A" x.latencyModeEnable + ] |> sprintf "VkSwapchainLatencyCreateInfoNV { %s }" + end - [] - module EnumExtensions = - type VkSemaphoreType with - static member inline BinaryKhr = unbox 0 - static member inline TimelineKhr = unbox 1 - type VkSemaphoreWaitFlags with - static member inline AnyBitKhr = unbox 0x00000001 module VkRaw = [] - type VkGetSemaphoreCounterValueKHRDel = delegate of VkDevice * VkSemaphore * nativeptr -> VkResult + type VkSetLatencySleepModeNVDel = delegate of VkDevice * KHRSwapchain.VkSwapchainKHR * nativeptr -> VkResult [] - type VkWaitSemaphoresKHRDel = delegate of VkDevice * nativeptr * uint64 -> VkResult + type VkLatencySleepNVDel = delegate of VkDevice * KHRSwapchain.VkSwapchainKHR * nativeptr -> VkResult [] - type VkSignalSemaphoreKHRDel = delegate of VkDevice * nativeptr -> VkResult + type VkSetLatencyMarkerNVDel = delegate of VkDevice * KHRSwapchain.VkSwapchainKHR * nativeptr -> unit + [] + type VkGetLatencyTimingsNVDel = delegate of VkDevice * KHRSwapchain.VkSwapchainKHR * nativeptr -> unit + [] + type VkQueueNotifyOutOfBandNVDel = delegate of VkQueue * nativeptr -> unit [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRTimelineSemaphore") - static let s_vkGetSemaphoreCounterValueKHRDel = VkRaw.vkImportInstanceDelegate "vkGetSemaphoreCounterValueKHR" - static let s_vkWaitSemaphoresKHRDel = VkRaw.vkImportInstanceDelegate "vkWaitSemaphoresKHR" - static let s_vkSignalSemaphoreKHRDel = VkRaw.vkImportInstanceDelegate "vkSignalSemaphoreKHR" + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading NVLowLatency2") + static let s_vkSetLatencySleepModeNVDel = VkRaw.vkImportInstanceDelegate "vkSetLatencySleepModeNV" + static let s_vkLatencySleepNVDel = VkRaw.vkImportInstanceDelegate "vkLatencySleepNV" + static let s_vkSetLatencyMarkerNVDel = VkRaw.vkImportInstanceDelegate "vkSetLatencyMarkerNV" + static let s_vkGetLatencyTimingsNVDel = VkRaw.vkImportInstanceDelegate "vkGetLatencyTimingsNV" + static let s_vkQueueNotifyOutOfBandNVDel = VkRaw.vkImportInstanceDelegate "vkQueueNotifyOutOfBandNV" static do Report.End(3) |> ignore - static member vkGetSemaphoreCounterValueKHR = s_vkGetSemaphoreCounterValueKHRDel - static member vkWaitSemaphoresKHR = s_vkWaitSemaphoresKHRDel - static member vkSignalSemaphoreKHR = s_vkSignalSemaphoreKHRDel - let vkGetSemaphoreCounterValueKHR(device : VkDevice, semaphore : VkSemaphore, pValue : nativeptr) = Loader.vkGetSemaphoreCounterValueKHR.Invoke(device, semaphore, pValue) - let vkWaitSemaphoresKHR(device : VkDevice, pWaitInfo : nativeptr, timeout : uint64) = Loader.vkWaitSemaphoresKHR.Invoke(device, pWaitInfo, timeout) - let vkSignalSemaphoreKHR(device : VkDevice, pSignalInfo : nativeptr) = Loader.vkSignalSemaphoreKHR.Invoke(device, pSignalInfo) - -module KHRUniformBufferStandardLayout = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_KHR_uniform_buffer_standard_layout" - let Number = 254 - - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] - - - type VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = VkPhysicalDeviceUniformBufferStandardLayoutFeatures - - - -module KHRVariablePointers = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - open KHRStorageBufferStorageClass - let Name = "VK_KHR_variable_pointers" - let Number = 121 - - let Required = [ KHRGetPhysicalDeviceProperties2.Name; KHRStorageBufferStorageClass.Name ] + static member vkSetLatencySleepModeNV = s_vkSetLatencySleepModeNVDel + static member vkLatencySleepNV = s_vkLatencySleepNVDel + static member vkSetLatencyMarkerNV = s_vkSetLatencyMarkerNVDel + static member vkGetLatencyTimingsNV = s_vkGetLatencyTimingsNVDel + static member vkQueueNotifyOutOfBandNV = s_vkQueueNotifyOutOfBandNVDel + let vkSetLatencySleepModeNV(device : VkDevice, swapchain : KHRSwapchain.VkSwapchainKHR, pSleepModeInfo : nativeptr) = Loader.vkSetLatencySleepModeNV.Invoke(device, swapchain, pSleepModeInfo) + let vkLatencySleepNV(device : VkDevice, swapchain : KHRSwapchain.VkSwapchainKHR, pSleepInfo : nativeptr) = Loader.vkLatencySleepNV.Invoke(device, swapchain, pSleepInfo) + let vkSetLatencyMarkerNV(device : VkDevice, swapchain : KHRSwapchain.VkSwapchainKHR, pLatencyMarkerInfo : nativeptr) = Loader.vkSetLatencyMarkerNV.Invoke(device, swapchain, pLatencyMarkerInfo) + let vkGetLatencyTimingsNV(device : VkDevice, swapchain : KHRSwapchain.VkSwapchainKHR, pLatencyMarkerInfo : nativeptr) = Loader.vkGetLatencyTimingsNV.Invoke(device, swapchain, pLatencyMarkerInfo) + let vkQueueNotifyOutOfBandNV(queue : VkQueue, pQueueTypeInfo : nativeptr) = Loader.vkQueueNotifyOutOfBandNV.Invoke(queue, pQueueTypeInfo) + +/// Requires ((KHRGetPhysicalDeviceProperties2 | Vulkan11), KHRBufferDeviceAddress) | Vulkan12. +module NVMemoryDecompression = + let Type = ExtensionType.Device + let Name = "VK_NV_memory_decompression" + let Number = 428 + [] + type VkMemoryDecompressionMethodFlagsNV = + | All = 1 + | None = 0 + | Gdeflate10Bit = 0x00000001 - type VkPhysicalDeviceVariablePointerFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures - type VkPhysicalDeviceVariablePointersFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures + [] + type VkDecompressMemoryRegionNV = + struct + val mutable public srcAddress : VkDeviceAddress + val mutable public dstAddress : VkDeviceAddress + val mutable public compressedSize : VkDeviceSize + val mutable public decompressedSize : VkDeviceSize + val mutable public decompressionMethod : VkMemoryDecompressionMethodFlagsNV + new(srcAddress : VkDeviceAddress, dstAddress : VkDeviceAddress, compressedSize : VkDeviceSize, decompressedSize : VkDeviceSize, decompressionMethod : VkMemoryDecompressionMethodFlagsNV) = + { + srcAddress = srcAddress + dstAddress = dstAddress + compressedSize = compressedSize + decompressedSize = decompressedSize + decompressionMethod = decompressionMethod + } + member x.IsEmpty = + x.srcAddress = Unchecked.defaultof && x.dstAddress = Unchecked.defaultof && x.compressedSize = Unchecked.defaultof && x.decompressedSize = Unchecked.defaultof && x.decompressionMethod = Unchecked.defaultof -module KHRVulkanMemoryModel = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_KHR_vulkan_memory_model" - let Number = 212 + static member Empty = + VkDecompressMemoryRegionNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + override x.ToString() = + String.concat "; " [ + sprintf "srcAddress = %A" x.srcAddress + sprintf "dstAddress = %A" x.dstAddress + sprintf "compressedSize = %A" x.compressedSize + sprintf "decompressedSize = %A" x.decompressedSize + sprintf "decompressionMethod = %A" x.decompressionMethod + ] |> sprintf "VkDecompressMemoryRegionNV { %s }" + end - type VkPhysicalDeviceVulkanMemoryModelFeaturesKHR = VkPhysicalDeviceVulkanMemoryModelFeatures + [] + type VkPhysicalDeviceMemoryDecompressionFeaturesNV = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public memoryDecompression : VkBool32 + new(pNext : nativeint, memoryDecompression : VkBool32) = + { + sType = 1000427000u + pNext = pNext + memoryDecompression = memoryDecompression + } + new(memoryDecompression : VkBool32) = + VkPhysicalDeviceMemoryDecompressionFeaturesNV(Unchecked.defaultof, memoryDecompression) -module KHRWaylandSurface = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRSurface - let Name = "VK_KHR_wayland_surface" - let Number = 7 + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.memoryDecompression = Unchecked.defaultof - let Required = [ KHRSurface.Name ] + static member Empty = + VkPhysicalDeviceMemoryDecompressionFeaturesNV(Unchecked.defaultof, Unchecked.defaultof) + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "memoryDecompression = %A" x.memoryDecompression + ] |> sprintf "VkPhysicalDeviceMemoryDecompressionFeaturesNV { %s }" + end [] - type VkWaylandSurfaceCreateInfoKHR = + type VkPhysicalDeviceMemoryDecompressionPropertiesNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public flags : VkWaylandSurfaceCreateFlagsKHR - val mutable public display : nativeptr - val mutable public surface : nativeptr + val mutable public decompressionMethods : VkMemoryDecompressionMethodFlagsNV + val mutable public maxDecompressionIndirectCount : uint64 - new(pNext : nativeint, flags : VkWaylandSurfaceCreateFlagsKHR, display : nativeptr, surface : nativeptr) = + new(pNext : nativeint, decompressionMethods : VkMemoryDecompressionMethodFlagsNV, maxDecompressionIndirectCount : uint64) = { - sType = 1000006000u + sType = 1000427001u pNext = pNext - flags = flags - display = display - surface = surface + decompressionMethods = decompressionMethods + maxDecompressionIndirectCount = maxDecompressionIndirectCount } - new(flags : VkWaylandSurfaceCreateFlagsKHR, display : nativeptr, surface : nativeptr) = - VkWaylandSurfaceCreateInfoKHR(Unchecked.defaultof, flags, display, surface) + new(decompressionMethods : VkMemoryDecompressionMethodFlagsNV, maxDecompressionIndirectCount : uint64) = + VkPhysicalDeviceMemoryDecompressionPropertiesNV(Unchecked.defaultof, decompressionMethods, maxDecompressionIndirectCount) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.display = Unchecked.defaultof> && x.surface = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.decompressionMethods = Unchecked.defaultof && x.maxDecompressionIndirectCount = Unchecked.defaultof static member Empty = - VkWaylandSurfaceCreateInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof>) + VkPhysicalDeviceMemoryDecompressionPropertiesNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "flags = %A" x.flags - sprintf "display = %A" x.display - sprintf "surface = %A" x.surface - ] |> sprintf "VkWaylandSurfaceCreateInfoKHR { %s }" + sprintf "decompressionMethods = %A" x.decompressionMethods + sprintf "maxDecompressionIndirectCount = %A" x.maxDecompressionIndirectCount + ] |> sprintf "VkPhysicalDeviceMemoryDecompressionPropertiesNV { %s }" end module VkRaw = [] - type VkCreateWaylandSurfaceKHRDel = delegate of VkInstance * nativeptr * nativeptr * nativeptr -> VkResult + type VkCmdDecompressMemoryNVDel = delegate of VkCommandBuffer * uint32 * nativeptr -> unit [] - type VkGetPhysicalDeviceWaylandPresentationSupportKHRDel = delegate of VkPhysicalDevice * uint32 * nativeptr -> VkBool32 + type VkCmdDecompressMemoryIndirectCountNVDel = delegate of VkCommandBuffer * VkDeviceAddress * VkDeviceAddress * uint32 -> unit [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRWaylandSurface") - static let s_vkCreateWaylandSurfaceKHRDel = VkRaw.vkImportInstanceDelegate "vkCreateWaylandSurfaceKHR" - static let s_vkGetPhysicalDeviceWaylandPresentationSupportKHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceWaylandPresentationSupportKHR" + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading NVMemoryDecompression") + static let s_vkCmdDecompressMemoryNVDel = VkRaw.vkImportInstanceDelegate "vkCmdDecompressMemoryNV" + static let s_vkCmdDecompressMemoryIndirectCountNVDel = VkRaw.vkImportInstanceDelegate "vkCmdDecompressMemoryIndirectCountNV" static do Report.End(3) |> ignore - static member vkCreateWaylandSurfaceKHR = s_vkCreateWaylandSurfaceKHRDel - static member vkGetPhysicalDeviceWaylandPresentationSupportKHR = s_vkGetPhysicalDeviceWaylandPresentationSupportKHRDel - let vkCreateWaylandSurfaceKHR(instance : VkInstance, pCreateInfo : nativeptr, pAllocator : nativeptr, pSurface : nativeptr) = Loader.vkCreateWaylandSurfaceKHR.Invoke(instance, pCreateInfo, pAllocator, pSurface) - let vkGetPhysicalDeviceWaylandPresentationSupportKHR(physicalDevice : VkPhysicalDevice, queueFamilyIndex : uint32, display : nativeptr) = Loader.vkGetPhysicalDeviceWaylandPresentationSupportKHR.Invoke(physicalDevice, queueFamilyIndex, display) + static member vkCmdDecompressMemoryNV = s_vkCmdDecompressMemoryNVDel + static member vkCmdDecompressMemoryIndirectCountNV = s_vkCmdDecompressMemoryIndirectCountNVDel + let vkCmdDecompressMemoryNV(commandBuffer : VkCommandBuffer, decompressRegionCount : uint32, pDecompressMemoryRegions : nativeptr) = Loader.vkCmdDecompressMemoryNV.Invoke(commandBuffer, decompressRegionCount, pDecompressMemoryRegions) + let vkCmdDecompressMemoryIndirectCountNV(commandBuffer : VkCommandBuffer, indirectCommandsAddress : VkDeviceAddress, indirectCommandsCountAddress : VkDeviceAddress, stride : uint32) = Loader.vkCmdDecompressMemoryIndirectCountNV.Invoke(commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride) -module KHRWin32KeyedMutex = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRExternalMemory - open KHRExternalMemoryCapabilities - open KHRExternalMemoryWin32 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_KHR_win32_keyed_mutex" - let Number = 76 +/// Requires ((KHRGetPhysicalDeviceProperties2 | Vulkan11), KHRFormatFeatureFlags2, KHRSynchronization2) | Vulkan13. +module NVOpticalFlow = + let Type = ExtensionType.Device + let Name = "VK_NV_optical_flow" + let Number = 465 + + + [] + type VkOpticalFlowSessionNV = + struct + val mutable public Handle : uint64 + new(h) = { Handle = h } + static member Null = VkOpticalFlowSessionNV(0UL) + member x.IsNull = x.Handle = 0UL + member x.IsValid = x.Handle <> 0UL + end + + [] + type VkOpticalFlowUsageFlagsNV = + | All = 31 + | Unknown = 0 + | InputBit = 0x00000001 + | OutputBit = 0x00000002 + | HintBit = 0x00000004 + | CostBit = 0x00000008 + | GlobalFlowBit = 0x00000010 + + [] + type VkOpticalFlowGridSizeFlagsNV = + | All = 15 + | Unknown = 0 + | D1x1Bit = 0x00000001 + | D2x2Bit = 0x00000002 + | D4x4Bit = 0x00000004 + | D8x8Bit = 0x00000008 + + type VkOpticalFlowPerformanceLevelNV = + | Unknown = 0 + | Slow = 1 + | Medium = 2 + | Fast = 3 + + type VkOpticalFlowSessionBindingPointNV = + | Unknown = 0 + | Input = 1 + | Reference = 2 + | Hint = 3 + | FlowVector = 4 + | BackwardFlowVector = 5 + | Cost = 6 + | BackwardCost = 7 + | GlobalFlow = 8 - let Required = [ KHRExternalMemoryWin32.Name ] + [] + type VkOpticalFlowSessionCreateFlagsNV = + | All = 31 + | None = 0 + | EnableHintBit = 0x00000001 + | EnableCostBit = 0x00000002 + | EnableGlobalFlowBit = 0x00000004 + | AllowRegionsBit = 0x00000008 + | BothDirectionsBit = 0x00000010 + + [] + type VkOpticalFlowExecuteFlagsNV = + | All = 1 + | None = 0 + | DisableTemporalHintsBit = 0x00000001 [] - type VkWin32KeyedMutexAcquireReleaseInfoKHR = + type VkOpticalFlowExecuteInfoNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public acquireCount : uint32 - val mutable public pAcquireSyncs : nativeptr - val mutable public pAcquireKeys : nativeptr - val mutable public pAcquireTimeouts : nativeptr - val mutable public releaseCount : uint32 - val mutable public pReleaseSyncs : nativeptr - val mutable public pReleaseKeys : nativeptr + val mutable public flags : VkOpticalFlowExecuteFlagsNV + val mutable public regionCount : uint32 + val mutable public pRegions : nativeptr - new(pNext : nativeint, acquireCount : uint32, pAcquireSyncs : nativeptr, pAcquireKeys : nativeptr, pAcquireTimeouts : nativeptr, releaseCount : uint32, pReleaseSyncs : nativeptr, pReleaseKeys : nativeptr) = + new(pNext : nativeint, flags : VkOpticalFlowExecuteFlagsNV, regionCount : uint32, pRegions : nativeptr) = { - sType = 1000075000u + sType = 1000464005u pNext = pNext - acquireCount = acquireCount - pAcquireSyncs = pAcquireSyncs - pAcquireKeys = pAcquireKeys - pAcquireTimeouts = pAcquireTimeouts - releaseCount = releaseCount - pReleaseSyncs = pReleaseSyncs - pReleaseKeys = pReleaseKeys + flags = flags + regionCount = regionCount + pRegions = pRegions } - new(acquireCount : uint32, pAcquireSyncs : nativeptr, pAcquireKeys : nativeptr, pAcquireTimeouts : nativeptr, releaseCount : uint32, pReleaseSyncs : nativeptr, pReleaseKeys : nativeptr) = - VkWin32KeyedMutexAcquireReleaseInfoKHR(Unchecked.defaultof, acquireCount, pAcquireSyncs, pAcquireKeys, pAcquireTimeouts, releaseCount, pReleaseSyncs, pReleaseKeys) + new(flags : VkOpticalFlowExecuteFlagsNV, regionCount : uint32, pRegions : nativeptr) = + VkOpticalFlowExecuteInfoNV(Unchecked.defaultof, flags, regionCount, pRegions) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.acquireCount = Unchecked.defaultof && x.pAcquireSyncs = Unchecked.defaultof> && x.pAcquireKeys = Unchecked.defaultof> && x.pAcquireTimeouts = Unchecked.defaultof> && x.releaseCount = Unchecked.defaultof && x.pReleaseSyncs = Unchecked.defaultof> && x.pReleaseKeys = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.regionCount = Unchecked.defaultof && x.pRegions = Unchecked.defaultof> static member Empty = - VkWin32KeyedMutexAcquireReleaseInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof>, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof>) + VkOpticalFlowExecuteInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "acquireCount = %A" x.acquireCount - sprintf "pAcquireSyncs = %A" x.pAcquireSyncs - sprintf "pAcquireKeys = %A" x.pAcquireKeys - sprintf "pAcquireTimeouts = %A" x.pAcquireTimeouts - sprintf "releaseCount = %A" x.releaseCount - sprintf "pReleaseSyncs = %A" x.pReleaseSyncs - sprintf "pReleaseKeys = %A" x.pReleaseKeys - ] |> sprintf "VkWin32KeyedMutexAcquireReleaseInfoKHR { %s }" + sprintf "flags = %A" x.flags + sprintf "regionCount = %A" x.regionCount + sprintf "pRegions = %A" x.pRegions + ] |> sprintf "VkOpticalFlowExecuteInfoNV { %s }" end - - -module KHRWorkgroupMemoryExplicitLayout = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_KHR_workgroup_memory_explicit_layout" - let Number = 337 - - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] - - [] - type VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR = + type VkOpticalFlowImageFormatInfoNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public workgroupMemoryExplicitLayout : VkBool32 - val mutable public workgroupMemoryExplicitLayoutScalarBlockLayout : VkBool32 - val mutable public workgroupMemoryExplicitLayout8BitAccess : VkBool32 - val mutable public workgroupMemoryExplicitLayout16BitAccess : VkBool32 + val mutable public usage : VkOpticalFlowUsageFlagsNV - new(pNext : nativeint, workgroupMemoryExplicitLayout : VkBool32, workgroupMemoryExplicitLayoutScalarBlockLayout : VkBool32, workgroupMemoryExplicitLayout8BitAccess : VkBool32, workgroupMemoryExplicitLayout16BitAccess : VkBool32) = + new(pNext : nativeint, usage : VkOpticalFlowUsageFlagsNV) = { - sType = 1000336000u + sType = 1000464002u pNext = pNext - workgroupMemoryExplicitLayout = workgroupMemoryExplicitLayout - workgroupMemoryExplicitLayoutScalarBlockLayout = workgroupMemoryExplicitLayoutScalarBlockLayout - workgroupMemoryExplicitLayout8BitAccess = workgroupMemoryExplicitLayout8BitAccess - workgroupMemoryExplicitLayout16BitAccess = workgroupMemoryExplicitLayout16BitAccess + usage = usage } - new(workgroupMemoryExplicitLayout : VkBool32, workgroupMemoryExplicitLayoutScalarBlockLayout : VkBool32, workgroupMemoryExplicitLayout8BitAccess : VkBool32, workgroupMemoryExplicitLayout16BitAccess : VkBool32) = - VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(Unchecked.defaultof, workgroupMemoryExplicitLayout, workgroupMemoryExplicitLayoutScalarBlockLayout, workgroupMemoryExplicitLayout8BitAccess, workgroupMemoryExplicitLayout16BitAccess) + new(usage : VkOpticalFlowUsageFlagsNV) = + VkOpticalFlowImageFormatInfoNV(Unchecked.defaultof, usage) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.workgroupMemoryExplicitLayout = Unchecked.defaultof && x.workgroupMemoryExplicitLayoutScalarBlockLayout = Unchecked.defaultof && x.workgroupMemoryExplicitLayout8BitAccess = Unchecked.defaultof && x.workgroupMemoryExplicitLayout16BitAccess = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.usage = Unchecked.defaultof static member Empty = - VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkOpticalFlowImageFormatInfoNV(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "workgroupMemoryExplicitLayout = %A" x.workgroupMemoryExplicitLayout - sprintf "workgroupMemoryExplicitLayoutScalarBlockLayout = %A" x.workgroupMemoryExplicitLayoutScalarBlockLayout - sprintf "workgroupMemoryExplicitLayout8BitAccess = %A" x.workgroupMemoryExplicitLayout8BitAccess - sprintf "workgroupMemoryExplicitLayout16BitAccess = %A" x.workgroupMemoryExplicitLayout16BitAccess - ] |> sprintf "VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR { %s }" + sprintf "usage = %A" x.usage + ] |> sprintf "VkOpticalFlowImageFormatInfoNV { %s }" end - - -module KHRXcbSurface = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRSurface - let Name = "VK_KHR_xcb_surface" - let Number = 6 - - let Required = [ KHRSurface.Name ] - - [] - type VkXcbSurfaceCreateInfoKHR = + type VkOpticalFlowImageFormatPropertiesNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public flags : VkXcbSurfaceCreateFlagsKHR - val mutable public connection : nativeptr - val mutable public window : nativeint + val mutable public format : VkFormat - new(pNext : nativeint, flags : VkXcbSurfaceCreateFlagsKHR, connection : nativeptr, window : nativeint) = + new(pNext : nativeint, format : VkFormat) = { - sType = 1000005000u + sType = 1000464003u pNext = pNext - flags = flags - connection = connection - window = window + format = format } - new(flags : VkXcbSurfaceCreateFlagsKHR, connection : nativeptr, window : nativeint) = - VkXcbSurfaceCreateInfoKHR(Unchecked.defaultof, flags, connection, window) + new(format : VkFormat) = + VkOpticalFlowImageFormatPropertiesNV(Unchecked.defaultof, format) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.connection = Unchecked.defaultof> && x.window = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.format = Unchecked.defaultof static member Empty = - VkXcbSurfaceCreateInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof) + VkOpticalFlowImageFormatPropertiesNV(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "flags = %A" x.flags - sprintf "connection = %A" x.connection - sprintf "window = %A" x.window - ] |> sprintf "VkXcbSurfaceCreateInfoKHR { %s }" + sprintf "format = %A" x.format + ] |> sprintf "VkOpticalFlowImageFormatPropertiesNV { %s }" end - - module VkRaw = - [] - type VkCreateXcbSurfaceKHRDel = delegate of VkInstance * nativeptr * nativeptr * nativeptr -> VkResult - [] - type VkGetPhysicalDeviceXcbPresentationSupportKHRDel = delegate of VkPhysicalDevice * uint32 * nativeptr * nativeint -> VkBool32 - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRXcbSurface") - static let s_vkCreateXcbSurfaceKHRDel = VkRaw.vkImportInstanceDelegate "vkCreateXcbSurfaceKHR" - static let s_vkGetPhysicalDeviceXcbPresentationSupportKHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceXcbPresentationSupportKHR" - static do Report.End(3) |> ignore - static member vkCreateXcbSurfaceKHR = s_vkCreateXcbSurfaceKHRDel - static member vkGetPhysicalDeviceXcbPresentationSupportKHR = s_vkGetPhysicalDeviceXcbPresentationSupportKHRDel - let vkCreateXcbSurfaceKHR(instance : VkInstance, pCreateInfo : nativeptr, pAllocator : nativeptr, pSurface : nativeptr) = Loader.vkCreateXcbSurfaceKHR.Invoke(instance, pCreateInfo, pAllocator, pSurface) - let vkGetPhysicalDeviceXcbPresentationSupportKHR(physicalDevice : VkPhysicalDevice, queueFamilyIndex : uint32, connection : nativeptr, visual_id : nativeint) = Loader.vkGetPhysicalDeviceXcbPresentationSupportKHR.Invoke(physicalDevice, queueFamilyIndex, connection, visual_id) - -module KHRXlibSurface = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRSurface - let Name = "VK_KHR_xlib_surface" - let Number = 5 - - let Required = [ KHRSurface.Name ] - - [] - type VkXlibSurfaceCreateInfoKHR = + type VkOpticalFlowSessionCreateInfoNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public flags : VkXlibSurfaceCreateFlagsKHR - val mutable public dpy : nativeptr - val mutable public window : nativeint + val mutable public width : uint32 + val mutable public height : uint32 + val mutable public imageFormat : VkFormat + val mutable public flowVectorFormat : VkFormat + val mutable public costFormat : VkFormat + val mutable public outputGridSize : VkOpticalFlowGridSizeFlagsNV + val mutable public hintGridSize : VkOpticalFlowGridSizeFlagsNV + val mutable public performanceLevel : VkOpticalFlowPerformanceLevelNV + val mutable public flags : VkOpticalFlowSessionCreateFlagsNV - new(pNext : nativeint, flags : VkXlibSurfaceCreateFlagsKHR, dpy : nativeptr, window : nativeint) = + new(pNext : nativeint, width : uint32, height : uint32, imageFormat : VkFormat, flowVectorFormat : VkFormat, costFormat : VkFormat, outputGridSize : VkOpticalFlowGridSizeFlagsNV, hintGridSize : VkOpticalFlowGridSizeFlagsNV, performanceLevel : VkOpticalFlowPerformanceLevelNV, flags : VkOpticalFlowSessionCreateFlagsNV) = { - sType = 1000004000u + sType = 1000464004u pNext = pNext + width = width + height = height + imageFormat = imageFormat + flowVectorFormat = flowVectorFormat + costFormat = costFormat + outputGridSize = outputGridSize + hintGridSize = hintGridSize + performanceLevel = performanceLevel flags = flags - dpy = dpy - window = window } - new(flags : VkXlibSurfaceCreateFlagsKHR, dpy : nativeptr, window : nativeint) = - VkXlibSurfaceCreateInfoKHR(Unchecked.defaultof, flags, dpy, window) + new(width : uint32, height : uint32, imageFormat : VkFormat, flowVectorFormat : VkFormat, costFormat : VkFormat, outputGridSize : VkOpticalFlowGridSizeFlagsNV, hintGridSize : VkOpticalFlowGridSizeFlagsNV, performanceLevel : VkOpticalFlowPerformanceLevelNV, flags : VkOpticalFlowSessionCreateFlagsNV) = + VkOpticalFlowSessionCreateInfoNV(Unchecked.defaultof, width, height, imageFormat, flowVectorFormat, costFormat, outputGridSize, hintGridSize, performanceLevel, flags) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.dpy = Unchecked.defaultof> && x.window = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.width = Unchecked.defaultof && x.height = Unchecked.defaultof && x.imageFormat = Unchecked.defaultof && x.flowVectorFormat = Unchecked.defaultof && x.costFormat = Unchecked.defaultof && x.outputGridSize = Unchecked.defaultof && x.hintGridSize = Unchecked.defaultof && x.performanceLevel = Unchecked.defaultof && x.flags = Unchecked.defaultof static member Empty = - VkXlibSurfaceCreateInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof) + VkOpticalFlowSessionCreateInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType - sprintf "pNext = %A" x.pNext - sprintf "flags = %A" x.flags - sprintf "dpy = %A" x.dpy - sprintf "window = %A" x.window - ] |> sprintf "VkXlibSurfaceCreateInfoKHR { %s }" - end - - - module VkRaw = - [] - type VkCreateXlibSurfaceKHRDel = delegate of VkInstance * nativeptr * nativeptr * nativeptr -> VkResult - [] - type VkGetPhysicalDeviceXlibPresentationSupportKHRDel = delegate of VkPhysicalDevice * uint32 * nativeptr * nativeint -> VkBool32 - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading KHRXlibSurface") - static let s_vkCreateXlibSurfaceKHRDel = VkRaw.vkImportInstanceDelegate "vkCreateXlibSurfaceKHR" - static let s_vkGetPhysicalDeviceXlibPresentationSupportKHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceXlibPresentationSupportKHR" - static do Report.End(3) |> ignore - static member vkCreateXlibSurfaceKHR = s_vkCreateXlibSurfaceKHRDel - static member vkGetPhysicalDeviceXlibPresentationSupportKHR = s_vkGetPhysicalDeviceXlibPresentationSupportKHRDel - let vkCreateXlibSurfaceKHR(instance : VkInstance, pCreateInfo : nativeptr, pAllocator : nativeptr, pSurface : nativeptr) = Loader.vkCreateXlibSurfaceKHR.Invoke(instance, pCreateInfo, pAllocator, pSurface) - let vkGetPhysicalDeviceXlibPresentationSupportKHR(physicalDevice : VkPhysicalDevice, queueFamilyIndex : uint32, dpy : nativeptr, visualID : nativeint) = Loader.vkGetPhysicalDeviceXlibPresentationSupportKHR.Invoke(physicalDevice, queueFamilyIndex, dpy, visualID) - -module KHRZeroInitializeWorkgroupMemory = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_KHR_zero_initialize_workgroup_memory" - let Number = 326 - - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] - - - type VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures - - - -module MVKIosSurface = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRSurface - let Name = "VK_MVK_ios_surface" - let Number = 123 - - let Required = [ KHRSurface.Name ] - + sprintf "pNext = %A" x.pNext + sprintf "width = %A" x.width + sprintf "height = %A" x.height + sprintf "imageFormat = %A" x.imageFormat + sprintf "flowVectorFormat = %A" x.flowVectorFormat + sprintf "costFormat = %A" x.costFormat + sprintf "outputGridSize = %A" x.outputGridSize + sprintf "hintGridSize = %A" x.hintGridSize + sprintf "performanceLevel = %A" x.performanceLevel + sprintf "flags = %A" x.flags + ] |> sprintf "VkOpticalFlowSessionCreateInfoNV { %s }" + end [] - type VkIOSSurfaceCreateInfoMVK = + type VkOpticalFlowSessionCreatePrivateDataInfoNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public flags : VkIOSSurfaceCreateFlagsMVK - val mutable public pView : nativeint + val mutable public id : uint32 + val mutable public size : uint32 + val mutable public pPrivateData : nativeint - new(pNext : nativeint, flags : VkIOSSurfaceCreateFlagsMVK, pView : nativeint) = + new(pNext : nativeint, id : uint32, size : uint32, pPrivateData : nativeint) = { - sType = 1000122000u + sType = 1000464010u pNext = pNext - flags = flags - pView = pView + id = id + size = size + pPrivateData = pPrivateData } - new(flags : VkIOSSurfaceCreateFlagsMVK, pView : nativeint) = - VkIOSSurfaceCreateInfoMVK(Unchecked.defaultof, flags, pView) + new(id : uint32, size : uint32, pPrivateData : nativeint) = + VkOpticalFlowSessionCreatePrivateDataInfoNV(Unchecked.defaultof, id, size, pPrivateData) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.pView = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.id = Unchecked.defaultof && x.size = Unchecked.defaultof && x.pPrivateData = Unchecked.defaultof static member Empty = - VkIOSSurfaceCreateInfoMVK(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkOpticalFlowSessionCreatePrivateDataInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "flags = %A" x.flags - sprintf "pView = %A" x.pView - ] |> sprintf "VkIOSSurfaceCreateInfoMVK { %s }" + sprintf "id = %A" x.id + sprintf "size = %A" x.size + sprintf "pPrivateData = %A" x.pPrivateData + ] |> sprintf "VkOpticalFlowSessionCreatePrivateDataInfoNV { %s }" end + [] + type VkPhysicalDeviceOpticalFlowFeaturesNV = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public opticalFlow : VkBool32 - module VkRaw = - [] - type VkCreateIOSSurfaceMVKDel = delegate of VkInstance * nativeptr * nativeptr * nativeptr -> VkResult + new(pNext : nativeint, opticalFlow : VkBool32) = + { + sType = 1000464000u + pNext = pNext + opticalFlow = opticalFlow + } - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading MVKIosSurface") - static let s_vkCreateIOSSurfaceMVKDel = VkRaw.vkImportInstanceDelegate "vkCreateIOSSurfaceMVK" - static do Report.End(3) |> ignore - static member vkCreateIOSSurfaceMVK = s_vkCreateIOSSurfaceMVKDel - let vkCreateIOSSurfaceMVK(instance : VkInstance, pCreateInfo : nativeptr, pAllocator : nativeptr, pSurface : nativeptr) = Loader.vkCreateIOSSurfaceMVK.Invoke(instance, pCreateInfo, pAllocator, pSurface) + new(opticalFlow : VkBool32) = + VkPhysicalDeviceOpticalFlowFeaturesNV(Unchecked.defaultof, opticalFlow) -module MVKMacosSurface = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRSurface - let Name = "VK_MVK_macos_surface" - let Number = 124 + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.opticalFlow = Unchecked.defaultof - let Required = [ KHRSurface.Name ] + static member Empty = + VkPhysicalDeviceOpticalFlowFeaturesNV(Unchecked.defaultof, Unchecked.defaultof) + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "opticalFlow = %A" x.opticalFlow + ] |> sprintf "VkPhysicalDeviceOpticalFlowFeaturesNV { %s }" + end [] - type VkMacOSSurfaceCreateInfoMVK = + type VkPhysicalDeviceOpticalFlowPropertiesNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public flags : VkMacOSSurfaceCreateFlagsMVK - val mutable public pView : nativeint + val mutable public supportedOutputGridSizes : VkOpticalFlowGridSizeFlagsNV + val mutable public supportedHintGridSizes : VkOpticalFlowGridSizeFlagsNV + val mutable public hintSupported : VkBool32 + val mutable public costSupported : VkBool32 + val mutable public bidirectionalFlowSupported : VkBool32 + val mutable public globalFlowSupported : VkBool32 + val mutable public minWidth : uint32 + val mutable public minHeight : uint32 + val mutable public maxWidth : uint32 + val mutable public maxHeight : uint32 + val mutable public maxNumRegionsOfInterest : uint32 - new(pNext : nativeint, flags : VkMacOSSurfaceCreateFlagsMVK, pView : nativeint) = + new(pNext : nativeint, supportedOutputGridSizes : VkOpticalFlowGridSizeFlagsNV, supportedHintGridSizes : VkOpticalFlowGridSizeFlagsNV, hintSupported : VkBool32, costSupported : VkBool32, bidirectionalFlowSupported : VkBool32, globalFlowSupported : VkBool32, minWidth : uint32, minHeight : uint32, maxWidth : uint32, maxHeight : uint32, maxNumRegionsOfInterest : uint32) = { - sType = 1000123000u + sType = 1000464001u pNext = pNext - flags = flags - pView = pView + supportedOutputGridSizes = supportedOutputGridSizes + supportedHintGridSizes = supportedHintGridSizes + hintSupported = hintSupported + costSupported = costSupported + bidirectionalFlowSupported = bidirectionalFlowSupported + globalFlowSupported = globalFlowSupported + minWidth = minWidth + minHeight = minHeight + maxWidth = maxWidth + maxHeight = maxHeight + maxNumRegionsOfInterest = maxNumRegionsOfInterest } - new(flags : VkMacOSSurfaceCreateFlagsMVK, pView : nativeint) = - VkMacOSSurfaceCreateInfoMVK(Unchecked.defaultof, flags, pView) + new(supportedOutputGridSizes : VkOpticalFlowGridSizeFlagsNV, supportedHintGridSizes : VkOpticalFlowGridSizeFlagsNV, hintSupported : VkBool32, costSupported : VkBool32, bidirectionalFlowSupported : VkBool32, globalFlowSupported : VkBool32, minWidth : uint32, minHeight : uint32, maxWidth : uint32, maxHeight : uint32, maxNumRegionsOfInterest : uint32) = + VkPhysicalDeviceOpticalFlowPropertiesNV(Unchecked.defaultof, supportedOutputGridSizes, supportedHintGridSizes, hintSupported, costSupported, bidirectionalFlowSupported, globalFlowSupported, minWidth, minHeight, maxWidth, maxHeight, maxNumRegionsOfInterest) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.pView = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.supportedOutputGridSizes = Unchecked.defaultof && x.supportedHintGridSizes = Unchecked.defaultof && x.hintSupported = Unchecked.defaultof && x.costSupported = Unchecked.defaultof && x.bidirectionalFlowSupported = Unchecked.defaultof && x.globalFlowSupported = Unchecked.defaultof && x.minWidth = Unchecked.defaultof && x.minHeight = Unchecked.defaultof && x.maxWidth = Unchecked.defaultof && x.maxHeight = Unchecked.defaultof && x.maxNumRegionsOfInterest = Unchecked.defaultof static member Empty = - VkMacOSSurfaceCreateInfoMVK(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceOpticalFlowPropertiesNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "flags = %A" x.flags - sprintf "pView = %A" x.pView - ] |> sprintf "VkMacOSSurfaceCreateInfoMVK { %s }" + sprintf "supportedOutputGridSizes = %A" x.supportedOutputGridSizes + sprintf "supportedHintGridSizes = %A" x.supportedHintGridSizes + sprintf "hintSupported = %A" x.hintSupported + sprintf "costSupported = %A" x.costSupported + sprintf "bidirectionalFlowSupported = %A" x.bidirectionalFlowSupported + sprintf "globalFlowSupported = %A" x.globalFlowSupported + sprintf "minWidth = %A" x.minWidth + sprintf "minHeight = %A" x.minHeight + sprintf "maxWidth = %A" x.maxWidth + sprintf "maxHeight = %A" x.maxHeight + sprintf "maxNumRegionsOfInterest = %A" x.maxNumRegionsOfInterest + ] |> sprintf "VkPhysicalDeviceOpticalFlowPropertiesNV { %s }" end + [] + module EnumExtensions = + type Vulkan13.VkAccessFlags2 with + static member inline Access2OpticalFlowReadBitNv = unbox 0x00000400 + static member inline Access2OpticalFlowWriteBitNv = unbox 0x00000800 + type VkFormat with + static member inline R16g16Sfixed5Nv = unbox 1000464000 + type Vulkan13.VkFormatFeatureFlags2 with + static member inline FormatFeature2OpticalFlowImageBitNv = unbox 0x00000100 + static member inline FormatFeature2OpticalFlowVectorBitNv = unbox 0x00000200 + static member inline FormatFeature2OpticalFlowCostBitNv = unbox 0x00000400 + type VkObjectType with + static member inline OpticalFlowSessionNv = unbox 1000464000 + type Vulkan13.VkPipelineStageFlags2 with + static member inline PipelineStage2OpticalFlowBitNv = unbox 0x20000000 + type VkQueueFlags with + static member inline OpticalFlowBitNv = unbox 0x00000100 + module VkRaw = [] - type VkCreateMacOSSurfaceMVKDel = delegate of VkInstance * nativeptr * nativeptr * nativeptr -> VkResult + type VkGetPhysicalDeviceOpticalFlowImageFormatsNVDel = delegate of VkPhysicalDevice * nativeptr * nativeptr * nativeptr -> VkResult + [] + type VkCreateOpticalFlowSessionNVDel = delegate of VkDevice * nativeptr * nativeptr * nativeptr -> VkResult + [] + type VkDestroyOpticalFlowSessionNVDel = delegate of VkDevice * VkOpticalFlowSessionNV * nativeptr -> unit + [] + type VkBindOpticalFlowSessionImageNVDel = delegate of VkDevice * VkOpticalFlowSessionNV * VkOpticalFlowSessionBindingPointNV * VkImageView * VkImageLayout -> VkResult + [] + type VkCmdOpticalFlowExecuteNVDel = delegate of VkCommandBuffer * VkOpticalFlowSessionNV * nativeptr -> unit [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading MVKMacosSurface") - static let s_vkCreateMacOSSurfaceMVKDel = VkRaw.vkImportInstanceDelegate "vkCreateMacOSSurfaceMVK" + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading NVOpticalFlow") + static let s_vkGetPhysicalDeviceOpticalFlowImageFormatsNVDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceOpticalFlowImageFormatsNV" + static let s_vkCreateOpticalFlowSessionNVDel = VkRaw.vkImportInstanceDelegate "vkCreateOpticalFlowSessionNV" + static let s_vkDestroyOpticalFlowSessionNVDel = VkRaw.vkImportInstanceDelegate "vkDestroyOpticalFlowSessionNV" + static let s_vkBindOpticalFlowSessionImageNVDel = VkRaw.vkImportInstanceDelegate "vkBindOpticalFlowSessionImageNV" + static let s_vkCmdOpticalFlowExecuteNVDel = VkRaw.vkImportInstanceDelegate "vkCmdOpticalFlowExecuteNV" static do Report.End(3) |> ignore - static member vkCreateMacOSSurfaceMVK = s_vkCreateMacOSSurfaceMVKDel - let vkCreateMacOSSurfaceMVK(instance : VkInstance, pCreateInfo : nativeptr, pAllocator : nativeptr, pSurface : nativeptr) = Loader.vkCreateMacOSSurfaceMVK.Invoke(instance, pCreateInfo, pAllocator, pSurface) - -module NNViSurface = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRSurface - let Name = "VK_NN_vi_surface" - let Number = 63 - - let Required = [ KHRSurface.Name ] + static member vkGetPhysicalDeviceOpticalFlowImageFormatsNV = s_vkGetPhysicalDeviceOpticalFlowImageFormatsNVDel + static member vkCreateOpticalFlowSessionNV = s_vkCreateOpticalFlowSessionNVDel + static member vkDestroyOpticalFlowSessionNV = s_vkDestroyOpticalFlowSessionNVDel + static member vkBindOpticalFlowSessionImageNV = s_vkBindOpticalFlowSessionImageNVDel + static member vkCmdOpticalFlowExecuteNV = s_vkCmdOpticalFlowExecuteNVDel + let vkGetPhysicalDeviceOpticalFlowImageFormatsNV(physicalDevice : VkPhysicalDevice, pOpticalFlowImageFormatInfo : nativeptr, pFormatCount : nativeptr, pImageFormatProperties : nativeptr) = Loader.vkGetPhysicalDeviceOpticalFlowImageFormatsNV.Invoke(physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties) + let vkCreateOpticalFlowSessionNV(device : VkDevice, pCreateInfo : nativeptr, pAllocator : nativeptr, pSession : nativeptr) = Loader.vkCreateOpticalFlowSessionNV.Invoke(device, pCreateInfo, pAllocator, pSession) + let vkDestroyOpticalFlowSessionNV(device : VkDevice, session : VkOpticalFlowSessionNV, pAllocator : nativeptr) = Loader.vkDestroyOpticalFlowSessionNV.Invoke(device, session, pAllocator) + let vkBindOpticalFlowSessionImageNV(device : VkDevice, session : VkOpticalFlowSessionNV, bindingPoint : VkOpticalFlowSessionBindingPointNV, view : VkImageView, layout : VkImageLayout) = Loader.vkBindOpticalFlowSessionImageNV.Invoke(device, session, bindingPoint, view, layout) + let vkCmdOpticalFlowExecuteNV(commandBuffer : VkCommandBuffer, session : VkOpticalFlowSessionNV, pExecuteInfo : nativeptr) = Loader.vkCmdOpticalFlowExecuteNV.Invoke(commandBuffer, session, pExecuteInfo) +/// Requires KHRMaintenance6. +module NVPerStageDescriptorSet = + let Type = ExtensionType.Device + let Name = "VK_NV_per_stage_descriptor_set" + let Number = 517 [] - type VkViSurfaceCreateInfoNN = + type VkPhysicalDevicePerStageDescriptorSetFeaturesNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public flags : VkViSurfaceCreateFlagsNN - val mutable public window : nativeint + val mutable public perStageDescriptorSet : VkBool32 + val mutable public dynamicPipelineLayout : VkBool32 - new(pNext : nativeint, flags : VkViSurfaceCreateFlagsNN, window : nativeint) = + new(pNext : nativeint, perStageDescriptorSet : VkBool32, dynamicPipelineLayout : VkBool32) = { - sType = 1000062000u + sType = 1000516000u pNext = pNext - flags = flags - window = window + perStageDescriptorSet = perStageDescriptorSet + dynamicPipelineLayout = dynamicPipelineLayout } - new(flags : VkViSurfaceCreateFlagsNN, window : nativeint) = - VkViSurfaceCreateInfoNN(Unchecked.defaultof, flags, window) + new(perStageDescriptorSet : VkBool32, dynamicPipelineLayout : VkBool32) = + VkPhysicalDevicePerStageDescriptorSetFeaturesNV(Unchecked.defaultof, perStageDescriptorSet, dynamicPipelineLayout) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.window = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.perStageDescriptorSet = Unchecked.defaultof && x.dynamicPipelineLayout = Unchecked.defaultof static member Empty = - VkViSurfaceCreateInfoNN(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDevicePerStageDescriptorSetFeaturesNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "flags = %A" x.flags - sprintf "window = %A" x.window - ] |> sprintf "VkViSurfaceCreateInfoNN { %s }" + sprintf "perStageDescriptorSet = %A" x.perStageDescriptorSet + sprintf "dynamicPipelineLayout = %A" x.dynamicPipelineLayout + ] |> sprintf "VkPhysicalDevicePerStageDescriptorSetFeaturesNV { %s }" end - module VkRaw = - [] - type VkCreateViSurfaceNNDel = delegate of VkInstance * nativeptr * nativeptr * nativeptr -> VkResult - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading NNViSurface") - static let s_vkCreateViSurfaceNNDel = VkRaw.vkImportInstanceDelegate "vkCreateViSurfaceNN" - static do Report.End(3) |> ignore - static member vkCreateViSurfaceNN = s_vkCreateViSurfaceNNDel - let vkCreateViSurfaceNN(instance : VkInstance, pCreateInfo : nativeptr, pAllocator : nativeptr, pSurface : nativeptr) = Loader.vkCreateViSurfaceNN.Invoke(instance, pCreateInfo, pAllocator, pSurface) - -module NVXBinaryImport = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_NVX_binary_import" - let Number = 30 + [] + module EnumExtensions = + type VkDescriptorSetLayoutCreateFlags with + static member inline PerStageBitNv = unbox 0x00000040 +/// Requires (KHRGetPhysicalDeviceProperties2 | Vulkan11), KHRSurface, KHRGetSurfaceCapabilities2, KHRSwapchain. +module NVPresentBarrier = + let Type = ExtensionType.Device + let Name = "VK_NV_present_barrier" + let Number = 293 [] - type VkCuModuleNVX = + type VkPhysicalDevicePresentBarrierFeaturesNV = struct - val mutable public Handle : uint64 - new(h) = { Handle = h } - static member Null = VkCuModuleNVX(0UL) - member x.IsNull = x.Handle = 0UL - member x.IsValid = x.Handle <> 0UL - end + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public presentBarrier : VkBool32 - [] - type VkCuFunctionNVX = - struct - val mutable public Handle : uint64 - new(h) = { Handle = h } - static member Null = VkCuFunctionNVX(0UL) - member x.IsNull = x.Handle = 0UL - member x.IsValid = x.Handle <> 0UL + new(pNext : nativeint, presentBarrier : VkBool32) = + { + sType = 1000292000u + pNext = pNext + presentBarrier = presentBarrier + } + + new(presentBarrier : VkBool32) = + VkPhysicalDevicePresentBarrierFeaturesNV(Unchecked.defaultof, presentBarrier) + + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.presentBarrier = Unchecked.defaultof + + static member Empty = + VkPhysicalDevicePresentBarrierFeaturesNV(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "presentBarrier = %A" x.presentBarrier + ] |> sprintf "VkPhysicalDevicePresentBarrierFeaturesNV { %s }" end [] - type VkCuFunctionCreateInfoNVX = + type VkSurfaceCapabilitiesPresentBarrierNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public _module : VkCuModuleNVX - val mutable public pName : cstr + val mutable public presentBarrierSupported : VkBool32 - new(pNext : nativeint, _module : VkCuModuleNVX, pName : cstr) = + new(pNext : nativeint, presentBarrierSupported : VkBool32) = { - sType = 1000029001u + sType = 1000292001u pNext = pNext - _module = _module - pName = pName + presentBarrierSupported = presentBarrierSupported } - new(_module : VkCuModuleNVX, pName : cstr) = - VkCuFunctionCreateInfoNVX(Unchecked.defaultof, _module, pName) + new(presentBarrierSupported : VkBool32) = + VkSurfaceCapabilitiesPresentBarrierNV(Unchecked.defaultof, presentBarrierSupported) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x._module = Unchecked.defaultof && x.pName = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.presentBarrierSupported = Unchecked.defaultof static member Empty = - VkCuFunctionCreateInfoNVX(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkSurfaceCapabilitiesPresentBarrierNV(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "_module = %A" x._module - sprintf "pName = %A" x.pName - ] |> sprintf "VkCuFunctionCreateInfoNVX { %s }" + sprintf "presentBarrierSupported = %A" x.presentBarrierSupported + ] |> sprintf "VkSurfaceCapabilitiesPresentBarrierNV { %s }" end [] - type VkCuLaunchInfoNVX = + type VkSwapchainPresentBarrierCreateInfoNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public _function : VkCuFunctionNVX - val mutable public gridDimX : uint32 - val mutable public gridDimY : uint32 - val mutable public gridDimZ : uint32 - val mutable public blockDimX : uint32 - val mutable public blockDimY : uint32 - val mutable public blockDimZ : uint32 - val mutable public sharedMemBytes : uint32 - val mutable public paramCount : uint64 - val mutable public pParams : nativeptr - val mutable public extraCount : uint64 - val mutable public pExtras : nativeptr + val mutable public presentBarrierEnable : VkBool32 - new(pNext : nativeint, _function : VkCuFunctionNVX, gridDimX : uint32, gridDimY : uint32, gridDimZ : uint32, blockDimX : uint32, blockDimY : uint32, blockDimZ : uint32, sharedMemBytes : uint32, paramCount : uint64, pParams : nativeptr, extraCount : uint64, pExtras : nativeptr) = + new(pNext : nativeint, presentBarrierEnable : VkBool32) = { - sType = 1000029002u + sType = 1000292002u pNext = pNext - _function = _function - gridDimX = gridDimX - gridDimY = gridDimY - gridDimZ = gridDimZ - blockDimX = blockDimX - blockDimY = blockDimY - blockDimZ = blockDimZ - sharedMemBytes = sharedMemBytes - paramCount = paramCount - pParams = pParams - extraCount = extraCount - pExtras = pExtras + presentBarrierEnable = presentBarrierEnable } - new(_function : VkCuFunctionNVX, gridDimX : uint32, gridDimY : uint32, gridDimZ : uint32, blockDimX : uint32, blockDimY : uint32, blockDimZ : uint32, sharedMemBytes : uint32, paramCount : uint64, pParams : nativeptr, extraCount : uint64, pExtras : nativeptr) = - VkCuLaunchInfoNVX(Unchecked.defaultof, _function, gridDimX, gridDimY, gridDimZ, blockDimX, blockDimY, blockDimZ, sharedMemBytes, paramCount, pParams, extraCount, pExtras) + new(presentBarrierEnable : VkBool32) = + VkSwapchainPresentBarrierCreateInfoNV(Unchecked.defaultof, presentBarrierEnable) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x._function = Unchecked.defaultof && x.gridDimX = Unchecked.defaultof && x.gridDimY = Unchecked.defaultof && x.gridDimZ = Unchecked.defaultof && x.blockDimX = Unchecked.defaultof && x.blockDimY = Unchecked.defaultof && x.blockDimZ = Unchecked.defaultof && x.sharedMemBytes = Unchecked.defaultof && x.paramCount = Unchecked.defaultof && x.pParams = Unchecked.defaultof> && x.extraCount = Unchecked.defaultof && x.pExtras = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.presentBarrierEnable = Unchecked.defaultof static member Empty = - VkCuLaunchInfoNVX(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>) + VkSwapchainPresentBarrierCreateInfoNV(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "_function = %A" x._function - sprintf "gridDimX = %A" x.gridDimX - sprintf "gridDimY = %A" x.gridDimY - sprintf "gridDimZ = %A" x.gridDimZ - sprintf "blockDimX = %A" x.blockDimX - sprintf "blockDimY = %A" x.blockDimY - sprintf "blockDimZ = %A" x.blockDimZ - sprintf "sharedMemBytes = %A" x.sharedMemBytes - sprintf "paramCount = %A" x.paramCount - sprintf "pParams = %A" x.pParams - sprintf "extraCount = %A" x.extraCount - sprintf "pExtras = %A" x.pExtras - ] |> sprintf "VkCuLaunchInfoNVX { %s }" + sprintf "presentBarrierEnable = %A" x.presentBarrierEnable + ] |> sprintf "VkSwapchainPresentBarrierCreateInfoNV { %s }" end + + +module NVRawAccessChains = + let Type = ExtensionType.Device + let Name = "VK_NV_raw_access_chains" + let Number = 556 + [] - type VkCuModuleCreateInfoNVX = + type VkPhysicalDeviceRawAccessChainsFeaturesNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public dataSize : uint64 - val mutable public pData : nativeint + val mutable public shaderRawAccessChains : VkBool32 - new(pNext : nativeint, dataSize : uint64, pData : nativeint) = + new(pNext : nativeint, shaderRawAccessChains : VkBool32) = { - sType = 1000029000u + sType = 1000555000u pNext = pNext - dataSize = dataSize - pData = pData + shaderRawAccessChains = shaderRawAccessChains } - new(dataSize : uint64, pData : nativeint) = - VkCuModuleCreateInfoNVX(Unchecked.defaultof, dataSize, pData) + new(shaderRawAccessChains : VkBool32) = + VkPhysicalDeviceRawAccessChainsFeaturesNV(Unchecked.defaultof, shaderRawAccessChains) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.dataSize = Unchecked.defaultof && x.pData = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.shaderRawAccessChains = Unchecked.defaultof static member Empty = - VkCuModuleCreateInfoNVX(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceRawAccessChainsFeaturesNV(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "dataSize = %A" x.dataSize - sprintf "pData = %A" x.pData - ] |> sprintf "VkCuModuleCreateInfoNVX { %s }" + sprintf "shaderRawAccessChains = %A" x.shaderRawAccessChains + ] |> sprintf "VkPhysicalDeviceRawAccessChainsFeaturesNV { %s }" end - [] - module EnumExtensions = - type VkObjectType with - static member inline CuModuleNvx = unbox 1000029000 - static member inline CuFunctionNvx = unbox 1000029001 - - module VkRaw = - [] - type VkCreateCuModuleNVXDel = delegate of VkDevice * nativeptr * nativeptr * nativeptr -> VkResult - [] - type VkCreateCuFunctionNVXDel = delegate of VkDevice * nativeptr * nativeptr * nativeptr -> VkResult - [] - type VkDestroyCuModuleNVXDel = delegate of VkDevice * VkCuModuleNVX * nativeptr -> unit - [] - type VkDestroyCuFunctionNVXDel = delegate of VkDevice * VkCuFunctionNVX * nativeptr -> unit - [] - type VkCmdCuLaunchKernelNVXDel = delegate of VkCommandBuffer * nativeptr -> unit - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading NVXBinaryImport") - static let s_vkCreateCuModuleNVXDel = VkRaw.vkImportInstanceDelegate "vkCreateCuModuleNVX" - static let s_vkCreateCuFunctionNVXDel = VkRaw.vkImportInstanceDelegate "vkCreateCuFunctionNVX" - static let s_vkDestroyCuModuleNVXDel = VkRaw.vkImportInstanceDelegate "vkDestroyCuModuleNVX" - static let s_vkDestroyCuFunctionNVXDel = VkRaw.vkImportInstanceDelegate "vkDestroyCuFunctionNVX" - static let s_vkCmdCuLaunchKernelNVXDel = VkRaw.vkImportInstanceDelegate "vkCmdCuLaunchKernelNVX" - static do Report.End(3) |> ignore - static member vkCreateCuModuleNVX = s_vkCreateCuModuleNVXDel - static member vkCreateCuFunctionNVX = s_vkCreateCuFunctionNVXDel - static member vkDestroyCuModuleNVX = s_vkDestroyCuModuleNVXDel - static member vkDestroyCuFunctionNVX = s_vkDestroyCuFunctionNVXDel - static member vkCmdCuLaunchKernelNVX = s_vkCmdCuLaunchKernelNVXDel - let vkCreateCuModuleNVX(device : VkDevice, pCreateInfo : nativeptr, pAllocator : nativeptr, pModule : nativeptr) = Loader.vkCreateCuModuleNVX.Invoke(device, pCreateInfo, pAllocator, pModule) - let vkCreateCuFunctionNVX(device : VkDevice, pCreateInfo : nativeptr, pAllocator : nativeptr, pFunction : nativeptr) = Loader.vkCreateCuFunctionNVX.Invoke(device, pCreateInfo, pAllocator, pFunction) - let vkDestroyCuModuleNVX(device : VkDevice, _module : VkCuModuleNVX, pAllocator : nativeptr) = Loader.vkDestroyCuModuleNVX.Invoke(device, _module, pAllocator) - let vkDestroyCuFunctionNVX(device : VkDevice, _function : VkCuFunctionNVX, pAllocator : nativeptr) = Loader.vkDestroyCuFunctionNVX.Invoke(device, _function, pAllocator) - let vkCmdCuLaunchKernelNVX(commandBuffer : VkCommandBuffer, pLaunchInfo : nativeptr) = Loader.vkCmdCuLaunchKernelNVX.Invoke(commandBuffer, pLaunchInfo) +/// Requires KHRRayTracingPipeline. +module NVRayTracingInvocationReorder = + let Type = ExtensionType.Device + let Name = "VK_NV_ray_tracing_invocation_reorder" + let Number = 491 -module NVXImageViewHandle = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_NVX_image_view_handle" - let Number = 31 + type VkRayTracingInvocationReorderModeNV = + | None = 0 + | Reorder = 1 [] - type VkImageViewAddressPropertiesNVX = + type VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public deviceAddress : VkDeviceAddress - val mutable public size : VkDeviceSize + val mutable public rayTracingInvocationReorder : VkBool32 - new(pNext : nativeint, deviceAddress : VkDeviceAddress, size : VkDeviceSize) = + new(pNext : nativeint, rayTracingInvocationReorder : VkBool32) = { - sType = 1000030001u + sType = 1000490000u pNext = pNext - deviceAddress = deviceAddress - size = size + rayTracingInvocationReorder = rayTracingInvocationReorder } - new(deviceAddress : VkDeviceAddress, size : VkDeviceSize) = - VkImageViewAddressPropertiesNVX(Unchecked.defaultof, deviceAddress, size) + new(rayTracingInvocationReorder : VkBool32) = + VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV(Unchecked.defaultof, rayTracingInvocationReorder) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.deviceAddress = Unchecked.defaultof && x.size = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.rayTracingInvocationReorder = Unchecked.defaultof static member Empty = - VkImageViewAddressPropertiesNVX(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "deviceAddress = %A" x.deviceAddress - sprintf "size = %A" x.size - ] |> sprintf "VkImageViewAddressPropertiesNVX { %s }" + sprintf "rayTracingInvocationReorder = %A" x.rayTracingInvocationReorder + ] |> sprintf "VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV { %s }" end [] - type VkImageViewHandleInfoNVX = + type VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public imageView : VkImageView - val mutable public descriptorType : VkDescriptorType - val mutable public sampler : VkSampler + val mutable public rayTracingInvocationReorderReorderingHint : VkRayTracingInvocationReorderModeNV - new(pNext : nativeint, imageView : VkImageView, descriptorType : VkDescriptorType, sampler : VkSampler) = + new(pNext : nativeint, rayTracingInvocationReorderReorderingHint : VkRayTracingInvocationReorderModeNV) = { - sType = 1000030000u + sType = 1000490001u pNext = pNext - imageView = imageView - descriptorType = descriptorType - sampler = sampler + rayTracingInvocationReorderReorderingHint = rayTracingInvocationReorderReorderingHint } - new(imageView : VkImageView, descriptorType : VkDescriptorType, sampler : VkSampler) = - VkImageViewHandleInfoNVX(Unchecked.defaultof, imageView, descriptorType, sampler) + new(rayTracingInvocationReorderReorderingHint : VkRayTracingInvocationReorderModeNV) = + VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV(Unchecked.defaultof, rayTracingInvocationReorderReorderingHint) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.imageView = Unchecked.defaultof && x.descriptorType = Unchecked.defaultof && x.sampler = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.rayTracingInvocationReorderReorderingHint = Unchecked.defaultof static member Empty = - VkImageViewHandleInfoNVX(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "imageView = %A" x.imageView - sprintf "descriptorType = %A" x.descriptorType - sprintf "sampler = %A" x.sampler - ] |> sprintf "VkImageViewHandleInfoNVX { %s }" + sprintf "rayTracingInvocationReorderReorderingHint = %A" x.rayTracingInvocationReorderReorderingHint + ] |> sprintf "VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV { %s }" end - module VkRaw = - [] - type VkGetImageViewHandleNVXDel = delegate of VkDevice * nativeptr -> uint32 - [] - type VkGetImageViewAddressNVXDel = delegate of VkDevice * VkImageView * nativeptr -> VkResult - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading NVXImageViewHandle") - static let s_vkGetImageViewHandleNVXDel = VkRaw.vkImportInstanceDelegate "vkGetImageViewHandleNVX" - static let s_vkGetImageViewAddressNVXDel = VkRaw.vkImportInstanceDelegate "vkGetImageViewAddressNVX" - static do Report.End(3) |> ignore - static member vkGetImageViewHandleNVX = s_vkGetImageViewHandleNVXDel - static member vkGetImageViewAddressNVX = s_vkGetImageViewAddressNVXDel - let vkGetImageViewHandleNVX(device : VkDevice, pInfo : nativeptr) = Loader.vkGetImageViewHandleNVX.Invoke(device, pInfo) - let vkGetImageViewAddressNVX(device : VkDevice, imageView : VkImageView, pProperties : nativeptr) = Loader.vkGetImageViewAddressNVX.Invoke(device, imageView, pProperties) +module NVRayTracingValidation = + let Type = ExtensionType.Device + let Name = "VK_NV_ray_tracing_validation" + let Number = 569 -module NVAcquireWinrtDisplay = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open EXTDirectModeDisplay - open KHRDisplay - open KHRSurface - let Name = "VK_NV_acquire_winrt_display" - let Number = 346 + [] + type VkPhysicalDeviceRayTracingValidationFeaturesNV = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public rayTracingValidation : VkBool32 - let Required = [ EXTDirectModeDisplay.Name ] + new(pNext : nativeint, rayTracingValidation : VkBool32) = + { + sType = 1000568000u + pNext = pNext + rayTracingValidation = rayTracingValidation + } + new(rayTracingValidation : VkBool32) = + VkPhysicalDeviceRayTracingValidationFeaturesNV(Unchecked.defaultof, rayTracingValidation) - module VkRaw = - [] - type VkAcquireWinrtDisplayNVDel = delegate of VkPhysicalDevice * VkDisplayKHR -> VkResult - [] - type VkGetWinrtDisplayNVDel = delegate of VkPhysicalDevice * uint32 * nativeptr -> VkResult + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.rayTracingValidation = Unchecked.defaultof - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading NVAcquireWinrtDisplay") - static let s_vkAcquireWinrtDisplayNVDel = VkRaw.vkImportInstanceDelegate "vkAcquireWinrtDisplayNV" - static let s_vkGetWinrtDisplayNVDel = VkRaw.vkImportInstanceDelegate "vkGetWinrtDisplayNV" - static do Report.End(3) |> ignore - static member vkAcquireWinrtDisplayNV = s_vkAcquireWinrtDisplayNVDel - static member vkGetWinrtDisplayNV = s_vkGetWinrtDisplayNVDel - let vkAcquireWinrtDisplayNV(physicalDevice : VkPhysicalDevice, display : VkDisplayKHR) = Loader.vkAcquireWinrtDisplayNV.Invoke(physicalDevice, display) - let vkGetWinrtDisplayNV(physicalDevice : VkPhysicalDevice, deviceRelativeId : uint32, pDisplay : nativeptr) = Loader.vkGetWinrtDisplayNV.Invoke(physicalDevice, deviceRelativeId, pDisplay) + static member Empty = + VkPhysicalDeviceRayTracingValidationFeaturesNV(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "rayTracingValidation = %A" x.rayTracingValidation + ] |> sprintf "VkPhysicalDeviceRayTracingValidationFeaturesNV { %s }" + end -module NVClipSpaceWScaling = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_NV_clip_space_w_scaling" - let Number = 88 +module NVSampleMaskOverrideCoverage = + let Type = ExtensionType.Device + let Name = "VK_NV_sample_mask_override_coverage" + let Number = 95 + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module NVScissorExclusive = + let Type = ExtensionType.Device + let Name = "VK_NV_scissor_exclusive" + let Number = 206 + [] - type VkViewportWScalingNV = + type VkPhysicalDeviceExclusiveScissorFeaturesNV = struct - val mutable public xcoeff : float32 - val mutable public ycoeff : float32 + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public exclusiveScissor : VkBool32 - new(xcoeff : float32, ycoeff : float32) = + new(pNext : nativeint, exclusiveScissor : VkBool32) = { - xcoeff = xcoeff - ycoeff = ycoeff + sType = 1000205002u + pNext = pNext + exclusiveScissor = exclusiveScissor } + new(exclusiveScissor : VkBool32) = + VkPhysicalDeviceExclusiveScissorFeaturesNV(Unchecked.defaultof, exclusiveScissor) + member x.IsEmpty = - x.xcoeff = Unchecked.defaultof && x.ycoeff = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.exclusiveScissor = Unchecked.defaultof static member Empty = - VkViewportWScalingNV(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceExclusiveScissorFeaturesNV(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ - sprintf "xcoeff = %A" x.xcoeff - sprintf "ycoeff = %A" x.ycoeff - ] |> sprintf "VkViewportWScalingNV { %s }" + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "exclusiveScissor = %A" x.exclusiveScissor + ] |> sprintf "VkPhysicalDeviceExclusiveScissorFeaturesNV { %s }" end [] - type VkPipelineViewportWScalingStateCreateInfoNV = + type VkPipelineViewportExclusiveScissorStateCreateInfoNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public viewportWScalingEnable : VkBool32 - val mutable public viewportCount : uint32 - val mutable public pViewportWScalings : nativeptr + val mutable public exclusiveScissorCount : uint32 + val mutable public pExclusiveScissors : nativeptr - new(pNext : nativeint, viewportWScalingEnable : VkBool32, viewportCount : uint32, pViewportWScalings : nativeptr) = + new(pNext : nativeint, exclusiveScissorCount : uint32, pExclusiveScissors : nativeptr) = { - sType = 1000087000u + sType = 1000205000u pNext = pNext - viewportWScalingEnable = viewportWScalingEnable - viewportCount = viewportCount - pViewportWScalings = pViewportWScalings + exclusiveScissorCount = exclusiveScissorCount + pExclusiveScissors = pExclusiveScissors } - new(viewportWScalingEnable : VkBool32, viewportCount : uint32, pViewportWScalings : nativeptr) = - VkPipelineViewportWScalingStateCreateInfoNV(Unchecked.defaultof, viewportWScalingEnable, viewportCount, pViewportWScalings) + new(exclusiveScissorCount : uint32, pExclusiveScissors : nativeptr) = + VkPipelineViewportExclusiveScissorStateCreateInfoNV(Unchecked.defaultof, exclusiveScissorCount, pExclusiveScissors) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.viewportWScalingEnable = Unchecked.defaultof && x.viewportCount = Unchecked.defaultof && x.pViewportWScalings = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.exclusiveScissorCount = Unchecked.defaultof && x.pExclusiveScissors = Unchecked.defaultof> static member Empty = - VkPipelineViewportWScalingStateCreateInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + VkPipelineViewportExclusiveScissorStateCreateInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "viewportWScalingEnable = %A" x.viewportWScalingEnable - sprintf "viewportCount = %A" x.viewportCount - sprintf "pViewportWScalings = %A" x.pViewportWScalings - ] |> sprintf "VkPipelineViewportWScalingStateCreateInfoNV { %s }" + sprintf "exclusiveScissorCount = %A" x.exclusiveScissorCount + sprintf "pExclusiveScissors = %A" x.pExclusiveScissors + ] |> sprintf "VkPipelineViewportExclusiveScissorStateCreateInfoNV { %s }" end [] module EnumExtensions = type VkDynamicState with - static member inline ViewportWScalingNv = unbox 1000087000 + static member inline ExclusiveScissorEnableNv = unbox 1000205000 + static member inline ExclusiveScissorNv = unbox 1000205001 module VkRaw = [] - type VkCmdSetViewportWScalingNVDel = delegate of VkCommandBuffer * uint32 * uint32 * nativeptr -> unit + type VkCmdSetExclusiveScissorEnableNVDel = delegate of VkCommandBuffer * uint32 * uint32 * nativeptr -> unit + [] + type VkCmdSetExclusiveScissorNVDel = delegate of VkCommandBuffer * uint32 * uint32 * nativeptr -> unit [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading NVClipSpaceWScaling") - static let s_vkCmdSetViewportWScalingNVDel = VkRaw.vkImportInstanceDelegate "vkCmdSetViewportWScalingNV" + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading NVScissorExclusive") + static let s_vkCmdSetExclusiveScissorEnableNVDel = VkRaw.vkImportInstanceDelegate "vkCmdSetExclusiveScissorEnableNV" + static let s_vkCmdSetExclusiveScissorNVDel = VkRaw.vkImportInstanceDelegate "vkCmdSetExclusiveScissorNV" static do Report.End(3) |> ignore - static member vkCmdSetViewportWScalingNV = s_vkCmdSetViewportWScalingNVDel - let vkCmdSetViewportWScalingNV(commandBuffer : VkCommandBuffer, firstViewport : uint32, viewportCount : uint32, pViewportWScalings : nativeptr) = Loader.vkCmdSetViewportWScalingNV.Invoke(commandBuffer, firstViewport, viewportCount, pViewportWScalings) - -module NVComputeShaderDerivatives = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_NV_compute_shader_derivatives" - let Number = 202 - - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] + static member vkCmdSetExclusiveScissorEnableNV = s_vkCmdSetExclusiveScissorEnableNVDel + static member vkCmdSetExclusiveScissorNV = s_vkCmdSetExclusiveScissorNVDel + let vkCmdSetExclusiveScissorEnableNV(commandBuffer : VkCommandBuffer, firstExclusiveScissor : uint32, exclusiveScissorCount : uint32, pExclusiveScissorEnables : nativeptr) = Loader.vkCmdSetExclusiveScissorEnableNV.Invoke(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissorEnables) + let vkCmdSetExclusiveScissorNV(commandBuffer : VkCommandBuffer, firstExclusiveScissor : uint32, exclusiveScissorCount : uint32, pExclusiveScissors : nativeptr) = Loader.vkCmdSetExclusiveScissorNV.Invoke(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) +module NVShaderAtomicFloat16Vector = + let Type = ExtensionType.Device + let Name = "VK_NV_shader_atomic_float16_vector" + let Number = 564 [] - type VkPhysicalDeviceComputeShaderDerivativesFeaturesNV = + type VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public computeDerivativeGroupQuads : VkBool32 - val mutable public computeDerivativeGroupLinear : VkBool32 + val mutable public shaderFloat16VectorAtomics : VkBool32 - new(pNext : nativeint, computeDerivativeGroupQuads : VkBool32, computeDerivativeGroupLinear : VkBool32) = + new(pNext : nativeint, shaderFloat16VectorAtomics : VkBool32) = { - sType = 1000201000u + sType = 1000563000u pNext = pNext - computeDerivativeGroupQuads = computeDerivativeGroupQuads - computeDerivativeGroupLinear = computeDerivativeGroupLinear + shaderFloat16VectorAtomics = shaderFloat16VectorAtomics } - new(computeDerivativeGroupQuads : VkBool32, computeDerivativeGroupLinear : VkBool32) = - VkPhysicalDeviceComputeShaderDerivativesFeaturesNV(Unchecked.defaultof, computeDerivativeGroupQuads, computeDerivativeGroupLinear) + new(shaderFloat16VectorAtomics : VkBool32) = + VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV(Unchecked.defaultof, shaderFloat16VectorAtomics) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.computeDerivativeGroupQuads = Unchecked.defaultof && x.computeDerivativeGroupLinear = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.shaderFloat16VectorAtomics = Unchecked.defaultof static member Empty = - VkPhysicalDeviceComputeShaderDerivativesFeaturesNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "computeDerivativeGroupQuads = %A" x.computeDerivativeGroupQuads - sprintf "computeDerivativeGroupLinear = %A" x.computeDerivativeGroupLinear - ] |> sprintf "VkPhysicalDeviceComputeShaderDerivativesFeaturesNV { %s }" + sprintf "shaderFloat16VectorAtomics = %A" x.shaderFloat16VectorAtomics + ] |> sprintf "VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV { %s }" end -module NVCooperativeMatrix = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_NV_cooperative_matrix" - let Number = 250 +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module NVShaderImageFootprint = + let Type = ExtensionType.Device + let Name = "VK_NV_shader_image_footprint" + let Number = 205 - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] + [] + type VkPhysicalDeviceShaderImageFootprintFeaturesNV = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public imageFootprint : VkBool32 + new(pNext : nativeint, imageFootprint : VkBool32) = + { + sType = 1000204000u + pNext = pNext + imageFootprint = imageFootprint + } - type VkScopeNV = - | Device = 1 - | Workgroup = 2 - | Subgroup = 3 - | QueueFamily = 5 + new(imageFootprint : VkBool32) = + VkPhysicalDeviceShaderImageFootprintFeaturesNV(Unchecked.defaultof, imageFootprint) - type VkComponentTypeNV = - | Float16 = 0 - | Float32 = 1 - | Float64 = 2 - | Sint8 = 3 - | Sint16 = 4 - | Sint32 = 5 - | Sint64 = 6 - | Uint8 = 7 - | Uint16 = 8 - | Uint32 = 9 - | Uint64 = 10 + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.imageFootprint = Unchecked.defaultof + static member Empty = + VkPhysicalDeviceShaderImageFootprintFeaturesNV(Unchecked.defaultof, Unchecked.defaultof) + + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "imageFootprint = %A" x.imageFootprint + ] |> sprintf "VkPhysicalDeviceShaderImageFootprintFeaturesNV { %s }" + end + + + +/// Requires Vulkan11. +module NVShaderSmBuiltins = + let Type = ExtensionType.Device + let Name = "VK_NV_shader_sm_builtins" + let Number = 155 [] - type VkCooperativeMatrixPropertiesNV = + type VkPhysicalDeviceShaderSMBuiltinsFeaturesNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public MSize : uint32 - val mutable public NSize : uint32 - val mutable public KSize : uint32 - val mutable public AType : VkComponentTypeNV - val mutable public BType : VkComponentTypeNV - val mutable public CType : VkComponentTypeNV - val mutable public DType : VkComponentTypeNV - val mutable public scope : VkScopeNV + val mutable public shaderSMBuiltins : VkBool32 - new(pNext : nativeint, MSize : uint32, NSize : uint32, KSize : uint32, AType : VkComponentTypeNV, BType : VkComponentTypeNV, CType : VkComponentTypeNV, DType : VkComponentTypeNV, scope : VkScopeNV) = + new(pNext : nativeint, shaderSMBuiltins : VkBool32) = { - sType = 1000249001u + sType = 1000154000u pNext = pNext - MSize = MSize - NSize = NSize - KSize = KSize - AType = AType - BType = BType - CType = CType - DType = DType - scope = scope + shaderSMBuiltins = shaderSMBuiltins } - new(MSize : uint32, NSize : uint32, KSize : uint32, AType : VkComponentTypeNV, BType : VkComponentTypeNV, CType : VkComponentTypeNV, DType : VkComponentTypeNV, scope : VkScopeNV) = - VkCooperativeMatrixPropertiesNV(Unchecked.defaultof, MSize, NSize, KSize, AType, BType, CType, DType, scope) + new(shaderSMBuiltins : VkBool32) = + VkPhysicalDeviceShaderSMBuiltinsFeaturesNV(Unchecked.defaultof, shaderSMBuiltins) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.MSize = Unchecked.defaultof && x.NSize = Unchecked.defaultof && x.KSize = Unchecked.defaultof && x.AType = Unchecked.defaultof && x.BType = Unchecked.defaultof && x.CType = Unchecked.defaultof && x.DType = Unchecked.defaultof && x.scope = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.shaderSMBuiltins = Unchecked.defaultof static member Empty = - VkCooperativeMatrixPropertiesNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceShaderSMBuiltinsFeaturesNV(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "MSize = %A" x.MSize - sprintf "NSize = %A" x.NSize - sprintf "KSize = %A" x.KSize - sprintf "AType = %A" x.AType - sprintf "BType = %A" x.BType - sprintf "CType = %A" x.CType - sprintf "DType = %A" x.DType - sprintf "scope = %A" x.scope - ] |> sprintf "VkCooperativeMatrixPropertiesNV { %s }" + sprintf "shaderSMBuiltins = %A" x.shaderSMBuiltins + ] |> sprintf "VkPhysicalDeviceShaderSMBuiltinsFeaturesNV { %s }" end [] - type VkPhysicalDeviceCooperativeMatrixFeaturesNV = + type VkPhysicalDeviceShaderSMBuiltinsPropertiesNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public cooperativeMatrix : VkBool32 - val mutable public cooperativeMatrixRobustBufferAccess : VkBool32 + val mutable public shaderSMCount : uint32 + val mutable public shaderWarpsPerSM : uint32 - new(pNext : nativeint, cooperativeMatrix : VkBool32, cooperativeMatrixRobustBufferAccess : VkBool32) = + new(pNext : nativeint, shaderSMCount : uint32, shaderWarpsPerSM : uint32) = { - sType = 1000249000u + sType = 1000154001u pNext = pNext - cooperativeMatrix = cooperativeMatrix - cooperativeMatrixRobustBufferAccess = cooperativeMatrixRobustBufferAccess + shaderSMCount = shaderSMCount + shaderWarpsPerSM = shaderWarpsPerSM } - new(cooperativeMatrix : VkBool32, cooperativeMatrixRobustBufferAccess : VkBool32) = - VkPhysicalDeviceCooperativeMatrixFeaturesNV(Unchecked.defaultof, cooperativeMatrix, cooperativeMatrixRobustBufferAccess) + new(shaderSMCount : uint32, shaderWarpsPerSM : uint32) = + VkPhysicalDeviceShaderSMBuiltinsPropertiesNV(Unchecked.defaultof, shaderSMCount, shaderWarpsPerSM) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.cooperativeMatrix = Unchecked.defaultof && x.cooperativeMatrixRobustBufferAccess = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.shaderSMCount = Unchecked.defaultof && x.shaderWarpsPerSM = Unchecked.defaultof static member Empty = - VkPhysicalDeviceCooperativeMatrixFeaturesNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceShaderSMBuiltinsPropertiesNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "cooperativeMatrix = %A" x.cooperativeMatrix - sprintf "cooperativeMatrixRobustBufferAccess = %A" x.cooperativeMatrixRobustBufferAccess - ] |> sprintf "VkPhysicalDeviceCooperativeMatrixFeaturesNV { %s }" + sprintf "shaderSMCount = %A" x.shaderSMCount + sprintf "shaderWarpsPerSM = %A" x.shaderWarpsPerSM + ] |> sprintf "VkPhysicalDeviceShaderSMBuiltinsPropertiesNV { %s }" end + + +/// Requires Vulkan11. +module NVShaderSubgroupPartitioned = + let Type = ExtensionType.Device + let Name = "VK_NV_shader_subgroup_partitioned" + let Number = 199 + + [] + module EnumExtensions = + type Vulkan11.VkSubgroupFeatureFlags with + static member inline PartitionedBitNv = unbox 0x00000100 + + +module NVViewportArray2 = + let Type = ExtensionType.Device + let Name = "VK_NV_viewport_array2" + let Number = 97 + +/// Requires NVExternalMemoryWin32. +/// Promoted to KHRWin32KeyedMutex. +module NVWin32KeyedMutex = + let Type = ExtensionType.Device + let Name = "VK_NV_win32_keyed_mutex" + let Number = 59 + [] - type VkPhysicalDeviceCooperativeMatrixPropertiesNV = + type VkWin32KeyedMutexAcquireReleaseInfoNV = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public cooperativeMatrixSupportedStages : VkShaderStageFlags + val mutable public acquireCount : uint32 + val mutable public pAcquireSyncs : nativeptr + val mutable public pAcquireKeys : nativeptr + val mutable public pAcquireTimeoutMilliseconds : nativeptr + val mutable public releaseCount : uint32 + val mutable public pReleaseSyncs : nativeptr + val mutable public pReleaseKeys : nativeptr - new(pNext : nativeint, cooperativeMatrixSupportedStages : VkShaderStageFlags) = + new(pNext : nativeint, acquireCount : uint32, pAcquireSyncs : nativeptr, pAcquireKeys : nativeptr, pAcquireTimeoutMilliseconds : nativeptr, releaseCount : uint32, pReleaseSyncs : nativeptr, pReleaseKeys : nativeptr) = { - sType = 1000249002u + sType = 1000058000u pNext = pNext - cooperativeMatrixSupportedStages = cooperativeMatrixSupportedStages + acquireCount = acquireCount + pAcquireSyncs = pAcquireSyncs + pAcquireKeys = pAcquireKeys + pAcquireTimeoutMilliseconds = pAcquireTimeoutMilliseconds + releaseCount = releaseCount + pReleaseSyncs = pReleaseSyncs + pReleaseKeys = pReleaseKeys } - new(cooperativeMatrixSupportedStages : VkShaderStageFlags) = - VkPhysicalDeviceCooperativeMatrixPropertiesNV(Unchecked.defaultof, cooperativeMatrixSupportedStages) + new(acquireCount : uint32, pAcquireSyncs : nativeptr, pAcquireKeys : nativeptr, pAcquireTimeoutMilliseconds : nativeptr, releaseCount : uint32, pReleaseSyncs : nativeptr, pReleaseKeys : nativeptr) = + VkWin32KeyedMutexAcquireReleaseInfoNV(Unchecked.defaultof, acquireCount, pAcquireSyncs, pAcquireKeys, pAcquireTimeoutMilliseconds, releaseCount, pReleaseSyncs, pReleaseKeys) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.cooperativeMatrixSupportedStages = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.acquireCount = Unchecked.defaultof && x.pAcquireSyncs = Unchecked.defaultof> && x.pAcquireKeys = Unchecked.defaultof> && x.pAcquireTimeoutMilliseconds = Unchecked.defaultof> && x.releaseCount = Unchecked.defaultof && x.pReleaseSyncs = Unchecked.defaultof> && x.pReleaseKeys = Unchecked.defaultof> static member Empty = - VkPhysicalDeviceCooperativeMatrixPropertiesNV(Unchecked.defaultof, Unchecked.defaultof) + VkWin32KeyedMutexAcquireReleaseInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof>, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "cooperativeMatrixSupportedStages = %A" x.cooperativeMatrixSupportedStages - ] |> sprintf "VkPhysicalDeviceCooperativeMatrixPropertiesNV { %s }" + sprintf "acquireCount = %A" x.acquireCount + sprintf "pAcquireSyncs = %A" x.pAcquireSyncs + sprintf "pAcquireKeys = %A" x.pAcquireKeys + sprintf "pAcquireTimeoutMilliseconds = %A" x.pAcquireTimeoutMilliseconds + sprintf "releaseCount = %A" x.releaseCount + sprintf "pReleaseSyncs = %A" x.pReleaseSyncs + sprintf "pReleaseKeys = %A" x.pReleaseKeys + ] |> sprintf "VkWin32KeyedMutexAcquireReleaseInfoNV { %s }" end - module VkRaw = - [] - type VkGetPhysicalDeviceCooperativeMatrixPropertiesNVDel = delegate of VkPhysicalDevice * nativeptr * nativeptr -> VkResult - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading NVCooperativeMatrix") - static let s_vkGetPhysicalDeviceCooperativeMatrixPropertiesNVDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV" - static do Report.End(3) |> ignore - static member vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = s_vkGetPhysicalDeviceCooperativeMatrixPropertiesNVDel - let vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice : VkPhysicalDevice, pPropertyCount : nativeptr, pProperties : nativeptr) = Loader.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV.Invoke(physicalDevice, pPropertyCount, pProperties) - -module NVCornerSampledImage = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_NV_corner_sampled_image" - let Number = 51 - - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] +/// Requires (EXTFilterCubic), (Vulkan12 | EXTSamplerFilterMinmax). +module QCOMFilterCubicClamp = + let Type = ExtensionType.Device + let Name = "VK_QCOM_filter_cubic_clamp" + let Number = 522 [] - type VkPhysicalDeviceCornerSampledImageFeaturesNV = + type VkPhysicalDeviceCubicClampFeaturesQCOM = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public cornerSampledImage : VkBool32 + val mutable public cubicRangeClamp : VkBool32 - new(pNext : nativeint, cornerSampledImage : VkBool32) = + new(pNext : nativeint, cubicRangeClamp : VkBool32) = { - sType = 1000050000u + sType = 1000521000u pNext = pNext - cornerSampledImage = cornerSampledImage + cubicRangeClamp = cubicRangeClamp } - new(cornerSampledImage : VkBool32) = - VkPhysicalDeviceCornerSampledImageFeaturesNV(Unchecked.defaultof, cornerSampledImage) + new(cubicRangeClamp : VkBool32) = + VkPhysicalDeviceCubicClampFeaturesQCOM(Unchecked.defaultof, cubicRangeClamp) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.cornerSampledImage = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.cubicRangeClamp = Unchecked.defaultof static member Empty = - VkPhysicalDeviceCornerSampledImageFeaturesNV(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceCubicClampFeaturesQCOM(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "cornerSampledImage = %A" x.cornerSampledImage - ] |> sprintf "VkPhysicalDeviceCornerSampledImageFeaturesNV { %s }" + sprintf "cubicRangeClamp = %A" x.cubicRangeClamp + ] |> sprintf "VkPhysicalDeviceCubicClampFeaturesQCOM { %s }" end [] module EnumExtensions = - type VkImageCreateFlags with - static member inline CornerSampledBitNv = unbox 0x00002000 - - -module NVCoverageReductionMode = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open NVFramebufferMixedSamples - let Name = "VK_NV_coverage_reduction_mode" - let Number = 251 + type Vulkan12.VkSamplerReductionMode with + static member inline WeightedAverageRangeclampQcom = unbox 1000521000 - let Required = [ NVFramebufferMixedSamples.Name ] +/// Requires EXTFilterCubic. +module QCOMFilterCubicWeights = + let Type = ExtensionType.Device + let Name = "VK_QCOM_filter_cubic_weights" + let Number = 520 - type VkCoverageReductionModeNV = - | Merge = 0 - | Truncate = 1 + type VkCubicFilterWeightsQCOM = + | CatmullRom = 0 + | ZeroTangentCardinal = 1 + | BSpline = 2 + | MitchellNetravali = 3 [] - type VkFramebufferMixedSamplesCombinationNV = + type VkBlitImageCubicWeightsInfoQCOM = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public coverageReductionMode : VkCoverageReductionModeNV - val mutable public rasterizationSamples : VkSampleCountFlags - val mutable public depthStencilSamples : VkSampleCountFlags - val mutable public colorSamples : VkSampleCountFlags + val mutable public cubicWeights : VkCubicFilterWeightsQCOM - new(pNext : nativeint, coverageReductionMode : VkCoverageReductionModeNV, rasterizationSamples : VkSampleCountFlags, depthStencilSamples : VkSampleCountFlags, colorSamples : VkSampleCountFlags) = + new(pNext : nativeint, cubicWeights : VkCubicFilterWeightsQCOM) = { - sType = 1000250002u + sType = 1000519002u pNext = pNext - coverageReductionMode = coverageReductionMode - rasterizationSamples = rasterizationSamples - depthStencilSamples = depthStencilSamples - colorSamples = colorSamples + cubicWeights = cubicWeights } - new(coverageReductionMode : VkCoverageReductionModeNV, rasterizationSamples : VkSampleCountFlags, depthStencilSamples : VkSampleCountFlags, colorSamples : VkSampleCountFlags) = - VkFramebufferMixedSamplesCombinationNV(Unchecked.defaultof, coverageReductionMode, rasterizationSamples, depthStencilSamples, colorSamples) + new(cubicWeights : VkCubicFilterWeightsQCOM) = + VkBlitImageCubicWeightsInfoQCOM(Unchecked.defaultof, cubicWeights) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.coverageReductionMode = Unchecked.defaultof && x.rasterizationSamples = Unchecked.defaultof && x.depthStencilSamples = Unchecked.defaultof && x.colorSamples = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.cubicWeights = Unchecked.defaultof static member Empty = - VkFramebufferMixedSamplesCombinationNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkBlitImageCubicWeightsInfoQCOM(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "coverageReductionMode = %A" x.coverageReductionMode - sprintf "rasterizationSamples = %A" x.rasterizationSamples - sprintf "depthStencilSamples = %A" x.depthStencilSamples - sprintf "colorSamples = %A" x.colorSamples - ] |> sprintf "VkFramebufferMixedSamplesCombinationNV { %s }" + sprintf "cubicWeights = %A" x.cubicWeights + ] |> sprintf "VkBlitImageCubicWeightsInfoQCOM { %s }" end [] - type VkPhysicalDeviceCoverageReductionModeFeaturesNV = + type VkPhysicalDeviceCubicWeightsFeaturesQCOM = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public coverageReductionMode : VkBool32 + val mutable public selectableCubicWeights : VkBool32 - new(pNext : nativeint, coverageReductionMode : VkBool32) = + new(pNext : nativeint, selectableCubicWeights : VkBool32) = { - sType = 1000250000u + sType = 1000519001u pNext = pNext - coverageReductionMode = coverageReductionMode + selectableCubicWeights = selectableCubicWeights } - new(coverageReductionMode : VkBool32) = - VkPhysicalDeviceCoverageReductionModeFeaturesNV(Unchecked.defaultof, coverageReductionMode) + new(selectableCubicWeights : VkBool32) = + VkPhysicalDeviceCubicWeightsFeaturesQCOM(Unchecked.defaultof, selectableCubicWeights) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.coverageReductionMode = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.selectableCubicWeights = Unchecked.defaultof static member Empty = - VkPhysicalDeviceCoverageReductionModeFeaturesNV(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceCubicWeightsFeaturesQCOM(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "coverageReductionMode = %A" x.coverageReductionMode - ] |> sprintf "VkPhysicalDeviceCoverageReductionModeFeaturesNV { %s }" + sprintf "selectableCubicWeights = %A" x.selectableCubicWeights + ] |> sprintf "VkPhysicalDeviceCubicWeightsFeaturesQCOM { %s }" end [] - type VkPipelineCoverageReductionStateCreateInfoNV = + type VkSamplerCubicWeightsCreateInfoQCOM = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public flags : VkPipelineCoverageReductionStateCreateFlagsNV - val mutable public coverageReductionMode : VkCoverageReductionModeNV + val mutable public cubicWeights : VkCubicFilterWeightsQCOM - new(pNext : nativeint, flags : VkPipelineCoverageReductionStateCreateFlagsNV, coverageReductionMode : VkCoverageReductionModeNV) = + new(pNext : nativeint, cubicWeights : VkCubicFilterWeightsQCOM) = { - sType = 1000250001u + sType = 1000519000u pNext = pNext - flags = flags - coverageReductionMode = coverageReductionMode + cubicWeights = cubicWeights } - new(flags : VkPipelineCoverageReductionStateCreateFlagsNV, coverageReductionMode : VkCoverageReductionModeNV) = - VkPipelineCoverageReductionStateCreateInfoNV(Unchecked.defaultof, flags, coverageReductionMode) + new(cubicWeights : VkCubicFilterWeightsQCOM) = + VkSamplerCubicWeightsCreateInfoQCOM(Unchecked.defaultof, cubicWeights) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.coverageReductionMode = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.cubicWeights = Unchecked.defaultof static member Empty = - VkPipelineCoverageReductionStateCreateInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkSamplerCubicWeightsCreateInfoQCOM(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "flags = %A" x.flags - sprintf "coverageReductionMode = %A" x.coverageReductionMode - ] |> sprintf "VkPipelineCoverageReductionStateCreateInfoNV { %s }" + sprintf "cubicWeights = %A" x.cubicWeights + ] |> sprintf "VkSamplerCubicWeightsCreateInfoQCOM { %s }" end - module VkRaw = - [] - type VkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNVDel = delegate of VkPhysicalDevice * nativeptr * nativeptr -> VkResult - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading NVCoverageReductionMode") - static let s_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNVDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" - static do Report.End(3) |> ignore - static member vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = s_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNVDel - let vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice : VkPhysicalDevice, pCombinationCount : nativeptr, pCombinations : nativeptr) = Loader.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV.Invoke(physicalDevice, pCombinationCount, pCombinations) - -module NVDedicatedAllocation = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_NV_dedicated_allocation" - let Number = 27 +/// Requires (KHRGetPhysicalDeviceProperties2 | Vulkan11), EXTFragmentDensityMap. +module QCOMFragmentDensityMapOffset = + let Type = ExtensionType.Device + let Name = "VK_QCOM_fragment_density_map_offset" + let Number = 426 [] - type VkDedicatedAllocationBufferCreateInfoNV = + type VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public dedicatedAllocation : VkBool32 + val mutable public fragmentDensityMapOffset : VkBool32 - new(pNext : nativeint, dedicatedAllocation : VkBool32) = + new(pNext : nativeint, fragmentDensityMapOffset : VkBool32) = { - sType = 1000026001u + sType = 1000425000u pNext = pNext - dedicatedAllocation = dedicatedAllocation + fragmentDensityMapOffset = fragmentDensityMapOffset } - new(dedicatedAllocation : VkBool32) = - VkDedicatedAllocationBufferCreateInfoNV(Unchecked.defaultof, dedicatedAllocation) + new(fragmentDensityMapOffset : VkBool32) = + VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM(Unchecked.defaultof, fragmentDensityMapOffset) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.dedicatedAllocation = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.fragmentDensityMapOffset = Unchecked.defaultof static member Empty = - VkDedicatedAllocationBufferCreateInfoNV(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "dedicatedAllocation = %A" x.dedicatedAllocation - ] |> sprintf "VkDedicatedAllocationBufferCreateInfoNV { %s }" + sprintf "fragmentDensityMapOffset = %A" x.fragmentDensityMapOffset + ] |> sprintf "VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM { %s }" end [] - type VkDedicatedAllocationImageCreateInfoNV = + type VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public dedicatedAllocation : VkBool32 + val mutable public fragmentDensityOffsetGranularity : VkExtent2D - new(pNext : nativeint, dedicatedAllocation : VkBool32) = + new(pNext : nativeint, fragmentDensityOffsetGranularity : VkExtent2D) = { - sType = 1000026000u + sType = 1000425001u pNext = pNext - dedicatedAllocation = dedicatedAllocation + fragmentDensityOffsetGranularity = fragmentDensityOffsetGranularity } - new(dedicatedAllocation : VkBool32) = - VkDedicatedAllocationImageCreateInfoNV(Unchecked.defaultof, dedicatedAllocation) + new(fragmentDensityOffsetGranularity : VkExtent2D) = + VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM(Unchecked.defaultof, fragmentDensityOffsetGranularity) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.dedicatedAllocation = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.fragmentDensityOffsetGranularity = Unchecked.defaultof static member Empty = - VkDedicatedAllocationImageCreateInfoNV(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "dedicatedAllocation = %A" x.dedicatedAllocation - ] |> sprintf "VkDedicatedAllocationImageCreateInfoNV { %s }" + sprintf "fragmentDensityOffsetGranularity = %A" x.fragmentDensityOffsetGranularity + ] |> sprintf "VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM { %s }" end [] - type VkDedicatedAllocationMemoryAllocateInfoNV = + type VkSubpassFragmentDensityMapOffsetEndInfoQCOM = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public image : VkImage - val mutable public buffer : VkBuffer + val mutable public fragmentDensityOffsetCount : uint32 + val mutable public pFragmentDensityOffsets : nativeptr - new(pNext : nativeint, image : VkImage, buffer : VkBuffer) = + new(pNext : nativeint, fragmentDensityOffsetCount : uint32, pFragmentDensityOffsets : nativeptr) = { - sType = 1000026002u + sType = 1000425002u pNext = pNext - image = image - buffer = buffer + fragmentDensityOffsetCount = fragmentDensityOffsetCount + pFragmentDensityOffsets = pFragmentDensityOffsets } - new(image : VkImage, buffer : VkBuffer) = - VkDedicatedAllocationMemoryAllocateInfoNV(Unchecked.defaultof, image, buffer) + new(fragmentDensityOffsetCount : uint32, pFragmentDensityOffsets : nativeptr) = + VkSubpassFragmentDensityMapOffsetEndInfoQCOM(Unchecked.defaultof, fragmentDensityOffsetCount, pFragmentDensityOffsets) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.image = Unchecked.defaultof && x.buffer = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.fragmentDensityOffsetCount = Unchecked.defaultof && x.pFragmentDensityOffsets = Unchecked.defaultof> static member Empty = - VkDedicatedAllocationMemoryAllocateInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkSubpassFragmentDensityMapOffsetEndInfoQCOM(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "image = %A" x.image - sprintf "buffer = %A" x.buffer - ] |> sprintf "VkDedicatedAllocationMemoryAllocateInfoNV { %s }" + sprintf "fragmentDensityOffsetCount = %A" x.fragmentDensityOffsetCount + sprintf "pFragmentDensityOffsets = %A" x.pFragmentDensityOffsets + ] |> sprintf "VkSubpassFragmentDensityMapOffsetEndInfoQCOM { %s }" end + [] + module EnumExtensions = + type VkImageCreateFlags with + static member inline FragmentDensityMapOffsetBitQcom = unbox 0x00008000 -module NVDedicatedAllocationImageAliasing = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRDedicatedAllocation - open KHRGetMemoryRequirements2 - let Name = "VK_NV_dedicated_allocation_image_aliasing" - let Number = 241 - - let Required = [ KHRDedicatedAllocation.Name ] +/// Requires KHRFormatFeatureFlags2 | Vulkan13. +module QCOMImageProcessing = + let Type = ExtensionType.Device + let Name = "VK_QCOM_image_processing" + let Number = 441 [] - type VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV = + type VkImageViewSampleWeightCreateInfoQCOM = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public dedicatedAllocationImageAliasing : VkBool32 + val mutable public filterCenter : VkOffset2D + val mutable public filterSize : VkExtent2D + val mutable public numPhases : uint32 - new(pNext : nativeint, dedicatedAllocationImageAliasing : VkBool32) = + new(pNext : nativeint, filterCenter : VkOffset2D, filterSize : VkExtent2D, numPhases : uint32) = { - sType = 1000240000u + sType = 1000440002u pNext = pNext - dedicatedAllocationImageAliasing = dedicatedAllocationImageAliasing + filterCenter = filterCenter + filterSize = filterSize + numPhases = numPhases } - new(dedicatedAllocationImageAliasing : VkBool32) = - VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV(Unchecked.defaultof, dedicatedAllocationImageAliasing) + new(filterCenter : VkOffset2D, filterSize : VkExtent2D, numPhases : uint32) = + VkImageViewSampleWeightCreateInfoQCOM(Unchecked.defaultof, filterCenter, filterSize, numPhases) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.dedicatedAllocationImageAliasing = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.filterCenter = Unchecked.defaultof && x.filterSize = Unchecked.defaultof && x.numPhases = Unchecked.defaultof static member Empty = - VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV(Unchecked.defaultof, Unchecked.defaultof) + VkImageViewSampleWeightCreateInfoQCOM(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "dedicatedAllocationImageAliasing = %A" x.dedicatedAllocationImageAliasing - ] |> sprintf "VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV { %s }" + sprintf "filterCenter = %A" x.filterCenter + sprintf "filterSize = %A" x.filterSize + sprintf "numPhases = %A" x.numPhases + ] |> sprintf "VkImageViewSampleWeightCreateInfoQCOM { %s }" end - - -module NVDeviceDiagnosticsConfig = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_NV_device_diagnostics_config" - let Number = 301 - - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] - - - [] - type VkDeviceDiagnosticsConfigFlagsNV = - | All = 15 - | None = 0 - | EnableShaderDebugInfoBit = 0x00000001 - | EnableResourceTrackingBit = 0x00000002 - | EnableAutomaticCheckpointsBit = 0x00000004 - | EnableShaderErrorReportingBit = 0x00000008 - - [] - type VkDeviceDiagnosticsConfigCreateInfoNV = + type VkPhysicalDeviceImageProcessingFeaturesQCOM = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public flags : VkDeviceDiagnosticsConfigFlagsNV + val mutable public textureSampleWeighted : VkBool32 + val mutable public textureBoxFilter : VkBool32 + val mutable public textureBlockMatch : VkBool32 - new(pNext : nativeint, flags : VkDeviceDiagnosticsConfigFlagsNV) = + new(pNext : nativeint, textureSampleWeighted : VkBool32, textureBoxFilter : VkBool32, textureBlockMatch : VkBool32) = { - sType = 1000300001u + sType = 1000440000u pNext = pNext - flags = flags + textureSampleWeighted = textureSampleWeighted + textureBoxFilter = textureBoxFilter + textureBlockMatch = textureBlockMatch } - new(flags : VkDeviceDiagnosticsConfigFlagsNV) = - VkDeviceDiagnosticsConfigCreateInfoNV(Unchecked.defaultof, flags) + new(textureSampleWeighted : VkBool32, textureBoxFilter : VkBool32, textureBlockMatch : VkBool32) = + VkPhysicalDeviceImageProcessingFeaturesQCOM(Unchecked.defaultof, textureSampleWeighted, textureBoxFilter, textureBlockMatch) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.textureSampleWeighted = Unchecked.defaultof && x.textureBoxFilter = Unchecked.defaultof && x.textureBlockMatch = Unchecked.defaultof static member Empty = - VkDeviceDiagnosticsConfigCreateInfoNV(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceImageProcessingFeaturesQCOM(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "flags = %A" x.flags - ] |> sprintf "VkDeviceDiagnosticsConfigCreateInfoNV { %s }" + sprintf "textureSampleWeighted = %A" x.textureSampleWeighted + sprintf "textureBoxFilter = %A" x.textureBoxFilter + sprintf "textureBlockMatch = %A" x.textureBlockMatch + ] |> sprintf "VkPhysicalDeviceImageProcessingFeaturesQCOM { %s }" end [] - type VkPhysicalDeviceDiagnosticsConfigFeaturesNV = + type VkPhysicalDeviceImageProcessingPropertiesQCOM = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public diagnosticsConfig : VkBool32 + val mutable public maxWeightFilterPhases : uint32 + val mutable public maxWeightFilterDimension : VkExtent2D + val mutable public maxBlockMatchRegion : VkExtent2D + val mutable public maxBoxFilterBlockSize : VkExtent2D - new(pNext : nativeint, diagnosticsConfig : VkBool32) = + new(pNext : nativeint, maxWeightFilterPhases : uint32, maxWeightFilterDimension : VkExtent2D, maxBlockMatchRegion : VkExtent2D, maxBoxFilterBlockSize : VkExtent2D) = { - sType = 1000300000u + sType = 1000440001u pNext = pNext - diagnosticsConfig = diagnosticsConfig + maxWeightFilterPhases = maxWeightFilterPhases + maxWeightFilterDimension = maxWeightFilterDimension + maxBlockMatchRegion = maxBlockMatchRegion + maxBoxFilterBlockSize = maxBoxFilterBlockSize } - new(diagnosticsConfig : VkBool32) = - VkPhysicalDeviceDiagnosticsConfigFeaturesNV(Unchecked.defaultof, diagnosticsConfig) + new(maxWeightFilterPhases : uint32, maxWeightFilterDimension : VkExtent2D, maxBlockMatchRegion : VkExtent2D, maxBoxFilterBlockSize : VkExtent2D) = + VkPhysicalDeviceImageProcessingPropertiesQCOM(Unchecked.defaultof, maxWeightFilterPhases, maxWeightFilterDimension, maxBlockMatchRegion, maxBoxFilterBlockSize) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.diagnosticsConfig = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.maxWeightFilterPhases = Unchecked.defaultof && x.maxWeightFilterDimension = Unchecked.defaultof && x.maxBlockMatchRegion = Unchecked.defaultof && x.maxBoxFilterBlockSize = Unchecked.defaultof static member Empty = - VkPhysicalDeviceDiagnosticsConfigFeaturesNV(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceImageProcessingPropertiesQCOM(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "diagnosticsConfig = %A" x.diagnosticsConfig - ] |> sprintf "VkPhysicalDeviceDiagnosticsConfigFeaturesNV { %s }" + sprintf "maxWeightFilterPhases = %A" x.maxWeightFilterPhases + sprintf "maxWeightFilterDimension = %A" x.maxWeightFilterDimension + sprintf "maxBlockMatchRegion = %A" x.maxBlockMatchRegion + sprintf "maxBoxFilterBlockSize = %A" x.maxBoxFilterBlockSize + ] |> sprintf "VkPhysicalDeviceImageProcessingPropertiesQCOM { %s }" end - -module NVExternalMemoryCapabilities = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_NV_external_memory_capabilities" - let Number = 56 - - - [] - type VkExternalMemoryHandleTypeFlagsNV = - | All = 15 - | None = 0 - | OpaqueWin32Bit = 0x00000001 - | OpaqueWin32KmtBit = 0x00000002 - | D3d11ImageBit = 0x00000004 - | D3d11ImageKmtBit = 0x00000008 - - [] - type VkExternalMemoryFeatureFlagsNV = - | All = 7 - | None = 0 - | DedicatedOnlyBit = 0x00000001 - | ExportableBit = 0x00000002 - | ImportableBit = 0x00000004 - - - [] - type VkExternalImageFormatPropertiesNV = - struct - val mutable public imageFormatProperties : VkImageFormatProperties - val mutable public externalMemoryFeatures : VkExternalMemoryFeatureFlagsNV - val mutable public exportFromImportedHandleTypes : VkExternalMemoryHandleTypeFlagsNV - val mutable public compatibleHandleTypes : VkExternalMemoryHandleTypeFlagsNV - - new(imageFormatProperties : VkImageFormatProperties, externalMemoryFeatures : VkExternalMemoryFeatureFlagsNV, exportFromImportedHandleTypes : VkExternalMemoryHandleTypeFlagsNV, compatibleHandleTypes : VkExternalMemoryHandleTypeFlagsNV) = - { - imageFormatProperties = imageFormatProperties - externalMemoryFeatures = externalMemoryFeatures - exportFromImportedHandleTypes = exportFromImportedHandleTypes - compatibleHandleTypes = compatibleHandleTypes - } - - member x.IsEmpty = - x.imageFormatProperties = Unchecked.defaultof && x.externalMemoryFeatures = Unchecked.defaultof && x.exportFromImportedHandleTypes = Unchecked.defaultof && x.compatibleHandleTypes = Unchecked.defaultof - - static member Empty = - VkExternalImageFormatPropertiesNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) - - override x.ToString() = - String.concat "; " [ - sprintf "imageFormatProperties = %A" x.imageFormatProperties - sprintf "externalMemoryFeatures = %A" x.externalMemoryFeatures - sprintf "exportFromImportedHandleTypes = %A" x.exportFromImportedHandleTypes - sprintf "compatibleHandleTypes = %A" x.compatibleHandleTypes - ] |> sprintf "VkExternalImageFormatPropertiesNV { %s }" - end + [] + module EnumExtensions = + type VkDescriptorType with + static member inline SampleWeightImageQcom = unbox 1000440000 + static member inline BlockMatchImageQcom = unbox 1000440001 + type VkImageUsageFlags with + static member inline SampleWeightBitQcom = unbox 0x00100000 + static member inline SampleBlockMatchBitQcom = unbox 0x00200000 + type VkSamplerCreateFlags with + static member inline ImageProcessingBitQcom = unbox 0x00000010 - module VkRaw = - [] - type VkGetPhysicalDeviceExternalImageFormatPropertiesNVDel = delegate of VkPhysicalDevice * VkFormat * VkImageType * VkImageTiling * VkImageUsageFlags * VkImageCreateFlags * VkExternalMemoryHandleTypeFlagsNV * nativeptr -> VkResult + [] + module ``KHRFormatFeatureFlags2 | Vulkan13`` = + [] + module EnumExtensions = + type Vulkan13.VkFormatFeatureFlags2 with + static member inline FormatFeature2WeightImageBitQcom = unbox 0x00000004 + static member inline FormatFeature2WeightSampledImageBitQcom = unbox 0x00000008 + static member inline FormatFeature2BlockMatchingBitQcom = unbox 0x00000010 + static member inline FormatFeature2BoxFilterSampledBitQcom = unbox 0x00000020 - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading NVExternalMemoryCapabilities") - static let s_vkGetPhysicalDeviceExternalImageFormatPropertiesNVDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceExternalImageFormatPropertiesNV" - static do Report.End(3) |> ignore - static member vkGetPhysicalDeviceExternalImageFormatPropertiesNV = s_vkGetPhysicalDeviceExternalImageFormatPropertiesNVDel - let vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice : VkPhysicalDevice, format : VkFormat, _type : VkImageType, tiling : VkImageTiling, usage : VkImageUsageFlags, flags : VkImageCreateFlags, externalHandleType : VkExternalMemoryHandleTypeFlagsNV, pExternalImageFormatProperties : nativeptr) = Loader.vkGetPhysicalDeviceExternalImageFormatPropertiesNV.Invoke(physicalDevice, format, _type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties) -module NVExternalMemory = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open NVExternalMemoryCapabilities - let Name = "VK_NV_external_memory" - let Number = 57 +/// Requires QCOMImageProcessing. +module QCOMImageProcessing2 = + let Type = ExtensionType.Device + let Name = "VK_QCOM_image_processing2" + let Number = 519 - let Required = [ NVExternalMemoryCapabilities.Name ] + type VkBlockMatchWindowCompareModeQCOM = + | Min = 0 + | Max = 1 [] - type VkExportMemoryAllocateInfoNV = + type VkPhysicalDeviceImageProcessing2FeaturesQCOM = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public handleTypes : VkExternalMemoryHandleTypeFlagsNV + val mutable public textureBlockMatch2 : VkBool32 - new(pNext : nativeint, handleTypes : VkExternalMemoryHandleTypeFlagsNV) = + new(pNext : nativeint, textureBlockMatch2 : VkBool32) = { - sType = 1000056001u + sType = 1000518000u pNext = pNext - handleTypes = handleTypes + textureBlockMatch2 = textureBlockMatch2 } - new(handleTypes : VkExternalMemoryHandleTypeFlagsNV) = - VkExportMemoryAllocateInfoNV(Unchecked.defaultof, handleTypes) + new(textureBlockMatch2 : VkBool32) = + VkPhysicalDeviceImageProcessing2FeaturesQCOM(Unchecked.defaultof, textureBlockMatch2) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.handleTypes = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.textureBlockMatch2 = Unchecked.defaultof static member Empty = - VkExportMemoryAllocateInfoNV(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceImageProcessing2FeaturesQCOM(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "handleTypes = %A" x.handleTypes - ] |> sprintf "VkExportMemoryAllocateInfoNV { %s }" + sprintf "textureBlockMatch2 = %A" x.textureBlockMatch2 + ] |> sprintf "VkPhysicalDeviceImageProcessing2FeaturesQCOM { %s }" end [] - type VkExternalMemoryImageCreateInfoNV = + type VkPhysicalDeviceImageProcessing2PropertiesQCOM = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public handleTypes : VkExternalMemoryHandleTypeFlagsNV + val mutable public maxBlockMatchWindow : VkExtent2D - new(pNext : nativeint, handleTypes : VkExternalMemoryHandleTypeFlagsNV) = + new(pNext : nativeint, maxBlockMatchWindow : VkExtent2D) = { - sType = 1000056000u + sType = 1000518001u pNext = pNext - handleTypes = handleTypes + maxBlockMatchWindow = maxBlockMatchWindow } - new(handleTypes : VkExternalMemoryHandleTypeFlagsNV) = - VkExternalMemoryImageCreateInfoNV(Unchecked.defaultof, handleTypes) + new(maxBlockMatchWindow : VkExtent2D) = + VkPhysicalDeviceImageProcessing2PropertiesQCOM(Unchecked.defaultof, maxBlockMatchWindow) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.handleTypes = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.maxBlockMatchWindow = Unchecked.defaultof static member Empty = - VkExternalMemoryImageCreateInfoNV(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceImageProcessing2PropertiesQCOM(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "handleTypes = %A" x.handleTypes - ] |> sprintf "VkExternalMemoryImageCreateInfoNV { %s }" + sprintf "maxBlockMatchWindow = %A" x.maxBlockMatchWindow + ] |> sprintf "VkPhysicalDeviceImageProcessing2PropertiesQCOM { %s }" end - - -module NVExternalMemoryRdma = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRExternalMemory - open KHRExternalMemoryCapabilities - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_NV_external_memory_rdma" - let Number = 372 - - let Required = [ KHRExternalMemory.Name ] - - - type VkRemoteAddressNV = nativeint - [] - type VkMemoryGetRemoteAddressInfoNV = + type VkSamplerBlockMatchWindowCreateInfoQCOM = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public memory : VkDeviceMemory - val mutable public handleType : VkExternalMemoryHandleTypeFlags + val mutable public windowExtent : VkExtent2D + val mutable public windowCompareMode : VkBlockMatchWindowCompareModeQCOM - new(pNext : nativeint, memory : VkDeviceMemory, handleType : VkExternalMemoryHandleTypeFlags) = + new(pNext : nativeint, windowExtent : VkExtent2D, windowCompareMode : VkBlockMatchWindowCompareModeQCOM) = { - sType = 1000371000u + sType = 1000518002u pNext = pNext - memory = memory - handleType = handleType + windowExtent = windowExtent + windowCompareMode = windowCompareMode } - new(memory : VkDeviceMemory, handleType : VkExternalMemoryHandleTypeFlags) = - VkMemoryGetRemoteAddressInfoNV(Unchecked.defaultof, memory, handleType) + new(windowExtent : VkExtent2D, windowCompareMode : VkBlockMatchWindowCompareModeQCOM) = + VkSamplerBlockMatchWindowCreateInfoQCOM(Unchecked.defaultof, windowExtent, windowCompareMode) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.memory = Unchecked.defaultof && x.handleType = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.windowExtent = Unchecked.defaultof && x.windowCompareMode = Unchecked.defaultof static member Empty = - VkMemoryGetRemoteAddressInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkSamplerBlockMatchWindowCreateInfoQCOM(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "memory = %A" x.memory - sprintf "handleType = %A" x.handleType - ] |> sprintf "VkMemoryGetRemoteAddressInfoNV { %s }" + sprintf "windowExtent = %A" x.windowExtent + sprintf "windowCompareMode = %A" x.windowCompareMode + ] |> sprintf "VkSamplerBlockMatchWindowCreateInfoQCOM { %s }" end + + +module QCOMMultiviewPerViewRenderAreas = + let Type = ExtensionType.Device + let Name = "VK_QCOM_multiview_per_view_render_areas" + let Number = 511 + [] - type VkPhysicalDeviceExternalMemoryRDMAFeaturesNV = + type VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public externalMemoryRDMA : VkBool32 + val mutable public perViewRenderAreaCount : uint32 + val mutable public pPerViewRenderAreas : nativeptr - new(pNext : nativeint, externalMemoryRDMA : VkBool32) = + new(pNext : nativeint, perViewRenderAreaCount : uint32, pPerViewRenderAreas : nativeptr) = { - sType = 1000371001u + sType = 1000510001u pNext = pNext - externalMemoryRDMA = externalMemoryRDMA + perViewRenderAreaCount = perViewRenderAreaCount + pPerViewRenderAreas = pPerViewRenderAreas } - new(externalMemoryRDMA : VkBool32) = - VkPhysicalDeviceExternalMemoryRDMAFeaturesNV(Unchecked.defaultof, externalMemoryRDMA) + new(perViewRenderAreaCount : uint32, pPerViewRenderAreas : nativeptr) = + VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM(Unchecked.defaultof, perViewRenderAreaCount, pPerViewRenderAreas) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.externalMemoryRDMA = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.perViewRenderAreaCount = Unchecked.defaultof && x.pPerViewRenderAreas = Unchecked.defaultof> static member Empty = - VkPhysicalDeviceExternalMemoryRDMAFeaturesNV(Unchecked.defaultof, Unchecked.defaultof) + VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "externalMemoryRDMA = %A" x.externalMemoryRDMA - ] |> sprintf "VkPhysicalDeviceExternalMemoryRDMAFeaturesNV { %s }" + sprintf "perViewRenderAreaCount = %A" x.perViewRenderAreaCount + sprintf "pPerViewRenderAreas = %A" x.pPerViewRenderAreas + ] |> sprintf "VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM { %s }" end - - [] - module EnumExtensions = - type VkExternalMemoryHandleTypeFlags with - static member inline RdmaAddressBitNv = unbox 0x00001000 - type VkMemoryPropertyFlags with - static member inline RdmaCapableBitNv = unbox 0x00000100 - - module VkRaw = - [] - type VkGetMemoryRemoteAddressNVDel = delegate of VkDevice * nativeptr * nativeptr -> VkResult - - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading NVExternalMemoryRdma") - static let s_vkGetMemoryRemoteAddressNVDel = VkRaw.vkImportInstanceDelegate "vkGetMemoryRemoteAddressNV" - static do Report.End(3) |> ignore - static member vkGetMemoryRemoteAddressNV = s_vkGetMemoryRemoteAddressNVDel - let vkGetMemoryRemoteAddressNV(device : VkDevice, pMemoryGetRemoteAddressInfo : nativeptr, pAddress : nativeptr) = Loader.vkGetMemoryRemoteAddressNV.Invoke(device, pMemoryGetRemoteAddressInfo, pAddress) - -module NVExternalMemoryWin32 = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open NVExternalMemory - open NVExternalMemoryCapabilities - let Name = "VK_NV_external_memory_win32" - let Number = 58 - - let Required = [ NVExternalMemory.Name ] - - [] - type VkExportMemoryWin32HandleInfoNV = + type VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public pAttributes : nativeptr - val mutable public dwAccess : uint32 + val mutable public multiviewPerViewRenderAreas : VkBool32 - new(pNext : nativeint, pAttributes : nativeptr, dwAccess : uint32) = + new(pNext : nativeint, multiviewPerViewRenderAreas : VkBool32) = { - sType = 1000057001u + sType = 1000510000u pNext = pNext - pAttributes = pAttributes - dwAccess = dwAccess + multiviewPerViewRenderAreas = multiviewPerViewRenderAreas } - new(pAttributes : nativeptr, dwAccess : uint32) = - VkExportMemoryWin32HandleInfoNV(Unchecked.defaultof, pAttributes, dwAccess) + new(multiviewPerViewRenderAreas : VkBool32) = + VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM(Unchecked.defaultof, multiviewPerViewRenderAreas) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.pAttributes = Unchecked.defaultof> && x.dwAccess = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.multiviewPerViewRenderAreas = Unchecked.defaultof static member Empty = - VkExportMemoryWin32HandleInfoNV(Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof) + VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "pAttributes = %A" x.pAttributes - sprintf "dwAccess = %A" x.dwAccess - ] |> sprintf "VkExportMemoryWin32HandleInfoNV { %s }" + sprintf "multiviewPerViewRenderAreas = %A" x.multiviewPerViewRenderAreas + ] |> sprintf "VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM { %s }" end + + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module QCOMMultiviewPerViewViewports = + let Type = ExtensionType.Device + let Name = "VK_QCOM_multiview_per_view_viewports" + let Number = 489 + [] - type VkImportMemoryWin32HandleInfoNV = + type VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public handleType : VkExternalMemoryHandleTypeFlagsNV - val mutable public handle : nativeint + val mutable public multiviewPerViewViewports : VkBool32 - new(pNext : nativeint, handleType : VkExternalMemoryHandleTypeFlagsNV, handle : nativeint) = + new(pNext : nativeint, multiviewPerViewViewports : VkBool32) = { - sType = 1000057000u + sType = 1000488000u pNext = pNext - handleType = handleType - handle = handle + multiviewPerViewViewports = multiviewPerViewViewports } - new(handleType : VkExternalMemoryHandleTypeFlagsNV, handle : nativeint) = - VkImportMemoryWin32HandleInfoNV(Unchecked.defaultof, handleType, handle) + new(multiviewPerViewViewports : VkBool32) = + VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM(Unchecked.defaultof, multiviewPerViewViewports) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.handleType = Unchecked.defaultof && x.handle = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.multiviewPerViewViewports = Unchecked.defaultof static member Empty = - VkImportMemoryWin32HandleInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "handleType = %A" x.handleType - sprintf "handle = %A" x.handle - ] |> sprintf "VkImportMemoryWin32HandleInfoNV { %s }" + sprintf "multiviewPerViewViewports = %A" x.multiviewPerViewViewports + ] |> sprintf "VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM { %s }" end - module VkRaw = - [] - type VkGetMemoryWin32HandleNVDel = delegate of VkDevice * VkDeviceMemory * VkExternalMemoryHandleTypeFlagsNV * nativeptr -> VkResult - [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading NVExternalMemoryWin32") - static let s_vkGetMemoryWin32HandleNVDel = VkRaw.vkImportInstanceDelegate "vkGetMemoryWin32HandleNV" - static do Report.End(3) |> ignore - static member vkGetMemoryWin32HandleNV = s_vkGetMemoryWin32HandleNVDel - let vkGetMemoryWin32HandleNV(device : VkDevice, memory : VkDeviceMemory, handleType : VkExternalMemoryHandleTypeFlagsNV, pHandle : nativeptr) = Loader.vkGetMemoryWin32HandleNV.Invoke(device, memory, handleType, pHandle) +module QCOMRenderPassShaderResolve = + let Type = ExtensionType.Device + let Name = "VK_QCOM_render_pass_shader_resolve" + let Number = 172 + + [] + module EnumExtensions = + type VkSubpassDescriptionFlags with + static member inline FragmentRegionBitQcom = unbox 0x00000004 + static member inline ShaderResolveBitQcom = unbox 0x00000008 -module NVFillRectangle = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_NV_fill_rectangle" - let Number = 154 +module QCOMRenderPassStoreOps = + let Type = ExtensionType.Device + let Name = "VK_QCOM_render_pass_store_ops" + let Number = 302 [] module EnumExtensions = - type VkPolygonMode with - static member inline FillRectangleNv = unbox 1000153000 - + type VkAttachmentStoreOp with + static member inline NoneQcom = unbox 1000301000 -module NVFragmentCoverageToColor = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_NV_fragment_coverage_to_color" - let Number = 150 +module QCOMRenderPassTransform = + let Type = ExtensionType.Device + let Name = "VK_QCOM_render_pass_transform" + let Number = 283 [] - type VkPipelineCoverageToColorStateCreateInfoNV = + type VkCommandBufferInheritanceRenderPassTransformInfoQCOM = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public flags : VkPipelineCoverageToColorStateCreateFlagsNV - val mutable public coverageToColorEnable : VkBool32 - val mutable public coverageToColorLocation : uint32 + val mutable public transform : KHRSurface.VkSurfaceTransformFlagsKHR + val mutable public renderArea : VkRect2D - new(pNext : nativeint, flags : VkPipelineCoverageToColorStateCreateFlagsNV, coverageToColorEnable : VkBool32, coverageToColorLocation : uint32) = + new(pNext : nativeint, transform : KHRSurface.VkSurfaceTransformFlagsKHR, renderArea : VkRect2D) = { - sType = 1000149000u + sType = 1000282000u pNext = pNext - flags = flags - coverageToColorEnable = coverageToColorEnable - coverageToColorLocation = coverageToColorLocation + transform = transform + renderArea = renderArea } - new(flags : VkPipelineCoverageToColorStateCreateFlagsNV, coverageToColorEnable : VkBool32, coverageToColorLocation : uint32) = - VkPipelineCoverageToColorStateCreateInfoNV(Unchecked.defaultof, flags, coverageToColorEnable, coverageToColorLocation) + new(transform : KHRSurface.VkSurfaceTransformFlagsKHR, renderArea : VkRect2D) = + VkCommandBufferInheritanceRenderPassTransformInfoQCOM(Unchecked.defaultof, transform, renderArea) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.coverageToColorEnable = Unchecked.defaultof && x.coverageToColorLocation = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.transform = Unchecked.defaultof && x.renderArea = Unchecked.defaultof static member Empty = - VkPipelineCoverageToColorStateCreateInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkCommandBufferInheritanceRenderPassTransformInfoQCOM(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "flags = %A" x.flags - sprintf "coverageToColorEnable = %A" x.coverageToColorEnable - sprintf "coverageToColorLocation = %A" x.coverageToColorLocation - ] |> sprintf "VkPipelineCoverageToColorStateCreateInfoNV { %s }" + sprintf "transform = %A" x.transform + sprintf "renderArea = %A" x.renderArea + ] |> sprintf "VkCommandBufferInheritanceRenderPassTransformInfoQCOM { %s }" end + [] + type VkRenderPassTransformBeginInfoQCOM = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public transform : KHRSurface.VkSurfaceTransformFlagsKHR + new(pNext : nativeint, transform : KHRSurface.VkSurfaceTransformFlagsKHR) = + { + sType = 1000282001u + pNext = pNext + transform = transform + } -module NVFragmentShaderBarycentric = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_NV_fragment_shader_barycentric" - let Number = 204 - - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] - - - type VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV = VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR - + new(transform : KHRSurface.VkSurfaceTransformFlagsKHR) = + VkRenderPassTransformBeginInfoQCOM(Unchecked.defaultof, transform) + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.transform = Unchecked.defaultof -module NVFragmentShadingRateEnums = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRCreateRenderpass2 - open KHRFragmentShadingRate - open KHRGetPhysicalDeviceProperties2 - open KHRMaintenance2 - open KHRMultiview - let Name = "VK_NV_fragment_shading_rate_enums" - let Number = 327 + static member Empty = + VkRenderPassTransformBeginInfoQCOM(Unchecked.defaultof, Unchecked.defaultof) - let Required = [ KHRFragmentShadingRate.Name ] + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "transform = %A" x.transform + ] |> sprintf "VkRenderPassTransformBeginInfoQCOM { %s }" + end - type VkFragmentShadingRateNV = - | D1InvocationPerPixel = 0 - | D1InvocationPer1x2Pixels = 1 - | D1InvocationPer2x1Pixels = 4 - | D1InvocationPer2x2Pixels = 5 - | D1InvocationPer2x4Pixels = 6 - | D1InvocationPer4x2Pixels = 9 - | D1InvocationPer4x4Pixels = 10 - | D2InvocationsPerPixel = 11 - | D4InvocationsPerPixel = 12 - | D8InvocationsPerPixel = 13 - | D16InvocationsPerPixel = 14 - | NoInvocations = 15 + [] + module EnumExtensions = + type VkRenderPassCreateFlags with + static member inline TransformBitQcom = unbox 0x00000002 - type VkFragmentShadingRateTypeNV = - | FragmentSize = 0 - | Enums = 1 +/// Requires KHRCopyCommands2 | Vulkan13. +module QCOMRotatedCopyCommands = + let Type = ExtensionType.Device + let Name = "VK_QCOM_rotated_copy_commands" + let Number = 334 [] - type VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV = + type VkCopyCommandTransformInfoQCOM = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public fragmentShadingRateEnums : VkBool32 - val mutable public supersampleFragmentShadingRates : VkBool32 - val mutable public noInvocationFragmentShadingRates : VkBool32 + val mutable public transform : KHRSurface.VkSurfaceTransformFlagsKHR - new(pNext : nativeint, fragmentShadingRateEnums : VkBool32, supersampleFragmentShadingRates : VkBool32, noInvocationFragmentShadingRates : VkBool32) = + new(pNext : nativeint, transform : KHRSurface.VkSurfaceTransformFlagsKHR) = { - sType = 1000326001u + sType = 1000333000u pNext = pNext - fragmentShadingRateEnums = fragmentShadingRateEnums - supersampleFragmentShadingRates = supersampleFragmentShadingRates - noInvocationFragmentShadingRates = noInvocationFragmentShadingRates + transform = transform } - new(fragmentShadingRateEnums : VkBool32, supersampleFragmentShadingRates : VkBool32, noInvocationFragmentShadingRates : VkBool32) = - VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV(Unchecked.defaultof, fragmentShadingRateEnums, supersampleFragmentShadingRates, noInvocationFragmentShadingRates) + new(transform : KHRSurface.VkSurfaceTransformFlagsKHR) = + VkCopyCommandTransformInfoQCOM(Unchecked.defaultof, transform) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.fragmentShadingRateEnums = Unchecked.defaultof && x.supersampleFragmentShadingRates = Unchecked.defaultof && x.noInvocationFragmentShadingRates = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.transform = Unchecked.defaultof static member Empty = - VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkCopyCommandTransformInfoQCOM(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "fragmentShadingRateEnums = %A" x.fragmentShadingRateEnums - sprintf "supersampleFragmentShadingRates = %A" x.supersampleFragmentShadingRates - sprintf "noInvocationFragmentShadingRates = %A" x.noInvocationFragmentShadingRates - ] |> sprintf "VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV { %s }" + sprintf "transform = %A" x.transform + ] |> sprintf "VkCopyCommandTransformInfoQCOM { %s }" end + + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module QCOMTileProperties = + let Type = ExtensionType.Device + let Name = "VK_QCOM_tile_properties" + let Number = 485 + [] - type VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV = + type VkPhysicalDeviceTilePropertiesFeaturesQCOM = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public maxFragmentShadingRateInvocationCount : VkSampleCountFlags + val mutable public tileProperties : VkBool32 - new(pNext : nativeint, maxFragmentShadingRateInvocationCount : VkSampleCountFlags) = + new(pNext : nativeint, tileProperties : VkBool32) = { - sType = 1000326000u + sType = 1000484000u pNext = pNext - maxFragmentShadingRateInvocationCount = maxFragmentShadingRateInvocationCount + tileProperties = tileProperties } - new(maxFragmentShadingRateInvocationCount : VkSampleCountFlags) = - VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV(Unchecked.defaultof, maxFragmentShadingRateInvocationCount) + new(tileProperties : VkBool32) = + VkPhysicalDeviceTilePropertiesFeaturesQCOM(Unchecked.defaultof, tileProperties) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.maxFragmentShadingRateInvocationCount = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.tileProperties = Unchecked.defaultof static member Empty = - VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceTilePropertiesFeaturesQCOM(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "maxFragmentShadingRateInvocationCount = %A" x.maxFragmentShadingRateInvocationCount - ] |> sprintf "VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV { %s }" + sprintf "tileProperties = %A" x.tileProperties + ] |> sprintf "VkPhysicalDeviceTilePropertiesFeaturesQCOM { %s }" end [] - type VkPipelineFragmentShadingRateEnumStateCreateInfoNV = + type VkTilePropertiesQCOM = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public shadingRateType : VkFragmentShadingRateTypeNV - val mutable public shadingRate : VkFragmentShadingRateNV - val mutable public combinerOps : VkFragmentShadingRateCombinerOpKHR_2 + val mutable public tileSize : VkExtent3D + val mutable public apronSize : VkExtent2D + val mutable public origin : VkOffset2D - new(pNext : nativeint, shadingRateType : VkFragmentShadingRateTypeNV, shadingRate : VkFragmentShadingRateNV, combinerOps : VkFragmentShadingRateCombinerOpKHR_2) = + new(pNext : nativeint, tileSize : VkExtent3D, apronSize : VkExtent2D, origin : VkOffset2D) = { - sType = 1000326002u + sType = 1000484001u pNext = pNext - shadingRateType = shadingRateType - shadingRate = shadingRate - combinerOps = combinerOps + tileSize = tileSize + apronSize = apronSize + origin = origin } - new(shadingRateType : VkFragmentShadingRateTypeNV, shadingRate : VkFragmentShadingRateNV, combinerOps : VkFragmentShadingRateCombinerOpKHR_2) = - VkPipelineFragmentShadingRateEnumStateCreateInfoNV(Unchecked.defaultof, shadingRateType, shadingRate, combinerOps) + new(tileSize : VkExtent3D, apronSize : VkExtent2D, origin : VkOffset2D) = + VkTilePropertiesQCOM(Unchecked.defaultof, tileSize, apronSize, origin) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.shadingRateType = Unchecked.defaultof && x.shadingRate = Unchecked.defaultof && x.combinerOps = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.tileSize = Unchecked.defaultof && x.apronSize = Unchecked.defaultof && x.origin = Unchecked.defaultof static member Empty = - VkPipelineFragmentShadingRateEnumStateCreateInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkTilePropertiesQCOM(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "shadingRateType = %A" x.shadingRateType - sprintf "shadingRate = %A" x.shadingRate - sprintf "combinerOps = %A" x.combinerOps - ] |> sprintf "VkPipelineFragmentShadingRateEnumStateCreateInfoNV { %s }" + sprintf "tileSize = %A" x.tileSize + sprintf "apronSize = %A" x.apronSize + sprintf "origin = %A" x.origin + ] |> sprintf "VkTilePropertiesQCOM { %s }" end module VkRaw = [] - type VkCmdSetFragmentShadingRateEnumNVDel = delegate of VkCommandBuffer * VkFragmentShadingRateNV * VkFragmentShadingRateCombinerOpKHR_2 -> unit + type VkGetFramebufferTilePropertiesQCOMDel = delegate of VkDevice * VkFramebuffer * nativeptr * nativeptr -> VkResult + [] + type VkGetDynamicRenderingTilePropertiesQCOMDel = delegate of VkDevice * nativeptr * nativeptr -> VkResult [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading NVFragmentShadingRateEnums") - static let s_vkCmdSetFragmentShadingRateEnumNVDel = VkRaw.vkImportInstanceDelegate "vkCmdSetFragmentShadingRateEnumNV" + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading QCOMTileProperties") + static let s_vkGetFramebufferTilePropertiesQCOMDel = VkRaw.vkImportInstanceDelegate "vkGetFramebufferTilePropertiesQCOM" + static let s_vkGetDynamicRenderingTilePropertiesQCOMDel = VkRaw.vkImportInstanceDelegate "vkGetDynamicRenderingTilePropertiesQCOM" static do Report.End(3) |> ignore - static member vkCmdSetFragmentShadingRateEnumNV = s_vkCmdSetFragmentShadingRateEnumNVDel - let vkCmdSetFragmentShadingRateEnumNV(commandBuffer : VkCommandBuffer, shadingRate : VkFragmentShadingRateNV, combinerOps : VkFragmentShadingRateCombinerOpKHR_2) = Loader.vkCmdSetFragmentShadingRateEnumNV.Invoke(commandBuffer, shadingRate, combinerOps) - -module NVGeometryShaderPassthrough = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_NV_geometry_shader_passthrough" - let Number = 96 - - -module NVGlslShader = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_NV_glsl_shader" - let Number = 13 - + static member vkGetFramebufferTilePropertiesQCOM = s_vkGetFramebufferTilePropertiesQCOMDel + static member vkGetDynamicRenderingTilePropertiesQCOM = s_vkGetDynamicRenderingTilePropertiesQCOMDel + let vkGetFramebufferTilePropertiesQCOM(device : VkDevice, framebuffer : VkFramebuffer, pPropertiesCount : nativeptr, pProperties : nativeptr) = Loader.vkGetFramebufferTilePropertiesQCOM.Invoke(device, framebuffer, pPropertiesCount, pProperties) + let vkGetDynamicRenderingTilePropertiesQCOM(device : VkDevice, pRenderingInfo : nativeptr, pProperties : nativeptr) = Loader.vkGetDynamicRenderingTilePropertiesQCOM.Invoke(device, pRenderingInfo, pProperties) [] - module EnumExtensions = - type VkResult with - static member inline ErrorInvalidShaderNv = unbox -1000012000 + module ``KHRDynamicRendering | Vulkan13`` = + type VkRenderingInfoKHR = KHRDynamicRendering.VkRenderingInfoKHR -module NVInheritedViewportScissor = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_NV_inherited_viewport_scissor" - let Number = 279 +module QCOMYcbcrDegamma = + let Type = ExtensionType.Device + let Name = "VK_QCOM_ycbcr_degamma" + let Number = 521 [] - type VkCommandBufferInheritanceViewportScissorInfoNV = + type VkPhysicalDeviceYcbcrDegammaFeaturesQCOM = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public viewportScissor2D : VkBool32 - val mutable public viewportDepthCount : uint32 - val mutable public pViewportDepths : nativeptr + val mutable public ycbcrDegamma : VkBool32 - new(pNext : nativeint, viewportScissor2D : VkBool32, viewportDepthCount : uint32, pViewportDepths : nativeptr) = + new(pNext : nativeint, ycbcrDegamma : VkBool32) = { - sType = 1000278001u + sType = 1000520000u pNext = pNext - viewportScissor2D = viewportScissor2D - viewportDepthCount = viewportDepthCount - pViewportDepths = pViewportDepths + ycbcrDegamma = ycbcrDegamma } - new(viewportScissor2D : VkBool32, viewportDepthCount : uint32, pViewportDepths : nativeptr) = - VkCommandBufferInheritanceViewportScissorInfoNV(Unchecked.defaultof, viewportScissor2D, viewportDepthCount, pViewportDepths) + new(ycbcrDegamma : VkBool32) = + VkPhysicalDeviceYcbcrDegammaFeaturesQCOM(Unchecked.defaultof, ycbcrDegamma) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.viewportScissor2D = Unchecked.defaultof && x.viewportDepthCount = Unchecked.defaultof && x.pViewportDepths = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.ycbcrDegamma = Unchecked.defaultof static member Empty = - VkCommandBufferInheritanceViewportScissorInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + VkPhysicalDeviceYcbcrDegammaFeaturesQCOM(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "viewportScissor2D = %A" x.viewportScissor2D - sprintf "viewportDepthCount = %A" x.viewportDepthCount - sprintf "pViewportDepths = %A" x.pViewportDepths - ] |> sprintf "VkCommandBufferInheritanceViewportScissorInfoNV { %s }" + sprintf "ycbcrDegamma = %A" x.ycbcrDegamma + ] |> sprintf "VkPhysicalDeviceYcbcrDegammaFeaturesQCOM { %s }" end [] - type VkPhysicalDeviceInheritedViewportScissorFeaturesNV = + type VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public inheritedViewportScissor2D : VkBool32 + val mutable public enableYDegamma : VkBool32 + val mutable public enableCbCrDegamma : VkBool32 - new(pNext : nativeint, inheritedViewportScissor2D : VkBool32) = + new(pNext : nativeint, enableYDegamma : VkBool32, enableCbCrDegamma : VkBool32) = { - sType = 1000278000u + sType = 1000520001u pNext = pNext - inheritedViewportScissor2D = inheritedViewportScissor2D + enableYDegamma = enableYDegamma + enableCbCrDegamma = enableCbCrDegamma } - new(inheritedViewportScissor2D : VkBool32) = - VkPhysicalDeviceInheritedViewportScissorFeaturesNV(Unchecked.defaultof, inheritedViewportScissor2D) + new(enableYDegamma : VkBool32, enableCbCrDegamma : VkBool32) = + VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM(Unchecked.defaultof, enableYDegamma, enableCbCrDegamma) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.inheritedViewportScissor2D = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.enableYDegamma = Unchecked.defaultof && x.enableCbCrDegamma = Unchecked.defaultof static member Empty = - VkPhysicalDeviceInheritedViewportScissorFeaturesNV(Unchecked.defaultof, Unchecked.defaultof) + VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "inheritedViewportScissor2D = %A" x.inheritedViewportScissor2D - ] |> sprintf "VkPhysicalDeviceInheritedViewportScissorFeaturesNV { %s }" + sprintf "enableYDegamma = %A" x.enableYDegamma + sprintf "enableCbCrDegamma = %A" x.enableCbCrDegamma + ] |> sprintf "VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM { %s }" end -module NVLinearColorAttachment = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_NV_linear_color_attachment" - let Number = 431 - +/// Requires ((KHRSamplerYcbcrConversion, KHRExternalMemory, KHRDedicatedAllocation) | Vulkan11), EXTQueueFamilyForeign. +module QNXExternalMemoryScreenBuffer = + let Type = ExtensionType.Device + let Name = "VK_QNX_external_memory_screen_buffer" + let Number = 530 [] - type VkPhysicalDeviceLinearColorAttachmentFeaturesNV = + type VkExternalFormatQNX = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public linearColorAttachment : VkBool32 + val mutable public externalFormat : uint64 - new(pNext : nativeint, linearColorAttachment : VkBool32) = + new(pNext : nativeint, externalFormat : uint64) = { - sType = 1000430000u + sType = 1000529003u pNext = pNext - linearColorAttachment = linearColorAttachment + externalFormat = externalFormat } - new(linearColorAttachment : VkBool32) = - VkPhysicalDeviceLinearColorAttachmentFeaturesNV(Unchecked.defaultof, linearColorAttachment) + new(externalFormat : uint64) = + VkExternalFormatQNX(Unchecked.defaultof, externalFormat) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.linearColorAttachment = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.externalFormat = Unchecked.defaultof static member Empty = - VkPhysicalDeviceLinearColorAttachmentFeaturesNV(Unchecked.defaultof, Unchecked.defaultof) + VkExternalFormatQNX(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "linearColorAttachment = %A" x.linearColorAttachment - ] |> sprintf "VkPhysicalDeviceLinearColorAttachmentFeaturesNV { %s }" + sprintf "externalFormat = %A" x.externalFormat + ] |> sprintf "VkExternalFormatQNX { %s }" end + [] + type VkImportScreenBufferInfoQNX = + struct + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public buffer : nativeptr + new(pNext : nativeint, buffer : nativeptr) = + { + sType = 1000529002u + pNext = pNext + buffer = buffer + } - module KHRFormatFeatureFlags2 = - [] - module EnumExtensions = - type VkFormatFeatureFlags2 with - /// Format support linear image as render target, it cannot be mixed with non linear attachment - static member inline FormatFeature2LinearColorAttachmentBitNv = unbox 0x00000040 - - -module NVRayTracingMotionBlur = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open EXTDebugReport - open EXTDescriptorIndexing - open KHRAccelerationStructure - open KHRBufferDeviceAddress - open KHRDeferredHostOperations - open KHRGetPhysicalDeviceProperties2 - open KHRMaintenance3 - open KHRPipelineLibrary - open KHRRayTracingPipeline - open KHRShaderFloatControls - open KHRSpirv14 - let Name = "VK_NV_ray_tracing_motion_blur" - let Number = 328 - - let Required = [ KHRRayTracingPipeline.Name ] + new(buffer : nativeptr) = + VkImportScreenBufferInfoQNX(Unchecked.defaultof, buffer) + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.buffer = Unchecked.defaultof> - type VkAccelerationStructureMotionInstanceTypeNV = - | Static = 0 - | MatrixMotion = 1 - | SrtMotion = 2 + static member Empty = + VkImportScreenBufferInfoQNX(Unchecked.defaultof, Unchecked.defaultof>) + override x.ToString() = + String.concat "; " [ + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "buffer = %A" x.buffer + ] |> sprintf "VkImportScreenBufferInfoQNX { %s }" + end [] - type VkAccelerationStructureGeometryMotionTrianglesDataNV = + type VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public vertexData : VkDeviceOrHostAddressConstKHR + val mutable public screenBufferImport : VkBool32 - new(pNext : nativeint, vertexData : VkDeviceOrHostAddressConstKHR) = + new(pNext : nativeint, screenBufferImport : VkBool32) = { - sType = 1000327000u + sType = 1000529004u pNext = pNext - vertexData = vertexData + screenBufferImport = screenBufferImport } - new(vertexData : VkDeviceOrHostAddressConstKHR) = - VkAccelerationStructureGeometryMotionTrianglesDataNV(Unchecked.defaultof, vertexData) + new(screenBufferImport : VkBool32) = + VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX(Unchecked.defaultof, screenBufferImport) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.vertexData = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.screenBufferImport = Unchecked.defaultof static member Empty = - VkAccelerationStructureGeometryMotionTrianglesDataNV(Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "vertexData = %A" x.vertexData - ] |> sprintf "VkAccelerationStructureGeometryMotionTrianglesDataNV { %s }" + sprintf "screenBufferImport = %A" x.screenBufferImport + ] |> sprintf "VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX { %s }" end [] - type VkAccelerationStructureMatrixMotionInstanceNV = + type VkScreenBufferFormatPropertiesQNX = struct - val mutable public transformT0 : VkTransformMatrixKHR - val mutable public transformT1 : VkTransformMatrixKHR - val mutable public instanceCustomIndex : uint24 - val mutable public mask : uint8 - val mutable public instanceShaderBindingTableRecordOffset : uint24 - val mutable public flags : uint8 - val mutable public accelerationStructureReference : uint64 + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public format : VkFormat + val mutable public externalFormat : uint64 + val mutable public screenUsage : uint64 + val mutable public formatFeatures : VkFormatFeatureFlags + val mutable public samplerYcbcrConversionComponents : VkComponentMapping + val mutable public suggestedYcbcrModel : Vulkan11.VkSamplerYcbcrModelConversion + val mutable public suggestedYcbcrRange : Vulkan11.VkSamplerYcbcrRange + val mutable public suggestedXChromaOffset : Vulkan11.VkChromaLocation + val mutable public suggestedYChromaOffset : Vulkan11.VkChromaLocation - new(transformT0 : VkTransformMatrixKHR, transformT1 : VkTransformMatrixKHR, instanceCustomIndex : uint24, mask : uint8, instanceShaderBindingTableRecordOffset : uint24, flags : uint8, accelerationStructureReference : uint64) = + new(pNext : nativeint, format : VkFormat, externalFormat : uint64, screenUsage : uint64, formatFeatures : VkFormatFeatureFlags, samplerYcbcrConversionComponents : VkComponentMapping, suggestedYcbcrModel : Vulkan11.VkSamplerYcbcrModelConversion, suggestedYcbcrRange : Vulkan11.VkSamplerYcbcrRange, suggestedXChromaOffset : Vulkan11.VkChromaLocation, suggestedYChromaOffset : Vulkan11.VkChromaLocation) = { - transformT0 = transformT0 - transformT1 = transformT1 - instanceCustomIndex = instanceCustomIndex - mask = mask - instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset - flags = flags - accelerationStructureReference = accelerationStructureReference + sType = 1000529001u + pNext = pNext + format = format + externalFormat = externalFormat + screenUsage = screenUsage + formatFeatures = formatFeatures + samplerYcbcrConversionComponents = samplerYcbcrConversionComponents + suggestedYcbcrModel = suggestedYcbcrModel + suggestedYcbcrRange = suggestedYcbcrRange + suggestedXChromaOffset = suggestedXChromaOffset + suggestedYChromaOffset = suggestedYChromaOffset } + new(format : VkFormat, externalFormat : uint64, screenUsage : uint64, formatFeatures : VkFormatFeatureFlags, samplerYcbcrConversionComponents : VkComponentMapping, suggestedYcbcrModel : Vulkan11.VkSamplerYcbcrModelConversion, suggestedYcbcrRange : Vulkan11.VkSamplerYcbcrRange, suggestedXChromaOffset : Vulkan11.VkChromaLocation, suggestedYChromaOffset : Vulkan11.VkChromaLocation) = + VkScreenBufferFormatPropertiesQNX(Unchecked.defaultof, format, externalFormat, screenUsage, formatFeatures, samplerYcbcrConversionComponents, suggestedYcbcrModel, suggestedYcbcrRange, suggestedXChromaOffset, suggestedYChromaOffset) + member x.IsEmpty = - x.transformT0 = Unchecked.defaultof && x.transformT1 = Unchecked.defaultof && x.instanceCustomIndex = Unchecked.defaultof && x.mask = Unchecked.defaultof && x.instanceShaderBindingTableRecordOffset = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.accelerationStructureReference = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.format = Unchecked.defaultof && x.externalFormat = Unchecked.defaultof && x.screenUsage = Unchecked.defaultof && x.formatFeatures = Unchecked.defaultof && x.samplerYcbcrConversionComponents = Unchecked.defaultof && x.suggestedYcbcrModel = Unchecked.defaultof && x.suggestedYcbcrRange = Unchecked.defaultof && x.suggestedXChromaOffset = Unchecked.defaultof && x.suggestedYChromaOffset = Unchecked.defaultof static member Empty = - VkAccelerationStructureMatrixMotionInstanceNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkScreenBufferFormatPropertiesQNX(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ - sprintf "transformT0 = %A" x.transformT0 - sprintf "transformT1 = %A" x.transformT1 - sprintf "instanceCustomIndex = %A" x.instanceCustomIndex - sprintf "mask = %A" x.mask - sprintf "instanceShaderBindingTableRecordOffset = %A" x.instanceShaderBindingTableRecordOffset - sprintf "flags = %A" x.flags - sprintf "accelerationStructureReference = %A" x.accelerationStructureReference - ] |> sprintf "VkAccelerationStructureMatrixMotionInstanceNV { %s }" + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "format = %A" x.format + sprintf "externalFormat = %A" x.externalFormat + sprintf "screenUsage = %A" x.screenUsage + sprintf "formatFeatures = %A" x.formatFeatures + sprintf "samplerYcbcrConversionComponents = %A" x.samplerYcbcrConversionComponents + sprintf "suggestedYcbcrModel = %A" x.suggestedYcbcrModel + sprintf "suggestedYcbcrRange = %A" x.suggestedYcbcrRange + sprintf "suggestedXChromaOffset = %A" x.suggestedXChromaOffset + sprintf "suggestedYChromaOffset = %A" x.suggestedYChromaOffset + ] |> sprintf "VkScreenBufferFormatPropertiesQNX { %s }" end [] - type VkAccelerationStructureMotionInfoNV = + type VkScreenBufferPropertiesQNX = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public maxInstances : uint32 - val mutable public flags : VkAccelerationStructureMotionInfoFlagsNV + val mutable public allocationSize : VkDeviceSize + val mutable public memoryTypeBits : uint32 - new(pNext : nativeint, maxInstances : uint32, flags : VkAccelerationStructureMotionInfoFlagsNV) = + new(pNext : nativeint, allocationSize : VkDeviceSize, memoryTypeBits : uint32) = { - sType = 1000327002u + sType = 1000529000u pNext = pNext - maxInstances = maxInstances - flags = flags + allocationSize = allocationSize + memoryTypeBits = memoryTypeBits } - new(maxInstances : uint32, flags : VkAccelerationStructureMotionInfoFlagsNV) = - VkAccelerationStructureMotionInfoNV(Unchecked.defaultof, maxInstances, flags) + new(allocationSize : VkDeviceSize, memoryTypeBits : uint32) = + VkScreenBufferPropertiesQNX(Unchecked.defaultof, allocationSize, memoryTypeBits) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.maxInstances = Unchecked.defaultof && x.flags = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.allocationSize = Unchecked.defaultof && x.memoryTypeBits = Unchecked.defaultof static member Empty = - VkAccelerationStructureMotionInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkScreenBufferPropertiesQNX(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "maxInstances = %A" x.maxInstances - sprintf "flags = %A" x.flags - ] |> sprintf "VkAccelerationStructureMotionInfoNV { %s }" + sprintf "allocationSize = %A" x.allocationSize + sprintf "memoryTypeBits = %A" x.memoryTypeBits + ] |> sprintf "VkScreenBufferPropertiesQNX { %s }" end + + [] + module EnumExtensions = + type Vulkan11.VkExternalMemoryHandleTypeFlags with + static member inline ScreenBufferBitQnx = unbox 0x00004000 + + module VkRaw = + [] + type VkGetScreenBufferPropertiesQNXDel = delegate of VkDevice * nativeptr * nativeptr -> VkResult + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading QNXExternalMemoryScreenBuffer") + static let s_vkGetScreenBufferPropertiesQNXDel = VkRaw.vkImportInstanceDelegate "vkGetScreenBufferPropertiesQNX" + static do Report.End(3) |> ignore + static member vkGetScreenBufferPropertiesQNX = s_vkGetScreenBufferPropertiesQNXDel + let vkGetScreenBufferPropertiesQNX(device : VkDevice, buffer : nativeptr, pProperties : nativeptr) = Loader.vkGetScreenBufferPropertiesQNX.Invoke(device, buffer, pProperties) + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module SECAmigoProfiling = + let Type = ExtensionType.Device + let Name = "VK_SEC_amigo_profiling" + let Number = 486 + [] - type VkSRTDataNV = + type VkAmigoProfilingSubmitInfoSEC = struct - val mutable public sx : float32 - val mutable public a : float32 - val mutable public b : float32 - val mutable public pvx : float32 - val mutable public sy : float32 - val mutable public c : float32 - val mutable public pvy : float32 - val mutable public sz : float32 - val mutable public pvz : float32 - val mutable public qx : float32 - val mutable public qy : float32 - val mutable public qz : float32 - val mutable public qw : float32 - val mutable public tx : float32 - val mutable public ty : float32 - val mutable public tz : float32 + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public firstDrawTimestamp : uint64 + val mutable public swapBufferTimestamp : uint64 - new(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) = + new(pNext : nativeint, firstDrawTimestamp : uint64, swapBufferTimestamp : uint64) = { - sx = sx - a = a - b = b - pvx = pvx - sy = sy - c = c - pvy = pvy - sz = sz - pvz = pvz - qx = qx - qy = qy - qz = qz - qw = qw - tx = tx - ty = ty - tz = tz + sType = 1000485001u + pNext = pNext + firstDrawTimestamp = firstDrawTimestamp + swapBufferTimestamp = swapBufferTimestamp } + new(firstDrawTimestamp : uint64, swapBufferTimestamp : uint64) = + VkAmigoProfilingSubmitInfoSEC(Unchecked.defaultof, firstDrawTimestamp, swapBufferTimestamp) + member x.IsEmpty = - x.sx = Unchecked.defaultof && x.a = Unchecked.defaultof && x.b = Unchecked.defaultof && x.pvx = Unchecked.defaultof && x.sy = Unchecked.defaultof && x.c = Unchecked.defaultof && x.pvy = Unchecked.defaultof && x.sz = Unchecked.defaultof && x.pvz = Unchecked.defaultof && x.qx = Unchecked.defaultof && x.qy = Unchecked.defaultof && x.qz = Unchecked.defaultof && x.qw = Unchecked.defaultof && x.tx = Unchecked.defaultof && x.ty = Unchecked.defaultof && x.tz = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.firstDrawTimestamp = Unchecked.defaultof && x.swapBufferTimestamp = Unchecked.defaultof static member Empty = - VkSRTDataNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkAmigoProfilingSubmitInfoSEC(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ - sprintf "sx = %A" x.sx - sprintf "a = %A" x.a - sprintf "b = %A" x.b - sprintf "pvx = %A" x.pvx - sprintf "sy = %A" x.sy - sprintf "c = %A" x.c - sprintf "pvy = %A" x.pvy - sprintf "sz = %A" x.sz - sprintf "pvz = %A" x.pvz - sprintf "qx = %A" x.qx - sprintf "qy = %A" x.qy - sprintf "qz = %A" x.qz - sprintf "qw = %A" x.qw - sprintf "tx = %A" x.tx - sprintf "ty = %A" x.ty - sprintf "tz = %A" x.tz - ] |> sprintf "VkSRTDataNV { %s }" + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "firstDrawTimestamp = %A" x.firstDrawTimestamp + sprintf "swapBufferTimestamp = %A" x.swapBufferTimestamp + ] |> sprintf "VkAmigoProfilingSubmitInfoSEC { %s }" end [] - type VkAccelerationStructureSRTMotionInstanceNV = + type VkPhysicalDeviceAmigoProfilingFeaturesSEC = struct - val mutable public transformT0 : VkSRTDataNV - val mutable public transformT1 : VkSRTDataNV - val mutable public instanceCustomIndex : uint24 - val mutable public mask : uint8 - val mutable public instanceShaderBindingTableRecordOffset : uint24 - val mutable public flags : uint8 - val mutable public accelerationStructureReference : uint64 + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public amigoProfiling : VkBool32 - new(transformT0 : VkSRTDataNV, transformT1 : VkSRTDataNV, instanceCustomIndex : uint24, mask : uint8, instanceShaderBindingTableRecordOffset : uint24, flags : uint8, accelerationStructureReference : uint64) = + new(pNext : nativeint, amigoProfiling : VkBool32) = { - transformT0 = transformT0 - transformT1 = transformT1 - instanceCustomIndex = instanceCustomIndex - mask = mask - instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset - flags = flags - accelerationStructureReference = accelerationStructureReference + sType = 1000485000u + pNext = pNext + amigoProfiling = amigoProfiling } + new(amigoProfiling : VkBool32) = + VkPhysicalDeviceAmigoProfilingFeaturesSEC(Unchecked.defaultof, amigoProfiling) + member x.IsEmpty = - x.transformT0 = Unchecked.defaultof && x.transformT1 = Unchecked.defaultof && x.instanceCustomIndex = Unchecked.defaultof && x.mask = Unchecked.defaultof && x.instanceShaderBindingTableRecordOffset = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.accelerationStructureReference = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.amigoProfiling = Unchecked.defaultof static member Empty = - VkAccelerationStructureSRTMotionInstanceNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceAmigoProfilingFeaturesSEC(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ - sprintf "transformT0 = %A" x.transformT0 - sprintf "transformT1 = %A" x.transformT1 - sprintf "instanceCustomIndex = %A" x.instanceCustomIndex - sprintf "mask = %A" x.mask - sprintf "instanceShaderBindingTableRecordOffset = %A" x.instanceShaderBindingTableRecordOffset - sprintf "flags = %A" x.flags - sprintf "accelerationStructureReference = %A" x.accelerationStructureReference - ] |> sprintf "VkAccelerationStructureSRTMotionInstanceNV { %s }" + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "amigoProfiling = %A" x.amigoProfiling + ] |> sprintf "VkPhysicalDeviceAmigoProfilingFeaturesSEC { %s }" end - [] - type VkAccelerationStructureMotionInstanceDataNV = + + +/// Requires KHRGetPhysicalDeviceProperties2 | Vulkan11. +module VALVEDescriptorSetHostMapping = + let Type = ExtensionType.Device + let Name = "VK_VALVE_descriptor_set_host_mapping" + let Number = 421 + + [] + type VkDescriptorSetBindingReferenceVALVE = struct - [] - val mutable public staticInstance : VkAccelerationStructureInstanceKHR - [] - val mutable public matrixMotionInstance : VkAccelerationStructureMatrixMotionInstanceNV - [] - val mutable public srtMotionInstance : VkAccelerationStructureSRTMotionInstanceNV + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public descriptorSetLayout : VkDescriptorSetLayout + val mutable public binding : uint32 - static member StaticInstance(value : VkAccelerationStructureInstanceKHR) = - let mutable result = Unchecked.defaultof - result.staticInstance <- value - result + new(pNext : nativeint, descriptorSetLayout : VkDescriptorSetLayout, binding : uint32) = + { + sType = 1000420001u + pNext = pNext + descriptorSetLayout = descriptorSetLayout + binding = binding + } - static member MatrixMotionInstance(value : VkAccelerationStructureMatrixMotionInstanceNV) = - let mutable result = Unchecked.defaultof - result.matrixMotionInstance <- value - result + new(descriptorSetLayout : VkDescriptorSetLayout, binding : uint32) = + VkDescriptorSetBindingReferenceVALVE(Unchecked.defaultof, descriptorSetLayout, binding) - static member SrtMotionInstance(value : VkAccelerationStructureSRTMotionInstanceNV) = - let mutable result = Unchecked.defaultof - result.srtMotionInstance <- value - result + member x.IsEmpty = + x.pNext = Unchecked.defaultof && x.descriptorSetLayout = Unchecked.defaultof && x.binding = Unchecked.defaultof + + static member Empty = + VkDescriptorSetBindingReferenceVALVE(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ - sprintf "staticInstance = %A" x.staticInstance - sprintf "matrixMotionInstance = %A" x.matrixMotionInstance - sprintf "srtMotionInstance = %A" x.srtMotionInstance - ] |> sprintf "VkAccelerationStructureMotionInstanceDataNV { %s }" + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "descriptorSetLayout = %A" x.descriptorSetLayout + sprintf "binding = %A" x.binding + ] |> sprintf "VkDescriptorSetBindingReferenceVALVE { %s }" end [] - type VkAccelerationStructureMotionInstanceNV = + type VkDescriptorSetLayoutHostMappingInfoVALVE = struct - val mutable public _type : VkAccelerationStructureMotionInstanceTypeNV - val mutable public flags : VkAccelerationStructureMotionInstanceFlagsNV - val mutable public data : VkAccelerationStructureMotionInstanceDataNV + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public descriptorOffset : uint64 + val mutable public descriptorSize : uint32 - new(_type : VkAccelerationStructureMotionInstanceTypeNV, flags : VkAccelerationStructureMotionInstanceFlagsNV, data : VkAccelerationStructureMotionInstanceDataNV) = + new(pNext : nativeint, descriptorOffset : uint64, descriptorSize : uint32) = { - _type = _type - flags = flags - data = data + sType = 1000420002u + pNext = pNext + descriptorOffset = descriptorOffset + descriptorSize = descriptorSize } + new(descriptorOffset : uint64, descriptorSize : uint32) = + VkDescriptorSetLayoutHostMappingInfoVALVE(Unchecked.defaultof, descriptorOffset, descriptorSize) + member x.IsEmpty = - x._type = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.data = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.descriptorOffset = Unchecked.defaultof && x.descriptorSize = Unchecked.defaultof static member Empty = - VkAccelerationStructureMotionInstanceNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkDescriptorSetLayoutHostMappingInfoVALVE(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ - sprintf "_type = %A" x._type - sprintf "flags = %A" x.flags - sprintf "data = %A" x.data - ] |> sprintf "VkAccelerationStructureMotionInstanceNV { %s }" + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "descriptorOffset = %A" x.descriptorOffset + sprintf "descriptorSize = %A" x.descriptorSize + ] |> sprintf "VkDescriptorSetLayoutHostMappingInfoVALVE { %s }" end [] - type VkPhysicalDeviceRayTracingMotionBlurFeaturesNV = + type VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public rayTracingMotionBlur : VkBool32 - val mutable public rayTracingMotionBlurPipelineTraceRaysIndirect : VkBool32 + val mutable public descriptorSetHostMapping : VkBool32 - new(pNext : nativeint, rayTracingMotionBlur : VkBool32, rayTracingMotionBlurPipelineTraceRaysIndirect : VkBool32) = + new(pNext : nativeint, descriptorSetHostMapping : VkBool32) = { - sType = 1000327001u + sType = 1000420000u pNext = pNext - rayTracingMotionBlur = rayTracingMotionBlur - rayTracingMotionBlurPipelineTraceRaysIndirect = rayTracingMotionBlurPipelineTraceRaysIndirect + descriptorSetHostMapping = descriptorSetHostMapping } - new(rayTracingMotionBlur : VkBool32, rayTracingMotionBlurPipelineTraceRaysIndirect : VkBool32) = - VkPhysicalDeviceRayTracingMotionBlurFeaturesNV(Unchecked.defaultof, rayTracingMotionBlur, rayTracingMotionBlurPipelineTraceRaysIndirect) + new(descriptorSetHostMapping : VkBool32) = + VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE(Unchecked.defaultof, descriptorSetHostMapping) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.rayTracingMotionBlur = Unchecked.defaultof && x.rayTracingMotionBlurPipelineTraceRaysIndirect = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.descriptorSetHostMapping = Unchecked.defaultof static member Empty = - VkPhysicalDeviceRayTracingMotionBlurFeaturesNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "rayTracingMotionBlur = %A" x.rayTracingMotionBlur - sprintf "rayTracingMotionBlurPipelineTraceRaysIndirect = %A" x.rayTracingMotionBlurPipelineTraceRaysIndirect - ] |> sprintf "VkPhysicalDeviceRayTracingMotionBlurFeaturesNV { %s }" + sprintf "descriptorSetHostMapping = %A" x.descriptorSetHostMapping + ] |> sprintf "VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE { %s }" end + module VkRaw = + [] + type VkGetDescriptorSetLayoutHostMappingInfoVALVEDel = delegate of VkDevice * nativeptr * nativeptr -> unit + [] + type VkGetDescriptorSetHostMappingVALVEDel = delegate of VkDevice * VkDescriptorSet * nativeptr -> unit + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading VALVEDescriptorSetHostMapping") + static let s_vkGetDescriptorSetLayoutHostMappingInfoVALVEDel = VkRaw.vkImportInstanceDelegate "vkGetDescriptorSetLayoutHostMappingInfoVALVE" + static let s_vkGetDescriptorSetHostMappingVALVEDel = VkRaw.vkImportInstanceDelegate "vkGetDescriptorSetHostMappingVALVE" + static do Report.End(3) |> ignore + static member vkGetDescriptorSetLayoutHostMappingInfoVALVE = s_vkGetDescriptorSetLayoutHostMappingInfoVALVEDel + static member vkGetDescriptorSetHostMappingVALVE = s_vkGetDescriptorSetHostMappingVALVEDel + let vkGetDescriptorSetLayoutHostMappingInfoVALVE(device : VkDevice, pBindingReference : nativeptr, pHostMapping : nativeptr) = Loader.vkGetDescriptorSetLayoutHostMappingInfoVALVE.Invoke(device, pBindingReference, pHostMapping) + let vkGetDescriptorSetHostMappingVALVE(device : VkDevice, descriptorSet : VkDescriptorSet, ppData : nativeptr) = Loader.vkGetDescriptorSetHostMappingVALVE.Invoke(device, descriptorSet, ppData) + +/// Requires KHRMaintenance3. +/// Promoted to EXTMutableDescriptorType. +module VALVEMutableDescriptorType = + let Type = ExtensionType.Device + let Name = "VK_VALVE_mutable_descriptor_type" + let Number = 352 + + type VkMutableDescriptorTypeCreateInfoVALVE = EXTMutableDescriptorType.VkMutableDescriptorTypeCreateInfoEXT + + type VkMutableDescriptorTypeListVALVE = EXTMutableDescriptorType.VkMutableDescriptorTypeListEXT + + type VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE = EXTMutableDescriptorType.VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT + + [] module EnumExtensions = - type VkAccelerationStructureCreateFlagsKHR with - static member inline MotionBitNv = unbox 0x00000004 - type VkBuildAccelerationStructureFlagsKHR with - static member inline MotionBitNv = unbox 0x00000020 - type VkPipelineCreateFlags with - static member inline RayTracingAllowMotionBitNv = unbox 0x00100000 + type VkDescriptorPoolCreateFlags with + static member inline HostOnlyBitValve = unbox 0x00000004 + type VkDescriptorSetLayoutCreateFlags with + static member inline HostOnlyPoolBitValve = unbox 0x00000004 + type VkDescriptorType with + static member inline MutableValve = unbox 1000351000 -module NVRepresentativeFragmentTest = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_NV_representative_fragment_test" - let Number = 167 +/// Requires EXTDirectModeDisplay. +module EXTAcquireDrmDisplay = + let Type = ExtensionType.Instance + let Name = "VK_EXT_acquire_drm_display" + let Number = 286 + module VkRaw = + [] + type VkAcquireDrmDisplayEXTDel = delegate of VkPhysicalDevice * int32 * KHRDisplay.VkDisplayKHR -> VkResult + [] + type VkGetDrmDisplayEXTDel = delegate of VkPhysicalDevice * int32 * uint32 * nativeptr -> VkResult + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTAcquireDrmDisplay") + static let s_vkAcquireDrmDisplayEXTDel = VkRaw.vkImportInstanceDelegate "vkAcquireDrmDisplayEXT" + static let s_vkGetDrmDisplayEXTDel = VkRaw.vkImportInstanceDelegate "vkGetDrmDisplayEXT" + static do Report.End(3) |> ignore + static member vkAcquireDrmDisplayEXT = s_vkAcquireDrmDisplayEXTDel + static member vkGetDrmDisplayEXT = s_vkGetDrmDisplayEXTDel + let vkAcquireDrmDisplayEXT(physicalDevice : VkPhysicalDevice, drmFd : int32, display : KHRDisplay.VkDisplayKHR) = Loader.vkAcquireDrmDisplayEXT.Invoke(physicalDevice, drmFd, display) + let vkGetDrmDisplayEXT(physicalDevice : VkPhysicalDevice, drmFd : int32, connectorId : uint32, display : nativeptr) = Loader.vkGetDrmDisplayEXT.Invoke(physicalDevice, drmFd, connectorId, display) + +/// Requires EXTDirectModeDisplay. +module EXTAcquireXlibDisplay = + let Type = ExtensionType.Instance + let Name = "VK_EXT_acquire_xlib_display" + let Number = 90 + + module VkRaw = + [] + type VkAcquireXlibDisplayEXTDel = delegate of VkPhysicalDevice * nativeptr * KHRDisplay.VkDisplayKHR -> VkResult + [] + type VkGetRandROutputDisplayEXTDel = delegate of VkPhysicalDevice * nativeptr * nativeint * nativeptr -> VkResult + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTAcquireXlibDisplay") + static let s_vkAcquireXlibDisplayEXTDel = VkRaw.vkImportInstanceDelegate "vkAcquireXlibDisplayEXT" + static let s_vkGetRandROutputDisplayEXTDel = VkRaw.vkImportInstanceDelegate "vkGetRandROutputDisplayEXT" + static do Report.End(3) |> ignore + static member vkAcquireXlibDisplayEXT = s_vkAcquireXlibDisplayEXTDel + static member vkGetRandROutputDisplayEXT = s_vkGetRandROutputDisplayEXTDel + let vkAcquireXlibDisplayEXT(physicalDevice : VkPhysicalDevice, dpy : nativeptr, display : KHRDisplay.VkDisplayKHR) = Loader.vkAcquireXlibDisplayEXT.Invoke(physicalDevice, dpy, display) + let vkGetRandROutputDisplayEXT(physicalDevice : VkPhysicalDevice, dpy : nativeptr, rrOutput : nativeint, pDisplay : nativeptr) = Loader.vkGetRandROutputDisplayEXT.Invoke(physicalDevice, dpy, rrOutput, pDisplay) + +/// Requires KHRSurface. +module EXTDirectfbSurface = + let Type = ExtensionType.Instance + let Name = "VK_EXT_directfb_surface" + let Number = 347 [] - type VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV = + type VkDirectFBSurfaceCreateInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public representativeFragmentTest : VkBool32 + val mutable public flags : VkDirectFBSurfaceCreateFlagsEXT + val mutable public dfb : nativeptr + val mutable public surface : nativeptr - new(pNext : nativeint, representativeFragmentTest : VkBool32) = + new(pNext : nativeint, flags : VkDirectFBSurfaceCreateFlagsEXT, dfb : nativeptr, surface : nativeptr) = { - sType = 1000166000u + sType = 1000346000u pNext = pNext - representativeFragmentTest = representativeFragmentTest + flags = flags + dfb = dfb + surface = surface } - new(representativeFragmentTest : VkBool32) = - VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV(Unchecked.defaultof, representativeFragmentTest) + new(flags : VkDirectFBSurfaceCreateFlagsEXT, dfb : nativeptr, surface : nativeptr) = + VkDirectFBSurfaceCreateInfoEXT(Unchecked.defaultof, flags, dfb, surface) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.representativeFragmentTest = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.dfb = Unchecked.defaultof> && x.surface = Unchecked.defaultof> static member Empty = - VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV(Unchecked.defaultof, Unchecked.defaultof) + VkDirectFBSurfaceCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "representativeFragmentTest = %A" x.representativeFragmentTest - ] |> sprintf "VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV { %s }" + sprintf "flags = %A" x.flags + sprintf "dfb = %A" x.dfb + sprintf "surface = %A" x.surface + ] |> sprintf "VkDirectFBSurfaceCreateInfoEXT { %s }" end + + module VkRaw = + [] + type VkCreateDirectFBSurfaceEXTDel = delegate of VkInstance * nativeptr * nativeptr * nativeptr -> VkResult + [] + type VkGetPhysicalDeviceDirectFBPresentationSupportEXTDel = delegate of VkPhysicalDevice * uint32 * nativeptr -> VkBool32 + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTDirectfbSurface") + static let s_vkCreateDirectFBSurfaceEXTDel = VkRaw.vkImportInstanceDelegate "vkCreateDirectFBSurfaceEXT" + static let s_vkGetPhysicalDeviceDirectFBPresentationSupportEXTDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceDirectFBPresentationSupportEXT" + static do Report.End(3) |> ignore + static member vkCreateDirectFBSurfaceEXT = s_vkCreateDirectFBSurfaceEXTDel + static member vkGetPhysicalDeviceDirectFBPresentationSupportEXT = s_vkGetPhysicalDeviceDirectFBPresentationSupportEXTDel + let vkCreateDirectFBSurfaceEXT(instance : VkInstance, pCreateInfo : nativeptr, pAllocator : nativeptr, pSurface : nativeptr) = Loader.vkCreateDirectFBSurfaceEXT.Invoke(instance, pCreateInfo, pAllocator, pSurface) + let vkGetPhysicalDeviceDirectFBPresentationSupportEXT(physicalDevice : VkPhysicalDevice, queueFamilyIndex : uint32, dfb : nativeptr) = Loader.vkGetPhysicalDeviceDirectFBPresentationSupportEXT.Invoke(physicalDevice, queueFamilyIndex, dfb) + +/// Requires KHRSurface. +module EXTHeadlessSurface = + let Type = ExtensionType.Instance + let Name = "VK_EXT_headless_surface" + let Number = 257 + [] - type VkPipelineRepresentativeFragmentTestStateCreateInfoNV = + type VkHeadlessSurfaceCreateInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public representativeFragmentTestEnable : VkBool32 + val mutable public flags : VkHeadlessSurfaceCreateFlagsEXT - new(pNext : nativeint, representativeFragmentTestEnable : VkBool32) = + new(pNext : nativeint, flags : VkHeadlessSurfaceCreateFlagsEXT) = { - sType = 1000166001u + sType = 1000256000u pNext = pNext - representativeFragmentTestEnable = representativeFragmentTestEnable + flags = flags } - new(representativeFragmentTestEnable : VkBool32) = - VkPipelineRepresentativeFragmentTestStateCreateInfoNV(Unchecked.defaultof, representativeFragmentTestEnable) + new(flags : VkHeadlessSurfaceCreateFlagsEXT) = + VkHeadlessSurfaceCreateInfoEXT(Unchecked.defaultof, flags) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.representativeFragmentTestEnable = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof static member Empty = - VkPipelineRepresentativeFragmentTestStateCreateInfoNV(Unchecked.defaultof, Unchecked.defaultof) + VkHeadlessSurfaceCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "representativeFragmentTestEnable = %A" x.representativeFragmentTestEnable - ] |> sprintf "VkPipelineRepresentativeFragmentTestStateCreateInfoNV { %s }" + sprintf "flags = %A" x.flags + ] |> sprintf "VkHeadlessSurfaceCreateInfoEXT { %s }" end + module VkRaw = + [] + type VkCreateHeadlessSurfaceEXTDel = delegate of VkInstance * nativeptr * nativeptr * nativeptr -> VkResult -module NVSampleMaskOverrideCoverage = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_NV_sample_mask_override_coverage" - let Number = 95 + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTHeadlessSurface") + static let s_vkCreateHeadlessSurfaceEXTDel = VkRaw.vkImportInstanceDelegate "vkCreateHeadlessSurfaceEXT" + static do Report.End(3) |> ignore + static member vkCreateHeadlessSurfaceEXT = s_vkCreateHeadlessSurfaceEXTDel + let vkCreateHeadlessSurfaceEXT(instance : VkInstance, pCreateInfo : nativeptr, pAllocator : nativeptr, pSurface : nativeptr) = Loader.vkCreateHeadlessSurfaceEXT.Invoke(instance, pCreateInfo, pAllocator, pSurface) +module EXTLayerSettings = + let Type = ExtensionType.Instance + let Name = "VK_EXT_layer_settings" + let Number = 497 -module NVScissorExclusive = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_NV_scissor_exclusive" - let Number = 206 + type VkLayerSettingTypeEXT = + | Bool32 = 0 + | Int32 = 1 + | Int64 = 2 + | Uint32 = 3 + | Uint64 = 4 + | Float32 = 5 + | Float64 = 6 + | String = 7 + + + [] + type VkLayerSettingEXT = + struct + val mutable public pLayerName : cstr + val mutable public pSettingName : cstr + val mutable public _type : VkLayerSettingTypeEXT + val mutable public valueCount : uint32 + val mutable public pValues : nativeint + + new(pLayerName : cstr, pSettingName : cstr, _type : VkLayerSettingTypeEXT, valueCount : uint32, pValues : nativeint) = + { + pLayerName = pLayerName + pSettingName = pSettingName + _type = _type + valueCount = valueCount + pValues = pValues + } + + member x.IsEmpty = + x.pLayerName = Unchecked.defaultof && x.pSettingName = Unchecked.defaultof && x._type = Unchecked.defaultof && x.valueCount = Unchecked.defaultof && x.pValues = Unchecked.defaultof - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] + static member Empty = + VkLayerSettingEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + override x.ToString() = + String.concat "; " [ + sprintf "pLayerName = %A" x.pLayerName + sprintf "pSettingName = %A" x.pSettingName + sprintf "_type = %A" x._type + sprintf "valueCount = %A" x.valueCount + sprintf "pValues = %A" x.pValues + ] |> sprintf "VkLayerSettingEXT { %s }" + end [] - type VkPhysicalDeviceExclusiveScissorFeaturesNV = + type VkLayerSettingsCreateInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public exclusiveScissor : VkBool32 + val mutable public settingCount : uint32 + val mutable public pSettings : nativeptr - new(pNext : nativeint, exclusiveScissor : VkBool32) = + new(pNext : nativeint, settingCount : uint32, pSettings : nativeptr) = { - sType = 1000205002u + sType = 1000496000u pNext = pNext - exclusiveScissor = exclusiveScissor + settingCount = settingCount + pSettings = pSettings } - new(exclusiveScissor : VkBool32) = - VkPhysicalDeviceExclusiveScissorFeaturesNV(Unchecked.defaultof, exclusiveScissor) + new(settingCount : uint32, pSettings : nativeptr) = + VkLayerSettingsCreateInfoEXT(Unchecked.defaultof, settingCount, pSettings) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.exclusiveScissor = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.settingCount = Unchecked.defaultof && x.pSettings = Unchecked.defaultof> static member Empty = - VkPhysicalDeviceExclusiveScissorFeaturesNV(Unchecked.defaultof, Unchecked.defaultof) + VkLayerSettingsCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "exclusiveScissor = %A" x.exclusiveScissor - ] |> sprintf "VkPhysicalDeviceExclusiveScissorFeaturesNV { %s }" + sprintf "settingCount = %A" x.settingCount + sprintf "pSettings = %A" x.pSettings + ] |> sprintf "VkLayerSettingsCreateInfoEXT { %s }" end + + +/// Requires KHRSurface. +module EXTMetalSurface = + let Type = ExtensionType.Instance + let Name = "VK_EXT_metal_surface" + let Number = 218 + + type CAMetalLayer = nativeint + [] - type VkPipelineViewportExclusiveScissorStateCreateInfoNV = + type VkMetalSurfaceCreateInfoEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public exclusiveScissorCount : uint32 - val mutable public pExclusiveScissors : nativeptr + val mutable public flags : VkMetalSurfaceCreateFlagsEXT + val mutable public pLayer : nativeptr - new(pNext : nativeint, exclusiveScissorCount : uint32, pExclusiveScissors : nativeptr) = + new(pNext : nativeint, flags : VkMetalSurfaceCreateFlagsEXT, pLayer : nativeptr) = { - sType = 1000205000u + sType = 1000217000u pNext = pNext - exclusiveScissorCount = exclusiveScissorCount - pExclusiveScissors = pExclusiveScissors + flags = flags + pLayer = pLayer } - new(exclusiveScissorCount : uint32, pExclusiveScissors : nativeptr) = - VkPipelineViewportExclusiveScissorStateCreateInfoNV(Unchecked.defaultof, exclusiveScissorCount, pExclusiveScissors) + new(flags : VkMetalSurfaceCreateFlagsEXT, pLayer : nativeptr) = + VkMetalSurfaceCreateInfoEXT(Unchecked.defaultof, flags, pLayer) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.exclusiveScissorCount = Unchecked.defaultof && x.pExclusiveScissors = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.pLayer = Unchecked.defaultof> static member Empty = - VkPipelineViewportExclusiveScissorStateCreateInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + VkMetalSurfaceCreateInfoEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "exclusiveScissorCount = %A" x.exclusiveScissorCount - sprintf "pExclusiveScissors = %A" x.pExclusiveScissors - ] |> sprintf "VkPipelineViewportExclusiveScissorStateCreateInfoNV { %s }" + sprintf "flags = %A" x.flags + sprintf "pLayer = %A" x.pLayer + ] |> sprintf "VkMetalSurfaceCreateInfoEXT { %s }" end - [] - module EnumExtensions = - type VkDynamicState with - static member inline ExclusiveScissorNv = unbox 1000205001 - module VkRaw = [] - type VkCmdSetExclusiveScissorNVDel = delegate of VkCommandBuffer * uint32 * uint32 * nativeptr -> unit + type VkCreateMetalSurfaceEXTDel = delegate of VkInstance * nativeptr * nativeptr * nativeptr -> VkResult [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading NVScissorExclusive") - static let s_vkCmdSetExclusiveScissorNVDel = VkRaw.vkImportInstanceDelegate "vkCmdSetExclusiveScissorNV" + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading EXTMetalSurface") + static let s_vkCreateMetalSurfaceEXTDel = VkRaw.vkImportInstanceDelegate "vkCreateMetalSurfaceEXT" static do Report.End(3) |> ignore - static member vkCmdSetExclusiveScissorNV = s_vkCmdSetExclusiveScissorNVDel - let vkCmdSetExclusiveScissorNV(commandBuffer : VkCommandBuffer, firstExclusiveScissor : uint32, exclusiveScissorCount : uint32, pExclusiveScissors : nativeptr) = Loader.vkCmdSetExclusiveScissorNV.Invoke(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors) + static member vkCreateMetalSurfaceEXT = s_vkCreateMetalSurfaceEXTDel + let vkCreateMetalSurfaceEXT(instance : VkInstance, pCreateInfo : nativeptr, pAllocator : nativeptr, pSurface : nativeptr) = Loader.vkCreateMetalSurfaceEXT.Invoke(instance, pCreateInfo, pAllocator, pSurface) -module NVShaderImageFootprint = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_NV_shader_image_footprint" - let Number = 205 +/// Requires KHRSurface. +module EXTSwapchainColorspace = + let Type = ExtensionType.Instance + let Name = "VK_EXT_swapchain_colorspace" + let Number = 105 + + [] + module EnumExtensions = + type KHRSurface.VkColorSpaceKHR with + static member inline DisplayP3NonlinearExt = unbox 1000104001 + static member inline ExtendedSrgbLinearExt = unbox 1000104002 + static member inline DisplayP3LinearExt = unbox 1000104003 + static member inline DciP3NonlinearExt = unbox 1000104004 + static member inline Bt709LinearExt = unbox 1000104005 + static member inline Bt709NonlinearExt = unbox 1000104006 + static member inline Bt2020LinearExt = unbox 1000104007 + static member inline Hdr10St2084Ext = unbox 1000104008 + static member inline DolbyvisionExt = unbox 1000104009 + static member inline Hdr10HlgExt = unbox 1000104010 + static member inline AdobergbLinearExt = unbox 1000104011 + static member inline AdobergbNonlinearExt = unbox 1000104012 + static member inline PassThroughExt = unbox 1000104013 + static member inline ExtendedSrgbNonlinearExt = unbox 1000104014 + + +/// Deprecated by EXTLayerSettings. +module EXTValidationFeatures = + let Type = ExtensionType.Instance + let Name = "VK_EXT_validation_features" + let Number = 248 + + type VkValidationFeatureEnableEXT = + | GpuAssisted = 0 + | GpuAssistedReserveBindingSlot = 1 + | BestPractices = 2 + | DebugPrintf = 3 + | SynchronizationValidation = 4 - let Required = [ KHRGetPhysicalDeviceProperties2.Name ] + type VkValidationFeatureDisableEXT = + | All = 0 + | Shaders = 1 + | ThreadSafety = 2 + | ApiParameters = 3 + | ObjectLifetimes = 4 + | CoreChecks = 5 + | UniqueHandles = 6 + | ShaderValidationCache = 7 [] - type VkPhysicalDeviceShaderImageFootprintFeaturesNV = + type VkValidationFeaturesEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public imageFootprint : VkBool32 + val mutable public enabledValidationFeatureCount : uint32 + val mutable public pEnabledValidationFeatures : nativeptr + val mutable public disabledValidationFeatureCount : uint32 + val mutable public pDisabledValidationFeatures : nativeptr - new(pNext : nativeint, imageFootprint : VkBool32) = + new(pNext : nativeint, enabledValidationFeatureCount : uint32, pEnabledValidationFeatures : nativeptr, disabledValidationFeatureCount : uint32, pDisabledValidationFeatures : nativeptr) = { - sType = 1000204000u + sType = 1000247000u pNext = pNext - imageFootprint = imageFootprint + enabledValidationFeatureCount = enabledValidationFeatureCount + pEnabledValidationFeatures = pEnabledValidationFeatures + disabledValidationFeatureCount = disabledValidationFeatureCount + pDisabledValidationFeatures = pDisabledValidationFeatures } - new(imageFootprint : VkBool32) = - VkPhysicalDeviceShaderImageFootprintFeaturesNV(Unchecked.defaultof, imageFootprint) + new(enabledValidationFeatureCount : uint32, pEnabledValidationFeatures : nativeptr, disabledValidationFeatureCount : uint32, pDisabledValidationFeatures : nativeptr) = + VkValidationFeaturesEXT(Unchecked.defaultof, enabledValidationFeatureCount, pEnabledValidationFeatures, disabledValidationFeatureCount, pDisabledValidationFeatures) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.imageFootprint = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.enabledValidationFeatureCount = Unchecked.defaultof && x.pEnabledValidationFeatures = Unchecked.defaultof> && x.disabledValidationFeatureCount = Unchecked.defaultof && x.pDisabledValidationFeatures = Unchecked.defaultof> static member Empty = - VkPhysicalDeviceShaderImageFootprintFeaturesNV(Unchecked.defaultof, Unchecked.defaultof) + VkValidationFeaturesEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "imageFootprint = %A" x.imageFootprint - ] |> sprintf "VkPhysicalDeviceShaderImageFootprintFeaturesNV { %s }" + sprintf "enabledValidationFeatureCount = %A" x.enabledValidationFeatureCount + sprintf "pEnabledValidationFeatures = %A" x.pEnabledValidationFeatures + sprintf "disabledValidationFeatureCount = %A" x.disabledValidationFeatureCount + sprintf "pDisabledValidationFeatures = %A" x.pDisabledValidationFeatures + ] |> sprintf "VkValidationFeaturesEXT { %s }" end -module NVShaderSmBuiltins = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_NV_shader_sm_builtins" - let Number = 155 +/// Deprecated by EXTLayerSettings. +module EXTValidationFlags = + let Type = ExtensionType.Instance + let Name = "VK_EXT_validation_flags" + let Number = 62 + + type VkValidationCheckEXT = + | All = 0 + | Shaders = 1 [] - type VkPhysicalDeviceShaderSMBuiltinsFeaturesNV = + type VkValidationFlagsEXT = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public shaderSMBuiltins : VkBool32 + val mutable public disabledValidationCheckCount : uint32 + val mutable public pDisabledValidationChecks : nativeptr - new(pNext : nativeint, shaderSMBuiltins : VkBool32) = + new(pNext : nativeint, disabledValidationCheckCount : uint32, pDisabledValidationChecks : nativeptr) = { - sType = 1000154000u + sType = 1000061000u pNext = pNext - shaderSMBuiltins = shaderSMBuiltins + disabledValidationCheckCount = disabledValidationCheckCount + pDisabledValidationChecks = pDisabledValidationChecks } - new(shaderSMBuiltins : VkBool32) = - VkPhysicalDeviceShaderSMBuiltinsFeaturesNV(Unchecked.defaultof, shaderSMBuiltins) + new(disabledValidationCheckCount : uint32, pDisabledValidationChecks : nativeptr) = + VkValidationFlagsEXT(Unchecked.defaultof, disabledValidationCheckCount, pDisabledValidationChecks) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.shaderSMBuiltins = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.disabledValidationCheckCount = Unchecked.defaultof && x.pDisabledValidationChecks = Unchecked.defaultof> static member Empty = - VkPhysicalDeviceShaderSMBuiltinsFeaturesNV(Unchecked.defaultof, Unchecked.defaultof) + VkValidationFlagsEXT(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "shaderSMBuiltins = %A" x.shaderSMBuiltins - ] |> sprintf "VkPhysicalDeviceShaderSMBuiltinsFeaturesNV { %s }" + sprintf "disabledValidationCheckCount = %A" x.disabledValidationCheckCount + sprintf "pDisabledValidationChecks = %A" x.pDisabledValidationChecks + ] |> sprintf "VkValidationFlagsEXT { %s }" end + + +/// Requires KHRSurface. +module FUCHSIAImagepipeSurface = + let Type = ExtensionType.Instance + let Name = "VK_FUCHSIA_imagepipe_surface" + let Number = 215 + [] - type VkPhysicalDeviceShaderSMBuiltinsPropertiesNV = + type VkImagePipeSurfaceCreateInfoFUCHSIA = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public shaderSMCount : uint32 - val mutable public shaderWarpsPerSM : uint32 + val mutable public flags : VkImagePipeSurfaceCreateFlagsFUCHSIA + val mutable public imagePipeHandle : nativeint - new(pNext : nativeint, shaderSMCount : uint32, shaderWarpsPerSM : uint32) = + new(pNext : nativeint, flags : VkImagePipeSurfaceCreateFlagsFUCHSIA, imagePipeHandle : nativeint) = { - sType = 1000154001u + sType = 1000214000u pNext = pNext - shaderSMCount = shaderSMCount - shaderWarpsPerSM = shaderWarpsPerSM + flags = flags + imagePipeHandle = imagePipeHandle } - new(shaderSMCount : uint32, shaderWarpsPerSM : uint32) = - VkPhysicalDeviceShaderSMBuiltinsPropertiesNV(Unchecked.defaultof, shaderSMCount, shaderWarpsPerSM) + new(flags : VkImagePipeSurfaceCreateFlagsFUCHSIA, imagePipeHandle : nativeint) = + VkImagePipeSurfaceCreateInfoFUCHSIA(Unchecked.defaultof, flags, imagePipeHandle) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.shaderSMCount = Unchecked.defaultof && x.shaderWarpsPerSM = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.imagePipeHandle = Unchecked.defaultof static member Empty = - VkPhysicalDeviceShaderSMBuiltinsPropertiesNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkImagePipeSurfaceCreateInfoFUCHSIA(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "shaderSMCount = %A" x.shaderSMCount - sprintf "shaderWarpsPerSM = %A" x.shaderWarpsPerSM - ] |> sprintf "VkPhysicalDeviceShaderSMBuiltinsPropertiesNV { %s }" + sprintf "flags = %A" x.flags + sprintf "imagePipeHandle = %A" x.imagePipeHandle + ] |> sprintf "VkImagePipeSurfaceCreateInfoFUCHSIA { %s }" end + module VkRaw = + [] + type VkCreateImagePipeSurfaceFUCHSIADel = delegate of VkInstance * nativeptr * nativeptr * nativeptr -> VkResult -module NVShaderSubgroupPartitioned = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_NV_shader_subgroup_partitioned" - let Number = 199 - - - [] - module EnumExtensions = - type VkSubgroupFeatureFlags with - static member inline PartitionedBitNv = unbox 0x00000100 - - -module NVViewportArray2 = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_NV_viewport_array2" - let Number = 97 - - -module NVViewportSwizzle = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_NV_viewport_swizzle" - let Number = 99 + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading FUCHSIAImagepipeSurface") + static let s_vkCreateImagePipeSurfaceFUCHSIADel = VkRaw.vkImportInstanceDelegate "vkCreateImagePipeSurfaceFUCHSIA" + static do Report.End(3) |> ignore + static member vkCreateImagePipeSurfaceFUCHSIA = s_vkCreateImagePipeSurfaceFUCHSIADel + let vkCreateImagePipeSurfaceFUCHSIA(instance : VkInstance, pCreateInfo : nativeptr, pAllocator : nativeptr, pSurface : nativeptr) = Loader.vkCreateImagePipeSurfaceFUCHSIA.Invoke(instance, pCreateInfo, pAllocator, pSurface) +/// Requires KHRSurface. +module GOOGLESurfacelessQuery = + let Type = ExtensionType.Instance + let Name = "VK_GOOGLE_surfaceless_query" + let Number = 434 - type VkViewportCoordinateSwizzleNV = - | PositiveX = 0 - | NegativeX = 1 - | PositiveY = 2 - | NegativeY = 3 - | PositiveZ = 4 - | NegativeZ = 5 - | PositiveW = 6 - | NegativeW = 7 +/// Requires KHRSurface. +module KHRAndroidSurface = + let Type = ExtensionType.Instance + let Name = "VK_KHR_android_surface" + let Number = 9 + type ANativeWindow = nativeint [] - type VkViewportSwizzleNV = + type VkAndroidSurfaceCreateInfoKHR = struct - val mutable public x : VkViewportCoordinateSwizzleNV - val mutable public y : VkViewportCoordinateSwizzleNV - val mutable public z : VkViewportCoordinateSwizzleNV - val mutable public w : VkViewportCoordinateSwizzleNV + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public flags : VkAndroidSurfaceCreateFlagsKHR + val mutable public window : nativeptr - new(x : VkViewportCoordinateSwizzleNV, y : VkViewportCoordinateSwizzleNV, z : VkViewportCoordinateSwizzleNV, w : VkViewportCoordinateSwizzleNV) = + new(pNext : nativeint, flags : VkAndroidSurfaceCreateFlagsKHR, window : nativeptr) = { - x = x - y = y - z = z - w = w + sType = 1000008000u + pNext = pNext + flags = flags + window = window } + new(flags : VkAndroidSurfaceCreateFlagsKHR, window : nativeptr) = + VkAndroidSurfaceCreateInfoKHR(Unchecked.defaultof, flags, window) + member x.IsEmpty = - x.x = Unchecked.defaultof && x.y = Unchecked.defaultof && x.z = Unchecked.defaultof && x.w = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.window = Unchecked.defaultof> static member Empty = - VkViewportSwizzleNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkAndroidSurfaceCreateInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ - sprintf "x = %A" x.x - sprintf "y = %A" x.y - sprintf "z = %A" x.z - sprintf "w = %A" x.w - ] |> sprintf "VkViewportSwizzleNV { %s }" + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "flags = %A" x.flags + sprintf "window = %A" x.window + ] |> sprintf "VkAndroidSurfaceCreateInfoKHR { %s }" end + + module VkRaw = + [] + type VkCreateAndroidSurfaceKHRDel = delegate of VkInstance * nativeptr * nativeptr * nativeptr -> VkResult + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRAndroidSurface") + static let s_vkCreateAndroidSurfaceKHRDel = VkRaw.vkImportInstanceDelegate "vkCreateAndroidSurfaceKHR" + static do Report.End(3) |> ignore + static member vkCreateAndroidSurfaceKHR = s_vkCreateAndroidSurfaceKHRDel + let vkCreateAndroidSurfaceKHR(instance : VkInstance, pCreateInfo : nativeptr, pAllocator : nativeptr, pSurface : nativeptr) = Loader.vkCreateAndroidSurfaceKHR.Invoke(instance, pCreateInfo, pAllocator, pSurface) + +/// Requires KHRDisplay. +module KHRGetDisplayProperties2 = + let Type = ExtensionType.Instance + let Name = "VK_KHR_get_display_properties2" + let Number = 122 + [] - type VkPipelineViewportSwizzleStateCreateInfoNV = + type VkDisplayModeProperties2KHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public flags : VkPipelineViewportSwizzleStateCreateFlagsNV - val mutable public viewportCount : uint32 - val mutable public pViewportSwizzles : nativeptr + val mutable public displayModeProperties : KHRDisplay.VkDisplayModePropertiesKHR - new(pNext : nativeint, flags : VkPipelineViewportSwizzleStateCreateFlagsNV, viewportCount : uint32, pViewportSwizzles : nativeptr) = + new(pNext : nativeint, displayModeProperties : KHRDisplay.VkDisplayModePropertiesKHR) = { - sType = 1000098000u + sType = 1000121002u pNext = pNext - flags = flags - viewportCount = viewportCount - pViewportSwizzles = pViewportSwizzles + displayModeProperties = displayModeProperties } - new(flags : VkPipelineViewportSwizzleStateCreateFlagsNV, viewportCount : uint32, pViewportSwizzles : nativeptr) = - VkPipelineViewportSwizzleStateCreateInfoNV(Unchecked.defaultof, flags, viewportCount, pViewportSwizzles) + new(displayModeProperties : KHRDisplay.VkDisplayModePropertiesKHR) = + VkDisplayModeProperties2KHR(Unchecked.defaultof, displayModeProperties) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.viewportCount = Unchecked.defaultof && x.pViewportSwizzles = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.displayModeProperties = Unchecked.defaultof static member Empty = - VkPipelineViewportSwizzleStateCreateInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + VkDisplayModeProperties2KHR(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "flags = %A" x.flags - sprintf "viewportCount = %A" x.viewportCount - sprintf "pViewportSwizzles = %A" x.pViewportSwizzles - ] |> sprintf "VkPipelineViewportSwizzleStateCreateInfoNV { %s }" + sprintf "displayModeProperties = %A" x.displayModeProperties + ] |> sprintf "VkDisplayModeProperties2KHR { %s }" end - - -module NVWin32KeyedMutex = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open NVExternalMemory - open NVExternalMemoryCapabilities - open NVExternalMemoryWin32 - let Name = "VK_NV_win32_keyed_mutex" - let Number = 59 - - let Required = [ NVExternalMemoryWin32.Name ] - - [] - type VkWin32KeyedMutexAcquireReleaseInfoNV = + type VkDisplayPlaneCapabilities2KHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public acquireCount : uint32 - val mutable public pAcquireSyncs : nativeptr - val mutable public pAcquireKeys : nativeptr - val mutable public pAcquireTimeoutMilliseconds : nativeptr - val mutable public releaseCount : uint32 - val mutable public pReleaseSyncs : nativeptr - val mutable public pReleaseKeys : nativeptr + val mutable public capabilities : KHRDisplay.VkDisplayPlaneCapabilitiesKHR - new(pNext : nativeint, acquireCount : uint32, pAcquireSyncs : nativeptr, pAcquireKeys : nativeptr, pAcquireTimeoutMilliseconds : nativeptr, releaseCount : uint32, pReleaseSyncs : nativeptr, pReleaseKeys : nativeptr) = + new(pNext : nativeint, capabilities : KHRDisplay.VkDisplayPlaneCapabilitiesKHR) = { - sType = 1000058000u + sType = 1000121004u pNext = pNext - acquireCount = acquireCount - pAcquireSyncs = pAcquireSyncs - pAcquireKeys = pAcquireKeys - pAcquireTimeoutMilliseconds = pAcquireTimeoutMilliseconds - releaseCount = releaseCount - pReleaseSyncs = pReleaseSyncs - pReleaseKeys = pReleaseKeys + capabilities = capabilities } - new(acquireCount : uint32, pAcquireSyncs : nativeptr, pAcquireKeys : nativeptr, pAcquireTimeoutMilliseconds : nativeptr, releaseCount : uint32, pReleaseSyncs : nativeptr, pReleaseKeys : nativeptr) = - VkWin32KeyedMutexAcquireReleaseInfoNV(Unchecked.defaultof, acquireCount, pAcquireSyncs, pAcquireKeys, pAcquireTimeoutMilliseconds, releaseCount, pReleaseSyncs, pReleaseKeys) + new(capabilities : KHRDisplay.VkDisplayPlaneCapabilitiesKHR) = + VkDisplayPlaneCapabilities2KHR(Unchecked.defaultof, capabilities) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.acquireCount = Unchecked.defaultof && x.pAcquireSyncs = Unchecked.defaultof> && x.pAcquireKeys = Unchecked.defaultof> && x.pAcquireTimeoutMilliseconds = Unchecked.defaultof> && x.releaseCount = Unchecked.defaultof && x.pReleaseSyncs = Unchecked.defaultof> && x.pReleaseKeys = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.capabilities = Unchecked.defaultof static member Empty = - VkWin32KeyedMutexAcquireReleaseInfoNV(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof>, Unchecked.defaultof>, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof>) + VkDisplayPlaneCapabilities2KHR(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "acquireCount = %A" x.acquireCount - sprintf "pAcquireSyncs = %A" x.pAcquireSyncs - sprintf "pAcquireKeys = %A" x.pAcquireKeys - sprintf "pAcquireTimeoutMilliseconds = %A" x.pAcquireTimeoutMilliseconds - sprintf "releaseCount = %A" x.releaseCount - sprintf "pReleaseSyncs = %A" x.pReleaseSyncs - sprintf "pReleaseKeys = %A" x.pReleaseKeys - ] |> sprintf "VkWin32KeyedMutexAcquireReleaseInfoNV { %s }" + sprintf "capabilities = %A" x.capabilities + ] |> sprintf "VkDisplayPlaneCapabilities2KHR { %s }" end - - -module QCOMFragmentDensityMapOffset = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open EXTFragmentDensityMap - open KHRGetPhysicalDeviceProperties2 - let Name = "VK_QCOM_fragment_density_map_offset" - let Number = 426 - - let Required = [ EXTFragmentDensityMap.Name; KHRGetPhysicalDeviceProperties2.Name ] - - [] - type VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM = + type VkDisplayPlaneInfo2KHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public fragmentDensityMapOffset : VkBool32 + val mutable public mode : KHRDisplay.VkDisplayModeKHR + val mutable public planeIndex : uint32 - new(pNext : nativeint, fragmentDensityMapOffset : VkBool32) = + new(pNext : nativeint, mode : KHRDisplay.VkDisplayModeKHR, planeIndex : uint32) = { - sType = 1000425000u + sType = 1000121003u pNext = pNext - fragmentDensityMapOffset = fragmentDensityMapOffset + mode = mode + planeIndex = planeIndex } - new(fragmentDensityMapOffset : VkBool32) = - VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM(Unchecked.defaultof, fragmentDensityMapOffset) + new(mode : KHRDisplay.VkDisplayModeKHR, planeIndex : uint32) = + VkDisplayPlaneInfo2KHR(Unchecked.defaultof, mode, planeIndex) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.fragmentDensityMapOffset = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.mode = Unchecked.defaultof && x.planeIndex = Unchecked.defaultof static member Empty = - VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM(Unchecked.defaultof, Unchecked.defaultof) + VkDisplayPlaneInfo2KHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "fragmentDensityMapOffset = %A" x.fragmentDensityMapOffset - ] |> sprintf "VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM { %s }" + sprintf "mode = %A" x.mode + sprintf "planeIndex = %A" x.planeIndex + ] |> sprintf "VkDisplayPlaneInfo2KHR { %s }" end [] - type VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM = + type VkDisplayPlaneProperties2KHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public fragmentDensityOffsetGranularity : VkExtent2D + val mutable public displayPlaneProperties : KHRDisplay.VkDisplayPlanePropertiesKHR - new(pNext : nativeint, fragmentDensityOffsetGranularity : VkExtent2D) = + new(pNext : nativeint, displayPlaneProperties : KHRDisplay.VkDisplayPlanePropertiesKHR) = { - sType = 1000425001u + sType = 1000121001u pNext = pNext - fragmentDensityOffsetGranularity = fragmentDensityOffsetGranularity + displayPlaneProperties = displayPlaneProperties } - new(fragmentDensityOffsetGranularity : VkExtent2D) = - VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM(Unchecked.defaultof, fragmentDensityOffsetGranularity) + new(displayPlaneProperties : KHRDisplay.VkDisplayPlanePropertiesKHR) = + VkDisplayPlaneProperties2KHR(Unchecked.defaultof, displayPlaneProperties) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.fragmentDensityOffsetGranularity = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.displayPlaneProperties = Unchecked.defaultof static member Empty = - VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM(Unchecked.defaultof, Unchecked.defaultof) + VkDisplayPlaneProperties2KHR(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "fragmentDensityOffsetGranularity = %A" x.fragmentDensityOffsetGranularity - ] |> sprintf "VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM { %s }" + sprintf "displayPlaneProperties = %A" x.displayPlaneProperties + ] |> sprintf "VkDisplayPlaneProperties2KHR { %s }" end [] - type VkSubpassFragmentDensityMapOffsetEndInfoQCOM = + type VkDisplayProperties2KHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public fragmentDensityOffsetCount : uint32 - val mutable public pFragmentDensityOffsets : nativeptr + val mutable public displayProperties : KHRDisplay.VkDisplayPropertiesKHR - new(pNext : nativeint, fragmentDensityOffsetCount : uint32, pFragmentDensityOffsets : nativeptr) = + new(pNext : nativeint, displayProperties : KHRDisplay.VkDisplayPropertiesKHR) = { - sType = 1000425002u + sType = 1000121000u pNext = pNext - fragmentDensityOffsetCount = fragmentDensityOffsetCount - pFragmentDensityOffsets = pFragmentDensityOffsets + displayProperties = displayProperties } - new(fragmentDensityOffsetCount : uint32, pFragmentDensityOffsets : nativeptr) = - VkSubpassFragmentDensityMapOffsetEndInfoQCOM(Unchecked.defaultof, fragmentDensityOffsetCount, pFragmentDensityOffsets) + new(displayProperties : KHRDisplay.VkDisplayPropertiesKHR) = + VkDisplayProperties2KHR(Unchecked.defaultof, displayProperties) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.fragmentDensityOffsetCount = Unchecked.defaultof && x.pFragmentDensityOffsets = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.displayProperties = Unchecked.defaultof static member Empty = - VkSubpassFragmentDensityMapOffsetEndInfoQCOM(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + VkDisplayProperties2KHR(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "fragmentDensityOffsetCount = %A" x.fragmentDensityOffsetCount - sprintf "pFragmentDensityOffsets = %A" x.pFragmentDensityOffsets - ] |> sprintf "VkSubpassFragmentDensityMapOffsetEndInfoQCOM { %s }" + sprintf "displayProperties = %A" x.displayProperties + ] |> sprintf "VkDisplayProperties2KHR { %s }" end - [] - module EnumExtensions = - type VkImageCreateFlags with - static member inline FragmentDensityMapOffsetBitQcom = unbox 0x00008000 - - -module QCOMRenderPassShaderResolve = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_QCOM_render_pass_shader_resolve" - let Number = 172 - - - [] - module EnumExtensions = - type VkSubpassDescriptionFlags with - static member inline FragmentRegionBitQcom = unbox 0x00000004 - static member inline ShaderResolveBitQcom = unbox 0x00000008 - + module VkRaw = + [] + type VkGetPhysicalDeviceDisplayProperties2KHRDel = delegate of VkPhysicalDevice * nativeptr * nativeptr -> VkResult + [] + type VkGetPhysicalDeviceDisplayPlaneProperties2KHRDel = delegate of VkPhysicalDevice * nativeptr * nativeptr -> VkResult + [] + type VkGetDisplayModeProperties2KHRDel = delegate of VkPhysicalDevice * KHRDisplay.VkDisplayKHR * nativeptr * nativeptr -> VkResult + [] + type VkGetDisplayPlaneCapabilities2KHRDel = delegate of VkPhysicalDevice * nativeptr * nativeptr -> VkResult -module QCOMRenderPassStoreOps = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_QCOM_render_pass_store_ops" - let Number = 302 + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRGetDisplayProperties2") + static let s_vkGetPhysicalDeviceDisplayProperties2KHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceDisplayProperties2KHR" + static let s_vkGetPhysicalDeviceDisplayPlaneProperties2KHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceDisplayPlaneProperties2KHR" + static let s_vkGetDisplayModeProperties2KHRDel = VkRaw.vkImportInstanceDelegate "vkGetDisplayModeProperties2KHR" + static let s_vkGetDisplayPlaneCapabilities2KHRDel = VkRaw.vkImportInstanceDelegate "vkGetDisplayPlaneCapabilities2KHR" + static do Report.End(3) |> ignore + static member vkGetPhysicalDeviceDisplayProperties2KHR = s_vkGetPhysicalDeviceDisplayProperties2KHRDel + static member vkGetPhysicalDeviceDisplayPlaneProperties2KHR = s_vkGetPhysicalDeviceDisplayPlaneProperties2KHRDel + static member vkGetDisplayModeProperties2KHR = s_vkGetDisplayModeProperties2KHRDel + static member vkGetDisplayPlaneCapabilities2KHR = s_vkGetDisplayPlaneCapabilities2KHRDel + let vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice : VkPhysicalDevice, pPropertyCount : nativeptr, pProperties : nativeptr) = Loader.vkGetPhysicalDeviceDisplayProperties2KHR.Invoke(physicalDevice, pPropertyCount, pProperties) + let vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice : VkPhysicalDevice, pPropertyCount : nativeptr, pProperties : nativeptr) = Loader.vkGetPhysicalDeviceDisplayPlaneProperties2KHR.Invoke(physicalDevice, pPropertyCount, pProperties) + let vkGetDisplayModeProperties2KHR(physicalDevice : VkPhysicalDevice, display : KHRDisplay.VkDisplayKHR, pPropertyCount : nativeptr, pProperties : nativeptr) = Loader.vkGetDisplayModeProperties2KHR.Invoke(physicalDevice, display, pPropertyCount, pProperties) + let vkGetDisplayPlaneCapabilities2KHR(physicalDevice : VkPhysicalDevice, pDisplayPlaneInfo : nativeptr, pCapabilities : nativeptr) = Loader.vkGetDisplayPlaneCapabilities2KHR.Invoke(physicalDevice, pDisplayPlaneInfo, pCapabilities) +module KHRPortabilityEnumeration = + let Type = ExtensionType.Instance + let Name = "VK_KHR_portability_enumeration" + let Number = 395 [] module EnumExtensions = - type VkAttachmentStoreOp with - static member inline NoneQcom = unbox 1000301000 - - -module QCOMRenderPassTransform = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRSurface - open KHRSwapchain - let Name = "VK_QCOM_render_pass_transform" - let Number = 283 + type VkInstanceCreateFlags with + static member inline EnumeratePortabilityBitKhr = unbox 0x00000001 - let Required = [ KHRSurface.Name; KHRSwapchain.Name ] +/// Requires Vulkan11, KHRGetSurfaceCapabilities2. +module KHRSurfaceProtectedCapabilities = + let Type = ExtensionType.Instance + let Name = "VK_KHR_surface_protected_capabilities" + let Number = 240 [] - type VkCommandBufferInheritanceRenderPassTransformInfoQCOM = + type VkSurfaceProtectedCapabilitiesKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public transform : VkSurfaceTransformFlagsKHR - val mutable public renderArea : VkRect2D + val mutable public supportsProtected : VkBool32 - new(pNext : nativeint, transform : VkSurfaceTransformFlagsKHR, renderArea : VkRect2D) = + new(pNext : nativeint, supportsProtected : VkBool32) = { - sType = 1000282000u + sType = 1000239000u pNext = pNext - transform = transform - renderArea = renderArea + supportsProtected = supportsProtected } - new(transform : VkSurfaceTransformFlagsKHR, renderArea : VkRect2D) = - VkCommandBufferInheritanceRenderPassTransformInfoQCOM(Unchecked.defaultof, transform, renderArea) + new(supportsProtected : VkBool32) = + VkSurfaceProtectedCapabilitiesKHR(Unchecked.defaultof, supportsProtected) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.transform = Unchecked.defaultof && x.renderArea = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.supportsProtected = Unchecked.defaultof static member Empty = - VkCommandBufferInheritanceRenderPassTransformInfoQCOM(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkSurfaceProtectedCapabilitiesKHR(Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "transform = %A" x.transform - sprintf "renderArea = %A" x.renderArea - ] |> sprintf "VkCommandBufferInheritanceRenderPassTransformInfoQCOM { %s }" + sprintf "supportsProtected = %A" x.supportsProtected + ] |> sprintf "VkSurfaceProtectedCapabilitiesKHR { %s }" end + + +/// Requires KHRSurface. +module KHRWaylandSurface = + let Type = ExtensionType.Instance + let Name = "VK_KHR_wayland_surface" + let Number = 7 + [] - type VkRenderPassTransformBeginInfoQCOM = + type VkWaylandSurfaceCreateInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public transform : VkSurfaceTransformFlagsKHR + val mutable public flags : VkWaylandSurfaceCreateFlagsKHR + val mutable public display : nativeptr + val mutable public surface : nativeptr - new(pNext : nativeint, transform : VkSurfaceTransformFlagsKHR) = + new(pNext : nativeint, flags : VkWaylandSurfaceCreateFlagsKHR, display : nativeptr, surface : nativeptr) = { - sType = 1000282001u + sType = 1000006000u pNext = pNext - transform = transform + flags = flags + display = display + surface = surface } - new(transform : VkSurfaceTransformFlagsKHR) = - VkRenderPassTransformBeginInfoQCOM(Unchecked.defaultof, transform) + new(flags : VkWaylandSurfaceCreateFlagsKHR, display : nativeptr, surface : nativeptr) = + VkWaylandSurfaceCreateInfoKHR(Unchecked.defaultof, flags, display, surface) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.transform = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.display = Unchecked.defaultof> && x.surface = Unchecked.defaultof> static member Empty = - VkRenderPassTransformBeginInfoQCOM(Unchecked.defaultof, Unchecked.defaultof) + VkWaylandSurfaceCreateInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "transform = %A" x.transform - ] |> sprintf "VkRenderPassTransformBeginInfoQCOM { %s }" + sprintf "flags = %A" x.flags + sprintf "display = %A" x.display + sprintf "surface = %A" x.surface + ] |> sprintf "VkWaylandSurfaceCreateInfoKHR { %s }" end - [] - module EnumExtensions = - type VkRenderPassCreateFlags with - static member inline TransformBitQcom = unbox 0x00000002 - - -module QCOMRotatedCopyCommands = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRCopyCommands2 - open KHRSurface - open KHRSwapchain - let Name = "VK_QCOM_rotated_copy_commands" - let Number = 334 + module VkRaw = + [] + type VkCreateWaylandSurfaceKHRDel = delegate of VkInstance * nativeptr * nativeptr * nativeptr -> VkResult + [] + type VkGetPhysicalDeviceWaylandPresentationSupportKHRDel = delegate of VkPhysicalDevice * uint32 * nativeptr -> VkBool32 - let Required = [ KHRCopyCommands2.Name; KHRSwapchain.Name ] + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRWaylandSurface") + static let s_vkCreateWaylandSurfaceKHRDel = VkRaw.vkImportInstanceDelegate "vkCreateWaylandSurfaceKHR" + static let s_vkGetPhysicalDeviceWaylandPresentationSupportKHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceWaylandPresentationSupportKHR" + static do Report.End(3) |> ignore + static member vkCreateWaylandSurfaceKHR = s_vkCreateWaylandSurfaceKHRDel + static member vkGetPhysicalDeviceWaylandPresentationSupportKHR = s_vkGetPhysicalDeviceWaylandPresentationSupportKHRDel + let vkCreateWaylandSurfaceKHR(instance : VkInstance, pCreateInfo : nativeptr, pAllocator : nativeptr, pSurface : nativeptr) = Loader.vkCreateWaylandSurfaceKHR.Invoke(instance, pCreateInfo, pAllocator, pSurface) + let vkGetPhysicalDeviceWaylandPresentationSupportKHR(physicalDevice : VkPhysicalDevice, queueFamilyIndex : uint32, display : nativeptr) = Loader.vkGetPhysicalDeviceWaylandPresentationSupportKHR.Invoke(physicalDevice, queueFamilyIndex, display) +/// Requires KHRSurface. +module KHRXcbSurface = + let Type = ExtensionType.Instance + let Name = "VK_KHR_xcb_surface" + let Number = 6 [] - type VkCopyCommandTransformInfoQCOM = + type VkXcbSurfaceCreateInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public transform : VkSurfaceTransformFlagsKHR + val mutable public flags : VkXcbSurfaceCreateFlagsKHR + val mutable public connection : nativeptr + val mutable public window : nativeint - new(pNext : nativeint, transform : VkSurfaceTransformFlagsKHR) = + new(pNext : nativeint, flags : VkXcbSurfaceCreateFlagsKHR, connection : nativeptr, window : nativeint) = { - sType = 1000333000u + sType = 1000005000u pNext = pNext - transform = transform + flags = flags + connection = connection + window = window } - new(transform : VkSurfaceTransformFlagsKHR) = - VkCopyCommandTransformInfoQCOM(Unchecked.defaultof, transform) + new(flags : VkXcbSurfaceCreateFlagsKHR, connection : nativeptr, window : nativeint) = + VkXcbSurfaceCreateInfoKHR(Unchecked.defaultof, flags, connection, window) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.transform = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.connection = Unchecked.defaultof> && x.window = Unchecked.defaultof static member Empty = - VkCopyCommandTransformInfoQCOM(Unchecked.defaultof, Unchecked.defaultof) + VkXcbSurfaceCreateInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "transform = %A" x.transform - ] |> sprintf "VkCopyCommandTransformInfoQCOM { %s }" + sprintf "flags = %A" x.flags + sprintf "connection = %A" x.connection + sprintf "window = %A" x.window + ] |> sprintf "VkXcbSurfaceCreateInfoKHR { %s }" end + module VkRaw = + [] + type VkCreateXcbSurfaceKHRDel = delegate of VkInstance * nativeptr * nativeptr * nativeptr -> VkResult + [] + type VkGetPhysicalDeviceXcbPresentationSupportKHRDel = delegate of VkPhysicalDevice * uint32 * nativeptr * nativeint -> VkBool32 -module QNXScreenSurface = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRSurface - let Name = "VK_QNX_screen_surface" - let Number = 379 - - let Required = [ KHRSurface.Name ] + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRXcbSurface") + static let s_vkCreateXcbSurfaceKHRDel = VkRaw.vkImportInstanceDelegate "vkCreateXcbSurfaceKHR" + static let s_vkGetPhysicalDeviceXcbPresentationSupportKHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceXcbPresentationSupportKHR" + static do Report.End(3) |> ignore + static member vkCreateXcbSurfaceKHR = s_vkCreateXcbSurfaceKHRDel + static member vkGetPhysicalDeviceXcbPresentationSupportKHR = s_vkGetPhysicalDeviceXcbPresentationSupportKHRDel + let vkCreateXcbSurfaceKHR(instance : VkInstance, pCreateInfo : nativeptr, pAllocator : nativeptr, pSurface : nativeptr) = Loader.vkCreateXcbSurfaceKHR.Invoke(instance, pCreateInfo, pAllocator, pSurface) + let vkGetPhysicalDeviceXcbPresentationSupportKHR(physicalDevice : VkPhysicalDevice, queueFamilyIndex : uint32, connection : nativeptr, visual_id : nativeint) = Loader.vkGetPhysicalDeviceXcbPresentationSupportKHR.Invoke(physicalDevice, queueFamilyIndex, connection, visual_id) +/// Requires KHRSurface. +module KHRXlibSurface = + let Type = ExtensionType.Instance + let Name = "VK_KHR_xlib_surface" + let Number = 5 [] - type VkScreenSurfaceCreateInfoQNX = + type VkXlibSurfaceCreateInfoKHR = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public flags : VkScreenSurfaceCreateFlagsQNX - val mutable public context : nativeptr - val mutable public window : nativeptr + val mutable public flags : VkXlibSurfaceCreateFlagsKHR + val mutable public dpy : nativeptr + val mutable public window : nativeint - new(pNext : nativeint, flags : VkScreenSurfaceCreateFlagsQNX, context : nativeptr, window : nativeptr) = + new(pNext : nativeint, flags : VkXlibSurfaceCreateFlagsKHR, dpy : nativeptr, window : nativeint) = { - sType = 1000378000u + sType = 1000004000u pNext = pNext flags = flags - context = context + dpy = dpy window = window } - new(flags : VkScreenSurfaceCreateFlagsQNX, context : nativeptr, window : nativeptr) = - VkScreenSurfaceCreateInfoQNX(Unchecked.defaultof, flags, context, window) + new(flags : VkXlibSurfaceCreateFlagsKHR, dpy : nativeptr, window : nativeint) = + VkXlibSurfaceCreateInfoKHR(Unchecked.defaultof, flags, dpy, window) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.context = Unchecked.defaultof> && x.window = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.dpy = Unchecked.defaultof> && x.window = Unchecked.defaultof static member Empty = - VkScreenSurfaceCreateInfoQNX(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof>) + VkXlibSurfaceCreateInfoKHR(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext sprintf "flags = %A" x.flags - sprintf "context = %A" x.context + sprintf "dpy = %A" x.dpy sprintf "window = %A" x.window - ] |> sprintf "VkScreenSurfaceCreateInfoQNX { %s }" + ] |> sprintf "VkXlibSurfaceCreateInfoKHR { %s }" end module VkRaw = [] - type VkCreateScreenSurfaceQNXDel = delegate of VkInstance * nativeptr * nativeptr * nativeptr -> VkResult + type VkCreateXlibSurfaceKHRDel = delegate of VkInstance * nativeptr * nativeptr * nativeptr -> VkResult [] - type VkGetPhysicalDeviceScreenPresentationSupportQNXDel = delegate of VkPhysicalDevice * uint32 * nativeptr -> VkBool32 + type VkGetPhysicalDeviceXlibPresentationSupportKHRDel = delegate of VkPhysicalDevice * uint32 * nativeptr * nativeint -> VkBool32 [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading QNXScreenSurface") - static let s_vkCreateScreenSurfaceQNXDel = VkRaw.vkImportInstanceDelegate "vkCreateScreenSurfaceQNX" - static let s_vkGetPhysicalDeviceScreenPresentationSupportQNXDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceScreenPresentationSupportQNX" + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading KHRXlibSurface") + static let s_vkCreateXlibSurfaceKHRDel = VkRaw.vkImportInstanceDelegate "vkCreateXlibSurfaceKHR" + static let s_vkGetPhysicalDeviceXlibPresentationSupportKHRDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceXlibPresentationSupportKHR" static do Report.End(3) |> ignore - static member vkCreateScreenSurfaceQNX = s_vkCreateScreenSurfaceQNXDel - static member vkGetPhysicalDeviceScreenPresentationSupportQNX = s_vkGetPhysicalDeviceScreenPresentationSupportQNXDel - let vkCreateScreenSurfaceQNX(instance : VkInstance, pCreateInfo : nativeptr, pAllocator : nativeptr, pSurface : nativeptr) = Loader.vkCreateScreenSurfaceQNX.Invoke(instance, pCreateInfo, pAllocator, pSurface) - let vkGetPhysicalDeviceScreenPresentationSupportQNX(physicalDevice : VkPhysicalDevice, queueFamilyIndex : uint32, window : nativeptr) = Loader.vkGetPhysicalDeviceScreenPresentationSupportQNX.Invoke(physicalDevice, queueFamilyIndex, window) + static member vkCreateXlibSurfaceKHR = s_vkCreateXlibSurfaceKHRDel + static member vkGetPhysicalDeviceXlibPresentationSupportKHR = s_vkGetPhysicalDeviceXlibPresentationSupportKHRDel + let vkCreateXlibSurfaceKHR(instance : VkInstance, pCreateInfo : nativeptr, pAllocator : nativeptr, pSurface : nativeptr) = Loader.vkCreateXlibSurfaceKHR.Invoke(instance, pCreateInfo, pAllocator, pSurface) + let vkGetPhysicalDeviceXlibPresentationSupportKHR(physicalDevice : VkPhysicalDevice, queueFamilyIndex : uint32, dpy : nativeptr, visualID : nativeint) = Loader.vkGetPhysicalDeviceXlibPresentationSupportKHR.Invoke(physicalDevice, queueFamilyIndex, dpy, visualID) -module VALVEDescriptorSetHostMapping = - open Vulkan11 - open Vulkan12 - open Vulkan13 - let Name = "VK_VALVE_descriptor_set_host_mapping" - let Number = 421 +module LUNARGDirectDriverLoading = + let Type = ExtensionType.Instance + let Name = "VK_LUNARG_direct_driver_loading" + let Number = 460 + + type PFN_vkGetInstanceProcAddrLUNARG = nativeint + + type VkDirectDriverLoadingModeLUNARG = + | Exclusive = 0 + | Inclusive = 1 [] - type VkDescriptorSetBindingReferenceVALVE = + type VkDirectDriverLoadingInfoLUNARG = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public descriptorSetLayout : VkDescriptorSetLayout - val mutable public binding : uint32 + val mutable public flags : VkDirectDriverLoadingFlagsLUNARG + val mutable public pfnGetInstanceProcAddr : PFN_vkGetInstanceProcAddrLUNARG - new(pNext : nativeint, descriptorSetLayout : VkDescriptorSetLayout, binding : uint32) = + new(pNext : nativeint, flags : VkDirectDriverLoadingFlagsLUNARG, pfnGetInstanceProcAddr : PFN_vkGetInstanceProcAddrLUNARG) = { - sType = 1000420001u + sType = 1000459000u pNext = pNext - descriptorSetLayout = descriptorSetLayout - binding = binding + flags = flags + pfnGetInstanceProcAddr = pfnGetInstanceProcAddr } - new(descriptorSetLayout : VkDescriptorSetLayout, binding : uint32) = - VkDescriptorSetBindingReferenceVALVE(Unchecked.defaultof, descriptorSetLayout, binding) + new(flags : VkDirectDriverLoadingFlagsLUNARG, pfnGetInstanceProcAddr : PFN_vkGetInstanceProcAddrLUNARG) = + VkDirectDriverLoadingInfoLUNARG(Unchecked.defaultof, flags, pfnGetInstanceProcAddr) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.descriptorSetLayout = Unchecked.defaultof && x.binding = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.pfnGetInstanceProcAddr = Unchecked.defaultof static member Empty = - VkDescriptorSetBindingReferenceVALVE(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkDirectDriverLoadingInfoLUNARG(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "descriptorSetLayout = %A" x.descriptorSetLayout - sprintf "binding = %A" x.binding - ] |> sprintf "VkDescriptorSetBindingReferenceVALVE { %s }" + sprintf "flags = %A" x.flags + sprintf "pfnGetInstanceProcAddr = %A" x.pfnGetInstanceProcAddr + ] |> sprintf "VkDirectDriverLoadingInfoLUNARG { %s }" end [] - type VkDescriptorSetLayoutHostMappingInfoVALVE = + type VkDirectDriverLoadingListLUNARG = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public descriptorOffset : uint64 - val mutable public descriptorSize : uint32 + val mutable public mode : VkDirectDriverLoadingModeLUNARG + val mutable public driverCount : uint32 + val mutable public pDrivers : nativeptr - new(pNext : nativeint, descriptorOffset : uint64, descriptorSize : uint32) = + new(pNext : nativeint, mode : VkDirectDriverLoadingModeLUNARG, driverCount : uint32, pDrivers : nativeptr) = { - sType = 1000420002u + sType = 1000459001u pNext = pNext - descriptorOffset = descriptorOffset - descriptorSize = descriptorSize + mode = mode + driverCount = driverCount + pDrivers = pDrivers } - new(descriptorOffset : uint64, descriptorSize : uint32) = - VkDescriptorSetLayoutHostMappingInfoVALVE(Unchecked.defaultof, descriptorOffset, descriptorSize) + new(mode : VkDirectDriverLoadingModeLUNARG, driverCount : uint32, pDrivers : nativeptr) = + VkDirectDriverLoadingListLUNARG(Unchecked.defaultof, mode, driverCount, pDrivers) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.descriptorOffset = Unchecked.defaultof && x.descriptorSize = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.mode = Unchecked.defaultof && x.driverCount = Unchecked.defaultof && x.pDrivers = Unchecked.defaultof> static member Empty = - VkDescriptorSetLayoutHostMappingInfoVALVE(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) + VkDirectDriverLoadingListLUNARG(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "descriptorOffset = %A" x.descriptorOffset - sprintf "descriptorSize = %A" x.descriptorSize - ] |> sprintf "VkDescriptorSetLayoutHostMappingInfoVALVE { %s }" + sprintf "mode = %A" x.mode + sprintf "driverCount = %A" x.driverCount + sprintf "pDrivers = %A" x.pDrivers + ] |> sprintf "VkDirectDriverLoadingListLUNARG { %s }" end + + +/// Requires KHRSurface. +/// Deprecated by EXTMetalSurface. +module MVKIosSurface = + let Type = ExtensionType.Instance + let Name = "VK_MVK_ios_surface" + let Number = 123 + [] - type VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE = + type VkIOSSurfaceCreateInfoMVK = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public descriptorSetHostMapping : VkBool32 + val mutable public flags : VkIOSSurfaceCreateFlagsMVK + val mutable public pView : nativeint - new(pNext : nativeint, descriptorSetHostMapping : VkBool32) = + new(pNext : nativeint, flags : VkIOSSurfaceCreateFlagsMVK, pView : nativeint) = { - sType = 1000420000u + sType = 1000122000u pNext = pNext - descriptorSetHostMapping = descriptorSetHostMapping + flags = flags + pView = pView } - new(descriptorSetHostMapping : VkBool32) = - VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE(Unchecked.defaultof, descriptorSetHostMapping) + new(flags : VkIOSSurfaceCreateFlagsMVK, pView : nativeint) = + VkIOSSurfaceCreateInfoMVK(Unchecked.defaultof, flags, pView) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.descriptorSetHostMapping = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.pView = Unchecked.defaultof static member Empty = - VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE(Unchecked.defaultof, Unchecked.defaultof) + VkIOSSurfaceCreateInfoMVK(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "descriptorSetHostMapping = %A" x.descriptorSetHostMapping - ] |> sprintf "VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE { %s }" + sprintf "flags = %A" x.flags + sprintf "pView = %A" x.pView + ] |> sprintf "VkIOSSurfaceCreateInfoMVK { %s }" end module VkRaw = [] - type VkGetDescriptorSetLayoutHostMappingInfoVALVEDel = delegate of VkDevice * nativeptr * nativeptr -> unit - [] - type VkGetDescriptorSetHostMappingVALVEDel = delegate of VkDevice * VkDescriptorSet * nativeptr -> unit + type VkCreateIOSSurfaceMVKDel = delegate of VkInstance * nativeptr * nativeptr * nativeptr -> VkResult [] - type private Loader<'d> private() = - static do Report.Begin(3, "[Vulkan] loading VALVEDescriptorSetHostMapping") - static let s_vkGetDescriptorSetLayoutHostMappingInfoVALVEDel = VkRaw.vkImportInstanceDelegate "vkGetDescriptorSetLayoutHostMappingInfoVALVE" - static let s_vkGetDescriptorSetHostMappingVALVEDel = VkRaw.vkImportInstanceDelegate "vkGetDescriptorSetHostMappingVALVE" + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading MVKIosSurface") + static let s_vkCreateIOSSurfaceMVKDel = VkRaw.vkImportInstanceDelegate "vkCreateIOSSurfaceMVK" static do Report.End(3) |> ignore - static member vkGetDescriptorSetLayoutHostMappingInfoVALVE = s_vkGetDescriptorSetLayoutHostMappingInfoVALVEDel - static member vkGetDescriptorSetHostMappingVALVE = s_vkGetDescriptorSetHostMappingVALVEDel - let vkGetDescriptorSetLayoutHostMappingInfoVALVE(device : VkDevice, pBindingReference : nativeptr, pHostMapping : nativeptr) = Loader.vkGetDescriptorSetLayoutHostMappingInfoVALVE.Invoke(device, pBindingReference, pHostMapping) - let vkGetDescriptorSetHostMappingVALVE(device : VkDevice, descriptorSet : VkDescriptorSet, ppData : nativeptr) = Loader.vkGetDescriptorSetHostMappingVALVE.Invoke(device, descriptorSet, ppData) - -module VALVEMutableDescriptorType = - open Vulkan11 - open Vulkan12 - open Vulkan13 - open KHRGetPhysicalDeviceProperties2 - open KHRMaintenance3 - let Name = "VK_VALVE_mutable_descriptor_type" - let Number = 352 - - let Required = [ KHRMaintenance3.Name ] + static member vkCreateIOSSurfaceMVK = s_vkCreateIOSSurfaceMVKDel + let vkCreateIOSSurfaceMVK(instance : VkInstance, pCreateInfo : nativeptr, pAllocator : nativeptr, pSurface : nativeptr) = Loader.vkCreateIOSSurfaceMVK.Invoke(instance, pCreateInfo, pAllocator, pSurface) +/// Requires KHRSurface. +/// Deprecated by EXTMetalSurface. +module MVKMacosSurface = + let Type = ExtensionType.Instance + let Name = "VK_MVK_macos_surface" + let Number = 124 [] - type VkMutableDescriptorTypeListVALVE = + type VkMacOSSurfaceCreateInfoMVK = struct - val mutable public descriptorTypeCount : uint32 - val mutable public pDescriptorTypes : nativeptr + val mutable public sType : uint32 + val mutable public pNext : nativeint + val mutable public flags : VkMacOSSurfaceCreateFlagsMVK + val mutable public pView : nativeint - new(descriptorTypeCount : uint32, pDescriptorTypes : nativeptr) = + new(pNext : nativeint, flags : VkMacOSSurfaceCreateFlagsMVK, pView : nativeint) = { - descriptorTypeCount = descriptorTypeCount - pDescriptorTypes = pDescriptorTypes + sType = 1000123000u + pNext = pNext + flags = flags + pView = pView } + new(flags : VkMacOSSurfaceCreateFlagsMVK, pView : nativeint) = + VkMacOSSurfaceCreateInfoMVK(Unchecked.defaultof, flags, pView) + member x.IsEmpty = - x.descriptorTypeCount = Unchecked.defaultof && x.pDescriptorTypes = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.pView = Unchecked.defaultof static member Empty = - VkMutableDescriptorTypeListVALVE(Unchecked.defaultof, Unchecked.defaultof>) + VkMacOSSurfaceCreateInfoMVK(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ - sprintf "descriptorTypeCount = %A" x.descriptorTypeCount - sprintf "pDescriptorTypes = %A" x.pDescriptorTypes - ] |> sprintf "VkMutableDescriptorTypeListVALVE { %s }" + sprintf "sType = %A" x.sType + sprintf "pNext = %A" x.pNext + sprintf "flags = %A" x.flags + sprintf "pView = %A" x.pView + ] |> sprintf "VkMacOSSurfaceCreateInfoMVK { %s }" end + + module VkRaw = + [] + type VkCreateMacOSSurfaceMVKDel = delegate of VkInstance * nativeptr * nativeptr * nativeptr -> VkResult + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading MVKMacosSurface") + static let s_vkCreateMacOSSurfaceMVKDel = VkRaw.vkImportInstanceDelegate "vkCreateMacOSSurfaceMVK" + static do Report.End(3) |> ignore + static member vkCreateMacOSSurfaceMVK = s_vkCreateMacOSSurfaceMVKDel + let vkCreateMacOSSurfaceMVK(instance : VkInstance, pCreateInfo : nativeptr, pAllocator : nativeptr, pSurface : nativeptr) = Loader.vkCreateMacOSSurfaceMVK.Invoke(instance, pCreateInfo, pAllocator, pSurface) + +/// Requires KHRSurface. +module NNViSurface = + let Type = ExtensionType.Instance + let Name = "VK_NN_vi_surface" + let Number = 63 + [] - type VkMutableDescriptorTypeCreateInfoVALVE = + type VkViSurfaceCreateInfoNN = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public mutableDescriptorTypeListCount : uint32 - val mutable public pMutableDescriptorTypeLists : nativeptr + val mutable public flags : VkViSurfaceCreateFlagsNN + val mutable public window : nativeint - new(pNext : nativeint, mutableDescriptorTypeListCount : uint32, pMutableDescriptorTypeLists : nativeptr) = + new(pNext : nativeint, flags : VkViSurfaceCreateFlagsNN, window : nativeint) = { - sType = 1000351002u + sType = 1000062000u pNext = pNext - mutableDescriptorTypeListCount = mutableDescriptorTypeListCount - pMutableDescriptorTypeLists = pMutableDescriptorTypeLists + flags = flags + window = window } - new(mutableDescriptorTypeListCount : uint32, pMutableDescriptorTypeLists : nativeptr) = - VkMutableDescriptorTypeCreateInfoVALVE(Unchecked.defaultof, mutableDescriptorTypeListCount, pMutableDescriptorTypeLists) + new(flags : VkViSurfaceCreateFlagsNN, window : nativeint) = + VkViSurfaceCreateInfoNN(Unchecked.defaultof, flags, window) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.mutableDescriptorTypeListCount = Unchecked.defaultof && x.pMutableDescriptorTypeLists = Unchecked.defaultof> + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.window = Unchecked.defaultof static member Empty = - VkMutableDescriptorTypeCreateInfoVALVE(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>) + VkViSurfaceCreateInfoNN(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "mutableDescriptorTypeListCount = %A" x.mutableDescriptorTypeListCount - sprintf "pMutableDescriptorTypeLists = %A" x.pMutableDescriptorTypeLists - ] |> sprintf "VkMutableDescriptorTypeCreateInfoVALVE { %s }" + sprintf "flags = %A" x.flags + sprintf "window = %A" x.window + ] |> sprintf "VkViSurfaceCreateInfoNN { %s }" end + + module VkRaw = + [] + type VkCreateViSurfaceNNDel = delegate of VkInstance * nativeptr * nativeptr * nativeptr -> VkResult + + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading NNViSurface") + static let s_vkCreateViSurfaceNNDel = VkRaw.vkImportInstanceDelegate "vkCreateViSurfaceNN" + static do Report.End(3) |> ignore + static member vkCreateViSurfaceNN = s_vkCreateViSurfaceNNDel + let vkCreateViSurfaceNN(instance : VkInstance, pCreateInfo : nativeptr, pAllocator : nativeptr, pSurface : nativeptr) = Loader.vkCreateViSurfaceNN.Invoke(instance, pCreateInfo, pAllocator, pSurface) + +/// Requires KHRSurface. +module QNXScreenSurface = + let Type = ExtensionType.Instance + let Name = "VK_QNX_screen_surface" + let Number = 379 + [] - type VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE = + type VkScreenSurfaceCreateInfoQNX = struct val mutable public sType : uint32 val mutable public pNext : nativeint - val mutable public mutableDescriptorType : VkBool32 + val mutable public flags : VkScreenSurfaceCreateFlagsQNX + val mutable public context : nativeptr + val mutable public window : nativeptr - new(pNext : nativeint, mutableDescriptorType : VkBool32) = + new(pNext : nativeint, flags : VkScreenSurfaceCreateFlagsQNX, context : nativeptr, window : nativeptr) = { - sType = 1000351000u + sType = 1000378000u pNext = pNext - mutableDescriptorType = mutableDescriptorType + flags = flags + context = context + window = window } - new(mutableDescriptorType : VkBool32) = - VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE(Unchecked.defaultof, mutableDescriptorType) + new(flags : VkScreenSurfaceCreateFlagsQNX, context : nativeptr, window : nativeptr) = + VkScreenSurfaceCreateInfoQNX(Unchecked.defaultof, flags, context, window) member x.IsEmpty = - x.pNext = Unchecked.defaultof && x.mutableDescriptorType = Unchecked.defaultof + x.pNext = Unchecked.defaultof && x.flags = Unchecked.defaultof && x.context = Unchecked.defaultof> && x.window = Unchecked.defaultof> static member Empty = - VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE(Unchecked.defaultof, Unchecked.defaultof) + VkScreenSurfaceCreateInfoQNX(Unchecked.defaultof, Unchecked.defaultof, Unchecked.defaultof>, Unchecked.defaultof>) override x.ToString() = String.concat "; " [ sprintf "sType = %A" x.sType sprintf "pNext = %A" x.pNext - sprintf "mutableDescriptorType = %A" x.mutableDescriptorType - ] |> sprintf "VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE { %s }" + sprintf "flags = %A" x.flags + sprintf "context = %A" x.context + sprintf "window = %A" x.window + ] |> sprintf "VkScreenSurfaceCreateInfoQNX { %s }" end - [] - module EnumExtensions = - type VkDescriptorPoolCreateFlags with - static member inline HostOnlyBitValve = unbox 0x00000004 - type VkDescriptorSetLayoutCreateFlags with - static member inline HostOnlyPoolBitValve = unbox 0x00000004 - type VkDescriptorType with - static member inline MutableValve = unbox 1000351000 + module VkRaw = + [] + type VkCreateScreenSurfaceQNXDel = delegate of VkInstance * nativeptr * nativeptr * nativeptr -> VkResult + [] + type VkGetPhysicalDeviceScreenPresentationSupportQNXDel = delegate of VkPhysicalDevice * uint32 * nativeptr -> VkBool32 + [] + type private Loader<'T> private() = + static do Report.Begin(3, "[Vulkan] loading QNXScreenSurface") + static let s_vkCreateScreenSurfaceQNXDel = VkRaw.vkImportInstanceDelegate "vkCreateScreenSurfaceQNX" + static let s_vkGetPhysicalDeviceScreenPresentationSupportQNXDel = VkRaw.vkImportInstanceDelegate "vkGetPhysicalDeviceScreenPresentationSupportQNX" + static do Report.End(3) |> ignore + static member vkCreateScreenSurfaceQNX = s_vkCreateScreenSurfaceQNXDel + static member vkGetPhysicalDeviceScreenPresentationSupportQNX = s_vkGetPhysicalDeviceScreenPresentationSupportQNXDel + let vkCreateScreenSurfaceQNX(instance : VkInstance, pCreateInfo : nativeptr, pAllocator : nativeptr, pSurface : nativeptr) = Loader.vkCreateScreenSurfaceQNX.Invoke(instance, pCreateInfo, pAllocator, pSurface) + let vkGetPhysicalDeviceScreenPresentationSupportQNX(physicalDevice : VkPhysicalDevice, queueFamilyIndex : uint32, window : nativeptr) = Loader.vkGetPhysicalDeviceScreenPresentationSupportQNX.Invoke(physicalDevice, queueFamilyIndex, window) diff --git a/src/Aardvark.Rendering.Vulkan.Wrapper/vk.xml b/src/Aardvark.Rendering.Vulkan.Wrapper/vk.xml index fc336223..9a7cfb46 100644 --- a/src/Aardvark.Rendering.Vulkan.Wrapper/vk.xml +++ b/src/Aardvark.Rendering.Vulkan.Wrapper/vk.xml @@ -1,40043 +1,26867 @@ - - Copyright 2015-2022 The Khronos Group Inc. + +Copyright 2015-2024 The Khronos Group Inc. - SPDX-License-Identifier: Apache-2.0 OR MIT - +SPDX-License-Identifier: Apache-2.0 OR MIT + - - This file, vk.xml, is the Vulkan API Registry. It is a critically important - and normative part of the Vulkan Specification, including a canonical - machine-readable definition of the API, parameter and member validation - language incorporated into the Specification and reference pages, and other - material which is registered by Khronos, such as tags used by extension and - layer authors. The authoritative public version of vk.xml is maintained in - the default branch (currently named main) of the Khronos Vulkan GitHub - project. The authoritative private version is maintained in the default - branch of the member gitlab server. - + +This file, vk.xml, is the Vulkan API Registry. It is a critically important +and normative part of the Vulkan Specification, including a canonical +machine-readable definition of the API, parameter and member validation +language incorporated into the Specification and reference pages, and other +material which is registered by Khronos, such as tags used by extension and +layer authors. The authoritative public version of vk.xml is maintained in +the default branch (currently named main) of the Khronos Vulkan GitHub +project. The authoritative private version is maintained in the default +branch of the member gitlab server. + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - #include "vk_platform.h" + + #include "vk_platform.h" - WSI extensions + WSI extensions - - - - - - - - - - - In the current header structure, each platform's interfaces - are confined to a platform-specific header (vulkan_xlib.h, - vulkan_win32.h, etc.). These headers are not self-contained, - and should not include native headers (X11/Xlib.h, - windows.h, etc.). Code should either include vulkan.h after - defining the appropriate VK_USE_PLATFORM_platform - macros, or include the required native headers prior to - explicitly including the corresponding platform header. + + + + + + + + + + + + + In the current header structure, each platform's interfaces + are confined to a platform-specific header (vulkan_xlib.h, + vulkan_win32.h, etc.). These headers are not self-contained, + and should not include native headers (X11/Xlib.h, + windows.h, etc.). Code should either include vulkan.h after + defining the appropriate VK_USE_PLATFORM_platform + macros, or include the required native headers prior to + explicitly including the corresponding platform header. - To accomplish this, the dependencies of native types require - native headers, but the XML defines the content for those - native headers as empty. The actual native header includes - can be restored by modifying the native header tags above - to #include the header file in the 'name' attribute. - + To accomplish this, the dependencies of native types require + native headers, but the XML defines the content for those + native headers as empty. The actual native header includes + can be restored by modifying the native header tags above + to #include the header file in the 'name' attribute. + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - // DEPRECATED: This define is deprecated. VK_MAKE_API_VERSION should be used instead. - #define VK_MAKE_VERSION(major, minor, patch) \ - ((((uint32_t)(major)) << 22) | (((uint32_t)(minor)) << 12) | ((uint32_t)(patch))) - - - // DEPRECATED: This define is deprecated. VK_API_VERSION_MAJOR should be used instead. - #define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22) - - - // DEPRECATED: This define is deprecated. VK_API_VERSION_MINOR should be used instead. - #define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3FFU) - - - // DEPRECATED: This define is deprecated. VK_API_VERSION_PATCH should be used instead. - #define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU) - + // DEPRECATED: This define is deprecated. VK_MAKE_API_VERSION should be used instead. +#define VK_MAKE_VERSION(major, minor, patch) \ + ((((uint32_t)(major)) << 22U) | (((uint32_t)(minor)) << 12U) | ((uint32_t)(patch))) + // DEPRECATED: This define is deprecated. VK_API_VERSION_MAJOR should be used instead. +#define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22U) + // DEPRECATED: This define is deprecated. VK_API_VERSION_MINOR should be used instead. +#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12U) & 0x3FFU) + // DEPRECATED: This define is deprecated. VK_API_VERSION_PATCH should be used instead. +#define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU) - - #define VK_MAKE_API_VERSION(variant, major, minor, patch) \ - ((((uint32_t)(variant)) << 29) | (((uint32_t)(major)) << 22) | (((uint32_t)(minor)) << 12) | ((uint32_t)(patch))) - - - #define VK_API_VERSION_VARIANT(version) ((uint32_t)(version) >> 29) - - - #define VK_API_VERSION_MAJOR(version) (((uint32_t)(version) >> 22) & 0x7FU) - - - #define VK_API_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3FFU) - - - #define VK_API_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU) - + #define VK_MAKE_API_VERSION(variant, major, minor, patch) \ + ((((uint32_t)(variant)) << 29U) | (((uint32_t)(major)) << 22U) | (((uint32_t)(minor)) << 12U) | ((uint32_t)(patch))) + #define VK_API_VERSION_VARIANT(version) ((uint32_t)(version) >> 29U) + #define VK_API_VERSION_MAJOR(version) (((uint32_t)(version) >> 22U) & 0x7FU) + #define VK_API_VERSION_MINOR(version) (((uint32_t)(version) >> 12U) & 0x3FFU) + #define VK_API_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU) - - // DEPRECATED: This define has been removed. Specific version defines (e.g. VK_API_VERSION_1_0), or the VK_MAKE_VERSION macro, should be used instead. - //#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 0) // Patch version should always be set to 0 - - - // Vulkan 1.0 version number - #define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)// Patch version should always be set to 0 - - - // Vulkan 1.1 version number - #define VK_API_VERSION_1_1 VK_MAKE_API_VERSION(0, 1, 1, 0)// Patch version should always be set to 0 - - - // Vulkan 1.2 version number - #define VK_API_VERSION_1_2 VK_MAKE_API_VERSION(0, 1, 2, 0)// Patch version should always be set to 0 - - - // Vulkan 1.3 version number - #define VK_API_VERSION_1_3 VK_MAKE_API_VERSION(0, 1, 3, 0)// Patch version should always be set to 0 - - - // Version of this file - #define VK_HEADER_VERSION 221 - - - // Complete version of this file - #define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION) - + // Vulkan SC variant number +#define VKSC_API_VARIANT 1 - - #define VK_DEFINE_HANDLE(object) typedef struct object##_T* object; - + // DEPRECATED: This define has been removed. Specific version defines (e.g. VK_API_VERSION_1_0), or the VK_MAKE_VERSION macro, should be used instead. +//#define VK_API_VERSION VK_MAKE_API_VERSION(0, 1, 0, 0) // Patch version should always be set to 0 + // Vulkan 1.0 version number +#define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)// Patch version should always be set to 0 + // Vulkan 1.1 version number +#define VK_API_VERSION_1_1 VK_MAKE_API_VERSION(0, 1, 1, 0)// Patch version should always be set to 0 + // Vulkan 1.2 version number +#define VK_API_VERSION_1_2 VK_MAKE_API_VERSION(0, 1, 2, 0)// Patch version should always be set to 0 + // Vulkan 1.3 version number +#define VK_API_VERSION_1_3 VK_MAKE_API_VERSION(0, 1, 3, 0)// Patch version should always be set to 0 + // Vulkan SC 1.0 version number +#define VKSC_API_VERSION_1_0 VK_MAKE_API_VERSION(VKSC_API_VARIANT, 1, 0, 0)// Patch version should always be set to 0 - - #ifndef VK_USE_64_BIT_PTR_DEFINES - #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) - #define VK_USE_64_BIT_PTR_DEFINES 1 - #else - #define VK_USE_64_BIT_PTR_DEFINES 0 - #endif - #endif - - - #ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE - #if (VK_USE_64_BIT_PTR_DEFINES==1) - #if (defined(__cplusplus) && (__cplusplus >= 201103L)) || (defined(_MSVC_LANG) && (_MSVC_LANG >= 201103L)) - #define VK_NULL_HANDLE nullptr - #else - #define VK_NULL_HANDLE ((void*)0) - #endif - #else - #define VK_NULL_HANDLE 0ULL - #endif - #endif - #ifndef VK_NULL_HANDLE - #define VK_NULL_HANDLE 0 - #endif - - - #ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE - #if (VK_USE_64_BIT_PTR_DEFINES==1) - #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object; - #else - #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object; - #endif - #endif - + // Version of this file +#define VK_HEADER_VERSION 282 + // Complete version of this file +#define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION) + // Version of this file +#define VK_HEADER_VERSION 14 + // Complete version of this file +#define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(VKSC_API_VARIANT, 1, 0, VK_HEADER_VERSION) - - struct ANativeWindow; - - - struct AHardwareBuffer; - - - #ifdef __OBJC__ - @class CAMetalLayer; - #else - typedef void CAMetalLayer; - #endif - - - #ifdef __OBJC__ - @protocol MTLDevice; - typedef id<MTLDevice> MTLDevice_id; - #else - typedef void* MTLDevice_id; - #endif - - - #ifdef __OBJC__ - @protocol MTLCommandQueue; - typedef id<MTLCommandQueue> MTLCommandQueue_id; - #else - typedef void* MTLCommandQueue_id; - #endif - - - #ifdef __OBJC__ - @protocol MTLBuffer; - typedef id<MTLBuffer> MTLBuffer_id; - #else - typedef void* MTLBuffer_id; - #endif - - - #ifdef __OBJC__ - @protocol MTLTexture; - typedef id<MTLTexture> MTLTexture_id; - #else - typedef void* MTLTexture_id; - #endif - - - #ifdef __OBJC__ - @protocol MTLSharedEvent; - typedef id<MTLSharedEvent> MTLSharedEvent_id; - #else - typedef void* MTLSharedEvent_id; - #endif - - - typedef struct __IOSurface* IOSurfaceRef; - + +#define VK_DEFINE_HANDLE(object) typedef struct object##_T* object; + +#define VK_DEFINE_HANDLE(object) typedef struct object##_T* (object); - - typedef uint32_t VkSampleMask; - - - typedef uint32_t VkBool32; - - - typedef uint32_t VkFlags; - - - typedef uint64_t VkFlags64; - - - typedef uint64_t VkDeviceSize; - - - typedef uint64_t VkDeviceAddress; - + +#ifndef VK_USE_64_BIT_PTR_DEFINES + #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) || (defined(__riscv) && __riscv_xlen == 64) + #define VK_USE_64_BIT_PTR_DEFINES 1 + #else + #define VK_USE_64_BIT_PTR_DEFINES 0 + #endif +#endif + +#ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE + #if (VK_USE_64_BIT_PTR_DEFINES==1) + #if (defined(__cplusplus) && (__cplusplus >= 201103L)) || (defined(_MSVC_LANG) && (_MSVC_LANG >= 201103L)) + #define VK_NULL_HANDLE nullptr + #else + #define VK_NULL_HANDLE ((void*)0) + #endif + #else + #define VK_NULL_HANDLE 0ULL + #endif +#endif +#ifndef VK_NULL_HANDLE + #define VK_NULL_HANDLE 0 +#endif + +#ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE + #if (VK_USE_64_BIT_PTR_DEFINES==1) + #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object; + #else + #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object; + #endif +#endif + +#ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE + #if (VK_USE_64_BIT_PTR_DEFINES==1) + #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *(object); + #else + #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t (object); + #endif +#endif - Basic C types, pulled in via vk_platform.h - - - - - - - - - - - - - - + struct ANativeWindow; + struct AHardwareBuffer; + #ifdef __OBJC__ +@class CAMetalLayer; +#else +typedef void CAMetalLayer; +#endif + #ifdef __OBJC__ +@protocol MTLDevice; +typedef __unsafe_unretained id<MTLDevice> MTLDevice_id; +#else +typedef void* MTLDevice_id; +#endif + #ifdef __OBJC__ +@protocol MTLCommandQueue; +typedef __unsafe_unretained id<MTLCommandQueue> MTLCommandQueue_id; +#else +typedef void* MTLCommandQueue_id; +#endif + #ifdef __OBJC__ +@protocol MTLBuffer; +typedef __unsafe_unretained id<MTLBuffer> MTLBuffer_id; +#else +typedef void* MTLBuffer_id; +#endif + #ifdef __OBJC__ +@protocol MTLTexture; +typedef __unsafe_unretained id<MTLTexture> MTLTexture_id; +#else +typedef void* MTLTexture_id; +#endif + #ifdef __OBJC__ +@protocol MTLSharedEvent; +typedef __unsafe_unretained id<MTLSharedEvent> MTLSharedEvent_id; +#else +typedef void* MTLSharedEvent_id; +#endif + typedef struct __IOSurface* IOSurfaceRef; - Bitmask types - - typedef VkFlags VkFramebufferCreateFlags; - - - typedef VkFlags VkQueryPoolCreateFlags; - - - typedef VkFlags VkRenderPassCreateFlags; - - - typedef VkFlags VkSamplerCreateFlags; - - - typedef VkFlags VkPipelineLayoutCreateFlags; - - - typedef VkFlags VkPipelineCacheCreateFlags; - - - typedef VkFlags VkPipelineDepthStencilStateCreateFlags; - - - typedef VkFlags VkPipelineDynamicStateCreateFlags; - - - typedef VkFlags VkPipelineColorBlendStateCreateFlags; - - - typedef VkFlags VkPipelineMultisampleStateCreateFlags; - - - typedef VkFlags VkPipelineRasterizationStateCreateFlags; - - - typedef VkFlags VkPipelineViewportStateCreateFlags; - - - typedef VkFlags VkPipelineTessellationStateCreateFlags; - - - typedef VkFlags VkPipelineInputAssemblyStateCreateFlags; - - - typedef VkFlags VkPipelineVertexInputStateCreateFlags; - - - typedef VkFlags VkPipelineShaderStageCreateFlags; - - - typedef VkFlags VkDescriptorSetLayoutCreateFlags; - - - typedef VkFlags VkBufferViewCreateFlags; - - - typedef VkFlags VkInstanceCreateFlags; - - - typedef VkFlags VkDeviceCreateFlags; - - - typedef VkFlags VkDeviceQueueCreateFlags; - - - typedef VkFlags VkQueueFlags; - - - typedef VkFlags VkMemoryPropertyFlags; - - - typedef VkFlags VkMemoryHeapFlags; - - - typedef VkFlags VkAccessFlags; - - - typedef VkFlags VkBufferUsageFlags; - - - typedef VkFlags VkBufferCreateFlags; - - - typedef VkFlags VkShaderStageFlags; - - - typedef VkFlags VkImageUsageFlags; - - - typedef VkFlags VkImageCreateFlags; - - - typedef VkFlags VkImageViewCreateFlags; - - - typedef VkFlags VkPipelineCreateFlags; - - - typedef VkFlags VkColorComponentFlags; - - - typedef VkFlags VkFenceCreateFlags; - - - typedef VkFlags VkSemaphoreCreateFlags; - - - typedef VkFlags VkFormatFeatureFlags; - - - typedef VkFlags VkQueryControlFlags; - - - typedef VkFlags VkQueryResultFlags; - - - typedef VkFlags VkShaderModuleCreateFlags; - - - typedef VkFlags VkEventCreateFlags; - - - typedef VkFlags VkCommandPoolCreateFlags; - - - typedef VkFlags VkCommandPoolResetFlags; - - - typedef VkFlags VkCommandBufferResetFlags; - - - typedef VkFlags VkCommandBufferUsageFlags; - - - typedef VkFlags VkQueryPipelineStatisticFlags; - - - typedef VkFlags VkMemoryMapFlags; - - - typedef VkFlags VkImageAspectFlags; - - - typedef VkFlags VkSparseMemoryBindFlags; - - - typedef VkFlags VkSparseImageFormatFlags; - - - typedef VkFlags VkSubpassDescriptionFlags; - - - typedef VkFlags VkPipelineStageFlags; - - - typedef VkFlags VkSampleCountFlags; - - - typedef VkFlags VkAttachmentDescriptionFlags; - - - typedef VkFlags VkStencilFaceFlags; - - - typedef VkFlags VkCullModeFlags; - - - typedef VkFlags VkDescriptorPoolCreateFlags; - - - typedef VkFlags VkDescriptorPoolResetFlags; - - - typedef VkFlags VkDependencyFlags; - - - typedef VkFlags VkSubgroupFeatureFlags; - - - typedef VkFlags VkIndirectCommandsLayoutUsageFlagsNV; - - - typedef VkFlags VkIndirectStateFlagsNV; - - - typedef VkFlags VkGeometryFlagsKHR; - - - - typedef VkFlags VkGeometryInstanceFlagsKHR; - - - - typedef VkFlags VkBuildAccelerationStructureFlagsKHR; - - - - typedef VkFlags VkPrivateDataSlotCreateFlags; - - - - typedef VkFlags VkAccelerationStructureCreateFlagsKHR; - - - typedef VkFlags VkDescriptorUpdateTemplateCreateFlags; - - - - typedef VkFlags VkPipelineCreationFeedbackFlags; - - - - typedef VkFlags VkPerformanceCounterDescriptionFlagsKHR; - - - typedef VkFlags VkAcquireProfilingLockFlagsKHR; - - - typedef VkFlags VkSemaphoreWaitFlags; - - - - typedef VkFlags VkPipelineCompilerControlFlagsAMD; - - - typedef VkFlags VkShaderCorePropertiesFlagsAMD; - - - typedef VkFlags VkDeviceDiagnosticsConfigFlagsNV; - - - typedef VkFlags64 VkAccessFlags2; - - - - typedef VkFlags64 VkPipelineStageFlags2; - - - - typedef VkFlags VkAccelerationStructureMotionInfoFlagsNV; - - - typedef VkFlags VkAccelerationStructureMotionInstanceFlagsNV; - - - typedef VkFlags64 VkFormatFeatureFlags2; - - - - typedef VkFlags VkRenderingFlags; - - + typedef uint32_t VkSampleMask; + typedef uint32_t VkBool32; + typedef uint32_t VkFlags; + typedef uint64_t VkFlags64; + typedef uint64_t VkDeviceSize; + typedef uint64_t VkDeviceAddress; + Basic C types, pulled in via vk_platform.h + + + + + + + + + + + + + + - WSI extensions - - typedef VkFlags VkCompositeAlphaFlagsKHR; - - - typedef VkFlags VkDisplayPlaneAlphaFlagsKHR; - - - typedef VkFlags VkSurfaceTransformFlagsKHR; - - - typedef VkFlags VkSwapchainCreateFlagsKHR; - - - typedef VkFlags VkDisplayModeCreateFlagsKHR; - - - typedef VkFlags VkDisplaySurfaceCreateFlagsKHR; - - - typedef VkFlags VkAndroidSurfaceCreateFlagsKHR; - - - typedef VkFlags VkViSurfaceCreateFlagsNN; - - - typedef VkFlags VkWaylandSurfaceCreateFlagsKHR; - - - typedef VkFlags VkWin32SurfaceCreateFlagsKHR; - - - typedef VkFlags VkXlibSurfaceCreateFlagsKHR; - - - typedef VkFlags VkXcbSurfaceCreateFlagsKHR; - - - typedef VkFlags VkDirectFBSurfaceCreateFlagsEXT; - - - typedef VkFlags VkIOSSurfaceCreateFlagsMVK; - - - typedef VkFlags VkMacOSSurfaceCreateFlagsMVK; - - - typedef VkFlags VkMetalSurfaceCreateFlagsEXT; - - - typedef VkFlags VkImagePipeSurfaceCreateFlagsFUCHSIA; - - - typedef VkFlags VkStreamDescriptorSurfaceCreateFlagsGGP; - - - typedef VkFlags VkHeadlessSurfaceCreateFlagsEXT; - - - typedef VkFlags VkScreenSurfaceCreateFlagsQNX; - - - typedef VkFlags VkPeerMemoryFeatureFlags; - - - - typedef VkFlags VkMemoryAllocateFlags; - - - - typedef VkFlags VkDeviceGroupPresentModeFlagsKHR; - + Bitmask types + typedef VkFlags VkFramebufferCreateFlags; + typedef VkFlags VkQueryPoolCreateFlags; + typedef VkFlags VkRenderPassCreateFlags; + typedef VkFlags VkSamplerCreateFlags; + typedef VkFlags VkPipelineLayoutCreateFlags; + typedef VkFlags VkPipelineCacheCreateFlags; + typedef VkFlags VkPipelineDepthStencilStateCreateFlags; + typedef VkFlags VkPipelineDepthStencilStateCreateFlags; + typedef VkFlags VkPipelineDynamicStateCreateFlags; + typedef VkFlags VkPipelineColorBlendStateCreateFlags; + typedef VkFlags VkPipelineColorBlendStateCreateFlags; + typedef VkFlags VkPipelineMultisampleStateCreateFlags; + typedef VkFlags VkPipelineRasterizationStateCreateFlags; + typedef VkFlags VkPipelineViewportStateCreateFlags; + typedef VkFlags VkPipelineTessellationStateCreateFlags; + typedef VkFlags VkPipelineInputAssemblyStateCreateFlags; + typedef VkFlags VkPipelineVertexInputStateCreateFlags; + typedef VkFlags VkPipelineShaderStageCreateFlags; + typedef VkFlags VkDescriptorSetLayoutCreateFlags; + typedef VkFlags VkBufferViewCreateFlags; + typedef VkFlags VkInstanceCreateFlags; + typedef VkFlags VkDeviceCreateFlags; + typedef VkFlags VkDeviceQueueCreateFlags; + typedef VkFlags VkQueueFlags; + typedef VkFlags VkMemoryPropertyFlags; + typedef VkFlags VkMemoryHeapFlags; + typedef VkFlags VkAccessFlags; + typedef VkFlags VkBufferUsageFlags; + typedef VkFlags VkBufferCreateFlags; + typedef VkFlags VkShaderStageFlags; + typedef VkFlags VkImageUsageFlags; + typedef VkFlags VkImageCreateFlags; + typedef VkFlags VkImageViewCreateFlags; + typedef VkFlags VkPipelineCreateFlags; + typedef VkFlags VkColorComponentFlags; + typedef VkFlags VkFenceCreateFlags; + typedef VkFlags VkSemaphoreCreateFlags; + typedef VkFlags VkFormatFeatureFlags; + typedef VkFlags VkQueryControlFlags; + typedef VkFlags VkQueryResultFlags; + typedef VkFlags VkShaderModuleCreateFlags; + typedef VkFlags VkEventCreateFlags; + typedef VkFlags VkCommandPoolCreateFlags; + typedef VkFlags VkCommandPoolResetFlags; + typedef VkFlags VkCommandBufferResetFlags; + typedef VkFlags VkCommandBufferUsageFlags; + typedef VkFlags VkQueryPipelineStatisticFlags; + typedef VkFlags VkMemoryMapFlags; + typedef VkFlags VkMemoryUnmapFlagsKHR; + typedef VkFlags VkImageAspectFlags; + typedef VkFlags VkSparseMemoryBindFlags; + typedef VkFlags VkSparseImageFormatFlags; + typedef VkFlags VkSubpassDescriptionFlags; + typedef VkFlags VkPipelineStageFlags; + typedef VkFlags VkSampleCountFlags; + typedef VkFlags VkAttachmentDescriptionFlags; + typedef VkFlags VkStencilFaceFlags; + typedef VkFlags VkCullModeFlags; + typedef VkFlags VkDescriptorPoolCreateFlags; + typedef VkFlags VkDescriptorPoolResetFlags; + typedef VkFlags VkDependencyFlags; + typedef VkFlags VkSubgroupFeatureFlags; + typedef VkFlags VkIndirectCommandsLayoutUsageFlagsNV; + typedef VkFlags VkIndirectStateFlagsNV; + typedef VkFlags VkGeometryFlagsKHR; + + typedef VkFlags VkGeometryInstanceFlagsKHR; + + typedef VkFlags VkBuildAccelerationStructureFlagsKHR; + + typedef VkFlags VkPrivateDataSlotCreateFlags; + + typedef VkFlags VkAccelerationStructureCreateFlagsKHR; + typedef VkFlags VkDescriptorUpdateTemplateCreateFlags; + + typedef VkFlags VkPipelineCreationFeedbackFlags; + + typedef VkFlags VkPerformanceCounterDescriptionFlagsKHR; + typedef VkFlags VkAcquireProfilingLockFlagsKHR; + typedef VkFlags VkSemaphoreWaitFlags; + + typedef VkFlags VkPipelineCompilerControlFlagsAMD; + typedef VkFlags VkShaderCorePropertiesFlagsAMD; + typedef VkFlags VkDeviceDiagnosticsConfigFlagsNV; + typedef VkFlags VkRefreshObjectFlagsKHR; + typedef VkFlags64 VkAccessFlags2; + + typedef VkFlags64 VkPipelineStageFlags2; + + typedef VkFlags VkAccelerationStructureMotionInfoFlagsNV; + typedef VkFlags VkAccelerationStructureMotionInstanceFlagsNV; + typedef VkFlags64 VkFormatFeatureFlags2; + + typedef VkFlags VkRenderingFlags; + typedef VkFlags64 VkMemoryDecompressionMethodFlagsNV; + + typedef VkFlags VkBuildMicromapFlagsEXT; + typedef VkFlags VkMicromapCreateFlagsEXT; + typedef VkFlags VkDirectDriverLoadingFlagsLUNARG; + typedef VkFlags64 VkPipelineCreateFlags2KHR; + typedef VkFlags64 VkBufferUsageFlags2KHR; - - typedef VkFlags VkDebugReportFlagsEXT; - - - typedef VkFlags VkCommandPoolTrimFlags; - - - - typedef VkFlags VkExternalMemoryHandleTypeFlagsNV; - - - typedef VkFlags VkExternalMemoryFeatureFlagsNV; - - - typedef VkFlags VkExternalMemoryHandleTypeFlags; - - - - typedef VkFlags VkExternalMemoryFeatureFlags; - - - - typedef VkFlags VkExternalSemaphoreHandleTypeFlags; - - - - typedef VkFlags VkExternalSemaphoreFeatureFlags; - - - - typedef VkFlags VkSemaphoreImportFlags; - - - - typedef VkFlags VkExternalFenceHandleTypeFlags; - - - - typedef VkFlags VkExternalFenceFeatureFlags; - - - - typedef VkFlags VkFenceImportFlags; - - - - typedef VkFlags VkSurfaceCounterFlagsEXT; - - - typedef VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV; - - - typedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT; - - - typedef VkFlags VkPipelineCoverageToColorStateCreateFlagsNV; - - - typedef VkFlags VkPipelineCoverageModulationStateCreateFlagsNV; - - - typedef VkFlags VkPipelineCoverageReductionStateCreateFlagsNV; - - - typedef VkFlags VkValidationCacheCreateFlagsEXT; - - - typedef VkFlags VkDebugUtilsMessageSeverityFlagsEXT; - - - typedef VkFlags VkDebugUtilsMessageTypeFlagsEXT; - - - typedef VkFlags VkDebugUtilsMessengerCreateFlagsEXT; - - - typedef VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT; - - - typedef VkFlags VkDeviceMemoryReportFlagsEXT; - - - typedef VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT; - - - typedef VkFlags VkDescriptorBindingFlags; - - - - typedef VkFlags VkConditionalRenderingFlagsEXT; - - - typedef VkFlags VkResolveModeFlags; - - - - typedef VkFlags VkPipelineRasterizationStateStreamCreateFlagsEXT; - - - typedef VkFlags VkPipelineRasterizationDepthClipStateCreateFlagsEXT; - - - typedef VkFlags VkSwapchainImageUsageFlagsANDROID; - - - typedef VkFlags VkToolPurposeFlags; - - - - typedef VkFlags VkSubmitFlags; - - - - typedef VkFlags VkImageFormatConstraintsFlagsFUCHSIA; - - - typedef VkFlags VkImageConstraintsInfoFlagsFUCHSIA; - - - typedef VkFlags VkGraphicsPipelineLibraryFlagsEXT; - - - typedef VkFlags VkImageCompressionFlagsEXT; - - - typedef VkFlags VkImageCompressionFixedRateFlagsEXT; - - - typedef VkFlags VkExportMetalObjectTypeFlagsEXT; - + WSI extensions + typedef VkFlags VkCompositeAlphaFlagsKHR; + typedef VkFlags VkDisplayPlaneAlphaFlagsKHR; + typedef VkFlags VkSurfaceTransformFlagsKHR; + typedef VkFlags VkSwapchainCreateFlagsKHR; + typedef VkFlags VkDisplayModeCreateFlagsKHR; + typedef VkFlags VkDisplaySurfaceCreateFlagsKHR; + typedef VkFlags VkAndroidSurfaceCreateFlagsKHR; + typedef VkFlags VkViSurfaceCreateFlagsNN; + typedef VkFlags VkWaylandSurfaceCreateFlagsKHR; + typedef VkFlags VkWin32SurfaceCreateFlagsKHR; + typedef VkFlags VkXlibSurfaceCreateFlagsKHR; + typedef VkFlags VkXcbSurfaceCreateFlagsKHR; + typedef VkFlags VkDirectFBSurfaceCreateFlagsEXT; + typedef VkFlags VkIOSSurfaceCreateFlagsMVK; + typedef VkFlags VkMacOSSurfaceCreateFlagsMVK; + typedef VkFlags VkMetalSurfaceCreateFlagsEXT; + typedef VkFlags VkImagePipeSurfaceCreateFlagsFUCHSIA; + typedef VkFlags VkStreamDescriptorSurfaceCreateFlagsGGP; + typedef VkFlags VkHeadlessSurfaceCreateFlagsEXT; + typedef VkFlags VkScreenSurfaceCreateFlagsQNX; + typedef VkFlags VkPeerMemoryFeatureFlags; + + typedef VkFlags VkMemoryAllocateFlags; + + typedef VkFlags VkDeviceGroupPresentModeFlagsKHR; - Video Core extension - - typedef VkFlags VkVideoCodecOperationFlagsKHR; - - - typedef VkFlags VkVideoCapabilityFlagsKHR; - - - typedef VkFlags VkVideoSessionCreateFlagsKHR; - - - typedef VkFlags VkVideoBeginCodingFlagsKHR; - - - typedef VkFlags VkVideoEndCodingFlagsKHR; - - - typedef VkFlags VkVideoCodingQualityPresetFlagsKHR; - - - typedef VkFlags VkVideoCodingControlFlagsKHR; - + typedef VkFlags VkDebugReportFlagsEXT; + typedef VkFlags VkCommandPoolTrimFlags; + + typedef VkFlags VkExternalMemoryHandleTypeFlagsNV; + typedef VkFlags VkExternalMemoryFeatureFlagsNV; + typedef VkFlags VkExternalMemoryHandleTypeFlags; + + typedef VkFlags VkExternalMemoryFeatureFlags; + + typedef VkFlags VkExternalSemaphoreHandleTypeFlags; + + typedef VkFlags VkExternalSemaphoreFeatureFlags; + + typedef VkFlags VkSemaphoreImportFlags; + + typedef VkFlags VkExternalFenceHandleTypeFlags; + + typedef VkFlags VkExternalFenceFeatureFlags; + + typedef VkFlags VkFenceImportFlags; + + typedef VkFlags VkSurfaceCounterFlagsEXT; + typedef VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV; + typedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT; + typedef VkFlags VkPipelineCoverageToColorStateCreateFlagsNV; + typedef VkFlags VkPipelineCoverageModulationStateCreateFlagsNV; + typedef VkFlags VkPipelineCoverageReductionStateCreateFlagsNV; + typedef VkFlags VkValidationCacheCreateFlagsEXT; + typedef VkFlags VkDebugUtilsMessageSeverityFlagsEXT; + typedef VkFlags VkDebugUtilsMessageTypeFlagsEXT; + typedef VkFlags VkDebugUtilsMessengerCreateFlagsEXT; + typedef VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT; + typedef VkFlags VkDeviceMemoryReportFlagsEXT; + typedef VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT; + typedef VkFlags VkDescriptorBindingFlags; + + typedef VkFlags VkConditionalRenderingFlagsEXT; + typedef VkFlags VkResolveModeFlags; + + typedef VkFlags VkPipelineRasterizationStateStreamCreateFlagsEXT; + typedef VkFlags VkPipelineRasterizationDepthClipStateCreateFlagsEXT; + typedef VkFlags VkSwapchainImageUsageFlagsANDROID; + typedef VkFlags VkToolPurposeFlags; + + typedef VkFlags VkSubmitFlags; + + typedef VkFlags VkImageFormatConstraintsFlagsFUCHSIA; + typedef VkFlags VkHostImageCopyFlagsEXT; + typedef VkFlags VkImageConstraintsInfoFlagsFUCHSIA; + typedef VkFlags VkGraphicsPipelineLibraryFlagsEXT; + typedef VkFlags VkImageCompressionFlagsEXT; + typedef VkFlags VkImageCompressionFixedRateFlagsEXT; + typedef VkFlags VkExportMetalObjectTypeFlagsEXT; + typedef VkFlags VkDeviceAddressBindingFlagsEXT; + typedef VkFlags VkOpticalFlowGridSizeFlagsNV; + typedef VkFlags VkOpticalFlowUsageFlagsNV; + typedef VkFlags VkOpticalFlowSessionCreateFlagsNV; + typedef VkFlags VkOpticalFlowExecuteFlagsNV; + typedef VkFlags VkFrameBoundaryFlagsEXT; + typedef VkFlags VkPresentScalingFlagsEXT; + typedef VkFlags VkPresentGravityFlagsEXT; + typedef VkFlags VkShaderCreateFlagsEXT; + typedef VkFlags64 VkPhysicalDeviceSchedulingControlsFlagsARM; - Video Decode Core extension - - typedef VkFlags VkVideoDecodeCapabilityFlagsKHR; - - - typedef VkFlags VkVideoDecodeFlagsKHR; - + Video Core extension + typedef VkFlags VkVideoCodecOperationFlagsKHR; + typedef VkFlags VkVideoCapabilityFlagsKHR; + typedef VkFlags VkVideoSessionCreateFlagsKHR; + typedef VkFlags VkVideoSessionParametersCreateFlagsKHR; + typedef VkFlags VkVideoBeginCodingFlagsKHR; + typedef VkFlags VkVideoEndCodingFlagsKHR; + typedef VkFlags VkVideoCodingControlFlagsKHR; - Video Decode H.264 extension - - typedef VkFlags VkVideoDecodeH264PictureLayoutFlagsEXT; - + Video Decode Core extension + typedef VkFlags VkVideoDecodeUsageFlagsKHR; + typedef VkFlags VkVideoDecodeCapabilityFlagsKHR; + typedef VkFlags VkVideoDecodeFlagsKHR; - Video Encode Core extension - - typedef VkFlags VkVideoEncodeFlagsKHR; - - - typedef VkFlags VkVideoEncodeCapabilityFlagsKHR; - - - typedef VkFlags VkVideoEncodeRateControlFlagsKHR; - - - typedef VkFlags VkVideoEncodeRateControlModeFlagsKHR; - - - typedef VkFlags VkVideoChromaSubsamplingFlagsKHR; - - - typedef VkFlags VkVideoComponentBitDepthFlagsKHR; - + Video Decode H.264 extension + typedef VkFlags VkVideoDecodeH264PictureLayoutFlagsKHR; - Video Encode H.264 extension - - typedef VkFlags VkVideoEncodeH264CapabilityFlagsEXT; - - - typedef VkFlags VkVideoEncodeH264InputModeFlagsEXT; - - - typedef VkFlags VkVideoEncodeH264OutputModeFlagsEXT; - - - typedef VkFlags VkVideoEncodeH264RateControlStructureFlagsEXT; - + Video Encode Core extension + typedef VkFlags VkVideoEncodeFlagsKHR; + typedef VkFlags VkVideoEncodeUsageFlagsKHR; + typedef VkFlags VkVideoEncodeContentFlagsKHR; + typedef VkFlags VkVideoEncodeCapabilityFlagsKHR; + typedef VkFlags VkVideoEncodeFeedbackFlagsKHR; + typedef VkFlags VkVideoEncodeRateControlFlagsKHR; + typedef VkFlags VkVideoEncodeRateControlModeFlagsKHR; + typedef VkFlags VkVideoChromaSubsamplingFlagsKHR; + typedef VkFlags VkVideoComponentBitDepthFlagsKHR; - Video Encode H.265 extension - - typedef VkFlags VkVideoEncodeH265CapabilityFlagsEXT; - - - typedef VkFlags VkVideoEncodeH265InputModeFlagsEXT; - - - typedef VkFlags VkVideoEncodeH265OutputModeFlagsEXT; - - - typedef VkFlags VkVideoEncodeH265RateControlStructureFlagsEXT; - - - typedef VkFlags VkVideoEncodeH265CtbSizeFlagsEXT; - - - typedef VkFlags VkVideoEncodeH265TransformBlockSizeFlagsEXT; - + Video Encode H.264 extension + typedef VkFlags VkVideoEncodeH264CapabilityFlagsKHR; + typedef VkFlags VkVideoEncodeH264StdFlagsKHR; + typedef VkFlags VkVideoEncodeH264RateControlFlagsKHR; - Types which can be void pointers or class pointers, selected at compile time - - VK_DEFINE_HANDLE(VkInstance) - - - VK_DEFINE_HANDLE(VkPhysicalDevice) - - - VK_DEFINE_HANDLE(VkDevice) - - - VK_DEFINE_HANDLE(VkQueue) - - - VK_DEFINE_HANDLE(VkCommandBuffer) - - - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeviceMemory) - - - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool) - - - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer) - - - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferView) - - - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage) - - - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImageView) - - - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule) - - - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipeline) - - - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout) - - - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler) - - - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet) - - - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout) - - - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool) - - - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFence) - - - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphore) - - - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkEvent) - - - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkQueryPool) - - - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer) - - - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass) - - - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache) - - - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNV) - - - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplate) - - - - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSamplerYcbcrConversion) - - - - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkValidationCacheEXT) - - - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureKHR) - - - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureNV) - - - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPerformanceConfigurationINTEL) - - - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferCollectionFUCHSIA) - - - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeferredOperationKHR) - - - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPrivateDataSlot) - - - - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuModuleNVX) - - - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuFunctionNVX) - + Video Encode H.265 extension + typedef VkFlags VkVideoEncodeH265CapabilityFlagsKHR; + typedef VkFlags VkVideoEncodeH265StdFlagsKHR; + typedef VkFlags VkVideoEncodeH265RateControlFlagsKHR; + typedef VkFlags VkVideoEncodeH265CtbSizeFlagsKHR; + typedef VkFlags VkVideoEncodeH265TransformBlockSizeFlagsKHR; - WSI extensions - - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR) - - - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR) - - - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR) - - - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR) - - - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT) - - - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugUtilsMessengerEXT) - + Types which can be void pointers or class pointers, selected at compile time + VK_DEFINE_HANDLE(VkInstance) + VK_DEFINE_HANDLE(VkPhysicalDevice) + VK_DEFINE_HANDLE(VkDevice) + VK_DEFINE_HANDLE(VkQueue) + VK_DEFINE_HANDLE(VkCommandBuffer) + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeviceMemory) + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool) + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer) + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferView) + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage) + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImageView) + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule) + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipeline) + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout) + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler) + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet) + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout) + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool) + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFence) + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphore) + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkEvent) + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkQueryPool) + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer) + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass) + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache) + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNV) + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplate) + + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSamplerYcbcrConversion) + + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkValidationCacheEXT) + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureKHR) + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureNV) + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPerformanceConfigurationINTEL) + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferCollectionFUCHSIA) + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeferredOperationKHR) + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPrivateDataSlot) + + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuModuleNVX) + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuFunctionNVX) + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkOpticalFlowSessionNV) + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkMicromapEXT) + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderEXT) - Video extensions - - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionKHR) - - - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionParametersKHR) - + WSI extensions + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR) + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR) + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR) + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR) + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT) + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugUtilsMessengerEXT) - Types generated from corresponding enums tags below - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + Video extensions + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionKHR) + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionParametersKHR) - Extensions - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + VK_NV_external_sci_sync2 + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphoreSciSyncPoolNV) - WSI extensions - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + Types generated from corresponding enums tags below + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - Enumerated types in the header, but not used by the API - - - - - - + Extensions + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - Video Core extensions - - - - - - - - + WSI extensions + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - Video Decode extensions - - + Enumerated types in the header, but not used by the API + + + + + + - Video H.264 Decode extensions - + Video Core extensions + + + + + + + - Video H.265 Decode extensions + Video Decode extensions + + - Video Encode extensions - - - - + Video H.264 Decode extensions + - Video H.264 Encode extensions - - - - + Video H.265 Decode extensions - Video H.265 Encode extensions - - - - - - + Video Encode extensions + + + + + + + - The PFN_vk*Function types are used by VkAllocationCallbacks below - - typedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)( - void* pUserData, - size_t size, - VkInternalAllocationType allocationType, - VkSystemAllocationScope allocationScope); - - - typedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)( - void* pUserData, - size_t size, - VkInternalAllocationType allocationType, - VkSystemAllocationScope allocationScope); - - - typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)( - void* pUserData, - void* pOriginal, - size_t size, - size_t alignment, - VkSystemAllocationScope allocationScope); - - - typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)( - void* pUserData, - size_t size, - size_t alignment, - VkSystemAllocationScope allocationScope); - - - typedef void (VKAPI_PTR *PFN_vkFreeFunction)( - void* pUserData, - void* pMemory); - + Video H.264 Encode extensions + + + - The PFN_vkVoidFunction type are used by VkGet*ProcAddr below - - typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void); - + Video H.265 Encode extensions + + + + + - The PFN_vkDebugReportCallbackEXT type are used by the DEBUG_REPORT extension - - typedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)( - VkDebugReportFlagsEXT flags, - VkDebugReportObjectTypeEXT objectType, - uint64_t object, - size_t location, - int32_t messageCode, - const char* pLayerPrefix, - const char* pMessage, - void* pUserData); - + The PFN_vk*Function types are used by VkAllocationCallbacks below + typedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)( + void* pUserData, + size_t size, + VkInternalAllocationType allocationType, + VkSystemAllocationScope allocationScope); + typedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)( + void* pUserData, + size_t size, + VkInternalAllocationType allocationType, + VkSystemAllocationScope allocationScope); + typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)( + void* pUserData, + void* pOriginal, + size_t size, + size_t alignment, + VkSystemAllocationScope allocationScope); + typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)( + void* pUserData, + size_t size, + size_t alignment, + VkSystemAllocationScope allocationScope); + typedef void (VKAPI_PTR *PFN_vkFreeFunction)( + void* pUserData, + void* pMemory); - The PFN_vkDebugUtilsMessengerCallbackEXT type are used by the VK_EXT_debug_utils extension - - typedef VkBool32 (VKAPI_PTR *PFN_vkDebugUtilsMessengerCallbackEXT)( - VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, - VkDebugUtilsMessageTypeFlagsEXT messageTypes, - const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData, - void* pUserData); - + The PFN_vkVoidFunction type are used by VkGet*ProcAddr below + typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void); - The PFN_vkDeviceMemoryReportCallbackEXT type is used by the VK_EXT_device_memory_report extension - - typedef void (VKAPI_PTR *PFN_vkDeviceMemoryReportCallbackEXT)( - const VkDeviceMemoryReportCallbackDataEXT* pCallbackData, - void* pUserData); - + The PFN_vkDebugReportCallbackEXT type are used by the DEBUG_REPORT extension + typedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)( + VkDebugReportFlagsEXT flags, + VkDebugReportObjectTypeEXT objectType, + uint64_t object, + size_t location, + int32_t messageCode, + const char* pLayerPrefix, + const char* pMessage, + void* pUserData); - Struct types - - - VkStructureType - sType - - - struct VkBaseOutStructure* pNext - - - - - VkStructureType - sType - - - const struct VkBaseInStructure* pNext - - - - - int32_t - x - - - int32_t - y - - - - - int32_t - x - - - int32_t - y - - - int32_t - z - - - - - uint32_t - width - - - uint32_t - height - - - - - uint32_t - width - - - uint32_t - height - - - uint32_t - depth - - - - - float - x - - - float - y - - - float - width - - - float - height - - - float - minDepth - - - float - maxDepth - - - - - VkOffset2D - offset - - - VkExtent2D - extent - - - - - VkRect2D - rect - - - uint32_t - baseArrayLayer - - - uint32_t - layerCount - - - - - VkComponentSwizzle - r - - - VkComponentSwizzle - g - - - VkComponentSwizzle - b - - - VkComponentSwizzle - a - - - - - uint32_t - apiVersion - - - uint32_t - driverVersion - - - uint32_t - vendorID - - - uint32_t - deviceID - - - VkPhysicalDeviceType - deviceType - - - char deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE] - - - uint8_t pipelineCacheUUID[VK_UUID_SIZE] - - - VkPhysicalDeviceLimits - limits - - - VkPhysicalDeviceSparseProperties - sparseProperties - - - - - char extensionName[VK_MAX_EXTENSION_NAME_SIZE]extension name - - - uint32_t - specVersion - version of the extension specification implemented - - - - - char layerName[VK_MAX_EXTENSION_NAME_SIZE]layer name - - - uint32_t - specVersion - version of the layer specification implemented - - - uint32_t - implementationVersion - build or release version of the layer's library - - - char description[VK_MAX_DESCRIPTION_SIZE]Free-form description of the layer - - - - - VkStructureType - sType - - - const void* pNext - - - const char* pApplicationName - - - uint32_t - applicationVersion - - - const char* pEngineName - - - uint32_t - engineVersion - - - uint32_t - apiVersion - - - - - void* pUserData - - - PFN_vkAllocationFunction - pfnAllocation - - - PFN_vkReallocationFunction - pfnReallocation - - - PFN_vkFreeFunction - pfnFree - - - PFN_vkInternalAllocationNotification - pfnInternalAllocation - - - PFN_vkInternalFreeNotification - pfnInternalFree - - - - - VkStructureType - sType - - - const void* pNext - - - VkDeviceQueueCreateFlags - flags - - - uint32_t - queueFamilyIndex - - - uint32_t - queueCount - - - const float* pQueuePriorities - - - - - VkStructureType - sType - - - const void* pNext - - - VkDeviceCreateFlags - flags - - - uint32_t - queueCreateInfoCount - - - const VkDeviceQueueCreateInfo* pQueueCreateInfos - - - uint32_t - enabledLayerCount - - - const char* const* ppEnabledLayerNamesOrdered list of layer names to be enabled - - - uint32_t - enabledExtensionCount - - - const char* const* ppEnabledExtensionNames - - - const VkPhysicalDeviceFeatures* pEnabledFeatures - - - - - VkStructureType - sType - - - const void* pNext - - - VkInstanceCreateFlags - flags - - - const VkApplicationInfo* pApplicationInfo - - - uint32_t - enabledLayerCount - - - const char* const* ppEnabledLayerNamesOrdered list of layer names to be enabled - - - uint32_t - enabledExtensionCount - - - const char* const* ppEnabledExtensionNamesExtension names to be enabled - - - - - VkQueueFlags - queueFlags - Queue flags - - - uint32_t - queueCount - - - uint32_t - timestampValidBits - - - VkExtent3D - minImageTransferGranularity - Minimum alignment requirement for image transfers - - - - - uint32_t - memoryTypeCount - - - VkMemoryType memoryTypes[VK_MAX_MEMORY_TYPES] - - - uint32_t - memoryHeapCount - - - VkMemoryHeap memoryHeaps[VK_MAX_MEMORY_HEAPS] - - - - - VkStructureType - sType - - - const void* pNext - - - VkDeviceSize - allocationSize - Size of memory allocation - - - uint32_t - memoryTypeIndex - Index of the of the memory type to allocate from - - - - - VkDeviceSize - size - Specified in bytes - - - VkDeviceSize - alignment - Specified in bytes - - - uint32_t - memoryTypeBits - Bitmask of the allowed memory type indices into memoryTypes[] for this object - - - - - VkImageAspectFlags - aspectMask - - - VkExtent3D - imageGranularity - - - VkSparseImageFormatFlags - flags - - - - - VkSparseImageFormatProperties - formatProperties - - - uint32_t - imageMipTailFirstLod - - - VkDeviceSize - imageMipTailSize - Specified in bytes, must be a multiple of sparse block size in bytes / alignment - - - VkDeviceSize - imageMipTailOffset - Specified in bytes, must be a multiple of sparse block size in bytes / alignment - - - VkDeviceSize - imageMipTailStride - Specified in bytes, must be a multiple of sparse block size in bytes / alignment - - - - - VkMemoryPropertyFlags - propertyFlags - Memory properties of this memory type - - - uint32_t - heapIndex - Index of the memory heap allocations of this memory type are taken from - - - - - VkDeviceSize - size - Available memory in the heap - - - VkMemoryHeapFlags - flags - Flags for the heap - - - - - VkStructureType - sType - - - const void* pNext - - - VkDeviceMemory - memory - Mapped memory object - - - VkDeviceSize - offset - Offset within the memory object where the range starts - - - VkDeviceSize - size - Size of the range within the memory object - - - - - VkFormatFeatureFlags - linearTilingFeatures - Format features in case of linear tiling - - - VkFormatFeatureFlags - optimalTilingFeatures - Format features in case of optimal tiling - - - VkFormatFeatureFlags - bufferFeatures - Format features supported by buffers - - - - - VkExtent3D - maxExtent - max image dimensions for this resource type - - - uint32_t - maxMipLevels - max number of mipmap levels for this resource type - - - uint32_t - maxArrayLayers - max array size for this resource type - - - VkSampleCountFlags - sampleCounts - supported sample counts for this resource type - - - VkDeviceSize - maxResourceSize - max size (in bytes) of this resource type - - - - - VkBuffer - buffer - Buffer used for this descriptor slot. - - - VkDeviceSize - offset - Base offset from buffer start in bytes to update in the descriptor set. - - - VkDeviceSize - range - Size in bytes of the buffer resource for this descriptor update. - - - - - VkSampler - sampler - Sampler to write to the descriptor in case it is a SAMPLER or COMBINED_IMAGE_SAMPLER descriptor. Ignored otherwise. - - - VkImageView - imageView - Image view to write to the descriptor in case it is a SAMPLED_IMAGE, STORAGE_IMAGE, COMBINED_IMAGE_SAMPLER, or INPUT_ATTACHMENT descriptor. Ignored otherwise. - - - VkImageLayout - imageLayout - Layout the image is expected to be in when accessed using this descriptor (only used if imageView is not VK_NULL_HANDLE). - - - - - VkStructureType - sType - - - const void* pNext - - - VkDescriptorSet - dstSet - Destination descriptor set - - - uint32_t - dstBinding - Binding within the destination descriptor set to write - - - uint32_t - dstArrayElement - Array element within the destination binding to write - - - uint32_t - descriptorCount - Number of descriptors to write (determines the size of the array pointed by pDescriptors) - - - VkDescriptorType - descriptorType - Descriptor type to write (determines which members of the array pointed by pDescriptors are going to be used) - - - const VkDescriptorImageInfo* pImageInfoSampler, image view, and layout for SAMPLER, COMBINED_IMAGE_SAMPLER, {SAMPLED,STORAGE}_IMAGE, and INPUT_ATTACHMENT descriptor types. - - - const VkDescriptorBufferInfo* pBufferInfoRaw buffer, size, and offset for {UNIFORM,STORAGE}_BUFFER[_DYNAMIC] descriptor types. - - - const VkBufferView* pTexelBufferViewBuffer view to write to the descriptor for {UNIFORM,STORAGE}_TEXEL_BUFFER descriptor types. - - - - - VkStructureType - sType - - - const void* pNext - - - VkDescriptorSet - srcSet - Source descriptor set - - - uint32_t - srcBinding - Binding within the source descriptor set to copy from - - - uint32_t - srcArrayElement - Array element within the source binding to copy from - - - VkDescriptorSet - dstSet - Destination descriptor set - - - uint32_t - dstBinding - Binding within the destination descriptor set to copy to - - - uint32_t - dstArrayElement - Array element within the destination binding to copy to - - - uint32_t - descriptorCount - Number of descriptors to write (determines the size of the array pointed by pDescriptors) - - - - - VkStructureType - sType - - - const void* pNext - - - VkBufferCreateFlags - flags - Buffer creation flags - - - VkDeviceSize - size - Specified in bytes - - - VkBufferUsageFlags - usage - Buffer usage flags - - - VkSharingMode - sharingMode - - - uint32_t - queueFamilyIndexCount - - - const uint32_t* pQueueFamilyIndices - - - - - VkStructureType - sType - - - const void* pNext - - - VkBufferViewCreateFlags - flags - - - VkBuffer - buffer - - - VkFormat - format - Optionally specifies format of elements - - - VkDeviceSize - offset - Specified in bytes - - - VkDeviceSize - range - View size specified in bytes - - - - - VkImageAspectFlags - aspectMask - - - uint32_t - mipLevel - - - uint32_t - arrayLayer - - - - - VkImageAspectFlags - aspectMask - - - uint32_t - mipLevel - - - uint32_t - baseArrayLayer - - - uint32_t - layerCount - - - - - VkImageAspectFlags - aspectMask - - - uint32_t - baseMipLevel - - - uint32_t - levelCount - - - uint32_t - baseArrayLayer - - - uint32_t - layerCount - - - - - VkStructureType - sType - - - const void* pNext - - - VkAccessFlags - srcAccessMask - Memory accesses from the source of the dependency to synchronize - - - VkAccessFlags - dstAccessMask - Memory accesses from the destination of the dependency to synchronize - - - - - VkStructureType - sType - - - const void* pNext - - - VkAccessFlags - srcAccessMask - Memory accesses from the source of the dependency to synchronize - - - VkAccessFlags - dstAccessMask - Memory accesses from the destination of the dependency to synchronize - - - uint32_t - srcQueueFamilyIndex - Queue family to transition ownership from - - - uint32_t - dstQueueFamilyIndex - Queue family to transition ownership to - - - VkBuffer - buffer - Buffer to sync - - - VkDeviceSize - offset - Offset within the buffer to sync - - - VkDeviceSize - size - Amount of bytes to sync - - - - - VkStructureType - sType - - - const void* pNext - - - VkAccessFlags - srcAccessMask - Memory accesses from the source of the dependency to synchronize - - - VkAccessFlags - dstAccessMask - Memory accesses from the destination of the dependency to synchronize - - - VkImageLayout - oldLayout - Current layout of the image - - - VkImageLayout - newLayout - New layout to transition the image to - - - uint32_t - srcQueueFamilyIndex - Queue family to transition ownership from - - - uint32_t - dstQueueFamilyIndex - Queue family to transition ownership to - - - VkImage - image - Image to sync - - - VkImageSubresourceRange - subresourceRange - Subresource range to sync - - - - - VkStructureType - sType - - - const void* pNext - - - VkImageCreateFlags - flags - Image creation flags - - - VkImageType - imageType - - - VkFormat - format - - - VkExtent3D - extent - - - uint32_t - mipLevels - - - uint32_t - arrayLayers - - - VkSampleCountFlagBits - samples - - - VkImageTiling - tiling - - - VkImageUsageFlags - usage - Image usage flags - - - VkSharingMode - sharingMode - Cross-queue-family sharing mode - - - uint32_t - queueFamilyIndexCount - Number of queue families to share across - - - const uint32_t* pQueueFamilyIndicesArray of queue family indices to share across - - - VkImageLayout - initialLayout - Initial image layout for all subresources - - - - - VkDeviceSize - offset - Specified in bytes - - - VkDeviceSize - size - Specified in bytes - - - VkDeviceSize - rowPitch - Specified in bytes - - - VkDeviceSize - arrayPitch - Specified in bytes - - - VkDeviceSize - depthPitch - Specified in bytes - - - - - VkStructureType - sType - - - const void* pNext - - - VkImageViewCreateFlags - flags - - - VkImage - image - - - VkImageViewType - viewType - - - VkFormat - format - - - VkComponentMapping - components - - - VkImageSubresourceRange - subresourceRange - - - - - VkDeviceSize - srcOffset - Specified in bytes - - - VkDeviceSize - dstOffset - Specified in bytes - - - VkDeviceSize - size - Specified in bytes - - - - - VkDeviceSize - resourceOffset - Specified in bytes - - - VkDeviceSize - size - Specified in bytes - - - VkDeviceMemory - memory - - - VkDeviceSize - memoryOffset - Specified in bytes - - - VkSparseMemoryBindFlags - flags - - - - - VkImageSubresource - subresource - - - VkOffset3D - offset - - - VkExtent3D - extent - - - VkDeviceMemory - memory - - - VkDeviceSize - memoryOffset - Specified in bytes - - - VkSparseMemoryBindFlags - flags - - - - - VkBuffer - buffer - - - uint32_t - bindCount - - - const VkSparseMemoryBind* pBinds - - - - - VkImage - image - - - uint32_t - bindCount - - - const VkSparseMemoryBind* pBinds - - - - - VkImage - image - - - uint32_t - bindCount - - - const VkSparseImageMemoryBind* pBinds - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - waitSemaphoreCount - - - const VkSemaphore* pWaitSemaphores - - - uint32_t - bufferBindCount - - - const VkSparseBufferMemoryBindInfo* pBufferBinds - - - uint32_t - imageOpaqueBindCount - - - const VkSparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds - - - uint32_t - imageBindCount - - - const VkSparseImageMemoryBindInfo* pImageBinds - - - uint32_t - signalSemaphoreCount - - - const VkSemaphore* pSignalSemaphores - - - - - VkImageSubresourceLayers - srcSubresource - - - VkOffset3D - srcOffset - Specified in pixels for both compressed and uncompressed images - - - VkImageSubresourceLayers - dstSubresource - - - VkOffset3D - dstOffset - Specified in pixels for both compressed and uncompressed images - - - VkExtent3D - extent - Specified in pixels for both compressed and uncompressed images - - - - - VkImageSubresourceLayers - srcSubresource - - - VkOffset3D srcOffsets[2]Specified in pixels for both compressed and uncompressed images - - - VkImageSubresourceLayers - dstSubresource - - - VkOffset3D dstOffsets[2]Specified in pixels for both compressed and uncompressed images - - - - - VkDeviceSize - bufferOffset - Specified in bytes - - - uint32_t - bufferRowLength - Specified in texels - - - uint32_t - bufferImageHeight - - - VkImageSubresourceLayers - imageSubresource - - - VkOffset3D - imageOffset - Specified in pixels for both compressed and uncompressed images - - - VkExtent3D - imageExtent - Specified in pixels for both compressed and uncompressed images - - - - - VkImageSubresourceLayers - srcSubresource - - - VkOffset3D - srcOffset - - - VkImageSubresourceLayers - dstSubresource - - - VkOffset3D - dstOffset - - - VkExtent3D - extent - - - - - VkStructureType - sType - - - const void* pNextnoautovalidity because this structure can be either an explicit parameter, or passed in a pNext chain - - - VkShaderModuleCreateFlags - flags - - - size_t - codeSize - Specified in bytes - - - const uint32_t* pCodeBinary code of size codeSize - - - - - uint32_t - binding - Binding number for this entry - - - VkDescriptorType - descriptorType - Type of the descriptors in this binding - - - uint32_t - descriptorCount - Number of descriptors in this binding - - - VkShaderStageFlags - stageFlags - Shader stages this binding is visible to - - - const VkSampler* pImmutableSamplersImmutable samplers (used if descriptor type is SAMPLER or COMBINED_IMAGE_SAMPLER, is either NULL or contains count number of elements) - - - - - VkStructureType - sType - - - const void* pNext - - - VkDescriptorSetLayoutCreateFlags - flags - - - uint32_t - bindingCount - Number of bindings in the descriptor set layout - - - const VkDescriptorSetLayoutBinding* pBindingsArray of descriptor set layout bindings - - - - - VkDescriptorType - type - - - uint32_t - descriptorCount - - - - - VkStructureType - sType - - - const void* pNext - - - VkDescriptorPoolCreateFlags - flags - - - uint32_t - maxSets - - - uint32_t - poolSizeCount - - - const VkDescriptorPoolSize* pPoolSizes - - - - - VkStructureType - sType - - - const void* pNext - - - VkDescriptorPool - descriptorPool - - - uint32_t - descriptorSetCount - - - const VkDescriptorSetLayout* pSetLayouts - - - - - uint32_t - constantID - The SpecConstant ID specified in the BIL - - - uint32_t - offset - Offset of the value in the data block - - - size_t - size - Size in bytes of the SpecConstant - - - - - uint32_t - mapEntryCount - Number of entries in the map - - - const VkSpecializationMapEntry* pMapEntriesArray of map entries - - - size_t - dataSize - Size in bytes of pData - - - const void* pDataPointer to SpecConstant data - - - - - VkStructureType - sType - - - const void* pNext - - - VkPipelineShaderStageCreateFlags - flags - - - VkShaderStageFlagBits - stage - Shader stage - - - VkShaderModule - module - Module containing entry point - - - const char* pNameNull-terminated entry point name - - - const VkSpecializationInfo* pSpecializationInfo - - - - - VkStructureType - sType - - - const void* pNext - - - VkPipelineCreateFlags - flags - Pipeline creation flags - - - VkPipelineShaderStageCreateInfo - stage - - - VkPipelineLayout - layout - Interface layout of the pipeline - - - VkPipeline - basePipelineHandle - If VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is nonzero, it specifies the handle of the base pipeline this is a derivative of - - - int32_t - basePipelineIndex - If VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is not -1, it specifies an index into pCreateInfos of the base pipeline this is a derivative of - - - - - uint32_t - binding - Vertex buffer binding id - - - uint32_t - stride - Distance between vertices in bytes (0 = no advancement) - - - VkVertexInputRate - inputRate - The rate at which the vertex data is consumed - - - - - uint32_t - location - location of the shader vertex attrib - - - uint32_t - binding - Vertex buffer binding id - - - VkFormat - format - format of source data - - - uint32_t - offset - Offset of first element in bytes from base of vertex - - - - - VkStructureType - sType - - - const void* pNext - - - VkPipelineVertexInputStateCreateFlags - flags - - - uint32_t - vertexBindingDescriptionCount - number of bindings - - - const VkVertexInputBindingDescription* pVertexBindingDescriptions - - - uint32_t - vertexAttributeDescriptionCount - number of attributes - - - const VkVertexInputAttributeDescription* pVertexAttributeDescriptions - - - - - VkStructureType - sType - - - const void* pNext - - - VkPipelineInputAssemblyStateCreateFlags - flags - - - VkPrimitiveTopology - topology - - - VkBool32 - primitiveRestartEnable - - - - - VkStructureType - sType - - - const void* pNext - - - VkPipelineTessellationStateCreateFlags - flags - - - uint32_t - patchControlPoints - - - - - VkStructureType - sType - - - const void* pNext - - - VkPipelineViewportStateCreateFlags - flags - - - uint32_t - viewportCount - - - const VkViewport* pViewports - - - uint32_t - scissorCount - - - const VkRect2D* pScissors - - - - - VkStructureType - sType - - - const void* pNext - - - VkPipelineRasterizationStateCreateFlags - flags - - - VkBool32 - depthClampEnable - - - VkBool32 - rasterizerDiscardEnable - - - VkPolygonMode - polygonMode - optional (GL45) - - - VkCullModeFlags - cullMode - - - VkFrontFace - frontFace - - - VkBool32 - depthBiasEnable - - - float - depthBiasConstantFactor - - - float - depthBiasClamp - - - float - depthBiasSlopeFactor - - - float - lineWidth - - - - - VkStructureType - sType - - - const void* pNext - - - VkPipelineMultisampleStateCreateFlags - flags - - - VkSampleCountFlagBits - rasterizationSamples - Number of samples used for rasterization - - - VkBool32 - sampleShadingEnable - optional (GL45) - - - float - minSampleShading - optional (GL45) - - - const VkSampleMask* pSampleMaskArray of sampleMask words - - - VkBool32 - alphaToCoverageEnable - - - VkBool32 - alphaToOneEnable - - - - - VkBool32 - blendEnable - - - VkBlendFactor - srcColorBlendFactor - - - VkBlendFactor - dstColorBlendFactor - - - VkBlendOp - colorBlendOp - - - VkBlendFactor - srcAlphaBlendFactor - - - VkBlendFactor - dstAlphaBlendFactor - - - VkBlendOp - alphaBlendOp - - - VkColorComponentFlags - colorWriteMask - - - - - VkStructureType - sType - - - const void* pNext - - - VkPipelineColorBlendStateCreateFlags - flags - - - VkBool32 - logicOpEnable - - - VkLogicOp - logicOp - - - uint32_t - attachmentCount - # of pAttachments - - - const VkPipelineColorBlendAttachmentState* pAttachments - - - float blendConstants[4] - - - - - VkStructureType - sType - - - const void* pNext - - - VkPipelineDynamicStateCreateFlags - flags - - - uint32_t - dynamicStateCount - - - const VkDynamicState* pDynamicStates - - - - - VkStencilOp - failOp - - - VkStencilOp - passOp - - - VkStencilOp - depthFailOp - - - VkCompareOp - compareOp - - - uint32_t - compareMask - - - uint32_t - writeMask - - - uint32_t - reference - - - - - VkStructureType - sType - - - const void* pNext - - - VkPipelineDepthStencilStateCreateFlags - flags - - - VkBool32 - depthTestEnable - - - VkBool32 - depthWriteEnable - - - VkCompareOp - depthCompareOp - - - VkBool32 - depthBoundsTestEnable - optional (depth_bounds_test) - - - VkBool32 - stencilTestEnable - - - VkStencilOpState - front - - - VkStencilOpState - back - - - float - minDepthBounds - - - float - maxDepthBounds - - - - - VkStructureType - sType - - - const void* pNext - - - VkPipelineCreateFlags - flags - Pipeline creation flags - - - uint32_t - stageCount - - - const VkPipelineShaderStageCreateInfo* pStagesOne entry for each active shader stage - - - const VkPipelineVertexInputStateCreateInfo* pVertexInputState - - - const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState - - - const VkPipelineTessellationStateCreateInfo* pTessellationState - - - const VkPipelineViewportStateCreateInfo* pViewportState - - - const VkPipelineRasterizationStateCreateInfo* pRasterizationState - - - const VkPipelineMultisampleStateCreateInfo* pMultisampleState - - - const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState - - - const VkPipelineColorBlendStateCreateInfo* pColorBlendState - - - const VkPipelineDynamicStateCreateInfo* pDynamicState - - - VkPipelineLayout - layout - Interface layout of the pipeline - - - VkRenderPass - renderPass - - - uint32_t - subpass - - - VkPipeline - basePipelineHandle - If VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is nonzero, it specifies the handle of the base pipeline this is a derivative of - - - int32_t - basePipelineIndex - If VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is not -1, it specifies an index into pCreateInfos of the base pipeline this is a derivative of - - - - - VkStructureType - sType - - - const void* pNext - - - VkPipelineCacheCreateFlags - flags - - - size_t - initialDataSize - Size of initial data to populate cache, in bytes - - - const void* pInitialDataInitial data to populate cache - - - - The fields in this structure are non-normative since structure packing is implementation-defined in C. The specification defines the normative layout. - - uint32_t - headerSize - - - VkPipelineCacheHeaderVersion - headerVersion - - - uint32_t - vendorID - - - uint32_t - deviceID - - - uint8_t pipelineCacheUUID[VK_UUID_SIZE] - - - - - VkShaderStageFlags - stageFlags - Which stages use the range - - - uint32_t - offset - Start of the range, in bytes - - - uint32_t - size - Size of the range, in bytes - - - - - VkStructureType - sType - - - const void* pNext - - - VkPipelineLayoutCreateFlags - flags - - - uint32_t - setLayoutCount - Number of descriptor sets interfaced by the pipeline - - - const VkDescriptorSetLayout* pSetLayoutsArray of setCount number of descriptor set layout objects defining the layout of the - - - uint32_t - pushConstantRangeCount - Number of push-constant ranges used by the pipeline - - - const VkPushConstantRange* pPushConstantRangesArray of pushConstantRangeCount number of ranges used by various shader stages - - - - - VkStructureType - sType - - - const void* pNext - - - VkSamplerCreateFlags - flags - - - VkFilter - magFilter - Filter mode for magnification - - - VkFilter - minFilter - Filter mode for minifiation - - - VkSamplerMipmapMode - mipmapMode - Mipmap selection mode - - - VkSamplerAddressMode - addressModeU - - - VkSamplerAddressMode - addressModeV - - - VkSamplerAddressMode - addressModeW - - - float - mipLodBias - - - VkBool32 - anisotropyEnable - - - float - maxAnisotropy - - - VkBool32 - compareEnable - - - VkCompareOp - compareOp - - - float - minLod - - - float - maxLod - - - VkBorderColor - borderColor - - - VkBool32 - unnormalizedCoordinates - - - - - VkStructureType - sType - - - const void* pNext - - - VkCommandPoolCreateFlags - flags - Command pool creation flags - - - uint32_t - queueFamilyIndex - - - - - VkStructureType - sType - - - const void* pNext - - - VkCommandPool - commandPool - - - VkCommandBufferLevel - level - - - uint32_t - commandBufferCount - - - - - VkStructureType - sType - - - const void* pNext - - - VkRenderPass - renderPass - Render pass for secondary command buffers - - - uint32_t - subpass - - - VkFramebuffer - framebuffer - Framebuffer for secondary command buffers - - - VkBool32 - occlusionQueryEnable - Whether this secondary command buffer may be executed during an occlusion query - - - VkQueryControlFlags - queryFlags - Query flags used by this secondary command buffer, if executed during an occlusion query - - - VkQueryPipelineStatisticFlags - pipelineStatistics - Pipeline statistics that may be counted for this secondary command buffer - - - - - VkStructureType - sType - - - const void* pNext - - - VkCommandBufferUsageFlags - flags - Command buffer usage flags - - - const VkCommandBufferInheritanceInfo* pInheritanceInfoPointer to inheritance info for secondary command buffers - - - - - VkStructureType - sType - - - const void* pNext - - - VkRenderPass - renderPass - - - VkFramebuffer - framebuffer - - - VkRect2D - renderArea - - - uint32_t - clearValueCount - - - const VkClearValue* pClearValues - - - - - float float32[4] - - - int32_t int32[4] - - - uint32_t uint32[4] - - - - - float - depth - - - uint32_t - stencil - - - - - VkClearColorValue - color - - - VkClearDepthStencilValue - depthStencil - - - - - VkImageAspectFlags - aspectMask - - - uint32_t - colorAttachment - - - VkClearValue - clearValue - - - - - VkAttachmentDescriptionFlags - flags - - - VkFormat - format - - - VkSampleCountFlagBits - samples - - - VkAttachmentLoadOp - loadOp - Load operation for color or depth data - - - VkAttachmentStoreOp - storeOp - Store operation for color or depth data - - - VkAttachmentLoadOp - stencilLoadOp - Load operation for stencil data - - - VkAttachmentStoreOp - stencilStoreOp - Store operation for stencil data - - - VkImageLayout - initialLayout - - - VkImageLayout - finalLayout - - - - - uint32_t - attachment - - - VkImageLayout - layout - - - - - VkSubpassDescriptionFlags - flags - - - VkPipelineBindPoint - pipelineBindPoint - Must be VK_PIPELINE_BIND_POINT_GRAPHICS for now - - - uint32_t - inputAttachmentCount - - - const VkAttachmentReference* pInputAttachments - - - uint32_t - colorAttachmentCount - - - const VkAttachmentReference* pColorAttachments - - - const VkAttachmentReference* pResolveAttachments - - - const VkAttachmentReference* pDepthStencilAttachment - - - uint32_t - preserveAttachmentCount - - - const uint32_t* pPreserveAttachments - - - - - uint32_t - srcSubpass - - - uint32_t - dstSubpass - - - VkPipelineStageFlags - srcStageMask - - - VkPipelineStageFlags - dstStageMask - - - VkAccessFlags - srcAccessMask - Memory accesses from the source of the dependency to synchronize - - - VkAccessFlags - dstAccessMask - Memory accesses from the destination of the dependency to synchronize - - - VkDependencyFlags - dependencyFlags - - - - - VkStructureType - sType - - - const void* pNext - - - VkRenderPassCreateFlags - flags - - - uint32_t - attachmentCount - - - const VkAttachmentDescription* pAttachments - - - uint32_t - subpassCount - - - const VkSubpassDescription* pSubpasses - - - uint32_t - dependencyCount - - - const VkSubpassDependency* pDependencies - - - - - VkStructureType - sType - - - const void* pNext - - - VkEventCreateFlags - flags - Event creation flags - - - - - VkStructureType - sType - - - const void* pNext - - - VkFenceCreateFlags - flags - Fence creation flags - - - - - VkBool32 - robustBufferAccess - out of bounds buffer accesses are well defined - - - VkBool32 - fullDrawIndexUint32 - full 32-bit range of indices for indexed draw calls - - - VkBool32 - imageCubeArray - image views which are arrays of cube maps - - - VkBool32 - independentBlend - blending operations are controlled per-attachment - - - VkBool32 - geometryShader - geometry stage - - - VkBool32 - tessellationShader - tessellation control and evaluation stage - - - VkBool32 - sampleRateShading - per-sample shading and interpolation - - - VkBool32 - dualSrcBlend - blend operations which take two sources - - - VkBool32 - logicOp - logic operations - - - VkBool32 - multiDrawIndirect - multi draw indirect - - - VkBool32 - drawIndirectFirstInstance - indirect drawing can use non-zero firstInstance - - - VkBool32 - depthClamp - depth clamping - - - VkBool32 - depthBiasClamp - depth bias clamping - - - VkBool32 - fillModeNonSolid - point and wireframe fill modes - - - VkBool32 - depthBounds - depth bounds test - - - VkBool32 - wideLines - lines with width greater than 1 - - - VkBool32 - largePoints - points with size greater than 1 - - - VkBool32 - alphaToOne - the fragment alpha component can be forced to maximum representable alpha value - - - VkBool32 - multiViewport - viewport arrays - - - VkBool32 - samplerAnisotropy - anisotropic sampler filtering - - - VkBool32 - textureCompressionETC2 - ETC texture compression formats - - - VkBool32 - textureCompressionASTC_LDR - ASTC LDR texture compression formats - - - VkBool32 - textureCompressionBC - BC1-7 texture compressed formats - - - VkBool32 - occlusionQueryPrecise - precise occlusion queries returning actual sample counts - - - VkBool32 - pipelineStatisticsQuery - pipeline statistics query - - - VkBool32 - vertexPipelineStoresAndAtomics - stores and atomic ops on storage buffers and images are supported in vertex, tessellation, and geometry stages - - - VkBool32 - fragmentStoresAndAtomics - stores and atomic ops on storage buffers and images are supported in the fragment stage - - - VkBool32 - shaderTessellationAndGeometryPointSize - tessellation and geometry stages can export point size - - - VkBool32 - shaderImageGatherExtended - image gather with run-time values and independent offsets - - - VkBool32 - shaderStorageImageExtendedFormats - the extended set of formats can be used for storage images - - - VkBool32 - shaderStorageImageMultisample - multisample images can be used for storage images - - - VkBool32 - shaderStorageImageReadWithoutFormat - read from storage image does not require format qualifier - - - VkBool32 - shaderStorageImageWriteWithoutFormat - write to storage image does not require format qualifier - - - VkBool32 - shaderUniformBufferArrayDynamicIndexing - arrays of uniform buffers can be accessed with dynamically uniform indices - - - VkBool32 - shaderSampledImageArrayDynamicIndexing - arrays of sampled images can be accessed with dynamically uniform indices - - - VkBool32 - shaderStorageBufferArrayDynamicIndexing - arrays of storage buffers can be accessed with dynamically uniform indices - - - VkBool32 - shaderStorageImageArrayDynamicIndexing - arrays of storage images can be accessed with dynamically uniform indices - - - VkBool32 - shaderClipDistance - clip distance in shaders - - - VkBool32 - shaderCullDistance - cull distance in shaders - - - VkBool32 - shaderFloat64 - 64-bit floats (doubles) in shaders - - - VkBool32 - shaderInt64 - 64-bit integers in shaders - - - VkBool32 - shaderInt16 - 16-bit integers in shaders - - - VkBool32 - shaderResourceResidency - shader can use texture operations that return resource residency information (requires sparseNonResident support) - - - VkBool32 - shaderResourceMinLod - shader can use texture operations that specify minimum resource LOD - - - VkBool32 - sparseBinding - Sparse resources support: Resource memory can be managed at opaque page level rather than object level - - - VkBool32 - sparseResidencyBuffer - Sparse resources support: GPU can access partially resident buffers - - - VkBool32 - sparseResidencyImage2D - Sparse resources support: GPU can access partially resident 2D (non-MSAA non-depth/stencil) images - - - VkBool32 - sparseResidencyImage3D - Sparse resources support: GPU can access partially resident 3D images - - - VkBool32 - sparseResidency2Samples - Sparse resources support: GPU can access partially resident MSAA 2D images with 2 samples - - - VkBool32 - sparseResidency4Samples - Sparse resources support: GPU can access partially resident MSAA 2D images with 4 samples - - - VkBool32 - sparseResidency8Samples - Sparse resources support: GPU can access partially resident MSAA 2D images with 8 samples - - - VkBool32 - sparseResidency16Samples - Sparse resources support: GPU can access partially resident MSAA 2D images with 16 samples - - - VkBool32 - sparseResidencyAliased - Sparse resources support: GPU can correctly access data aliased into multiple locations (opt-in) - - - VkBool32 - variableMultisampleRate - multisample rate must be the same for all pipelines in a subpass - - - VkBool32 - inheritedQueries - Queries may be inherited from primary to secondary command buffers - - - - - VkBool32 - residencyStandard2DBlockShape - Sparse resources support: GPU will access all 2D (single sample) sparse resources using the standard sparse image block shapes (based on pixel format) - - - VkBool32 - residencyStandard2DMultisampleBlockShape - Sparse resources support: GPU will access all 2D (multisample) sparse resources using the standard sparse image block shapes (based on pixel format) - - - VkBool32 - residencyStandard3DBlockShape - Sparse resources support: GPU will access all 3D sparse resources using the standard sparse image block shapes (based on pixel format) - - - VkBool32 - residencyAlignedMipSize - Sparse resources support: Images with mip level dimensions that are NOT a multiple of the sparse image block dimensions will be placed in the mip tail - - - VkBool32 - residencyNonResidentStrict - Sparse resources support: GPU can consistently access non-resident regions of a resource, all reads return as if data is 0, writes are discarded - - - - resource maximum sizes - - uint32_t - maxImageDimension1D - max 1D image dimension - - - uint32_t - maxImageDimension2D - max 2D image dimension - - - uint32_t - maxImageDimension3D - max 3D image dimension - - - uint32_t - maxImageDimensionCube - max cubemap image dimension - - - uint32_t - maxImageArrayLayers - max layers for image arrays - - - uint32_t - maxTexelBufferElements - max texel buffer size (fstexels) - - - uint32_t - maxUniformBufferRange - max uniform buffer range (bytes) - - - uint32_t - maxStorageBufferRange - max storage buffer range (bytes) - - - uint32_t - maxPushConstantsSize - max size of the push constants pool (bytes) - - memory limits - - uint32_t - maxMemoryAllocationCount - max number of device memory allocations supported - - - uint32_t - maxSamplerAllocationCount - max number of samplers that can be allocated on a device - - - VkDeviceSize - bufferImageGranularity - Granularity (in bytes) at which buffers and images can be bound to adjacent memory for simultaneous usage - - - VkDeviceSize - sparseAddressSpaceSize - Total address space available for sparse allocations (bytes) - - descriptor set limits - - uint32_t - maxBoundDescriptorSets - max number of descriptors sets that can be bound to a pipeline - - - uint32_t - maxPerStageDescriptorSamplers - max number of samplers allowed per-stage in a descriptor set - - - uint32_t - maxPerStageDescriptorUniformBuffers - max number of uniform buffers allowed per-stage in a descriptor set - - - uint32_t - maxPerStageDescriptorStorageBuffers - max number of storage buffers allowed per-stage in a descriptor set - - - uint32_t - maxPerStageDescriptorSampledImages - max number of sampled images allowed per-stage in a descriptor set - - - uint32_t - maxPerStageDescriptorStorageImages - max number of storage images allowed per-stage in a descriptor set - - - uint32_t - maxPerStageDescriptorInputAttachments - max number of input attachments allowed per-stage in a descriptor set - - - uint32_t - maxPerStageResources - max number of resources allowed by a single stage - - - uint32_t - maxDescriptorSetSamplers - max number of samplers allowed in all stages in a descriptor set - - - uint32_t - maxDescriptorSetUniformBuffers - max number of uniform buffers allowed in all stages in a descriptor set - - - uint32_t - maxDescriptorSetUniformBuffersDynamic - max number of dynamic uniform buffers allowed in all stages in a descriptor set - - - uint32_t - maxDescriptorSetStorageBuffers - max number of storage buffers allowed in all stages in a descriptor set - - - uint32_t - maxDescriptorSetStorageBuffersDynamic - max number of dynamic storage buffers allowed in all stages in a descriptor set - - - uint32_t - maxDescriptorSetSampledImages - max number of sampled images allowed in all stages in a descriptor set - - - uint32_t - maxDescriptorSetStorageImages - max number of storage images allowed in all stages in a descriptor set - - - uint32_t - maxDescriptorSetInputAttachments - max number of input attachments allowed in all stages in a descriptor set - - vertex stage limits - - uint32_t - maxVertexInputAttributes - max number of vertex input attribute slots - - - uint32_t - maxVertexInputBindings - max number of vertex input binding slots - - - uint32_t - maxVertexInputAttributeOffset - max vertex input attribute offset added to vertex buffer offset - - - uint32_t - maxVertexInputBindingStride - max vertex input binding stride - - - uint32_t - maxVertexOutputComponents - max number of output components written by vertex shader - - tessellation control stage limits - - uint32_t - maxTessellationGenerationLevel - max level supported by tessellation primitive generator - - - uint32_t - maxTessellationPatchSize - max patch size (vertices) - - - uint32_t - maxTessellationControlPerVertexInputComponents - max number of input components per-vertex in TCS - - - uint32_t - maxTessellationControlPerVertexOutputComponents - max number of output components per-vertex in TCS - - - uint32_t - maxTessellationControlPerPatchOutputComponents - max number of output components per-patch in TCS - - - uint32_t - maxTessellationControlTotalOutputComponents - max total number of per-vertex and per-patch output components in TCS - - tessellation evaluation stage limits - - uint32_t - maxTessellationEvaluationInputComponents - max number of input components per vertex in TES - - - uint32_t - maxTessellationEvaluationOutputComponents - max number of output components per vertex in TES - - geometry stage limits - - uint32_t - maxGeometryShaderInvocations - max invocation count supported in geometry shader - - - uint32_t - maxGeometryInputComponents - max number of input components read in geometry stage - - - uint32_t - maxGeometryOutputComponents - max number of output components written in geometry stage - - - uint32_t - maxGeometryOutputVertices - max number of vertices that can be emitted in geometry stage - - - uint32_t - maxGeometryTotalOutputComponents - max total number of components (all vertices) written in geometry stage - - fragment stage limits - - uint32_t - maxFragmentInputComponents - max number of input components read in fragment stage - - - uint32_t - maxFragmentOutputAttachments - max number of output attachments written in fragment stage - - - uint32_t - maxFragmentDualSrcAttachments - max number of output attachments written when using dual source blending - - - uint32_t - maxFragmentCombinedOutputResources - max total number of storage buffers, storage images and output buffers - - compute stage limits - - uint32_t - maxComputeSharedMemorySize - max total storage size of work group local storage (bytes) - - - uint32_t maxComputeWorkGroupCount[3]max num of compute work groups that may be dispatched by a single command (x,y,z) - - - uint32_t - maxComputeWorkGroupInvocations - max total compute invocations in a single local work group - - - uint32_t maxComputeWorkGroupSize[3]max local size of a compute work group (x,y,z) - - - uint32_t - subPixelPrecisionBits - number bits of subpixel precision in screen x and y - - - uint32_t - subTexelPrecisionBits - number bits of precision for selecting texel weights - - - uint32_t - mipmapPrecisionBits - number bits of precision for selecting mipmap weights - - - uint32_t - maxDrawIndexedIndexValue - max index value for indexed draw calls (for 32-bit indices) - - - uint32_t - maxDrawIndirectCount - max draw count for indirect drawing calls - - - float - maxSamplerLodBias - max absolute sampler LOD bias - - - float - maxSamplerAnisotropy - max degree of sampler anisotropy - - - uint32_t - maxViewports - max number of active viewports - - - uint32_t maxViewportDimensions[2]max viewport dimensions (x,y) - - - float viewportBoundsRange[2]viewport bounds range (min,max) - - - uint32_t - viewportSubPixelBits - number bits of subpixel precision for viewport - - - size_t - minMemoryMapAlignment - min required alignment of pointers returned by MapMemory (bytes) - - - VkDeviceSize - minTexelBufferOffsetAlignment - min required alignment for texel buffer offsets (bytes) - - - VkDeviceSize - minUniformBufferOffsetAlignment - min required alignment for uniform buffer sizes and offsets (bytes) - - - VkDeviceSize - minStorageBufferOffsetAlignment - min required alignment for storage buffer offsets (bytes) - - - int32_t - minTexelOffset - min texel offset for OpTextureSampleOffset - - - uint32_t - maxTexelOffset - max texel offset for OpTextureSampleOffset - - - int32_t - minTexelGatherOffset - min texel offset for OpTextureGatherOffset - - - uint32_t - maxTexelGatherOffset - max texel offset for OpTextureGatherOffset - - - float - minInterpolationOffset - furthest negative offset for interpolateAtOffset - - - float - maxInterpolationOffset - furthest positive offset for interpolateAtOffset - - - uint32_t - subPixelInterpolationOffsetBits - number of subpixel bits for interpolateAtOffset - - - uint32_t - maxFramebufferWidth - max width for a framebuffer - - - uint32_t - maxFramebufferHeight - max height for a framebuffer - - - uint32_t - maxFramebufferLayers - max layer count for a layered framebuffer - - - VkSampleCountFlags - framebufferColorSampleCounts - supported color sample counts for a framebuffer - - - VkSampleCountFlags - framebufferDepthSampleCounts - supported depth sample counts for a framebuffer - - - VkSampleCountFlags - framebufferStencilSampleCounts - supported stencil sample counts for a framebuffer - - - VkSampleCountFlags - framebufferNoAttachmentsSampleCounts - supported sample counts for a subpass which uses no attachments - - - uint32_t - maxColorAttachments - max number of color attachments per subpass - - - VkSampleCountFlags - sampledImageColorSampleCounts - supported color sample counts for a non-integer sampled image - - - VkSampleCountFlags - sampledImageIntegerSampleCounts - supported sample counts for an integer image - - - VkSampleCountFlags - sampledImageDepthSampleCounts - supported depth sample counts for a sampled image - - - VkSampleCountFlags - sampledImageStencilSampleCounts - supported stencil sample counts for a sampled image - - - VkSampleCountFlags - storageImageSampleCounts - supported sample counts for a storage image - - - uint32_t - maxSampleMaskWords - max number of sample mask words - - - VkBool32 - timestampComputeAndGraphics - timestamps on graphics and compute queues - - - float - timestampPeriod - number of nanoseconds it takes for timestamp query value to increment by 1 - - - uint32_t - maxClipDistances - max number of clip distances - - - uint32_t - maxCullDistances - max number of cull distances - - - uint32_t - maxCombinedClipAndCullDistances - max combined number of user clipping - - - uint32_t - discreteQueuePriorities - distinct queue priorities available - - - float pointSizeRange[2]range (min,max) of supported point sizes - - - float lineWidthRange[2]range (min,max) of supported line widths - - - float - pointSizeGranularity - granularity of supported point sizes - - - float - lineWidthGranularity - granularity of supported line widths - - - VkBool32 - strictLines - line rasterization follows preferred rules - - - VkBool32 - standardSampleLocations - supports standard sample locations for all supported sample counts - - - VkDeviceSize - optimalBufferCopyOffsetAlignment - optimal offset of buffer copies - - - VkDeviceSize - optimalBufferCopyRowPitchAlignment - optimal pitch of buffer copies - - - VkDeviceSize - nonCoherentAtomSize - minimum size and alignment for non-coherent host-mapped device memory access - - - - - VkStructureType - sType - - - const void* pNext - - - VkSemaphoreCreateFlags - flags - Semaphore creation flags - - - - - VkStructureType - sType - - - const void* pNext - - - VkQueryPoolCreateFlags - flags - - - VkQueryType - queryType - - - uint32_t - queryCount - - - VkQueryPipelineStatisticFlags - pipelineStatistics - Optional - - - - - VkStructureType - sType - - - const void* pNext - - - VkFramebufferCreateFlags - flags - - - VkRenderPass - renderPass - - - uint32_t - attachmentCount - - - const VkImageView* pAttachments - - - uint32_t - width - - - uint32_t - height - - - uint32_t - layers - - - - - uint32_t - vertexCount - - - uint32_t - instanceCount - - - uint32_t - firstVertex - - - uint32_t - firstInstance - - - - - uint32_t - indexCount - - - uint32_t - instanceCount - - - uint32_t - firstIndex - - - int32_t - vertexOffset - - - uint32_t - firstInstance - - - - - uint32_t - x - - - uint32_t - y - - - uint32_t - z - - - - - uint32_t - firstVertex - - - uint32_t - vertexCount - - - - - uint32_t - firstIndex - - - uint32_t - indexCount - - - int32_t - vertexOffset - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - waitSemaphoreCount - - - const VkSemaphore* pWaitSemaphores - - - const VkPipelineStageFlags* pWaitDstStageMask - - - uint32_t - commandBufferCount - - - const VkCommandBuffer* pCommandBuffers - - - uint32_t - signalSemaphoreCount - - - const VkSemaphore* pSignalSemaphores - - - WSI extensions - - - VkDisplayKHR - display - Handle of the display object - - - const char* displayNameName of the display - - - VkExtent2D - physicalDimensions - In millimeters? - - - VkExtent2D - physicalResolution - Max resolution for CRT? - - - VkSurfaceTransformFlagsKHR - supportedTransforms - one or more bits from VkSurfaceTransformFlagsKHR - - - VkBool32 - planeReorderPossible - VK_TRUE if the overlay plane's z-order can be changed on this display. - - - VkBool32 - persistentContent - VK_TRUE if this is a "smart" display that supports self-refresh/internal buffering. - - - - - VkDisplayKHR - currentDisplay - Display the plane is currently associated with. Will be VK_NULL_HANDLE if the plane is not in use. - - - uint32_t - currentStackIndex - Current z-order of the plane. - - - - - VkExtent2D - visibleRegion - Visible scanout region. - - - uint32_t - refreshRate - Number of times per second the display is updated. - - - - - VkDisplayModeKHR - displayMode - Handle of this display mode. - - - VkDisplayModeParametersKHR - parameters - The parameters this mode uses. - - - - - VkStructureType - sType - - - const void* pNext - - - VkDisplayModeCreateFlagsKHR - flags - - - VkDisplayModeParametersKHR - parameters - The parameters this mode uses. - - - - - VkDisplayPlaneAlphaFlagsKHR - supportedAlpha - Types of alpha blending supported, if any. - - - VkOffset2D - minSrcPosition - Does the plane have any position and extent restrictions? - - - VkOffset2D - maxSrcPosition - - - VkExtent2D - minSrcExtent - - - VkExtent2D - maxSrcExtent - - - VkOffset2D - minDstPosition - - - VkOffset2D - maxDstPosition - - - VkExtent2D - minDstExtent - - - VkExtent2D - maxDstExtent - - - - - VkStructureType - sType - - - const void* pNext - - - VkDisplaySurfaceCreateFlagsKHR - flags - - - VkDisplayModeKHR - displayMode - The mode to use when displaying this surface - - - uint32_t - planeIndex - The plane on which this surface appears. Must be between 0 and the value returned by vkGetPhysicalDeviceDisplayPlanePropertiesKHR() in pPropertyCount. - - - uint32_t - planeStackIndex - The z-order of the plane. - - - VkSurfaceTransformFlagBitsKHR - transform - Transform to apply to the images as part of the scanout operation - - - float - globalAlpha - Global alpha value. Must be between 0 and 1, inclusive. Ignored if alphaMode is not VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR - - - VkDisplayPlaneAlphaFlagBitsKHR - alphaMode - What type of alpha blending to use. Must be a bit from vkGetDisplayPlanePropertiesKHR::supportedAlpha. - - - VkExtent2D - imageExtent - size of the images to use with this surface - - - - - VkStructureType - sType - - - const void* pNext - - - VkRect2D - srcRect - Rectangle within the presentable image to read pixel data from when presenting to the display. - - - VkRect2D - dstRect - Rectangle within the current display mode's visible region to display srcRectangle in. - - - VkBool32 - persistent - For smart displays, use buffered mode. If the display properties member "persistentMode" is VK_FALSE, this member must always be VK_FALSE. - - - - - uint32_t - minImageCount - Supported minimum number of images for the surface - - - uint32_t - maxImageCount - Supported maximum number of images for the surface, 0 for unlimited - - - VkExtent2D - currentExtent - Current image width and height for the surface, (0, 0) if undefined - - - VkExtent2D - minImageExtent - Supported minimum image width and height for the surface - - - VkExtent2D - maxImageExtent - Supported maximum image width and height for the surface - - - uint32_t - maxImageArrayLayers - Supported maximum number of image layers for the surface - - - VkSurfaceTransformFlagsKHR - supportedTransforms - 1 or more bits representing the transforms supported - - - VkSurfaceTransformFlagBitsKHR - currentTransform - The surface's current transform relative to the device's natural orientation - - - VkCompositeAlphaFlagsKHR - supportedCompositeAlpha - 1 or more bits representing the alpha compositing modes supported - - - VkImageUsageFlags - supportedUsageFlags - Supported image usage flags for the surface - - - - - VkStructureType - sType - - - const void* pNext - - - VkAndroidSurfaceCreateFlagsKHR - flags - - - struct ANativeWindow* window - - - - - VkStructureType - sType - - - const void* pNext - - - VkViSurfaceCreateFlagsNN - flags - - - void* window - - - - - VkStructureType - sType - - - const void* pNext - - - VkWaylandSurfaceCreateFlagsKHR - flags - - - struct wl_display* display - - - struct wl_surface* surface - - - - - VkStructureType - sType - - - const void* pNext - - - VkWin32SurfaceCreateFlagsKHR - flags - - - HINSTANCE - hinstance - - - HWND - hwnd - - - - - VkStructureType - sType - - - const void* pNext - - - VkXlibSurfaceCreateFlagsKHR - flags - - - Display* dpy - - - Window - window - - - - - VkStructureType - sType - - - const void* pNext - - - VkXcbSurfaceCreateFlagsKHR - flags - - - xcb_connection_t* connection - - - xcb_window_t - window - - - - - VkStructureType - sType - - - const void* pNext - - - VkDirectFBSurfaceCreateFlagsEXT - flags - - - IDirectFB* dfb - - - IDirectFBSurface* surface - - - - - VkStructureType - sType - - - const void* pNext - - - VkImagePipeSurfaceCreateFlagsFUCHSIA - flags - - - zx_handle_t - imagePipeHandle - - - - - VkStructureType - sType - - - const void* pNext - - - VkStreamDescriptorSurfaceCreateFlagsGGP - flags - - - GgpStreamDescriptor - streamDescriptor - - - - - VkStructureType - sType - - - const void* pNext - - - VkScreenSurfaceCreateFlagsQNX - flags - - - struct _screen_context* context - - - struct _screen_window* window - - - - - VkFormat - format - Supported pair of rendering format - - - VkColorSpaceKHR - colorSpace - and color space for the surface - - - - - VkStructureType - sType - - - const void* pNext - - - VkSwapchainCreateFlagsKHR - flags - - - VkSurfaceKHR - surface - The swapchain's target surface - - - uint32_t - minImageCount - Minimum number of presentation images the application needs - - - VkFormat - imageFormat - Format of the presentation images - - - VkColorSpaceKHR - imageColorSpace - Colorspace of the presentation images - - - VkExtent2D - imageExtent - Dimensions of the presentation images - - - uint32_t - imageArrayLayers - Determines the number of views for multiview/stereo presentation - - - VkImageUsageFlags - imageUsage - Bits indicating how the presentation images will be used - - - VkSharingMode - imageSharingMode - Sharing mode used for the presentation images - - - uint32_t - queueFamilyIndexCount - Number of queue families having access to the images in case of concurrent sharing mode - - - const uint32_t* pQueueFamilyIndicesArray of queue family indices having access to the images in case of concurrent sharing mode - - - VkSurfaceTransformFlagBitsKHR - preTransform - The transform, relative to the device's natural orientation, applied to the image content prior to presentation - - - VkCompositeAlphaFlagBitsKHR - compositeAlpha - The alpha blending mode used when compositing this surface with other surfaces in the window system - - - VkPresentModeKHR - presentMode - Which presentation mode to use for presents on this swap chain - - - VkBool32 - clipped - Specifies whether presentable images may be affected by window clip regions - - - VkSwapchainKHR - oldSwapchain - Existing swap chain to replace, if any - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - waitSemaphoreCount - Number of semaphores to wait for before presenting - - - const VkSemaphore* pWaitSemaphoresSemaphores to wait for before presenting - - - uint32_t - swapchainCount - Number of swapchains to present in this call - - - const VkSwapchainKHR* pSwapchainsSwapchains to present an image from - - - const uint32_t* pImageIndicesIndices of which presentable images to present - - - VkResult* pResultsOptional (i.e. if non-NULL) VkResult for each swapchain - - - - - VkStructureType - sType - - - const void* pNext - - - VkDebugReportFlagsEXT - flags - Indicates which events call this callback - - - PFN_vkDebugReportCallbackEXT - pfnCallback - Function pointer of a callback function - - - void* pUserDataUser data provided to callback function - - - - - VkStructureType - sType - Must be VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT - - - const void* pNext - - - uint32_t - disabledValidationCheckCount - Number of validation checks to disable - - - const VkValidationCheckEXT* pDisabledValidationChecksValidation checks to disable - - - - - VkStructureType - sType - Must be VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT - - - const void* pNext - - - uint32_t - enabledValidationFeatureCount - Number of validation features to enable - - - const VkValidationFeatureEnableEXT* pEnabledValidationFeaturesValidation features to enable - - - uint32_t - disabledValidationFeatureCount - Number of validation features to disable - - - const VkValidationFeatureDisableEXT* pDisabledValidationFeaturesValidation features to disable - - - - - VkStructureType - sType - - - const void* pNext - - - VkRasterizationOrderAMD - rasterizationOrder - Rasterization order to use for the pipeline - - - - - VkStructureType - sType - - - const void* pNext - - - VkDebugReportObjectTypeEXT - objectType - The type of the object - - - uint64_t - object - The handle of the object, cast to uint64_t - - - const char* pObjectNameName to apply to the object - - - - - VkStructureType - sType - - - const void* pNext - - - VkDebugReportObjectTypeEXT - objectType - The type of the object - - - uint64_t - object - The handle of the object, cast to uint64_t - - - uint64_t - tagName - The name of the tag to set on the object - - - size_t - tagSize - The length in bytes of the tag data - - - const void* pTagTag data to attach to the object - - - - - VkStructureType - sType - - - const void* pNext - - - const char* pMarkerNameName of the debug marker - - - float color[4]Optional color for debug marker - - - - - VkStructureType - sType - - - const void* pNext - - - VkBool32 - dedicatedAllocation - Whether this image uses a dedicated allocation - - - - - VkStructureType - sType - - - const void* pNext - - - VkBool32 - dedicatedAllocation - Whether this buffer uses a dedicated allocation - - - - - VkStructureType - sType - - - const void* pNext - - - VkImage - image - Image that this allocation will be bound to - - - VkBuffer - buffer - Buffer that this allocation will be bound to - - - - - VkImageFormatProperties - imageFormatProperties - - - VkExternalMemoryFeatureFlagsNV - externalMemoryFeatures - - - VkExternalMemoryHandleTypeFlagsNV - exportFromImportedHandleTypes - - - VkExternalMemoryHandleTypeFlagsNV - compatibleHandleTypes - - - - - VkStructureType - sType - - - const void* pNext - - - VkExternalMemoryHandleTypeFlagsNV - handleTypes - - - - - VkStructureType - sType - - - const void* pNext - - - VkExternalMemoryHandleTypeFlagsNV - handleTypes - - - - - VkStructureType - sType - - - const void* pNext - - - VkExternalMemoryHandleTypeFlagsNV - handleType - - - HANDLE - handle - - - - - VkStructureType - sType - - - const void* pNext - - - const SECURITY_ATTRIBUTES* pAttributes - - - DWORD - dwAccess - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - acquireCount - - - const VkDeviceMemory* pAcquireSyncs - - - const uint64_t* pAcquireKeys - - - const uint32_t* pAcquireTimeoutMilliseconds - - - uint32_t - releaseCount - - - const VkDeviceMemory* pReleaseSyncs - - - const uint64_t* pReleaseKeys - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - deviceGeneratedCommands - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - privateDataSlotRequestCount - - - - - - VkStructureType - sType - - - const void* pNext - - - VkPrivateDataSlotCreateFlags - flags - - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - privateData - - - - - - VkStructureType - sType - - - void* pNext - - - uint32_t - maxGraphicsShaderGroupCount - - - uint32_t - maxIndirectSequenceCount - - - uint32_t - maxIndirectCommandsTokenCount - - - uint32_t - maxIndirectCommandsStreamCount - - - uint32_t - maxIndirectCommandsTokenOffset - - - uint32_t - maxIndirectCommandsStreamStride - - - uint32_t - minSequencesCountBufferOffsetAlignment - - - uint32_t - minSequencesIndexBufferOffsetAlignment - - - uint32_t - minIndirectCommandsBufferOffsetAlignment - - - - - VkStructureType - sType - - - void* pNext - - - uint32_t - maxMultiDrawCount - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - stageCount - - - const VkPipelineShaderStageCreateInfo* pStages - - - const VkPipelineVertexInputStateCreateInfo* pVertexInputState - - - const VkPipelineTessellationStateCreateInfo* pTessellationState - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - groupCount - - - const VkGraphicsShaderGroupCreateInfoNV* pGroups - - - uint32_t - pipelineCount - - - const VkPipeline* pPipelines - - - - - uint32_t - groupIndex - - - - - VkDeviceAddress - bufferAddress - - - uint32_t - size - - - VkIndexType - indexType - - - - - VkDeviceAddress - bufferAddress - - - uint32_t - size - - - uint32_t - stride - - - - - uint32_t - data - - - - - VkBuffer - buffer - - - VkDeviceSize - offset - - - - - VkStructureType - sType - - - const void* pNext - - - VkIndirectCommandsTokenTypeNV - tokenType - - - uint32_t - stream - - - uint32_t - offset - - - uint32_t - vertexBindingUnit - - - VkBool32 - vertexDynamicStride - - - VkPipelineLayout - pushconstantPipelineLayout - - - VkShaderStageFlags - pushconstantShaderStageFlags - - - uint32_t - pushconstantOffset - - - uint32_t - pushconstantSize - - - VkIndirectStateFlagsNV - indirectStateFlags - - - uint32_t - indexTypeCount - - - const VkIndexType* pIndexTypes - - - const uint32_t* pIndexTypeValues - - - - - VkStructureType - sType - - - const void* pNext - - - VkIndirectCommandsLayoutUsageFlagsNV - flags - - - VkPipelineBindPoint - pipelineBindPoint - - - uint32_t - tokenCount - - - const VkIndirectCommandsLayoutTokenNV* pTokens - - - uint32_t - streamCount - - - const uint32_t* pStreamStrides - - - - - VkStructureType - sType - - - const void* pNext - - - VkPipelineBindPoint - pipelineBindPoint - - - VkPipeline - pipeline - - - VkIndirectCommandsLayoutNV - indirectCommandsLayout - - - uint32_t - streamCount - - - const VkIndirectCommandsStreamNV* pStreams - - - uint32_t - sequencesCount - - - VkBuffer - preprocessBuffer - - - VkDeviceSize - preprocessOffset - - - VkDeviceSize - preprocessSize - - - VkBuffer - sequencesCountBuffer - - - VkDeviceSize - sequencesCountOffset - - - VkBuffer - sequencesIndexBuffer - - - VkDeviceSize - sequencesIndexOffset - - - - - VkStructureType - sType - - - const void* pNext - - - VkPipelineBindPoint - pipelineBindPoint - - - VkPipeline - pipeline - - - VkIndirectCommandsLayoutNV - indirectCommandsLayout - - - uint32_t - maxSequencesCount - - - - - VkStructureType - sType - - - void* pNext - - - VkPhysicalDeviceFeatures - features - - - - - - VkStructureType - sType - - - void* pNext - - - VkPhysicalDeviceProperties - properties - - - - - - VkStructureType - sType - - - void* pNext - - - VkFormatProperties - formatProperties - - - - - - VkStructureType - sType - - - void* pNext - - - VkImageFormatProperties - imageFormatProperties - - - - - - VkStructureType - sType - - - const void* pNext - - - VkFormat - format - - - VkImageType - type - - - VkImageTiling - tiling - - - VkImageUsageFlags - usage - - - VkImageCreateFlags - flags - - - - - - VkStructureType - sType - - - void* pNext - - - VkQueueFamilyProperties - queueFamilyProperties - - - - - - VkStructureType - sType - - - void* pNext - - - VkPhysicalDeviceMemoryProperties - memoryProperties - - - - - - VkStructureType - sType - - - void* pNext - - - VkSparseImageFormatProperties - properties - - - - - - VkStructureType - sType - - - const void* pNext - - - VkFormat - format - - - VkImageType - type - - - VkSampleCountFlagBits - samples - - - VkImageUsageFlags - usage - - - VkImageTiling - tiling - - - - - - VkStructureType - sType - - - void* pNext - - - uint32_t - maxPushDescriptors - - - - - uint8_t - major - - - uint8_t - minor - - - uint8_t - subminor - - - uint8_t - patch - - - - - - VkStructureType - sType - - - void* pNext - - - VkDriverId - driverID - - - char driverName[VK_MAX_DRIVER_NAME_SIZE] - - - char driverInfo[VK_MAX_DRIVER_INFO_SIZE] - - - VkConformanceVersion - conformanceVersion - - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - swapchainCount - Copy of VkPresentInfoKHR::swapchainCount - - - const VkPresentRegionKHR* pRegionsThe regions that have changed - - - - - uint32_t - rectangleCount - Number of rectangles in pRectangles - - - const VkRectLayerKHR* pRectanglesArray of rectangles that have changed in a swapchain's image(s) - - - - - VkOffset2D - offset - upper-left corner of a rectangle that has not changed, in pixels of a presentation images - - - VkExtent2D - extent - Dimensions of a rectangle that has not changed, in pixels of a presentation images - - - uint32_t - layer - Layer of a swapchain's image(s), for stereoscopic-3D images - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - variablePointersStorageBuffer - - - VkBool32 - variablePointers - - - - - - - - VkExternalMemoryFeatureFlags - externalMemoryFeatures - - - VkExternalMemoryHandleTypeFlags - exportFromImportedHandleTypes - - - VkExternalMemoryHandleTypeFlags - compatibleHandleTypes - - - - - - VkStructureType - sType - - - const void* pNext - - - VkExternalMemoryHandleTypeFlagBits - handleType - - - - - - VkStructureType - sType - - - void* pNext - - - VkExternalMemoryProperties - externalMemoryProperties - - - - - - VkStructureType - sType - - - const void* pNext - - - VkBufferCreateFlags - flags - - - VkBufferUsageFlags - usage - - - VkExternalMemoryHandleTypeFlagBits - handleType - - - - - - VkStructureType - sType - - - void* pNext - - - VkExternalMemoryProperties - externalMemoryProperties - - - - - - VkStructureType - sType - - - void* pNext - - - uint8_t deviceUUID[VK_UUID_SIZE] - - - uint8_t driverUUID[VK_UUID_SIZE] - - - uint8_t deviceLUID[VK_LUID_SIZE] - - - uint32_t - deviceNodeMask - - - VkBool32 - deviceLUIDValid - - - - - - VkStructureType - sType - - - const void* pNext - - - VkExternalMemoryHandleTypeFlags - handleTypes - - - - - - VkStructureType - sType - - - const void* pNext - - - VkExternalMemoryHandleTypeFlags - handleTypes - - - - - - VkStructureType - sType - - - const void* pNext - - - VkExternalMemoryHandleTypeFlags - handleTypes - - - - - - VkStructureType - sType - - - const void* pNext - - - VkExternalMemoryHandleTypeFlagBits - handleType - - - HANDLE - handle - - - LPCWSTR - name - - - - - VkStructureType - sType - - - const void* pNext - - - const SECURITY_ATTRIBUTES* pAttributes - - - DWORD - dwAccess - - - LPCWSTR - name - - - - - VkStructureType - sType - - - const void* pNext - - - VkExternalMemoryHandleTypeFlagBits - handleType - - - zx_handle_t - handle - - - - - VkStructureType - sType - - - void* pNext - - - uint32_t - memoryTypeBits - - - - - VkStructureType - sType - - - const void* pNext - - - VkDeviceMemory - memory - - - VkExternalMemoryHandleTypeFlagBits - handleType - - - - - VkStructureType - sType - - - void* pNext - - - uint32_t - memoryTypeBits - - - - - VkStructureType - sType - - - const void* pNext - - - VkDeviceMemory - memory - - - VkExternalMemoryHandleTypeFlagBits - handleType - - - - - VkStructureType - sType - - - const void* pNext - - - VkExternalMemoryHandleTypeFlagBits - handleType - - - int - fd - - - - - VkStructureType - sType - - - void* pNext - - - uint32_t - memoryTypeBits - - - - - VkStructureType - sType - - - const void* pNext - - - VkDeviceMemory - memory - - - VkExternalMemoryHandleTypeFlagBits - handleType - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - acquireCount - - - const VkDeviceMemory* pAcquireSyncs - - - const uint64_t* pAcquireKeys - - - const uint32_t* pAcquireTimeouts - - - uint32_t - releaseCount - - - const VkDeviceMemory* pReleaseSyncs - - - const uint64_t* pReleaseKeys - - - - - VkStructureType - sType - - - const void* pNext - - - VkExternalSemaphoreHandleTypeFlagBits - handleType - - - - - - VkStructureType - sType - - - void* pNext - - - VkExternalSemaphoreHandleTypeFlags - exportFromImportedHandleTypes - - - VkExternalSemaphoreHandleTypeFlags - compatibleHandleTypes - - - VkExternalSemaphoreFeatureFlags - externalSemaphoreFeatures - - - - - - VkStructureType - sType - - - const void* pNext - - - VkExternalSemaphoreHandleTypeFlags - handleTypes - - - - - - VkStructureType - sType - - - const void* pNext - - - VkSemaphore - semaphore - - - VkSemaphoreImportFlags - flags - - - VkExternalSemaphoreHandleTypeFlagBits - handleType - - - HANDLE - handle - - - LPCWSTR - name - - - - - VkStructureType - sType - - - const void* pNext - - - const SECURITY_ATTRIBUTES* pAttributes - - - DWORD - dwAccess - - - LPCWSTR - name - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - waitSemaphoreValuesCount - - - const uint64_t* pWaitSemaphoreValues - - - uint32_t - signalSemaphoreValuesCount - - - const uint64_t* pSignalSemaphoreValues - - - - - VkStructureType - sType - - - const void* pNext - - - VkSemaphore - semaphore - - - VkExternalSemaphoreHandleTypeFlagBits - handleType - - - - - VkStructureType - sType - - - const void* pNext - - - VkSemaphore - semaphore - - - VkSemaphoreImportFlags - flags - - - VkExternalSemaphoreHandleTypeFlagBits - handleType - - - int - fd - - - - - VkStructureType - sType - - - const void* pNext - - - VkSemaphore - semaphore - - - VkExternalSemaphoreHandleTypeFlagBits - handleType - - - - - VkStructureType - sType - - - const void* pNext - - - VkSemaphore - semaphore - - - VkSemaphoreImportFlags - flags - - - VkExternalSemaphoreHandleTypeFlagBits - handleType - - - zx_handle_t - zirconHandle - - - - - VkStructureType - sType - - - const void* pNext - - - VkSemaphore - semaphore - - - VkExternalSemaphoreHandleTypeFlagBits - handleType - - - - - VkStructureType - sType - - - const void* pNext - - - VkExternalFenceHandleTypeFlagBits - handleType - - - - - - VkStructureType - sType - - - void* pNext - - - VkExternalFenceHandleTypeFlags - exportFromImportedHandleTypes - - - VkExternalFenceHandleTypeFlags - compatibleHandleTypes - - - VkExternalFenceFeatureFlags - externalFenceFeatures - - - - - - VkStructureType - sType - - - const void* pNext - - - VkExternalFenceHandleTypeFlags - handleTypes - - - - - - VkStructureType - sType - - - const void* pNext - - - VkFence - fence - - - VkFenceImportFlags - flags - - - VkExternalFenceHandleTypeFlagBits - handleType - - - HANDLE - handle - - - LPCWSTR - name - - - - - VkStructureType - sType - - - const void* pNext - - - const SECURITY_ATTRIBUTES* pAttributes - - - DWORD - dwAccess - - - LPCWSTR - name - - - - - VkStructureType - sType - - - const void* pNext - - - VkFence - fence - - - VkExternalFenceHandleTypeFlagBits - handleType - - - - - VkStructureType - sType - - - const void* pNext - - - VkFence - fence - - - VkFenceImportFlags - flags - - - VkExternalFenceHandleTypeFlagBits - handleType - - - int - fd - - - - - VkStructureType - sType - - - const void* pNext - - - VkFence - fence - - - VkExternalFenceHandleTypeFlagBits - handleType - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - multiview - Multiple views in a renderpass - - - VkBool32 - multiviewGeometryShader - Multiple views in a renderpass w/ geometry shader - - - VkBool32 - multiviewTessellationShader - Multiple views in a renderpass w/ tessellation shader - - - - - - VkStructureType - sType - - - void* pNext - - - uint32_t - maxMultiviewViewCount - max number of views in a subpass - - - uint32_t - maxMultiviewInstanceIndex - max instance index for a draw in a multiview subpass - - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - subpassCount - - - const uint32_t* pViewMasks - - - uint32_t - dependencyCount - - - const int32_t* pViewOffsets - - - uint32_t - correlationMaskCount - - - const uint32_t* pCorrelationMasks - - - - - - VkStructureType - sType - - - void* pNext - - - uint32_t - minImageCount - Supported minimum number of images for the surface - - - uint32_t - maxImageCount - Supported maximum number of images for the surface, 0 for unlimited - - - VkExtent2D - currentExtent - Current image width and height for the surface, (0, 0) if undefined - - - VkExtent2D - minImageExtent - Supported minimum image width and height for the surface - - - VkExtent2D - maxImageExtent - Supported maximum image width and height for the surface - - - uint32_t - maxImageArrayLayers - Supported maximum number of image layers for the surface - - - VkSurfaceTransformFlagsKHR - supportedTransforms - 1 or more bits representing the transforms supported - - - VkSurfaceTransformFlagBitsKHR - currentTransform - The surface's current transform relative to the device's natural orientation - - - VkCompositeAlphaFlagsKHR - supportedCompositeAlpha - 1 or more bits representing the alpha compositing modes supported - - - VkImageUsageFlags - supportedUsageFlags - Supported image usage flags for the surface - - - VkSurfaceCounterFlagsEXT - supportedSurfaceCounters - - - - - VkStructureType - sType - - - const void* pNext - - - VkDisplayPowerStateEXT - powerState - - - - - VkStructureType - sType - - - const void* pNext - - - VkDeviceEventTypeEXT - deviceEvent - - - - - VkStructureType - sType - - - const void* pNext - - - VkDisplayEventTypeEXT - displayEvent - - - - - VkStructureType - sType - - - const void* pNext - - - VkSurfaceCounterFlagsEXT - surfaceCounters - - - - - VkStructureType - sType - - - void* pNext - - - uint32_t - physicalDeviceCount - - - VkPhysicalDevice physicalDevices[VK_MAX_DEVICE_GROUP_SIZE] - - - VkBool32 - subsetAllocation - - - - - - VkStructureType - sType - - - const void* pNext - - - VkMemoryAllocateFlags - flags - - - uint32_t - deviceMask - - - - - - VkStructureType - sType - - - const void* pNext - - - VkBuffer - buffer - - - VkDeviceMemory - memory - - - VkDeviceSize - memoryOffset - - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - deviceIndexCount - - - const uint32_t* pDeviceIndices - - - - - - VkStructureType - sType - - - const void* pNext - - - VkImage - image - - - VkDeviceMemory - memory - - - VkDeviceSize - memoryOffset - - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - deviceIndexCount - - - const uint32_t* pDeviceIndices - - - uint32_t - splitInstanceBindRegionCount - - - const VkRect2D* pSplitInstanceBindRegions - - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - deviceMask - - - uint32_t - deviceRenderAreaCount - - - const VkRect2D* pDeviceRenderAreas - - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - deviceMask - - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - waitSemaphoreCount - - - const uint32_t* pWaitSemaphoreDeviceIndices - - - uint32_t - commandBufferCount - - - const uint32_t* pCommandBufferDeviceMasks - - - uint32_t - signalSemaphoreCount - - - const uint32_t* pSignalSemaphoreDeviceIndices - - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - resourceDeviceIndex - - - uint32_t - memoryDeviceIndex - - - - - - VkStructureType - sType - - - void* pNext - - - uint32_t presentMask[VK_MAX_DEVICE_GROUP_SIZE] - - - VkDeviceGroupPresentModeFlagsKHR - modes - - - - - VkStructureType - sType - - - const void* pNext - - - VkSwapchainKHR - swapchain - - - - - VkStructureType - sType - - - const void* pNext - - - VkSwapchainKHR - swapchain - - - uint32_t - imageIndex - - - - - VkStructureType - sType - - - const void* pNext - - - VkSwapchainKHR - swapchain - - - uint64_t - timeout - - - VkSemaphore - semaphore - - - VkFence - fence - - - uint32_t - deviceMask - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - swapchainCount - - - const uint32_t* pDeviceMasks - - - VkDeviceGroupPresentModeFlagBitsKHR - mode - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - physicalDeviceCount - - - const VkPhysicalDevice* pPhysicalDevices - - - - - - VkStructureType - sType - - - const void* pNext - - - VkDeviceGroupPresentModeFlagsKHR - modes - - - - - uint32_t - dstBinding - Binding within the destination descriptor set to write - - - uint32_t - dstArrayElement - Array element within the destination binding to write - - - uint32_t - descriptorCount - Number of descriptors to write - - - VkDescriptorType - descriptorType - Descriptor type to write - - - size_t - offset - Offset into pData where the descriptors to update are stored - - - size_t - stride - Stride between two descriptors in pData when writing more than one descriptor - - - - - - VkStructureType - sType - - - const void* pNext - - - VkDescriptorUpdateTemplateCreateFlags - flags - - - uint32_t - descriptorUpdateEntryCount - Number of descriptor update entries to use for the update template - - - const VkDescriptorUpdateTemplateEntry* pDescriptorUpdateEntriesDescriptor update entries for the template - - - VkDescriptorUpdateTemplateType - templateType - - - VkDescriptorSetLayout - descriptorSetLayout - - - VkPipelineBindPoint - pipelineBindPoint - - - VkPipelineLayout - pipelineLayout - If used for push descriptors, this is the only allowed layout - - - uint32_t - set - - - - - - float - x - - - float - y - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - presentId - Present ID in VkPresentInfoKHR - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - swapchainCount - Copy of VkPresentInfoKHR::swapchainCount - - - const uint64_t* pPresentIdsPresent ID values for each swapchain - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - presentWait - vkWaitForPresentKHR is supported - - - - Display primary in chromaticity coordinates - - VkStructureType - sType - - - const void* pNext - - From SMPTE 2086 - - VkXYColorEXT - displayPrimaryRed - Display primary's Red - - - VkXYColorEXT - displayPrimaryGreen - Display primary's Green - - - VkXYColorEXT - displayPrimaryBlue - Display primary's Blue - - - VkXYColorEXT - whitePoint - Display primary's Blue - - - float - maxLuminance - Display maximum luminance - - - float - minLuminance - Display minimum luminance - - From CTA 861.3 - - float - maxContentLightLevel - Content maximum luminance - - - float - maxFrameAverageLightLevel - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - localDimmingSupport - - - - - VkStructureType - sType - - - const void* pNext - - - VkBool32 - localDimmingEnable - - - - - uint64_t - refreshDuration - Number of nanoseconds from the start of one refresh cycle to the next - - - - - uint32_t - presentID - Application-provided identifier, previously given to vkQueuePresentKHR - - - uint64_t - desiredPresentTime - Earliest time an image should have been presented, previously given to vkQueuePresentKHR - - - uint64_t - actualPresentTime - Time the image was actually displayed - - - uint64_t - earliestPresentTime - Earliest time the image could have been displayed - - - uint64_t - presentMargin - How early vkQueuePresentKHR was processed vs. how soon it needed to be and make earliestPresentTime - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - swapchainCount - Copy of VkPresentInfoKHR::swapchainCount - - - const VkPresentTimeGOOGLE* pTimesThe earliest times to present images - - - - - uint32_t - presentID - Application-provided identifier - - - uint64_t - desiredPresentTime - Earliest time an image should be presented - - - - - VkStructureType - sType - - - const void* pNext - - - VkIOSSurfaceCreateFlagsMVK - flags - - - const void* pView - - - - - VkStructureType - sType - - - const void* pNext - - - VkMacOSSurfaceCreateFlagsMVK - flags - - - const void* pView - - - - - VkStructureType - sType - - - const void* pNext - - - VkMetalSurfaceCreateFlagsEXT - flags - - - const CAMetalLayer* pLayer - - - - - float - xcoeff - - - float - ycoeff - - - - - VkStructureType - sType - - - const void* pNext - - - VkBool32 - viewportWScalingEnable - - - uint32_t - viewportCount - - - const VkViewportWScalingNV* pViewportWScalings - - - - - VkViewportCoordinateSwizzleNV - x - - - VkViewportCoordinateSwizzleNV - y - - - VkViewportCoordinateSwizzleNV - z - - - VkViewportCoordinateSwizzleNV - w - - - - - VkStructureType - sType - - - const void* pNext - - - VkPipelineViewportSwizzleStateCreateFlagsNV - flags - - - uint32_t - viewportCount - - - const VkViewportSwizzleNV* pViewportSwizzles - - - - - VkStructureType - sType - - - void* pNext - - - uint32_t - maxDiscardRectangles - max number of active discard rectangles - - - - - VkStructureType - sType - - - const void* pNext - - - VkPipelineDiscardRectangleStateCreateFlagsEXT - flags - - - VkDiscardRectangleModeEXT - discardRectangleMode - - - uint32_t - discardRectangleCount - - - const VkRect2D* pDiscardRectangles - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - perViewPositionAllComponents - - - - - uint32_t - subpass - - - uint32_t - inputAttachmentIndex - - - VkImageAspectFlags - aspectMask - - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - aspectReferenceCount - - - const VkInputAttachmentAspectReference* pAspectReferences - - - - - - VkStructureType - sType - - - const void* pNext - - - VkSurfaceKHR - surface - - - - - VkStructureType - sType - - - void* pNext - - - VkSurfaceCapabilitiesKHR - surfaceCapabilities - - - - - VkStructureType - sType - - - void* pNext - - - VkSurfaceFormatKHR - surfaceFormat - - - - - VkStructureType - sType - - - void* pNext - - - VkDisplayPropertiesKHR - displayProperties - - - - - VkStructureType - sType - - - void* pNext - - - VkDisplayPlanePropertiesKHR - displayPlaneProperties - - - - - VkStructureType - sType - - - void* pNext - - - VkDisplayModePropertiesKHR - displayModeProperties - - - - - VkStructureType - sType - - - const void* pNext - - - VkDisplayModeKHR - mode - - - uint32_t - planeIndex - - - - - VkStructureType - sType - - - void* pNext - - - VkDisplayPlaneCapabilitiesKHR - capabilities - - - - - VkStructureType - sType - - - void* pNext - - - VkImageUsageFlags - sharedPresentSupportedUsageFlags - Supported image usage flags if swapchain created using a shared present mode - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - storageBuffer16BitAccess - 16-bit integer/floating-point variables supported in BufferBlock - - - VkBool32 - uniformAndStorageBuffer16BitAccess - 16-bit integer/floating-point variables supported in BufferBlock and Block - - - VkBool32 - storagePushConstant16 - 16-bit integer/floating-point variables supported in PushConstant - - - VkBool32 - storageInputOutput16 - 16-bit integer/floating-point variables supported in shader inputs and outputs - - - - - - VkStructureType - sType - - - void* pNext - - - uint32_t - subgroupSize - The size of a subgroup for this queue. - - - VkShaderStageFlags - supportedStages - Bitfield of what shader stages support subgroup operations - - - VkSubgroupFeatureFlags - supportedOperations - Bitfield of what subgroup operations are supported. - - - VkBool32 - quadOperationsInAllStages - Flag to specify whether quad operations are available in all stages. - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - shaderSubgroupExtendedTypes - Flag to specify whether subgroup operations with extended types are supported - - - - - - VkStructureType - sType - - - const void* pNext - - - VkBuffer - buffer - - - - - - VkStructureType - sType - - - const void* pNext - - - const VkBufferCreateInfo* pCreateInfo - - - - - - VkStructureType - sType - - - const void* pNext - - - VkImage - image - - - - - - VkStructureType - sType - - - const void* pNext - - - VkImage - image - - - - - - VkStructureType - sType - - - const void* pNext - - - const VkImageCreateInfo* pCreateInfo - - - VkImageAspectFlagBits - planeAspect - - - - - - VkStructureType - sType - - - void* pNext - - - VkMemoryRequirements - memoryRequirements - - - - - - VkStructureType - sType - - - void* pNext - - - VkSparseImageMemoryRequirements - memoryRequirements - - - - - - VkStructureType - sType - - - void* pNext - - - VkPointClippingBehavior - pointClippingBehavior - - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - prefersDedicatedAllocation - - - VkBool32 - requiresDedicatedAllocation - - - - - - VkStructureType - sType - - - const void* pNext - - - VkImage - image - Image that this allocation will be bound to - - - VkBuffer - buffer - Buffer that this allocation will be bound to - - - - - - VkStructureType - sType - - - const void* pNext - - - VkImageUsageFlags - usage - - - - - - VkStructureType - sType - - - const void* pNext - - - VkTessellationDomainOrigin - domainOrigin - - - - - - VkStructureType - sType - - - const void* pNext - - - VkSamplerYcbcrConversion - conversion - - - - - - VkStructureType - sType - - - const void* pNext - - - VkFormat - format - - - VkSamplerYcbcrModelConversion - ycbcrModel - - - VkSamplerYcbcrRange - ycbcrRange - - - VkComponentMapping - components - - - VkChromaLocation - xChromaOffset - - - VkChromaLocation - yChromaOffset - - - VkFilter - chromaFilter - - - VkBool32 - forceExplicitReconstruction - - - - - - VkStructureType - sType - - - const void* pNext - - - VkImageAspectFlagBits - planeAspect - - - - - - VkStructureType - sType - - - const void* pNext - - - VkImageAspectFlagBits - planeAspect - - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - samplerYcbcrConversion - Sampler color conversion supported - - - - - - VkStructureType - sType - - - void* pNext - - - uint32_t - combinedImageSamplerDescriptorCount - - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - supportsTextureGatherLODBiasAMD - - - - - VkStructureType - sType - - - const void* pNext - - - VkBuffer - buffer - - - VkDeviceSize - offset - - - VkConditionalRenderingFlagsEXT - flags - - - - - VkStructureType - sType - - - const void* pNext - - - VkBool32 - protectedSubmit - Submit protected command buffers - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - protectedMemory - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - protectedNoFault - - - - - VkStructureType - sType - - - const void* pNext - - - VkDeviceQueueCreateFlags - flags - - - uint32_t - queueFamilyIndex - - - uint32_t - queueIndex - - - - - VkStructureType - sType - - - const void* pNext - - - VkPipelineCoverageToColorStateCreateFlagsNV - flags - - - VkBool32 - coverageToColorEnable - - - uint32_t - coverageToColorLocation - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - filterMinmaxSingleComponentFormats - - - VkBool32 - filterMinmaxImageComponentMapping - - - - - - float - x - - - float - y - - - - - VkStructureType - sType - - - const void* pNext - - - VkSampleCountFlagBits - sampleLocationsPerPixel - - - VkExtent2D - sampleLocationGridSize - - - uint32_t - sampleLocationsCount - - - const VkSampleLocationEXT* pSampleLocations - - - - - uint32_t - attachmentIndex - - - VkSampleLocationsInfoEXT - sampleLocationsInfo - - - - - uint32_t - subpassIndex - - - VkSampleLocationsInfoEXT - sampleLocationsInfo - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - attachmentInitialSampleLocationsCount - - - const VkAttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations - - - uint32_t - postSubpassSampleLocationsCount - - - const VkSubpassSampleLocationsEXT* pPostSubpassSampleLocations - - - - - VkStructureType - sType - - - const void* pNext - - - VkBool32 - sampleLocationsEnable - - - VkSampleLocationsInfoEXT - sampleLocationsInfo - - - - - VkStructureType - sType - - - void* pNext - - - VkSampleCountFlags - sampleLocationSampleCounts - - - VkExtent2D - maxSampleLocationGridSize - - - float sampleLocationCoordinateRange[2] - - - uint32_t - sampleLocationSubPixelBits - - - VkBool32 - variableSampleLocations - - - - - VkStructureType - sType - - - void* pNext - - - VkExtent2D - maxSampleLocationGridSize - - - - - VkStructureType - sType - - - const void* pNext - - - VkSamplerReductionMode - reductionMode - - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - advancedBlendCoherentOperations - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - multiDraw - - - - - VkStructureType - sType - - - void* pNext - - - uint32_t - advancedBlendMaxColorAttachments - - - VkBool32 - advancedBlendIndependentBlend - - - VkBool32 - advancedBlendNonPremultipliedSrcColor - - - VkBool32 - advancedBlendNonPremultipliedDstColor - - - VkBool32 - advancedBlendCorrelatedOverlap - - - VkBool32 - advancedBlendAllOperations - - - - - VkStructureType - sType - - - const void* pNext - - - VkBool32 - srcPremultiplied - - - VkBool32 - dstPremultiplied - - - VkBlendOverlapEXT - blendOverlap - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - inlineUniformBlock - - - VkBool32 - descriptorBindingInlineUniformBlockUpdateAfterBind - - - - - - VkStructureType - sType - - - void* pNext - - - uint32_t - maxInlineUniformBlockSize - - - uint32_t - maxPerStageDescriptorInlineUniformBlocks - - - uint32_t - maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks - - - uint32_t - maxDescriptorSetInlineUniformBlocks - - - uint32_t - maxDescriptorSetUpdateAfterBindInlineUniformBlocks - - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - dataSize - - - const void* pData - - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - maxInlineUniformBlockBindings - - - - - - VkStructureType - sType - - - const void* pNext - - - VkPipelineCoverageModulationStateCreateFlagsNV - flags - - - VkCoverageModulationModeNV - coverageModulationMode - - - VkBool32 - coverageModulationTableEnable - - - uint32_t - coverageModulationTableCount - - - const float* pCoverageModulationTable - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - viewFormatCount - - - const VkFormat* pViewFormats - - - - - - VkStructureType - sType - - - const void* pNext - - - VkValidationCacheCreateFlagsEXT - flags - - - size_t - initialDataSize - - - const void* pInitialData - - - - - VkStructureType - sType - - - const void* pNext - - - VkValidationCacheEXT - validationCache - - - - - VkStructureType - sType - - - void* pNext - - - uint32_t - maxPerSetDescriptors - - - VkDeviceSize - maxMemoryAllocationSize - - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - maintenance4 - - - - - - VkStructureType - sType - - - void* pNext - - - VkDeviceSize - maxBufferSize - - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - supported - - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - shaderDrawParameters - - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - shaderFloat16 - 16-bit floats (halfs) in shaders - - - VkBool32 - shaderInt8 - 8-bit integers in shaders - - - - - - - VkStructureType - sType - - - void* pNext - - - VkShaderFloatControlsIndependence - denormBehaviorIndependence - - - VkShaderFloatControlsIndependence - roundingModeIndependence - - - VkBool32 - shaderSignedZeroInfNanPreserveFloat16 - An implementation can preserve signed zero, nan, inf - - - VkBool32 - shaderSignedZeroInfNanPreserveFloat32 - An implementation can preserve signed zero, nan, inf - - - VkBool32 - shaderSignedZeroInfNanPreserveFloat64 - An implementation can preserve signed zero, nan, inf - - - VkBool32 - shaderDenormPreserveFloat16 - An implementation can preserve denormals - - - VkBool32 - shaderDenormPreserveFloat32 - An implementation can preserve denormals - - - VkBool32 - shaderDenormPreserveFloat64 - An implementation can preserve denormals - - - VkBool32 - shaderDenormFlushToZeroFloat16 - An implementation can flush to zero denormals - - - VkBool32 - shaderDenormFlushToZeroFloat32 - An implementation can flush to zero denormals - - - VkBool32 - shaderDenormFlushToZeroFloat64 - An implementation can flush to zero denormals - - - VkBool32 - shaderRoundingModeRTEFloat16 - An implementation can support RTE - - - VkBool32 - shaderRoundingModeRTEFloat32 - An implementation can support RTE - - - VkBool32 - shaderRoundingModeRTEFloat64 - An implementation can support RTE - - - VkBool32 - shaderRoundingModeRTZFloat16 - An implementation can support RTZ - - - VkBool32 - shaderRoundingModeRTZFloat32 - An implementation can support RTZ - - - VkBool32 - shaderRoundingModeRTZFloat64 - An implementation can support RTZ - - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - hostQueryReset - - - - - - uint64_t - consumer - - - uint64_t - producer - - - - - VkStructureType - sType - - - const void* pNext - - - const void* handle - - - int - stride - - - int - format - - - int - usage - - - VkNativeBufferUsage2ANDROID - usage2 - - - - - VkStructureType - sType - - - const void* pNext - - - VkSwapchainImageUsageFlagsANDROID - usage - - - - - VkStructureType - sType - - - const void* pNext - - - VkBool32 - sharedImage - - - - - uint32_t - numUsedVgprs - - - uint32_t - numUsedSgprs - - - uint32_t - ldsSizePerLocalWorkGroup - - - size_t - ldsUsageSizeInBytes - - - size_t - scratchMemUsageInBytes - - - - - VkShaderStageFlags - shaderStageMask - - - VkShaderResourceUsageAMD - resourceUsage - - - uint32_t - numPhysicalVgprs - - - uint32_t - numPhysicalSgprs - - - uint32_t - numAvailableVgprs - - - uint32_t - numAvailableSgprs - - - uint32_t computeWorkGroupSize[3] - - - - - VkStructureType - sType - - - const void* pNext - - - VkQueueGlobalPriorityKHR - globalPriority - - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - globalPriorityQuery - - - - - - VkStructureType - sType - - - void* pNext - - - uint32_t - priorityCount - - - VkQueueGlobalPriorityKHR priorities[VK_MAX_GLOBAL_PRIORITY_SIZE_KHR] - - - - - - VkStructureType - sType - - - const void* pNext - - - VkObjectType - objectType - - - uint64_t - objectHandle - - - const char* pObjectName - - - - - VkStructureType - sType - - - const void* pNext - - - VkObjectType - objectType - - - uint64_t - objectHandle - - - uint64_t - tagName - - - size_t - tagSize - - - const void* pTag - - - - - VkStructureType - sType - - - const void* pNext - - - const char* pLabelName - - - float color[4] - - - - - VkStructureType - sType - - - const void* pNext - - - VkDebugUtilsMessengerCreateFlagsEXT - flags - - - VkDebugUtilsMessageSeverityFlagsEXT - messageSeverity - - - VkDebugUtilsMessageTypeFlagsEXT - messageType - - - PFN_vkDebugUtilsMessengerCallbackEXT - pfnUserCallback - - - void* pUserData - - - - - VkStructureType - sType - - - const void* pNext - - - VkDebugUtilsMessengerCallbackDataFlagsEXT - flags - - - const char* pMessageIdName - - - int32_t - messageIdNumber - - - const char* pMessage - - - uint32_t - queueLabelCount - - - const VkDebugUtilsLabelEXT* pQueueLabels - - - uint32_t - cmdBufLabelCount - - - const VkDebugUtilsLabelEXT* pCmdBufLabels - - - uint32_t - objectCount - - - const VkDebugUtilsObjectNameInfoEXT* pObjects - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - deviceMemoryReport - - - - - VkStructureType - sType - - - const void* pNext - - - VkDeviceMemoryReportFlagsEXT - flags - - - PFN_vkDeviceMemoryReportCallbackEXT - pfnUserCallback - - - void* pUserData - - - - - VkStructureType - sType - - - void* pNext - - - VkDeviceMemoryReportFlagsEXT - flags - - - VkDeviceMemoryReportEventTypeEXT - type - - - uint64_t - memoryObjectId - - - VkDeviceSize - size - - - VkObjectType - objectType - - - uint64_t - objectHandle - - - uint32_t - heapIndex - - - - - VkStructureType - sType - - - const void* pNext - - - VkExternalMemoryHandleTypeFlagBits - handleType - - - void* pHostPointer - - - - - VkStructureType - sType - - - void* pNext - - - uint32_t - memoryTypeBits - - - - - VkStructureType - sType - - - void* pNext - - - VkDeviceSize - minImportedHostPointerAlignment - - - - - VkStructureType - sType - - - void* pNext - - - float - primitiveOverestimationSize - The size in pixels the primitive is enlarged at each edge during conservative rasterization - - - float - maxExtraPrimitiveOverestimationSize - The maximum additional overestimation the client can specify in the pipeline state - - - float - extraPrimitiveOverestimationSizeGranularity - The granularity of extra overestimation sizes the implementations supports between 0 and maxExtraOverestimationSize - - - VkBool32 - primitiveUnderestimation - true if the implementation supports conservative rasterization underestimation mode - - - VkBool32 - conservativePointAndLineRasterization - true if conservative rasterization also applies to points and lines - - - VkBool32 - degenerateTrianglesRasterized - true if degenerate triangles (those with zero area after snap) are rasterized - - - VkBool32 - degenerateLinesRasterized - true if degenerate lines (those with zero length after snap) are rasterized - - - VkBool32 - fullyCoveredFragmentShaderInputVariable - true if the implementation supports the FullyCoveredEXT SPIR-V builtin fragment shader input variable - - - VkBool32 - conservativeRasterizationPostDepthCoverage - true if the implementation supports both conservative rasterization and post depth coverage sample coverage mask - - - - - VkStructureType - sType - - - const void* pNext - - - VkTimeDomainEXT - timeDomain - - - - - VkStructureType - sType - - - void* pNext - - - uint32_t - shaderEngineCount - number of shader engines - - - uint32_t - shaderArraysPerEngineCount - number of shader arrays - - - uint32_t - computeUnitsPerShaderArray - number of physical CUs per shader array - - - uint32_t - simdPerComputeUnit - number of SIMDs per compute unit - - - uint32_t - wavefrontsPerSimd - number of wavefront slots in each SIMD - - - uint32_t - wavefrontSize - maximum number of threads per wavefront - - - uint32_t - sgprsPerSimd - number of physical SGPRs per SIMD - - - uint32_t - minSgprAllocation - minimum number of SGPRs that can be allocated by a wave - - - uint32_t - maxSgprAllocation - number of available SGPRs - - - uint32_t - sgprAllocationGranularity - SGPRs are allocated in groups of this size - - - uint32_t - vgprsPerSimd - number of physical VGPRs per SIMD - - - uint32_t - minVgprAllocation - minimum number of VGPRs that can be allocated by a wave - - - uint32_t - maxVgprAllocation - number of available VGPRs - - - uint32_t - vgprAllocationGranularity - VGPRs are allocated in groups of this size - - - - - VkStructureType - sType - - - void* pNextPointer to next structure - - - VkShaderCorePropertiesFlagsAMD - shaderCoreFeatures - features supported by the shader core - - - uint32_t - activeComputeUnitCount - number of active compute units across all shader engines/arrays - - - - - VkStructureType - sType - - - const void* pNext - - - VkPipelineRasterizationConservativeStateCreateFlagsEXT - flags - Reserved - - - VkConservativeRasterizationModeEXT - conservativeRasterizationMode - Conservative rasterization mode - - - float - extraPrimitiveOverestimationSize - Extra overestimation to add to the primitive - - - - - VkStructureType - sType - - - void* pNext - - - 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 - - - - - - VkStructureType - sType - - - void* pNext - - - uint32_t - maxUpdateAfterBindDescriptorsInAllPools - - - VkBool32 - shaderUniformBufferArrayNonUniformIndexingNative - - - VkBool32 - shaderSampledImageArrayNonUniformIndexingNative - - - VkBool32 - shaderStorageBufferArrayNonUniformIndexingNative - - - VkBool32 - shaderStorageImageArrayNonUniformIndexingNative - - - VkBool32 - shaderInputAttachmentArrayNonUniformIndexingNative - - - VkBool32 - robustBufferAccessUpdateAfterBind - - - VkBool32 - quadDivergentImplicitLod - - - uint32_t - maxPerStageDescriptorUpdateAfterBindSamplers - - - uint32_t - maxPerStageDescriptorUpdateAfterBindUniformBuffers - - - uint32_t - maxPerStageDescriptorUpdateAfterBindStorageBuffers - - - uint32_t - maxPerStageDescriptorUpdateAfterBindSampledImages - - - uint32_t - maxPerStageDescriptorUpdateAfterBindStorageImages - - - uint32_t - maxPerStageDescriptorUpdateAfterBindInputAttachments - - - uint32_t - maxPerStageUpdateAfterBindResources - - - uint32_t - maxDescriptorSetUpdateAfterBindSamplers - - - uint32_t - maxDescriptorSetUpdateAfterBindUniformBuffers - - - uint32_t - maxDescriptorSetUpdateAfterBindUniformBuffersDynamic - - - uint32_t - maxDescriptorSetUpdateAfterBindStorageBuffers - - - uint32_t - maxDescriptorSetUpdateAfterBindStorageBuffersDynamic - - - uint32_t - maxDescriptorSetUpdateAfterBindSampledImages - - - uint32_t - maxDescriptorSetUpdateAfterBindStorageImages - - - uint32_t - maxDescriptorSetUpdateAfterBindInputAttachments - - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - bindingCount - - - const VkDescriptorBindingFlags* pBindingFlags - - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - descriptorSetCount - - - const uint32_t* pDescriptorCounts - - - - - - VkStructureType - sType - - - void* pNext - - - uint32_t - maxVariableDescriptorCount - - - - - - VkStructureType - sType - - - const void* pNext - - - VkAttachmentDescriptionFlags - flags - - - VkFormat - format - - - VkSampleCountFlagBits - samples - - - VkAttachmentLoadOp - loadOp - Load operation for color or depth data - - - VkAttachmentStoreOp - storeOp - Store operation for color or depth data - - - VkAttachmentLoadOp - stencilLoadOp - Load operation for stencil data - - - VkAttachmentStoreOp - stencilStoreOp - Store operation for stencil data - - - VkImageLayout - initialLayout - - - VkImageLayout - finalLayout - - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - attachment - - - VkImageLayout - layout - - - VkImageAspectFlags - aspectMask - - - - - - VkStructureType - sType - - - const void* pNext - - - VkSubpassDescriptionFlags - flags - - - VkPipelineBindPoint - pipelineBindPoint - - - uint32_t - viewMask - - - uint32_t - inputAttachmentCount - - - const VkAttachmentReference2* pInputAttachments - - - uint32_t - colorAttachmentCount - - - const VkAttachmentReference2* pColorAttachments - - - const VkAttachmentReference2* pResolveAttachments - - - const VkAttachmentReference2* pDepthStencilAttachment - - - uint32_t - preserveAttachmentCount - - - const uint32_t* pPreserveAttachments - - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - srcSubpass - - - uint32_t - dstSubpass - - - VkPipelineStageFlags - srcStageMask - - - VkPipelineStageFlags - dstStageMask - - - VkAccessFlags - srcAccessMask - - - VkAccessFlags - dstAccessMask - - - VkDependencyFlags - dependencyFlags - - - int32_t - viewOffset - - - - - - VkStructureType - sType - - - const void* pNext - - - VkRenderPassCreateFlags - flags - - - uint32_t - attachmentCount - - - const VkAttachmentDescription2* pAttachments - - - uint32_t - subpassCount - - - const VkSubpassDescription2* pSubpasses - - - uint32_t - dependencyCount - - - const VkSubpassDependency2* pDependencies - - - uint32_t - correlatedViewMaskCount - - - const uint32_t* pCorrelatedViewMasks - - - - - - VkStructureType - sType - - - const void* pNext - - - VkSubpassContents - contents - - - - - - VkStructureType - sType - - - const void* pNext - - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - timelineSemaphore - - - - - - VkStructureType - sType - - - void* pNext - - - uint64_t - maxTimelineSemaphoreValueDifference - - - - - - VkStructureType - sType - - - const void* pNext - - - VkSemaphoreType - semaphoreType - - - uint64_t - initialValue - - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - waitSemaphoreValueCount - - - const uint64_t* pWaitSemaphoreValues - - - uint32_t - signalSemaphoreValueCount - - - const uint64_t* pSignalSemaphoreValues - - - - - - VkStructureType - sType - - - const void* pNext - - - VkSemaphoreWaitFlags - flags - - - uint32_t - semaphoreCount - - - const VkSemaphore* pSemaphores - - - const uint64_t* pValues - - - - - - VkStructureType - sType - - - const void* pNext - - - VkSemaphore - semaphore - - - uint64_t - value - - - - - - uint32_t - binding - - - uint32_t - divisor - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - vertexBindingDivisorCount - - - const VkVertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors - - - - - VkStructureType - sType - - - void* pNext - - - uint32_t - maxVertexAttribDivisor - max value of vertex attribute divisor - - - - - VkStructureType - sType - - - void* pNext - - - uint32_t - pciDomain - - - uint32_t - pciBus - - - uint32_t - pciDevice - - - uint32_t - pciFunction - - - - - VkStructureType - sType - - - const void* pNext - - - struct AHardwareBuffer* buffer - - - - - VkStructureType - sType - - - void* pNext - - - uint64_t - androidHardwareBufferUsage - - - - - VkStructureType - sType - - - void* pNext - - - VkDeviceSize - allocationSize - - - uint32_t - memoryTypeBits - - - - - VkStructureType - sType - - - const void* pNext - - - VkDeviceMemory - memory - - - - - VkStructureType - sType - - - void* pNext - - - VkFormat - format - - - uint64_t - externalFormat - - - VkFormatFeatureFlags - formatFeatures - - - VkComponentMapping - samplerYcbcrConversionComponents - - - VkSamplerYcbcrModelConversion - suggestedYcbcrModel - - - VkSamplerYcbcrRange - suggestedYcbcrRange - - - VkChromaLocation - suggestedXChromaOffset - - - VkChromaLocation - suggestedYChromaOffset - - - - - VkStructureType - sType - - - const void* pNext - - - VkBool32 - conditionalRenderingEnable - Whether this secondary command buffer may be executed during an active conditional rendering - - - - - VkStructureType - sType - - - void* pNext - - - uint64_t - externalFormat - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - storageBuffer8BitAccess - 8-bit integer variables supported in StorageBuffer - - - VkBool32 - uniformAndStorageBuffer8BitAccess - 8-bit integer variables supported in StorageBuffer and Uniform - - - VkBool32 - storagePushConstant8 - 8-bit integer variables supported in PushConstant - - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - conditionalRendering - - - VkBool32 - inheritedConditionalRendering - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - vulkanMemoryModel - - - VkBool32 - vulkanMemoryModelDeviceScope - - - VkBool32 - vulkanMemoryModelAvailabilityVisibilityChains - - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - shaderBufferInt64Atomics - - - VkBool32 - shaderSharedInt64Atomics - - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - shaderBufferFloat32Atomics - - - VkBool32 - shaderBufferFloat32AtomicAdd - - - VkBool32 - shaderBufferFloat64Atomics - - - VkBool32 - shaderBufferFloat64AtomicAdd - - - VkBool32 - shaderSharedFloat32Atomics - - - VkBool32 - shaderSharedFloat32AtomicAdd - - - VkBool32 - shaderSharedFloat64Atomics - - - VkBool32 - shaderSharedFloat64AtomicAdd - - - VkBool32 - shaderImageFloat32Atomics - - - VkBool32 - shaderImageFloat32AtomicAdd - - - VkBool32 - sparseImageFloat32Atomics - - - VkBool32 - sparseImageFloat32AtomicAdd - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - shaderBufferFloat16Atomics - - - VkBool32 - shaderBufferFloat16AtomicAdd - - - VkBool32 - shaderBufferFloat16AtomicMinMax - - - VkBool32 - shaderBufferFloat32AtomicMinMax - - - VkBool32 - shaderBufferFloat64AtomicMinMax - - - VkBool32 - shaderSharedFloat16Atomics - - - VkBool32 - shaderSharedFloat16AtomicAdd - - - VkBool32 - shaderSharedFloat16AtomicMinMax - - - VkBool32 - shaderSharedFloat32AtomicMinMax - - - VkBool32 - shaderSharedFloat64AtomicMinMax - - - VkBool32 - shaderImageFloat32AtomicMinMax - - - VkBool32 - sparseImageFloat32AtomicMinMax - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - vertexAttributeInstanceRateDivisor - - - VkBool32 - vertexAttributeInstanceRateZeroDivisor - - - - - VkStructureType - sType - - - void* pNext - - - VkPipelineStageFlags - checkpointExecutionStageMask - - - - - VkStructureType - sType - - - void* pNext - - - VkPipelineStageFlagBits - stage - - - void* pCheckpointMarker - - - - - VkStructureType - sType - - - void* pNext - - - VkResolveModeFlags - supportedDepthResolveModes - supported depth resolve modes - - - VkResolveModeFlags - supportedStencilResolveModes - supported stencil resolve modes - - - VkBool32 - independentResolveNone - depth and stencil resolve modes can be set independently if one of them is none - - - VkBool32 - independentResolve - depth and stencil resolve modes can be set independently - - - - - - VkStructureType - sType - - - const void* pNext - - - VkResolveModeFlagBits - depthResolveMode - depth resolve mode - - - VkResolveModeFlagBits - stencilResolveMode - stencil resolve mode - - - const VkAttachmentReference2* pDepthStencilResolveAttachmentdepth/stencil resolve attachment - - - - - - VkStructureType - sType - - - const void* pNext - - - VkFormat - decodeMode - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - decodeModeSharedExponent - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - transformFeedback - - - VkBool32 - geometryStreams - - - - - VkStructureType - sType - - - void* pNext - - - uint32_t - maxTransformFeedbackStreams - - - uint32_t - maxTransformFeedbackBuffers - - - VkDeviceSize - maxTransformFeedbackBufferSize - - - uint32_t - maxTransformFeedbackStreamDataSize - - - uint32_t - maxTransformFeedbackBufferDataSize - - - uint32_t - maxTransformFeedbackBufferDataStride - - - VkBool32 - transformFeedbackQueries - - - VkBool32 - transformFeedbackStreamsLinesTriangles - - - VkBool32 - transformFeedbackRasterizationStreamSelect - - - VkBool32 - transformFeedbackDraw - - - - - VkStructureType - sType - - - const void* pNext - - - VkPipelineRasterizationStateStreamCreateFlagsEXT - flags - - - uint32_t - rasterizationStream - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - representativeFragmentTest - - - - - VkStructureType - sType - - - const void* pNext - - - VkBool32 - representativeFragmentTestEnable - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - exclusiveScissor - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - exclusiveScissorCount - - - const VkRect2D* pExclusiveScissors - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - cornerSampledImage - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - computeDerivativeGroupQuads - - - VkBool32 - computeDerivativeGroupLinear - - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - imageFootprint - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - dedicatedAllocationImageAliasing - - - - - uint32_t - shadingRatePaletteEntryCount - - - const VkShadingRatePaletteEntryNV* pShadingRatePaletteEntries - - - - - VkStructureType - sType - - - const void* pNext - - - VkBool32 - shadingRateImageEnable - - - uint32_t - viewportCount - - - const VkShadingRatePaletteNV* pShadingRatePalettes - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - shadingRateImage - - - VkBool32 - shadingRateCoarseSampleOrder - - - - - VkStructureType - sType - - - void* pNext - - - VkExtent2D - shadingRateTexelSize - - - uint32_t - shadingRatePaletteSize - - - uint32_t - shadingRateMaxCoarseSamples - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - invocationMask - - - - - uint32_t - pixelX - - - uint32_t - pixelY - - - uint32_t - sample - - - - - VkShadingRatePaletteEntryNV - shadingRate - - - uint32_t - sampleCount - - - uint32_t - sampleLocationCount - - - const VkCoarseSampleLocationNV* pSampleLocations - - - - - VkStructureType - sType - - - const void* pNext - - - VkCoarseSampleOrderTypeNV - sampleOrderType - - - uint32_t - customSampleOrderCount - - - const VkCoarseSampleOrderCustomNV* pCustomSampleOrders - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - taskShader - - - VkBool32 - meshShader - - - - - VkStructureType - sType - - - void* pNext - - - uint32_t - maxDrawMeshTasksCount - - - uint32_t - maxTaskWorkGroupInvocations - - - uint32_t maxTaskWorkGroupSize[3] - - - uint32_t - maxTaskTotalMemorySize - - - uint32_t - maxTaskOutputCount - - - uint32_t - maxMeshWorkGroupInvocations - - - uint32_t maxMeshWorkGroupSize[3] - - - uint32_t - maxMeshTotalMemorySize - - - uint32_t - maxMeshOutputVertices - - - uint32_t - maxMeshOutputPrimitives - - - uint32_t - maxMeshMultiviewViewCount - - - uint32_t - meshOutputPerVertexGranularity - - - uint32_t - meshOutputPerPrimitiveGranularity - - - - - uint32_t - taskCount - - - uint32_t - firstTask - - - - - VkStructureType - sType - - - const void* pNext - - - VkRayTracingShaderGroupTypeKHR - type - - - uint32_t - generalShader - - - uint32_t - closestHitShader - - - uint32_t - anyHitShader - - - uint32_t - intersectionShader - - - - - VkStructureType - sType - - - const void* pNext - - - VkRayTracingShaderGroupTypeKHR - type - - - uint32_t - generalShader - - - uint32_t - closestHitShader - - - uint32_t - anyHitShader - - - uint32_t - intersectionShader - - - const void* pShaderGroupCaptureReplayHandle - - - - - VkStructureType - sType - - - const void* pNext - - - VkPipelineCreateFlags - flags - Pipeline creation flags - - - uint32_t - stageCount - - - const VkPipelineShaderStageCreateInfo* pStagesOne entry for each active shader stage - - - uint32_t - groupCount - - - const VkRayTracingShaderGroupCreateInfoNV* pGroups - - - uint32_t - maxRecursionDepth - - - VkPipelineLayout - layout - Interface layout of the pipeline - - - VkPipeline - basePipelineHandle - If VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is nonzero, it specifies the handle of the base pipeline this is a derivative of - - - int32_t - basePipelineIndex - If VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is not -1, it specifies an index into pCreateInfos of the base pipeline this is a derivative of - - - - - VkStructureType - sType - - - const void* pNext - - - VkPipelineCreateFlags - flags - Pipeline creation flags - - - uint32_t - stageCount - - - const VkPipelineShaderStageCreateInfo* pStagesOne entry for each active shader stage - - - uint32_t - groupCount - - - const VkRayTracingShaderGroupCreateInfoKHR* pGroups - - - uint32_t - maxPipelineRayRecursionDepth - - - const VkPipelineLibraryCreateInfoKHR* pLibraryInfo - - - const VkRayTracingPipelineInterfaceCreateInfoKHR* pLibraryInterface - - - const VkPipelineDynamicStateCreateInfo* pDynamicState - - - VkPipelineLayout - layout - Interface layout of the pipeline - - - VkPipeline - basePipelineHandle - If VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is nonzero, it specifies the handle of the base pipeline this is a derivative of - - - int32_t - basePipelineIndex - If VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is not -1, it specifies an index into pCreateInfos of the base pipeline this is a derivative of - - - - - VkStructureType - sType - - - const void* pNext - - - VkBuffer - vertexData - - - VkDeviceSize - vertexOffset - - - uint32_t - vertexCount - - - VkDeviceSize - vertexStride - - - VkFormat - vertexFormat - - - VkBuffer - indexData - - - VkDeviceSize - indexOffset - - - uint32_t - indexCount - - - VkIndexType - indexType - - - VkBuffer - transformData - Optional reference to array of floats representing a 3x4 row major affine transformation matrix. - - - VkDeviceSize - transformOffset - - - - - VkStructureType - sType - - - const void* pNext - - - VkBuffer - aabbData - - - uint32_t - numAABBs - - - uint32_t - stride - Stride in bytes between AABBs - - - VkDeviceSize - offset - Offset in bytes of the first AABB in aabbData - - - - - VkGeometryTrianglesNV - triangles - - - VkGeometryAABBNV - aabbs - - - - - VkStructureType - sType - - - const void* pNext - - - VkGeometryTypeKHR - geometryType - - - VkGeometryDataNV - geometry - - - VkGeometryFlagsKHR - flags - - - - - VkStructureType - sType - - - const void* pNext - - - VkAccelerationStructureTypeNV - type - - - VkBuildAccelerationStructureFlagsNV - flags - - - uint32_t - instanceCount - - - uint32_t - geometryCount - - - const VkGeometryNV* pGeometries - - - - - VkStructureType - sType - - - const void* pNext - - - VkDeviceSize - compactedSize - - - VkAccelerationStructureInfoNV - info - - - - - VkStructureType - sType - - - const void* pNext - - - VkAccelerationStructureNV - accelerationStructure - - - VkDeviceMemory - memory - - - VkDeviceSize - memoryOffset - - - uint32_t - deviceIndexCount - - - const uint32_t* pDeviceIndices - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - accelerationStructureCount - - - const VkAccelerationStructureKHR* pAccelerationStructures - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - accelerationStructureCount - - - const VkAccelerationStructureNV* pAccelerationStructures - - - - - VkStructureType - sType - - - const void* pNext - - - VkAccelerationStructureMemoryRequirementsTypeNV - type - - - VkAccelerationStructureNV - accelerationStructure - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - accelerationStructure - - - VkBool32 - accelerationStructureCaptureReplay - - - VkBool32 - accelerationStructureIndirectBuild - - - VkBool32 - accelerationStructureHostCommands - - - VkBool32 - descriptorBindingAccelerationStructureUpdateAfterBind - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - rayTracingPipeline - - - VkBool32 - rayTracingPipelineShaderGroupHandleCaptureReplay - - - VkBool32 - rayTracingPipelineShaderGroupHandleCaptureReplayMixed - - - VkBool32 - rayTracingPipelineTraceRaysIndirect - - - VkBool32 - rayTraversalPrimitiveCulling - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - rayQuery - - - - - VkStructureType - sType - - - void* pNext - - - uint64_t - maxGeometryCount - - - uint64_t - maxInstanceCount - - - uint64_t - maxPrimitiveCount - - - uint32_t - maxPerStageDescriptorAccelerationStructures - - - uint32_t - maxPerStageDescriptorUpdateAfterBindAccelerationStructures - - - uint32_t - maxDescriptorSetAccelerationStructures - - - uint32_t - maxDescriptorSetUpdateAfterBindAccelerationStructures - - - uint32_t - minAccelerationStructureScratchOffsetAlignment - - - - - VkStructureType - sType - - - void* pNext - - - uint32_t - shaderGroupHandleSize - - - uint32_t - maxRayRecursionDepth - - - uint32_t - maxShaderGroupStride - - - uint32_t - shaderGroupBaseAlignment - - - uint32_t - shaderGroupHandleCaptureReplaySize - - - uint32_t - maxRayDispatchInvocationCount - - - uint32_t - shaderGroupHandleAlignment - - - uint32_t - maxRayHitAttributeSize - - - - - VkStructureType - sType - - - void* pNext - - - uint32_t - shaderGroupHandleSize - - - uint32_t - maxRecursionDepth - - - uint32_t - maxShaderGroupStride - - - uint32_t - shaderGroupBaseAlignment - - - uint64_t - maxGeometryCount - - - uint64_t - maxInstanceCount - - - uint64_t - maxTriangleCount - - - uint32_t - maxDescriptorSetAccelerationStructures - - - - - VkDeviceAddress - deviceAddress - - - VkDeviceSize - stride - - - VkDeviceSize - size - - - - - uint32_t - width - - - uint32_t - height - - - uint32_t - depth - - - - - VkDeviceAddress - raygenShaderRecordAddress - - - VkDeviceSize - raygenShaderRecordSize - - - VkDeviceAddress - missShaderBindingTableAddress - - - VkDeviceSize - missShaderBindingTableSize - - - VkDeviceSize - missShaderBindingTableStride - - - VkDeviceAddress - hitShaderBindingTableAddress - - - VkDeviceSize - hitShaderBindingTableSize - - - VkDeviceSize - hitShaderBindingTableStride - - - VkDeviceAddress - callableShaderBindingTableAddress - - - VkDeviceSize - callableShaderBindingTableSize - - - VkDeviceSize - callableShaderBindingTableStride - - - uint32_t - width - - - uint32_t - height - - - uint32_t - depth - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - rayTracingMaintenance1 - - - VkBool32 - rayTracingPipelineTraceRaysIndirect2 - - - - - VkStructureType - sType - - - void* pNext - - - uint32_t - drmFormatModifierCount - - - VkDrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties - - - - - uint64_t - drmFormatModifier - - - uint32_t - drmFormatModifierPlaneCount - - - VkFormatFeatureFlags - drmFormatModifierTilingFeatures - - - - - VkStructureType - sType - - - const void* pNext - - - uint64_t - drmFormatModifier - - - VkSharingMode - sharingMode - - - uint32_t - queueFamilyIndexCount - - - const uint32_t* pQueueFamilyIndices - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - drmFormatModifierCount - - - const uint64_t* pDrmFormatModifiers - - - - - VkStructureType - sType - - - const void* pNext - - - uint64_t - drmFormatModifier - - - uint32_t - drmFormatModifierPlaneCount - - - const VkSubresourceLayout* pPlaneLayouts - - - - - VkStructureType - sType - - - void* pNext - - - uint64_t - drmFormatModifier - - - - - VkStructureType - sType - - - const void* pNext - - - VkImageUsageFlags - stencilUsage - - - - - - VkStructureType - sType - - - const void* pNext - - - VkMemoryOverallocationBehaviorAMD - overallocationBehavior - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - fragmentDensityMap - - - VkBool32 - fragmentDensityMapDynamic - - - VkBool32 - fragmentDensityMapNonSubsampledImages - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - fragmentDensityMapDeferred - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - fragmentDensityMapOffset - - - - - VkStructureType - sType - - - void* pNext - - - VkExtent2D - minFragmentDensityTexelSize - - - VkExtent2D - maxFragmentDensityTexelSize - - - VkBool32 - fragmentDensityInvocations - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - subsampledLoads - - - VkBool32 - subsampledCoarseReconstructionEarlyAccess - - - uint32_t - maxSubsampledArrayLayers - - - uint32_t - maxDescriptorSetSubsampledSamplers - - - - - VkStructureType - sType - - - void* pNext - - - VkExtent2D - fragmentDensityOffsetGranularity - - - - - VkStructureType - sType - - - const void* pNext - - - VkAttachmentReference - fragmentDensityMapAttachment - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - fragmentDensityOffsetCount - - - const VkOffset2D* pFragmentDensityOffsets - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - scalarBlockLayout - - - - - - VkStructureType - sType - - - const void* pNext - - - VkBool32 - supportsProtected - Represents if surface can be protected - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - uniformBufferStandardLayout - - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - depthClipEnable - - - - - VkStructureType - sType - - - const void* pNext - - - VkPipelineRasterizationDepthClipStateCreateFlagsEXT - flags - Reserved - - - VkBool32 - depthClipEnable - - - - - VkStructureType - sType - - - void* pNext - - - VkDeviceSize heapBudget[VK_MAX_MEMORY_HEAPS] - - - VkDeviceSize heapUsage[VK_MAX_MEMORY_HEAPS] - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - memoryPriority - - - - - VkStructureType - sType - - - const void* pNext - - - float - priority - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - pageableDeviceLocalMemory - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - bufferDeviceAddress - - - VkBool32 - bufferDeviceAddressCaptureReplay - - - VkBool32 - bufferDeviceAddressMultiDevice - - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - bufferDeviceAddress - - - VkBool32 - bufferDeviceAddressCaptureReplay - - - VkBool32 - bufferDeviceAddressMultiDevice - - - - - - VkStructureType - sType - - - const void* pNext - - - VkBuffer - buffer - - - - - - - VkStructureType - sType - - - const void* pNext - - - uint64_t - opaqueCaptureAddress - - - - - - VkStructureType - sType - - - const void* pNext - - - VkDeviceAddress - deviceAddress - - - - - VkStructureType - sType - - - void* pNext - - - VkImageViewType - imageViewType - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - filterCubic - The combinations of format, image type (and image view type if provided) can be filtered with VK_FILTER_CUBIC_EXT - - - VkBool32 - filterCubicMinmax - The combination of format, image type (and image view type if provided) can be filtered with VK_FILTER_CUBIC_EXT and ReductionMode of Min or Max - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - imagelessFramebuffer - - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - attachmentImageInfoCount - - - const VkFramebufferAttachmentImageInfo* pAttachmentImageInfos - - - - - - VkStructureType - sType - - - const void* pNext - - - VkImageCreateFlags - flags - Image creation flags - - - VkImageUsageFlags - usage - Image usage flags - - - uint32_t - width - - - uint32_t - height - - - uint32_t - layerCount - - - uint32_t - viewFormatCount - - - const VkFormat* pViewFormats - - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - attachmentCount - - - const VkImageView* pAttachments - - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - textureCompressionASTC_HDR - - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - cooperativeMatrix - - - VkBool32 - cooperativeMatrixRobustBufferAccess - - - - - VkStructureType - sType - - - void* pNext - - - VkShaderStageFlags - cooperativeMatrixSupportedStages - - - - - VkStructureType - sType - - - void* pNext - - - uint32_t - MSize - - - uint32_t - NSize - - - uint32_t - KSize - - - VkComponentTypeNV - AType - - - VkComponentTypeNV - BType - - - VkComponentTypeNV - CType - - - VkComponentTypeNV - DType - - - VkScopeNV - scope - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - ycbcrImageArrays - - - - - VkStructureType - sType - - - const void* pNext - - - VkImageView - imageView - - - VkDescriptorType - descriptorType - - - VkSampler - sampler - - - - - VkStructureType - sType - - - void* pNext - - - VkDeviceAddress - deviceAddress - - - VkDeviceSize - size - - - - - VkStructureType - sType - - - const void* pNext - - - GgpFrameToken - frameToken - - - - - VkPipelineCreationFeedbackFlags - flags - - - uint64_t - duration - - - - - - VkStructureType - sType - - - const void* pNext - - - VkPipelineCreationFeedback* pPipelineCreationFeedbackOutput pipeline creation feedback. - - - uint32_t - pipelineStageCreationFeedbackCount - - - VkPipelineCreationFeedback* pPipelineStageCreationFeedbacksOne entry for each shader stage specified in the parent Vk*PipelineCreateInfo struct - - - - - - VkStructureType - sType - - - void* pNext - - - VkFullScreenExclusiveEXT - fullScreenExclusive - - - - - VkStructureType - sType - - - const void* pNext - - - HMONITOR - hmonitor - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - fullScreenExclusiveSupported - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - performanceCounterQueryPools - performance counters supported in query pools - - - VkBool32 - performanceCounterMultipleQueryPools - performance counters from multiple query pools can be accessed in the same primary command buffer - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - allowCommandBufferQueryCopies - Flag to specify whether performance queries are allowed to be used in vkCmdCopyQueryPoolResults - - - - - VkStructureType - sType - - - void* pNext - - - VkPerformanceCounterUnitKHR - unit - - - VkPerformanceCounterScopeKHR - scope - - - VkPerformanceCounterStorageKHR - storage - - - uint8_t uuid[VK_UUID_SIZE] - - - - - VkStructureType - sType - - - void* pNext - - - VkPerformanceCounterDescriptionFlagsKHR - flags - - - char name[VK_MAX_DESCRIPTION_SIZE] - - - char category[VK_MAX_DESCRIPTION_SIZE] - - - char description[VK_MAX_DESCRIPTION_SIZE] - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - queueFamilyIndex - - - uint32_t - counterIndexCount - - - const uint32_t* pCounterIndices - - - - - int32_t - int32 - - - int64_t - int64 - - - uint32_t - uint32 - - - uint64_t - uint64 - - - float - float32 - - - double - float64 - - - - - VkStructureType - sType - - - const void* pNext - - - VkAcquireProfilingLockFlagsKHR - flags - Acquire profiling lock flags - - - uint64_t - timeout - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - counterPassIndex - Index for which counter pass to submit - - - - - VkStructureType - sType - - - const void* pNext - - - VkHeadlessSurfaceCreateFlagsEXT - flags - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - coverageReductionMode - - - - - VkStructureType - sType - - - const void* pNext - - - VkPipelineCoverageReductionStateCreateFlagsNV - flags - - - VkCoverageReductionModeNV - coverageReductionMode - - - - - VkStructureType - sType - - - void* pNext - - - VkCoverageReductionModeNV - coverageReductionMode - - - VkSampleCountFlagBits - rasterizationSamples - - - VkSampleCountFlags - depthStencilSamples - - - VkSampleCountFlags - colorSamples - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - shaderIntegerFunctions2 - - - - - uint32_t - value32 - - - uint64_t - value64 - - - float - valueFloat - - - VkBool32 - valueBool - - - const char* valueString - - - - - VkPerformanceValueTypeINTEL - type - - - VkPerformanceValueDataINTEL - data - - - - - VkStructureType - sType - - - const void* pNext - - - void* pUserData - - - - - VkStructureType - sType - - - const void* pNext - - - VkQueryPoolSamplingModeINTEL - performanceCountersSampling - - - - - - VkStructureType - sType - - - const void* pNext - - - uint64_t - marker - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - marker - - - - - VkStructureType - sType - - - const void* pNext - - - VkPerformanceOverrideTypeINTEL - type - - - VkBool32 - enable - - - uint64_t - parameter - - - - - VkStructureType - sType - - - const void* pNext - - - VkPerformanceConfigurationTypeINTEL - type - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - shaderSubgroupClock - - - VkBool32 - shaderDeviceClock - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - indexTypeUint8 - - - - - VkStructureType - sType - - - void* pNext - - - uint32_t - shaderSMCount - - - uint32_t - shaderWarpsPerSM - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - shaderSMBuiltins - - - - - VkStructureType - sType - - - void* pNextPointer to next structure - - - VkBool32 - fragmentShaderSampleInterlock - - - VkBool32 - fragmentShaderPixelInterlock - - - VkBool32 - fragmentShaderShadingRateInterlock - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - separateDepthStencilLayouts - - - - - - VkStructureType - sType - - - void* pNext - - - VkImageLayout - stencilLayout - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - primitiveTopologyListRestart - - - VkBool32 - primitiveTopologyPatchListRestart - - - - - - VkStructureType - sType - - - void* pNext - - - VkImageLayout - stencilInitialLayout - - - VkImageLayout - stencilFinalLayout - - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - pipelineExecutableInfo - - - - - VkStructureType - sType - - - const void* pNext - - - VkPipeline - pipeline - - - - - VkStructureType - sType - - - void* pNext - - - VkShaderStageFlags - stages - - - char name[VK_MAX_DESCRIPTION_SIZE] - - - char description[VK_MAX_DESCRIPTION_SIZE] - - - uint32_t - subgroupSize - - - - - VkStructureType - sType - - - const void* pNext - - - VkPipeline - pipeline - - - uint32_t - executableIndex - - - - - VkBool32 - b32 - - - int64_t - i64 - - - uint64_t - u64 - - - double - f64 - - - - - VkStructureType - sType - - - void* pNext - - - char name[VK_MAX_DESCRIPTION_SIZE] - - - char description[VK_MAX_DESCRIPTION_SIZE] - - - VkPipelineExecutableStatisticFormatKHR - format - - - VkPipelineExecutableStatisticValueKHR - value - - - - - VkStructureType - sType - - - void* pNext - - - char name[VK_MAX_DESCRIPTION_SIZE] - - - char description[VK_MAX_DESCRIPTION_SIZE] - - - VkBool32 - isText - - - size_t - dataSize - - - void* pData - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - shaderDemoteToHelperInvocation - - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - texelBufferAlignment - - - - - VkStructureType - sType - - - void* pNext - - - VkDeviceSize - storageTexelBufferOffsetAlignmentBytes - - - VkBool32 - storageTexelBufferOffsetSingleTexelAlignment - - - VkDeviceSize - uniformTexelBufferOffsetAlignmentBytes - - - VkBool32 - uniformTexelBufferOffsetSingleTexelAlignment - - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - subgroupSizeControl - - - VkBool32 - computeFullSubgroups - - - - - - VkStructureType - sType - - - void* pNext - - - uint32_t - minSubgroupSize - The minimum subgroup size supported by this device - - - uint32_t - maxSubgroupSize - The maximum subgroup size supported by this device - - - uint32_t - maxComputeWorkgroupSubgroups - The maximum number of subgroups supported in a workgroup - - - VkShaderStageFlags - requiredSubgroupSizeStages - The shader stages that support specifying a subgroup size - - - - - - VkStructureType - sType - - - void* pNext - - - uint32_t - requiredSubgroupSize - - - - - - VkStructureType - sType - - - void* pNext - - - VkRenderPass - renderPass - - - uint32_t - subpass - - - - - VkStructureType - sType - - - void* pNext - - - uint32_t - maxSubpassShadingWorkgroupSizeAspectRatio - - - - - VkStructureType - sType - - - const void* pNext - - - uint64_t - opaqueCaptureAddress - - - - - - VkStructureType - sType - - - const void* pNext - - - VkDeviceMemory - memory - - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - rectangularLines - - - VkBool32 - bresenhamLines - - - VkBool32 - smoothLines - - - VkBool32 - stippledRectangularLines - - - VkBool32 - stippledBresenhamLines - - - VkBool32 - stippledSmoothLines - - - - - VkStructureType - sType - - - void* pNext - - - uint32_t - lineSubPixelPrecisionBits - - - - - VkStructureType - sType - - - const void* pNext - - - VkLineRasterizationModeEXT - lineRasterizationMode - - - VkBool32 - stippledLineEnable - - - uint32_t - lineStippleFactor - - - uint16_t - lineStipplePattern - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - pipelineCreationCacheControl - - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - storageBuffer16BitAccess - 16-bit integer/floating-point variables supported in BufferBlock - - - VkBool32 - uniformAndStorageBuffer16BitAccess - 16-bit integer/floating-point variables supported in BufferBlock and Block - - - VkBool32 - storagePushConstant16 - 16-bit integer/floating-point variables supported in PushConstant - - - VkBool32 - storageInputOutput16 - 16-bit integer/floating-point variables supported in shader inputs and outputs - - - VkBool32 - multiview - Multiple views in a renderpass - - - VkBool32 - multiviewGeometryShader - Multiple views in a renderpass w/ geometry shader - - - VkBool32 - multiviewTessellationShader - Multiple views in a renderpass w/ tessellation shader - - - VkBool32 - variablePointersStorageBuffer - - - VkBool32 - variablePointers - - - VkBool32 - protectedMemory - - - VkBool32 - samplerYcbcrConversion - Sampler color conversion supported - - - VkBool32 - shaderDrawParameters - - - - - VkStructureType - sType - - - void* pNext - - - uint8_t deviceUUID[VK_UUID_SIZE] - - - uint8_t driverUUID[VK_UUID_SIZE] - - - uint8_t deviceLUID[VK_LUID_SIZE] - - - uint32_t - deviceNodeMask - - - VkBool32 - deviceLUIDValid - - - uint32_t - subgroupSize - The size of a subgroup for this queue. - - - VkShaderStageFlags - subgroupSupportedStages - Bitfield of what shader stages support subgroup operations - - - VkSubgroupFeatureFlags - subgroupSupportedOperations - Bitfield of what subgroup operations are supported. - - - VkBool32 - subgroupQuadOperationsInAllStages - Flag to specify whether quad operations are available in all stages. - - - VkPointClippingBehavior - pointClippingBehavior - - - uint32_t - maxMultiviewViewCount - max number of views in a subpass - - - uint32_t - maxMultiviewInstanceIndex - max instance index for a draw in a multiview subpass - - - VkBool32 - protectedNoFault - - - uint32_t - maxPerSetDescriptors - - - VkDeviceSize - maxMemoryAllocationSize - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - samplerMirrorClampToEdge - - - VkBool32 - drawIndirectCount - - - VkBool32 - storageBuffer8BitAccess - 8-bit integer variables supported in StorageBuffer - - - VkBool32 - uniformAndStorageBuffer8BitAccess - 8-bit integer variables supported in StorageBuffer and Uniform - - - VkBool32 - storagePushConstant8 - 8-bit integer variables supported in PushConstant - - - VkBool32 - shaderBufferInt64Atomics - - - VkBool32 - shaderSharedInt64Atomics - - - VkBool32 - shaderFloat16 - 16-bit floats (halfs) in shaders - - - VkBool32 - shaderInt8 - 8-bit integers in shaders - - - 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 - - - - - VkStructureType - sType - - - void* pNext - - - VkDriverId - driverID - - - char driverName[VK_MAX_DRIVER_NAME_SIZE] - - - char driverInfo[VK_MAX_DRIVER_INFO_SIZE] - - - VkConformanceVersion - conformanceVersion - - - VkShaderFloatControlsIndependence - denormBehaviorIndependence - - - VkShaderFloatControlsIndependence - roundingModeIndependence - - - VkBool32 - shaderSignedZeroInfNanPreserveFloat16 - An implementation can preserve signed zero, nan, inf - - - VkBool32 - shaderSignedZeroInfNanPreserveFloat32 - An implementation can preserve signed zero, nan, inf - - - VkBool32 - shaderSignedZeroInfNanPreserveFloat64 - An implementation can preserve signed zero, nan, inf - - - VkBool32 - shaderDenormPreserveFloat16 - An implementation can preserve denormals - - - VkBool32 - shaderDenormPreserveFloat32 - An implementation can preserve denormals - - - VkBool32 - shaderDenormPreserveFloat64 - An implementation can preserve denormals - - - VkBool32 - shaderDenormFlushToZeroFloat16 - An implementation can flush to zero denormals - - - VkBool32 - shaderDenormFlushToZeroFloat32 - An implementation can flush to zero denormals - - - VkBool32 - shaderDenormFlushToZeroFloat64 - An implementation can flush to zero denormals - - - VkBool32 - shaderRoundingModeRTEFloat16 - An implementation can support RTE - - - VkBool32 - shaderRoundingModeRTEFloat32 - An implementation can support RTE - - - VkBool32 - shaderRoundingModeRTEFloat64 - An implementation can support RTE - - - VkBool32 - shaderRoundingModeRTZFloat16 - An implementation can support RTZ - - - VkBool32 - shaderRoundingModeRTZFloat32 - An implementation can support RTZ - - - VkBool32 - shaderRoundingModeRTZFloat64 - An implementation can support RTZ - - - uint32_t - maxUpdateAfterBindDescriptorsInAllPools - - - VkBool32 - shaderUniformBufferArrayNonUniformIndexingNative - - - VkBool32 - shaderSampledImageArrayNonUniformIndexingNative - - - VkBool32 - shaderStorageBufferArrayNonUniformIndexingNative - - - VkBool32 - shaderStorageImageArrayNonUniformIndexingNative - - - VkBool32 - shaderInputAttachmentArrayNonUniformIndexingNative - - - VkBool32 - robustBufferAccessUpdateAfterBind - - - VkBool32 - quadDivergentImplicitLod - - - uint32_t - maxPerStageDescriptorUpdateAfterBindSamplers - - - uint32_t - maxPerStageDescriptorUpdateAfterBindUniformBuffers - - - uint32_t - maxPerStageDescriptorUpdateAfterBindStorageBuffers - - - uint32_t - maxPerStageDescriptorUpdateAfterBindSampledImages - - - uint32_t - maxPerStageDescriptorUpdateAfterBindStorageImages - - - uint32_t - maxPerStageDescriptorUpdateAfterBindInputAttachments - - - uint32_t - maxPerStageUpdateAfterBindResources - - - uint32_t - maxDescriptorSetUpdateAfterBindSamplers - - - uint32_t - maxDescriptorSetUpdateAfterBindUniformBuffers - - - uint32_t - maxDescriptorSetUpdateAfterBindUniformBuffersDynamic - - - uint32_t - maxDescriptorSetUpdateAfterBindStorageBuffers - - - uint32_t - maxDescriptorSetUpdateAfterBindStorageBuffersDynamic - - - uint32_t - maxDescriptorSetUpdateAfterBindSampledImages - - - uint32_t - maxDescriptorSetUpdateAfterBindStorageImages - - - uint32_t - maxDescriptorSetUpdateAfterBindInputAttachments - - - VkResolveModeFlags - supportedDepthResolveModes - supported depth resolve modes - - - VkResolveModeFlags - supportedStencilResolveModes - supported stencil resolve modes - - - VkBool32 - independentResolveNone - depth and stencil resolve modes can be set independently if one of them is none - - - VkBool32 - independentResolve - depth and stencil resolve modes can be set independently - - - VkBool32 - filterMinmaxSingleComponentFormats - - - VkBool32 - filterMinmaxImageComponentMapping - - - uint64_t - maxTimelineSemaphoreValueDifference - - - VkSampleCountFlags - framebufferIntegerColorSampleCounts - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - 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 - - - - - VkStructureType - sType - - - void* pNext - - - uint32_t - minSubgroupSize - The minimum subgroup size supported by this device - - - uint32_t - maxSubgroupSize - The maximum subgroup size supported by this device - - - uint32_t - maxComputeWorkgroupSubgroups - The maximum number of subgroups supported in a workgroup - - - VkShaderStageFlags - requiredSubgroupSizeStages - The shader stages that support specifying a subgroup size - - - uint32_t - maxInlineUniformBlockSize - - - uint32_t - maxPerStageDescriptorInlineUniformBlocks - - - uint32_t - maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks - - - uint32_t - maxDescriptorSetInlineUniformBlocks - - - uint32_t - maxDescriptorSetUpdateAfterBindInlineUniformBlocks - - - uint32_t - maxInlineUniformTotalSize - - - VkBool32 - 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 - - - VkDeviceSize - storageTexelBufferOffsetAlignmentBytes - - - VkBool32 - storageTexelBufferOffsetSingleTexelAlignment - - - VkDeviceSize - uniformTexelBufferOffsetAlignmentBytes - - - VkBool32 - uniformTexelBufferOffsetSingleTexelAlignment - - - VkDeviceSize - maxBufferSize - - - - - VkStructureType - sType - - - const void* pNext - - - VkPipelineCompilerControlFlagsAMD - compilerControlFlags - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - deviceCoherentMemory - - - - - VkStructureType - sType - - - void* pNext - - - char name[VK_MAX_EXTENSION_NAME_SIZE] - - - char version[VK_MAX_EXTENSION_NAME_SIZE] - - - VkToolPurposeFlags - purposes - - - char description[VK_MAX_DESCRIPTION_SIZE] - - - char layer[VK_MAX_EXTENSION_NAME_SIZE] - - - - - - VkStructureType - sType - - - const void* pNext - - - VkClearColorValue - customBorderColor - - - VkFormat - format - - - - - VkStructureType - sType - - - void* pNext - - - uint32_t - maxCustomBorderColorSamplers - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - customBorderColors - - - VkBool32 - customBorderColorWithoutFormat - - - - - VkStructureType - sType - - - const void* pNext - - - VkComponentMapping - components - - - VkBool32 - srgb - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - borderColorSwizzle - - - VkBool32 - borderColorSwizzleFromImage - - - - - VkDeviceAddress - deviceAddress - - - void* hostAddress - - - - - VkDeviceAddress - deviceAddress - - - const void* hostAddress - - - - - VkStructureType - sType - - - const void* pNext - - - VkFormat - vertexFormat - - - VkDeviceOrHostAddressConstKHR - vertexData - - - VkDeviceSize - vertexStride - - - uint32_t - maxVertex - - - VkIndexType - indexType - - - VkDeviceOrHostAddressConstKHR - indexData - - - VkDeviceOrHostAddressConstKHR - transformData - - - - - VkStructureType - sType - - - const void* pNext - - - VkDeviceOrHostAddressConstKHR - data - - - VkDeviceSize - stride - - - - - VkStructureType - sType - - - const void* pNext - - - VkBool32 - arrayOfPointers - - - VkDeviceOrHostAddressConstKHR - data - - - - - VkAccelerationStructureGeometryTrianglesDataKHR - triangles - - - VkAccelerationStructureGeometryAabbsDataKHR - aabbs - - - VkAccelerationStructureGeometryInstancesDataKHR - instances - - - - - VkStructureType - sType - - - const void* pNext - - - VkGeometryTypeKHR - geometryType - - - VkAccelerationStructureGeometryDataKHR - geometry - - - VkGeometryFlagsKHR - flags - - - - - VkStructureType - sType - - - const void* pNext - - - VkAccelerationStructureTypeKHR - type - - - VkBuildAccelerationStructureFlagsKHR - flags - - - VkBuildAccelerationStructureModeKHR - mode - - - VkAccelerationStructureKHR - srcAccelerationStructure - - - VkAccelerationStructureKHR - dstAccelerationStructure - - - uint32_t - geometryCount - - - const VkAccelerationStructureGeometryKHR* pGeometries - - - const VkAccelerationStructureGeometryKHR* const* ppGeometries - - - VkDeviceOrHostAddressKHR - scratchData - - - - - uint32_t - primitiveCount - - - uint32_t - primitiveOffset - - - uint32_t - firstVertex - - - uint32_t - transformOffset - - - - - VkStructureType - sType - - - const void* pNext - - - VkAccelerationStructureCreateFlagsKHR - createFlags - - - VkBuffer - buffer - - - VkDeviceSize - offset - Specified in bytes - - - VkDeviceSize - size - - - VkAccelerationStructureTypeKHR - type - - - VkDeviceAddress - deviceAddress - - - - - float - minX - - - float - minY - - - float - minZ - - - float - maxX - - - float - maxY - - - float - maxZ - - - - - - float matrix[3][4] - - - - - The bitfields in this structure are non-normative since bitfield ordering is implementation-defined in C. The specification defines the normative layout. - - VkTransformMatrixKHR - transform - - - uint32_t instanceCustomIndex:24 - - - uint32_t mask:8 - - - uint32_t instanceShaderBindingTableRecordOffset:24 - - - VkGeometryInstanceFlagsKHR flags:8 - - - uint64_t - accelerationStructureReference - - - - - - VkStructureType - sType - - - const void* pNext - - - VkAccelerationStructureKHR - accelerationStructure - - - - - VkStructureType - sType - - - const void* pNext - - - const uint8_t* pVersionData - - - - - VkStructureType - sType - - - const void* pNext - - - VkAccelerationStructureKHR - src - - - VkAccelerationStructureKHR - dst - - - VkCopyAccelerationStructureModeKHR - mode - - - - - VkStructureType - sType - - - const void* pNext - - - VkAccelerationStructureKHR - src - - - VkDeviceOrHostAddressKHR - dst - - - VkCopyAccelerationStructureModeKHR - mode - - - - - VkStructureType - sType - - - const void* pNext - - - VkDeviceOrHostAddressConstKHR - src - - - VkAccelerationStructureKHR - dst - - - VkCopyAccelerationStructureModeKHR - mode - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - maxPipelineRayPayloadSize - - - uint32_t - maxPipelineRayHitAttributeSize - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - libraryCount - - - const VkPipeline* pLibraries - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - extendedDynamicState - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - extendedDynamicState2 - - - VkBool32 - extendedDynamicState2LogicOp - - - VkBool32 - extendedDynamicState2PatchControlPoints - - - - - VkStructureType - sType - - - void* pNextPointer to next structure - - - VkSurfaceTransformFlagBitsKHR - transform - - - - - VkStructureType - sType - - - const void* pNext - - - VkSurfaceTransformFlagBitsKHR - transform - - - - - VkStructureType - sType - - - void* pNextPointer to next structure - - - VkSurfaceTransformFlagBitsKHR - transform - - - VkRect2D - renderArea - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - diagnosticsConfig - - - - - VkStructureType - sType - - - const void* pNext - - - VkDeviceDiagnosticsConfigFlagsNV - flags - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - shaderZeroInitializeWorkgroupMemory - - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - shaderSubgroupUniformControlFlow - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - robustBufferAccess2 - - - VkBool32 - robustImageAccess2 - - - VkBool32 - nullDescriptor - - - - - VkStructureType - sType - - - void* pNext - - - VkDeviceSize - robustStorageBufferAccessSizeAlignment - - - VkDeviceSize - robustUniformBufferAccessSizeAlignment - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - robustImageAccess - - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - workgroupMemoryExplicitLayout - - - VkBool32 - workgroupMemoryExplicitLayoutScalarBlockLayout - - - VkBool32 - workgroupMemoryExplicitLayout8BitAccess - - - VkBool32 - workgroupMemoryExplicitLayout16BitAccess - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - constantAlphaColorBlendFactors - - - VkBool32 - events - - - VkBool32 - imageViewFormatReinterpretation - - - VkBool32 - imageViewFormatSwizzle - - - VkBool32 - imageView2DOn3DImage - - - VkBool32 - multisampleArrayImage - - - VkBool32 - mutableComparisonSamplers - - - VkBool32 - pointPolygons - - - VkBool32 - samplerMipLodBias - - - VkBool32 - separateStencilMaskRef - - - VkBool32 - shaderSampleRateInterpolationFunctions - - - VkBool32 - tessellationIsolines - - - VkBool32 - tessellationPointMode - - - VkBool32 - triangleFans - - - VkBool32 - vertexAttributeAccessBeyondStride - - - - - VkStructureType - sType - - - void* pNext - - - uint32_t - minVertexInputBindingStrideAlignment - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - formatA4R4G4B4 - - - VkBool32 - formatA4B4G4R4 - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - subpassShading - - - - - VkStructureType - sType - - - const void* pNext - - - VkDeviceSize - srcOffset - Specified in bytes - - - VkDeviceSize - dstOffset - Specified in bytes - - - VkDeviceSize - size - Specified in bytes - - - - - - VkStructureType - sType - - - const void* pNext - - - VkImageSubresourceLayers - srcSubresource - - - VkOffset3D - srcOffset - Specified in pixels for both compressed and uncompressed images - - - VkImageSubresourceLayers - dstSubresource - - - VkOffset3D - dstOffset - Specified in pixels for both compressed and uncompressed images - - - VkExtent3D - extent - Specified in pixels for both compressed and uncompressed images - - - - - - VkStructureType - sType - - - const void* pNext - - - VkImageSubresourceLayers - srcSubresource - - - VkOffset3D srcOffsets[2]Specified in pixels for both compressed and uncompressed images - - - VkImageSubresourceLayers - dstSubresource - - - VkOffset3D dstOffsets[2]Specified in pixels for both compressed and uncompressed images - - - - - - VkStructureType - sType - - - const void* pNext - - - VkDeviceSize - bufferOffset - Specified in bytes - - - uint32_t - bufferRowLength - Specified in texels - - - uint32_t - bufferImageHeight - - - VkImageSubresourceLayers - imageSubresource - - - VkOffset3D - imageOffset - Specified in pixels for both compressed and uncompressed images - - - VkExtent3D - imageExtent - Specified in pixels for both compressed and uncompressed images - - - - - - VkStructureType - sType - - - const void* pNext - - - VkImageSubresourceLayers - srcSubresource - - - VkOffset3D - srcOffset - - - VkImageSubresourceLayers - dstSubresource - - - VkOffset3D - dstOffset - - - VkExtent3D - extent - - - - - - VkStructureType - sType - - - const void* pNext - - - VkBuffer - srcBuffer - - - VkBuffer - dstBuffer - - - uint32_t - regionCount - - - const VkBufferCopy2* pRegions - - - - - - VkStructureType - sType - - - const void* pNext - - - VkImage - srcImage - - - VkImageLayout - srcImageLayout - - - VkImage - dstImage - - - VkImageLayout - dstImageLayout - - - uint32_t - regionCount - - - const VkImageCopy2* pRegions - - - - - - VkStructureType - sType - - - const void* pNext - - - VkImage - srcImage - - - VkImageLayout - srcImageLayout - - - VkImage - dstImage - - - VkImageLayout - dstImageLayout - - - uint32_t - regionCount - - - const VkImageBlit2* pRegions - - - VkFilter - filter - - - - - - VkStructureType - sType - - - const void* pNext - - - VkBuffer - srcBuffer - - - VkImage - dstImage - - - VkImageLayout - dstImageLayout - - - uint32_t - regionCount - - - const VkBufferImageCopy2* pRegions - - - - - - VkStructureType - sType - - - const void* pNext - - - VkImage - srcImage - - - VkImageLayout - srcImageLayout - - - VkBuffer - dstBuffer - - - uint32_t - regionCount - - - const VkBufferImageCopy2* pRegions - - - - - - VkStructureType - sType - - - const void* pNext - - - VkImage - srcImage - - - VkImageLayout - srcImageLayout - - - VkImage - dstImage - - - VkImageLayout - dstImageLayout - - - uint32_t - regionCount - - - const VkImageResolve2* pRegions - - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - shaderImageInt64Atomics - - - VkBool32 - sparseImageInt64Atomics - - - - - VkStructureType - sType - - - const void* pNext - - - const VkAttachmentReference2* pFragmentShadingRateAttachment - - - VkExtent2D - shadingRateAttachmentTexelSize - - - - - VkStructureType - sType - - - const void* pNext - - - VkExtent2D - fragmentSize - - - VkFragmentShadingRateCombinerOpKHR combinerOps[2] - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - pipelineFragmentShadingRate - - - VkBool32 - primitiveFragmentShadingRate - - - VkBool32 - attachmentFragmentShadingRate - - - - - VkStructureType - sType - - - void* pNext - - - VkExtent2D - minFragmentShadingRateAttachmentTexelSize - - - VkExtent2D - maxFragmentShadingRateAttachmentTexelSize - - - uint32_t - maxFragmentShadingRateAttachmentTexelSizeAspectRatio - - - VkBool32 - primitiveFragmentShadingRateWithMultipleViewports - - - VkBool32 - layeredShadingRateAttachments - - - VkBool32 - fragmentShadingRateNonTrivialCombinerOps - - - VkExtent2D - maxFragmentSize - - - uint32_t - maxFragmentSizeAspectRatio - - - uint32_t - maxFragmentShadingRateCoverageSamples - - - VkSampleCountFlagBits - maxFragmentShadingRateRasterizationSamples - - - VkBool32 - fragmentShadingRateWithShaderDepthStencilWrites - - - VkBool32 - fragmentShadingRateWithSampleMask - - - VkBool32 - fragmentShadingRateWithShaderSampleMask - - - VkBool32 - fragmentShadingRateWithConservativeRasterization - - - VkBool32 - fragmentShadingRateWithFragmentShaderInterlock - - - VkBool32 - fragmentShadingRateWithCustomSampleLocations - - - VkBool32 - fragmentShadingRateStrictMultiplyCombiner - - - - - VkStructureType - sType - - - void* pNext - - - VkSampleCountFlags - sampleCounts - - - VkExtent2D - fragmentSize - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - shaderTerminateInvocation - - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - fragmentShadingRateEnums - - - VkBool32 - supersampleFragmentShadingRates - - - VkBool32 - noInvocationFragmentShadingRates - - - - - VkStructureType - sType - - - void* pNext - - - VkSampleCountFlagBits - maxFragmentShadingRateInvocationCount - - - - - VkStructureType - sType - - - const void* pNext - - - VkFragmentShadingRateTypeNV - shadingRateType - - - VkFragmentShadingRateNV - shadingRate - - - VkFragmentShadingRateCombinerOpKHR combinerOps[2] - - - - - VkStructureType - sType - - - const void* pNext - - - VkDeviceSize - accelerationStructureSize - - - VkDeviceSize - updateScratchSize - - - VkDeviceSize - buildScratchSize - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - image2DViewOf3D - - - VkBool32 - sampler2DViewOf3D - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - mutableDescriptorType - - - - - uint32_t - descriptorTypeCount - - - const VkDescriptorType* pDescriptorTypes - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - mutableDescriptorTypeListCount - - - const VkMutableDescriptorTypeListVALVE* pMutableDescriptorTypeLists - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - depthClipControl - - - - - VkStructureType - sType - - - const void* pNext - - - VkBool32 - negativeOneToOne - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - vertexInputDynamicState - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - externalMemoryRDMA - - - - - VkStructureType - sType - - - void* pNext - - - uint32_t - binding - - - uint32_t - stride - - - VkVertexInputRate - inputRate - - - uint32_t - divisor - - - - - VkStructureType - sType - - - void* pNext - - - uint32_t - location - location of the shader vertex attrib - - - uint32_t - binding - Vertex buffer binding id - - - VkFormat - format - format of source data - - - uint32_t - offset - Offset of first element in bytes from base of vertex - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - colorWriteEnable - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - attachmentCount - # of pAttachments - - - const VkBool32* pColorWriteEnables - - - - - VkStructureType - sType - - - const void* pNext - - - VkPipelineStageFlags2 - srcStageMask - - - VkAccessFlags2 - srcAccessMask - - - VkPipelineStageFlags2 - dstStageMask - - - VkAccessFlags2 - dstAccessMask - - - - - - VkStructureType - sType - - - const void* pNext - - - VkPipelineStageFlags2 - srcStageMask - - - VkAccessFlags2 - srcAccessMask - - - VkPipelineStageFlags2 - dstStageMask - - - VkAccessFlags2 - dstAccessMask - - - VkImageLayout - oldLayout - - - VkImageLayout - newLayout - - - uint32_t - srcQueueFamilyIndex - - - uint32_t - dstQueueFamilyIndex - - - VkImage - image - - - VkImageSubresourceRange - subresourceRange - - - - - - VkStructureType - sType - - - const void* pNext - - - VkPipelineStageFlags2 - srcStageMask - - - VkAccessFlags2 - srcAccessMask - - - VkPipelineStageFlags2 - dstStageMask - - - VkAccessFlags2 - dstAccessMask - - - uint32_t - srcQueueFamilyIndex - - - uint32_t - dstQueueFamilyIndex - - - VkBuffer - buffer - - - VkDeviceSize - offset - - - VkDeviceSize - size - - - - - - VkStructureType - sType - - - const void* pNext - - - VkDependencyFlags - dependencyFlags - - - uint32_t - memoryBarrierCount - - - const VkMemoryBarrier2* pMemoryBarriers - - - uint32_t - bufferMemoryBarrierCount - - - const VkBufferMemoryBarrier2* pBufferMemoryBarriers - - - uint32_t - imageMemoryBarrierCount - - - const VkImageMemoryBarrier2* pImageMemoryBarriers - - - - - - VkStructureType - sType - - - const void* pNext - - - VkSemaphore - semaphore - - - uint64_t - value - - - VkPipelineStageFlags2 - stageMask - - - uint32_t - deviceIndex - - - - - - VkStructureType - sType - - - const void* pNext - - - VkCommandBuffer - commandBuffer - - - uint32_t - deviceMask - - - - - - VkStructureType - sType - - - const void* pNext - - - VkSubmitFlags - flags - - - uint32_t - waitSemaphoreInfoCount - - - const VkSemaphoreSubmitInfo* pWaitSemaphoreInfos - - - uint32_t - commandBufferInfoCount - - - const VkCommandBufferSubmitInfo* pCommandBufferInfos - - - uint32_t - signalSemaphoreInfoCount - - - const VkSemaphoreSubmitInfo* pSignalSemaphoreInfos - - - - - - VkStructureType - sType - - - void* pNext - - - VkPipelineStageFlags2 - checkpointExecutionStageMask - - - - - VkStructureType - sType - - - void* pNext - - - VkPipelineStageFlags2 - stage - - - void* pCheckpointMarker - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - synchronization2 - - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - primitivesGeneratedQuery - - - VkBool32 - primitivesGeneratedQueryWithRasterizerDiscard - - - VkBool32 - primitivesGeneratedQueryWithNonZeroStreams - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - multisampledRenderToSingleSampled - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - optimal - - - - - VkStructureType - sType - - - const void* pNext - - - VkBool32 - multisampledRenderToSingleSampledEnable - - - VkSampleCountFlagBits - rasterizationSamples - - - - - VkStructureType - sType - - - void* pNext - - - VkVideoCodecOperationFlagsKHR - videoCodecOperations - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - queryResultStatusSupport - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - profileCount - - - const VkVideoProfileKHR* pProfiles - - - - - VkStructureType - sType - - - void* pNext - - - VkImageUsageFlags - imageUsage - - - - - VkStructureType - sType - - - void* pNext - - - VkFormat - format - - - VkComponentMapping - componentMapping - - - VkImageCreateFlags - imageCreateFlags - - - VkImageType - imageType - - - VkImageTiling - imageTiling - - - VkImageUsageFlags - imageUsageFlags - - - - - VkStructureType - sType - - - const void* pNext - - - VkVideoCodecOperationFlagBitsKHR - videoCodecOperation - - - VkVideoChromaSubsamplingFlagsKHR - chromaSubsampling - - - VkVideoComponentBitDepthFlagsKHR - lumaBitDepth - - - VkVideoComponentBitDepthFlagsKHR - chromaBitDepth - - - - - VkStructureType - sType - - - void* pNext - - - VkVideoCapabilityFlagsKHR - capabilityFlags - - - VkDeviceSize - minBitstreamBufferOffsetAlignment - - - VkDeviceSize - minBitstreamBufferSizeAlignment - - - VkExtent2D - videoPictureExtentGranularity - - - VkExtent2D - minExtent - - - VkExtent2D - maxExtent - - - uint32_t - maxReferencePicturesSlotsCount - - - uint32_t - maxReferencePicturesActiveCount - - - VkExtensionProperties - stdHeaderVersion - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - memoryBindIndex - - - VkMemoryRequirements2* pMemoryRequirements - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - memoryBindIndex - - - VkDeviceMemory - memory - - - VkDeviceSize - memoryOffset - - - VkDeviceSize - memorySize - - - - - VkStructureType - sType - - - const void* pNext - - - VkOffset2D - codedOffset - The offset to be used for the picture resource, currently only used in field mode - - - VkExtent2D - codedExtent - The extent to be used for the picture resource - - - uint32_t - baseArrayLayer - TThe first array layer to be accessed for the Decode or Encode Operations - - - VkImageView - imageViewBinding - The ImageView binding of the resource - - - - - VkStructureType - sType - - - const void* pNext - - - int8_t - slotIndex - The reference slot index - - - const VkVideoPictureResourceKHR* pPictureResourceThe reference picture resource - - - - - VkStructureType - sType - - - void* pNext - - - VkVideoDecodeCapabilityFlagsKHR - flags - - - - - VkStructureType - sType - - - const void* pNext - - - VkVideoDecodeFlagsKHR - flags - - - VkBuffer - srcBuffer - - - VkDeviceSize - srcBufferOffset - - - VkDeviceSize - srcBufferRange - - - VkVideoPictureResourceKHR - dstPictureResource - - - const VkVideoReferenceSlotKHR* pSetupReferenceSlot - - - uint32_t - referenceSlotCount - - - const VkVideoReferenceSlotKHR* pReferenceSlots - - - Video Decode Codec Standard specific structures - #include "vk_video/vulkan_video_codec_h264std.h" - - - - - - - - - - - - - - - - - - - #include "vk_video/vulkan_video_codec_h264std_decode.h" - - - - - - - - - - VkStructureType - sType - - - const void* pNext - - - StdVideoH264ProfileIdc - stdProfileIdc - - - VkVideoDecodeH264PictureLayoutFlagsEXT - pictureLayout - - - - - VkStructureType - sType - - - void* pNext - - - StdVideoH264Level - maxLevel - - - VkOffset2D - fieldOffsetGranularity - - - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - spsStdCount - - - const StdVideoH264SequenceParameterSet* pSpsStd - - - uint32_t - ppsStdCount - - - const StdVideoH264PictureParameterSet* pPpsStdList of Picture Parameters associated with the spsStd, above - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - maxSpsStdCount - - - uint32_t - maxPpsStdCount - - - const VkVideoDecodeH264SessionParametersAddInfoEXT* pParametersAddInfo - - - - - VkStructureType - sType - - - const void* pNext - - - const StdVideoDecodeH264PictureInfo* pStdPictureInfo - - - uint32_t - slicesCount - - - const uint32_t* pSlicesDataOffsets - - - - - VkStructureType - sType - - - const void* pNext - - - const StdVideoDecodeH264ReferenceInfo* pStdReferenceInfo - - - - - VkStructureType - sType - - - const void*pNext - - - const StdVideoDecodeH264Mvc* pStdMvc - - - #include "vk_video/vulkan_video_codec_h265std.h" - - - - - - - - - - - - - - - - - - - #include "vk_video/vulkan_video_codec_h265std_decode.h" - - - - - - - VkStructureType - sType - - - const void* pNext - - - StdVideoH265ProfileIdc - stdProfileIdc - - - - - VkStructureType - sType - - - void* pNext - - - StdVideoH265Level - maxLevel - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - vpsStdCount - - - const StdVideoH265VideoParameterSet* pVpsStd - - - uint32_t - spsStdCount - - - const StdVideoH265SequenceParameterSet* pSpsStd - - - uint32_t - ppsStdCount - - - const StdVideoH265PictureParameterSet* pPpsStdList of Picture Parameters associated with the spsStd, above - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - maxVpsStdCount - - - uint32_t - maxSpsStdCount - - - uint32_t - maxPpsStdCount - - - const VkVideoDecodeH265SessionParametersAddInfoEXT* pParametersAddInfo - - - - - VkStructureType - sType - - - const void* pNext - - - StdVideoDecodeH265PictureInfo* pStdPictureInfo - - - uint32_t - slicesCount - - - const uint32_t* pSlicesDataOffsets - - - - - VkStructureType - sType - - - const void* pNext - - - const StdVideoDecodeH265ReferenceInfo* pStdReferenceInfo - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - queueFamilyIndex - - - VkVideoSessionCreateFlagsKHR - flags - - - const VkVideoProfileKHR* pVideoProfile - - - VkFormat - pictureFormat - - - VkExtent2D - maxCodedExtent - - - VkFormat - referencePicturesFormat - - - uint32_t - maxReferencePicturesSlotsCount - - - uint32_t - maxReferencePicturesActiveCount - - - const VkExtensionProperties* pStdHeaderVersion - - - - - VkStructureType - sType - - - const void* pNext - - - VkVideoSessionParametersKHR - videoSessionParametersTemplate - - - VkVideoSessionKHR - videoSession - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - updateSequenceCount - - - - - VkStructureType - sType - - - const void* pNext - - - VkVideoBeginCodingFlagsKHR - flags - - - VkVideoCodingQualityPresetFlagsKHR - codecQualityPreset - - - VkVideoSessionKHR - videoSession - - - VkVideoSessionParametersKHR - videoSessionParameters - - - uint32_t - referenceSlotCount - - - const VkVideoReferenceSlotKHR* pReferenceSlots - - - - - VkStructureType - sType - - - const void* pNext - - - VkVideoEndCodingFlagsKHR - flags - - - - - VkStructureType - sType - - - const void* pNext - - - VkVideoCodingControlFlagsKHR - flags - - - - - VkStructureType - sType - - - const void* pNext - - - VkVideoEncodeFlagsKHR - flags - - - uint32_t - qualityLevel - - - VkBuffer - dstBitstreamBuffer - - - VkDeviceSize - dstBitstreamBufferOffset - - - VkDeviceSize - dstBitstreamBufferMaxRange - - - VkVideoPictureResourceKHR - srcPictureResource - - - const VkVideoReferenceSlotKHR* pSetupReferenceSlot - - - uint32_t - referenceSlotCount - - - const VkVideoReferenceSlotKHR* pReferenceSlots - - - uint32_t - precedingExternallyEncodedBytes - - - - - VkStructureType - sType - - - const void* pNext - - - VkVideoEncodeRateControlFlagsKHR - flags - - - VkVideoEncodeRateControlModeFlagBitsKHR - rateControlMode - - - uint8_t - layerCount - - - const VkVideoEncodeRateControlLayerInfoKHR* pLayerConfigs - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - averageBitrate - - - uint32_t - maxBitrate - - - uint32_t - frameRateNumerator - - - uint32_t - frameRateDenominator - - - uint32_t - virtualBufferSizeInMs - - - uint32_t - initialVirtualBufferSizeInMs - - - - - VkStructureType - sType - - - void* pNext - - - VkVideoEncodeCapabilityFlagsKHR - flags - - - VkVideoEncodeRateControlModeFlagsKHR - rateControlModes - - - uint8_t - rateControlLayerCount - - - uint8_t - qualityLevelCount - - - VkExtent2D - inputImageDataFillAlignment - - - - - VkStructureType - sType - - - void* pNext - - - VkVideoEncodeH264CapabilityFlagsEXT - flags - - - VkVideoEncodeH264InputModeFlagsEXT - inputModeFlags - - - VkVideoEncodeH264OutputModeFlagsEXT - outputModeFlags - - - uint8_t - maxPPictureL0ReferenceCount - - - uint8_t - maxBPictureL0ReferenceCount - - - uint8_t - maxL1ReferenceCount - - - VkBool32 - motionVectorsOverPicBoundariesFlag - - - uint32_t - maxBytesPerPicDenom - - - uint32_t - maxBitsPerMbDenom - - - uint32_t - log2MaxMvLengthHorizontal - - - uint32_t - log2MaxMvLengthVertical - - - #include "vk_video/vulkan_video_codec_h264std_encode.h" - - - - - - - - - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - spsStdCount - - - const StdVideoH264SequenceParameterSet* pSpsStd - - - uint32_t - ppsStdCount - - - const StdVideoH264PictureParameterSet* pPpsStdList of Picture Parameters associated with the spsStd, above - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - maxSpsStdCount - - - uint32_t - maxPpsStdCount - - - const VkVideoEncodeH264SessionParametersAddInfoEXT* pParametersAddInfo - - - - - VkStructureType - sType - - - const void* pNext - - - int8_t - slotIndex - - - const StdVideoEncodeH264ReferenceInfo* pStdReferenceInfo - - - - - VkStructureType - sType - - - const void* pNext - - - const VkVideoEncodeH264ReferenceListsEXT* pReferenceFinalLists - - - uint32_t - naluSliceEntryCount - - - const VkVideoEncodeH264NaluSliceEXT* pNaluSliceEntries - - - const StdVideoEncodeH264PictureInfo* pCurrentPictureInfo - - - - - VkStructureType - sType - - - const void* pNext - - - uint8_t - referenceList0EntryCount - - - const VkVideoEncodeH264DpbSlotInfoEXT* pReferenceList0Entries - - - uint8_t - referenceList1EntryCount - - - const VkVideoEncodeH264DpbSlotInfoEXT* pReferenceList1Entries - - - const StdVideoEncodeH264RefMemMgmtCtrlOperations* pMemMgmtCtrlOperations - - - - - VkStructureType - sType - - - const void* pNext - - - uint8_t - spsId - - - VkBool32 - emitSpsEnable - - - uint32_t - ppsIdEntryCount - - - const uint8_t* ppsIdEntries - - - - - VkStructureType - sType - - - const void* pNext - - - StdVideoH264ProfileIdc - stdProfileIdc - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - mbCount - - - const VkVideoEncodeH264ReferenceListsEXT* pReferenceFinalLists - - - const StdVideoEncodeH264SliceHeader* pSliceHeaderStd - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - gopFrameCount - - - uint32_t - idrPeriod - - - uint32_t - consecutiveBFrameCount - - - VkVideoEncodeH264RateControlStructureFlagBitsEXT - rateControlStructure - - - uint8_t - temporalLayerCount - - - - - int32_t - qpI - - - int32_t - qpP - - - int32_t - qpB - - - - - uint32_t - frameISize - - - uint32_t - framePSize - - - uint32_t - frameBSize - - - - - VkStructureType - sType - - - const void* pNext - - - uint8_t - temporalLayerId - - - VkBool32 - useInitialRcQp - - - VkVideoEncodeH264QpEXT - initialRcQp - - - VkBool32 - useMinQp - - - VkVideoEncodeH264QpEXT - minQp - - - VkBool32 - useMaxQp - - - VkVideoEncodeH264QpEXT - maxQp - - - VkBool32 - useMaxFrameSize - - - VkVideoEncodeH264FrameSizeEXT - maxFrameSize - - - - - VkStructureType - sType - - - void* pNext - - - VkVideoEncodeH265CapabilityFlagsEXT - flags - - - VkVideoEncodeH265InputModeFlagsEXT - inputModeFlags - - - VkVideoEncodeH265OutputModeFlagsEXT - outputModeFlags - - - VkVideoEncodeH265CtbSizeFlagsEXT - ctbSizes - - - VkVideoEncodeH265TransformBlockSizeFlagsEXT - transformBlockSizes - - - uint8_t - maxPPictureL0ReferenceCount - - - uint8_t - maxBPictureL0ReferenceCount - - - uint8_t - maxL1ReferenceCount - - - uint8_t - maxSubLayersCount - - - uint8_t - minLog2MinLumaCodingBlockSizeMinus3 - - - uint8_t - maxLog2MinLumaCodingBlockSizeMinus3 - - - uint8_t - minLog2MinLumaTransformBlockSizeMinus2 - - - uint8_t - maxLog2MinLumaTransformBlockSizeMinus2 - - - uint8_t - minMaxTransformHierarchyDepthInter - - - uint8_t - maxMaxTransformHierarchyDepthInter - - - uint8_t - minMaxTransformHierarchyDepthIntra - - - uint8_t - maxMaxTransformHierarchyDepthIntra - - - uint8_t - maxDiffCuQpDeltaDepth - - - uint8_t - minMaxNumMergeCand - - - uint8_t - maxMaxNumMergeCand - - - #include "vk_video/vulkan_video_codec_h265std_encode.h" - - - - - - - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - vpsStdCount - - - const StdVideoH265VideoParameterSet* pVpsStd - - - uint32_t - spsStdCount - - - const StdVideoH265SequenceParameterSet* pSpsStd - - - uint32_t - ppsStdCount - - - const StdVideoH265PictureParameterSet* pPpsStdList of Picture Parameters associated with the spsStd, above - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - maxVpsStdCount - - - uint32_t - maxSpsStdCount - - - uint32_t - maxPpsStdCount - - - const VkVideoEncodeH265SessionParametersAddInfoEXT* pParametersAddInfo - - - - - VkStructureType - sType - - - const void* pNext - - - const VkVideoEncodeH265ReferenceListsEXT* pReferenceFinalLists - - - uint32_t - naluSliceSegmentEntryCount - - - const VkVideoEncodeH265NaluSliceSegmentEXT* pNaluSliceSegmentEntries - - - const StdVideoEncodeH265PictureInfo* pCurrentPictureInfo - - - - - VkStructureType - sType - - - const void* pNext - - - uint8_t - vpsId - - - uint8_t - spsId - - - VkBool32 - emitVpsEnable - - - VkBool32 - emitSpsEnable - - - uint32_t - ppsIdEntryCount - - - const uint8_t* ppsIdEntries - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - ctbCount - - - const VkVideoEncodeH265ReferenceListsEXT* pReferenceFinalLists - - - const StdVideoEncodeH265SliceSegmentHeader* pSliceSegmentHeaderStd - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - gopFrameCount - - - uint32_t - idrPeriod - - - uint32_t - consecutiveBFrameCount - - - VkVideoEncodeH265RateControlStructureFlagBitsEXT - rateControlStructure - - - uint8_t - subLayerCount - - - - - int32_t - qpI - - - int32_t - qpP - - - int32_t - qpB - - - - - uint32_t - frameISize - - - uint32_t - framePSize - - - uint32_t - frameBSize - - - - - VkStructureType - sType - - - const void* pNext - - - uint8_t - temporalId - - - VkBool32 - useInitialRcQp - - - VkVideoEncodeH265QpEXT - initialRcQp - - - VkBool32 - useMinQp - - - VkVideoEncodeH265QpEXT - minQp - - - VkBool32 - useMaxQp - - - VkVideoEncodeH265QpEXT - maxQp - - - VkBool32 - useMaxFrameSize - - - VkVideoEncodeH265FrameSizeEXT - maxFrameSize - - - - - VkStructureType - sType - - - const void* pNext - - - StdVideoH265ProfileIdc - stdProfileIdc - - - - - VkStructureType - sType - - - const void* pNext - - - int8_t - slotIndex - - - const StdVideoEncodeH265ReferenceInfo* pStdReferenceInfo - - - - - VkStructureType - sType - - - const void* pNext - - - uint8_t - referenceList0EntryCount - - - const VkVideoEncodeH265DpbSlotInfoEXT* pReferenceList0Entries - - - uint8_t - referenceList1EntryCount - - - const VkVideoEncodeH265DpbSlotInfoEXT* pReferenceList1Entries - - - const StdVideoEncodeH265ReferenceModifications* pReferenceModifications - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - inheritedViewportScissor2D - - - - - VkStructureType - sType - - - const void* pNext - - - VkBool32 - viewportScissor2D - - - uint32_t - viewportDepthCount - - - const VkViewport* pViewportDepths - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - ycbcr2plane444Formats - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - provokingVertexLast - - - VkBool32 - transformFeedbackPreservesProvokingVertex - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - provokingVertexModePerPipeline - - - VkBool32 - transformFeedbackPreservesTriangleFanProvokingVertex - - - - - VkStructureType - sType - - - const void* pNext - - - VkProvokingVertexModeEXT - provokingVertexMode - - - - - VkStructureType - sType - - - const void* pNext - - - size_t - dataSize - - - const void* pData - - - - - VkStructureType - sType - - - const void* pNext - - - VkCuModuleNVX - module - - - const char* pName - - - - - VkStructureType - sType - - - const void* pNext - - - VkCuFunctionNVX - function - - - uint32_t - gridDimX - - - uint32_t - gridDimY - - - uint32_t - gridDimZ - - - uint32_t - blockDimX - - - uint32_t - blockDimY - - - uint32_t - blockDimZ - - - uint32_t - sharedMemBytes - - - size_t - paramCount - - - const void* const * pParams - - - size_t - extraCount - - - const void* const * pExtras - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - shaderIntegerDotProduct - - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - 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 - - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - hasPrimary - - - VkBool32 - hasRender - - - int64_t - primaryMajor - - - int64_t - primaryMinor - - - int64_t - renderMajor - - - int64_t - renderMinor - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - fragmentShaderBarycentric - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - triStripVertexOrderIndependentOfProvokingVertex - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - rayTracingMotionBlur - - - VkBool32 - rayTracingMotionBlurPipelineTraceRaysIndirect - - - - - - VkStructureType - sType - - - const void* pNext - - - VkDeviceOrHostAddressConstKHR - vertexData - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - maxInstances - - - VkAccelerationStructureMotionInfoFlagsNV - flags - - - - - float - sx - - - float - a - - - float - b - - - float - pvx - - - float - sy - - - float - c - - - float - pvy - - - float - sz - - - float - pvz - - - float - qx - - - float - qy - - - float - qz - - - float - qw - - - float - tx - - - float - ty - - - float - tz - - - - The bitfields in this structure are non-normative since bitfield ordering is implementation-defined in C. The specification defines the normative layout. - - VkSRTDataNV - transformT0 - - - VkSRTDataNV - transformT1 - - - uint32_t instanceCustomIndex:24 - - - uint32_t mask:8 - - - uint32_t instanceShaderBindingTableRecordOffset:24 - - - VkGeometryInstanceFlagsKHR flags:8 - - - uint64_t - accelerationStructureReference - - - - The bitfields in this structure are non-normative since bitfield ordering is implementation-defined in C. The specification defines the normative layout. - - VkTransformMatrixKHR - transformT0 - - - VkTransformMatrixKHR - transformT1 - - - uint32_t instanceCustomIndex:24 - - - uint32_t mask:8 - - - uint32_t instanceShaderBindingTableRecordOffset:24 - - - VkGeometryInstanceFlagsKHR flags:8 - - - uint64_t - accelerationStructureReference - - - - - VkAccelerationStructureInstanceKHR - staticInstance - - - VkAccelerationStructureMatrixMotionInstanceNV - matrixMotionInstance - - - VkAccelerationStructureSRTMotionInstanceNV - srtMotionInstance - - - - - VkAccelerationStructureMotionInstanceTypeNV - type - - - VkAccelerationStructureMotionInstanceFlagsNV - flags - - - VkAccelerationStructureMotionInstanceDataNV - data - - - - typedef void* VkRemoteAddressNV; - - - - VkStructureType - sType - - - const void* pNext - - - VkDeviceMemory - memory - - - VkExternalMemoryHandleTypeFlagBits - handleType - - - - - VkStructureType - sType - - - const void* pNext - - - VkBufferCollectionFUCHSIA - collection - - - uint32_t - index - - - - - VkStructureType - sType - - - const void* pNext - - - VkBufferCollectionFUCHSIA - collection - - - uint32_t - index - - - - - VkStructureType - sType - - - const void* pNext - - - VkBufferCollectionFUCHSIA - collection - - - uint32_t - index - - - - - VkStructureType - sType - - - const void* pNext - - - zx_handle_t - collectionToken - - - - - VkStructureType - sType - - - void* pNext - - - uint32_t - memoryTypeBits - - - uint32_t - bufferCount - - - uint32_t - createInfoIndex - - - uint64_t - sysmemPixelFormat - - - VkFormatFeatureFlags - formatFeatures - - - VkSysmemColorSpaceFUCHSIA - sysmemColorSpaceIndex - - - VkComponentMapping - samplerYcbcrConversionComponents - - - VkSamplerYcbcrModelConversion - suggestedYcbcrModel - - - VkSamplerYcbcrRange - suggestedYcbcrRange - - - VkChromaLocation - suggestedXChromaOffset - - - VkChromaLocation - suggestedYChromaOffset - - - - - VkStructureType - sType - - - const void* pNext - - - VkBufferCreateInfo - createInfo - - - VkFormatFeatureFlags - requiredFormatFeatures - - - VkBufferCollectionConstraintsInfoFUCHSIA - bufferCollectionConstraints - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - colorSpace - - - - - VkStructureType - sType - - - const void* pNext - - - VkImageCreateInfo - imageCreateInfo - - - VkFormatFeatureFlags - requiredFormatFeatures - - - VkImageFormatConstraintsFlagsFUCHSIA - flags - - - uint64_t - sysmemPixelFormat - - - uint32_t - colorSpaceCount - - - const VkSysmemColorSpaceFUCHSIA* pColorSpaces - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - formatConstraintsCount - - - const VkImageFormatConstraintsInfoFUCHSIA* pFormatConstraints - - - VkBufferCollectionConstraintsInfoFUCHSIA - bufferCollectionConstraints - - - VkImageConstraintsInfoFlagsFUCHSIA - flags - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - minBufferCount - - - uint32_t - maxBufferCount - - - uint32_t - minBufferCountForCamping - - - uint32_t - minBufferCountForDedicatedSlack - - - uint32_t - minBufferCountForSharedSlack - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - formatRgba10x6WithoutYCbCrSampler - - - - - VkStructureType - sType - - - void* pNext - - - VkFormatFeatureFlags2 - linearTilingFeatures - - - VkFormatFeatureFlags2 - optimalTilingFeatures - - - VkFormatFeatureFlags2 - bufferFeatures - - - - - - VkStructureType - sType - - - void* pNext - - - uint32_t - drmFormatModifierCount - - - VkDrmFormatModifierProperties2EXT* pDrmFormatModifierProperties - - - - - uint64_t - drmFormatModifier - - - uint32_t - drmFormatModifierPlaneCount - - - VkFormatFeatureFlags2 - drmFormatModifierTilingFeatures - - - - - VkStructureType - sType - - - void* pNext - - - VkFormat - format - - - uint64_t - externalFormat - - - VkFormatFeatureFlags2 - formatFeatures - - - VkComponentMapping - samplerYcbcrConversionComponents - - - VkSamplerYcbcrModelConversion - suggestedYcbcrModel - - - VkSamplerYcbcrRange - suggestedYcbcrRange - - - VkChromaLocation - suggestedXChromaOffset - - - VkChromaLocation - suggestedYChromaOffset - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - viewMask - - - uint32_t - colorAttachmentCount - - - const VkFormat* pColorAttachmentFormats - - - VkFormat - depthAttachmentFormat - - - VkFormat - stencilAttachmentFormat - - - - - - VkStructureType - sType - - - const void* pNext - - - VkRenderingFlags - flags - - - VkRect2D - renderArea - - - uint32_t - layerCount - - - uint32_t - viewMask - - - uint32_t - colorAttachmentCount - - - const VkRenderingAttachmentInfo* pColorAttachments - - - const VkRenderingAttachmentInfo* pDepthAttachment - - - const VkRenderingAttachmentInfo* pStencilAttachment - - - - - - VkStructureType - sType - - - const void* pNext - - - VkImageView - imageView - - - VkImageLayout - imageLayout - - - VkResolveModeFlagBits - resolveMode - - - VkImageView - resolveImageView - - - VkImageLayout - resolveImageLayout - - - VkAttachmentLoadOp - loadOp - - - VkAttachmentStoreOp - storeOp - - - VkClearValue - clearValue - - - - - - VkStructureType - sType - - - const void* pNext - - - VkImageView - imageView - - - VkImageLayout - imageLayout - - - VkExtent2D - shadingRateAttachmentTexelSize - - - - - VkStructureType - sType - - - const void* pNext - - - VkImageView - imageView - - - VkImageLayout - imageLayout - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - dynamicRendering - - - - - - VkStructureType - sType - - - const void* pNext - - - VkRenderingFlags - flags - - - uint32_t - viewMask - - - uint32_t - colorAttachmentCount - - - const VkFormat* pColorAttachmentFormats - - - VkFormat - depthAttachmentFormat - - - VkFormat - stencilAttachmentFormat - - - VkSampleCountFlagBits - rasterizationSamples - - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - colorAttachmentCount - - - const VkSampleCountFlagBits* pColorAttachmentSamples - - - VkSampleCountFlagBits - depthStencilAttachmentSamples - - - - - - VkStructureType - sType - - - const void* pNext - - - VkBool32 - perViewAttributes - - - VkBool32 - perViewAttributesPositionXOnly - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - minLod - - - - - VkStructureType - sType - - - const void* pNext - - - float - minLod - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - rasterizationOrderColorAttachmentAccess - - - VkBool32 - rasterizationOrderDepthAttachmentAccess - - - VkBool32 - rasterizationOrderStencilAttachmentAccess - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - linearColorAttachment - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - graphicsPipelineLibrary - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - graphicsPipelineLibraryFastLinking - - - VkBool32 - graphicsPipelineLibraryIndependentInterpolationDecoration - - - - - VkStructureType - sType - - - void* pNext - - - VkGraphicsPipelineLibraryFlagsEXT - flags - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - descriptorSetHostMapping - - - - - VkStructureType - sType - - - const void* pNext - - - VkDescriptorSetLayout - descriptorSetLayout - - - uint32_t - binding - - - - - VkStructureType - sType - - - void* pNext - - - size_t - descriptorOffset - - - uint32_t - descriptorSize - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - shaderModuleIdentifier - - - - - VkStructureType - sType - - - void* pNext - - - uint8_t shaderModuleIdentifierAlgorithmUUID[VK_UUID_SIZE] - - - - - VkStructureType - sType - - - const void* pNext - - - uint32_t - identifierSize - - - const uint8_t* pIdentifier - - - - - VkStructureType - sType - - - void* pNext - - - uint32_t - identifierSize - - - uint8_t identifier[VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT] - - - - - VkStructureType - sType - - - const void* pNext - - - VkImageCompressionFlagsEXT - flags - - - uint32_t - compressionControlPlaneCount - - - VkImageCompressionFixedRateFlagsEXT* pFixedRateFlags - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - imageCompressionControl - - - - - VkStructureType - sType - - - void* pNext - - - VkImageCompressionFlagsEXT - imageCompressionFlags - - - VkImageCompressionFixedRateFlagsEXT - imageCompressionFixedRateFlags - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - imageCompressionControlSwapchain - - - - - VkStructureType - sType - - - void* pNext - - - VkImageSubresource - imageSubresource - - - - - VkStructureType - sType - - - void* pNext - - - VkSubresourceLayout - subresourceLayout - - - - - VkStructureType - sType - - - const void* pNext - - - VkBool32 - disallowMerging - - - - - uint32_t - postMergeSubpassCount - - - - - VkStructureType - sType - - - const void* pNext - - - VkRenderPassCreationFeedbackInfoEXT* pRenderPassFeedback - - - - - VkSubpassMergeStatusEXT - subpassMergeStatus - - - char description[VK_MAX_DESCRIPTION_SIZE] - - - uint32_t - postMergeIndex - - - - - VkStructureType - sType - - - const void* pNext - - - VkRenderPassSubpassFeedbackInfoEXT* pSubpassFeedback - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - subpassMergeFeedback - - - - - VkStructureType - sType - - - void* pNext - - - uint8_t pipelineIdentifier[VK_UUID_SIZE] - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - pipelinePropertiesIdentifier - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - shaderEarlyAndLateFragmentTests - - - - - VkStructureType - sType - - - const void* pNext - - - VkExportMetalObjectTypeFlagBitsEXT - exportObjectType - - - - - VkStructureType - sType - - - const void* pNext - - - - - VkStructureType - sType - - - const void* pNext - - - MTLDevice_id - mtlDevice - - - - - VkStructureType - sType - - - const void* pNext - - - VkQueue - queue - - - MTLCommandQueue_id - mtlCommandQueue - - - - - VkStructureType - sType - - - const void* pNext - - - VkDeviceMemory - memory - - - MTLBuffer_id - mtlBuffer - - - - - VkStructureType - sType - - - const void* pNext - - - MTLBuffer_id - mtlBuffer - - - - - VkStructureType - sType - - - const void* pNext - - - VkImage - image - - - VkImageView - imageView - - - VkBufferView - bufferView - - - VkImageAspectFlagBits - plane - - - MTLTexture_id - mtlTexture - - - - - VkStructureType - sType - - - const void* pNext - - - VkImageAspectFlagBits - plane - - - MTLTexture_id - mtlTexture - - - - - VkStructureType - sType - - - const void* pNext - - - VkImage - image - - - IOSurfaceRef - ioSurface - - - - - VkStructureType - sType - - - const void* pNext - - - IOSurfaceRef - ioSurface - - - - - VkStructureType - sType - - - const void* pNext - - - VkSemaphore - semaphore - - - VkEvent - event - - - MTLSharedEvent_id - mtlSharedEvent - - - - - VkStructureType - sType - - - const void* pNext - - - MTLSharedEvent_id - mtlSharedEvent - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - nonSeamlessCubeMap - - - - - VkStructureType - sType - - - void* pNext - - - VkBool32 - pipelineRobustness - - - - - VkStructureType - sType - - - const void* pNext - - - VkPipelineRobustnessBufferBehaviorEXT - storageBuffers - - - VkPipelineRobustnessBufferBehaviorEXT - uniformBuffers - - - VkPipelineRobustnessBufferBehaviorEXT - vertexInputs - - - VkPipelineRobustnessImageBehaviorEXT - images - - - - - VkStructureType - sType - - - void* pNext - - - VkPipelineRobustnessBufferBehaviorEXT - defaultRobustnessStorageBuffers - - - VkPipelineRobustnessBufferBehaviorEXT - defaultRobustnessUniformBuffers - - - VkPipelineRobustnessBufferBehaviorEXT - defaultRobustnessVertexInputs - - - VkPipelineRobustnessImageBehaviorEXT - defaultRobustnessImages - - - - Vulkan enumerant (token) definitions + The PFN_vkDebugUtilsMessengerCallbackEXT type are used by the VK_EXT_debug_utils extension + typedef VkBool32 (VKAPI_PTR *PFN_vkDebugUtilsMessengerCallbackEXT)( + VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, + VkDebugUtilsMessageTypeFlagsEXT messageTypes, + const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData, + void* pUserData); - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + The PFN_vkFaultCallbackFunction type is used by VKSC_VERSION_1_0 + typedef void (VKAPI_PTR *PFN_vkFaultCallbackFunction)( + VkBool32 unrecordedFaults, + uint32_t faultCount, + const VkFaultData* pFaults); - - Unlike OpenGL, most tokens in Vulkan are actual typed enumerants in - their own numeric namespaces. The "name" attribute is the C enum - type name, and is pulled in from a type tag definition above - (slightly clunky, but retains the type / enum distinction). "type" - attributes of "enum" or "bitmask" indicate that these values should - be generated inside an appropriate definition. - + The PFN_vkDeviceMemoryReportCallbackEXT type is used by the VK_EXT_device_memory_report extension + typedef void (VKAPI_PTR *PFN_vkDeviceMemoryReportCallbackEXT)( + const VkDeviceMemoryReportCallbackDataEXT* pCallbackData, + void* pUserData); - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - value="4" reserved for VK_KHR_sampler_mirror_clamp_to_edge - enum VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE; do not - alias! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Return codes (positive values) - - - - - - - Error codes (negative values) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + The PFN_vkGetInstanceProcAddrLUNARG type is used by the + VkDirectDriverLoadingInfoLUNARG structure. + We cannot introduce an explicit dependency on the + equivalent PFN_vkGetInstanceProcAddr type, even though + it is implicitly generated in the C header, because + that results in multiple definitions. + typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddrLUNARG)( + VkInstance instance, const char* pName); - Flags - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + Struct types + + VkStructureType sType + struct VkBaseOutStructure* pNext + + + VkStructureType sType + const struct VkBaseInStructure* pNext + + + int32_t x + int32_t y + + + int32_t x + int32_t y + int32_t z + + + uint32_t width + uint32_t height + + + uint32_t width + uint32_t height + uint32_t depth + + + float x + float y + float width + float height + float minDepth + float maxDepth + + + VkOffset2D offset + VkExtent2D extent + + + VkRect2D rect + uint32_t baseArrayLayer + uint32_t layerCount + + + VkComponentSwizzle r + VkComponentSwizzle g + VkComponentSwizzle b + VkComponentSwizzle a + + + uint32_t apiVersion + uint32_t driverVersion + uint32_t vendorID + uint32_t deviceID + VkPhysicalDeviceType deviceType + char deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE] + uint8_t pipelineCacheUUID[VK_UUID_SIZE] + VkPhysicalDeviceLimits limits + VkPhysicalDeviceSparseProperties sparseProperties + + + char extensionName[VK_MAX_EXTENSION_NAME_SIZE]extension name + uint32_t specVersionversion of the extension specification implemented + + + char layerName[VK_MAX_EXTENSION_NAME_SIZE]layer name + uint32_t specVersionversion of the layer specification implemented + uint32_t implementationVersionbuild or release version of the layer's library + char description[VK_MAX_DESCRIPTION_SIZE]Free-form description of the layer + + + VkStructureType sType + const void* pNext + const char* pApplicationName + uint32_t applicationVersion + const char* pEngineName + uint32_t engineVersion + uint32_t apiVersion + + + void* pUserData + PFN_vkAllocationFunction pfnAllocation + PFN_vkReallocationFunction pfnReallocation + PFN_vkFreeFunction pfnFree + PFN_vkInternalAllocationNotification pfnInternalAllocation + PFN_vkInternalFreeNotification pfnInternalFree + + + VkStructureType sType + const void* pNext + VkDeviceQueueCreateFlags flags + uint32_t queueFamilyIndex + uint32_t queueCount + const float* pQueuePriorities + + + VkStructureType sType + const void* pNext + VkDeviceCreateFlags flags + uint32_t queueCreateInfoCount + const VkDeviceQueueCreateInfo* pQueueCreateInfos + uint32_t enabledLayerCount + const char* const* ppEnabledLayerNamesOrdered list of layer names to be enabled + uint32_t enabledExtensionCount + const char* const* ppEnabledExtensionNames + const VkPhysicalDeviceFeatures* pEnabledFeatures + + + VkStructureType sType + const void* pNext + VkInstanceCreateFlags flags + const VkApplicationInfo* pApplicationInfo + uint32_t enabledLayerCount + const char* const* ppEnabledLayerNamesOrdered list of layer names to be enabled + uint32_t enabledExtensionCount + const char* const* ppEnabledExtensionNamesExtension names to be enabled + + + VkQueueFlags queueFlagsQueue flags + uint32_t queueCount + uint32_t timestampValidBits + VkExtent3D minImageTransferGranularityMinimum alignment requirement for image transfers + + + uint32_t memoryTypeCount + VkMemoryType memoryTypes[VK_MAX_MEMORY_TYPES] + uint32_t memoryHeapCount + VkMemoryHeap memoryHeaps[VK_MAX_MEMORY_HEAPS] + + + VkStructureType sType + const void* pNext + VkDeviceSize allocationSizeSize of memory allocation + uint32_t memoryTypeIndexIndex of the of the memory type to allocate from + + + VkDeviceSize sizeSpecified in bytes + VkDeviceSize alignmentSpecified in bytes + uint32_t memoryTypeBitsBitmask of the allowed memory type indices into memoryTypes[] for this object + + + VkImageAspectFlags aspectMask + VkExtent3D imageGranularity + VkSparseImageFormatFlags flags + + + VkSparseImageFormatProperties formatProperties + uint32_t imageMipTailFirstLod + VkDeviceSize imageMipTailSizeSpecified in bytes, must be a multiple of sparse block size in bytes / alignment + VkDeviceSize imageMipTailOffsetSpecified in bytes, must be a multiple of sparse block size in bytes / alignment + VkDeviceSize imageMipTailStrideSpecified in bytes, must be a multiple of sparse block size in bytes / alignment + + + VkMemoryPropertyFlags propertyFlagsMemory properties of this memory type + uint32_t heapIndexIndex of the memory heap allocations of this memory type are taken from + + + VkDeviceSize sizeAvailable memory in the heap + VkMemoryHeapFlags flagsFlags for the heap + + + VkStructureType sType + const void* pNext + VkDeviceMemory memoryMapped memory object + VkDeviceSize offsetOffset within the memory object where the range starts + VkDeviceSize sizeSize of the range within the memory object + + + VkFormatFeatureFlags linearTilingFeaturesFormat features in case of linear tiling + VkFormatFeatureFlags optimalTilingFeaturesFormat features in case of optimal tiling + VkFormatFeatureFlags bufferFeaturesFormat features supported by buffers + + + VkExtent3D maxExtentmax image dimensions for this resource type + uint32_t maxMipLevelsmax number of mipmap levels for this resource type + uint32_t maxArrayLayersmax array size for this resource type + VkSampleCountFlags sampleCountssupported sample counts for this resource type + VkDeviceSize maxResourceSizemax size (in bytes) of this resource type + + + VkBuffer bufferBuffer used for this descriptor slot. + VkDeviceSize offsetBase offset from buffer start in bytes to update in the descriptor set. + VkDeviceSize rangeSize in bytes of the buffer resource for this descriptor update. + + + VkSampler samplerSampler to write to the descriptor in case it is a SAMPLER or COMBINED_IMAGE_SAMPLER descriptor. Ignored otherwise. + VkImageView imageViewImage view to write to the descriptor in case it is a SAMPLED_IMAGE, STORAGE_IMAGE, COMBINED_IMAGE_SAMPLER, or INPUT_ATTACHMENT descriptor. Ignored otherwise. + VkImageLayout imageLayoutLayout the image is expected to be in when accessed using this descriptor (only used if imageView is not VK_NULL_HANDLE). + + + VkStructureType sType + const void* pNext + VkDescriptorSet dstSetDestination descriptor set + uint32_t dstBindingBinding within the destination descriptor set to write + uint32_t dstArrayElementArray element within the destination binding to write + uint32_t descriptorCountNumber of descriptors to write (determines the size of the array pointed by pDescriptors) + VkDescriptorType descriptorTypeDescriptor type to write (determines which members of the array pointed by pDescriptors are going to be used) + const VkDescriptorImageInfo* pImageInfoSampler, image view, and layout for SAMPLER, COMBINED_IMAGE_SAMPLER, {SAMPLED,STORAGE}_IMAGE, and INPUT_ATTACHMENT descriptor types. + const VkDescriptorBufferInfo* pBufferInfoRaw buffer, size, and offset for {UNIFORM,STORAGE}_BUFFER[_DYNAMIC] descriptor types. + const VkBufferView* pTexelBufferViewBuffer view to write to the descriptor for {UNIFORM,STORAGE}_TEXEL_BUFFER descriptor types. + + + VkStructureType sType + const void* pNext + VkDescriptorSet srcSetSource descriptor set + uint32_t srcBindingBinding within the source descriptor set to copy from + uint32_t srcArrayElementArray element within the source binding to copy from + VkDescriptorSet dstSetDestination descriptor set + uint32_t dstBindingBinding within the destination descriptor set to copy to + uint32_t dstArrayElementArray element within the destination binding to copy to + uint32_t descriptorCountNumber of descriptors to write (determines the size of the array pointed by pDescriptors) + + + VkStructureType sType + const void* pNext + VkBufferUsageFlags2KHR usage + + + VkStructureType sType + const void* pNext + VkBufferCreateFlags flagsBuffer creation flags + VkDeviceSize sizeSpecified in bytes + VkBufferUsageFlags usageBuffer usage flags + VkSharingMode sharingMode + uint32_t queueFamilyIndexCount + const uint32_t* pQueueFamilyIndices + + + VkStructureType sType + const void* pNext + VkBufferViewCreateFlags flags + VkBuffer buffer + VkFormat formatOptionally specifies format of elements + VkDeviceSize offsetSpecified in bytes + VkDeviceSize rangeView size specified in bytes + + + VkImageAspectFlags aspectMask + uint32_t mipLevel + uint32_t arrayLayer + + + VkImageAspectFlags aspectMask + uint32_t mipLevel + uint32_t baseArrayLayer + uint32_t layerCount + + + VkImageAspectFlags aspectMask + uint32_t baseMipLevel + uint32_t levelCount + uint32_t baseArrayLayer + uint32_t layerCount + + + VkStructureType sType + const void* pNext + VkAccessFlags srcAccessMaskMemory accesses from the source of the dependency to synchronize + VkAccessFlags dstAccessMaskMemory accesses from the destination of the dependency to synchronize + + + VkStructureType sType + const void* pNext + VkAccessFlags srcAccessMaskMemory accesses from the source of the dependency to synchronize + VkAccessFlags dstAccessMaskMemory accesses from the destination of the dependency to synchronize + uint32_t srcQueueFamilyIndexQueue family to transition ownership from + uint32_t dstQueueFamilyIndexQueue family to transition ownership to + VkBuffer bufferBuffer to sync + VkDeviceSize offsetOffset within the buffer to sync + VkDeviceSize sizeAmount of bytes to sync + + + VkStructureType sType + const void* pNext + VkAccessFlags srcAccessMaskMemory accesses from the source of the dependency to synchronize + VkAccessFlags dstAccessMaskMemory accesses from the destination of the dependency to synchronize + VkImageLayout oldLayoutCurrent layout of the image + VkImageLayout newLayoutNew layout to transition the image to + uint32_t srcQueueFamilyIndexQueue family to transition ownership from + uint32_t dstQueueFamilyIndexQueue family to transition ownership to + VkImage imageImage to sync + VkImageSubresourceRange subresourceRangeSubresource range to sync + + + VkStructureType sType + const void* pNext + VkImageCreateFlags flagsImage creation flags + VkImageType imageType + VkFormat format + VkExtent3D extent + uint32_t mipLevels + uint32_t arrayLayers + VkSampleCountFlagBits samples + VkImageTiling tiling + VkImageUsageFlags usageImage usage flags + VkSharingMode sharingModeCross-queue-family sharing mode + uint32_t queueFamilyIndexCountNumber of queue families to share across + const uint32_t* pQueueFamilyIndicesArray of queue family indices to share across + VkImageLayout initialLayoutInitial image layout for all subresources + + + VkDeviceSize offsetSpecified in bytes + VkDeviceSize sizeSpecified in bytes + VkDeviceSize rowPitchSpecified in bytes + VkDeviceSize arrayPitchSpecified in bytes + VkDeviceSize depthPitchSpecified in bytes + + + VkStructureType sType + const void* pNext + VkImageViewCreateFlags flags + VkImage image + VkImageViewType viewType + VkFormat format + VkComponentMapping components + VkImageSubresourceRange subresourceRange + + + VkDeviceSize srcOffsetSpecified in bytes + VkDeviceSize dstOffsetSpecified in bytes + VkDeviceSize sizeSpecified in bytes + + + VkDeviceSize resourceOffsetSpecified in bytes + VkDeviceSize sizeSpecified in bytes + VkDeviceMemory memory + VkDeviceSize memoryOffsetSpecified in bytes + VkSparseMemoryBindFlags flags + + + VkImageSubresource subresource + VkOffset3D offset + VkExtent3D extent + VkDeviceMemory memory + VkDeviceSize memoryOffsetSpecified in bytes + VkSparseMemoryBindFlags flags + + + VkBuffer buffer + uint32_t bindCount + const VkSparseMemoryBind* pBinds + + + VkImage image + uint32_t bindCount + const VkSparseMemoryBind* pBinds + + + VkImage image + uint32_t bindCount + const VkSparseImageMemoryBind* pBinds + + + VkStructureType sType + const void* pNext + uint32_t waitSemaphoreCount + const VkSemaphore* pWaitSemaphores + uint32_t bufferBindCount + const VkSparseBufferMemoryBindInfo* pBufferBinds + uint32_t imageOpaqueBindCount + const VkSparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds + uint32_t imageBindCount + const VkSparseImageMemoryBindInfo* pImageBinds + uint32_t signalSemaphoreCount + const VkSemaphore* pSignalSemaphores + + + VkImageSubresourceLayers srcSubresource + VkOffset3D srcOffsetSpecified in pixels for both compressed and uncompressed images + VkImageSubresourceLayers dstSubresource + VkOffset3D dstOffsetSpecified in pixels for both compressed and uncompressed images + VkExtent3D extentSpecified in pixels for both compressed and uncompressed images + + + VkImageSubresourceLayers srcSubresource + VkOffset3D srcOffsets[2]Specified in pixels for both compressed and uncompressed images + VkImageSubresourceLayers dstSubresource + VkOffset3D dstOffsets[2]Specified in pixels for both compressed and uncompressed images + + + VkDeviceSize bufferOffsetSpecified in bytes + uint32_t bufferRowLengthSpecified in texels + uint32_t bufferImageHeight + VkImageSubresourceLayers imageSubresource + VkOffset3D imageOffsetSpecified in pixels for both compressed and uncompressed images + VkExtent3D imageExtentSpecified in pixels for both compressed and uncompressed images + + + VkDeviceAddress srcAddress + VkDeviceAddress dstAddress + VkDeviceSize sizeSpecified in bytes + + + VkDeviceAddress srcAddress + uint32_t bufferRowLengthSpecified in texels + uint32_t bufferImageHeight + VkImageSubresourceLayers imageSubresource + VkOffset3D imageOffsetSpecified in pixels for both compressed and uncompressed images + VkExtent3D imageExtentSpecified in pixels for both compressed and uncompressed images + + + VkImageSubresourceLayers srcSubresource + VkOffset3D srcOffset + VkImageSubresourceLayers dstSubresource + VkOffset3D dstOffset + VkExtent3D extent + + + VkStructureType sType + const void* pNextnoautovalidity because this structure can be either an explicit parameter, or passed in a pNext chain + VkShaderModuleCreateFlags flags + size_t codeSizeSpecified in bytes + const uint32_t* pCodeBinary code of size codeSize + + + uint32_t bindingBinding number for this entry + VkDescriptorType descriptorTypeType of the descriptors in this binding + uint32_t descriptorCountNumber of descriptors in this binding + VkShaderStageFlags stageFlagsShader stages this binding is visible to + const VkSampler* pImmutableSamplersImmutable samplers (used if descriptor type is SAMPLER or COMBINED_IMAGE_SAMPLER, is either NULL or contains count number of elements) + + + VkStructureType sType + const void* pNext + VkDescriptorSetLayoutCreateFlags flags + uint32_t bindingCountNumber of bindings in the descriptor set layout + const VkDescriptorSetLayoutBinding* pBindingsArray of descriptor set layout bindings + + + VkDescriptorType type + uint32_t descriptorCount + + + VkStructureType sType + const void* pNext + VkDescriptorPoolCreateFlags flags + uint32_t maxSets + uint32_t poolSizeCount + const VkDescriptorPoolSize* pPoolSizes + + + VkStructureType sType + const void* pNext + VkDescriptorPool descriptorPool + uint32_t descriptorSetCount + const VkDescriptorSetLayout* pSetLayouts + + + uint32_t constantIDThe SpecConstant ID specified in the BIL + uint32_t offsetOffset of the value in the data block + size_t sizeSize in bytes of the SpecConstant + + + uint32_t mapEntryCountNumber of entries in the map + const VkSpecializationMapEntry* pMapEntriesArray of map entries + size_t dataSizeSize in bytes of pData + const void* pDataPointer to SpecConstant data + + + VkStructureType sType + const void* pNext + VkPipelineShaderStageCreateFlags flags + VkShaderStageFlagBits stageShader stage + VkShaderModule moduleModule containing entry point + const char* pNameNull-terminated entry point name + const char* pNameNull-terminated entry point name + const VkSpecializationInfo* pSpecializationInfo + + + VkStructureType sType + const void* pNext + VkPipelineCreateFlags flagsPipeline creation flags + VkPipelineShaderStageCreateInfo stage + VkPipelineLayout layoutInterface layout of the pipeline + VkPipeline basePipelineHandleIf VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is nonzero, it specifies the handle of the base pipeline this is a derivative of + int32_t basePipelineIndexIf VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is not -1, it specifies an index into pCreateInfos of the base pipeline this is a derivative of + + + VkStructureType sType + const void* pNext + VkDeviceAddress deviceAddress + VkDeviceSize size + VkDeviceAddress pipelineDeviceAddressCaptureReplay + + + VkStructureType sType + const void* pNext + VkPipelineCreateFlags2KHR flags + + + uint32_t bindingVertex buffer binding id + uint32_t strideDistance between vertices in bytes (0 = no advancement) + VkVertexInputRate inputRateThe rate at which the vertex data is consumed + + + uint32_t locationlocation of the shader vertex attrib + uint32_t bindingVertex buffer binding id + VkFormat formatformat of source data + uint32_t offsetOffset of first element in bytes from base of vertex + + + VkStructureType sType + const void* pNext + VkPipelineVertexInputStateCreateFlags flags + uint32_t vertexBindingDescriptionCountnumber of bindings + const VkVertexInputBindingDescription* pVertexBindingDescriptions + uint32_t vertexAttributeDescriptionCountnumber of attributes + const VkVertexInputAttributeDescription* pVertexAttributeDescriptions + + + VkStructureType sType + const void* pNext + VkPipelineInputAssemblyStateCreateFlags flags + VkPrimitiveTopology topology + VkBool32 primitiveRestartEnable + + + VkStructureType sType + const void* pNext + VkPipelineTessellationStateCreateFlags flags + uint32_t patchControlPoints + + + VkStructureType sType + const void* pNext + VkPipelineViewportStateCreateFlags flags + uint32_t viewportCount + const VkViewport* pViewports + uint32_t scissorCount + const VkRect2D* pScissors + + + VkStructureType sType + const void* pNext + VkPipelineRasterizationStateCreateFlags flags + VkBool32 depthClampEnable + VkBool32 rasterizerDiscardEnable + VkPolygonMode polygonModeoptional (GL45) + VkCullModeFlags cullMode + VkFrontFace frontFace + VkBool32 depthBiasEnable + float depthBiasConstantFactor + float depthBiasClamp + float depthBiasSlopeFactor + float lineWidth + + + VkStructureType sType + const void* pNext + VkPipelineMultisampleStateCreateFlags flags + VkSampleCountFlagBits rasterizationSamplesNumber of samples used for rasterization + VkBool32 sampleShadingEnableoptional (GL45) + float minSampleShadingoptional (GL45) + const VkSampleMask* pSampleMaskArray of sampleMask words + VkBool32 alphaToCoverageEnable + VkBool32 alphaToOneEnable + + + VkBool32 blendEnable + VkBlendFactor srcColorBlendFactor + VkBlendFactor dstColorBlendFactor + VkBlendOp colorBlendOp + VkBlendFactor srcAlphaBlendFactor + VkBlendFactor dstAlphaBlendFactor + VkBlendOp alphaBlendOp + VkColorComponentFlags colorWriteMask + + + VkStructureType sType + const void* pNext + VkPipelineColorBlendStateCreateFlags flags + VkBool32 logicOpEnable + VkLogicOp logicOp + uint32_t attachmentCount# of pAttachments + const VkPipelineColorBlendAttachmentState* pAttachments + float blendConstants[4] + + + VkStructureType sType + const void* pNext + VkPipelineDynamicStateCreateFlags flags + uint32_t dynamicStateCount + const VkDynamicState* pDynamicStates + + + VkStencilOp failOp + VkStencilOp passOp + VkStencilOp depthFailOp + VkCompareOp compareOp + uint32_t compareMask + uint32_t writeMask + uint32_t reference + + + VkStructureType sType + const void* pNext + VkPipelineDepthStencilStateCreateFlags flags + VkBool32 depthTestEnable + VkBool32 depthWriteEnable + VkCompareOp depthCompareOp + VkBool32 depthBoundsTestEnableoptional (depth_bounds_test) + VkBool32 stencilTestEnable + VkStencilOpState front + VkStencilOpState back + float minDepthBounds + float maxDepthBounds + + + VkStructureType sType + const void* pNext + VkPipelineCreateFlags flagsPipeline creation flags + uint32_t stageCount + const VkPipelineShaderStageCreateInfo* pStagesOne entry for each active shader stage + const VkPipelineShaderStageCreateInfo* pStagesOne entry for each active shader stage + const VkPipelineVertexInputStateCreateInfo* pVertexInputState + const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState + const VkPipelineTessellationStateCreateInfo* pTessellationState + const VkPipelineViewportStateCreateInfo* pViewportState + const VkPipelineRasterizationStateCreateInfo* pRasterizationState + const VkPipelineMultisampleStateCreateInfo* pMultisampleState + const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState + const VkPipelineColorBlendStateCreateInfo* pColorBlendState + const VkPipelineDynamicStateCreateInfo* pDynamicState + VkPipelineLayout layoutInterface layout of the pipeline + VkRenderPass renderPass + uint32_t subpass + VkPipeline basePipelineHandleIf VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is nonzero, it specifies the handle of the base pipeline this is a derivative of + int32_t basePipelineIndexIf VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is not -1, it specifies an index into pCreateInfos of the base pipeline this is a derivative of + + + VkStructureType sType + const void* pNext + VkPipelineCacheCreateFlags flags + size_t initialDataSizeSize of initial data to populate cache, in bytes + size_t initialDataSizeSize of initial data to populate cache, in bytes + const void* pInitialDataInitial data to populate cache + + + The fields in this structure are non-normative since structure packing is implementation-defined in C. The specification defines the normative layout. + uint32_t headerSize + VkPipelineCacheHeaderVersion headerVersion + uint32_t vendorID + uint32_t deviceID + uint8_t pipelineCacheUUID[VK_UUID_SIZE] + + + The fields in this structure are non-normative since structure packing is implementation-defined in C. The specification defines the normative layout. + uint64_t codeSize + uint64_t codeOffset + + + The fields in this structure are non-normative since structure packing is implementation-defined in C. The specification defines the normative layout. + uint8_t pipelineIdentifier[VK_UUID_SIZE] + uint64_t pipelineMemorySize + uint64_t jsonSize + uint64_t jsonOffset + uint32_t stageIndexCount + uint32_t stageIndexStride + uint64_t stageIndexOffset + + + The fields in this structure are non-normative since structure packing is implementation-defined in C. The specification defines the normative layout. + VkPipelineCacheHeaderVersionOne headerVersionOne + VkPipelineCacheValidationVersion validationVersion + uint32_t implementationData + uint32_t pipelineIndexCount + uint32_t pipelineIndexStride + uint64_t pipelineIndexOffset + + + VkShaderStageFlags stageFlagsWhich stages use the range + uint32_t offsetStart of the range, in bytes + uint32_t sizeSize of the range, in bytes + + + VkStructureType sType + const void* pNext + VkPipelineLayoutCreateFlags flags + uint32_t setLayoutCountNumber of descriptor sets interfaced by the pipeline + const VkDescriptorSetLayout* pSetLayoutsArray of setCount number of descriptor set layout objects defining the layout of the + uint32_t pushConstantRangeCountNumber of push-constant ranges used by the pipeline + const VkPushConstantRange* pPushConstantRangesArray of pushConstantRangeCount number of ranges used by various shader stages + + + VkStructureType sType + const void* pNext + VkSamplerCreateFlags flags + VkFilter magFilterFilter mode for magnification + VkFilter minFilterFilter mode for minifiation + VkSamplerMipmapMode mipmapModeMipmap selection mode + VkSamplerAddressMode addressModeU + VkSamplerAddressMode addressModeV + VkSamplerAddressMode addressModeW + float mipLodBias + VkBool32 anisotropyEnable + float maxAnisotropy + VkBool32 compareEnable + VkCompareOp compareOp + float minLod + float maxLod + VkBorderColor borderColor + VkBool32 unnormalizedCoordinates + + + VkStructureType sType + const void* pNext + VkCommandPoolCreateFlags flagsCommand pool creation flags + uint32_t queueFamilyIndex + + + VkStructureType sType + const void* pNext + VkCommandPool commandPool + VkCommandBufferLevel level + uint32_t commandBufferCount + + + VkStructureType sType + const void* pNext + VkRenderPass renderPassRender pass for secondary command buffers + uint32_t subpass + VkFramebuffer framebufferFramebuffer for secondary command buffers + VkBool32 occlusionQueryEnableWhether this secondary command buffer may be executed during an occlusion query + VkQueryControlFlags queryFlagsQuery flags used by this secondary command buffer, if executed during an occlusion query + VkQueryPipelineStatisticFlags pipelineStatisticsPipeline statistics that may be counted for this secondary command buffer + + + VkStructureType sType + const void* pNext + VkCommandBufferUsageFlags flagsCommand buffer usage flags + const VkCommandBufferInheritanceInfo* pInheritanceInfoPointer to inheritance info for secondary command buffers + + + VkStructureType sType + const void* pNext + VkRenderPass renderPass + VkFramebuffer framebuffer + VkRect2D renderArea + uint32_t clearValueCount + const VkClearValue* pClearValues + + + float float32[4] + int32_t int32[4] + uint32_t uint32[4] + + + float depth + uint32_t stencil + + + VkClearColorValue color + VkClearDepthStencilValue depthStencil + + + VkImageAspectFlags aspectMask + uint32_t colorAttachment + VkClearValue clearValue + + + VkAttachmentDescriptionFlags flags + VkFormat format + VkSampleCountFlagBits samples + VkAttachmentLoadOp loadOpLoad operation for color or depth data + VkAttachmentStoreOp storeOpStore operation for color or depth data + VkAttachmentLoadOp stencilLoadOpLoad operation for stencil data + VkAttachmentStoreOp stencilStoreOpStore operation for stencil data + VkImageLayout initialLayout + VkImageLayout finalLayout + + + uint32_t attachment + VkImageLayout layout + + + VkSubpassDescriptionFlags flags + VkPipelineBindPoint pipelineBindPointMust be VK_PIPELINE_BIND_POINT_GRAPHICS for now + uint32_t inputAttachmentCount + const VkAttachmentReference* pInputAttachments + uint32_t colorAttachmentCount + const VkAttachmentReference* pColorAttachments + const VkAttachmentReference* pResolveAttachments + const VkAttachmentReference* pDepthStencilAttachment + uint32_t preserveAttachmentCount + const uint32_t* pPreserveAttachments + + + uint32_t srcSubpass + uint32_t dstSubpass + VkPipelineStageFlags srcStageMask + VkPipelineStageFlags dstStageMask + VkAccessFlags srcAccessMaskMemory accesses from the source of the dependency to synchronize + VkAccessFlags dstAccessMaskMemory accesses from the destination of the dependency to synchronize + VkDependencyFlags dependencyFlags + + + VkStructureType sType + const void* pNext + VkRenderPassCreateFlags flags + uint32_t attachmentCount + const VkAttachmentDescription* pAttachments + uint32_t subpassCount + const VkSubpassDescription* pSubpasses + uint32_t dependencyCount + const VkSubpassDependency* pDependencies + + + VkStructureType sType + const void* pNext + VkEventCreateFlags flagsEvent creation flags + + + VkStructureType sType + const void* pNext + VkFenceCreateFlags flagsFence creation flags + + + VkBool32 robustBufferAccessout of bounds buffer accesses are well defined + VkBool32 fullDrawIndexUint32full 32-bit range of indices for indexed draw calls + VkBool32 imageCubeArrayimage views which are arrays of cube maps + VkBool32 independentBlendblending operations are controlled per-attachment + VkBool32 geometryShadergeometry stage + VkBool32 tessellationShadertessellation control and evaluation stage + VkBool32 sampleRateShadingper-sample shading and interpolation + VkBool32 dualSrcBlendblend operations which take two sources + VkBool32 logicOplogic operations + VkBool32 multiDrawIndirectmulti draw indirect + VkBool32 drawIndirectFirstInstanceindirect drawing can use non-zero firstInstance + VkBool32 depthClampdepth clamping + VkBool32 depthBiasClampdepth bias clamping + VkBool32 fillModeNonSolidpoint and wireframe fill modes + VkBool32 depthBoundsdepth bounds test + VkBool32 wideLineslines with width greater than 1 + VkBool32 largePointspoints with size greater than 1 + VkBool32 alphaToOnethe fragment alpha component can be forced to maximum representable alpha value + VkBool32 multiViewportviewport arrays + VkBool32 samplerAnisotropyanisotropic sampler filtering + VkBool32 textureCompressionETC2ETC texture compression formats + VkBool32 textureCompressionASTC_LDRASTC LDR texture compression formats + VkBool32 textureCompressionBCBC1-7 texture compressed formats + VkBool32 occlusionQueryPreciseprecise occlusion queries returning actual sample counts + VkBool32 pipelineStatisticsQuerypipeline statistics query + VkBool32 vertexPipelineStoresAndAtomicsstores and atomic ops on storage buffers and images are supported in vertex, tessellation, and geometry stages + VkBool32 fragmentStoresAndAtomicsstores and atomic ops on storage buffers and images are supported in the fragment stage + VkBool32 shaderTessellationAndGeometryPointSizetessellation and geometry stages can export point size + VkBool32 shaderImageGatherExtendedimage gather with run-time values and independent offsets + VkBool32 shaderStorageImageExtendedFormatsthe extended set of formats can be used for storage images + VkBool32 shaderStorageImageMultisamplemultisample images can be used for storage images + VkBool32 shaderStorageImageReadWithoutFormatread from storage image does not require format qualifier + VkBool32 shaderStorageImageWriteWithoutFormatwrite to storage image does not require format qualifier + VkBool32 shaderUniformBufferArrayDynamicIndexingarrays of uniform buffers can be accessed with dynamically uniform indices + VkBool32 shaderSampledImageArrayDynamicIndexingarrays of sampled images can be accessed with dynamically uniform indices + VkBool32 shaderStorageBufferArrayDynamicIndexingarrays of storage buffers can be accessed with dynamically uniform indices + VkBool32 shaderStorageImageArrayDynamicIndexingarrays of storage images can be accessed with dynamically uniform indices + VkBool32 shaderClipDistanceclip distance in shaders + VkBool32 shaderCullDistancecull distance in shaders + VkBool32 shaderFloat6464-bit floats (doubles) in shaders + VkBool32 shaderInt6464-bit integers in shaders + VkBool32 shaderInt1616-bit integers in shaders + VkBool32 shaderResourceResidencyshader can use texture operations that return resource residency information (requires sparseNonResident support) + VkBool32 shaderResourceMinLodshader can use texture operations that specify minimum resource LOD + VkBool32 sparseBindingSparse resources support: Resource memory can be managed at opaque page level rather than object level + VkBool32 sparseResidencyBufferSparse resources support: GPU can access partially resident buffers + VkBool32 sparseResidencyImage2DSparse resources support: GPU can access partially resident 2D (non-MSAA non-depth/stencil) images + VkBool32 sparseResidencyImage3DSparse resources support: GPU can access partially resident 3D images + VkBool32 sparseResidency2SamplesSparse resources support: GPU can access partially resident MSAA 2D images with 2 samples + VkBool32 sparseResidency4SamplesSparse resources support: GPU can access partially resident MSAA 2D images with 4 samples + VkBool32 sparseResidency8SamplesSparse resources support: GPU can access partially resident MSAA 2D images with 8 samples + VkBool32 sparseResidency16SamplesSparse resources support: GPU can access partially resident MSAA 2D images with 16 samples + VkBool32 sparseResidencyAliasedSparse resources support: GPU can correctly access data aliased into multiple locations (opt-in) + VkBool32 variableMultisampleRatemultisample rate must be the same for all pipelines in a subpass + VkBool32 inheritedQueriesQueries may be inherited from primary to secondary command buffers + + + VkBool32 residencyStandard2DBlockShapeSparse resources support: GPU will access all 2D (single sample) sparse resources using the standard sparse image block shapes (based on pixel format) + VkBool32 residencyStandard2DMultisampleBlockShapeSparse resources support: GPU will access all 2D (multisample) sparse resources using the standard sparse image block shapes (based on pixel format) + VkBool32 residencyStandard3DBlockShapeSparse resources support: GPU will access all 3D sparse resources using the standard sparse image block shapes (based on pixel format) + VkBool32 residencyAlignedMipSizeSparse resources support: Images with mip level dimensions that are NOT a multiple of the sparse image block dimensions will be placed in the mip tail + VkBool32 residencyNonResidentStrictSparse resources support: GPU can consistently access non-resident regions of a resource, all reads return as if data is 0, writes are discarded + + + resource maximum sizes + uint32_t maxImageDimension1Dmax 1D image dimension + uint32_t maxImageDimension2Dmax 2D image dimension + uint32_t maxImageDimension3Dmax 3D image dimension + uint32_t maxImageDimensionCubemax cubemap image dimension + uint32_t maxImageArrayLayersmax layers for image arrays + uint32_t maxTexelBufferElementsmax texel buffer size (fstexels) + uint32_t maxUniformBufferRangemax uniform buffer range (bytes) + uint32_t maxStorageBufferRangemax storage buffer range (bytes) + uint32_t maxPushConstantsSizemax size of the push constants pool (bytes) + memory limits + uint32_t maxMemoryAllocationCountmax number of device memory allocations supported + uint32_t maxSamplerAllocationCountmax number of samplers that can be allocated on a device + VkDeviceSize bufferImageGranularityGranularity (in bytes) at which buffers and images can be bound to adjacent memory for simultaneous usage + VkDeviceSize sparseAddressSpaceSizeTotal address space available for sparse allocations (bytes) + descriptor set limits + uint32_t maxBoundDescriptorSetsmax number of descriptors sets that can be bound to a pipeline + uint32_t maxPerStageDescriptorSamplersmax number of samplers allowed per-stage in a descriptor set + uint32_t maxPerStageDescriptorUniformBuffersmax number of uniform buffers allowed per-stage in a descriptor set + uint32_t maxPerStageDescriptorStorageBuffersmax number of storage buffers allowed per-stage in a descriptor set + uint32_t maxPerStageDescriptorSampledImagesmax number of sampled images allowed per-stage in a descriptor set + uint32_t maxPerStageDescriptorStorageImagesmax number of storage images allowed per-stage in a descriptor set + uint32_t maxPerStageDescriptorInputAttachmentsmax number of input attachments allowed per-stage in a descriptor set + uint32_t maxPerStageResourcesmax number of resources allowed by a single stage + uint32_t maxDescriptorSetSamplersmax number of samplers allowed in all stages in a descriptor set + uint32_t maxDescriptorSetUniformBuffersmax number of uniform buffers allowed in all stages in a descriptor set + uint32_t maxDescriptorSetUniformBuffersDynamicmax number of dynamic uniform buffers allowed in all stages in a descriptor set + uint32_t maxDescriptorSetStorageBuffersmax number of storage buffers allowed in all stages in a descriptor set + uint32_t maxDescriptorSetStorageBuffersDynamicmax number of dynamic storage buffers allowed in all stages in a descriptor set + uint32_t maxDescriptorSetSampledImagesmax number of sampled images allowed in all stages in a descriptor set + uint32_t maxDescriptorSetStorageImagesmax number of storage images allowed in all stages in a descriptor set + uint32_t maxDescriptorSetInputAttachmentsmax number of input attachments allowed in all stages in a descriptor set + vertex stage limits + uint32_t maxVertexInputAttributesmax number of vertex input attribute slots + uint32_t maxVertexInputBindingsmax number of vertex input binding slots + uint32_t maxVertexInputAttributeOffsetmax vertex input attribute offset added to vertex buffer offset + uint32_t maxVertexInputBindingStridemax vertex input binding stride + uint32_t maxVertexOutputComponentsmax number of output components written by vertex shader + tessellation control stage limits + uint32_t maxTessellationGenerationLevelmax level supported by tessellation primitive generator + uint32_t maxTessellationPatchSizemax patch size (vertices) + uint32_t maxTessellationControlPerVertexInputComponentsmax number of input components per-vertex in TCS + uint32_t maxTessellationControlPerVertexOutputComponentsmax number of output components per-vertex in TCS + uint32_t maxTessellationControlPerPatchOutputComponentsmax number of output components per-patch in TCS + uint32_t maxTessellationControlTotalOutputComponentsmax total number of per-vertex and per-patch output components in TCS + tessellation evaluation stage limits + uint32_t maxTessellationEvaluationInputComponentsmax number of input components per vertex in TES + uint32_t maxTessellationEvaluationOutputComponentsmax number of output components per vertex in TES + geometry stage limits + uint32_t maxGeometryShaderInvocationsmax invocation count supported in geometry shader + uint32_t maxGeometryInputComponentsmax number of input components read in geometry stage + uint32_t maxGeometryOutputComponentsmax number of output components written in geometry stage + uint32_t maxGeometryOutputVerticesmax number of vertices that can be emitted in geometry stage + uint32_t maxGeometryTotalOutputComponentsmax total number of components (all vertices) written in geometry stage + fragment stage limits + uint32_t maxFragmentInputComponentsmax number of input components read in fragment stage + uint32_t maxFragmentOutputAttachmentsmax number of output attachments written in fragment stage + uint32_t maxFragmentDualSrcAttachmentsmax number of output attachments written when using dual source blending + uint32_t maxFragmentCombinedOutputResourcesmax total number of storage buffers, storage images and output buffers + compute stage limits + uint32_t maxComputeSharedMemorySizemax total storage size of work group local storage (bytes) + uint32_t maxComputeWorkGroupCount[3]max num of compute work groups that may be dispatched by a single command (x,y,z) + uint32_t maxComputeWorkGroupInvocationsmax total compute invocations in a single local work group + uint32_t maxComputeWorkGroupSize[3]max local size of a compute work group (x,y,z) + uint32_t subPixelPrecisionBitsnumber bits of subpixel precision in screen x and y + uint32_t subTexelPrecisionBitsnumber bits of precision for selecting texel weights + uint32_t mipmapPrecisionBitsnumber bits of precision for selecting mipmap weights + uint32_t maxDrawIndexedIndexValuemax index value for indexed draw calls (for 32-bit indices) + uint32_t maxDrawIndirectCountmax draw count for indirect drawing calls + float maxSamplerLodBiasmax absolute sampler LOD bias + float maxSamplerAnisotropymax degree of sampler anisotropy + uint32_t maxViewportsmax number of active viewports + uint32_t maxViewportDimensions[2]max viewport dimensions (x,y) + float viewportBoundsRange[2]viewport bounds range (min,max) + uint32_t viewportSubPixelBitsnumber bits of subpixel precision for viewport + size_t minMemoryMapAlignmentmin required alignment of pointers returned by MapMemory (bytes) + VkDeviceSize minTexelBufferOffsetAlignmentmin required alignment for texel buffer offsets (bytes) + VkDeviceSize minUniformBufferOffsetAlignmentmin required alignment for uniform buffer sizes and offsets (bytes) + VkDeviceSize minStorageBufferOffsetAlignmentmin required alignment for storage buffer offsets (bytes) + int32_t minTexelOffsetmin texel offset for OpTextureSampleOffset + uint32_t maxTexelOffsetmax texel offset for OpTextureSampleOffset + int32_t minTexelGatherOffsetmin texel offset for OpTextureGatherOffset + uint32_t maxTexelGatherOffsetmax texel offset for OpTextureGatherOffset + float minInterpolationOffsetfurthest negative offset for interpolateAtOffset + float maxInterpolationOffsetfurthest positive offset for interpolateAtOffset + uint32_t subPixelInterpolationOffsetBitsnumber of subpixel bits for interpolateAtOffset + uint32_t maxFramebufferWidthmax width for a framebuffer + uint32_t maxFramebufferHeightmax height for a framebuffer + uint32_t maxFramebufferLayersmax layer count for a layered framebuffer + VkSampleCountFlags framebufferColorSampleCountssupported color sample counts for a framebuffer + VkSampleCountFlags framebufferDepthSampleCountssupported depth sample counts for a framebuffer + VkSampleCountFlags framebufferStencilSampleCountssupported stencil sample counts for a framebuffer + VkSampleCountFlags framebufferNoAttachmentsSampleCountssupported sample counts for a subpass which uses no attachments + uint32_t maxColorAttachmentsmax number of color attachments per subpass + VkSampleCountFlags sampledImageColorSampleCountssupported color sample counts for a non-integer sampled image + VkSampleCountFlags sampledImageIntegerSampleCountssupported sample counts for an integer image + VkSampleCountFlags sampledImageDepthSampleCountssupported depth sample counts for a sampled image + VkSampleCountFlags sampledImageStencilSampleCountssupported stencil sample counts for a sampled image + VkSampleCountFlags storageImageSampleCountssupported sample counts for a storage image + uint32_t maxSampleMaskWordsmax number of sample mask words + VkBool32 timestampComputeAndGraphicstimestamps on graphics and compute queues + float timestampPeriodnumber of nanoseconds it takes for timestamp query value to increment by 1 + uint32_t maxClipDistancesmax number of clip distances + uint32_t maxCullDistancesmax number of cull distances + uint32_t maxCombinedClipAndCullDistancesmax combined number of user clipping + uint32_t discreteQueuePrioritiesdistinct queue priorities available + float pointSizeRange[2]range (min,max) of supported point sizes + float lineWidthRange[2]range (min,max) of supported line widths + float pointSizeGranularitygranularity of supported point sizes + float lineWidthGranularitygranularity of supported line widths + VkBool32 strictLinesline rasterization follows preferred rules + VkBool32 standardSampleLocationssupports standard sample locations for all supported sample counts + VkDeviceSize optimalBufferCopyOffsetAlignmentoptimal offset of buffer copies + VkDeviceSize optimalBufferCopyRowPitchAlignmentoptimal pitch of buffer copies + VkDeviceSize nonCoherentAtomSizeminimum size and alignment for non-coherent host-mapped device memory access + + + VkStructureType sType + const void* pNext + VkSemaphoreCreateFlags flagsSemaphore creation flags + + + VkStructureType sType + const void* pNext + VkQueryPoolCreateFlags flags + VkQueryType queryType + uint32_t queryCount + VkQueryPipelineStatisticFlags pipelineStatisticsOptional + + + VkStructureType sType + const void* pNext + VkFramebufferCreateFlags flags + VkRenderPass renderPass + uint32_t attachmentCount + const VkImageView* pAttachments + uint32_t width + uint32_t height + uint32_t layers + + + uint32_t vertexCount + uint32_t instanceCount + uint32_t firstVertex + uint32_t firstInstance + + + uint32_t indexCount + uint32_t instanceCount + uint32_t firstIndex + int32_t vertexOffset + uint32_t firstInstance + + + uint32_t x + uint32_t y + uint32_t z + + + uint32_t firstVertex + uint32_t vertexCount + + + uint32_t firstIndex + uint32_t indexCount + int32_t vertexOffset + + + VkStructureType sType + const void* pNext + uint32_t waitSemaphoreCount + const VkSemaphore* pWaitSemaphores + const VkPipelineStageFlags* pWaitDstStageMask + uint32_t commandBufferCount + const VkCommandBuffer* pCommandBuffers + uint32_t signalSemaphoreCount + const VkSemaphore* pSignalSemaphores + + WSI extensions + + VkDisplayKHR displayHandle of the display object + const char* displayNameName of the display + VkExtent2D physicalDimensionsIn millimeters? + VkExtent2D physicalResolutionMax resolution for CRT? + VkSurfaceTransformFlagsKHR supportedTransformsone or more bits from VkSurfaceTransformFlagsKHR + VkBool32 planeReorderPossibleVK_TRUE if the overlay plane's z-order can be changed on this display. + VkBool32 persistentContentVK_TRUE if this is a "smart" display that supports self-refresh/internal buffering. + + + VkDisplayKHR currentDisplayDisplay the plane is currently associated with. Will be VK_NULL_HANDLE if the plane is not in use. + uint32_t currentStackIndexCurrent z-order of the plane. + + + VkExtent2D visibleRegionVisible scanout region. + uint32_t refreshRateNumber of times per second the display is updated. + + + VkDisplayModeKHR displayModeHandle of this display mode. + VkDisplayModeParametersKHR parametersThe parameters this mode uses. + + + VkStructureType sType + const void* pNext + VkDisplayModeCreateFlagsKHR flags + VkDisplayModeParametersKHR parametersThe parameters this mode uses. + + + VkDisplayPlaneAlphaFlagsKHR supportedAlphaTypes of alpha blending supported, if any. + VkOffset2D minSrcPositionDoes the plane have any position and extent restrictions? + VkOffset2D maxSrcPosition + VkExtent2D minSrcExtent + VkExtent2D maxSrcExtent + VkOffset2D minDstPosition + VkOffset2D maxDstPosition + VkExtent2D minDstExtent + VkExtent2D maxDstExtent + + + VkStructureType sType + const void* pNext + VkDisplaySurfaceCreateFlagsKHR flags + VkDisplayModeKHR displayModeThe mode to use when displaying this surface + uint32_t planeIndexThe plane on which this surface appears. Must be between 0 and the value returned by vkGetPhysicalDeviceDisplayPlanePropertiesKHR() in pPropertyCount. + uint32_t planeStackIndexThe z-order of the plane. + VkSurfaceTransformFlagBitsKHR transformTransform to apply to the images as part of the scanout operation + float globalAlphaGlobal alpha value. Must be between 0 and 1, inclusive. Ignored if alphaMode is not VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR + VkDisplayPlaneAlphaFlagBitsKHR alphaModeWhat type of alpha blending to use. Must be a bit from vkGetDisplayPlanePropertiesKHR::supportedAlpha. + VkExtent2D imageExtentsize of the images to use with this surface + + + VkStructureType sType + const void* pNext + VkRect2D srcRectRectangle within the presentable image to read pixel data from when presenting to the display. + VkRect2D dstRectRectangle within the current display mode's visible region to display srcRectangle in. + VkBool32 persistentFor smart displays, use buffered mode. If the display properties member "persistentMode" is VK_FALSE, this member must always be VK_FALSE. + + + uint32_t minImageCountSupported minimum number of images for the surface + uint32_t maxImageCountSupported maximum number of images for the surface, 0 for unlimited + VkExtent2D currentExtentCurrent image width and height for the surface, (0, 0) if undefined + VkExtent2D minImageExtentSupported minimum image width and height for the surface + VkExtent2D maxImageExtentSupported maximum image width and height for the surface + uint32_t maxImageArrayLayersSupported maximum number of image layers for the surface + VkSurfaceTransformFlagsKHR supportedTransforms1 or more bits representing the transforms supported + VkSurfaceTransformFlagBitsKHR currentTransformThe surface's current transform relative to the device's natural orientation + VkCompositeAlphaFlagsKHR supportedCompositeAlpha1 or more bits representing the alpha compositing modes supported + VkImageUsageFlags supportedUsageFlagsSupported image usage flags for the surface + + + VkStructureType sType + const void* pNext + VkAndroidSurfaceCreateFlagsKHR flags + struct ANativeWindow* window + + + VkStructureType sType + const void* pNext + VkViSurfaceCreateFlagsNN flags + void* window + + + VkStructureType sType + const void* pNext + VkWaylandSurfaceCreateFlagsKHR flags + struct wl_display* display + struct wl_surface* surface + + + VkStructureType sType + const void* pNext + VkWin32SurfaceCreateFlagsKHR flags + HINSTANCE hinstance + HWND hwnd + + + VkStructureType sType + const void* pNext + VkXlibSurfaceCreateFlagsKHR flags + Display* dpy + Window window + + + VkStructureType sType + const void* pNext + VkXcbSurfaceCreateFlagsKHR flags + xcb_connection_t* connection + xcb_window_t window + + + VkStructureType sType + const void* pNext + VkDirectFBSurfaceCreateFlagsEXT flags + IDirectFB* dfb + IDirectFBSurface* surface + + + VkStructureType sType + const void* pNext + VkImagePipeSurfaceCreateFlagsFUCHSIA flags + zx_handle_t imagePipeHandle + + + VkStructureType sType + const void* pNext + VkStreamDescriptorSurfaceCreateFlagsGGP flags + GgpStreamDescriptor streamDescriptor + + + VkStructureType sType + const void* pNext + VkScreenSurfaceCreateFlagsQNX flags + struct _screen_context* context + struct _screen_window* window + + + VkFormat formatSupported pair of rendering format + VkColorSpaceKHR colorSpaceand color space for the surface + + + VkStructureType sType + const void* pNext + VkSwapchainCreateFlagsKHR flags + VkSurfaceKHR surfaceThe swapchain's target surface + uint32_t minImageCountMinimum number of presentation images the application needs + VkFormat imageFormatFormat of the presentation images + VkColorSpaceKHR imageColorSpaceColorspace of the presentation images + VkExtent2D imageExtentDimensions of the presentation images + uint32_t imageArrayLayersDetermines the number of views for multiview/stereo presentation + VkImageUsageFlags imageUsageBits indicating how the presentation images will be used + VkSharingMode imageSharingModeSharing mode used for the presentation images + uint32_t queueFamilyIndexCountNumber of queue families having access to the images in case of concurrent sharing mode + const uint32_t* pQueueFamilyIndicesArray of queue family indices having access to the images in case of concurrent sharing mode + VkSurfaceTransformFlagBitsKHR preTransformThe transform, relative to the device's natural orientation, applied to the image content prior to presentation + VkCompositeAlphaFlagBitsKHR compositeAlphaThe alpha blending mode used when compositing this surface with other surfaces in the window system + VkPresentModeKHR presentModeWhich presentation mode to use for presents on this swap chain + VkBool32 clippedSpecifies whether presentable images may be affected by window clip regions + VkSwapchainKHR oldSwapchainExisting swap chain to replace, if any + VkSwapchainKHR oldSwapchainExisting swap chain to replace, if any + + + VkStructureType sType + const void* pNext + uint32_t waitSemaphoreCountNumber of semaphores to wait for before presenting + const VkSemaphore* pWaitSemaphoresSemaphores to wait for before presenting + uint32_t swapchainCountNumber of swapchains to present in this call + const VkSwapchainKHR* pSwapchainsSwapchains to present an image from + const uint32_t* pImageIndicesIndices of which presentable images to present + VkResult* pResultsOptional (i.e. if non-NULL) VkResult for each swapchain + + + VkStructureType sType + const void* pNext + VkDebugReportFlagsEXT flagsIndicates which events call this callback + PFN_vkDebugReportCallbackEXT pfnCallbackFunction pointer of a callback function + void* pUserDataUser data provided to callback function + + + VkStructureType sTypeMust be VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT + const void* pNext + uint32_t disabledValidationCheckCountNumber of validation checks to disable + const VkValidationCheckEXT* pDisabledValidationChecksValidation checks to disable + + + VkStructureType sTypeMust be VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT + const void* pNext + uint32_t enabledValidationFeatureCountNumber of validation features to enable + const VkValidationFeatureEnableEXT* pEnabledValidationFeaturesValidation features to enable + uint32_t disabledValidationFeatureCountNumber of validation features to disable + const VkValidationFeatureDisableEXT* pDisabledValidationFeaturesValidation features to disable + + + VkStructureType sTypeMust be VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT + const void* pNext + uint32_t settingCountNumber of settings to configure + const VkLayerSettingEXT* pSettingsValidation features to enable + + + const char* pLayerName + const char* pSettingName + VkLayerSettingTypeEXT typeThe type of the object + uint32_t valueCountNumber of values of the setting + const void* pValuesValues to pass for a setting + + + VkStructureType sType + const void* pNext + uint32_t vendorID + uint32_t deviceID + uint32_t key + uint64_t value + + + VkStructureType sType + const void* pNext + VkRasterizationOrderAMD rasterizationOrderRasterization order to use for the pipeline + + + VkStructureType sType + const void* pNext + VkDebugReportObjectTypeEXT objectTypeThe type of the object + uint64_t objectThe handle of the object, cast to uint64_t + const char* pObjectNameName to apply to the object + + + VkStructureType sType + const void* pNext + VkDebugReportObjectTypeEXT objectTypeThe type of the object + uint64_t objectThe handle of the object, cast to uint64_t + uint64_t tagNameThe name of the tag to set on the object + size_t tagSizeThe length in bytes of the tag data + const void* pTagTag data to attach to the object + + + VkStructureType sType + const void* pNext + const char* pMarkerNameName of the debug marker + float color[4]Optional color for debug marker + + + VkStructureType sType + const void* pNext + VkBool32 dedicatedAllocationWhether this image uses a dedicated allocation + + + VkStructureType sType + const void* pNext + VkBool32 dedicatedAllocationWhether this buffer uses a dedicated allocation + + + VkStructureType sType + const void* pNext + VkImage imageImage that this allocation will be bound to + VkBuffer bufferBuffer that this allocation will be bound to + + + VkImageFormatProperties imageFormatProperties + VkExternalMemoryFeatureFlagsNV externalMemoryFeatures + VkExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes + VkExternalMemoryHandleTypeFlagsNV compatibleHandleTypes + + + VkStructureType sType + const void* pNext + VkExternalMemoryHandleTypeFlagsNV handleTypes + + + VkStructureType sType + const void* pNext + VkExternalMemoryHandleTypeFlagsNV handleTypes + + + VkStructureType sType + const void* pNext + VkExternalMemoryHandleTypeFlagsNV handleType + HANDLE handle + + + VkStructureType sType + const void* pNext + const SECURITY_ATTRIBUTES* pAttributes + DWORD dwAccess + + + VkStructureType sType + const void* pNext + NvSciBufAttrList pAttributes + + + VkStructureType sType + const void* pNext + VkExternalMemoryHandleTypeFlagBits handleType + NvSciBufObj handle + + + VkStructureType sType + const void* pNext + VkDeviceMemory memory + VkExternalMemoryHandleTypeFlagBits handleType + + + VkStructureType sType + const void* pNext + uint32_t memoryTypeBits + + + VkStructureType sType + void* pNext + VkBool32 sciBufImport + VkBool32 sciBufExport + + + + VkStructureType sType + const void* pNext + uint32_t acquireCount + const VkDeviceMemory* pAcquireSyncs + const uint64_t* pAcquireKeys + const uint32_t* pAcquireTimeoutMilliseconds + uint32_t releaseCount + const VkDeviceMemory* pReleaseSyncs + const uint64_t* pReleaseKeys + + + VkStructureType sType + void* pNext + VkBool32 deviceGeneratedCommands + + + VkStructureType sType + void* pNext + VkBool32 deviceGeneratedCompute + VkBool32 deviceGeneratedComputePipelines + VkBool32 deviceGeneratedComputeCaptureReplay + + + VkStructureType sType + const void* pNext + uint32_t privateDataSlotRequestCount + + + + VkStructureType sType + const void* pNext + VkPrivateDataSlotCreateFlags flags + + + + VkStructureType sType + void* pNext + VkBool32 privateData + + + + VkStructureType sType + void* pNext + uint32_t maxGraphicsShaderGroupCount + uint32_t maxIndirectSequenceCount + uint32_t maxIndirectCommandsTokenCount + uint32_t maxIndirectCommandsStreamCount + uint32_t maxIndirectCommandsTokenOffset + uint32_t maxIndirectCommandsStreamStride + uint32_t minSequencesCountBufferOffsetAlignment + uint32_t minSequencesIndexBufferOffsetAlignment + uint32_t minIndirectCommandsBufferOffsetAlignment + + + VkStructureType sType + void* pNext + uint32_t maxMultiDrawCount + + + VkStructureType sType + const void* pNext + uint32_t stageCount + const VkPipelineShaderStageCreateInfo* pStages + const VkPipelineVertexInputStateCreateInfo* pVertexInputState + const VkPipelineTessellationStateCreateInfo* pTessellationState + + + VkStructureType sType + const void* pNext + uint32_t groupCount + const VkGraphicsShaderGroupCreateInfoNV* pGroups + uint32_t pipelineCount + const VkPipeline* pPipelines + + + uint32_t groupIndex + + + VkDeviceAddress bufferAddress + uint32_t size + VkIndexType indexType + + + VkDeviceAddress bufferAddress + uint32_t size + uint32_t stride + + + uint32_t data + + + VkBuffer buffer + VkDeviceSize offset + + + VkStructureType sType + const void* pNext + VkIndirectCommandsTokenTypeNV tokenType + uint32_t stream + uint32_t offset + uint32_t vertexBindingUnit + VkBool32 vertexDynamicStride + VkPipelineLayout pushconstantPipelineLayout + VkShaderStageFlags pushconstantShaderStageFlags + uint32_t pushconstantOffset + uint32_t pushconstantSize + VkIndirectStateFlagsNV indirectStateFlags + uint32_t indexTypeCount + const VkIndexType* pIndexTypes + const uint32_t* pIndexTypeValues + + + VkStructureType sType + const void* pNext + VkIndirectCommandsLayoutUsageFlagsNV flags + VkPipelineBindPoint pipelineBindPoint + uint32_t tokenCount + const VkIndirectCommandsLayoutTokenNV* pTokens + uint32_t streamCount + const uint32_t* pStreamStrides + + + VkStructureType sType + const void* pNext + VkPipelineBindPoint pipelineBindPoint + VkPipeline pipeline + VkIndirectCommandsLayoutNV indirectCommandsLayout + uint32_t streamCount + const VkIndirectCommandsStreamNV* pStreams + uint32_t sequencesCount + VkBuffer preprocessBuffer + VkDeviceSize preprocessOffset + VkDeviceSize preprocessSize + VkBuffer sequencesCountBuffer + VkDeviceSize sequencesCountOffset + VkBuffer sequencesIndexBuffer + VkDeviceSize sequencesIndexOffset + + + VkStructureType sType + const void* pNext + VkPipelineBindPoint pipelineBindPoint + VkPipeline pipeline + VkIndirectCommandsLayoutNV indirectCommandsLayout + uint32_t maxSequencesCount + + + VkStructureType sType + const void* pNext + VkPipelineBindPoint pipelineBindPoint + VkPipeline pipeline + + + VkDeviceAddress pipelineAddress + + + VkStructureType sType + void* pNext + VkPhysicalDeviceFeatures features + + + + VkStructureType sType + void* pNext + VkPhysicalDeviceProperties properties + + + + VkStructureType sType + void* pNext + VkFormatProperties formatProperties + + + + VkStructureType sType + void* pNext + VkImageFormatProperties imageFormatProperties + + + + VkStructureType sType + const void* pNext + VkFormat format + VkImageType type + VkImageTiling tiling + VkImageUsageFlags usage + VkImageCreateFlags flags + + + + VkStructureType sType + void* pNext + VkQueueFamilyProperties queueFamilyProperties + + + + VkStructureType sType + void* pNext + VkPhysicalDeviceMemoryProperties memoryProperties + + + + VkStructureType sType + void* pNext + VkSparseImageFormatProperties properties + + + + VkStructureType sType + const void* pNext + VkFormat format + VkImageType type + VkSampleCountFlagBits samples + VkImageUsageFlags usage + VkImageTiling tiling + + + + VkStructureType sType + void* pNext + uint32_t maxPushDescriptors + + + uint8_t major + uint8_t minor + uint8_t subminor + uint8_t patch + + + + VkStructureType sType + void* pNext + VkDriverId driverID + char driverName[VK_MAX_DRIVER_NAME_SIZE] + char driverInfo[VK_MAX_DRIVER_INFO_SIZE] + VkConformanceVersion conformanceVersion + + + + VkStructureType sType + const void* pNext + uint32_t swapchainCountCopy of VkPresentInfoKHR::swapchainCount + const VkPresentRegionKHR* pRegionsThe regions that have changed + + + uint32_t rectangleCountNumber of rectangles in pRectangles + const VkRectLayerKHR* pRectanglesArray of rectangles that have changed in a swapchain's image(s) + + + VkOffset2D offsetupper-left corner of a rectangle that has not changed, in pixels of a presentation images + VkExtent2D extentDimensions of a rectangle that has not changed, in pixels of a presentation images + uint32_t layerLayer of a swapchain's image(s), for stereoscopic-3D images + + + VkStructureType sType + void* pNext + VkBool32 variablePointersStorageBuffer + VkBool32 variablePointers + + + + + + VkExternalMemoryFeatureFlags externalMemoryFeatures + VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes + VkExternalMemoryHandleTypeFlags compatibleHandleTypes + + + + VkStructureType sType + const void* pNext + VkExternalMemoryHandleTypeFlagBits handleType + + + + VkStructureType sType + void* pNext + VkExternalMemoryProperties externalMemoryProperties + + + + VkStructureType sType + const void* pNext + VkBufferCreateFlags flags + VkBufferUsageFlags usage + VkExternalMemoryHandleTypeFlagBits handleType + + + + VkStructureType sType + void* pNext + VkExternalMemoryProperties externalMemoryProperties + + + + VkStructureType sType + void* pNext + uint8_t deviceUUID[VK_UUID_SIZE] + uint8_t driverUUID[VK_UUID_SIZE] + uint8_t deviceLUID[VK_LUID_SIZE] + uint32_t deviceNodeMask + VkBool32 deviceLUIDValid + + + + VkStructureType sType + const void* pNext + VkExternalMemoryHandleTypeFlags handleTypes + + + + VkStructureType sType + const void* pNext + VkExternalMemoryHandleTypeFlags handleTypes + + + + VkStructureType sType + const void* pNext + VkExternalMemoryHandleTypeFlags handleTypes + + + + VkStructureType sType + const void* pNext + VkExternalMemoryHandleTypeFlagBits handleType + HANDLE handle + LPCWSTR name + + + VkStructureType sType + const void* pNext + const SECURITY_ATTRIBUTES* pAttributes + DWORD dwAccess + LPCWSTR name + + + VkStructureType sType + const void* pNext + VkExternalMemoryHandleTypeFlagBits handleType + zx_handle_t handle + + + VkStructureType sType + void* pNext + uint32_t memoryTypeBits + + + VkStructureType sType + const void* pNext + VkDeviceMemory memory + VkExternalMemoryHandleTypeFlagBits handleType + + + VkStructureType sType + void* pNext + uint32_t memoryTypeBits + + + VkStructureType sType + const void* pNext + VkDeviceMemory memory + VkExternalMemoryHandleTypeFlagBits handleType + + + VkStructureType sType + const void* pNext + VkExternalMemoryHandleTypeFlagBits handleType + int fd + + + VkStructureType sType + void* pNext + uint32_t memoryTypeBits + + + VkStructureType sType + const void* pNext + VkDeviceMemory memory + VkExternalMemoryHandleTypeFlagBits handleType + + + VkStructureType sType + const void* pNext + uint32_t acquireCount + const VkDeviceMemory* pAcquireSyncs + const uint64_t* pAcquireKeys + const uint32_t* pAcquireTimeouts + uint32_t releaseCount + const VkDeviceMemory* pReleaseSyncs + const uint64_t* pReleaseKeys + + + VkStructureType sType + const void* pNext + VkExternalSemaphoreHandleTypeFlagBits handleType + + + + VkStructureType sType + void* pNext + VkExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes + VkExternalSemaphoreHandleTypeFlags compatibleHandleTypes + VkExternalSemaphoreFeatureFlags externalSemaphoreFeatures + + + + VkStructureType sType + const void* pNext + VkExternalSemaphoreHandleTypeFlags handleTypes + + + + VkStructureType sType + const void* pNext + VkSemaphore semaphore + VkSemaphoreImportFlags flags + VkExternalSemaphoreHandleTypeFlagBits handleType + HANDLE handle + LPCWSTR name + + + VkStructureType sType + const void* pNext + const SECURITY_ATTRIBUTES* pAttributes + DWORD dwAccess + LPCWSTR name + + + VkStructureType sType + const void* pNext + uint32_t waitSemaphoreValuesCount + const uint64_t* pWaitSemaphoreValues + uint32_t signalSemaphoreValuesCount + const uint64_t* pSignalSemaphoreValues + + + VkStructureType sType + const void* pNext + VkSemaphore semaphore + VkExternalSemaphoreHandleTypeFlagBits handleType + + + VkStructureType sType + const void* pNext + VkSemaphore semaphore + VkSemaphoreImportFlags flags + VkExternalSemaphoreHandleTypeFlagBits handleType + int fd + + + VkStructureType sType + const void* pNext + VkSemaphore semaphore + VkExternalSemaphoreHandleTypeFlagBits handleType + + + VkStructureType sType + const void* pNext + VkSemaphore semaphore + VkSemaphoreImportFlags flags + VkExternalSemaphoreHandleTypeFlagBits handleType + zx_handle_t zirconHandle + + + VkStructureType sType + const void* pNext + VkSemaphore semaphore + VkExternalSemaphoreHandleTypeFlagBits handleType + + + VkStructureType sType + const void* pNext + VkExternalFenceHandleTypeFlagBits handleType + + + + VkStructureType sType + void* pNext + VkExternalFenceHandleTypeFlags exportFromImportedHandleTypes + VkExternalFenceHandleTypeFlags compatibleHandleTypes + VkExternalFenceFeatureFlags externalFenceFeatures + + + + VkStructureType sType + const void* pNext + VkExternalFenceHandleTypeFlags handleTypes + + + + VkStructureType sType + const void* pNext + VkFence fence + VkFenceImportFlags flags + VkExternalFenceHandleTypeFlagBits handleType + HANDLE handle + LPCWSTR name + + + VkStructureType sType + const void* pNext + const SECURITY_ATTRIBUTES* pAttributes + DWORD dwAccess + LPCWSTR name + + + VkStructureType sType + const void* pNext + VkFence fence + VkExternalFenceHandleTypeFlagBits handleType + + + VkStructureType sType + const void* pNext + VkFence fence + VkFenceImportFlags flags + VkExternalFenceHandleTypeFlagBits handleType + int fd + + + VkStructureType sType + const void* pNext + VkFence fence + VkExternalFenceHandleTypeFlagBits handleType + + + VkStructureType sType + const void* pNext + NvSciSyncAttrList pAttributes + + + VkStructureType sType + const void* pNext + VkFence fence + VkExternalFenceHandleTypeFlagBits handleType + void* handle + + + VkStructureType sType + const void* pNext + VkFence fence + VkExternalFenceHandleTypeFlagBits handleType + + + VkStructureType sType + const void* pNext + NvSciSyncAttrList pAttributes + + + VkStructureType sType + const void* pNext + VkSemaphore semaphore + VkExternalSemaphoreHandleTypeFlagBits handleType + void* handle + + + VkStructureType sType + const void* pNext + VkSemaphore semaphore + VkExternalSemaphoreHandleTypeFlagBits handleType + + + VkStructureType sType + const void* pNext + VkSciSyncClientTypeNV clientType + VkSciSyncPrimitiveTypeNV primitiveType + + + VkStructureType sType + void* pNext + VkBool32 sciSyncFence + VkBool32 sciSyncSemaphore + VkBool32 sciSyncImport + VkBool32 sciSyncExport + + + VkStructureType sType + void* pNext + VkBool32 sciSyncFence + VkBool32 sciSyncSemaphore2 + VkBool32 sciSyncImport + VkBool32 sciSyncExport + + + VkStructureType sType + const void* pNext + NvSciSyncObj handle + + + VkStructureType sType + const void* pNext + VkSemaphoreSciSyncPoolNV semaphorePool + const NvSciSyncFence* pFence + + + VkStructureType sType + const void* pNext + uint32_t semaphoreSciSyncPoolRequestCount + + + VkStructureType sType + void* pNext + VkBool32 multiviewMultiple views in a renderpass + VkBool32 multiviewGeometryShaderMultiple views in a renderpass w/ geometry shader + VkBool32 multiviewTessellationShaderMultiple views in a renderpass w/ tessellation shader + + + + VkStructureType sType + void* pNext + uint32_t maxMultiviewViewCountmax number of views in a subpass + uint32_t maxMultiviewInstanceIndexmax instance index for a draw in a multiview subpass + + + + VkStructureType sType + const void* pNext + uint32_t subpassCount + const uint32_t* pViewMasks + uint32_t dependencyCount + const int32_t* pViewOffsets + uint32_t correlationMaskCount + const uint32_t* pCorrelationMasks + + + + VkStructureType sType + void* pNext + uint32_t minImageCountSupported minimum number of images for the surface + uint32_t maxImageCountSupported maximum number of images for the surface, 0 for unlimited + VkExtent2D currentExtentCurrent image width and height for the surface, (0, 0) if undefined + VkExtent2D minImageExtentSupported minimum image width and height for the surface + VkExtent2D maxImageExtentSupported maximum image width and height for the surface + uint32_t maxImageArrayLayersSupported maximum number of image layers for the surface + VkSurfaceTransformFlagsKHR supportedTransforms1 or more bits representing the transforms supported + VkSurfaceTransformFlagBitsKHR currentTransformThe surface's current transform relative to the device's natural orientation + VkCompositeAlphaFlagsKHR supportedCompositeAlpha1 or more bits representing the alpha compositing modes supported + VkImageUsageFlags supportedUsageFlagsSupported image usage flags for the surface + VkSurfaceCounterFlagsEXT supportedSurfaceCounters + + + VkStructureType sType + const void* pNext + VkDisplayPowerStateEXT powerState + + + VkStructureType sType + const void* pNext + VkDeviceEventTypeEXT deviceEvent + + + VkStructureType sType + const void* pNext + VkDisplayEventTypeEXT displayEvent + + + VkStructureType sType + const void* pNext + VkSurfaceCounterFlagsEXT surfaceCounters + + + VkStructureType sType + void* pNext + uint32_t physicalDeviceCount + VkPhysicalDevice physicalDevices[VK_MAX_DEVICE_GROUP_SIZE] + VkBool32 subsetAllocation + + + + VkStructureType sType + const void* pNext + VkMemoryAllocateFlags flags + uint32_t deviceMask + + + + VkStructureType sType + const void* pNext + VkBuffer buffer + VkDeviceMemory memory + VkDeviceSize memoryOffset + + + + VkStructureType sType + const void* pNext + uint32_t deviceIndexCount + const uint32_t* pDeviceIndices + + + + VkStructureType sType + const void* pNext + VkImage image + VkDeviceMemory memory + VkDeviceSize memoryOffset + + + + VkStructureType sType + const void* pNext + uint32_t deviceIndexCount + const uint32_t* pDeviceIndices + uint32_t splitInstanceBindRegionCount + const VkRect2D* pSplitInstanceBindRegions + + + + VkStructureType sType + const void* pNext + uint32_t deviceMask + uint32_t deviceRenderAreaCount + const VkRect2D* pDeviceRenderAreas + + + + VkStructureType sType + const void* pNext + uint32_t deviceMask + + + + VkStructureType sType + const void* pNext + uint32_t waitSemaphoreCount + const uint32_t* pWaitSemaphoreDeviceIndices + uint32_t commandBufferCount + const uint32_t* pCommandBufferDeviceMasks + uint32_t signalSemaphoreCount + const uint32_t* pSignalSemaphoreDeviceIndices + + + + VkStructureType sType + const void* pNext + uint32_t resourceDeviceIndex + uint32_t memoryDeviceIndex + + + + VkStructureType sType + void* pNext + uint32_t presentMask[VK_MAX_DEVICE_GROUP_SIZE] + VkDeviceGroupPresentModeFlagsKHR modes + + + VkStructureType sType + const void* pNext + VkSwapchainKHR swapchain + + + VkStructureType sType + const void* pNext + VkSwapchainKHR swapchain + uint32_t imageIndex + + + VkStructureType sType + const void* pNext + VkSwapchainKHR swapchain + uint64_t timeout + VkSemaphore semaphore + VkFence fence + uint32_t deviceMask + + + VkStructureType sType + const void* pNext + uint32_t swapchainCount + const uint32_t* pDeviceMasks + VkDeviceGroupPresentModeFlagBitsKHR mode + + + VkStructureType sType + const void* pNext + uint32_t physicalDeviceCount + const VkPhysicalDevice* pPhysicalDevices + + + + VkStructureType sType + const void* pNext + VkDeviceGroupPresentModeFlagsKHR modes + + + uint32_t dstBindingBinding within the destination descriptor set to write + uint32_t dstArrayElementArray element within the destination binding to write + uint32_t descriptorCountNumber of descriptors to write + VkDescriptorType descriptorTypeDescriptor type to write + size_t offsetOffset into pData where the descriptors to update are stored + size_t strideStride between two descriptors in pData when writing more than one descriptor + + + + VkStructureType sType + const void* pNext + VkDescriptorUpdateTemplateCreateFlags flags + uint32_t descriptorUpdateEntryCountNumber of descriptor update entries to use for the update template + const VkDescriptorUpdateTemplateEntry* pDescriptorUpdateEntriesDescriptor update entries for the template + VkDescriptorUpdateTemplateType templateType + VkDescriptorSetLayout descriptorSetLayout + VkPipelineBindPoint pipelineBindPoint + VkPipelineLayout pipelineLayoutIf used for push descriptors, this is the only allowed layout + uint32_t set + + + + float x + float y + + + VkStructureType sType + void* pNext + VkBool32 presentIdPresent ID in VkPresentInfoKHR + + + VkStructureType sType + const void* pNext + uint32_t swapchainCountCopy of VkPresentInfoKHR::swapchainCount + const uint64_t* pPresentIdsPresent ID values for each swapchain + + + VkStructureType sType + void* pNext + VkBool32 presentWaitvkWaitForPresentKHR is supported + + + Display primary in chromaticity coordinates + VkStructureType sType + const void* pNext + From SMPTE 2086 + VkXYColorEXT displayPrimaryRedDisplay primary's Red + VkXYColorEXT displayPrimaryGreenDisplay primary's Green + VkXYColorEXT displayPrimaryBlueDisplay primary's Blue + VkXYColorEXT whitePointDisplay primary's Blue + float maxLuminanceDisplay maximum luminance + float minLuminanceDisplay minimum luminance + From CTA 861.3 + float maxContentLightLevelContent maximum luminance + float maxFrameAverageLightLevel + + + VkStructureType sType + void* pNext + VkBool32 localDimmingSupport + + + VkStructureType sType + const void* pNext + VkBool32 localDimmingEnable + + + uint64_t refreshDurationNumber of nanoseconds from the start of one refresh cycle to the next + + + uint32_t presentIDApplication-provided identifier, previously given to vkQueuePresentKHR + uint64_t desiredPresentTimeEarliest time an image should have been presented, previously given to vkQueuePresentKHR + uint64_t actualPresentTimeTime the image was actually displayed + uint64_t earliestPresentTimeEarliest time the image could have been displayed + uint64_t presentMarginHow early vkQueuePresentKHR was processed vs. how soon it needed to be and make earliestPresentTime + + + VkStructureType sType + const void* pNext + uint32_t swapchainCountCopy of VkPresentInfoKHR::swapchainCount + const VkPresentTimeGOOGLE* pTimesThe earliest times to present images + + + uint32_t presentIDApplication-provided identifier + uint64_t desiredPresentTimeEarliest time an image should be presented + + + VkStructureType sType + const void* pNext + VkIOSSurfaceCreateFlagsMVK flags + const void* pView + + + VkStructureType sType + const void* pNext + VkMacOSSurfaceCreateFlagsMVK flags + const void* pView + + + VkStructureType sType + const void* pNext + VkMetalSurfaceCreateFlagsEXT flags + const CAMetalLayer* pLayer + + + float xcoeff + float ycoeff + + + VkStructureType sType + const void* pNext + VkBool32 viewportWScalingEnable + uint32_t viewportCount + const VkViewportWScalingNV* pViewportWScalings + + + VkViewportCoordinateSwizzleNV x + VkViewportCoordinateSwizzleNV y + VkViewportCoordinateSwizzleNV z + VkViewportCoordinateSwizzleNV w + + + VkStructureType sType + const void* pNext + VkPipelineViewportSwizzleStateCreateFlagsNV flags + uint32_t viewportCount + const VkViewportSwizzleNV* pViewportSwizzles + + + VkStructureType sType + void* pNext + uint32_t maxDiscardRectanglesmax number of active discard rectangles + + + VkStructureType sType + const void* pNext + VkPipelineDiscardRectangleStateCreateFlagsEXT flags + VkDiscardRectangleModeEXT discardRectangleMode + uint32_t discardRectangleCount + const VkRect2D* pDiscardRectangles + + + VkStructureType sType + void* pNext + VkBool32 perViewPositionAllComponents + + + uint32_t subpass + uint32_t inputAttachmentIndex + VkImageAspectFlags aspectMask + + + + VkStructureType sType + const void* pNext + uint32_t aspectReferenceCount + const VkInputAttachmentAspectReference* pAspectReferences + + + + VkStructureType sType + const void* pNext + VkSurfaceKHR surface + + + VkStructureType sType + void* pNext + VkSurfaceCapabilitiesKHR surfaceCapabilities + + + VkStructureType sType + void* pNext + VkSurfaceFormatKHR surfaceFormat + + + VkStructureType sType + void* pNext + VkDisplayPropertiesKHR displayProperties + + + VkStructureType sType + void* pNext + VkDisplayPlanePropertiesKHR displayPlaneProperties + + + VkStructureType sType + void* pNext + VkDisplayModePropertiesKHR displayModeProperties + + + VkStructureType sType + const void* pNext + VkDisplayModeKHR mode + uint32_t planeIndex + + + VkStructureType sType + void* pNext + VkDisplayPlaneCapabilitiesKHR capabilities + + + VkStructureType sType + void* pNext + VkImageUsageFlags sharedPresentSupportedUsageFlagsSupported image usage flags if swapchain created using a shared present mode + + + VkStructureType sType + void* pNext + VkBool32 storageBuffer16BitAccess16-bit integer/floating-point variables supported in BufferBlock + VkBool32 uniformAndStorageBuffer16BitAccess16-bit integer/floating-point variables supported in BufferBlock and Block + VkBool32 storagePushConstant1616-bit integer/floating-point variables supported in PushConstant + VkBool32 storageInputOutput1616-bit integer/floating-point variables supported in shader inputs and outputs + + + + VkStructureType sType + void* pNext + uint32_t subgroupSizeThe size of a subgroup for this queue. + VkShaderStageFlags supportedStagesBitfield of what shader stages support subgroup operations + VkSubgroupFeatureFlags supportedOperationsBitfield of what subgroup operations are supported. + VkBool32 quadOperationsInAllStagesFlag to specify whether quad operations are available in all stages. + + + VkStructureType sType + void* pNext + VkBool32 shaderSubgroupExtendedTypesFlag to specify whether subgroup operations with extended types are supported + + + + VkStructureType sType + const void* pNext + VkBuffer buffer + + + + VkStructureType sType + const void* pNext + const VkBufferCreateInfo* pCreateInfo + + + + VkStructureType sType + const void* pNext + VkImage image + + + + VkStructureType sType + const void* pNext + VkImage image + + + + VkStructureType sType + const void* pNext + const VkImageCreateInfo* pCreateInfo + VkImageAspectFlagBits planeAspect + + + + VkStructureType sType + void* pNext + VkMemoryRequirements memoryRequirements + + + + VkStructureType sType + void* pNext + VkSparseImageMemoryRequirements memoryRequirements + + + + VkStructureType sType + void* pNext + VkPointClippingBehavior pointClippingBehavior + + + + VkStructureType sType + void* pNext + VkBool32 prefersDedicatedAllocation + VkBool32 requiresDedicatedAllocation + + + + VkStructureType sType + const void* pNext + VkImage imageImage that this allocation will be bound to + VkBuffer bufferBuffer that this allocation will be bound to + + + + VkStructureType sType + const void* pNext + VkImageUsageFlags usage + + + VkStructureType sType + const void* pNext + uint32_t sliceOffset + uint32_t sliceCount + + + + VkStructureType sType + const void* pNext + VkTessellationDomainOrigin domainOrigin + + + + VkStructureType sType + const void* pNext + VkSamplerYcbcrConversion conversion + + + + VkStructureType sType + const void* pNext + VkFormat format + VkSamplerYcbcrModelConversion ycbcrModel + VkSamplerYcbcrRange ycbcrRange + VkComponentMapping components + VkChromaLocation xChromaOffset + VkChromaLocation yChromaOffset + VkFilter chromaFilter + VkBool32 forceExplicitReconstruction + + + + VkStructureType sType + const void* pNext + VkImageAspectFlagBits planeAspect + + + + VkStructureType sType + const void* pNext + VkImageAspectFlagBits planeAspect + + + + VkStructureType sType + void* pNext + VkBool32 samplerYcbcrConversionSampler color conversion supported + + + + VkStructureType sType + void* pNext + uint32_t combinedImageSamplerDescriptorCount + + + + VkStructureType sType + void* pNext + VkBool32 supportsTextureGatherLODBiasAMD + + + VkStructureType sType + const void* pNext + VkBuffer buffer + VkDeviceSize offset + VkConditionalRenderingFlagsEXT flags + + + VkStructureType sType + const void* pNext + VkBool32 protectedSubmitSubmit protected command buffers + + + VkStructureType sType + void* pNext + VkBool32 protectedMemory + + + VkStructureType sType + void* pNext + VkBool32 protectedNoFault + + + VkStructureType sType + const void* pNext + VkDeviceQueueCreateFlags flags + uint32_t queueFamilyIndex + uint32_t queueIndex + + + VkStructureType sType + const void* pNext + VkPipelineCoverageToColorStateCreateFlagsNV flags + VkBool32 coverageToColorEnable + uint32_t coverageToColorLocation + + + VkStructureType sType + void* pNext + VkBool32 filterMinmaxSingleComponentFormats + VkBool32 filterMinmaxImageComponentMapping + + + + float x + float y + + + VkStructureType sType + const void* pNext + VkSampleCountFlagBits sampleLocationsPerPixel + VkExtent2D sampleLocationGridSize + uint32_t sampleLocationsCount + const VkSampleLocationEXT* pSampleLocations + + + uint32_t attachmentIndex + VkSampleLocationsInfoEXT sampleLocationsInfo + + + uint32_t subpassIndex + VkSampleLocationsInfoEXT sampleLocationsInfo + + + VkStructureType sType + const void* pNext + uint32_t attachmentInitialSampleLocationsCount + const VkAttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations + uint32_t postSubpassSampleLocationsCount + const VkSubpassSampleLocationsEXT* pPostSubpassSampleLocations + + + VkStructureType sType + const void* pNext + VkBool32 sampleLocationsEnable + VkSampleLocationsInfoEXT sampleLocationsInfo + + + VkStructureType sType + void* pNext + VkSampleCountFlags sampleLocationSampleCounts + VkExtent2D maxSampleLocationGridSize + float sampleLocationCoordinateRange[2] + uint32_t sampleLocationSubPixelBits + VkBool32 variableSampleLocations + + + VkStructureType sType + void* pNext + VkExtent2D maxSampleLocationGridSize + + + VkStructureType sType + const void* pNext + VkSamplerReductionMode reductionMode + + + + VkStructureType sType + void* pNext + VkBool32 advancedBlendCoherentOperations + + + VkStructureType sType + void* pNext + VkBool32 multiDraw + + + VkStructureType sType + void* pNext + uint32_t advancedBlendMaxColorAttachments + VkBool32 advancedBlendIndependentBlend + VkBool32 advancedBlendNonPremultipliedSrcColor + VkBool32 advancedBlendNonPremultipliedDstColor + VkBool32 advancedBlendCorrelatedOverlap + VkBool32 advancedBlendAllOperations + + + VkStructureType sType + const void* pNext + VkBool32 srcPremultiplied + VkBool32 dstPremultiplied + VkBlendOverlapEXT blendOverlap + + + VkStructureType sType + void* pNext + VkBool32 inlineUniformBlock + VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind + + + + VkStructureType sType + void* pNext + uint32_t maxInlineUniformBlockSize + uint32_t maxPerStageDescriptorInlineUniformBlocks + uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks + uint32_t maxDescriptorSetInlineUniformBlocks + uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks + + + + VkStructureType sType + const void* pNext + uint32_t dataSize + const void* pData + + + + VkStructureType sType + const void* pNext + uint32_t maxInlineUniformBlockBindings + + + + VkStructureType sType + const void* pNext + VkPipelineCoverageModulationStateCreateFlagsNV flags + VkCoverageModulationModeNV coverageModulationMode + VkBool32 coverageModulationTableEnable + uint32_t coverageModulationTableCount + const float* pCoverageModulationTable + + + VkStructureType sType + const void* pNext + uint32_t viewFormatCount + const VkFormat* pViewFormats + + + + VkStructureType sType + const void* pNext + VkValidationCacheCreateFlagsEXT flags + size_t initialDataSize + const void* pInitialData + + + VkStructureType sType + const void* pNext + VkValidationCacheEXT validationCache + + + VkStructureType sType + void* pNext + uint32_t maxPerSetDescriptors + VkDeviceSize maxMemoryAllocationSize + + + + VkStructureType sType + void* pNext + VkBool32 maintenance4 + + + + VkStructureType sType + void* pNext + VkDeviceSize maxBufferSize + + + + VkStructureType sType + void* pNext + VkBool32 maintenance5 + + + VkStructureType sType + void* pNext + VkBool32 earlyFragmentMultisampleCoverageAfterSampleCounting + VkBool32 earlyFragmentSampleMaskTestBeforeSampleCounting + VkBool32 depthStencilSwizzleOneSupport + VkBool32 polygonModePointSize + VkBool32 nonStrictSinglePixelWideLinesUseParallelogram + VkBool32 nonStrictWideLinesUseParallelogram + + + VkStructureType sType + void* pNext + VkBool32 maintenance6 + + + VkStructureType sType + void* pNext + VkBool32 blockTexelViewCompatibleMultipleLayers + uint32_t maxCombinedImageSamplerDescriptorCount + VkBool32 fragmentShadingRateClampCombinerInputs + + + VkStructureType sType + const void* pNext + uint32_t viewMask + uint32_t colorAttachmentCount + const VkFormat* pColorAttachmentFormats + VkFormat depthAttachmentFormat + VkFormat stencilAttachmentFormat + + + VkStructureType sType + void* pNext + VkBool32 supported + + + + VkStructureType sType + void* pNext + VkBool32 shaderDrawParameters + + + + VkStructureType sType + void* pNext + VkBool32 shaderFloat1616-bit floats (halfs) in shaders + VkBool32 shaderInt88-bit integers in shaders + + + + + VkStructureType sType + void* pNext + VkShaderFloatControlsIndependence denormBehaviorIndependence + VkShaderFloatControlsIndependence roundingModeIndependence + VkBool32 shaderSignedZeroInfNanPreserveFloat16An implementation can preserve signed zero, nan, inf + VkBool32 shaderSignedZeroInfNanPreserveFloat32An implementation can preserve signed zero, nan, inf + VkBool32 shaderSignedZeroInfNanPreserveFloat64An implementation can preserve signed zero, nan, inf + VkBool32 shaderDenormPreserveFloat16An implementation can preserve denormals + VkBool32 shaderDenormPreserveFloat32An implementation can preserve denormals + VkBool32 shaderDenormPreserveFloat64An implementation can preserve denormals + VkBool32 shaderDenormFlushToZeroFloat16An implementation can flush to zero denormals + VkBool32 shaderDenormFlushToZeroFloat32An implementation can flush to zero denormals + VkBool32 shaderDenormFlushToZeroFloat64An implementation can flush to zero denormals + VkBool32 shaderRoundingModeRTEFloat16An implementation can support RTE + VkBool32 shaderRoundingModeRTEFloat32An implementation can support RTE + VkBool32 shaderRoundingModeRTEFloat64An implementation can support RTE + VkBool32 shaderRoundingModeRTZFloat16An implementation can support RTZ + VkBool32 shaderRoundingModeRTZFloat32An implementation can support RTZ + VkBool32 shaderRoundingModeRTZFloat64An implementation can support RTZ + + + + VkStructureType sType + void* pNext + VkBool32 hostQueryReset + + + + uint64_t consumer + uint64_t producer + + + VkStructureType sType + const void* pNext + const void* handle + int stride + int format + int usage + VkNativeBufferUsage2ANDROID usage2 + + + VkStructureType sType + const void* pNext + VkSwapchainImageUsageFlagsANDROID usage + + + VkStructureType sType + const void* pNext + VkBool32 sharedImage + + + uint32_t numUsedVgprs + uint32_t numUsedSgprs + uint32_t ldsSizePerLocalWorkGroup + size_t ldsUsageSizeInBytes + size_t scratchMemUsageInBytes + + + VkShaderStageFlags shaderStageMask + VkShaderResourceUsageAMD resourceUsage + uint32_t numPhysicalVgprs + uint32_t numPhysicalSgprs + uint32_t numAvailableVgprs + uint32_t numAvailableSgprs + uint32_t computeWorkGroupSize[3] + + + VkStructureType sType + const void* pNext + VkQueueGlobalPriorityKHR globalPriority + + + + VkStructureType sType + void* pNext + VkBool32 globalPriorityQuery + + + + VkStructureType sType + void* pNext + uint32_t priorityCount + VkQueueGlobalPriorityKHR priorities[VK_MAX_GLOBAL_PRIORITY_SIZE_KHR] + + + + VkStructureType sType + const void* pNext + VkObjectType objectType + uint64_t objectHandle + const char* pObjectName + + + VkStructureType sType + const void* pNext + VkObjectType objectType + uint64_t objectHandle + uint64_t tagName + size_t tagSize + const void* pTag + + + VkStructureType sType + const void* pNext + const char* pLabelName + float color[4] + + + VkStructureType sType + const void* pNext + VkDebugUtilsMessengerCreateFlagsEXT flags + VkDebugUtilsMessageSeverityFlagsEXT messageSeverity + VkDebugUtilsMessageTypeFlagsEXT messageType + PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback + void* pUserData + + + VkStructureType sType + const void* pNext + VkDebugUtilsMessengerCallbackDataFlagsEXT flags + const char* pMessageIdName + int32_t messageIdNumber + const char* pMessage + uint32_t queueLabelCount + const VkDebugUtilsLabelEXT* pQueueLabels + uint32_t cmdBufLabelCount + const VkDebugUtilsLabelEXT* pCmdBufLabels + uint32_t objectCount + const VkDebugUtilsObjectNameInfoEXT* pObjects + + + VkStructureType sType + void* pNext + VkBool32 deviceMemoryReport + + + VkStructureType sType + const void* pNext + VkDeviceMemoryReportFlagsEXT flags + PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback + void* pUserData + + + VkStructureType sType + void* pNext + VkDeviceMemoryReportFlagsEXT flags + VkDeviceMemoryReportEventTypeEXT type + uint64_t memoryObjectId + VkDeviceSize size + VkObjectType objectType + uint64_t objectHandle + uint32_t heapIndex + + + VkStructureType sType + const void* pNext + VkExternalMemoryHandleTypeFlagBits handleType + void* pHostPointer + + + VkStructureType sType + void* pNext + uint32_t memoryTypeBits + + + VkStructureType sType + void* pNext + VkDeviceSize minImportedHostPointerAlignment + + + VkStructureType sType + void* pNext + float primitiveOverestimationSizeThe size in pixels the primitive is enlarged at each edge during conservative rasterization + float maxExtraPrimitiveOverestimationSizeThe maximum additional overestimation the client can specify in the pipeline state + float extraPrimitiveOverestimationSizeGranularityThe granularity of extra overestimation sizes the implementations supports between 0 and maxExtraOverestimationSize + VkBool32 primitiveUnderestimationtrue if the implementation supports conservative rasterization underestimation mode + VkBool32 conservativePointAndLineRasterizationtrue if conservative rasterization also applies to points and lines + VkBool32 degenerateTrianglesRasterizedtrue if degenerate triangles (those with zero area after snap) are rasterized + VkBool32 degenerateLinesRasterizedtrue if degenerate lines (those with zero length after snap) are rasterized + VkBool32 fullyCoveredFragmentShaderInputVariabletrue if the implementation supports the FullyCoveredEXT SPIR-V builtin fragment shader input variable + VkBool32 conservativeRasterizationPostDepthCoveragetrue if the implementation supports both conservative rasterization and post depth coverage sample coverage mask + + + VkStructureType sType + const void* pNext + VkTimeDomainKHR timeDomain + + + + VkStructureType sType + void* pNext + uint32_t shaderEngineCountnumber of shader engines + uint32_t shaderArraysPerEngineCountnumber of shader arrays + uint32_t computeUnitsPerShaderArraynumber of physical CUs per shader array + uint32_t simdPerComputeUnitnumber of SIMDs per compute unit + uint32_t wavefrontsPerSimdnumber of wavefront slots in each SIMD + uint32_t wavefrontSizemaximum number of threads per wavefront + uint32_t sgprsPerSimdnumber of physical SGPRs per SIMD + uint32_t minSgprAllocationminimum number of SGPRs that can be allocated by a wave + uint32_t maxSgprAllocationnumber of available SGPRs + uint32_t sgprAllocationGranularitySGPRs are allocated in groups of this size + uint32_t vgprsPerSimdnumber of physical VGPRs per SIMD + uint32_t minVgprAllocationminimum number of VGPRs that can be allocated by a wave + uint32_t maxVgprAllocationnumber of available VGPRs + uint32_t vgprAllocationGranularityVGPRs are allocated in groups of this size + + + VkStructureType sType + void* pNextPointer to next structure + VkShaderCorePropertiesFlagsAMD shaderCoreFeaturesfeatures supported by the shader core + uint32_t activeComputeUnitCountnumber of active compute units across all shader engines/arrays + + + VkStructureType sType + const void* pNext + VkPipelineRasterizationConservativeStateCreateFlagsEXT flagsReserved + VkConservativeRasterizationModeEXT conservativeRasterizationModeConservative rasterization mode + float extraPrimitiveOverestimationSizeExtra overestimation to add to the primitive + + + VkStructureType sType + void* pNext + 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 + + + + VkStructureType sType + void* pNext + uint32_t maxUpdateAfterBindDescriptorsInAllPools + VkBool32 shaderUniformBufferArrayNonUniformIndexingNative + VkBool32 shaderSampledImageArrayNonUniformIndexingNative + VkBool32 shaderStorageBufferArrayNonUniformIndexingNative + VkBool32 shaderStorageImageArrayNonUniformIndexingNative + VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative + VkBool32 robustBufferAccessUpdateAfterBind + VkBool32 quadDivergentImplicitLod + uint32_t maxPerStageDescriptorUpdateAfterBindSamplers + uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers + uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers + uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages + uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages + uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments + uint32_t maxPerStageUpdateAfterBindResources + uint32_t maxDescriptorSetUpdateAfterBindSamplers + uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers + uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic + uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers + uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic + uint32_t maxDescriptorSetUpdateAfterBindSampledImages + uint32_t maxDescriptorSetUpdateAfterBindStorageImages + uint32_t maxDescriptorSetUpdateAfterBindInputAttachments + + + + VkStructureType sType + const void* pNext + uint32_t bindingCount + const VkDescriptorBindingFlags* pBindingFlags + + + + VkStructureType sType + const void* pNext + uint32_t descriptorSetCount + const uint32_t* pDescriptorCounts + + + + VkStructureType sType + void* pNext + uint32_t maxVariableDescriptorCount + + + + VkStructureType sType + const void* pNext + VkAttachmentDescriptionFlags flags + VkFormat format + VkSampleCountFlagBits samples + VkAttachmentLoadOp loadOpLoad operation for color or depth data + VkAttachmentStoreOp storeOpStore operation for color or depth data + VkAttachmentLoadOp stencilLoadOpLoad operation for stencil data + VkAttachmentStoreOp stencilStoreOpStore operation for stencil data + VkImageLayout initialLayout + VkImageLayout finalLayout + + + + VkStructureType sType + const void* pNext + uint32_t attachment + VkImageLayout layout + VkImageAspectFlags aspectMask + + + + VkStructureType sType + const void* pNext + VkSubpassDescriptionFlags flags + VkPipelineBindPoint pipelineBindPoint + uint32_t viewMask + uint32_t inputAttachmentCount + const VkAttachmentReference2* pInputAttachments + uint32_t colorAttachmentCount + const VkAttachmentReference2* pColorAttachments + const VkAttachmentReference2* pResolveAttachments + const VkAttachmentReference2* pDepthStencilAttachment + uint32_t preserveAttachmentCount + const uint32_t* pPreserveAttachments + + + + VkStructureType sType + const void* pNext + uint32_t srcSubpass + uint32_t dstSubpass + VkPipelineStageFlags srcStageMask + VkPipelineStageFlags dstStageMask + VkAccessFlags srcAccessMask + VkAccessFlags dstAccessMask + VkDependencyFlags dependencyFlags + int32_t viewOffset + + + + VkStructureType sType + const void* pNext + VkRenderPassCreateFlags flags + uint32_t attachmentCount + const VkAttachmentDescription2* pAttachments + uint32_t subpassCount + const VkSubpassDescription2* pSubpasses + uint32_t dependencyCount + const VkSubpassDependency2* pDependencies + uint32_t correlatedViewMaskCount + const uint32_t* pCorrelatedViewMasks + + + + VkStructureType sType + const void* pNext + VkSubpassContents contents + + + + VkStructureType sType + const void* pNext + + + + VkStructureType sType + void* pNext + VkBool32 timelineSemaphore + + + + VkStructureType sType + void* pNext + uint64_t maxTimelineSemaphoreValueDifference + + + + VkStructureType sType + const void* pNext + VkSemaphoreType semaphoreType + uint64_t initialValue + + + + VkStructureType sType + const void* pNext + uint32_t waitSemaphoreValueCount + const uint64_t* pWaitSemaphoreValues + uint32_t signalSemaphoreValueCount + const uint64_t* pSignalSemaphoreValues + + + + VkStructureType sType + const void* pNext + VkSemaphoreWaitFlags flags + uint32_t semaphoreCount + const VkSemaphore* pSemaphores + const uint64_t* pValues + + + + VkStructureType sType + const void* pNext + VkSemaphore semaphore + uint64_t value + + + + uint32_t binding + uint32_t divisor + + + + VkStructureType sType + const void* pNext + uint32_t vertexBindingDivisorCount + const VkVertexInputBindingDivisorDescriptionKHR* pVertexBindingDivisors + + + + VkStructureType sType + void* pNext + uint32_t maxVertexAttribDivisormax value of vertex attribute divisor + + + VkStructureType sType + void* pNext + uint32_t maxVertexAttribDivisormax value of vertex attribute divisor + VkBool32 supportsNonZeroFirstInstance + + + VkStructureType sType + void* pNext + uint32_t pciDomain + uint32_t pciBus + uint32_t pciDevice + uint32_t pciFunction + + + VkStructureType sType + const void* pNext + struct AHardwareBuffer* buffer + + + VkStructureType sType + void* pNext + uint64_t androidHardwareBufferUsage + + + VkStructureType sType + void* pNext + VkDeviceSize allocationSize + uint32_t memoryTypeBits + + + VkStructureType sType + const void* pNext + VkDeviceMemory memory + + + VkStructureType sType + void* pNext + VkFormat format + uint64_t externalFormat + VkFormatFeatureFlags formatFeatures + VkComponentMapping samplerYcbcrConversionComponents + VkSamplerYcbcrModelConversion suggestedYcbcrModel + VkSamplerYcbcrRange suggestedYcbcrRange + VkChromaLocation suggestedXChromaOffset + VkChromaLocation suggestedYChromaOffset + + + VkStructureType sType + const void* pNext + VkBool32 conditionalRenderingEnableWhether this secondary command buffer may be executed during an active conditional rendering + + + VkStructureType sType + void* pNext + uint64_t externalFormat + + + VkStructureType sType + void* pNext + VkBool32 storageBuffer8BitAccess8-bit integer variables supported in StorageBuffer + VkBool32 uniformAndStorageBuffer8BitAccess8-bit integer variables supported in StorageBuffer and Uniform + VkBool32 storagePushConstant88-bit integer variables supported in PushConstant + + + + VkStructureType sType + void* pNext + VkBool32 conditionalRendering + VkBool32 inheritedConditionalRendering + + + VkStructureType sType + void* pNext + VkBool32 vulkanMemoryModel + VkBool32 vulkanMemoryModelDeviceScope + VkBool32 vulkanMemoryModelAvailabilityVisibilityChains + + + + VkStructureType sType + void* pNext + VkBool32 shaderBufferInt64Atomics + VkBool32 shaderSharedInt64Atomics + + + + VkStructureType sType + void* pNext + VkBool32 shaderBufferFloat32Atomics + VkBool32 shaderBufferFloat32AtomicAdd + VkBool32 shaderBufferFloat64Atomics + VkBool32 shaderBufferFloat64AtomicAdd + VkBool32 shaderSharedFloat32Atomics + VkBool32 shaderSharedFloat32AtomicAdd + VkBool32 shaderSharedFloat64Atomics + VkBool32 shaderSharedFloat64AtomicAdd + VkBool32 shaderImageFloat32Atomics + VkBool32 shaderImageFloat32AtomicAdd + VkBool32 sparseImageFloat32Atomics + VkBool32 sparseImageFloat32AtomicAdd + + + VkStructureType sType + void* pNext + VkBool32 shaderBufferFloat16Atomics + VkBool32 shaderBufferFloat16AtomicAdd + VkBool32 shaderBufferFloat16AtomicMinMax + VkBool32 shaderBufferFloat32AtomicMinMax + VkBool32 shaderBufferFloat64AtomicMinMax + VkBool32 shaderSharedFloat16Atomics + VkBool32 shaderSharedFloat16AtomicAdd + VkBool32 shaderSharedFloat16AtomicMinMax + VkBool32 shaderSharedFloat32AtomicMinMax + VkBool32 shaderSharedFloat64AtomicMinMax + VkBool32 shaderImageFloat32AtomicMinMax + VkBool32 sparseImageFloat32AtomicMinMax + + + VkStructureType sType + void* pNext + VkBool32 vertexAttributeInstanceRateDivisor + VkBool32 vertexAttributeInstanceRateZeroDivisor + + + + VkStructureType sType + void* pNext + VkPipelineStageFlags checkpointExecutionStageMask + + + VkStructureType sType + void* pNext + VkPipelineStageFlagBits stage + void* pCheckpointMarker + + + VkStructureType sType + void* pNext + VkResolveModeFlags supportedDepthResolveModessupported depth resolve modes + VkResolveModeFlags supportedStencilResolveModessupported stencil resolve modes + VkBool32 independentResolveNonedepth and stencil resolve modes can be set independently if one of them is none + VkBool32 independentResolvedepth and stencil resolve modes can be set independently + + + + VkStructureType sType + const void* pNext + VkResolveModeFlagBits depthResolveModedepth resolve mode + VkResolveModeFlagBits stencilResolveModestencil resolve mode + const VkAttachmentReference2* pDepthStencilResolveAttachmentdepth/stencil resolve attachment + + + + VkStructureType sType + const void* pNext + VkFormat decodeMode + + + VkStructureType sType + void* pNext + VkBool32 decodeModeSharedExponent + + + VkStructureType sType + void* pNext + VkBool32 transformFeedback + VkBool32 geometryStreams + + + VkStructureType sType + void* pNext + uint32_t maxTransformFeedbackStreams + uint32_t maxTransformFeedbackBuffers + VkDeviceSize maxTransformFeedbackBufferSize + uint32_t maxTransformFeedbackStreamDataSize + uint32_t maxTransformFeedbackBufferDataSize + uint32_t maxTransformFeedbackBufferDataStride + VkBool32 transformFeedbackQueries + VkBool32 transformFeedbackStreamsLinesTriangles + VkBool32 transformFeedbackRasterizationStreamSelect + VkBool32 transformFeedbackDraw + + + VkStructureType sType + const void* pNext + VkPipelineRasterizationStateStreamCreateFlagsEXT flags + uint32_t rasterizationStream + + + VkStructureType sType + void* pNext + VkBool32 representativeFragmentTest + + + VkStructureType sType + const void* pNext + VkBool32 representativeFragmentTestEnable + + + VkStructureType sType + void* pNext + VkBool32 exclusiveScissor + + + VkStructureType sType + const void* pNext + uint32_t exclusiveScissorCount + const VkRect2D* pExclusiveScissors + + + VkStructureType sType + void* pNext + VkBool32 cornerSampledImage + + + VkStructureType sType + void* pNext + VkBool32 computeDerivativeGroupQuads + VkBool32 computeDerivativeGroupLinear + + + + VkStructureType sType + void* pNext + VkBool32 imageFootprint + + + VkStructureType sType + void* pNext + VkBool32 dedicatedAllocationImageAliasing + + + VkStructureType sType + void* pNext + VkBool32 indirectCopy + + + VkStructureType sType + void* pNext + VkQueueFlags supportedQueuesBitfield of which queues are supported for indirect copy + + + VkStructureType sType + void* pNext + VkBool32 memoryDecompression + + + VkStructureType sType + void* pNext + VkMemoryDecompressionMethodFlagsNV decompressionMethods + uint64_t maxDecompressionIndirectCount + + + uint32_t shadingRatePaletteEntryCount + const VkShadingRatePaletteEntryNV* pShadingRatePaletteEntries + + + VkStructureType sType + const void* pNext + VkBool32 shadingRateImageEnable + uint32_t viewportCount + const VkShadingRatePaletteNV* pShadingRatePalettes + + + VkStructureType sType + void* pNext + VkBool32 shadingRateImage + VkBool32 shadingRateCoarseSampleOrder + + + VkStructureType sType + void* pNext + VkExtent2D shadingRateTexelSize + uint32_t shadingRatePaletteSize + uint32_t shadingRateMaxCoarseSamples + + + VkStructureType sType + void* pNext + VkBool32 invocationMask + + + uint32_t pixelX + uint32_t pixelY + uint32_t sample + + + VkShadingRatePaletteEntryNV shadingRate + uint32_t sampleCount + uint32_t sampleLocationCount + const VkCoarseSampleLocationNV* pSampleLocations + + + VkStructureType sType + const void* pNext + VkCoarseSampleOrderTypeNV sampleOrderType + uint32_t customSampleOrderCount + const VkCoarseSampleOrderCustomNV* pCustomSampleOrders + + + VkStructureType sType + void* pNext + VkBool32 taskShader + VkBool32 meshShader + + + VkStructureType sType + void* pNext + uint32_t maxDrawMeshTasksCount + uint32_t maxTaskWorkGroupInvocations + uint32_t maxTaskWorkGroupSize[3] + uint32_t maxTaskTotalMemorySize + uint32_t maxTaskOutputCount + uint32_t maxMeshWorkGroupInvocations + uint32_t maxMeshWorkGroupSize[3] + uint32_t maxMeshTotalMemorySize + uint32_t maxMeshOutputVertices + uint32_t maxMeshOutputPrimitives + uint32_t maxMeshMultiviewViewCount + uint32_t meshOutputPerVertexGranularity + uint32_t meshOutputPerPrimitiveGranularity + + + uint32_t taskCount + uint32_t firstTask + + + VkStructureType sType + void* pNext + VkBool32 taskShader + VkBool32 meshShader + VkBool32 multiviewMeshShader + VkBool32 primitiveFragmentShadingRateMeshShader + VkBool32 meshShaderQueries + + + VkStructureType sType + void* pNext + uint32_t maxTaskWorkGroupTotalCount + uint32_t maxTaskWorkGroupCount[3] + uint32_t maxTaskWorkGroupInvocations + uint32_t maxTaskWorkGroupSize[3] + uint32_t maxTaskPayloadSize + uint32_t maxTaskSharedMemorySize + uint32_t maxTaskPayloadAndSharedMemorySize + uint32_t maxMeshWorkGroupTotalCount + uint32_t maxMeshWorkGroupCount[3] + uint32_t maxMeshWorkGroupInvocations + uint32_t maxMeshWorkGroupSize[3] + uint32_t maxMeshSharedMemorySize + uint32_t maxMeshPayloadAndSharedMemorySize + uint32_t maxMeshOutputMemorySize + uint32_t maxMeshPayloadAndOutputMemorySize + uint32_t maxMeshOutputComponents + uint32_t maxMeshOutputVertices + uint32_t maxMeshOutputPrimitives + uint32_t maxMeshOutputLayers + uint32_t maxMeshMultiviewViewCount + uint32_t meshOutputPerVertexGranularity + uint32_t meshOutputPerPrimitiveGranularity + uint32_t maxPreferredTaskWorkGroupInvocations + uint32_t maxPreferredMeshWorkGroupInvocations + VkBool32 prefersLocalInvocationVertexOutput + VkBool32 prefersLocalInvocationPrimitiveOutput + VkBool32 prefersCompactVertexOutput + VkBool32 prefersCompactPrimitiveOutput + + + uint32_t groupCountX + uint32_t groupCountY + uint32_t groupCountZ + + + VkStructureType sType + const void* pNext + VkRayTracingShaderGroupTypeKHR type + uint32_t generalShader + uint32_t closestHitShader + uint32_t anyHitShader + uint32_t intersectionShader + + + VkStructureType sType + const void* pNext + VkRayTracingShaderGroupTypeKHR type + uint32_t generalShader + uint32_t closestHitShader + uint32_t anyHitShader + uint32_t intersectionShader + const void* pShaderGroupCaptureReplayHandle + + + VkStructureType sType + const void* pNext + VkPipelineCreateFlags flagsPipeline creation flags + uint32_t stageCount + const VkPipelineShaderStageCreateInfo* pStagesOne entry for each active shader stage + uint32_t groupCount + const VkRayTracingShaderGroupCreateInfoNV* pGroups + uint32_t maxRecursionDepth + VkPipelineLayout layoutInterface layout of the pipeline + VkPipeline basePipelineHandleIf VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is nonzero, it specifies the handle of the base pipeline this is a derivative of + int32_t basePipelineIndexIf VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is not -1, it specifies an index into pCreateInfos of the base pipeline this is a derivative of + + + VkStructureType sType + const void* pNext + VkPipelineCreateFlags flagsPipeline creation flags + uint32_t stageCount + const VkPipelineShaderStageCreateInfo* pStagesOne entry for each active shader stage + uint32_t groupCount + const VkRayTracingShaderGroupCreateInfoKHR* pGroups + uint32_t maxPipelineRayRecursionDepth + const VkPipelineLibraryCreateInfoKHR* pLibraryInfo + const VkRayTracingPipelineInterfaceCreateInfoKHR* pLibraryInterface + const VkPipelineDynamicStateCreateInfo* pDynamicState + VkPipelineLayout layoutInterface layout of the pipeline + VkPipeline basePipelineHandleIf VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is nonzero, it specifies the handle of the base pipeline this is a derivative of + int32_t basePipelineIndexIf VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is not -1, it specifies an index into pCreateInfos of the base pipeline this is a derivative of + + + VkStructureType sType + const void* pNext + VkBuffer vertexData + VkDeviceSize vertexOffset + uint32_t vertexCount + VkDeviceSize vertexStride + VkFormat vertexFormat + VkBuffer indexData + VkDeviceSize indexOffset + uint32_t indexCount + VkIndexType indexType + VkBuffer transformDataOptional reference to array of floats representing a 3x4 row major affine transformation matrix. + VkDeviceSize transformOffset + + + VkStructureType sType + const void* pNext + VkBuffer aabbData + uint32_t numAABBs + uint32_t strideStride in bytes between AABBs + VkDeviceSize offsetOffset in bytes of the first AABB in aabbData + + + VkGeometryTrianglesNV triangles + VkGeometryAABBNV aabbs + + + VkStructureType sType + const void* pNext + VkGeometryTypeKHR geometryType + VkGeometryDataNV geometry + VkGeometryFlagsKHR flags + + + VkStructureType sType + const void* pNext + VkAccelerationStructureTypeNV type + VkBuildAccelerationStructureFlagsNV flags + uint32_t instanceCount + uint32_t geometryCount + const VkGeometryNV* pGeometries + + + VkStructureType sType + const void* pNext + VkDeviceSize compactedSize + VkAccelerationStructureInfoNV info + + + VkStructureType sType + const void* pNext + VkAccelerationStructureNV accelerationStructure + VkDeviceMemory memory + VkDeviceSize memoryOffset + uint32_t deviceIndexCount + const uint32_t* pDeviceIndices + + + VkStructureType sType + const void* pNext + uint32_t accelerationStructureCount + const VkAccelerationStructureKHR* pAccelerationStructures + + + VkStructureType sType + const void* pNext + uint32_t accelerationStructureCount + const VkAccelerationStructureNV* pAccelerationStructures + + + VkStructureType sType + const void* pNext + VkAccelerationStructureMemoryRequirementsTypeNV type + VkAccelerationStructureNV accelerationStructure + + + VkStructureType sType + void* pNext + VkBool32 accelerationStructure + VkBool32 accelerationStructureCaptureReplay + VkBool32 accelerationStructureIndirectBuild + VkBool32 accelerationStructureHostCommands + VkBool32 descriptorBindingAccelerationStructureUpdateAfterBind + + + VkStructureType sType + void* pNext + VkBool32 rayTracingPipeline + VkBool32 rayTracingPipelineShaderGroupHandleCaptureReplay + VkBool32 rayTracingPipelineShaderGroupHandleCaptureReplayMixed + VkBool32 rayTracingPipelineTraceRaysIndirect + VkBool32 rayTraversalPrimitiveCulling + + + VkStructureType sType + void* pNext + VkBool32 rayQuery + + + VkStructureType sType + void* pNext + uint64_t maxGeometryCount + uint64_t maxInstanceCount + uint64_t maxPrimitiveCount + uint32_t maxPerStageDescriptorAccelerationStructures + uint32_t maxPerStageDescriptorUpdateAfterBindAccelerationStructures + uint32_t maxDescriptorSetAccelerationStructures + uint32_t maxDescriptorSetUpdateAfterBindAccelerationStructures + uint32_t minAccelerationStructureScratchOffsetAlignment + + + VkStructureType sType + void* pNext + uint32_t shaderGroupHandleSize + uint32_t maxRayRecursionDepth + uint32_t maxShaderGroupStride + uint32_t shaderGroupBaseAlignment + uint32_t shaderGroupHandleCaptureReplaySize + uint32_t maxRayDispatchInvocationCount + uint32_t shaderGroupHandleAlignment + uint32_t maxRayHitAttributeSize + + + VkStructureType sType + void* pNext + uint32_t shaderGroupHandleSize + uint32_t maxRecursionDepth + uint32_t maxShaderGroupStride + uint32_t shaderGroupBaseAlignment + uint64_t maxGeometryCount + uint64_t maxInstanceCount + uint64_t maxTriangleCount + uint32_t maxDescriptorSetAccelerationStructures + + + VkDeviceAddress deviceAddress + VkDeviceSize stride + VkDeviceSize size + + + uint32_t width + uint32_t height + uint32_t depth + + + VkDeviceAddress raygenShaderRecordAddress + VkDeviceSize raygenShaderRecordSize + VkDeviceAddress missShaderBindingTableAddress + VkDeviceSize missShaderBindingTableSize + VkDeviceSize missShaderBindingTableStride + VkDeviceAddress hitShaderBindingTableAddress + VkDeviceSize hitShaderBindingTableSize + VkDeviceSize hitShaderBindingTableStride + VkDeviceAddress callableShaderBindingTableAddress + VkDeviceSize callableShaderBindingTableSize + VkDeviceSize callableShaderBindingTableStride + uint32_t width + uint32_t height + uint32_t depth + + + VkStructureType sType + void* pNext + VkBool32 rayTracingMaintenance1 + VkBool32 rayTracingPipelineTraceRaysIndirect2 + + + VkStructureType sType + void* pNext + uint32_t drmFormatModifierCount + VkDrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties + + + uint64_t drmFormatModifier + uint32_t drmFormatModifierPlaneCount + VkFormatFeatureFlags drmFormatModifierTilingFeatures + + + VkStructureType sType + const void* pNext + uint64_t drmFormatModifier + VkSharingMode sharingMode + uint32_t queueFamilyIndexCount + const uint32_t* pQueueFamilyIndices + + + VkStructureType sType + const void* pNext + uint32_t drmFormatModifierCount + const uint64_t* pDrmFormatModifiers + + + VkStructureType sType + const void* pNext + uint64_t drmFormatModifier + uint32_t drmFormatModifierPlaneCount + const VkSubresourceLayout* pPlaneLayouts + + + VkStructureType sType + void* pNext + uint64_t drmFormatModifier + + + VkStructureType sType + const void* pNext + VkImageUsageFlags stencilUsage + + + + VkStructureType sType + const void* pNext + VkMemoryOverallocationBehaviorAMD overallocationBehavior + + + VkStructureType sType + void* pNext + VkBool32 fragmentDensityMap + VkBool32 fragmentDensityMapDynamic + VkBool32 fragmentDensityMapNonSubsampledImages + + + VkStructureType sType + void* pNext + VkBool32 fragmentDensityMapDeferred + + + VkStructureType sType + void* pNext + VkBool32 fragmentDensityMapOffset + + + VkStructureType sType + void* pNext + VkExtent2D minFragmentDensityTexelSize + VkExtent2D maxFragmentDensityTexelSize + VkBool32 fragmentDensityInvocations + + + VkStructureType sType + void* pNext + VkBool32 subsampledLoads + VkBool32 subsampledCoarseReconstructionEarlyAccess + uint32_t maxSubsampledArrayLayers + uint32_t maxDescriptorSetSubsampledSamplers + + + VkStructureType sType + void* pNext + VkExtent2D fragmentDensityOffsetGranularity + + + VkStructureType sType + const void* pNext + VkAttachmentReference fragmentDensityMapAttachment + + + VkStructureType sType + const void* pNext + uint32_t fragmentDensityOffsetCount + const VkOffset2D* pFragmentDensityOffsets + + + VkStructureType sType + void* pNext + VkBool32 scalarBlockLayout + + + + VkStructureType sType + const void* pNext + VkBool32 supportsProtectedRepresents if surface can be protected + + + VkStructureType sType + void* pNext + VkBool32 uniformBufferStandardLayout + + + + VkStructureType sType + void* pNext + VkBool32 depthClipEnable + + + VkStructureType sType + const void* pNext + VkPipelineRasterizationDepthClipStateCreateFlagsEXT flagsReserved + VkBool32 depthClipEnable + + + VkStructureType sType + void* pNext + VkDeviceSize heapBudget[VK_MAX_MEMORY_HEAPS] + VkDeviceSize heapUsage[VK_MAX_MEMORY_HEAPS] + + + VkStructureType sType + void* pNext + VkBool32 memoryPriority + + + VkStructureType sType + const void* pNext + float priority + + + VkStructureType sType + void* pNext + VkBool32 pageableDeviceLocalMemory + + + VkStructureType sType + void* pNext + VkBool32 bufferDeviceAddress + VkBool32 bufferDeviceAddressCaptureReplay + VkBool32 bufferDeviceAddressMultiDevice + + + + VkStructureType sType + void* pNext + VkBool32 bufferDeviceAddress + VkBool32 bufferDeviceAddressCaptureReplay + VkBool32 bufferDeviceAddressMultiDevice + + + + VkStructureType sType + const void* pNext + VkBuffer buffer + + + + + VkStructureType sType + const void* pNext + uint64_t opaqueCaptureAddress + + + + VkStructureType sType + const void* pNext + VkDeviceAddress deviceAddress + + + VkStructureType sType + void* pNext + VkImageViewType imageViewType + + + VkStructureType sType + void* pNext + VkBool32 filterCubicThe combinations of format, image type (and image view type if provided) can be filtered with VK_FILTER_CUBIC_EXT + VkBool32 filterCubicMinmaxThe combination of format, image type (and image view type if provided) can be filtered with VK_FILTER_CUBIC_EXT and ReductionMode of Min or Max + + + VkStructureType sType + void* pNext + VkBool32 imagelessFramebuffer + + + + VkStructureType sType + const void* pNext + uint32_t attachmentImageInfoCount + const VkFramebufferAttachmentImageInfo* pAttachmentImageInfos + + + + VkStructureType sType + const void* pNext + VkImageCreateFlags flagsImage creation flags + VkImageUsageFlags usageImage usage flags + uint32_t width + uint32_t height + uint32_t layerCount + uint32_t viewFormatCount + const VkFormat* pViewFormats + + + + VkStructureType sType + const void* pNext + uint32_t attachmentCount + const VkImageView* pAttachments + + + + VkStructureType sType + void* pNext + VkBool32 textureCompressionASTC_HDR + + + + VkStructureType sType + void* pNext + VkBool32 cooperativeMatrix + VkBool32 cooperativeMatrixRobustBufferAccess + + + VkStructureType sType + void* pNext + VkShaderStageFlags cooperativeMatrixSupportedStages + + + VkStructureType sType + void* pNext + uint32_t MSize + uint32_t NSize + uint32_t KSize + VkComponentTypeNV AType + VkComponentTypeNV BType + VkComponentTypeNV CType + VkComponentTypeNV DType + VkScopeNV scope + + + VkStructureType sType + void* pNext + VkBool32 ycbcrImageArrays + + + VkStructureType sType + const void* pNext + VkImageView imageView + VkDescriptorType descriptorType + VkSampler sampler + + + VkStructureType sType + void* pNext + VkDeviceAddress deviceAddress + VkDeviceSize size + + + VkStructureType sType + const void* pNext + GgpFrameToken frameToken + + + VkPipelineCreationFeedbackFlags flags + uint64_t duration + + + + VkStructureType sType + const void* pNext + VkPipelineCreationFeedback* pPipelineCreationFeedbackOutput pipeline creation feedback. + uint32_t pipelineStageCreationFeedbackCount + VkPipelineCreationFeedback* pPipelineStageCreationFeedbacksOne entry for each shader stage specified in the parent Vk*PipelineCreateInfo struct + + + + VkStructureType sType + void* pNext + VkFullScreenExclusiveEXT fullScreenExclusive + + + VkStructureType sType + const void* pNext + HMONITOR hmonitor + + + VkStructureType sType + void* pNext + VkBool32 fullScreenExclusiveSupported + + + VkStructureType sType + void* pNext + VkBool32 presentBarrier + + + VkStructureType sType + void* pNext + VkBool32 presentBarrierSupported + + + VkStructureType sType + void* pNext + VkBool32 presentBarrierEnable + + + VkStructureType sType + void* pNext + VkBool32 performanceCounterQueryPoolsperformance counters supported in query pools + VkBool32 performanceCounterMultipleQueryPoolsperformance counters from multiple query pools can be accessed in the same primary command buffer + + + VkStructureType sType + void* pNext + VkBool32 allowCommandBufferQueryCopiesFlag to specify whether performance queries are allowed to be used in vkCmdCopyQueryPoolResults + + + VkStructureType sType + void* pNext + VkPerformanceCounterUnitKHR unit + VkPerformanceCounterScopeKHR scope + VkPerformanceCounterStorageKHR storage + uint8_t uuid[VK_UUID_SIZE] + + + VkStructureType sType + void* pNext + VkPerformanceCounterDescriptionFlagsKHR flags + char name[VK_MAX_DESCRIPTION_SIZE] + char category[VK_MAX_DESCRIPTION_SIZE] + char description[VK_MAX_DESCRIPTION_SIZE] + + + VkStructureType sType + const void* pNext + uint32_t queueFamilyIndex + uint32_t counterIndexCount + const uint32_t* pCounterIndices + + + int32_t int32 + int64_t int64 + uint32_t uint32 + uint64_t uint64 + float float32 + double float64 + + + VkStructureType sType + const void* pNext + VkAcquireProfilingLockFlagsKHR flagsAcquire profiling lock flags + uint64_t timeout + + + VkStructureType sType + const void* pNext + uint32_t counterPassIndexIndex for which counter pass to submit + + + VkStructureType sType + const void* pNext + uint32_t maxPerformanceQueriesPerPoolMaximum number of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR queries in a query pool + + + VkStructureType sType + const void* pNext + VkHeadlessSurfaceCreateFlagsEXT flags + + + VkStructureType sType + void* pNext + VkBool32 coverageReductionMode + + + VkStructureType sType + const void* pNext + VkPipelineCoverageReductionStateCreateFlagsNV flags + VkCoverageReductionModeNV coverageReductionMode + + + VkStructureType sType + void* pNext + VkCoverageReductionModeNV coverageReductionMode + VkSampleCountFlagBits rasterizationSamples + VkSampleCountFlags depthStencilSamples + VkSampleCountFlags colorSamples + + + VkStructureType sType + void* pNext + VkBool32 shaderIntegerFunctions2 + + + uint32_t value32 + uint64_t value64 + float valueFloat + VkBool32 valueBool + const char* valueString + + + VkPerformanceValueTypeINTEL type + VkPerformanceValueDataINTEL data + + + VkStructureType sType + const void* pNext + void* pUserData + + + VkStructureType sType + const void* pNext + VkQueryPoolSamplingModeINTEL performanceCountersSampling + + + + VkStructureType sType + const void* pNext + uint64_t marker + + + VkStructureType sType + const void* pNext + uint32_t marker + + + VkStructureType sType + const void* pNext + VkPerformanceOverrideTypeINTEL type + VkBool32 enable + uint64_t parameter + + + VkStructureType sType + const void* pNext + VkPerformanceConfigurationTypeINTEL type + + + VkStructureType sType + void* pNext + VkBool32 shaderSubgroupClock + VkBool32 shaderDeviceClock + + + VkStructureType sType + void* pNext + VkBool32 indexTypeUint8 + + + + VkStructureType sType + void* pNext + uint32_t shaderSMCount + uint32_t shaderWarpsPerSM + + + VkStructureType sType + void* pNext + VkBool32 shaderSMBuiltins + + + VkStructureType sType + void* pNextPointer to next structure + VkBool32 fragmentShaderSampleInterlock + VkBool32 fragmentShaderPixelInterlock + VkBool32 fragmentShaderShadingRateInterlock + + + VkStructureType sType + void* pNext + VkBool32 separateDepthStencilLayouts + + + + VkStructureType sType + void* pNext + VkImageLayout stencilLayout + + + VkStructureType sType + void* pNext + VkBool32 primitiveTopologyListRestart + VkBool32 primitiveTopologyPatchListRestart + + + + VkStructureType sType + void* pNext + VkImageLayout stencilInitialLayout + VkImageLayout stencilFinalLayout + + + + VkStructureType sType + void* pNext + VkBool32 pipelineExecutableInfo + + + VkStructureType sType + const void* pNext + VkPipeline pipeline + + + + VkStructureType sType + void* pNext + VkShaderStageFlags stages + char name[VK_MAX_DESCRIPTION_SIZE] + char description[VK_MAX_DESCRIPTION_SIZE] + uint32_t subgroupSize + + + VkStructureType sType + const void* pNext + VkPipeline pipeline + uint32_t executableIndex + + + VkBool32 b32 + int64_t i64 + uint64_t u64 + double f64 + + + VkStructureType sType + void* pNext + char name[VK_MAX_DESCRIPTION_SIZE] + char description[VK_MAX_DESCRIPTION_SIZE] + VkPipelineExecutableStatisticFormatKHR format + VkPipelineExecutableStatisticValueKHR value + + + VkStructureType sType + void* pNext + char name[VK_MAX_DESCRIPTION_SIZE] + char description[VK_MAX_DESCRIPTION_SIZE] + VkBool32 isText + size_t dataSize + void* pData + + + VkStructureType sType + void* pNext + VkBool32 shaderDemoteToHelperInvocation + + + + VkStructureType sType + void* pNext + VkBool32 texelBufferAlignment + + + VkStructureType sType + void* pNext + VkDeviceSize storageTexelBufferOffsetAlignmentBytes + VkBool32 storageTexelBufferOffsetSingleTexelAlignment + VkDeviceSize uniformTexelBufferOffsetAlignmentBytes + VkBool32 uniformTexelBufferOffsetSingleTexelAlignment + + + + VkStructureType sType + void* pNext + VkBool32 subgroupSizeControl + VkBool32 computeFullSubgroups + + + + VkStructureType sType + void* pNext + uint32_t minSubgroupSizeThe minimum subgroup size supported by this device + uint32_t maxSubgroupSizeThe maximum subgroup size supported by this device + uint32_t maxComputeWorkgroupSubgroupsThe maximum number of subgroups supported in a workgroup + VkShaderStageFlags requiredSubgroupSizeStagesThe shader stages that support specifying a subgroup size + + + + VkStructureType sType + void* pNext + uint32_t requiredSubgroupSize + + + + + VkStructureType sType + void* pNext + VkRenderPass renderPass + uint32_t subpass + + + VkStructureType sType + void* pNext + uint32_t maxSubpassShadingWorkgroupSizeAspectRatio + + + VkStructureType sType + void* pNext + uint32_t maxWorkGroupCount[3] + uint32_t maxWorkGroupSize[3] + uint32_t maxOutputClusterCount + VkDeviceSize indirectBufferOffsetAlignment + + + VkStructureType sType + const void* pNext + uint64_t opaqueCaptureAddress + + + + VkStructureType sType + const void* pNext + VkDeviceMemory memory + + + + VkStructureType sType + void* pNext + VkBool32 rectangularLines + VkBool32 bresenhamLines + VkBool32 smoothLines + VkBool32 stippledRectangularLines + VkBool32 stippledBresenhamLines + VkBool32 stippledSmoothLines + + + + VkStructureType sType + void* pNext + uint32_t lineSubPixelPrecisionBits + + + + VkStructureType sType + const void* pNext + VkLineRasterizationModeKHR lineRasterizationMode + VkBool32 stippledLineEnable + uint32_t lineStippleFactor + uint16_t lineStipplePattern + + + + VkStructureType sType + void* pNext + VkBool32 pipelineCreationCacheControl + + + + VkStructureType sType + void* pNext + VkBool32 storageBuffer16BitAccess16-bit integer/floating-point variables supported in BufferBlock + VkBool32 uniformAndStorageBuffer16BitAccess16-bit integer/floating-point variables supported in BufferBlock and Block + VkBool32 storagePushConstant1616-bit integer/floating-point variables supported in PushConstant + VkBool32 storageInputOutput1616-bit integer/floating-point variables supported in shader inputs and outputs + VkBool32 multiviewMultiple views in a renderpass + VkBool32 multiviewGeometryShaderMultiple views in a renderpass w/ geometry shader + VkBool32 multiviewTessellationShaderMultiple views in a renderpass w/ tessellation shader + VkBool32 variablePointersStorageBuffer + VkBool32 variablePointers + VkBool32 protectedMemory + VkBool32 samplerYcbcrConversionSampler color conversion supported + VkBool32 shaderDrawParameters + + + VkStructureType sType + void* pNext + uint8_t deviceUUID[VK_UUID_SIZE] + uint8_t driverUUID[VK_UUID_SIZE] + uint8_t deviceLUID[VK_LUID_SIZE] + uint32_t deviceNodeMask + VkBool32 deviceLUIDValid + uint32_t subgroupSizeThe size of a subgroup for this queue. + VkShaderStageFlags subgroupSupportedStagesBitfield of what shader stages support subgroup operations + VkSubgroupFeatureFlags subgroupSupportedOperationsBitfield of what subgroup operations are supported. + VkBool32 subgroupQuadOperationsInAllStagesFlag to specify whether quad operations are available in all stages. + VkPointClippingBehavior pointClippingBehavior + uint32_t maxMultiviewViewCountmax number of views in a subpass + uint32_t maxMultiviewInstanceIndexmax instance index for a draw in a multiview subpass + VkBool32 protectedNoFault + uint32_t maxPerSetDescriptors + VkDeviceSize maxMemoryAllocationSize + + + VkStructureType sType + void* pNext + VkBool32 samplerMirrorClampToEdge + VkBool32 drawIndirectCount + VkBool32 storageBuffer8BitAccess8-bit integer variables supported in StorageBuffer + VkBool32 uniformAndStorageBuffer8BitAccess8-bit integer variables supported in StorageBuffer and Uniform + VkBool32 storagePushConstant88-bit integer variables supported in PushConstant + VkBool32 shaderBufferInt64Atomics + VkBool32 shaderSharedInt64Atomics + VkBool32 shaderFloat1616-bit floats (halfs) in shaders + VkBool32 shaderInt88-bit integers in shaders + 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 + + + VkStructureType sType + void* pNext + VkDriverId driverID + char driverName[VK_MAX_DRIVER_NAME_SIZE] + char driverInfo[VK_MAX_DRIVER_INFO_SIZE] + VkConformanceVersion conformanceVersion + VkShaderFloatControlsIndependence denormBehaviorIndependence + VkShaderFloatControlsIndependence roundingModeIndependence + VkBool32 shaderSignedZeroInfNanPreserveFloat16An implementation can preserve signed zero, nan, inf + VkBool32 shaderSignedZeroInfNanPreserveFloat32An implementation can preserve signed zero, nan, inf + VkBool32 shaderSignedZeroInfNanPreserveFloat64An implementation can preserve signed zero, nan, inf + VkBool32 shaderDenormPreserveFloat16An implementation can preserve denormals + VkBool32 shaderDenormPreserveFloat32An implementation can preserve denormals + VkBool32 shaderDenormPreserveFloat64An implementation can preserve denormals + VkBool32 shaderDenormFlushToZeroFloat16An implementation can flush to zero denormals + VkBool32 shaderDenormFlushToZeroFloat32An implementation can flush to zero denormals + VkBool32 shaderDenormFlushToZeroFloat64An implementation can flush to zero denormals + VkBool32 shaderRoundingModeRTEFloat16An implementation can support RTE + VkBool32 shaderRoundingModeRTEFloat32An implementation can support RTE + VkBool32 shaderRoundingModeRTEFloat64An implementation can support RTE + VkBool32 shaderRoundingModeRTZFloat16An implementation can support RTZ + VkBool32 shaderRoundingModeRTZFloat32An implementation can support RTZ + VkBool32 shaderRoundingModeRTZFloat64An implementation can support RTZ + uint32_t maxUpdateAfterBindDescriptorsInAllPools + VkBool32 shaderUniformBufferArrayNonUniformIndexingNative + VkBool32 shaderSampledImageArrayNonUniformIndexingNative + VkBool32 shaderStorageBufferArrayNonUniformIndexingNative + VkBool32 shaderStorageImageArrayNonUniformIndexingNative + VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative + VkBool32 robustBufferAccessUpdateAfterBind + VkBool32 quadDivergentImplicitLod + uint32_t maxPerStageDescriptorUpdateAfterBindSamplers + uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers + uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers + uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages + uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages + uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments + uint32_t maxPerStageUpdateAfterBindResources + uint32_t maxDescriptorSetUpdateAfterBindSamplers + uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers + uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic + uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers + uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic + uint32_t maxDescriptorSetUpdateAfterBindSampledImages + uint32_t maxDescriptorSetUpdateAfterBindStorageImages + uint32_t maxDescriptorSetUpdateAfterBindInputAttachments + VkResolveModeFlags supportedDepthResolveModessupported depth resolve modes + VkResolveModeFlags supportedStencilResolveModessupported stencil resolve modes + VkBool32 independentResolveNonedepth and stencil resolve modes can be set independently if one of them is none + VkBool32 independentResolvedepth and stencil resolve modes can be set independently + VkBool32 filterMinmaxSingleComponentFormats + VkBool32 filterMinmaxImageComponentMapping + uint64_t maxTimelineSemaphoreValueDifference + VkSampleCountFlags framebufferIntegerColorSampleCounts + + + VkStructureType sType + void* pNext + VkBool32 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 + + + VkStructureType sType + void* pNext + uint32_t minSubgroupSizeThe minimum subgroup size supported by this device + uint32_t maxSubgroupSizeThe maximum subgroup size supported by this device + uint32_t maxComputeWorkgroupSubgroupsThe maximum number of subgroups supported in a workgroup + VkShaderStageFlags requiredSubgroupSizeStagesThe shader stages that support specifying a subgroup size + uint32_t maxInlineUniformBlockSize + uint32_t maxPerStageDescriptorInlineUniformBlocks + uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks + uint32_t maxDescriptorSetInlineUniformBlocks + uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks + uint32_t maxInlineUniformTotalSize + VkBool32 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 + VkDeviceSize storageTexelBufferOffsetAlignmentBytes + VkBool32 storageTexelBufferOffsetSingleTexelAlignment + VkDeviceSize uniformTexelBufferOffsetAlignmentBytes + VkBool32 uniformTexelBufferOffsetSingleTexelAlignment + VkDeviceSize maxBufferSize + + + VkStructureType sType + const void* pNext + VkPipelineCompilerControlFlagsAMD compilerControlFlags + + + VkStructureType sType + void* pNext + VkBool32 deviceCoherentMemory + + + VkStructureType sType + void* pNext + VkFaultLevel faultLevel + VkFaultType faultType + + + VkStructureType sType + const void* pNext + uint32_t faultCount + VkFaultData*pFaults + PFN_vkFaultCallbackFunction pfnFaultCallback + + + VkStructureType sType + void* pNext + char name[VK_MAX_EXTENSION_NAME_SIZE] + char version[VK_MAX_EXTENSION_NAME_SIZE] + VkToolPurposeFlags purposes + char description[VK_MAX_DESCRIPTION_SIZE] + char layer[VK_MAX_EXTENSION_NAME_SIZE] + + + + VkStructureType sType + const void* pNext + VkClearColorValue customBorderColor + VkFormat format + + + VkStructureType sType + void* pNext + uint32_t maxCustomBorderColorSamplers + + + VkStructureType sType + void* pNext + VkBool32 customBorderColors + VkBool32 customBorderColorWithoutFormat + + + VkStructureType sType + const void* pNext + VkComponentMapping components + VkBool32 srgb + + + VkStructureType sType + void* pNext + VkBool32 borderColorSwizzle + VkBool32 borderColorSwizzleFromImage + + + VkDeviceAddress deviceAddress + void* hostAddress + + + VkDeviceAddress deviceAddress + const void* hostAddress + + + VkDeviceAddress deviceAddress + const void* hostAddress + + + VkStructureType sType + const void* pNext + VkFormat vertexFormat + VkDeviceOrHostAddressConstKHR vertexData + VkDeviceSize vertexStride + uint32_t maxVertex + VkIndexType indexType + VkDeviceOrHostAddressConstKHR indexData + VkDeviceOrHostAddressConstKHR transformData + + + VkStructureType sType + const void* pNext + VkDeviceOrHostAddressConstKHR data + VkDeviceSize stride + + + VkStructureType sType + const void* pNext + VkBool32 arrayOfPointers + VkDeviceOrHostAddressConstKHR data + + + VkAccelerationStructureGeometryTrianglesDataKHR triangles + VkAccelerationStructureGeometryAabbsDataKHR aabbs + VkAccelerationStructureGeometryInstancesDataKHR instances + + + VkStructureType sType + const void* pNext + VkGeometryTypeKHR geometryType + VkAccelerationStructureGeometryDataKHR geometry + VkGeometryFlagsKHR flags + + + VkStructureType sType + const void* pNext + VkAccelerationStructureTypeKHR type + VkBuildAccelerationStructureFlagsKHR flags + VkBuildAccelerationStructureModeKHR mode + VkAccelerationStructureKHR srcAccelerationStructure + VkAccelerationStructureKHR dstAccelerationStructure + uint32_t geometryCount + const VkAccelerationStructureGeometryKHR* pGeometries + const VkAccelerationStructureGeometryKHR* const* ppGeometries + VkDeviceOrHostAddressKHR scratchData + + + uint32_t primitiveCount + uint32_t primitiveOffset + uint32_t firstVertex + uint32_t transformOffset + + + VkStructureType sType + const void* pNext + VkAccelerationStructureCreateFlagsKHR createFlags + VkBuffer buffer + VkDeviceSize offsetSpecified in bytes + VkDeviceSize size + VkAccelerationStructureTypeKHR type + VkDeviceAddress deviceAddress + + + float minX + float minY + float minZ + float maxX + float maxY + float maxZ + + + + float matrix[3][4] + + + + The bitfields in this structure are non-normative since bitfield ordering is implementation-defined in C. The specification defines the normative layout. + VkTransformMatrixKHR transform + uint32_t instanceCustomIndex:24 + uint32_t mask:8 + uint32_t instanceShaderBindingTableRecordOffset:24 + VkGeometryInstanceFlagsKHR flags:8 + uint64_t accelerationStructureReference + + + + VkStructureType sType + const void* pNext + VkAccelerationStructureKHR accelerationStructure + + + VkStructureType sType + const void* pNext + const uint8_t* pVersionData + + + VkStructureType sType + const void* pNext + VkAccelerationStructureKHR src + VkAccelerationStructureKHR dst + VkCopyAccelerationStructureModeKHR mode + + + VkStructureType sType + const void* pNext + VkAccelerationStructureKHR src + VkDeviceOrHostAddressKHR dst + VkCopyAccelerationStructureModeKHR mode + + + VkStructureType sType + const void* pNext + VkDeviceOrHostAddressConstKHR src + VkAccelerationStructureKHR dst + VkCopyAccelerationStructureModeKHR mode + + + VkStructureType sType + const void* pNext + uint32_t maxPipelineRayPayloadSize + uint32_t maxPipelineRayHitAttributeSize + + + VkStructureType sType + const void* pNext + uint32_t libraryCount + const VkPipeline* pLibraries + + + VkObjectType objectType + uint64_t objectHandle + VkRefreshObjectFlagsKHR flags + + + VkStructureType sType + const void* pNext + uint32_t objectCount + const VkRefreshObjectKHR* pObjects + + + VkStructureType sType + void* pNext + VkBool32 extendedDynamicState + + + VkStructureType sType + void* pNext + VkBool32 extendedDynamicState2 + VkBool32 extendedDynamicState2LogicOp + VkBool32 extendedDynamicState2PatchControlPoints + + + VkStructureType sType + void* pNext + VkBool32 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 + + + VkStructureType sType + void* pNext + VkBool32 dynamicPrimitiveTopologyUnrestricted + + + VkBlendFactor srcColorBlendFactor + VkBlendFactor dstColorBlendFactor + VkBlendOp colorBlendOp + VkBlendFactor srcAlphaBlendFactor + VkBlendFactor dstAlphaBlendFactor + VkBlendOp alphaBlendOp + + + VkBlendOp advancedBlendOp + VkBool32 srcPremultiplied + VkBool32 dstPremultiplied + VkBlendOverlapEXT blendOverlap + VkBool32 clampResults + + + VkStructureType sType + void* pNextPointer to next structure + VkSurfaceTransformFlagBitsKHR transform + + + VkStructureType sType + const void* pNext + VkSurfaceTransformFlagBitsKHR transform + + + VkStructureType sType + void* pNextPointer to next structure + VkSurfaceTransformFlagBitsKHR transform + VkRect2D renderArea + + + VkStructureType sType + void* pNext + VkBool32 diagnosticsConfig + + + VkStructureType sType + const void* pNext + VkDeviceDiagnosticsConfigFlagsNV flags + + + VkStructureType sType + const void* pNext + uint8_t pipelineIdentifier[VK_UUID_SIZE] + VkPipelineMatchControl matchControl + VkDeviceSize poolEntrySize + + + VkStructureType sType + void* pNext + VkBool32 shaderZeroInitializeWorkgroupMemory + + + + VkStructureType sType + void* pNext + VkBool32 shaderSubgroupUniformControlFlow + + + VkStructureType sType + void* pNext + VkBool32 robustBufferAccess2 + VkBool32 robustImageAccess2 + VkBool32 nullDescriptor + + + VkStructureType sType + void* pNext + VkDeviceSize robustStorageBufferAccessSizeAlignment + VkDeviceSize robustUniformBufferAccessSizeAlignment + + + VkStructureType sType + void* pNext + VkBool32 robustImageAccess + + + + VkStructureType sType + void* pNext + VkBool32 workgroupMemoryExplicitLayout + VkBool32 workgroupMemoryExplicitLayoutScalarBlockLayout + VkBool32 workgroupMemoryExplicitLayout8BitAccess + VkBool32 workgroupMemoryExplicitLayout16BitAccess + + + VkStructureType sType + void* pNext + VkBool32 constantAlphaColorBlendFactors + VkBool32 events + VkBool32 imageViewFormatReinterpretation + VkBool32 imageViewFormatSwizzle + VkBool32 imageView2DOn3DImage + VkBool32 multisampleArrayImage + VkBool32 mutableComparisonSamplers + VkBool32 pointPolygons + VkBool32 samplerMipLodBias + VkBool32 separateStencilMaskRef + VkBool32 shaderSampleRateInterpolationFunctions + VkBool32 tessellationIsolines + VkBool32 tessellationPointMode + VkBool32 triangleFans + VkBool32 vertexAttributeAccessBeyondStride + + + VkStructureType sType + void* pNext + uint32_t minVertexInputBindingStrideAlignment + + + VkStructureType sType + void* pNext + VkBool32 formatA4R4G4B4 + VkBool32 formatA4B4G4R4 + + + VkStructureType sType + void* pNext + VkBool32 subpassShading + + + VkStructureType sType + void*pNext + VkBool32 clustercullingShader + VkBool32 multiviewClusterCullingShader + + + VkStructureType sType + void*pNext + VkBool32 clusterShadingRate + + + VkStructureType sType + const void* pNext + VkDeviceSize srcOffsetSpecified in bytes + VkDeviceSize dstOffsetSpecified in bytes + VkDeviceSize sizeSpecified in bytes + + + + VkStructureType sType + const void* pNext + VkImageSubresourceLayers srcSubresource + VkOffset3D srcOffsetSpecified in pixels for both compressed and uncompressed images + VkImageSubresourceLayers dstSubresource + VkOffset3D dstOffsetSpecified in pixels for both compressed and uncompressed images + VkExtent3D extentSpecified in pixels for both compressed and uncompressed images + + + + VkStructureType sType + const void* pNext + VkImageSubresourceLayers srcSubresource + VkOffset3D srcOffsets[2]Specified in pixels for both compressed and uncompressed images + VkImageSubresourceLayers dstSubresource + VkOffset3D dstOffsets[2]Specified in pixels for both compressed and uncompressed images + + + + VkStructureType sType + const void* pNext + VkDeviceSize bufferOffsetSpecified in bytes + uint32_t bufferRowLengthSpecified in texels + uint32_t bufferImageHeight + VkImageSubresourceLayers imageSubresource + VkOffset3D imageOffsetSpecified in pixels for both compressed and uncompressed images + VkExtent3D imageExtentSpecified in pixels for both compressed and uncompressed images + + + + VkStructureType sType + const void* pNext + VkImageSubresourceLayers srcSubresource + VkOffset3D srcOffset + VkImageSubresourceLayers dstSubresource + VkOffset3D dstOffset + VkExtent3D extent + + + + VkStructureType sType + const void* pNext + VkBuffer srcBuffer + VkBuffer dstBuffer + uint32_t regionCount + const VkBufferCopy2* pRegions + + + + VkStructureType sType + const void* pNext + VkImage srcImage + VkImageLayout srcImageLayout + VkImage dstImage + VkImageLayout dstImageLayout + uint32_t regionCount + const VkImageCopy2* pRegions + + + + VkStructureType sType + const void* pNext + VkImage srcImage + VkImageLayout srcImageLayout + VkImage dstImage + VkImageLayout dstImageLayout + uint32_t regionCount + const VkImageBlit2* pRegions + VkFilter filter + + + + VkStructureType sType + const void* pNext + VkBuffer srcBuffer + VkImage dstImage + VkImageLayout dstImageLayout + uint32_t regionCount + const VkBufferImageCopy2* pRegions + + + + VkStructureType sType + const void* pNext + VkImage srcImage + VkImageLayout srcImageLayout + VkBuffer dstBuffer + uint32_t regionCount + const VkBufferImageCopy2* pRegions + + + + VkStructureType sType + const void* pNext + VkImage srcImage + VkImageLayout srcImageLayout + VkImage dstImage + VkImageLayout dstImageLayout + uint32_t regionCount + const VkImageResolve2* pRegions + + + + VkStructureType sType + void* pNext + VkBool32 shaderImageInt64Atomics + VkBool32 sparseImageInt64Atomics + + + VkStructureType sType + const void* pNext + const VkAttachmentReference2* pFragmentShadingRateAttachment + VkExtent2D shadingRateAttachmentTexelSize + + + VkStructureType sType + const void* pNext + VkExtent2D fragmentSize + VkFragmentShadingRateCombinerOpKHR combinerOps[2] + + + VkStructureType sType + void* pNext + VkBool32 pipelineFragmentShadingRate + VkBool32 primitiveFragmentShadingRate + VkBool32 attachmentFragmentShadingRate + + + VkStructureType sType + void* pNext + VkExtent2D minFragmentShadingRateAttachmentTexelSize + VkExtent2D maxFragmentShadingRateAttachmentTexelSize + uint32_t maxFragmentShadingRateAttachmentTexelSizeAspectRatio + VkBool32 primitiveFragmentShadingRateWithMultipleViewports + VkBool32 layeredShadingRateAttachments + VkBool32 fragmentShadingRateNonTrivialCombinerOps + VkExtent2D maxFragmentSize + uint32_t maxFragmentSizeAspectRatio + uint32_t maxFragmentShadingRateCoverageSamples + VkSampleCountFlagBits maxFragmentShadingRateRasterizationSamples + VkBool32 fragmentShadingRateWithShaderDepthStencilWrites + VkBool32 fragmentShadingRateWithSampleMask + VkBool32 fragmentShadingRateWithShaderSampleMask + VkBool32 fragmentShadingRateWithConservativeRasterization + VkBool32 fragmentShadingRateWithFragmentShaderInterlock + VkBool32 fragmentShadingRateWithCustomSampleLocations + VkBool32 fragmentShadingRateStrictMultiplyCombiner + + + VkStructureType sType + void* pNext + VkSampleCountFlags sampleCounts + VkExtent2D fragmentSize + + + VkStructureType sType + void* pNext + VkBool32 shaderTerminateInvocation + + + + VkStructureType sType + void* pNext + VkBool32 fragmentShadingRateEnums + VkBool32 supersampleFragmentShadingRates + VkBool32 noInvocationFragmentShadingRates + + + VkStructureType sType + void* pNext + VkSampleCountFlagBits maxFragmentShadingRateInvocationCount + + + VkStructureType sType + const void* pNext + VkFragmentShadingRateTypeNV shadingRateType + VkFragmentShadingRateNV shadingRate + VkFragmentShadingRateCombinerOpKHR combinerOps[2] + + + VkStructureType sType + const void* pNext + VkDeviceSize accelerationStructureSize + VkDeviceSize updateScratchSize + VkDeviceSize buildScratchSize + + + VkStructureType sType + void* pNext + VkBool32 image2DViewOf3D + VkBool32 sampler2DViewOf3D + + + VkStructureType sType + void* pNext + VkBool32 imageSlicedViewOf3D + + + VkStructureType sType + void* pNext + VkBool32 attachmentFeedbackLoopDynamicState + + + VkStructureType sType + void* pNext + VkBool32 mutableDescriptorType + + + + uint32_t descriptorTypeCount + const VkDescriptorType* pDescriptorTypes + + + + VkStructureType sType + const void* pNext + uint32_t mutableDescriptorTypeListCount + const VkMutableDescriptorTypeListEXT* pMutableDescriptorTypeLists + + + + VkStructureType sType + void* pNext + VkBool32 depthClipControl + + + VkStructureType sType + const void* pNext + VkBool32 negativeOneToOne + + + VkStructureType sType + void* pNext + VkBool32 vertexInputDynamicState + + + VkStructureType sType + void* pNext + VkBool32 externalMemoryRDMA + + + VkStructureType sType + void* pNext + uint32_t binding + uint32_t stride + VkVertexInputRate inputRate + uint32_t divisor + + + VkStructureType sType + void* pNext + uint32_t locationlocation of the shader vertex attrib + uint32_t bindingVertex buffer binding id + VkFormat formatformat of source data + uint32_t offsetOffset of first element in bytes from base of vertex + + + VkStructureType sType + void* pNext + VkBool32 colorWriteEnable + + + VkStructureType sType + const void* pNext + uint32_t attachmentCount# of pAttachments + const VkBool32* pColorWriteEnables + + + VkStructureType sType + const void* pNext + VkPipelineStageFlags2 srcStageMask + VkAccessFlags2 srcAccessMask + VkPipelineStageFlags2 dstStageMask + VkAccessFlags2 dstAccessMask + + + + VkStructureType sType + const void* pNext + VkPipelineStageFlags2 srcStageMask + VkAccessFlags2 srcAccessMask + VkPipelineStageFlags2 dstStageMask + VkAccessFlags2 dstAccessMask + VkImageLayout oldLayout + VkImageLayout newLayout + uint32_t srcQueueFamilyIndex + uint32_t dstQueueFamilyIndex + VkImage image + VkImageSubresourceRange subresourceRange + + + + VkStructureType sType + const void* pNext + VkPipelineStageFlags2 srcStageMask + VkAccessFlags2 srcAccessMask + VkPipelineStageFlags2 dstStageMask + VkAccessFlags2 dstAccessMask + uint32_t srcQueueFamilyIndex + uint32_t dstQueueFamilyIndex + VkBuffer buffer + VkDeviceSize offset + VkDeviceSize size + + + + VkStructureType sType + const void* pNext + VkDependencyFlags dependencyFlags + uint32_t memoryBarrierCount + const VkMemoryBarrier2* pMemoryBarriers + uint32_t bufferMemoryBarrierCount + const VkBufferMemoryBarrier2* pBufferMemoryBarriers + uint32_t imageMemoryBarrierCount + const VkImageMemoryBarrier2* pImageMemoryBarriers + + + + VkStructureType sType + const void* pNext + VkSemaphore semaphore + uint64_t value + VkPipelineStageFlags2 stageMask + uint32_t deviceIndex + + + + VkStructureType sType + const void* pNext + VkCommandBuffer commandBuffer + uint32_t deviceMask + + + + VkStructureType sType + const void* pNext + VkSubmitFlags flags + uint32_t waitSemaphoreInfoCount + const VkSemaphoreSubmitInfo* pWaitSemaphoreInfos + uint32_t commandBufferInfoCount + const VkCommandBufferSubmitInfo* pCommandBufferInfos + uint32_t signalSemaphoreInfoCount + const VkSemaphoreSubmitInfo* pSignalSemaphoreInfos + + + + VkStructureType sType + void* pNext + VkPipelineStageFlags2 checkpointExecutionStageMask + + + VkStructureType sType + void* pNext + VkPipelineStageFlags2 stage + void* pCheckpointMarker + + + VkStructureType sType + void* pNext + VkBool32 synchronization2 + + + + VkStructureType sType + void* pNext + VkBool32 hostImageCopy + + + VkStructureType sType + void* pNext + uint32_t copySrcLayoutCount + VkImageLayout* pCopySrcLayouts + uint32_t copyDstLayoutCount + VkImageLayout* pCopyDstLayouts + uint8_t optimalTilingLayoutUUID[VK_UUID_SIZE] + VkBool32 identicalMemoryTypeRequirements + + + VkStructureType sType + const void* pNext + const void* pHostPointer + uint32_t memoryRowLengthSpecified in texels + uint32_t memoryImageHeight + VkImageSubresourceLayers imageSubresource + VkOffset3D imageOffset + VkExtent3D imageExtent + + + VkStructureType sType + const void* pNext + void* pHostPointer + uint32_t memoryRowLengthSpecified in texels + uint32_t memoryImageHeight + VkImageSubresourceLayers imageSubresource + VkOffset3D imageOffset + VkExtent3D imageExtent + + + VkStructureType sType + const void* pNext + VkHostImageCopyFlagsEXT flags + VkImage dstImage + VkImageLayout dstImageLayout + uint32_t regionCount + const VkMemoryToImageCopyEXT* pRegions + + + VkStructureType sType + const void* pNext + VkHostImageCopyFlagsEXT flags + VkImage srcImage + VkImageLayout srcImageLayout + uint32_t regionCount + const VkImageToMemoryCopyEXT* pRegions + + + VkStructureType sType + const void* pNext + VkHostImageCopyFlagsEXT flags + VkImage srcImage + VkImageLayout srcImageLayout + VkImage dstImage + VkImageLayout dstImageLayout + uint32_t regionCount + const VkImageCopy2* pRegions + + + VkStructureType sType + const void* pNext + VkImage image + VkImageLayout oldLayout + VkImageLayout newLayout + VkImageSubresourceRange subresourceRange + + + VkStructureType sType + void* pNext + VkDeviceSize sizeSpecified in bytes + + + VkStructureType sType + void* pNext + VkBool32 optimalDeviceAccessSpecifies if device access is optimal + VkBool32 identicalMemoryLayoutSpecifies if memory layout is identical + + + VkStructureType sType + void* pNext + VkBool32 deviceNoDynamicHostAllocations + VkBool32 deviceDestroyFreesMemory + VkBool32 commandPoolMultipleCommandBuffersRecording + VkBool32 commandPoolResetCommandBuffer + VkBool32 commandBufferSimultaneousUse + VkBool32 secondaryCommandBufferNullOrImagelessFramebuffer + VkBool32 recycleDescriptorSetMemory + VkBool32 recyclePipelineMemory + uint32_t maxRenderPassSubpasses + uint32_t maxRenderPassDependencies + uint32_t maxSubpassInputAttachments + uint32_t maxSubpassPreserveAttachments + uint32_t maxFramebufferAttachments + uint32_t maxDescriptorSetLayoutBindings + uint32_t maxQueryFaultCount + uint32_t maxCallbackFaultCount + uint32_t maxCommandPoolCommandBuffers + VkDeviceSize maxCommandBufferSize + + + VkStructureType sType + const void* pNext + VkDeviceSize poolEntrySize + uint32_t poolEntryCount + + + VkStructureType sType + const void* pNext + uint32_t pipelineCacheCreateInfoCount + const VkPipelineCacheCreateInfo* pPipelineCacheCreateInfos + uint32_t pipelinePoolSizeCount + const VkPipelinePoolSize* pPipelinePoolSizes + uint32_t semaphoreRequestCount + uint32_t commandBufferRequestCount + uint32_t fenceRequestCount + uint32_t deviceMemoryRequestCount + uint32_t bufferRequestCount + uint32_t imageRequestCount + uint32_t eventRequestCount + uint32_t queryPoolRequestCount + uint32_t bufferViewRequestCount + uint32_t imageViewRequestCount + uint32_t layeredImageViewRequestCount + uint32_t pipelineCacheRequestCount + uint32_t pipelineLayoutRequestCount + uint32_t renderPassRequestCount + uint32_t graphicsPipelineRequestCount + uint32_t computePipelineRequestCount + uint32_t descriptorSetLayoutRequestCount + uint32_t samplerRequestCount + uint32_t descriptorPoolRequestCount + uint32_t descriptorSetRequestCount + uint32_t framebufferRequestCount + uint32_t commandPoolRequestCount + uint32_t samplerYcbcrConversionRequestCount + uint32_t surfaceRequestCount + uint32_t swapchainRequestCount + uint32_t displayModeRequestCount + uint32_t subpassDescriptionRequestCount + uint32_t attachmentDescriptionRequestCount + uint32_t descriptorSetLayoutBindingRequestCount + uint32_t descriptorSetLayoutBindingLimit + uint32_t maxImageViewMipLevels + uint32_t maxImageViewArrayLayers + uint32_t maxLayeredImageViewMipLevels + uint32_t maxOcclusionQueriesPerPool + uint32_t maxPipelineStatisticsQueriesPerPool + uint32_t maxTimestampQueriesPerPool + uint32_t maxImmutableSamplersPerDescriptorSetLayout + + + VkStructureType sType + const void* pNext + VkDeviceSize commandPoolReservedSize + uint32_t commandPoolMaxCommandBuffers + + + VkStructureType sType + void* pNext + VkDeviceSize commandPoolAllocated + VkDeviceSize commandPoolReservedSize + VkDeviceSize commandBufferAllocated + + + VkStructureType sType + void* pNext + VkBool32 shaderAtomicInstructions + + + VkStructureType sType + void* pNext + VkBool32 primitivesGeneratedQuery + VkBool32 primitivesGeneratedQueryWithRasterizerDiscard + VkBool32 primitivesGeneratedQueryWithNonZeroStreams + + + VkStructureType sType + void* pNext + VkBool32 legacyDithering + + + VkStructureType sType + void* pNext + VkBool32 multisampledRenderToSingleSampled + + + VkStructureType sType + void* pNext + VkBool32 optimal + + + VkStructureType sType + const void* pNext + VkBool32 multisampledRenderToSingleSampledEnable + VkSampleCountFlagBits rasterizationSamples + + + VkStructureType sType + void* pNext + VkBool32 pipelineProtectedAccess + + + VkStructureType sType + void* pNext + VkVideoCodecOperationFlagsKHR videoCodecOperations + + + VkStructureType sType + void* pNext + VkBool32 queryResultStatusSupport + + + VkStructureType sType + const void* pNext + uint32_t profileCount + const VkVideoProfileInfoKHR* pProfiles + + + VkStructureType sType + const void* pNext + VkImageUsageFlags imageUsage + + + VkStructureType sType + void* pNext + VkFormat format + VkComponentMapping componentMapping + VkImageCreateFlags imageCreateFlags + VkImageType imageType + VkImageTiling imageTiling + VkImageUsageFlags imageUsageFlags + + + VkStructureType sType + const void* pNext + VkVideoCodecOperationFlagBitsKHR videoCodecOperation + VkVideoChromaSubsamplingFlagsKHR chromaSubsampling + VkVideoComponentBitDepthFlagsKHR lumaBitDepth + VkVideoComponentBitDepthFlagsKHR chromaBitDepth + + + VkStructureType sType + void* pNext + VkVideoCapabilityFlagsKHR flags + VkDeviceSize minBitstreamBufferOffsetAlignment + VkDeviceSize minBitstreamBufferSizeAlignment + VkExtent2D pictureAccessGranularity + VkExtent2D minCodedExtent + VkExtent2D maxCodedExtent + uint32_t maxDpbSlots + uint32_t maxActiveReferencePictures + VkExtensionProperties stdHeaderVersion + + + VkStructureType sType + void* pNext + uint32_t memoryBindIndex + VkMemoryRequirements memoryRequirements + + + VkStructureType sType + const void* pNext + uint32_t memoryBindIndex + VkDeviceMemory memory + VkDeviceSize memoryOffset + VkDeviceSize memorySize + + + VkStructureType sType + const void* pNext + VkOffset2D codedOffsetThe offset to be used for the picture resource, currently only used in field mode + VkExtent2D codedExtentThe extent to be used for the picture resource + uint32_t baseArrayLayerThe first array layer to be accessed for the Decode or Encode Operations + VkImageView imageViewBindingThe ImageView binding of the resource + + + VkStructureType sType + const void* pNext + int32_t slotIndexThe reference slot index + const VkVideoPictureResourceInfoKHR* pPictureResourceThe reference picture resource + + + VkStructureType sType + void* pNext + VkVideoDecodeCapabilityFlagsKHR flags + + + VkStructureType sType + const void* pNext + VkVideoDecodeUsageFlagsKHR videoUsageHints + + + VkStructureType sType + const void* pNext + VkVideoDecodeFlagsKHR flags + VkBuffer srcBuffer + VkDeviceSize srcBufferOffset + VkDeviceSize srcBufferRange + VkVideoPictureResourceInfoKHR dstPictureResource + const VkVideoReferenceSlotInfoKHR* pSetupReferenceSlot + uint32_t referenceSlotCount + const VkVideoReferenceSlotInfoKHR* pReferenceSlots + + + VkStructureType sType + void* pNext + VkBool32 videoMaintenance1 + + + VkStructureType sType + const void* pNext + VkQueryPool queryPool + uint32_t firstQuery + uint32_t queryCount + + Video Decode Codec Standard specific structures + #include "vk_video/vulkan_video_codec_h264std.h" + + + + + + + + + + + + + + + + + + + #include "vk_video/vulkan_video_codec_h264std_decode.h" + + + + + + VkStructureType sType + const void* pNext + StdVideoH264ProfileIdc stdProfileIdc + VkVideoDecodeH264PictureLayoutFlagBitsKHR pictureLayout + + + VkStructureType sType + void* pNext + StdVideoH264LevelIdc maxLevelIdc + VkOffset2D fieldOffsetGranularity + + + + + VkStructureType sType + const void* pNext + uint32_t stdSPSCount + const StdVideoH264SequenceParameterSet* pStdSPSs + uint32_t stdPPSCount + const StdVideoH264PictureParameterSet* pStdPPSsList of Picture Parameters associated with the spsStd, above + + + VkStructureType sType + const void* pNext + uint32_t maxStdSPSCount + uint32_t maxStdPPSCount + const VkVideoDecodeH264SessionParametersAddInfoKHR* pParametersAddInfo + + + VkStructureType sType + const void* pNext + const StdVideoDecodeH264PictureInfo* pStdPictureInfo + uint32_t sliceCount + const uint32_t* pSliceOffsets + + + VkStructureType sType + const void* pNext + const StdVideoDecodeH264ReferenceInfo* pStdReferenceInfo + + #include "vk_video/vulkan_video_codec_h265std.h" + + + + + + + + + + + + + + + + + + + #include "vk_video/vulkan_video_codec_h265std_decode.h" + + + + + + VkStructureType sType + const void* pNext + StdVideoH265ProfileIdc stdProfileIdc + + + VkStructureType sType + void* pNext + StdVideoH265LevelIdc maxLevelIdc + + + VkStructureType sType + const void* pNext + uint32_t stdVPSCount + const StdVideoH265VideoParameterSet* pStdVPSs + uint32_t stdSPSCount + const StdVideoH265SequenceParameterSet* pStdSPSs + uint32_t stdPPSCount + const StdVideoH265PictureParameterSet* pStdPPSsList of Picture Parameters associated with the spsStd, above + + + VkStructureType sType + const void* pNext + uint32_t maxStdVPSCount + uint32_t maxStdSPSCount + uint32_t maxStdPPSCount + const VkVideoDecodeH265SessionParametersAddInfoKHR* pParametersAddInfo + + + VkStructureType sType + const void* pNext + const StdVideoDecodeH265PictureInfo* pStdPictureInfo + uint32_t sliceSegmentCount + const uint32_t* pSliceSegmentOffsets + + + VkStructureType sType + const void* pNext + const StdVideoDecodeH265ReferenceInfo* pStdReferenceInfo + + #include "vk_video/vulkan_video_codec_av1std.h" + + + + #include "vk_video/vulkan_video_codec_av1std_decode.h" + + + + VkStructureType sType + const void* pNext + StdVideoAV1Profile stdProfile + VkBool32 filmGrainSupport + + + VkStructureType sType + void* pNext + StdVideoAV1Level maxLevel + + + VkStructureType sType + const void* pNext + const StdVideoAV1SequenceHeader* pStdSequenceHeader + + + VkStructureType sType + const void* pNext + const StdVideoDecodeAV1PictureInfo* pStdPictureInfo + int32_t referenceNameSlotIndices[VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR] + uint32_t frameHeaderOffset + uint32_t tileCount + const uint32_t* pTileOffsets + const uint32_t* pTileSizes + + + VkStructureType sType + const void* pNext + const StdVideoDecodeAV1ReferenceInfo* pStdReferenceInfo + + + VkStructureType sType + const void* pNext + uint32_t queueFamilyIndex + VkVideoSessionCreateFlagsKHR flags + const VkVideoProfileInfoKHR* pVideoProfile + VkFormat pictureFormat + VkExtent2D maxCodedExtent + VkFormat referencePictureFormat + uint32_t maxDpbSlots + uint32_t maxActiveReferencePictures + const VkExtensionProperties* pStdHeaderVersion + + + VkStructureType sType + const void* pNext + VkVideoSessionParametersCreateFlagsKHR flags + VkVideoSessionParametersKHR videoSessionParametersTemplate + VkVideoSessionKHR videoSession + + + VkStructureType sType + const void* pNext + uint32_t updateSequenceCount + + + VkStructureType sType + const void* pNext + VkVideoSessionParametersKHR videoSessionParameters + + + VkStructureType sType + void* pNext + VkBool32 hasOverrides + + + VkStructureType sType + const void* pNext + VkVideoBeginCodingFlagsKHR flags + VkVideoSessionKHR videoSession + VkVideoSessionParametersKHR videoSessionParameters + uint32_t referenceSlotCount + const VkVideoReferenceSlotInfoKHR* pReferenceSlots + + + VkStructureType sType + const void* pNext + VkVideoEndCodingFlagsKHR flags + + + VkStructureType sType + const void* pNext + VkVideoCodingControlFlagsKHR flags + + + VkStructureType sType + const void* pNext + VkVideoEncodeUsageFlagsKHR videoUsageHints + VkVideoEncodeContentFlagsKHR videoContentHints + VkVideoEncodeTuningModeKHR tuningMode + + + VkStructureType sType + const void* pNext + VkVideoEncodeFlagsKHR flags + VkBuffer dstBuffer + VkDeviceSize dstBufferOffset + VkDeviceSize dstBufferRange + VkVideoPictureResourceInfoKHR srcPictureResource + const VkVideoReferenceSlotInfoKHR* pSetupReferenceSlot + uint32_t referenceSlotCount + const VkVideoReferenceSlotInfoKHR* pReferenceSlots + uint32_t precedingExternallyEncodedBytes + + + VkStructureType sType + const void* pNext + VkVideoEncodeFeedbackFlagsKHR encodeFeedbackFlags + + + VkStructureType sType + const void* pNext + uint32_t qualityLevel + + + VkStructureType sType + const void* pNext + const VkVideoProfileInfoKHR* pVideoProfile + uint32_t qualityLevel + + + VkStructureType sType + void* pNext + VkVideoEncodeRateControlModeFlagBitsKHR preferredRateControlMode + uint32_t preferredRateControlLayerCount + + + VkStructureType sType + const void* pNext + VkVideoEncodeRateControlFlagsKHR flags + VkVideoEncodeRateControlModeFlagBitsKHR rateControlMode + uint32_t layerCount + const VkVideoEncodeRateControlLayerInfoKHR* pLayers + uint32_t virtualBufferSizeInMs + uint32_t initialVirtualBufferSizeInMs + + + VkStructureType sType + const void* pNext + uint64_t averageBitrate + uint64_t maxBitrate + uint32_t frameRateNumerator + uint32_t frameRateDenominator + + + VkStructureType sType + void* pNext + VkVideoEncodeCapabilityFlagsKHR flags + VkVideoEncodeRateControlModeFlagsKHR rateControlModes + uint32_t maxRateControlLayers + uint64_t maxBitrate + uint32_t maxQualityLevels + VkExtent2D encodeInputPictureGranularity + VkVideoEncodeFeedbackFlagsKHR supportedEncodeFeedbackFlags + + + VkStructureType sType + void* pNext + VkVideoEncodeH264CapabilityFlagsKHR flags + StdVideoH264LevelIdc maxLevelIdc + uint32_t maxSliceCount + uint32_t maxPPictureL0ReferenceCount + uint32_t maxBPictureL0ReferenceCount + uint32_t maxL1ReferenceCount + uint32_t maxTemporalLayerCount + VkBool32 expectDyadicTemporalLayerPattern + int32_t minQp + int32_t maxQp + VkBool32 prefersGopRemainingFrames + VkBool32 requiresGopRemainingFrames + VkVideoEncodeH264StdFlagsKHR stdSyntaxFlags + + + VkStructureType sType + void* pNext + VkVideoEncodeH264RateControlFlagsKHR preferredRateControlFlags + uint32_t preferredGopFrameCount + uint32_t preferredIdrPeriod + uint32_t preferredConsecutiveBFrameCount + uint32_t preferredTemporalLayerCount + VkVideoEncodeH264QpKHR preferredConstantQp + uint32_t preferredMaxL0ReferenceCount + uint32_t preferredMaxL1ReferenceCount + VkBool32 preferredStdEntropyCodingModeFlag + + #include "vk_video/vulkan_video_codec_h264std_encode.h" + + + + + + + + + + + + VkStructureType sType + const void* pNext + VkBool32 useMaxLevelIdc + StdVideoH264LevelIdc maxLevelIdc + + + VkStructureType sType + const void* pNext + uint32_t stdSPSCount + const StdVideoH264SequenceParameterSet* pStdSPSs + uint32_t stdPPSCount + const StdVideoH264PictureParameterSet* pStdPPSsList of Picture Parameters associated with the spsStd, above + + + VkStructureType sType + const void* pNext + uint32_t maxStdSPSCount + uint32_t maxStdPPSCount + const VkVideoEncodeH264SessionParametersAddInfoKHR* pParametersAddInfo + + + VkStructureType sType + const void* pNext + VkBool32 writeStdSPS + VkBool32 writeStdPPS + uint32_t stdSPSId + uint32_t stdPPSId + + + VkStructureType sType + void* pNext + VkBool32 hasStdSPSOverrides + VkBool32 hasStdPPSOverrides + + + VkStructureType sType + const void* pNext + const StdVideoEncodeH264ReferenceInfo* pStdReferenceInfo + + + VkStructureType sType + const void* pNext + uint32_t naluSliceEntryCount + const VkVideoEncodeH264NaluSliceInfoKHR* pNaluSliceEntries + const StdVideoEncodeH264PictureInfo* pStdPictureInfo + VkBool32 generatePrefixNalu + + + VkStructureType sType + const void* pNext + StdVideoH264ProfileIdc stdProfileIdc + + + VkStructureType sType + const void* pNext + int32_t constantQp + const StdVideoEncodeH264SliceHeader* pStdSliceHeader + + + VkStructureType sType + const void* pNext + VkVideoEncodeH264RateControlFlagsKHR flags + uint32_t gopFrameCount + uint32_t idrPeriod + uint32_t consecutiveBFrameCount + uint32_t temporalLayerCount + + + int32_t qpI + int32_t qpP + int32_t qpB + + + uint32_t frameISize + uint32_t framePSize + uint32_t frameBSize + + + VkStructureType sType + const void* pNext + VkBool32 useGopRemainingFrames + uint32_t gopRemainingI + uint32_t gopRemainingP + uint32_t gopRemainingB + + + VkStructureType sType + const void* pNext + VkBool32 useMinQp + VkVideoEncodeH264QpKHR minQp + VkBool32 useMaxQp + VkVideoEncodeH264QpKHR maxQp + VkBool32 useMaxFrameSize + VkVideoEncodeH264FrameSizeKHR maxFrameSize + + + VkStructureType sType + void* pNext + VkVideoEncodeH265CapabilityFlagsKHR flags + StdVideoH265LevelIdc maxLevelIdc + uint32_t maxSliceSegmentCount + VkExtent2D maxTiles + VkVideoEncodeH265CtbSizeFlagsKHR ctbSizes + VkVideoEncodeH265TransformBlockSizeFlagsKHR transformBlockSizes + uint32_t maxPPictureL0ReferenceCount + uint32_t maxBPictureL0ReferenceCount + uint32_t maxL1ReferenceCount + uint32_t maxSubLayerCount + VkBool32 expectDyadicTemporalSubLayerPattern + int32_t minQp + int32_t maxQp + VkBool32 prefersGopRemainingFrames + VkBool32 requiresGopRemainingFrames + VkVideoEncodeH265StdFlagsKHR stdSyntaxFlags + + + VkStructureType sType + void* pNext + VkVideoEncodeH265RateControlFlagsKHR preferredRateControlFlags + uint32_t preferredGopFrameCount + uint32_t preferredIdrPeriod + uint32_t preferredConsecutiveBFrameCount + uint32_t preferredSubLayerCount + VkVideoEncodeH265QpKHR preferredConstantQp + uint32_t preferredMaxL0ReferenceCount + uint32_t preferredMaxL1ReferenceCount + + #include "vk_video/vulkan_video_codec_h265std_encode.h" + + + + + + + + + + VkStructureType sType + const void* pNext + VkBool32 useMaxLevelIdc + StdVideoH265LevelIdc maxLevelIdc + + + VkStructureType sType + const void* pNext + uint32_t stdVPSCount + const StdVideoH265VideoParameterSet* pStdVPSs + uint32_t stdSPSCount + const StdVideoH265SequenceParameterSet* pStdSPSs + uint32_t stdPPSCount + const StdVideoH265PictureParameterSet* pStdPPSsList of Picture Parameters associated with the spsStd, above + + + VkStructureType sType + const void* pNext + uint32_t maxStdVPSCount + uint32_t maxStdSPSCount + uint32_t maxStdPPSCount + const VkVideoEncodeH265SessionParametersAddInfoKHR* pParametersAddInfo + + + VkStructureType sType + const void* pNext + VkBool32 writeStdVPS + VkBool32 writeStdSPS + VkBool32 writeStdPPS + uint32_t stdVPSId + uint32_t stdSPSId + uint32_t stdPPSId + + + VkStructureType sType + void* pNext + VkBool32 hasStdVPSOverrides + VkBool32 hasStdSPSOverrides + VkBool32 hasStdPPSOverrides + + + VkStructureType sType + const void* pNext + uint32_t naluSliceSegmentEntryCount + const VkVideoEncodeH265NaluSliceSegmentInfoKHR* pNaluSliceSegmentEntries + const StdVideoEncodeH265PictureInfo* pStdPictureInfo + + + VkStructureType sType + const void* pNext + int32_t constantQp + const StdVideoEncodeH265SliceSegmentHeader* pStdSliceSegmentHeader + + + VkStructureType sType + const void* pNext + VkVideoEncodeH265RateControlFlagsKHR flags + uint32_t gopFrameCount + uint32_t idrPeriod + uint32_t consecutiveBFrameCount + uint32_t subLayerCount + + + int32_t qpI + int32_t qpP + int32_t qpB + + + uint32_t frameISize + uint32_t framePSize + uint32_t frameBSize + + + VkStructureType sType + const void* pNext + VkBool32 useGopRemainingFrames + uint32_t gopRemainingI + uint32_t gopRemainingP + uint32_t gopRemainingB + + + VkStructureType sType + const void* pNext + VkBool32 useMinQp + VkVideoEncodeH265QpKHR minQp + VkBool32 useMaxQp + VkVideoEncodeH265QpKHR maxQp + VkBool32 useMaxFrameSize + VkVideoEncodeH265FrameSizeKHR maxFrameSize + + + VkStructureType sType + const void* pNext + StdVideoH265ProfileIdc stdProfileIdc + + + VkStructureType sType + const void* pNext + const StdVideoEncodeH265ReferenceInfo* pStdReferenceInfo + + + VkStructureType sType + void* pNext + VkBool32 inheritedViewportScissor2D + + + VkStructureType sType + const void* pNext + VkBool32 viewportScissor2D + uint32_t viewportDepthCount + const VkViewport* pViewportDepths + + + VkStructureType sType + void* pNext + VkBool32 ycbcr2plane444Formats + + + VkStructureType sType + void* pNext + VkBool32 provokingVertexLast + VkBool32 transformFeedbackPreservesProvokingVertex + + + VkStructureType sType + void* pNext + VkBool32 provokingVertexModePerPipeline + VkBool32 transformFeedbackPreservesTriangleFanProvokingVertex + + + VkStructureType sType + const void* pNext + VkProvokingVertexModeEXT provokingVertexMode + + + VkStructureType sType + const void* pNext + size_t dataSize + const void* pData + + + VkStructureType sType + const void* pNext + VkCuModuleNVX module + const char* pName + + + VkStructureType sType + const void* pNext + VkCuFunctionNVX function + uint32_t gridDimX + uint32_t gridDimY + uint32_t gridDimZ + uint32_t blockDimX + uint32_t blockDimY + uint32_t blockDimZ + uint32_t sharedMemBytes + size_t paramCount + const void* const * pParams + size_t extraCount + const void* const * pExtras + + + VkStructureType sType + void* pNext + VkBool32 descriptorBuffer + VkBool32 descriptorBufferCaptureReplay + VkBool32 descriptorBufferImageLayoutIgnored + VkBool32 descriptorBufferPushDescriptors + + + VkStructureType sType + void* pNext + VkBool32 combinedImageSamplerDescriptorSingleArray + VkBool32 bufferlessPushDescriptors + VkBool32 allowSamplerImageViewPostSubmitCreation + VkDeviceSize descriptorBufferOffsetAlignment + uint32_t maxDescriptorBufferBindings + uint32_t maxResourceDescriptorBufferBindings + uint32_t maxSamplerDescriptorBufferBindings + uint32_t maxEmbeddedImmutableSamplerBindings + uint32_t maxEmbeddedImmutableSamplers + size_t bufferCaptureReplayDescriptorDataSize + size_t imageCaptureReplayDescriptorDataSize + size_t imageViewCaptureReplayDescriptorDataSize + size_t samplerCaptureReplayDescriptorDataSize + size_t accelerationStructureCaptureReplayDescriptorDataSize + size_t samplerDescriptorSize + size_t combinedImageSamplerDescriptorSize + size_t sampledImageDescriptorSize + size_t storageImageDescriptorSize + size_t uniformTexelBufferDescriptorSize + size_t robustUniformTexelBufferDescriptorSize + size_t storageTexelBufferDescriptorSize + size_t robustStorageTexelBufferDescriptorSize + size_t uniformBufferDescriptorSize + size_t robustUniformBufferDescriptorSize + size_t storageBufferDescriptorSize + size_t robustStorageBufferDescriptorSize + size_t inputAttachmentDescriptorSize + size_t accelerationStructureDescriptorSize + VkDeviceSize maxSamplerDescriptorBufferRange + VkDeviceSize maxResourceDescriptorBufferRange + VkDeviceSize samplerDescriptorBufferAddressSpaceSize + VkDeviceSize resourceDescriptorBufferAddressSpaceSize + VkDeviceSize descriptorBufferAddressSpaceSize + + + VkStructureType sType + void* pNext + size_t combinedImageSamplerDensityMapDescriptorSize + + + VkStructureType sType + void* pNext + VkDeviceAddress address + VkDeviceSize range + VkFormat format + + + VkStructureType sType + void* pNext + VkDeviceAddress address + VkBufferUsageFlags usage + + + VkStructureType sType + void* pNext + VkBuffer buffer + + + const VkSampler* pSampler + const VkDescriptorImageInfo* pCombinedImageSampler + const VkDescriptorImageInfo* pInputAttachmentImage + const VkDescriptorImageInfo* pSampledImage + const VkDescriptorImageInfo* pStorageImage + const VkDescriptorAddressInfoEXT* pUniformTexelBuffer + const VkDescriptorAddressInfoEXT* pStorageTexelBuffer + const VkDescriptorAddressInfoEXT* pUniformBuffer + const VkDescriptorAddressInfoEXT* pStorageBuffer + VkDeviceAddress accelerationStructure + + + VkStructureType sType + const void* pNext + VkDescriptorType type + VkDescriptorDataEXT data + + + VkStructureType sType + const void* pNext + VkBuffer buffer + + + VkStructureType sType + const void* pNext + VkImage image + + + VkStructureType sType + const void* pNext + VkImageView imageView + + + VkStructureType sType + const void* pNext + VkSampler sampler + + + VkStructureType sType + const void* pNext + VkAccelerationStructureKHR accelerationStructure + VkAccelerationStructureNV accelerationStructureNV + + + VkStructureType sType + const void* pNext + const void* opaqueCaptureDescriptorData + + + VkStructureType sType + void* pNext + VkBool32 shaderIntegerDotProduct + + + + VkStructureType sType + void* pNext + VkBool32 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 + + + + VkStructureType sType + void* pNext + VkBool32 hasPrimary + VkBool32 hasRender + int64_t primaryMajor + int64_t primaryMinor + int64_t renderMajor + int64_t renderMinor + + + VkStructureType sType + void* pNext + VkBool32 fragmentShaderBarycentric + + + VkStructureType sType + void* pNext + VkBool32 triStripVertexOrderIndependentOfProvokingVertex + + + VkStructureType sType + void* pNext + VkBool32 rayTracingMotionBlur + VkBool32 rayTracingMotionBlurPipelineTraceRaysIndirect + + + VkStructureType sType + void* pNext + VkBool32 rayTracingValidation + + + + VkStructureType sType + const void* pNext + VkDeviceOrHostAddressConstKHR vertexData + + + VkStructureType sType + const void* pNext + uint32_t maxInstances + VkAccelerationStructureMotionInfoFlagsNV flags + + + float sx + float a + float b + float pvx + float sy + float c + float pvy + float sz + float pvz + float qx + float qy + float qz + float qw + float tx + float ty + float tz + + + The bitfields in this structure are non-normative since bitfield ordering is implementation-defined in C. The specification defines the normative layout. + VkSRTDataNV transformT0 + VkSRTDataNV transformT1 + uint32_t instanceCustomIndex:24 + uint32_t mask:8 + uint32_t instanceShaderBindingTableRecordOffset:24 + VkGeometryInstanceFlagsKHR flags:8 + uint64_t accelerationStructureReference + + + The bitfields in this structure are non-normative since bitfield ordering is implementation-defined in C. The specification defines the normative layout. + VkTransformMatrixKHR transformT0 + VkTransformMatrixKHR transformT1 + uint32_t instanceCustomIndex:24 + uint32_t mask:8 + uint32_t instanceShaderBindingTableRecordOffset:24 + VkGeometryInstanceFlagsKHR flags:8 + uint64_t accelerationStructureReference + + + VkAccelerationStructureInstanceKHR staticInstance + VkAccelerationStructureMatrixMotionInstanceNV matrixMotionInstance + VkAccelerationStructureSRTMotionInstanceNV srtMotionInstance + + + VkAccelerationStructureMotionInstanceTypeNV type + VkAccelerationStructureMotionInstanceFlagsNV flags + VkAccelerationStructureMotionInstanceDataNV data + + typedef void* VkRemoteAddressNV; + + VkStructureType sType + const void* pNext + VkDeviceMemory memory + VkExternalMemoryHandleTypeFlagBits handleType + + + VkStructureType sType + const void* pNext + VkBufferCollectionFUCHSIA collection + uint32_t index + + + VkStructureType sType + const void* pNext + VkBufferCollectionFUCHSIA collection + uint32_t index + + + VkStructureType sType + const void* pNext + VkBufferCollectionFUCHSIA collection + uint32_t index + + + VkStructureType sType + const void* pNext + zx_handle_t collectionToken + + + VkStructureType sType + void* pNext + uint32_t memoryTypeBits + uint32_t bufferCount + uint32_t createInfoIndex + uint64_t sysmemPixelFormat + VkFormatFeatureFlags formatFeatures + VkSysmemColorSpaceFUCHSIA sysmemColorSpaceIndex + VkComponentMapping samplerYcbcrConversionComponents + VkSamplerYcbcrModelConversion suggestedYcbcrModel + VkSamplerYcbcrRange suggestedYcbcrRange + VkChromaLocation suggestedXChromaOffset + VkChromaLocation suggestedYChromaOffset + + + VkStructureType sType + const void* pNext + VkBufferCreateInfo createInfo + VkFormatFeatureFlags requiredFormatFeatures + VkBufferCollectionConstraintsInfoFUCHSIA bufferCollectionConstraints + + + VkStructureType sType + const void* pNext + uint32_t colorSpace + + + VkStructureType sType + const void* pNext + VkImageCreateInfo imageCreateInfo + VkFormatFeatureFlags requiredFormatFeatures + VkImageFormatConstraintsFlagsFUCHSIA flags + uint64_t sysmemPixelFormat + uint32_t colorSpaceCount + const VkSysmemColorSpaceFUCHSIA* pColorSpaces + + + VkStructureType sType + const void* pNext + uint32_t formatConstraintsCount + const VkImageFormatConstraintsInfoFUCHSIA* pFormatConstraints + VkBufferCollectionConstraintsInfoFUCHSIA bufferCollectionConstraints + VkImageConstraintsInfoFlagsFUCHSIA flags + + + VkStructureType sType + const void* pNext + uint32_t minBufferCount + uint32_t maxBufferCount + uint32_t minBufferCountForCamping + uint32_t minBufferCountForDedicatedSlack + uint32_t minBufferCountForSharedSlack + + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCudaModuleNV) + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCudaFunctionNV) + + VkStructureType sType + const void* pNext + size_t dataSize + const void* pData + + + VkStructureType sType + const void* pNext + VkCudaModuleNV module + const char* pName + + + VkStructureType sType + const void* pNext + VkCudaFunctionNV function + uint32_t gridDimX + uint32_t gridDimY + uint32_t gridDimZ + uint32_t blockDimX + uint32_t blockDimY + uint32_t blockDimZ + uint32_t sharedMemBytes + size_t paramCount + const void* const * pParams + size_t extraCount + const void* const * pExtras + + + VkStructureType sType + void* pNext + VkBool32 formatRgba10x6WithoutYCbCrSampler + + + VkStructureType sType + void* pNext + VkFormatFeatureFlags2 linearTilingFeatures + VkFormatFeatureFlags2 optimalTilingFeatures + VkFormatFeatureFlags2 bufferFeatures + + + + VkStructureType sType + void* pNext + uint32_t drmFormatModifierCount + VkDrmFormatModifierProperties2EXT* pDrmFormatModifierProperties + + + uint64_t drmFormatModifier + uint32_t drmFormatModifierPlaneCount + VkFormatFeatureFlags2 drmFormatModifierTilingFeatures + + + VkStructureType sType + void* pNext + VkFormat format + uint64_t externalFormat + VkFormatFeatureFlags2 formatFeatures + VkComponentMapping samplerYcbcrConversionComponents + VkSamplerYcbcrModelConversion suggestedYcbcrModel + VkSamplerYcbcrRange suggestedYcbcrRange + VkChromaLocation suggestedXChromaOffset + VkChromaLocation suggestedYChromaOffset + + + VkStructureType sType + const void* pNext + uint32_t viewMask + uint32_t colorAttachmentCount + const VkFormat* pColorAttachmentFormats + VkFormat depthAttachmentFormat + VkFormat stencilAttachmentFormat + + + + VkStructureType sType + const void* pNext + VkRenderingFlags flags + VkRect2D renderArea + uint32_t layerCount + uint32_t viewMask + uint32_t colorAttachmentCount + const VkRenderingAttachmentInfo* pColorAttachments + const VkRenderingAttachmentInfo* pDepthAttachment + const VkRenderingAttachmentInfo* pStencilAttachment + + + + VkStructureType sType + const void* pNext + VkImageView imageView + VkImageLayout imageLayout + VkResolveModeFlagBits resolveMode + VkImageView resolveImageView + VkImageLayout resolveImageLayout + VkAttachmentLoadOp loadOp + VkAttachmentStoreOp storeOp + VkClearValue clearValue + + + + VkStructureType sType + const void* pNext + VkImageView imageView + VkImageLayout imageLayout + VkExtent2D shadingRateAttachmentTexelSize + + + VkStructureType sType + const void* pNext + VkImageView imageView + VkImageLayout imageLayout + + + VkStructureType sType + void* pNext + VkBool32 dynamicRendering + + + + VkStructureType sType + const void* pNext + VkRenderingFlags flags + uint32_t viewMask + uint32_t colorAttachmentCount + uint32_t colorAttachmentCount + const VkFormat* pColorAttachmentFormats + VkFormat depthAttachmentFormat + VkFormat stencilAttachmentFormat + VkSampleCountFlagBits rasterizationSamples + + + + VkStructureType sType + const void* pNext + uint32_t colorAttachmentCount + const VkSampleCountFlagBits* pColorAttachmentSamples + VkSampleCountFlagBits depthStencilAttachmentSamples + + + + VkStructureType sType + const void* pNext + VkBool32 perViewAttributes + VkBool32 perViewAttributesPositionXOnly + + + VkStructureType sType + void* pNext + VkBool32 minLod + + + VkStructureType sType + const void* pNext + float minLod + + + VkStructureType sType + void* pNext + VkBool32 rasterizationOrderColorAttachmentAccess + VkBool32 rasterizationOrderDepthAttachmentAccess + VkBool32 rasterizationOrderStencilAttachmentAccess + + + + VkStructureType sType + void* pNext + VkBool32 linearColorAttachment + + + VkStructureType sType + void* pNext + VkBool32 graphicsPipelineLibrary + + + VkStructureType sType + void* pNext + VkBool32 graphicsPipelineLibraryFastLinking + VkBool32 graphicsPipelineLibraryIndependentInterpolationDecoration + + + VkStructureType sType + const void* pNext + VkGraphicsPipelineLibraryFlagsEXT flags + + + VkStructureType sType + void* pNext + VkBool32 descriptorSetHostMapping + + + VkStructureType sType + const void* pNext + VkDescriptorSetLayout descriptorSetLayout + uint32_t binding + + + VkStructureType sType + void* pNext + size_t descriptorOffset + uint32_t descriptorSize + + + VkStructureType sType + void* pNext + VkBool32 nestedCommandBuffer + VkBool32 nestedCommandBufferRendering + VkBool32 nestedCommandBufferSimultaneousUse + + + VkStructureType sType + void* pNext + uint32_t maxCommandBufferNestingLevel + + + VkStructureType sType + void* pNext + VkBool32 shaderModuleIdentifier + + + VkStructureType sType + void* pNext + uint8_t shaderModuleIdentifierAlgorithmUUID[VK_UUID_SIZE] + + + VkStructureType sType + const void* pNext + uint32_t identifierSize + const uint8_t* pIdentifier + + + VkStructureType sType + void* pNext + uint32_t identifierSize + uint8_t identifier[VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT] + + + VkStructureType sType + const void* pNext + VkImageCompressionFlagsEXT flags + uint32_t compressionControlPlaneCount + VkImageCompressionFixedRateFlagsEXT* pFixedRateFlags + + + VkStructureType sType + void* pNext + VkBool32 imageCompressionControl + + + VkStructureType sType + void* pNext + VkImageCompressionFlagsEXT imageCompressionFlags + VkImageCompressionFixedRateFlagsEXT imageCompressionFixedRateFlags + + + VkStructureType sType + void* pNext + VkBool32 imageCompressionControlSwapchain + + + VkStructureType sType + void* pNext + VkImageSubresource imageSubresource + + + + VkStructureType sType + void* pNext + VkSubresourceLayout subresourceLayout + + + + VkStructureType sType + const void* pNext + VkBool32 disallowMerging + + + uint32_t postMergeSubpassCount + + + VkStructureType sType + const void* pNext + VkRenderPassCreationFeedbackInfoEXT* pRenderPassFeedback + + + VkSubpassMergeStatusEXT subpassMergeStatus + char description[VK_MAX_DESCRIPTION_SIZE] + uint32_t postMergeIndex + + + VkStructureType sType + const void* pNext + VkRenderPassSubpassFeedbackInfoEXT* pSubpassFeedback + + + VkStructureType sType + void* pNext + VkBool32 subpassMergeFeedback + + + VkStructureType sType + const void* pNext + VkMicromapTypeEXT type + VkBuildMicromapFlagsEXT flags + VkBuildMicromapModeEXT mode + VkMicromapEXT dstMicromap + uint32_t usageCountsCount + const VkMicromapUsageEXT* pUsageCounts + const VkMicromapUsageEXT* const* ppUsageCounts + VkDeviceOrHostAddressConstKHR data + VkDeviceOrHostAddressKHR scratchData + VkDeviceOrHostAddressConstKHR triangleArray + VkDeviceSize triangleArrayStride + + + VkStructureType sType + const void* pNext + VkMicromapCreateFlagsEXT createFlags + VkBuffer buffer + VkDeviceSize offsetSpecified in bytes + VkDeviceSize size + VkMicromapTypeEXT type + VkDeviceAddress deviceAddress + + + VkStructureType sType + const void* pNext + const uint8_t* pVersionData + + + VkStructureType sType + const void* pNext + VkMicromapEXT src + VkMicromapEXT dst + VkCopyMicromapModeEXT mode + + + VkStructureType sType + const void* pNext + VkMicromapEXT src + VkDeviceOrHostAddressKHR dst + VkCopyMicromapModeEXT mode + + + VkStructureType sType + const void* pNext + VkDeviceOrHostAddressConstKHR src + VkMicromapEXT dst + VkCopyMicromapModeEXT mode + + + VkStructureType sType + const void* pNext + VkDeviceSize micromapSize + VkDeviceSize buildScratchSize + VkBool32 discardable + + + uint32_t count + uint32_t subdivisionLevel + uint32_t formatInterpretation depends on parent type + + + uint32_t dataOffsetSpecified in bytes + uint16_t subdivisionLevel + uint16_t format + + + VkStructureType sType + void* pNext + VkBool32 micromap + VkBool32 micromapCaptureReplay + VkBool32 micromapHostCommands + + + VkStructureType sType + void* pNext + uint32_t maxOpacity2StateSubdivisionLevel + uint32_t maxOpacity4StateSubdivisionLevel + + + VkStructureType sType + void* pNext + VkIndexType indexType + VkDeviceOrHostAddressConstKHR indexBuffer + VkDeviceSize indexStride + uint32_t baseTriangle + uint32_t usageCountsCount + const VkMicromapUsageEXT* pUsageCounts + const VkMicromapUsageEXT* const* ppUsageCounts + VkMicromapEXT micromap + + + VkStructureType sType + void* pNext + VkBool32 displacementMicromap + + + VkStructureType sType + void* pNext + uint32_t maxDisplacementMicromapSubdivisionLevel + + + VkStructureType sType + void* pNext + + VkFormat displacementBiasAndScaleFormat + VkFormat displacementVectorFormat + + VkDeviceOrHostAddressConstKHR displacementBiasAndScaleBuffer + VkDeviceSize displacementBiasAndScaleStride + VkDeviceOrHostAddressConstKHR displacementVectorBuffer + VkDeviceSize displacementVectorStride + VkDeviceOrHostAddressConstKHR displacedMicromapPrimitiveFlags + VkDeviceSize displacedMicromapPrimitiveFlagsStride + VkIndexType indexType + VkDeviceOrHostAddressConstKHR indexBuffer + VkDeviceSize indexStride + + uint32_t baseTriangle + + uint32_t usageCountsCount + const VkMicromapUsageEXT* pUsageCounts + const VkMicromapUsageEXT* const* ppUsageCounts + + VkMicromapEXT micromap + + + VkStructureType sType + void* pNext + uint8_t pipelineIdentifier[VK_UUID_SIZE] + + + VkStructureType sType + void* pNext + VkBool32 pipelinePropertiesIdentifier + + + VkStructureType sType + void* pNext + VkBool32 shaderEarlyAndLateFragmentTests + + + VkStructureType sType + const void* pNext + VkBool32 acquireUnmodifiedMemory + + + VkStructureType sType + const void* pNext + VkExportMetalObjectTypeFlagBitsEXT exportObjectType + + + VkStructureType sType + const void* pNext + + + VkStructureType sType + const void* pNext + MTLDevice_id mtlDevice + + + VkStructureType sType + const void* pNext + VkQueue queue + MTLCommandQueue_id mtlCommandQueue + + + VkStructureType sType + const void* pNext + VkDeviceMemory memory + MTLBuffer_id mtlBuffer + + + VkStructureType sType + const void* pNext + MTLBuffer_id mtlBuffer + + + VkStructureType sType + const void* pNext + VkImage image + VkImageView imageView + VkBufferView bufferView + VkImageAspectFlagBits plane + MTLTexture_id mtlTexture + + + VkStructureType sType + const void* pNext + VkImageAspectFlagBits plane + MTLTexture_id mtlTexture + + + VkStructureType sType + const void* pNext + VkImage image + IOSurfaceRef ioSurface + + + VkStructureType sType + const void* pNext + IOSurfaceRef ioSurface + + + VkStructureType sType + const void* pNext + VkSemaphore semaphore + VkEvent event + MTLSharedEvent_id mtlSharedEvent + + + VkStructureType sType + const void* pNext + MTLSharedEvent_id mtlSharedEvent + + + VkStructureType sType + void* pNext + VkBool32 nonSeamlessCubeMap + + + VkStructureType sType + void* pNext + VkBool32 pipelineRobustness + + + VkStructureType sType + const void* pNext + VkPipelineRobustnessBufferBehaviorEXT storageBuffers + VkPipelineRobustnessBufferBehaviorEXT uniformBuffers + VkPipelineRobustnessBufferBehaviorEXT vertexInputs + VkPipelineRobustnessImageBehaviorEXT images + + + VkStructureType sType + void* pNext + VkPipelineRobustnessBufferBehaviorEXT defaultRobustnessStorageBuffers + VkPipelineRobustnessBufferBehaviorEXT defaultRobustnessUniformBuffers + VkPipelineRobustnessBufferBehaviorEXT defaultRobustnessVertexInputs + VkPipelineRobustnessImageBehaviorEXT defaultRobustnessImages + + + VkStructureType sType + const void* pNext + VkOffset2D filterCenter + VkExtent2D filterSize + uint32_t numPhases + + + VkStructureType sType + void* pNext + VkBool32 textureSampleWeighted + VkBool32 textureBoxFilter + VkBool32 textureBlockMatch + + + VkStructureType sType + void* pNext + uint32_t maxWeightFilterPhases + VkExtent2D maxWeightFilterDimension + VkExtent2D maxBlockMatchRegion + VkExtent2D maxBoxFilterBlockSize + + + VkStructureType sType + void* pNext + VkBool32 tileProperties + + + VkStructureType sType + void* pNext + VkExtent3D tileSize + VkExtent2D apronSize + VkOffset2D origin + + + VkStructureType sType + void* pNext + VkBool32 amigoProfiling + + + VkStructureType sType + const void* pNext + uint64_t firstDrawTimestamp + uint64_t swapBufferTimestamp + + + VkStructureType sType + void* pNext + VkBool32 attachmentFeedbackLoopLayout + + + VkStructureType sType + void* pNext + VkBool32 depthClampZeroOne + + + VkStructureType sType + void* pNext + VkBool32 reportAddressBinding + + + VkStructureType sType + void* pNext + VkDeviceAddressBindingFlagsEXT flags + VkDeviceAddress baseAddress + VkDeviceSize size + VkDeviceAddressBindingTypeEXT bindingType + + + VkStructureType sType + void* pNext + VkBool32 opticalFlow + + + VkStructureType sType + void* pNext + VkOpticalFlowGridSizeFlagsNV supportedOutputGridSizes + VkOpticalFlowGridSizeFlagsNV supportedHintGridSizes + VkBool32 hintSupported + VkBool32 costSupported + VkBool32 bidirectionalFlowSupported + VkBool32 globalFlowSupported + uint32_t minWidth + uint32_t minHeight + uint32_t maxWidth + uint32_t maxHeight + uint32_t maxNumRegionsOfInterest + + + VkStructureType sType + const void* pNext + VkOpticalFlowUsageFlagsNV usage + + + VkStructureType sType + const void* pNext + VkFormat format + + + VkStructureType sType + void* pNext + uint32_t width + uint32_t height + VkFormat imageFormat + VkFormat flowVectorFormat + VkFormat costFormat + VkOpticalFlowGridSizeFlagsNV outputGridSize + VkOpticalFlowGridSizeFlagsNV hintGridSize + VkOpticalFlowPerformanceLevelNV performanceLevel + VkOpticalFlowSessionCreateFlagsNV flags + + NV internal use only + VkStructureType sType + void* pNext + uint32_t id + uint32_t size + const void* pPrivateData + + + VkStructureType sType + void* pNext + VkOpticalFlowExecuteFlagsNV flags + uint32_t regionCount + const VkRect2D* pRegions + + + VkStructureType sType + void* pNext + VkBool32 deviceFault + VkBool32 deviceFaultVendorBinary + + + VkDeviceFaultAddressTypeEXT addressType + VkDeviceAddress reportedAddress + VkDeviceSize addressPrecision + + + char description[VK_MAX_DESCRIPTION_SIZE]Free-form description of the fault + uint64_t vendorFaultCode + uint64_t vendorFaultData + + + VkStructureType sType + void* pNext + uint32_t addressInfoCount + uint32_t vendorInfoCount + VkDeviceSize vendorBinarySizeSpecified in bytes + + + VkStructureType sType + void* pNext + char description[VK_MAX_DESCRIPTION_SIZE]Free-form description of the fault + VkDeviceFaultAddressInfoEXT* pAddressInfos + VkDeviceFaultVendorInfoEXT* pVendorInfos + void* pVendorBinaryData + + + The fields in this structure are non-normative since structure packing is implementation-defined in C. The specification defines the normative layout. + uint32_t headerSize + VkDeviceFaultVendorBinaryHeaderVersionEXT headerVersion + uint32_t vendorID + uint32_t deviceID + uint32_t driverVersion + uint8_t pipelineCacheUUID[VK_UUID_SIZE] + uint32_t applicationNameOffset + uint32_t applicationVersion + uint32_t engineNameOffset + uint32_t engineVersion + uint32_t apiVersion + + + VkStructureType sType + void* pNext + VkBool32 pipelineLibraryGroupHandles + + + VkStructureType sType + const void* pNext + float depthBiasConstantFactor + float depthBiasClamp + float depthBiasSlopeFactor + + + VkStructureType sType + const void* pNext + VkDepthBiasRepresentationEXT depthBiasRepresentation + VkBool32 depthBiasExact + + + VkDeviceAddress srcAddress + VkDeviceAddress dstAddress + VkDeviceSize compressedSizeSpecified in bytes + VkDeviceSize decompressedSizeSpecified in bytes + VkMemoryDecompressionMethodFlagsNV decompressionMethod + + + VkStructureType sType + void* pNext + uint64_t shaderCoreMask + uint32_t shaderCoreCount + uint32_t shaderWarpsPerCore + + + VkStructureType sType + void* pNext + VkBool32 shaderCoreBuiltins + + + VkStructureType sType + const void* pNext + VkFrameBoundaryFlagsEXT flags + uint64_t frameID + uint32_t imageCount + const VkImage* pImages + uint32_t bufferCount + const VkBuffer* pBuffers + uint64_t tagName + size_t tagSize + const void* pTag + + + VkStructureType sType + void* pNext + VkBool32 frameBoundary + + + VkStructureType sType + void* pNext + VkBool32 dynamicRenderingUnusedAttachments + + + VkStructureType sType + void* pNext + VkPresentModeKHR presentMode + + + VkStructureType sType + void* pNext + VkPresentScalingFlagsEXT supportedPresentScaling + VkPresentGravityFlagsEXT supportedPresentGravityX + VkPresentGravityFlagsEXT supportedPresentGravityY + VkExtent2D minScaledImageExtentSupported minimum image width and height for the surface when scaling is used + VkExtent2D maxScaledImageExtentSupported maximum image width and height for the surface when scaling is used + + + VkStructureType sType + void* pNext + uint32_t presentModeCount + VkPresentModeKHR* pPresentModesOutput list of present modes compatible with the one specified in VkSurfacePresentModeEXT + + + VkStructureType sType + void* pNext + VkBool32 swapchainMaintenance1 + + + VkStructureType sType + const void* pNext + uint32_t swapchainCountCopy of VkPresentInfoKHR::swapchainCount + const VkFence* pFencesFence to signal for each swapchain + + + VkStructureType sType + const void* pNext + uint32_t presentModeCountLength of the pPresentModes array + const VkPresentModeKHR* pPresentModesPresentation modes which will be usable with this swapchain + + + VkStructureType sType + const void* pNext + uint32_t swapchainCountCopy of VkPresentInfoKHR::swapchainCount + const VkPresentModeKHR* pPresentModesPresentation mode for each swapchain + + + VkStructureType sType + const void* pNext + VkPresentScalingFlagsEXT scalingBehavior + VkPresentGravityFlagsEXT presentGravityX + VkPresentGravityFlagsEXT presentGravityY + + + VkStructureType sType + const void* pNext + VkSwapchainKHR swapchainSwapchain for which images are being released + uint32_t imageIndexCountNumber of indices to release + const uint32_t* pImageIndicesIndices of which presentable images to release + + + VkStructureType sType + void* pNext + VkBool32 depthBiasControl + VkBool32 leastRepresentableValueForceUnormRepresentation + VkBool32 floatRepresentation + VkBool32 depthBiasExact + + + VkStructureType sType + void* pNext + VkBool32 rayTracingInvocationReorder + + + VkStructureType sType + void* pNext + VkRayTracingInvocationReorderModeNV rayTracingInvocationReorderReorderingHint + + + VkStructureType sType + void* pNext + VkBool32 extendedSparseAddressSpace + + + VkStructureType sType + void* pNext + VkDeviceSize extendedSparseAddressSpaceSizeTotal address space available for extended sparse allocations (bytes) + VkImageUsageFlags extendedSparseImageUsageFlagsBitfield of which image usages are supported for extended sparse allocations + VkBufferUsageFlags extendedSparseBufferUsageFlagsBitfield of which buffer usages are supported for extended sparse allocations + + + VkStructureType sType + void* pNext + VkDirectDriverLoadingFlagsLUNARG flags + PFN_vkGetInstanceProcAddrLUNARG pfnGetInstanceProcAddr + + + VkStructureType sType + const void* pNext + VkDirectDriverLoadingModeLUNARG mode + uint32_t driverCount + const VkDirectDriverLoadingInfoLUNARG* pDrivers + + + VkStructureType sType + void* pNext + VkBool32 multiviewPerViewViewports + + + VkStructureType sType + void* pNext + VkBool32 rayTracingPositionFetch + + + VkStructureType sType + const void* pNext + const VkImageCreateInfo* pCreateInfo + const VkImageSubresource2KHR* pSubresource + + + VkStructureType sType + void* pNext + uint32_t pixelRate + uint32_t texelRate + uint32_t fmaRate + + + VkStructureType sType + void* pNext + VkBool32 multiviewPerViewRenderAreas + + + VkStructureType sType + const void* pNext + uint32_t perViewRenderAreaCount + const VkRect2D* pPerViewRenderAreas + + + VkStructureType sType + const void* pNext + void* pQueriedLowLatencyData + + + VkStructureType sType + const void* pNext + VkMemoryMapFlags flags + VkDeviceMemory memory + VkDeviceSize offset + VkDeviceSize size + + + VkStructureType sType + const void* pNext + VkMemoryUnmapFlagsKHR flags + VkDeviceMemory memory + + + VkStructureType sType + void* pNext + VkBool32 shaderObject + + + VkStructureType sType + void* pNext + uint8_t shaderBinaryUUID[VK_UUID_SIZE] + uint32_t shaderBinaryVersion + + + VkStructureType sType + const void* pNext + VkShaderCreateFlagsEXT flags + VkShaderStageFlagBits stage + VkShaderStageFlags nextStage + VkShaderCodeTypeEXT codeType + size_t codeSize + const void* pCode + const char* pName + uint32_t setLayoutCount + const VkDescriptorSetLayout* pSetLayouts + uint32_t pushConstantRangeCount + const VkPushConstantRange* pPushConstantRanges + const VkSpecializationInfo* pSpecializationInfo + + + VkStructureType sType + void* pNext + VkBool32 shaderTileImageColorReadAccess + VkBool32 shaderTileImageDepthReadAccess + VkBool32 shaderTileImageStencilReadAccess + + + VkStructureType sType + void* pNext + VkBool32 shaderTileImageCoherentReadAccelerated + VkBool32 shaderTileImageReadSampleFromPixelRateInvocation + VkBool32 shaderTileImageReadFromHelperInvocation + + + VkStructureType sType + const void* pNext + struct _screen_buffer* buffer + + + VkStructureType sType + void* pNext + VkDeviceSize allocationSize + uint32_t memoryTypeBits + + + VkStructureType sType + void* pNext + VkFormat format + uint64_t externalFormat + uint64_t screenUsage + VkFormatFeatureFlags formatFeatures + VkComponentMapping samplerYcbcrConversionComponents + VkSamplerYcbcrModelConversion suggestedYcbcrModel + VkSamplerYcbcrRange suggestedYcbcrRange + VkChromaLocation suggestedXChromaOffset + VkChromaLocation suggestedYChromaOffset + + + VkStructureType sType + void* pNext + uint64_t externalFormat + + + VkStructureType sType + void* pNext + VkBool32 screenBufferImport + + + VkStructureType sType + void* pNext + VkBool32 cooperativeMatrix + VkBool32 cooperativeMatrixRobustBufferAccess + + + VkStructureType sType + void* pNext + uint32_t MSize + uint32_t NSize + uint32_t KSize + VkComponentTypeKHR AType + VkComponentTypeKHR BType + VkComponentTypeKHR CType + VkComponentTypeKHR ResultType + VkBool32 saturatingAccumulation + VkScopeKHR scope + + + VkStructureType sType + void* pNext + VkShaderStageFlags cooperativeMatrixSupportedStages + + + VkStructureType sType + void* pNext + uint32_t maxExecutionGraphDepth + uint32_t maxExecutionGraphShaderOutputNodes + uint32_t maxExecutionGraphShaderPayloadSize + uint32_t maxExecutionGraphShaderPayloadCount + uint32_t executionGraphDispatchAddressAlignment + + + VkStructureType sType + void* pNext + VkBool32 shaderEnqueue + + + VkStructureType sType + const void* pNext + VkPipelineCreateFlags flags + uint32_t stageCount + const VkPipelineShaderStageCreateInfo* pStages + const VkPipelineLibraryCreateInfoKHR* pLibraryInfo + VkPipelineLayout layout + VkPipeline basePipelineHandle + int32_t basePipelineIndex + + + VkStructureType sType + const void* pNext + const char* pName + uint32_t index + + + VkStructureType sType + void* pNext + VkDeviceSize size + + + uint32_t nodeIndex + uint32_t payloadCount + VkDeviceOrHostAddressConstAMDX payloads + uint64_t payloadStride + + + uint32_t count + VkDeviceOrHostAddressConstAMDX infos + uint64_t stride + + + VkStructureType sType + const void* pNext + VkResult* pResult + + + VkStructureType sType + const void* pNext + VkShaderStageFlags stageFlags + VkPipelineLayout layout + uint32_t firstSet + uint32_t descriptorSetCount + const VkDescriptorSet* pDescriptorSets + uint32_t dynamicOffsetCount + const uint32_t* pDynamicOffsets + + + VkStructureType sType + const void* pNext + VkPipelineLayout layout + VkShaderStageFlags stageFlags + uint32_t offset + uint32_t size + const void* pValues + + + VkStructureType sType + const void* pNext + VkShaderStageFlags stageFlags + VkPipelineLayout layout + uint32_t set + uint32_t descriptorWriteCount + const VkWriteDescriptorSet* pDescriptorWrites + + + VkStructureType sType + const void* pNext + VkDescriptorUpdateTemplate descriptorUpdateTemplate + VkPipelineLayout layout + uint32_t set + const void* pData + + + VkStructureType sType + const void* pNext + VkShaderStageFlags stageFlags + VkPipelineLayout layout + uint32_t firstSet + uint32_t setCount + const uint32_t* pBufferIndices + const VkDeviceSize* pOffsets + + + VkStructureType sType + const void* pNext + VkShaderStageFlags stageFlags + VkPipelineLayout layout + uint32_t set + + + VkStructureType sType + void* pNext + VkBool32 cubicRangeClamp + + + VkStructureType sType + void* pNext + VkBool32 ycbcrDegamma + + + VkStructureType sType + void* pNext + VkBool32 enableYDegamma + VkBool32 enableCbCrDegamma + + + VkStructureType sType + void* pNext + VkBool32 selectableCubicWeights + + + VkStructureType sType + const void* pNext + VkCubicFilterWeightsQCOM cubicWeights + + + VkStructureType sType + const void* pNext + VkCubicFilterWeightsQCOM cubicWeights + + + VkStructureType sType + void* pNext + VkBool32 textureBlockMatch2 + + + VkStructureType sType + void* pNext + VkExtent2D maxBlockMatchWindow + + + VkStructureType sType + const void* pNext + VkExtent2D windowExtent + VkBlockMatchWindowCompareModeQCOM windowCompareMode + + + VkStructureType sType + void* pNext + VkBool32 descriptorPoolOverallocation + + + VkStructureType sType + void* pNext + VkLayeredDriverUnderlyingApiMSFT underlyingAPI + + + VkStructureType sType + void* pNext + VkBool32 perStageDescriptorSet + VkBool32 dynamicPipelineLayout + + + VkStructureType sType + void* pNext + VkBool32 externalFormatResolve + + + VkStructureType sType + void* pNext + VkBool32 nullColorAttachmentWithExternalFormatResolve + VkChromaLocation externalFormatResolveChromaOffsetX + VkChromaLocation externalFormatResolveChromaOffsetY + + + VkStructureType sType + void* pNext + VkFormat colorAttachmentFormat + + + VkStructureType sType + const void* pNext + VkBool32 lowLatencyMode + VkBool32 lowLatencyBoost + uint32_t minimumIntervalUs + + + VkStructureType sType + const void* pNext + VkSemaphore signalSemaphore + uint64_t value + + + VkStructureType sType + const void* pNext + uint64_t presentID + VkLatencyMarkerNV marker + + + VkStructureType sType + const void* pNext + uint32_t timingCount + VkLatencyTimingsFrameReportNV* pTimings + + + VkStructureType sType + const void* pNext + uint64_t presentID + uint64_t inputSampleTimeUs + uint64_t simStartTimeUs + uint64_t simEndTimeUs + uint64_t renderSubmitStartTimeUs + uint64_t renderSubmitEndTimeUs + uint64_t presentStartTimeUs + uint64_t presentEndTimeUs + uint64_t driverStartTimeUs + uint64_t driverEndTimeUs + uint64_t osRenderQueueStartTimeUs + uint64_t osRenderQueueEndTimeUs + uint64_t gpuRenderStartTimeUs + uint64_t gpuRenderEndTimeUs + + + VkStructureType sType + const void* pNext + VkOutOfBandQueueTypeNV queueType + + + VkStructureType sType + const void* pNext + uint64_t presentID + + + VkStructureType sType + const void* pNext + VkBool32 latencyModeEnable + + + VkStructureType sType + const void* pNext + uint32_t presentModeCount + VkPresentModeKHR* pPresentModes + + + VkStructureType sType + void* pNext + VkBool32 cudaKernelLaunchFeatures + + + VkStructureType sType + void* pNext + uint32_t computeCapabilityMinor + uint32_t computeCapabilityMajor + + + VkStructureType sType + void* pNext + uint32_t shaderCoreCount + + + VkStructureType sType + void* pNext + VkBool32 schedulingControls + + + VkStructureType sType + void* pNext + VkPhysicalDeviceSchedulingControlsFlagsARM schedulingControlsFlags + + + VkStructureType sType + void* pNext + VkBool32 relaxedLineRasterization + + + VkStructureType sType + void* pNext + VkBool32 renderPassStriped + + + VkStructureType sType + void* pNext + VkExtent2D renderPassStripeGranularity + uint32_t maxRenderPassStripes + + + VkStructureType sType + const void* pNext + VkRect2D stripeArea + + + VkStructureType sType + const void* pNext + uint32_t stripeInfoCount + const VkRenderPassStripeInfoARM* pStripeInfos + + + VkStructureType sType + const void* pNext + uint32_t stripeSemaphoreInfoCount + const VkSemaphoreSubmitInfo* pStripeSemaphoreInfos + + + VkStructureType sType + void* pNext + VkBool32 shaderMaximalReconvergence + + + VkStructureType sType + void* pNext + VkBool32 shaderSubgroupRotate + VkBool32 shaderSubgroupRotateClustered + + + VkStructureType sType + void* pNext + VkBool32 shaderExpectAssume + + + VkStructureType sType + void* pNext + VkBool32 shaderFloatControls2 + + + VkStructureType sType + void* pNext + VkBool32 dynamicRenderingLocalRead + + + VkStructureType sType + const void* pNext + uint32_t colorAttachmentCount + const uint32_t* pColorAttachmentLocations + + + VkStructureType sType + const void* pNext + uint32_t colorAttachmentCount + const uint32_t* pColorAttachmentInputIndices + const uint32_t* pDepthInputAttachmentIndex + const uint32_t* pStencilInputAttachmentIndex + + + VkStructureType sType + void* pNext + VkBool32 shaderQuadControl + + + VkStructureType sType + void* pNext + VkBool32 shaderFloat16VectorAtomics + + + VkStructureType sType + void* pNext + VkBool32 memoryMapPlaced + VkBool32 memoryMapRangePlaced + VkBool32 memoryUnmapReserve + + + VkStructureType sType + void* pNext + VkDeviceSize minPlacedMemoryMapAlignment + + + VkStructureType sType + const void* pNext + void* pPlacedAddress + + + VkStructureType sType + void* pNext + VkBool32 shaderRawAccessChains + + + + + Vulkan enumerant (token) definitions + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - WSI Extensions - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - NVX_device_generated_commands formerly used these enum values, but that extension has been removed - value 31 / name VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT - value 32 / name VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Vendor IDs are now represented as enums instead of the old - <vendorids> tag, allowing them to be included in the - API headers. - - - - - - - - - - - Driver IDs are now represented as enums instead of the old - <driverids> tag, allowing them to be included in the - API headers. + Unlike OpenGL, most tokens in Vulkan are actual typed enumerants in + their own numeric namespaces. The "name" attribute is the C enum + type name, and is pulled in from a type tag definition above + (slightly clunky, but retains the type / enum distinction). "type" + attributes of "enum" or "bitmask" indicate that these values should + be generated inside an appropriate definition. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - bitpos 17-31 are specified by extensions to the original VkAccessFlagBits enum - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - bitpos 17-31 are specified by extensions to the original VkPipelineStageFlagBits enum - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - VkResult - vkCreateInstance - - - const VkInstanceCreateInfo* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkInstance* pInstance - - - - - void - vkDestroyInstance - - - VkInstance - instance - - - const VkAllocationCallbacks* pAllocator - - - all sname:VkPhysicalDevice objects enumerated from pname:instance - - - - - VkResult - vkEnumeratePhysicalDevices - - - VkInstance - instance - - - uint32_t* pPhysicalDeviceCount - - - VkPhysicalDevice* pPhysicalDevices - - - - - PFN_vkVoidFunction - vkGetDeviceProcAddr - - - VkDevice - device - - - const char* pName - - - - - PFN_vkVoidFunction - vkGetInstanceProcAddr - - - VkInstance - instance - - - const char* pName - - - - - void - vkGetPhysicalDeviceProperties - - - VkPhysicalDevice - physicalDevice - - - VkPhysicalDeviceProperties* pProperties - - - - - void - vkGetPhysicalDeviceQueueFamilyProperties - - - VkPhysicalDevice - physicalDevice - - - uint32_t* pQueueFamilyPropertyCount - - - VkQueueFamilyProperties* pQueueFamilyProperties - - - - - void - vkGetPhysicalDeviceMemoryProperties - - - VkPhysicalDevice - physicalDevice - - - VkPhysicalDeviceMemoryProperties* pMemoryProperties - - - - - void - vkGetPhysicalDeviceFeatures - - - VkPhysicalDevice - physicalDevice - - - VkPhysicalDeviceFeatures* pFeatures - - - - - void - vkGetPhysicalDeviceFormatProperties - - - VkPhysicalDevice - physicalDevice - - - VkFormat - format - - - VkFormatProperties* pFormatProperties - - - - - VkResult - vkGetPhysicalDeviceImageFormatProperties - - - VkPhysicalDevice - physicalDevice - - - VkFormat - format - - - VkImageType - type - - - VkImageTiling - tiling - - - VkImageUsageFlags - usage - - - VkImageCreateFlags - flags - - - VkImageFormatProperties* pImageFormatProperties - - - - - VkResult - vkCreateDevice - - - VkPhysicalDevice - physicalDevice - - - const VkDeviceCreateInfo* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkDevice* pDevice - - - - - void - vkDestroyDevice - - - VkDevice - device - - - const VkAllocationCallbacks* pAllocator - - - all sname:VkQueue objects created from pname:device - - - - - VkResult - vkEnumerateInstanceVersion - - - uint32_t* pApiVersion - - - - - VkResult - vkEnumerateInstanceLayerProperties - - - uint32_t* pPropertyCount - - - VkLayerProperties* pProperties - - - - - VkResult - vkEnumerateInstanceExtensionProperties - - - const char* pLayerName - - - uint32_t* pPropertyCount - - - VkExtensionProperties* pProperties - - - - - VkResult - vkEnumerateDeviceLayerProperties - - - VkPhysicalDevice - physicalDevice - - - uint32_t* pPropertyCount - - - VkLayerProperties* pProperties - - - - - VkResult - vkEnumerateDeviceExtensionProperties - - - VkPhysicalDevice - physicalDevice - - - const char* pLayerName - - - uint32_t* pPropertyCount - - - VkExtensionProperties* pProperties - - - - - void - vkGetDeviceQueue - - - VkDevice - device - - - uint32_t - queueFamilyIndex - - - uint32_t - queueIndex - - - VkQueue* pQueue - - - - - VkResult - vkQueueSubmit - - - VkQueue - queue - - - uint32_t - submitCount - - - const VkSubmitInfo* pSubmits - - - VkFence - fence - - - - - VkResult - vkQueueWaitIdle - - - VkQueue - queue - - - - - VkResult - vkDeviceWaitIdle - - - VkDevice - device - - - all sname:VkQueue objects created from pname:device - - - - - VkResult - vkAllocateMemory - - - VkDevice - device - - - const VkMemoryAllocateInfo* pAllocateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkDeviceMemory* pMemory - - - - - void - vkFreeMemory - - - VkDevice - device - - - VkDeviceMemory - memory - - - const VkAllocationCallbacks* pAllocator - - - - - VkResult - vkMapMemory - - - VkDevice - device - - - VkDeviceMemory - memory - - - VkDeviceSize - offset - - - VkDeviceSize - size - - - VkMemoryMapFlags - flags - - - void** ppData - - - - - void - vkUnmapMemory - - - VkDevice - device - - - VkDeviceMemory - memory - - - - - VkResult - vkFlushMappedMemoryRanges - - - VkDevice - device - - - uint32_t - memoryRangeCount - - - const VkMappedMemoryRange* pMemoryRanges - - - - - VkResult - vkInvalidateMappedMemoryRanges - - - VkDevice - device - - - uint32_t - memoryRangeCount - - - const VkMappedMemoryRange* pMemoryRanges - - - - - void - vkGetDeviceMemoryCommitment - - - VkDevice - device - - - VkDeviceMemory - memory - - - VkDeviceSize* pCommittedMemoryInBytes - - - - - void - vkGetBufferMemoryRequirements - - - VkDevice - device - - - VkBuffer - buffer - - - VkMemoryRequirements* pMemoryRequirements - - - - - VkResult - vkBindBufferMemory - - - VkDevice - device - - - VkBuffer - buffer - - - VkDeviceMemory - memory - - - VkDeviceSize - memoryOffset - - - - - void - vkGetImageMemoryRequirements - - - VkDevice - device - - - VkImage - image - - - VkMemoryRequirements* pMemoryRequirements - - - - - VkResult - vkBindImageMemory - - - VkDevice - device - - - VkImage - image - - - VkDeviceMemory - memory - - - VkDeviceSize - memoryOffset - - - - - void - vkGetImageSparseMemoryRequirements - - - VkDevice - device - - - VkImage - image - - - uint32_t* pSparseMemoryRequirementCount - - - VkSparseImageMemoryRequirements* pSparseMemoryRequirements - - - - - void - vkGetPhysicalDeviceSparseImageFormatProperties - - - VkPhysicalDevice - physicalDevice - - - VkFormat - format - - - VkImageType - type - - - VkSampleCountFlagBits - samples - - - VkImageUsageFlags - usage - - - VkImageTiling - tiling - - - uint32_t* pPropertyCount - - - VkSparseImageFormatProperties* pProperties - - - - - VkResult - vkQueueBindSparse - - - VkQueue - queue - - - uint32_t - bindInfoCount - - - const VkBindSparseInfo* pBindInfo - - - VkFence - fence - - - - - VkResult - vkCreateFence - - - VkDevice - device - - - const VkFenceCreateInfo* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkFence* pFence - - - - - void - vkDestroyFence - - - VkDevice - device - - - VkFence - fence - - - const VkAllocationCallbacks* pAllocator - - - - - VkResult - vkResetFences - - - VkDevice - device - - - uint32_t - fenceCount - - - const VkFence* pFences - - - - - VkResult - vkGetFenceStatus - - - VkDevice - device - - - VkFence - fence - - - - - VkResult - vkWaitForFences - - - VkDevice - device - - - uint32_t - fenceCount - - - const VkFence* pFences - - - VkBool32 - waitAll - - - uint64_t - timeout - - - - - VkResult - vkCreateSemaphore - - - VkDevice - device - - - const VkSemaphoreCreateInfo* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkSemaphore* pSemaphore - - - - - void - vkDestroySemaphore - - - VkDevice - device - - - VkSemaphore - semaphore - - - const VkAllocationCallbacks* pAllocator - - - - - VkResult - vkCreateEvent - - - VkDevice - device - - - const VkEventCreateInfo* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkEvent* pEvent - - - - - void - vkDestroyEvent - - - VkDevice - device - - - VkEvent - event - - - const VkAllocationCallbacks* pAllocator - - - - - VkResult - vkGetEventStatus - - - VkDevice - device - - - VkEvent - event - - - - - VkResult - vkSetEvent - - - VkDevice - device - - - VkEvent - event - - - - - VkResult - vkResetEvent - - - VkDevice - device - - - VkEvent - event - - - - - VkResult - vkCreateQueryPool - - - VkDevice - device - - - const VkQueryPoolCreateInfo* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkQueryPool* pQueryPool - - - - - void - vkDestroyQueryPool - - - VkDevice - device - - - VkQueryPool - queryPool - - - const VkAllocationCallbacks* pAllocator - - - - - VkResult - vkGetQueryPoolResults - - - VkDevice - device - - - VkQueryPool - queryPool - - - uint32_t - firstQuery - - - uint32_t - queryCount - - - size_t - dataSize - - - void* pData - - - VkDeviceSize - stride - - - VkQueryResultFlags - flags - - - - - void - vkResetQueryPool - - - VkDevice - device - - - VkQueryPool - queryPool - - - uint32_t - firstQuery - - - uint32_t - queryCount - - - - - - VkResult - vkCreateBuffer - - - VkDevice - device - - - const VkBufferCreateInfo* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkBuffer* pBuffer - - - - - void - vkDestroyBuffer - - - VkDevice - device - - - VkBuffer - buffer - - - const VkAllocationCallbacks* pAllocator - - - - - VkResult - vkCreateBufferView - - - VkDevice - device - - - const VkBufferViewCreateInfo* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkBufferView* pView - - - - - void - vkDestroyBufferView - - - VkDevice - device - - - VkBufferView - bufferView - - - const VkAllocationCallbacks* pAllocator - - - - - VkResult - vkCreateImage - - - VkDevice - device - - - const VkImageCreateInfo* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkImage* pImage - - - - - void - vkDestroyImage - - - VkDevice - device - - - VkImage - image - - - const VkAllocationCallbacks* pAllocator - - - - - void - vkGetImageSubresourceLayout - - - VkDevice - device - - - VkImage - image - - - const VkImageSubresource* pSubresource - - - VkSubresourceLayout* pLayout - - - - - VkResult - vkCreateImageView - - - VkDevice - device - - - const VkImageViewCreateInfo* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkImageView* pView - - - - - void - vkDestroyImageView - - - VkDevice - device - - - VkImageView - imageView - - - const VkAllocationCallbacks* pAllocator - - - - - VkResult - vkCreateShaderModule - - - VkDevice - device - - - const VkShaderModuleCreateInfo* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkShaderModule* pShaderModule - - - - - void - vkDestroyShaderModule - - - VkDevice - device - - - VkShaderModule - shaderModule - - - const VkAllocationCallbacks* pAllocator - - - - - VkResult - vkCreatePipelineCache - - - VkDevice - device - - - const VkPipelineCacheCreateInfo* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkPipelineCache* pPipelineCache - - - - - void - vkDestroyPipelineCache - - - VkDevice - device - - - VkPipelineCache - pipelineCache - - - const VkAllocationCallbacks* pAllocator - - - - - VkResult - vkGetPipelineCacheData - - - VkDevice - device - - - VkPipelineCache - pipelineCache - - - size_t* pDataSize - - - void* pData - - - - - VkResult - vkMergePipelineCaches - - - VkDevice - device - - - VkPipelineCache - dstCache - - - uint32_t - srcCacheCount - - - const VkPipelineCache* pSrcCaches - - - - - VkResult - vkCreateGraphicsPipelines - - - VkDevice - device - - - VkPipelineCache - pipelineCache - - - uint32_t - createInfoCount - - - const VkGraphicsPipelineCreateInfo* pCreateInfos - - - const VkAllocationCallbacks* pAllocator - - - VkPipeline* pPipelines - - - - - VkResult - vkCreateComputePipelines - - - VkDevice - device - - - VkPipelineCache - pipelineCache - - - uint32_t - createInfoCount - - - const VkComputePipelineCreateInfo* pCreateInfos - - - const VkAllocationCallbacks* pAllocator - - - VkPipeline* pPipelines - - - - - VkResult - vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI - - - VkDevice - device - - - VkRenderPass - renderpass - - - VkExtent2D* pMaxWorkgroupSize - - - - - void - vkDestroyPipeline - - - VkDevice - device - - - VkPipeline - pipeline - - - const VkAllocationCallbacks* pAllocator - - - - - VkResult - vkCreatePipelineLayout - - - VkDevice - device - - - const VkPipelineLayoutCreateInfo* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkPipelineLayout* pPipelineLayout - - - - - void - vkDestroyPipelineLayout - - - VkDevice - device - - - VkPipelineLayout - pipelineLayout - - - const VkAllocationCallbacks* pAllocator - - - - - VkResult - vkCreateSampler - - - VkDevice - device - - - const VkSamplerCreateInfo* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkSampler* pSampler - - - - - void - vkDestroySampler - - - VkDevice - device - - - VkSampler - sampler - - - const VkAllocationCallbacks* pAllocator - - - - - VkResult - vkCreateDescriptorSetLayout - - - VkDevice - device - - - const VkDescriptorSetLayoutCreateInfo* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkDescriptorSetLayout* pSetLayout - - - - - void - vkDestroyDescriptorSetLayout - - - VkDevice - device - - - VkDescriptorSetLayout - descriptorSetLayout - - - const VkAllocationCallbacks* pAllocator - - - - - VkResult - vkCreateDescriptorPool - - - VkDevice - device - - - const VkDescriptorPoolCreateInfo* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkDescriptorPool* pDescriptorPool - - - - - void - vkDestroyDescriptorPool - - - VkDevice - device - - - VkDescriptorPool - descriptorPool - - - const VkAllocationCallbacks* pAllocator - - - - - VkResult - vkResetDescriptorPool - - - VkDevice - device - - - VkDescriptorPool - descriptorPool - - - VkDescriptorPoolResetFlags - flags - - - any sname:VkDescriptorSet objects allocated from pname:descriptorPool - - - - - VkResult - vkAllocateDescriptorSets - - - VkDevice - device - - - const VkDescriptorSetAllocateInfo* pAllocateInfo - - - VkDescriptorSet* pDescriptorSets - - - - - VkResult - vkFreeDescriptorSets - - - VkDevice - device - - - VkDescriptorPool - descriptorPool - - - uint32_t - descriptorSetCount - - - const VkDescriptorSet* pDescriptorSets - - - - - void - vkUpdateDescriptorSets - - - VkDevice - device - - - uint32_t - descriptorWriteCount - - - const VkWriteDescriptorSet* pDescriptorWrites - - - uint32_t - descriptorCopyCount - - - const VkCopyDescriptorSet* pDescriptorCopies - - - - - VkResult - vkCreateFramebuffer - - - VkDevice - device - - - const VkFramebufferCreateInfo* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkFramebuffer* pFramebuffer - - - - - void - vkDestroyFramebuffer - - - VkDevice - device - - - VkFramebuffer - framebuffer - - - const VkAllocationCallbacks* pAllocator - - - - - VkResult - vkCreateRenderPass - - - VkDevice - device - - - const VkRenderPassCreateInfo* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkRenderPass* pRenderPass - - - - - void - vkDestroyRenderPass - - - VkDevice - device - - - VkRenderPass - renderPass - - - const VkAllocationCallbacks* pAllocator - - - - - void - vkGetRenderAreaGranularity - - - VkDevice - device - - - VkRenderPass - renderPass - - - VkExtent2D* pGranularity - - - - - VkResult - vkCreateCommandPool - - - VkDevice - device - - - const VkCommandPoolCreateInfo* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkCommandPool* pCommandPool - - - - - void - vkDestroyCommandPool - - - VkDevice - device - - - VkCommandPool - commandPool - - - const VkAllocationCallbacks* pAllocator - - - - - VkResult - vkResetCommandPool - - - VkDevice - device - - - VkCommandPool - commandPool - - - VkCommandPoolResetFlags - flags - - - - - VkResult - vkAllocateCommandBuffers - - - VkDevice - device - - - const VkCommandBufferAllocateInfo* pAllocateInfo - - - VkCommandBuffer* pCommandBuffers - - - - - void - vkFreeCommandBuffers - - - VkDevice - device - - - VkCommandPool - commandPool - - - uint32_t - commandBufferCount - - - const VkCommandBuffer* pCommandBuffers - - - - - VkResult - vkBeginCommandBuffer - - - VkCommandBuffer - commandBuffer - - - const VkCommandBufferBeginInfo* pBeginInfo - - - the sname:VkCommandPool that pname:commandBuffer was allocated from - - - - - VkResult - vkEndCommandBuffer - - - VkCommandBuffer - commandBuffer - - - the sname:VkCommandPool that pname:commandBuffer was allocated from - - - - - VkResult - vkResetCommandBuffer - - - VkCommandBuffer - commandBuffer - - - VkCommandBufferResetFlags - flags - - - the sname:VkCommandPool that pname:commandBuffer was allocated from - - - - - void - vkCmdBindPipeline - - - VkCommandBuffer - commandBuffer - - - VkPipelineBindPoint - pipelineBindPoint - - - VkPipeline - pipeline - - - - - void - vkCmdSetViewport - - - VkCommandBuffer - commandBuffer - - - uint32_t - firstViewport - - - uint32_t - viewportCount - - - const VkViewport* pViewports - - - - - void - vkCmdSetScissor - - - VkCommandBuffer - commandBuffer - - - uint32_t - firstScissor - - - uint32_t - scissorCount - - - const VkRect2D* pScissors - - - - - void - vkCmdSetLineWidth - - - VkCommandBuffer - commandBuffer - - - float - lineWidth - - - - - void - vkCmdSetDepthBias - - - VkCommandBuffer - commandBuffer - - - float - depthBiasConstantFactor - - - float - depthBiasClamp - - - float - depthBiasSlopeFactor - - - - - void - vkCmdSetBlendConstants - - - VkCommandBuffer - commandBuffer - - - const float blendConstants[4] - - - - - void - vkCmdSetDepthBounds - - - VkCommandBuffer - commandBuffer - - - float - minDepthBounds - - - float - maxDepthBounds - - - - - void - vkCmdSetStencilCompareMask - - - VkCommandBuffer - commandBuffer - - - VkStencilFaceFlags - faceMask - - - uint32_t - compareMask - - - - - void - vkCmdSetStencilWriteMask - - - VkCommandBuffer - commandBuffer - - - VkStencilFaceFlags - faceMask - - - uint32_t - writeMask - - - - - void - vkCmdSetStencilReference - - - VkCommandBuffer - commandBuffer - - - VkStencilFaceFlags - faceMask - - - uint32_t - reference - - - - - void - vkCmdBindDescriptorSets - - - VkCommandBuffer - commandBuffer - - - VkPipelineBindPoint - pipelineBindPoint - - - VkPipelineLayout - layout - - - uint32_t - firstSet - - - uint32_t - descriptorSetCount - - - const VkDescriptorSet* pDescriptorSets - - - uint32_t - dynamicOffsetCount - - - const uint32_t* pDynamicOffsets - - - - - void - vkCmdBindIndexBuffer - - - VkCommandBuffer - commandBuffer - - - VkBuffer - buffer - - - VkDeviceSize - offset - - - VkIndexType - indexType - - - - - void - vkCmdBindVertexBuffers - - - VkCommandBuffer - commandBuffer - - - uint32_t - firstBinding - - - uint32_t - bindingCount - - - const VkBuffer* pBuffers - - - const VkDeviceSize* pOffsets - - - - - void - vkCmdDraw - - - VkCommandBuffer - commandBuffer - - - uint32_t - vertexCount - - - uint32_t - instanceCount - - - uint32_t - firstVertex - - - uint32_t - firstInstance - - - - - void - vkCmdDrawIndexed - - - VkCommandBuffer - commandBuffer - - - uint32_t - indexCount - - - uint32_t - instanceCount - - - uint32_t - firstIndex - - - int32_t - vertexOffset - - - uint32_t - firstInstance - - - - - void - vkCmdDrawMultiEXT - - - VkCommandBuffer - commandBuffer - - - uint32_t - drawCount - - - const VkMultiDrawInfoEXT* pVertexInfo - - - uint32_t - instanceCount - - - uint32_t - firstInstance - - - uint32_t - stride - - - - - void - vkCmdDrawMultiIndexedEXT - - - VkCommandBuffer - commandBuffer - - - uint32_t - drawCount - - - const VkMultiDrawIndexedInfoEXT* pIndexInfo - - - uint32_t - instanceCount - - - uint32_t - firstInstance - - - uint32_t - stride - - - const int32_t* pVertexOffset - - - - - void - vkCmdDrawIndirect - - - VkCommandBuffer - commandBuffer - - - VkBuffer - buffer - - - VkDeviceSize - offset - - - uint32_t - drawCount - - - uint32_t - stride - - - - - void - vkCmdDrawIndexedIndirect - - - VkCommandBuffer - commandBuffer - - - VkBuffer - buffer - - - VkDeviceSize - offset - - - uint32_t - drawCount - - - uint32_t - stride - - - - - void - vkCmdDispatch - - - VkCommandBuffer - commandBuffer - - - uint32_t - groupCountX - - - uint32_t - groupCountY - - - uint32_t - groupCountZ - - - - - void - vkCmdDispatchIndirect - - - VkCommandBuffer - commandBuffer - - - VkBuffer - buffer - - - VkDeviceSize - offset - - - - - void - vkCmdSubpassShadingHUAWEI - - - VkCommandBuffer - commandBuffer - - - - - void - vkCmdCopyBuffer - - - VkCommandBuffer - commandBuffer - - - VkBuffer - srcBuffer - - - VkBuffer - dstBuffer - - - uint32_t - regionCount - - - const VkBufferCopy* pRegions - - - - - void - vkCmdCopyImage - - - VkCommandBuffer - commandBuffer - - - VkImage - srcImage - - - VkImageLayout - srcImageLayout - - - VkImage - dstImage - - - VkImageLayout - dstImageLayout - - - uint32_t - regionCount - - - const VkImageCopy* pRegions - - - - - void - vkCmdBlitImage - - - VkCommandBuffer - commandBuffer - - - VkImage - srcImage - - - VkImageLayout - srcImageLayout - - - VkImage - dstImage - - - VkImageLayout - dstImageLayout - - - uint32_t - regionCount - - - const VkImageBlit* pRegions - - - VkFilter - filter - - - - - void - vkCmdCopyBufferToImage - - - VkCommandBuffer - commandBuffer - - - VkBuffer - srcBuffer - - - VkImage - dstImage - - - VkImageLayout - dstImageLayout - - - uint32_t - regionCount - - - const VkBufferImageCopy* pRegions - - - - - void - vkCmdCopyImageToBuffer - - - VkCommandBuffer - commandBuffer - - - VkImage - srcImage - - - VkImageLayout - srcImageLayout - - - VkBuffer - dstBuffer - - - uint32_t - regionCount - - - const VkBufferImageCopy* pRegions - - - - - void - vkCmdUpdateBuffer - - - VkCommandBuffer - commandBuffer - - - VkBuffer - dstBuffer - - - VkDeviceSize - dstOffset - - - VkDeviceSize - dataSize - - - const void* pData - - - - - void - vkCmdFillBuffer - - - VkCommandBuffer - commandBuffer - - - VkBuffer - dstBuffer - - - VkDeviceSize - dstOffset - - - VkDeviceSize - size - - - uint32_t - data - - - - - void - vkCmdClearColorImage - - - VkCommandBuffer - commandBuffer - - - VkImage - image - - - VkImageLayout - imageLayout - - - const VkClearColorValue* pColor - - - uint32_t - rangeCount - - - const VkImageSubresourceRange* pRanges - - - - - void - vkCmdClearDepthStencilImage - - - VkCommandBuffer - commandBuffer - - - VkImage - image - - - VkImageLayout - imageLayout - - - const VkClearDepthStencilValue* pDepthStencil - - - uint32_t - rangeCount - - - const VkImageSubresourceRange* pRanges - - - - - void - vkCmdClearAttachments - - - VkCommandBuffer - commandBuffer - - - uint32_t - attachmentCount - - - const VkClearAttachment* pAttachments - - - uint32_t - rectCount - - - const VkClearRect* pRects - - - - - void - vkCmdResolveImage - - - VkCommandBuffer - commandBuffer - - - VkImage - srcImage - - - VkImageLayout - srcImageLayout - - - VkImage - dstImage - - - VkImageLayout - dstImageLayout - - - uint32_t - regionCount - - - const VkImageResolve* pRegions - - - - - void - vkCmdSetEvent - - - VkCommandBuffer - commandBuffer - - - VkEvent - event - - - VkPipelineStageFlags - stageMask - - - - - void - vkCmdResetEvent - - - VkCommandBuffer - commandBuffer - - - VkEvent - event - - - VkPipelineStageFlags - stageMask - - - - - void - vkCmdWaitEvents - - - VkCommandBuffer - commandBuffer - - - uint32_t - eventCount - - - const VkEvent* pEvents - - - VkPipelineStageFlags - srcStageMask - - - VkPipelineStageFlags - dstStageMask - - - uint32_t - memoryBarrierCount - - - const VkMemoryBarrier* pMemoryBarriers - - - uint32_t - bufferMemoryBarrierCount - - - const VkBufferMemoryBarrier* pBufferMemoryBarriers - - - uint32_t - imageMemoryBarrierCount - - - const VkImageMemoryBarrier* pImageMemoryBarriers - - - - - void - vkCmdPipelineBarrier - - - VkCommandBuffer - commandBuffer - - - VkPipelineStageFlags - srcStageMask - - - VkPipelineStageFlags - dstStageMask - - - VkDependencyFlags - dependencyFlags - - - uint32_t - memoryBarrierCount - - - const VkMemoryBarrier* pMemoryBarriers - - - uint32_t - bufferMemoryBarrierCount - - - const VkBufferMemoryBarrier* pBufferMemoryBarriers - - - uint32_t - imageMemoryBarrierCount - - - const VkImageMemoryBarrier* pImageMemoryBarriers - - - - - void - vkCmdBeginQuery - - - VkCommandBuffer - commandBuffer - - - VkQueryPool - queryPool - - - uint32_t - query - - - VkQueryControlFlags - flags - - - - - void - vkCmdEndQuery - - - VkCommandBuffer - commandBuffer - - - VkQueryPool - queryPool - - - uint32_t - query - - - - - void - vkCmdBeginConditionalRenderingEXT - - - VkCommandBuffer - commandBuffer - - - const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin - - - - - void - vkCmdEndConditionalRenderingEXT - - - VkCommandBuffer - commandBuffer - - - - - void - vkCmdResetQueryPool - - - VkCommandBuffer - commandBuffer - - - VkQueryPool - queryPool - - - uint32_t - firstQuery - - - uint32_t - queryCount - - - - - void - vkCmdWriteTimestamp - - - VkCommandBuffer - commandBuffer - - - VkPipelineStageFlagBits - pipelineStage - - - VkQueryPool - queryPool - - - uint32_t - query - - - - - void - vkCmdCopyQueryPoolResults - - - VkCommandBuffer - commandBuffer - - - VkQueryPool - queryPool - - - uint32_t - firstQuery - - - uint32_t - queryCount - - - VkBuffer - dstBuffer - - - VkDeviceSize - dstOffset - - - VkDeviceSize - stride - - - VkQueryResultFlags - flags - - - - - void - vkCmdPushConstants - - - VkCommandBuffer - commandBuffer - - - VkPipelineLayout - layout - - - VkShaderStageFlags - stageFlags - - - uint32_t - offset - - - uint32_t - size - - - const void* pValues - - - - - void - vkCmdBeginRenderPass - - - VkCommandBuffer - commandBuffer - - - const VkRenderPassBeginInfo* pRenderPassBegin - - - VkSubpassContents - contents - - - - - void - vkCmdNextSubpass - - - VkCommandBuffer - commandBuffer - - - VkSubpassContents - contents - - - - - void - vkCmdEndRenderPass - - - VkCommandBuffer - commandBuffer - - - - - void - vkCmdExecuteCommands - - - VkCommandBuffer - commandBuffer - - - uint32_t - commandBufferCount - - - const VkCommandBuffer* pCommandBuffers - - - - - VkResult - vkCreateAndroidSurfaceKHR - - - VkInstance - instance - - - const VkAndroidSurfaceCreateInfoKHR* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkSurfaceKHR* pSurface - - - - - VkResult - vkGetPhysicalDeviceDisplayPropertiesKHR - - - VkPhysicalDevice - physicalDevice - - - uint32_t* pPropertyCount - - - VkDisplayPropertiesKHR* pProperties - - - - - VkResult - vkGetPhysicalDeviceDisplayPlanePropertiesKHR - - - VkPhysicalDevice - physicalDevice - - - uint32_t* pPropertyCount - - - VkDisplayPlanePropertiesKHR* pProperties - - - - - VkResult - vkGetDisplayPlaneSupportedDisplaysKHR - - - VkPhysicalDevice - physicalDevice - - - uint32_t - planeIndex - - - uint32_t* pDisplayCount - - - VkDisplayKHR* pDisplays - - - - - VkResult - vkGetDisplayModePropertiesKHR - - - VkPhysicalDevice - physicalDevice - - - VkDisplayKHR - display - - - uint32_t* pPropertyCount - - - VkDisplayModePropertiesKHR* pProperties - - - - - VkResult - vkCreateDisplayModeKHR - - - VkPhysicalDevice - physicalDevice - - - VkDisplayKHR - display - - - const VkDisplayModeCreateInfoKHR* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkDisplayModeKHR* pMode - - - - - VkResult - vkGetDisplayPlaneCapabilitiesKHR - - - VkPhysicalDevice - physicalDevice - - - VkDisplayModeKHR - mode - - - uint32_t - planeIndex - - - VkDisplayPlaneCapabilitiesKHR* pCapabilities - - - - - VkResult - vkCreateDisplayPlaneSurfaceKHR - - - VkInstance - instance - - - const VkDisplaySurfaceCreateInfoKHR* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkSurfaceKHR* pSurface - - - - - VkResult - vkCreateSharedSwapchainsKHR - - - VkDevice - device - - - uint32_t - swapchainCount - - - const VkSwapchainCreateInfoKHR* pCreateInfos - - - const VkAllocationCallbacks* pAllocator - - - VkSwapchainKHR* pSwapchains - - - - - void - vkDestroySurfaceKHR - - - VkInstance - instance - - - VkSurfaceKHR - surface - - - const VkAllocationCallbacks* pAllocator - - - - - VkResult - vkGetPhysicalDeviceSurfaceSupportKHR - - - VkPhysicalDevice - physicalDevice - - - uint32_t - queueFamilyIndex - - - VkSurfaceKHR - surface - - - VkBool32* pSupported - - - - - VkResult - vkGetPhysicalDeviceSurfaceCapabilitiesKHR - - - VkPhysicalDevice - physicalDevice - - - VkSurfaceKHR - surface - - - VkSurfaceCapabilitiesKHR* pSurfaceCapabilities - - - - - VkResult - vkGetPhysicalDeviceSurfaceFormatsKHR - - - VkPhysicalDevice - physicalDevice - - - VkSurfaceKHR - surface - - - uint32_t* pSurfaceFormatCount - - - VkSurfaceFormatKHR* pSurfaceFormats - - - - - VkResult - vkGetPhysicalDeviceSurfacePresentModesKHR - - - VkPhysicalDevice - physicalDevice - - - VkSurfaceKHR - surface - - - uint32_t* pPresentModeCount - - - VkPresentModeKHR* pPresentModes - - - - - VkResult - vkCreateSwapchainKHR - - - VkDevice - device - - - const VkSwapchainCreateInfoKHR* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkSwapchainKHR* pSwapchain - - - - - void - vkDestroySwapchainKHR - - - VkDevice - device - - - VkSwapchainKHR - swapchain - - - const VkAllocationCallbacks* pAllocator - - - - - VkResult - vkGetSwapchainImagesKHR - - - VkDevice - device - - - VkSwapchainKHR - swapchain - - - uint32_t* pSwapchainImageCount - - - VkImage* pSwapchainImages - - - - - VkResult - vkAcquireNextImageKHR - - - VkDevice - device - - - VkSwapchainKHR - swapchain - - - uint64_t - timeout - - - VkSemaphore - semaphore - - - VkFence - fence - - - uint32_t* pImageIndex - - - - - VkResult - vkQueuePresentKHR - - - VkQueue - queue - - - const VkPresentInfoKHR* pPresentInfo - - - - - VkResult - vkCreateViSurfaceNN - - - VkInstance - instance - - - const VkViSurfaceCreateInfoNN* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkSurfaceKHR* pSurface - - - - - VkResult - vkCreateWaylandSurfaceKHR - - - VkInstance - instance - - - const VkWaylandSurfaceCreateInfoKHR* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkSurfaceKHR* pSurface - - - - - VkBool32 - vkGetPhysicalDeviceWaylandPresentationSupportKHR - - - VkPhysicalDevice - physicalDevice - - - uint32_t - queueFamilyIndex - - - struct wl_display* display - - - - - VkResult - vkCreateWin32SurfaceKHR - - - VkInstance - instance - - - const VkWin32SurfaceCreateInfoKHR* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkSurfaceKHR* pSurface - - - - - VkBool32 - vkGetPhysicalDeviceWin32PresentationSupportKHR - - - VkPhysicalDevice - physicalDevice - - - uint32_t - queueFamilyIndex - - - - - VkResult - vkCreateXlibSurfaceKHR - - - VkInstance - instance - - - const VkXlibSurfaceCreateInfoKHR* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkSurfaceKHR* pSurface - - - - - VkBool32 - vkGetPhysicalDeviceXlibPresentationSupportKHR - - - VkPhysicalDevice - physicalDevice - - - uint32_t - queueFamilyIndex - - - Display* dpy - - - VisualID - visualID - - - - - VkResult - vkCreateXcbSurfaceKHR - - - VkInstance - instance - - - const VkXcbSurfaceCreateInfoKHR* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkSurfaceKHR* pSurface - - - - - VkBool32 - vkGetPhysicalDeviceXcbPresentationSupportKHR - - - VkPhysicalDevice - physicalDevice - - - uint32_t - queueFamilyIndex - - - xcb_connection_t* connection - - - xcb_visualid_t - visual_id - - - - - VkResult - vkCreateDirectFBSurfaceEXT - - - VkInstance - instance - - - const VkDirectFBSurfaceCreateInfoEXT* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkSurfaceKHR* pSurface - - - - - VkBool32 - vkGetPhysicalDeviceDirectFBPresentationSupportEXT - - - VkPhysicalDevice - physicalDevice - - - uint32_t - queueFamilyIndex - - - IDirectFB* dfb - - - - - VkResult - vkCreateImagePipeSurfaceFUCHSIA - - - VkInstance - instance - - - const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkSurfaceKHR* pSurface - - - - - VkResult - vkCreateStreamDescriptorSurfaceGGP - - - VkInstance - instance - - - const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkSurfaceKHR* pSurface - - - - - VkResult - vkCreateScreenSurfaceQNX - - - VkInstance - instance - - - const VkScreenSurfaceCreateInfoQNX* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkSurfaceKHR* pSurface - - - - - VkBool32 - vkGetPhysicalDeviceScreenPresentationSupportQNX - - - VkPhysicalDevice - physicalDevice - - - uint32_t - queueFamilyIndex - - - struct _screen_window* window - - - - - VkResult - vkCreateDebugReportCallbackEXT - - - VkInstance - instance - - - const VkDebugReportCallbackCreateInfoEXT* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkDebugReportCallbackEXT* pCallback - - - - - void - vkDestroyDebugReportCallbackEXT - - - VkInstance - instance - - - VkDebugReportCallbackEXT - callback - - - const VkAllocationCallbacks* pAllocator - - - - - void - vkDebugReportMessageEXT - - - VkInstance - instance - - - VkDebugReportFlagsEXT - flags - - - VkDebugReportObjectTypeEXT - objectType - - - uint64_t - object - - - size_t - location - - - int32_t - messageCode - - - const char* pLayerPrefix - - - const char* pMessage - - - - - VkResult - vkDebugMarkerSetObjectNameEXT - - - VkDevice - device - - - const VkDebugMarkerObjectNameInfoEXT* pNameInfo - - - - - VkResult - vkDebugMarkerSetObjectTagEXT - - - VkDevice - device - - - const VkDebugMarkerObjectTagInfoEXT* pTagInfo - - - - - void - vkCmdDebugMarkerBeginEXT - - - VkCommandBuffer - commandBuffer - - - const VkDebugMarkerMarkerInfoEXT* pMarkerInfo - - - - - void - vkCmdDebugMarkerEndEXT - - - VkCommandBuffer - commandBuffer - - - - - void - vkCmdDebugMarkerInsertEXT - - - VkCommandBuffer - commandBuffer - - - const VkDebugMarkerMarkerInfoEXT* pMarkerInfo - - - - - VkResult - vkGetPhysicalDeviceExternalImageFormatPropertiesNV - - - VkPhysicalDevice - physicalDevice - - - VkFormat - format - - - VkImageType - type - - - VkImageTiling - tiling - - - VkImageUsageFlags - usage - - - VkImageCreateFlags - flags - - - VkExternalMemoryHandleTypeFlagsNV - externalHandleType - - - VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties - - - - - VkResult - vkGetMemoryWin32HandleNV - - - VkDevice - device - - - VkDeviceMemory - memory - - - VkExternalMemoryHandleTypeFlagsNV - handleType - - - HANDLE* pHandle - - - - - void - vkCmdExecuteGeneratedCommandsNV - - - VkCommandBuffer - commandBuffer - - - VkBool32 - isPreprocessed - - - const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo - - - - - void - vkCmdPreprocessGeneratedCommandsNV - - - VkCommandBuffer - commandBuffer - - - const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo - - - - - void - vkCmdBindPipelineShaderGroupNV - - - VkCommandBuffer - commandBuffer - - - VkPipelineBindPoint - pipelineBindPoint - - - VkPipeline - pipeline - - - uint32_t - groupIndex - - - - - void - vkGetGeneratedCommandsMemoryRequirementsNV - - - VkDevice - device - - - const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo - - - VkMemoryRequirements2* pMemoryRequirements - - - - - VkResult - vkCreateIndirectCommandsLayoutNV - - - VkDevice - device - - - const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkIndirectCommandsLayoutNV* pIndirectCommandsLayout - - - - - void - vkDestroyIndirectCommandsLayoutNV - - - VkDevice - device - - - VkIndirectCommandsLayoutNV - indirectCommandsLayout - - - const VkAllocationCallbacks* pAllocator - - - - - void - vkGetPhysicalDeviceFeatures2 - - - VkPhysicalDevice - physicalDevice - - - VkPhysicalDeviceFeatures2* pFeatures - - - - - - void - vkGetPhysicalDeviceProperties2 - - - VkPhysicalDevice - physicalDevice - - - VkPhysicalDeviceProperties2* pProperties - - - - - - void - vkGetPhysicalDeviceFormatProperties2 - - - VkPhysicalDevice - physicalDevice - - - VkFormat - format - - - VkFormatProperties2* pFormatProperties - - - - - - VkResult - vkGetPhysicalDeviceImageFormatProperties2 - - - VkPhysicalDevice - physicalDevice - - - const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo - - - VkImageFormatProperties2* pImageFormatProperties - - - - - - void - vkGetPhysicalDeviceQueueFamilyProperties2 - - - VkPhysicalDevice - physicalDevice - - - uint32_t* pQueueFamilyPropertyCount - - - VkQueueFamilyProperties2* pQueueFamilyProperties - - - - - - void - vkGetPhysicalDeviceMemoryProperties2 - - - VkPhysicalDevice - physicalDevice - - - VkPhysicalDeviceMemoryProperties2* pMemoryProperties - - - - - - void - vkGetPhysicalDeviceSparseImageFormatProperties2 - - - VkPhysicalDevice - physicalDevice - - - const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo - - - uint32_t* pPropertyCount - - - VkSparseImageFormatProperties2* pProperties - - - - - - void - vkCmdPushDescriptorSetKHR - - - VkCommandBuffer - commandBuffer - - - VkPipelineBindPoint - pipelineBindPoint - - - VkPipelineLayout - layout - - - uint32_t - set - - - uint32_t - descriptorWriteCount - - - const VkWriteDescriptorSet* pDescriptorWrites - - - - - void - vkTrimCommandPool - - - VkDevice - device - - - VkCommandPool - commandPool - - - VkCommandPoolTrimFlags - flags - - - - - - void - vkGetPhysicalDeviceExternalBufferProperties - - - VkPhysicalDevice - physicalDevice - - - const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo - - - VkExternalBufferProperties* pExternalBufferProperties - - - - - - VkResult - vkGetMemoryWin32HandleKHR - - - VkDevice - device - - - const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo - - - HANDLE* pHandle - - - - - VkResult - vkGetMemoryWin32HandlePropertiesKHR - - - VkDevice - device - - - VkExternalMemoryHandleTypeFlagBits - handleType - - - HANDLE - handle - - - VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties - - - - - VkResult - vkGetMemoryFdKHR - - - VkDevice - device - - - const VkMemoryGetFdInfoKHR* pGetFdInfo - - - int* pFd - - - - - VkResult - vkGetMemoryFdPropertiesKHR - - - VkDevice - device - - - VkExternalMemoryHandleTypeFlagBits - handleType - - - int - fd - - - VkMemoryFdPropertiesKHR* pMemoryFdProperties - - - - - VkResult - vkGetMemoryZirconHandleFUCHSIA - - - VkDevice - device - - - const VkMemoryGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo - - - zx_handle_t* pZirconHandle - - - - - VkResult - vkGetMemoryZirconHandlePropertiesFUCHSIA - - - VkDevice - device - - - VkExternalMemoryHandleTypeFlagBits - handleType - - - zx_handle_t - zirconHandle - - - VkMemoryZirconHandlePropertiesFUCHSIA* pMemoryZirconHandleProperties - - - - - VkResult - vkGetMemoryRemoteAddressNV - - - VkDevice - device - - - const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo - - - VkRemoteAddressNV* pAddress - - - - - void - vkGetPhysicalDeviceExternalSemaphoreProperties - - - VkPhysicalDevice - physicalDevice - - - const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo - - - VkExternalSemaphoreProperties* pExternalSemaphoreProperties - - - - - - VkResult - vkGetSemaphoreWin32HandleKHR - - - VkDevice - device - - - const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo - - - HANDLE* pHandle - - - - - VkResult - vkImportSemaphoreWin32HandleKHR - - - VkDevice - device - - - const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo - - - - - VkResult - vkGetSemaphoreFdKHR - - - VkDevice - device - - - const VkSemaphoreGetFdInfoKHR* pGetFdInfo - - - int* pFd - - - - - VkResult - vkImportSemaphoreFdKHR - - - VkDevice - device - - - const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo - - - - - VkResult - vkGetSemaphoreZirconHandleFUCHSIA - - - VkDevice - device - - - const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo - - - zx_handle_t* pZirconHandle - - - - - VkResult - vkImportSemaphoreZirconHandleFUCHSIA - - - VkDevice - device - - - const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo - - - - - void - vkGetPhysicalDeviceExternalFenceProperties - - - VkPhysicalDevice - physicalDevice - - - const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo - - - VkExternalFenceProperties* pExternalFenceProperties - - - - - - VkResult - vkGetFenceWin32HandleKHR - - - VkDevice - device - - - const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo - - - HANDLE* pHandle - - - - - VkResult - vkImportFenceWin32HandleKHR - - - VkDevice - device - - - const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo - - - - - VkResult - vkGetFenceFdKHR - - - VkDevice - device - - - const VkFenceGetFdInfoKHR* pGetFdInfo - - - int* pFd - - - - - VkResult - vkImportFenceFdKHR - - - VkDevice - device - - - const VkImportFenceFdInfoKHR* pImportFenceFdInfo - - - - - VkResult - vkReleaseDisplayEXT - - - VkPhysicalDevice - physicalDevice - - - VkDisplayKHR - display - - - - - VkResult - vkAcquireXlibDisplayEXT - - - VkPhysicalDevice - physicalDevice - - - Display* dpy - - - VkDisplayKHR - display - - - - - VkResult - vkGetRandROutputDisplayEXT - - - VkPhysicalDevice - physicalDevice - - - Display* dpy - - - RROutput - rrOutput - - - VkDisplayKHR* pDisplay - - - - - VkResult - vkAcquireWinrtDisplayNV - - - VkPhysicalDevice - physicalDevice - - - VkDisplayKHR - display - - - - - VkResult - vkGetWinrtDisplayNV - - - VkPhysicalDevice - physicalDevice - - - uint32_t - deviceRelativeId - - - VkDisplayKHR* pDisplay - - - - - VkResult - vkDisplayPowerControlEXT - - - VkDevice - device - - - VkDisplayKHR - display - - - const VkDisplayPowerInfoEXT* pDisplayPowerInfo - - - - - VkResult - vkRegisterDeviceEventEXT - - - VkDevice - device - - - const VkDeviceEventInfoEXT* pDeviceEventInfo - - - const VkAllocationCallbacks* pAllocator - - - VkFence* pFence - - - - - VkResult - vkRegisterDisplayEventEXT - - - VkDevice - device - - - VkDisplayKHR - display - - - const VkDisplayEventInfoEXT* pDisplayEventInfo - - - const VkAllocationCallbacks* pAllocator - - - VkFence* pFence - - - - - VkResult - vkGetSwapchainCounterEXT - - - VkDevice - device - - - VkSwapchainKHR - swapchain - - - VkSurfaceCounterFlagBitsEXT - counter - - - uint64_t* pCounterValue - - - - - VkResult - vkGetPhysicalDeviceSurfaceCapabilities2EXT - - - VkPhysicalDevice - physicalDevice - - - VkSurfaceKHR - surface - - - VkSurfaceCapabilities2EXT* pSurfaceCapabilities - - - - - VkResult - vkEnumeratePhysicalDeviceGroups - - - VkInstance - instance - - - uint32_t* pPhysicalDeviceGroupCount - - - VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties - - - - - - void - vkGetDeviceGroupPeerMemoryFeatures - - - VkDevice - device - - - uint32_t - heapIndex - - - uint32_t - localDeviceIndex - - - uint32_t - remoteDeviceIndex - - - VkPeerMemoryFeatureFlags* pPeerMemoryFeatures - - - - - - VkResult - vkBindBufferMemory2 - - - VkDevice - device - - - uint32_t - bindInfoCount - - - const VkBindBufferMemoryInfo* pBindInfos - - - - - - VkResult - vkBindImageMemory2 - - - VkDevice - device - - - uint32_t - bindInfoCount - - - const VkBindImageMemoryInfo* pBindInfos - - - - - - void - vkCmdSetDeviceMask - - - VkCommandBuffer - commandBuffer - - - uint32_t - deviceMask - - - - - - VkResult - vkGetDeviceGroupPresentCapabilitiesKHR - - - VkDevice - device - - - VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities - - - - - VkResult - vkGetDeviceGroupSurfacePresentModesKHR - - - VkDevice - device - - - VkSurfaceKHR - surface - - - VkDeviceGroupPresentModeFlagsKHR* pModes - - - - - VkResult - vkAcquireNextImage2KHR - - - VkDevice - device - - - const VkAcquireNextImageInfoKHR* pAcquireInfo - - - uint32_t* pImageIndex - - - - - void - vkCmdDispatchBase - - - VkCommandBuffer - commandBuffer - - - uint32_t - baseGroupX - - - uint32_t - baseGroupY - - - uint32_t - baseGroupZ - - - uint32_t - groupCountX - - - uint32_t - groupCountY - - - uint32_t - groupCountZ - - - - - - VkResult - vkGetPhysicalDevicePresentRectanglesKHR - - - VkPhysicalDevice - physicalDevice - - - VkSurfaceKHR - surface - - - uint32_t* pRectCount - - - VkRect2D* pRects - - - - - VkResult - vkCreateDescriptorUpdateTemplate - - - VkDevice - device - - - const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate - - - - - - void - vkDestroyDescriptorUpdateTemplate - - - VkDevice - device - - - VkDescriptorUpdateTemplate - descriptorUpdateTemplate - - - const VkAllocationCallbacks* pAllocator - - - - - - void - vkUpdateDescriptorSetWithTemplate - - - VkDevice - device - - - VkDescriptorSet - descriptorSet - - - VkDescriptorUpdateTemplate - descriptorUpdateTemplate - - - const void* pData - - - - - - void - vkCmdPushDescriptorSetWithTemplateKHR - - - VkCommandBuffer - commandBuffer - - - VkDescriptorUpdateTemplate - descriptorUpdateTemplate - - - VkPipelineLayout - layout - - - uint32_t - set - - - const void* pData - - - - - void - vkSetHdrMetadataEXT - - - VkDevice - device - - - uint32_t - swapchainCount - - - const VkSwapchainKHR* pSwapchains - - - const VkHdrMetadataEXT* pMetadata - - - - - VkResult - vkGetSwapchainStatusKHR - - - VkDevice - device - - - VkSwapchainKHR - swapchain - - - - - VkResult - vkGetRefreshCycleDurationGOOGLE - - - VkDevice - device - - - VkSwapchainKHR - swapchain - - - VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties - - - - - VkResult - vkGetPastPresentationTimingGOOGLE - - - VkDevice - device - - - VkSwapchainKHR - swapchain - - - uint32_t* pPresentationTimingCount - - - VkPastPresentationTimingGOOGLE* pPresentationTimings - - - - - VkResult - vkCreateIOSSurfaceMVK - - - VkInstance - instance - - - const VkIOSSurfaceCreateInfoMVK* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkSurfaceKHR* pSurface - - - - - VkResult - vkCreateMacOSSurfaceMVK - - - VkInstance - instance - - - const VkMacOSSurfaceCreateInfoMVK* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkSurfaceKHR* pSurface - - - - - VkResult - vkCreateMetalSurfaceEXT - - - VkInstance - instance - - - const VkMetalSurfaceCreateInfoEXT* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkSurfaceKHR* pSurface - - - - - void - vkCmdSetViewportWScalingNV - - - VkCommandBuffer - commandBuffer - - - uint32_t - firstViewport - - - uint32_t - viewportCount - - - const VkViewportWScalingNV* pViewportWScalings - - - - - void - vkCmdSetDiscardRectangleEXT - - - VkCommandBuffer - commandBuffer - - - uint32_t - firstDiscardRectangle - - - uint32_t - discardRectangleCount - - - const VkRect2D* pDiscardRectangles - - - - - void - vkCmdSetSampleLocationsEXT - - - VkCommandBuffer - commandBuffer - - - const VkSampleLocationsInfoEXT* pSampleLocationsInfo - - - - - void - vkGetPhysicalDeviceMultisamplePropertiesEXT - - - VkPhysicalDevice - physicalDevice - - - VkSampleCountFlagBits - samples - - - VkMultisamplePropertiesEXT* pMultisampleProperties - - - - - VkResult - vkGetPhysicalDeviceSurfaceCapabilities2KHR - - - VkPhysicalDevice - physicalDevice - - - const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo - - - VkSurfaceCapabilities2KHR* pSurfaceCapabilities - - - - - VkResult - vkGetPhysicalDeviceSurfaceFormats2KHR - - - VkPhysicalDevice - physicalDevice - - - const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo - - - uint32_t* pSurfaceFormatCount - - - VkSurfaceFormat2KHR* pSurfaceFormats - - - - - VkResult - vkGetPhysicalDeviceDisplayProperties2KHR - - - VkPhysicalDevice - physicalDevice - - - uint32_t* pPropertyCount - - - VkDisplayProperties2KHR* pProperties - - - - - VkResult - vkGetPhysicalDeviceDisplayPlaneProperties2KHR - - - VkPhysicalDevice - physicalDevice - - - uint32_t* pPropertyCount - - - VkDisplayPlaneProperties2KHR* pProperties - - - - - VkResult - vkGetDisplayModeProperties2KHR - - - VkPhysicalDevice - physicalDevice - - - VkDisplayKHR - display - - - uint32_t* pPropertyCount - - - VkDisplayModeProperties2KHR* pProperties - - - - - VkResult - vkGetDisplayPlaneCapabilities2KHR - - - VkPhysicalDevice - physicalDevice - - - const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo - - - VkDisplayPlaneCapabilities2KHR* pCapabilities - - - - - void - vkGetBufferMemoryRequirements2 - - - VkDevice - device - - - const VkBufferMemoryRequirementsInfo2* pInfo - - - VkMemoryRequirements2* pMemoryRequirements - - - - - - void - vkGetImageMemoryRequirements2 - - - VkDevice - device - - - const VkImageMemoryRequirementsInfo2* pInfo - - - VkMemoryRequirements2* pMemoryRequirements - - - - - - void - vkGetImageSparseMemoryRequirements2 - - - VkDevice - device - - - const VkImageSparseMemoryRequirementsInfo2* pInfo - - - uint32_t* pSparseMemoryRequirementCount - - - VkSparseImageMemoryRequirements2* pSparseMemoryRequirements - - - - - - void - vkGetDeviceBufferMemoryRequirements - - - VkDevice - device - - - const VkDeviceBufferMemoryRequirements* pInfo - - - VkMemoryRequirements2* pMemoryRequirements - - - - - - void - vkGetDeviceImageMemoryRequirements - - - VkDevice - device - - - const VkDeviceImageMemoryRequirements* pInfo - - - VkMemoryRequirements2* pMemoryRequirements - - - - - - void - vkGetDeviceImageSparseMemoryRequirements - - - VkDevice - device - - - const VkDeviceImageMemoryRequirements* pInfo - - - uint32_t* pSparseMemoryRequirementCount - - - VkSparseImageMemoryRequirements2* pSparseMemoryRequirements - - - - - - VkResult - vkCreateSamplerYcbcrConversion - - - VkDevice - device - - - const VkSamplerYcbcrConversionCreateInfo* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkSamplerYcbcrConversion* pYcbcrConversion - - - - - - void - vkDestroySamplerYcbcrConversion - - - VkDevice - device - - - VkSamplerYcbcrConversion - ycbcrConversion - - - const VkAllocationCallbacks* pAllocator - - - - - - void - vkGetDeviceQueue2 - - - VkDevice - device - - - const VkDeviceQueueInfo2* pQueueInfo - - - VkQueue* pQueue - - - - - VkResult - vkCreateValidationCacheEXT - - - VkDevice - device - - - const VkValidationCacheCreateInfoEXT* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkValidationCacheEXT* pValidationCache - - - - - void - vkDestroyValidationCacheEXT - - - VkDevice - device - - - VkValidationCacheEXT - validationCache - - - const VkAllocationCallbacks* pAllocator - - - - - VkResult - vkGetValidationCacheDataEXT - - - VkDevice - device - - - VkValidationCacheEXT - validationCache - - - size_t* pDataSize - - - void* pData - - - - - VkResult - vkMergeValidationCachesEXT - - - VkDevice - device - - - VkValidationCacheEXT - dstCache - - - uint32_t - srcCacheCount - - - const VkValidationCacheEXT* pSrcCaches - - - - - void - vkGetDescriptorSetLayoutSupport - - - VkDevice - device - - - const VkDescriptorSetLayoutCreateInfo* pCreateInfo - - - VkDescriptorSetLayoutSupport* pSupport - - - - - - VkResult - vkGetSwapchainGrallocUsageANDROID - - - VkDevice - device - - - VkFormat - format - - - VkImageUsageFlags - imageUsage - - - int* grallocUsage - - - - - VkResult - vkGetSwapchainGrallocUsage2ANDROID - - - VkDevice - device - - - VkFormat - format - - - VkImageUsageFlags - imageUsage - - - VkSwapchainImageUsageFlagsANDROID - swapchainImageUsage - - - uint64_t* grallocConsumerUsage - - - uint64_t* grallocProducerUsage - - - - - VkResult - vkAcquireImageANDROID - - - VkDevice - device - - - VkImage - image - - - int - nativeFenceFd - - - VkSemaphore - semaphore - - - VkFence - fence - - - - - VkResult - vkQueueSignalReleaseImageANDROID - - - VkQueue - queue - - - uint32_t - waitSemaphoreCount - - - const VkSemaphore* pWaitSemaphores - - - VkImage - image - - - int* pNativeFenceFd - - - - - VkResult - vkGetShaderInfoAMD - - - VkDevice - device - - - VkPipeline - pipeline - - - VkShaderStageFlagBits - shaderStage - - - VkShaderInfoTypeAMD - infoType - - - size_t* pInfoSize - - - void* pInfo - - - - - void - vkSetLocalDimmingAMD - - - VkDevice - device - - - VkSwapchainKHR - swapChain - - - VkBool32 - localDimmingEnable - - - - - VkResult - vkGetPhysicalDeviceCalibrateableTimeDomainsEXT - - - VkPhysicalDevice - physicalDevice - - - uint32_t* pTimeDomainCount - - - VkTimeDomainEXT* pTimeDomains - - - - - VkResult - vkGetCalibratedTimestampsEXT - - - VkDevice - device - - - uint32_t - timestampCount - - - const VkCalibratedTimestampInfoEXT* pTimestampInfos - - - uint64_t* pTimestamps - - - uint64_t* pMaxDeviation - - - - - VkResult - vkSetDebugUtilsObjectNameEXT - - - VkDevice - device - - - const VkDebugUtilsObjectNameInfoEXT* pNameInfo - - - - - VkResult - vkSetDebugUtilsObjectTagEXT - - - VkDevice - device - - - const VkDebugUtilsObjectTagInfoEXT* pTagInfo - - - - - void - vkQueueBeginDebugUtilsLabelEXT - - - VkQueue - queue - - - const VkDebugUtilsLabelEXT* pLabelInfo - - - - - void - vkQueueEndDebugUtilsLabelEXT - - - VkQueue - queue - - - - - void - vkQueueInsertDebugUtilsLabelEXT - - - VkQueue - queue - - - const VkDebugUtilsLabelEXT* pLabelInfo - - - - - void - vkCmdBeginDebugUtilsLabelEXT - - - VkCommandBuffer - commandBuffer - - - const VkDebugUtilsLabelEXT* pLabelInfo - - - - - void - vkCmdEndDebugUtilsLabelEXT - - - VkCommandBuffer - commandBuffer - - - - - void - vkCmdInsertDebugUtilsLabelEXT - - - VkCommandBuffer - commandBuffer - - - const VkDebugUtilsLabelEXT* pLabelInfo - - - - - VkResult - vkCreateDebugUtilsMessengerEXT - - - VkInstance - instance - - - const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkDebugUtilsMessengerEXT* pMessenger - - - - - void - vkDestroyDebugUtilsMessengerEXT - - - VkInstance - instance - - - VkDebugUtilsMessengerEXT - messenger - - - const VkAllocationCallbacks* pAllocator - - - - - void - vkSubmitDebugUtilsMessageEXT - - - VkInstance - instance - - - VkDebugUtilsMessageSeverityFlagBitsEXT - messageSeverity - - - VkDebugUtilsMessageTypeFlagsEXT - messageTypes - - - const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData - - - - - VkResult - vkGetMemoryHostPointerPropertiesEXT - - - VkDevice - device - - - VkExternalMemoryHandleTypeFlagBits - handleType - - - const void* pHostPointer - - - VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties - - - - - void - vkCmdWriteBufferMarkerAMD - - - VkCommandBuffer - commandBuffer - - - VkPipelineStageFlagBits - pipelineStage - - - VkBuffer - dstBuffer - - - VkDeviceSize - dstOffset - - - uint32_t - marker - - - - - VkResult - vkCreateRenderPass2 - - - VkDevice - device - - - const VkRenderPassCreateInfo2* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkRenderPass* pRenderPass - - - - - - void - vkCmdBeginRenderPass2 - - - VkCommandBuffer - commandBuffer - - - const VkRenderPassBeginInfo* pRenderPassBegin - - - const VkSubpassBeginInfo* pSubpassBeginInfo - - - - - - void - vkCmdNextSubpass2 - - - VkCommandBuffer - commandBuffer - - - const VkSubpassBeginInfo* pSubpassBeginInfo - - - const VkSubpassEndInfo* pSubpassEndInfo - - - - - - void - vkCmdEndRenderPass2 - - - VkCommandBuffer - commandBuffer - - - const VkSubpassEndInfo* pSubpassEndInfo - - - - - - VkResult - vkGetSemaphoreCounterValue - - - VkDevice - device - - - VkSemaphore - semaphore - - - uint64_t* pValue - - - - - - VkResult - vkWaitSemaphores - - - VkDevice - device - - - const VkSemaphoreWaitInfo* pWaitInfo - - - uint64_t - timeout - - - - - - VkResult - vkSignalSemaphore - - - VkDevice - device - - - const VkSemaphoreSignalInfo* pSignalInfo - - - - - - VkResult - vkGetAndroidHardwareBufferPropertiesANDROID - - - VkDevice - device - - - const struct AHardwareBuffer* buffer - - - VkAndroidHardwareBufferPropertiesANDROID* pProperties - - - - - VkResult - vkGetMemoryAndroidHardwareBufferANDROID - - - VkDevice - device - - - const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo - - - struct AHardwareBuffer** pBuffer - - - - - void - vkCmdDrawIndirectCount - - - VkCommandBuffer - commandBuffer - - - VkBuffer - buffer - - - VkDeviceSize - offset - - - VkBuffer - countBuffer - - - VkDeviceSize - countBufferOffset - - - uint32_t - maxDrawCount - - - uint32_t - stride - - - - - - - void - vkCmdDrawIndexedIndirectCount - - - VkCommandBuffer - commandBuffer - - - VkBuffer - buffer - - - VkDeviceSize - offset - - - VkBuffer - countBuffer - - - VkDeviceSize - countBufferOffset - - - uint32_t - maxDrawCount - - - uint32_t - stride - - - - - - - void - vkCmdSetCheckpointNV - - - VkCommandBuffer - commandBuffer - - - const void* pCheckpointMarker - - - - - void - vkGetQueueCheckpointDataNV - - - VkQueue - queue - - - uint32_t* pCheckpointDataCount - - - VkCheckpointDataNV* pCheckpointData - - - - - void - vkCmdBindTransformFeedbackBuffersEXT - - - VkCommandBuffer - commandBuffer - - - uint32_t - firstBinding - - - uint32_t - bindingCount - - - const VkBuffer* pBuffers - - - const VkDeviceSize* pOffsets - - - const VkDeviceSize* pSizes - - - - - void - vkCmdBeginTransformFeedbackEXT - - - VkCommandBuffer - commandBuffer - - - uint32_t - firstCounterBuffer - - - uint32_t - counterBufferCount - - - const VkBuffer* pCounterBuffers - - - const VkDeviceSize* pCounterBufferOffsets - - - - - void - vkCmdEndTransformFeedbackEXT - - - VkCommandBuffer - commandBuffer - - - uint32_t - firstCounterBuffer - - - uint32_t - counterBufferCount - - - const VkBuffer* pCounterBuffers - - - const VkDeviceSize* pCounterBufferOffsets - - - - - void - vkCmdBeginQueryIndexedEXT - - - VkCommandBuffer - commandBuffer - - - VkQueryPool - queryPool - - - uint32_t - query - - - VkQueryControlFlags - flags - - - uint32_t - index - - - - - void - vkCmdEndQueryIndexedEXT - - - VkCommandBuffer - commandBuffer - - - VkQueryPool - queryPool - - - uint32_t - query - - - uint32_t - index - - - - - void - vkCmdDrawIndirectByteCountEXT - - - VkCommandBuffer - commandBuffer - - - uint32_t - instanceCount - - - uint32_t - firstInstance - - - VkBuffer - counterBuffer - - - VkDeviceSize - counterBufferOffset - - - uint32_t - counterOffset - - - uint32_t - vertexStride - - - - - void - vkCmdSetExclusiveScissorNV - - - VkCommandBuffer - commandBuffer - - - uint32_t - firstExclusiveScissor - - - uint32_t - exclusiveScissorCount - - - const VkRect2D* pExclusiveScissors - - - - - void - vkCmdBindShadingRateImageNV - - - VkCommandBuffer - commandBuffer - - - VkImageView - imageView - - - VkImageLayout - imageLayout - - - - - void - vkCmdSetViewportShadingRatePaletteNV - - - VkCommandBuffer - commandBuffer - - - uint32_t - firstViewport - - - uint32_t - viewportCount - - - const VkShadingRatePaletteNV* pShadingRatePalettes - - - - - void - vkCmdSetCoarseSampleOrderNV - - - VkCommandBuffer - commandBuffer - - - VkCoarseSampleOrderTypeNV - sampleOrderType - - - uint32_t - customSampleOrderCount - - - const VkCoarseSampleOrderCustomNV* pCustomSampleOrders - - - - - void - vkCmdDrawMeshTasksNV - - - VkCommandBuffer - commandBuffer - - - uint32_t - taskCount - - - uint32_t - firstTask - - - - - void - vkCmdDrawMeshTasksIndirectNV - - - VkCommandBuffer - commandBuffer - - - VkBuffer - buffer - - - VkDeviceSize - offset - - - uint32_t - drawCount - - - uint32_t - stride - - - - - void - vkCmdDrawMeshTasksIndirectCountNV - - - VkCommandBuffer - commandBuffer - - - VkBuffer - buffer - - - VkDeviceSize - offset - - - VkBuffer - countBuffer - - - VkDeviceSize - countBufferOffset - - - uint32_t - maxDrawCount - - - uint32_t - stride - - - - - VkResult - vkCompileDeferredNV - - - VkDevice - device - - - VkPipeline - pipeline - - - uint32_t - shader - - - - - VkResult - vkCreateAccelerationStructureNV - - - VkDevice - device - - - const VkAccelerationStructureCreateInfoNV* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkAccelerationStructureNV* pAccelerationStructure - - - - - void - vkCmdBindInvocationMaskHUAWEI - - - VkCommandBuffer - commandBuffer - - - VkImageView - imageView - - - VkImageLayout - imageLayout - - - - - void - vkDestroyAccelerationStructureKHR - - - VkDevice - device - - - VkAccelerationStructureKHR - accelerationStructure - - - const VkAllocationCallbacks* pAllocator - - - - - void - vkDestroyAccelerationStructureNV - - - VkDevice - device - - - VkAccelerationStructureNV - accelerationStructure - - - const VkAllocationCallbacks* pAllocator - - - - - void - vkGetAccelerationStructureMemoryRequirementsNV - - - VkDevice - device - - - const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo - - - VkMemoryRequirements2KHR* pMemoryRequirements - - - - - VkResult - vkBindAccelerationStructureMemoryNV - - - VkDevice - device - - - uint32_t - bindInfoCount - - - const VkBindAccelerationStructureMemoryInfoNV* pBindInfos - - - - - void - vkCmdCopyAccelerationStructureNV - - - VkCommandBuffer - commandBuffer - - - VkAccelerationStructureNV - dst - - - VkAccelerationStructureNV - src - - - VkCopyAccelerationStructureModeKHR - mode - - - - - void - vkCmdCopyAccelerationStructureKHR - - - VkCommandBuffer - commandBuffer - - - const VkCopyAccelerationStructureInfoKHR* pInfo - - - - - VkResult - vkCopyAccelerationStructureKHR - - - VkDevice - device - - - VkDeferredOperationKHR - deferredOperation - - - const VkCopyAccelerationStructureInfoKHR* pInfo - - - - - void - vkCmdCopyAccelerationStructureToMemoryKHR - - - VkCommandBuffer - commandBuffer - - - const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo - - - - - VkResult - vkCopyAccelerationStructureToMemoryKHR - - - VkDevice - device - - - VkDeferredOperationKHR - deferredOperation - - - const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo - - - - - void - vkCmdCopyMemoryToAccelerationStructureKHR - - - VkCommandBuffer - commandBuffer - - - const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo - - - - - VkResult - vkCopyMemoryToAccelerationStructureKHR - - - VkDevice - device - - - VkDeferredOperationKHR - deferredOperation - - - const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo - - - - - void - vkCmdWriteAccelerationStructuresPropertiesKHR - - - VkCommandBuffer - commandBuffer - - - uint32_t - accelerationStructureCount - - - const VkAccelerationStructureKHR* pAccelerationStructures - - - VkQueryType - queryType - - - VkQueryPool - queryPool - - - uint32_t - firstQuery - - - - - void - vkCmdWriteAccelerationStructuresPropertiesNV - - - VkCommandBuffer - commandBuffer - - - uint32_t - accelerationStructureCount - - - const VkAccelerationStructureNV* pAccelerationStructures - - - VkQueryType - queryType - - - VkQueryPool - queryPool - - - uint32_t - firstQuery - - - - - void - vkCmdBuildAccelerationStructureNV - - - VkCommandBuffer - commandBuffer - - - const VkAccelerationStructureInfoNV* pInfo - - - VkBuffer - instanceData - - - VkDeviceSize - instanceOffset - - - VkBool32 - update - - - VkAccelerationStructureNV - dst - - - VkAccelerationStructureNV - src - - - VkBuffer - scratch - - - VkDeviceSize - scratchOffset - - - - - VkResult - vkWriteAccelerationStructuresPropertiesKHR - - - VkDevice - device - - - uint32_t - accelerationStructureCount - - - const VkAccelerationStructureKHR* pAccelerationStructures - - - VkQueryType - queryType - - - size_t - dataSize - - - void* pData - - - size_t - stride - - - - - void - vkCmdTraceRaysKHR - - - VkCommandBuffer - commandBuffer - - - const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable - - - const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable - - - const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable - - - const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable - - - uint32_t - width - - - uint32_t - height - - - uint32_t - depth - - - - - void - vkCmdTraceRaysNV - - - VkCommandBuffer - commandBuffer - - - VkBuffer - raygenShaderBindingTableBuffer - - - VkDeviceSize - raygenShaderBindingOffset - - - VkBuffer - missShaderBindingTableBuffer - - - VkDeviceSize - missShaderBindingOffset - - - VkDeviceSize - missShaderBindingStride - - - VkBuffer - hitShaderBindingTableBuffer - - - VkDeviceSize - hitShaderBindingOffset - - - VkDeviceSize - hitShaderBindingStride - - - VkBuffer - callableShaderBindingTableBuffer - - - VkDeviceSize - callableShaderBindingOffset - - - VkDeviceSize - callableShaderBindingStride - - - uint32_t - width - - - uint32_t - height - - - uint32_t - depth - - - - - VkResult - vkGetRayTracingShaderGroupHandlesKHR - - - VkDevice - device - - - VkPipeline - pipeline - - - uint32_t - firstGroup - - - uint32_t - groupCount - - - size_t - dataSize - - - void* pData - - - - - - VkResult - vkGetRayTracingCaptureReplayShaderGroupHandlesKHR - - - VkDevice - device - - - VkPipeline - pipeline - - - uint32_t - firstGroup - - - uint32_t - groupCount - - - size_t - dataSize - - - void* pData - - - - - VkResult - vkGetAccelerationStructureHandleNV - - - VkDevice - device - - - VkAccelerationStructureNV - accelerationStructure - - - size_t - dataSize - - - void* pData - - - - - VkResult - vkCreateRayTracingPipelinesNV - - - VkDevice - device - - - VkPipelineCache - pipelineCache - - - uint32_t - createInfoCount - - - const VkRayTracingPipelineCreateInfoNV* pCreateInfos - - - const VkAllocationCallbacks* pAllocator - - - VkPipeline* pPipelines - - - - - VkResult - vkCreateRayTracingPipelinesKHR - - - VkDevice - device - - - VkDeferredOperationKHR - deferredOperation - - - VkPipelineCache - pipelineCache - - - uint32_t - createInfoCount - - - const VkRayTracingPipelineCreateInfoKHR* pCreateInfos - - - const VkAllocationCallbacks* pAllocator - - - VkPipeline* pPipelines - - - - - VkResult - vkGetPhysicalDeviceCooperativeMatrixPropertiesNV - - - VkPhysicalDevice - physicalDevice - - - uint32_t* pPropertyCount - - - VkCooperativeMatrixPropertiesNV* pProperties - - - - - void - vkCmdTraceRaysIndirectKHR - - - VkCommandBuffer - commandBuffer - - - const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable - - - const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable - - - const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable - - - const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable - - - VkDeviceAddress - indirectDeviceAddress - - - - - void - vkCmdTraceRaysIndirect2KHR - - - VkCommandBuffer - commandBuffer - - - VkDeviceAddress - indirectDeviceAddress - - - - - void - vkGetDeviceAccelerationStructureCompatibilityKHR - - - VkDevice - device - - - const VkAccelerationStructureVersionInfoKHR* pVersionInfo - - - VkAccelerationStructureCompatibilityKHR* pCompatibility - - - - - VkDeviceSize - vkGetRayTracingShaderGroupStackSizeKHR - - - VkDevice - device - - - VkPipeline - pipeline - - - uint32_t - group - - - VkShaderGroupShaderKHR - groupShader - - - - - void - vkCmdSetRayTracingPipelineStackSizeKHR - - - VkCommandBuffer - commandBuffer - - - uint32_t - pipelineStackSize - - - - - uint32_t - vkGetImageViewHandleNVX - - - VkDevice - device - - - const VkImageViewHandleInfoNVX* pInfo - - - - - VkResult - vkGetImageViewAddressNVX - - - VkDevice - device - - - VkImageView - imageView - - - VkImageViewAddressPropertiesNVX* pProperties - - - - - VkResult - vkGetPhysicalDeviceSurfacePresentModes2EXT - - - VkPhysicalDevice - physicalDevice - - - const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo - - - uint32_t* pPresentModeCount - - - VkPresentModeKHR* pPresentModes - - - - - VkResult - vkGetDeviceGroupSurfacePresentModes2EXT - - - VkDevice - device - - - const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo - - - VkDeviceGroupPresentModeFlagsKHR* pModes - - - - - VkResult - vkAcquireFullScreenExclusiveModeEXT - - - VkDevice - device - - - VkSwapchainKHR - swapchain - - - - - VkResult - vkReleaseFullScreenExclusiveModeEXT - - - VkDevice - device - - - VkSwapchainKHR - swapchain - - - - - VkResult - vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR - - - VkPhysicalDevice - physicalDevice - - - uint32_t - queueFamilyIndex - - - uint32_t* pCounterCount - - - VkPerformanceCounterKHR* pCounters - - - VkPerformanceCounterDescriptionKHR* pCounterDescriptions - - - - - void - vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR - - - VkPhysicalDevice - physicalDevice - - - const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo - - - uint32_t* pNumPasses - - - - - VkResult - vkAcquireProfilingLockKHR - - - VkDevice - device - - - const VkAcquireProfilingLockInfoKHR* pInfo - - - - - void - vkReleaseProfilingLockKHR - - - VkDevice - device - - - - - VkResult - vkGetImageDrmFormatModifierPropertiesEXT - - - VkDevice - device - - - VkImage - image - - - VkImageDrmFormatModifierPropertiesEXT* pProperties - - - - - uint64_t - vkGetBufferOpaqueCaptureAddress - - - VkDevice - device - - - const VkBufferDeviceAddressInfo* pInfo - - - - - - VkDeviceAddress - vkGetBufferDeviceAddress - - - VkDevice - device - - - const VkBufferDeviceAddressInfo* pInfo - - - - - - - VkResult - vkCreateHeadlessSurfaceEXT - - - VkInstance - instance - - - const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkSurfaceKHR* pSurface - - - - - VkResult - vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV - - - VkPhysicalDevice - physicalDevice - - - uint32_t* pCombinationCount - - - VkFramebufferMixedSamplesCombinationNV* pCombinations - - - - - VkResult - vkInitializePerformanceApiINTEL - - - VkDevice - device - - - const VkInitializePerformanceApiInfoINTEL* pInitializeInfo - - - - - void - vkUninitializePerformanceApiINTEL - - - VkDevice - device - - - - - VkResult - vkCmdSetPerformanceMarkerINTEL - - - VkCommandBuffer - commandBuffer - - - const VkPerformanceMarkerInfoINTEL* pMarkerInfo - - - - - VkResult - vkCmdSetPerformanceStreamMarkerINTEL - - - VkCommandBuffer - commandBuffer - - - const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo - - - - - VkResult - vkCmdSetPerformanceOverrideINTEL - - - VkCommandBuffer - commandBuffer - - - const VkPerformanceOverrideInfoINTEL* pOverrideInfo - - - - - VkResult - vkAcquirePerformanceConfigurationINTEL - - - VkDevice - device - - - const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo - - - VkPerformanceConfigurationINTEL* pConfiguration - - - - - VkResult - vkReleasePerformanceConfigurationINTEL - - - VkDevice - device - - - VkPerformanceConfigurationINTEL - configuration - - - - - VkResult - vkQueueSetPerformanceConfigurationINTEL - - - VkQueue - queue - - - VkPerformanceConfigurationINTEL - configuration - - - - - VkResult - vkGetPerformanceParameterINTEL - - - VkDevice - device - - - VkPerformanceParameterTypeINTEL - parameter - - - VkPerformanceValueINTEL* pValue - - - - - uint64_t - vkGetDeviceMemoryOpaqueCaptureAddress - - - VkDevice - device - - - const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo - - - - - - VkResult - vkGetPipelineExecutablePropertiesKHR - - - VkDevice - device - - - const VkPipelineInfoKHR* pPipelineInfo - - - uint32_t* pExecutableCount - - - VkPipelineExecutablePropertiesKHR* pProperties - - - - - VkResult - vkGetPipelineExecutableStatisticsKHR - - - VkDevice - device - - - const VkPipelineExecutableInfoKHR* pExecutableInfo - - - uint32_t* pStatisticCount - - - VkPipelineExecutableStatisticKHR* pStatistics - - - - - VkResult - vkGetPipelineExecutableInternalRepresentationsKHR - - - VkDevice - device - - - const VkPipelineExecutableInfoKHR* pExecutableInfo - - - uint32_t* pInternalRepresentationCount - - - VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations - - - - - void - vkCmdSetLineStippleEXT - - - VkCommandBuffer - commandBuffer - - - uint32_t - lineStippleFactor - - - uint16_t - lineStipplePattern - - - - - VkResult - vkGetPhysicalDeviceToolProperties - - - VkPhysicalDevice - physicalDevice - - - uint32_t* pToolCount - - - VkPhysicalDeviceToolProperties* pToolProperties - - - - - - VkResult - vkCreateAccelerationStructureKHR - - - VkDevice - device - - - const VkAccelerationStructureCreateInfoKHR* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkAccelerationStructureKHR* pAccelerationStructure - - - - - void - vkCmdBuildAccelerationStructuresKHR - - - VkCommandBuffer - commandBuffer - - - uint32_t - infoCount - - - const VkAccelerationStructureBuildGeometryInfoKHR* pInfos - - - const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos - - - - - void - vkCmdBuildAccelerationStructuresIndirectKHR - - - VkCommandBuffer - commandBuffer - - - uint32_t - infoCount - - - const VkAccelerationStructureBuildGeometryInfoKHR* pInfos - - - const VkDeviceAddress* pIndirectDeviceAddresses - - - const uint32_t* pIndirectStrides - - - const uint32_t* const* ppMaxPrimitiveCounts - - - - - VkResult - vkBuildAccelerationStructuresKHR - - - VkDevice - device - - - VkDeferredOperationKHR - deferredOperation - - - uint32_t - infoCount - - - const VkAccelerationStructureBuildGeometryInfoKHR* pInfos - - - const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos - - - - - VkDeviceAddress - vkGetAccelerationStructureDeviceAddressKHR - - - VkDevice - device - - - const VkAccelerationStructureDeviceAddressInfoKHR* pInfo - - - - - VkResult - vkCreateDeferredOperationKHR - - - VkDevice - device - - - const VkAllocationCallbacks* pAllocator - - - VkDeferredOperationKHR* pDeferredOperation - - - - - void - vkDestroyDeferredOperationKHR - - - VkDevice - device - - - VkDeferredOperationKHR - operation - - - const VkAllocationCallbacks* pAllocator - - - - - uint32_t - vkGetDeferredOperationMaxConcurrencyKHR - - - VkDevice - device - - - VkDeferredOperationKHR - operation - - - - - VkResult - vkGetDeferredOperationResultKHR - - - VkDevice - device - - - VkDeferredOperationKHR - operation - - - - - VkResult - vkDeferredOperationJoinKHR - - - VkDevice - device - - - VkDeferredOperationKHR - operation - - - - - void - vkCmdSetCullMode - - - VkCommandBuffer - commandBuffer - - - VkCullModeFlags - cullMode - - - - - - void - vkCmdSetFrontFace - - - VkCommandBuffer - commandBuffer - - - VkFrontFace - frontFace - - - - - - void - vkCmdSetPrimitiveTopology - - - VkCommandBuffer - commandBuffer - - - VkPrimitiveTopology - primitiveTopology - - - - - - void - vkCmdSetViewportWithCount - - - VkCommandBuffer - commandBuffer - - - uint32_t - viewportCount - - - const VkViewport* pViewports - - - - - - void - vkCmdSetScissorWithCount - - - VkCommandBuffer - commandBuffer - - - uint32_t - scissorCount - - - const VkRect2D* pScissors - - - - - - void - vkCmdBindVertexBuffers2 - - - VkCommandBuffer - commandBuffer - - - uint32_t - firstBinding - - - uint32_t - bindingCount - - - const VkBuffer* pBuffers - - - const VkDeviceSize* pOffsets - - - const VkDeviceSize* pSizes - - - const VkDeviceSize* pStrides - - - - - - void - vkCmdSetDepthTestEnable - - - VkCommandBuffer - commandBuffer - - - VkBool32 - depthTestEnable - - - - - - void - vkCmdSetDepthWriteEnable - - - VkCommandBuffer - commandBuffer - - - VkBool32 - depthWriteEnable - - - - - - void - vkCmdSetDepthCompareOp - - - VkCommandBuffer - commandBuffer - - - VkCompareOp - depthCompareOp - - - - - - void - vkCmdSetDepthBoundsTestEnable - - - VkCommandBuffer - commandBuffer - - - VkBool32 - depthBoundsTestEnable - - - - - - void - vkCmdSetStencilTestEnable - - - VkCommandBuffer - commandBuffer - - - VkBool32 - stencilTestEnable - - - - - - void - vkCmdSetStencilOp - - - VkCommandBuffer - commandBuffer - - - VkStencilFaceFlags - faceMask - - - VkStencilOp - failOp - - - VkStencilOp - passOp - - - VkStencilOp - depthFailOp - - - VkCompareOp - compareOp - - - - - - void - vkCmdSetPatchControlPointsEXT - - - VkCommandBuffer - commandBuffer - - - uint32_t - patchControlPoints - - - - - void - vkCmdSetRasterizerDiscardEnable - - - VkCommandBuffer - commandBuffer - - - VkBool32 - rasterizerDiscardEnable - - - - - - void - vkCmdSetDepthBiasEnable - - - VkCommandBuffer - commandBuffer - - - VkBool32 - depthBiasEnable - - - - - - void - vkCmdSetLogicOpEXT - - - VkCommandBuffer - commandBuffer - - - VkLogicOp - logicOp - - - - - void - vkCmdSetPrimitiveRestartEnable - - - VkCommandBuffer - commandBuffer - - - VkBool32 - primitiveRestartEnable - - - - - - VkResult - vkCreatePrivateDataSlot - - - VkDevice - device - - - const VkPrivateDataSlotCreateInfo* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkPrivateDataSlot* pPrivateDataSlot - - - - - - void - vkDestroyPrivateDataSlot - - - VkDevice - device - - - VkPrivateDataSlot - privateDataSlot - - - const VkAllocationCallbacks* pAllocator - - - - - - VkResult - vkSetPrivateData - - - VkDevice - device - - - VkObjectType - objectType - - - uint64_t - objectHandle - - - VkPrivateDataSlot - privateDataSlot - - - uint64_t - data - - - - - - void - vkGetPrivateData - - - VkDevice - device - - - VkObjectType - objectType - - - uint64_t - objectHandle - - - VkPrivateDataSlot - privateDataSlot - - - uint64_t* pData - - - - - - void - vkCmdCopyBuffer2 - - - VkCommandBuffer - commandBuffer - - - const VkCopyBufferInfo2* pCopyBufferInfo - - - - - - void - vkCmdCopyImage2 - - - VkCommandBuffer - commandBuffer - - - const VkCopyImageInfo2* pCopyImageInfo - - - - - - void - vkCmdBlitImage2 - - - VkCommandBuffer - commandBuffer - - - const VkBlitImageInfo2* pBlitImageInfo - - - - - - void - vkCmdCopyBufferToImage2 - - - VkCommandBuffer - commandBuffer - - - const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo - - - - - - void - vkCmdCopyImageToBuffer2 - - - VkCommandBuffer - commandBuffer - - - const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo - - - - - - void - vkCmdResolveImage2 - - - VkCommandBuffer - commandBuffer - - - const VkResolveImageInfo2* pResolveImageInfo - - - - - - void - vkCmdSetFragmentShadingRateKHR - - - VkCommandBuffer - commandBuffer - - - const VkExtent2D* pFragmentSize - - - const VkFragmentShadingRateCombinerOpKHR combinerOps[2] - - - - - VkResult - vkGetPhysicalDeviceFragmentShadingRatesKHR - - - VkPhysicalDevice - physicalDevice - - - uint32_t* pFragmentShadingRateCount - - - VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates - - - - - void - vkCmdSetFragmentShadingRateEnumNV - - - VkCommandBuffer - commandBuffer - - - VkFragmentShadingRateNV - shadingRate - - - const VkFragmentShadingRateCombinerOpKHR combinerOps[2] - - - - - void - vkGetAccelerationStructureBuildSizesKHR - - - VkDevice - device - - - VkAccelerationStructureBuildTypeKHR - buildType - - - const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo - - - const uint32_t* pMaxPrimitiveCounts - - - VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo - - - - - void - vkCmdSetVertexInputEXT - - - VkCommandBuffer - commandBuffer - - - uint32_t - vertexBindingDescriptionCount - - - const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions - - - uint32_t - vertexAttributeDescriptionCount - - - const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions - - - - - void - vkCmdSetColorWriteEnableEXT - - - VkCommandBuffer - commandBuffer - - - uint32_t - attachmentCount - - - const VkBool32* pColorWriteEnables - - - - - void - vkCmdSetEvent2 - - - VkCommandBuffer - commandBuffer - - - VkEvent - event - - - const VkDependencyInfo* pDependencyInfo - - - - - - void - vkCmdResetEvent2 - - - VkCommandBuffer - commandBuffer - - - VkEvent - event - - - VkPipelineStageFlags2 - stageMask - - - - - - void - vkCmdWaitEvents2 - - - VkCommandBuffer - commandBuffer - - - uint32_t - eventCount - - - const VkEvent* pEvents - - - const VkDependencyInfo* pDependencyInfos - - - - - - void - vkCmdPipelineBarrier2 - - - VkCommandBuffer - commandBuffer - - - const VkDependencyInfo* pDependencyInfo - - - - - - VkResult - vkQueueSubmit2 - - - VkQueue - queue - - - uint32_t - submitCount - - - const VkSubmitInfo2* pSubmits - - - VkFence - fence - - - - - - void - vkCmdWriteTimestamp2 - - - VkCommandBuffer - commandBuffer - - - VkPipelineStageFlags2 - stage - - - VkQueryPool - queryPool - - - uint32_t - query - - - - - - void - vkCmdWriteBufferMarker2AMD - - - VkCommandBuffer - commandBuffer - - - VkPipelineStageFlags2 - stage - - - VkBuffer - dstBuffer - - - VkDeviceSize - dstOffset - - - uint32_t - marker - - - - - void - vkGetQueueCheckpointData2NV - - - VkQueue - queue - - - uint32_t* pCheckpointDataCount - - - VkCheckpointData2NV* pCheckpointData - - - - - VkResult - vkGetPhysicalDeviceVideoCapabilitiesKHR - - - VkPhysicalDevice - physicalDevice - - - const VkVideoProfileKHR* pVideoProfile - - - VkVideoCapabilitiesKHR* pCapabilities - - - - - VkResult - vkGetPhysicalDeviceVideoFormatPropertiesKHR - - - VkPhysicalDevice - physicalDevice - - - const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo - - - uint32_t* pVideoFormatPropertyCount - - - VkVideoFormatPropertiesKHR* pVideoFormatProperties - - - - - VkResult - vkCreateVideoSessionKHR - - - VkDevice - device - - - const VkVideoSessionCreateInfoKHR* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkVideoSessionKHR* pVideoSession - - - - - void - vkDestroyVideoSessionKHR - - - VkDevice - device - - - VkVideoSessionKHR - videoSession - - - const VkAllocationCallbacks* pAllocator - - - - - VkResult - vkCreateVideoSessionParametersKHR - - - VkDevice - device - - - const VkVideoSessionParametersCreateInfoKHR* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkVideoSessionParametersKHR* pVideoSessionParameters - - - - - VkResult - vkUpdateVideoSessionParametersKHR - - - VkDevice - device - - - VkVideoSessionParametersKHR - videoSessionParameters - - - const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo - - - - - void - vkDestroyVideoSessionParametersKHR - - - VkDevice - device - - - VkVideoSessionParametersKHR - videoSessionParameters - - - const VkAllocationCallbacks* pAllocator - - - - - VkResult - vkGetVideoSessionMemoryRequirementsKHR - - - VkDevice - device - - - VkVideoSessionKHR - videoSession - - - uint32_t* pVideoSessionMemoryRequirementsCount - - - VkVideoGetMemoryPropertiesKHR* pVideoSessionMemoryRequirements - - - - - VkResult - vkBindVideoSessionMemoryKHR - - - VkDevice - device - - - VkVideoSessionKHR - videoSession - - - uint32_t - videoSessionBindMemoryCount - - - const VkVideoBindMemoryKHR* pVideoSessionBindMemories - - - - - void - vkCmdDecodeVideoKHR - - - VkCommandBuffer - commandBuffer - - - const VkVideoDecodeInfoKHR* pFrameInfo - - - - - void - vkCmdBeginVideoCodingKHR - - - VkCommandBuffer - commandBuffer - - - const VkVideoBeginCodingInfoKHR* pBeginInfo - - - - - void - vkCmdControlVideoCodingKHR - - - VkCommandBuffer - commandBuffer - - - const VkVideoCodingControlInfoKHR* pCodingControlInfo - - - - - void - vkCmdEndVideoCodingKHR - - - VkCommandBuffer - commandBuffer - - - const VkVideoEndCodingInfoKHR* pEndCodingInfo - - - - - void - vkCmdEncodeVideoKHR - - - VkCommandBuffer - commandBuffer - - - const VkVideoEncodeInfoKHR* pEncodeInfo - - - - - VkResult - vkCreateCuModuleNVX - - - VkDevice - device - - - const VkCuModuleCreateInfoNVX* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkCuModuleNVX* pModule - - - - - VkResult - vkCreateCuFunctionNVX - - - VkDevice - device - - - const VkCuFunctionCreateInfoNVX* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkCuFunctionNVX* pFunction - - - - - void - vkDestroyCuModuleNVX - - - VkDevice - device - - - VkCuModuleNVX - module - - - const VkAllocationCallbacks* pAllocator - - - - - void - vkDestroyCuFunctionNVX - - - VkDevice - device - - - VkCuFunctionNVX - function - - - const VkAllocationCallbacks* pAllocator - - - - - void - vkCmdCuLaunchKernelNVX - - - VkCommandBuffer - commandBuffer - - - const VkCuLaunchInfoNVX* pLaunchInfo - - - - - void - vkSetDeviceMemoryPriorityEXT - - - VkDevice - device - - - VkDeviceMemory - memory - - - float - priority - - - - - VkResult - vkAcquireDrmDisplayEXT - - - VkPhysicalDevice - physicalDevice - - - int32_t - drmFd - - - VkDisplayKHR - display - - - - - VkResult - vkGetDrmDisplayEXT - - - VkPhysicalDevice - physicalDevice - - - int32_t - drmFd - - - uint32_t - connectorId - - - VkDisplayKHR* display - - - - - VkResult - vkWaitForPresentKHR - - - VkDevice - device - - - VkSwapchainKHR - swapchain - - - uint64_t - presentId - - - uint64_t - timeout - - - - - VkResult - vkCreateBufferCollectionFUCHSIA - - - VkDevice - device - - - const VkBufferCollectionCreateInfoFUCHSIA* pCreateInfo - - - const VkAllocationCallbacks* pAllocator - - - VkBufferCollectionFUCHSIA* pCollection - - - - - VkResult - vkSetBufferCollectionBufferConstraintsFUCHSIA - - - VkDevice - device - - - VkBufferCollectionFUCHSIA - collection - - - const VkBufferConstraintsInfoFUCHSIA* pBufferConstraintsInfo - - - - - VkResult - vkSetBufferCollectionImageConstraintsFUCHSIA - - - VkDevice - device - - - VkBufferCollectionFUCHSIA - collection - - - const VkImageConstraintsInfoFUCHSIA* pImageConstraintsInfo - - - - - void - vkDestroyBufferCollectionFUCHSIA - - - VkDevice - device - - - VkBufferCollectionFUCHSIA - collection - - - const VkAllocationCallbacks* pAllocator - - - - - VkResult - vkGetBufferCollectionPropertiesFUCHSIA - - - VkDevice - device - - - VkBufferCollectionFUCHSIA - collection - - - VkBufferCollectionPropertiesFUCHSIA* pProperties - - - - - void - vkCmdBeginRendering - - - VkCommandBuffer - commandBuffer - - - const VkRenderingInfo* pRenderingInfo - - - - - - void - vkCmdEndRendering - - - VkCommandBuffer - commandBuffer - - - - - - void - vkGetDescriptorSetLayoutHostMappingInfoVALVE - - - VkDevice - device - - - const VkDescriptorSetBindingReferenceVALVE* pBindingReference - - - VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping - - - - - void - vkGetDescriptorSetHostMappingVALVE - - - VkDevice - device - - - VkDescriptorSet - descriptorSet - - - void** ppData - - - - - void - vkGetShaderModuleIdentifierEXT - - - VkDevice - device - - - VkShaderModule - shaderModule - - - VkShaderModuleIdentifierEXT* pIdentifier - - - - - void - vkGetShaderModuleCreateInfoIdentifierEXT - - - VkDevice - device - - - const VkShaderModuleCreateInfo* pCreateInfo - - - VkShaderModuleIdentifierEXT* pIdentifier - - - - - void - vkGetImageSubresourceLayout2EXT - - - VkDevice - device - - - VkImage - image - - - const VkImageSubresource2EXT* pSubresource - - - VkSubresourceLayout2EXT* pLayout - - - - - VkResult - vkGetPipelinePropertiesEXT - - - VkDevice - device - - - const VkPipelineInfoKHR* pPipelineInfo - - - VkBaseOutStructure* pPipelineProperties - - - - - void - vkExportMetalObjectsEXT - - - VkDevice - device - - - VkExportMetalObjectsInfoEXT* pMetalObjectsInfo - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + value="4" reserved for VK_KHR_sampler_mirror_clamp_to_edge + enum VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE; do not + alias! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Return codes (positive values) + + + + + + + Error codes (negative values) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Flags + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + WSI Extensions + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NVX_device_generated_commands formerly used these enum values, but that extension has been removed + value 31 / name VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT + value 32 / name VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Vendor IDs are now represented as enums instead of the old + <vendorids> tag, allowing them to be included in the + API headers. + + + + + + + + + + + Driver IDs are now represented as enums instead of the old + <driverids> tag, allowing them to be included in the + API headers. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + bitpos 17-31 are specified by extensions to the original VkAccessFlagBits enum + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + bitpos 17-31 are specified by extensions to the original VkPipelineStageFlagBits enum + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + VkResult vkCreateInstance + const VkInstanceCreateInfo* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkInstance* pInstance + + + void vkDestroyInstance + VkInstance instance + const VkAllocationCallbacks* pAllocator + + all sname:VkPhysicalDevice objects enumerated from pname:instance + + + + VkResult vkEnumeratePhysicalDevices + VkInstance instance + uint32_t* pPhysicalDeviceCount + VkPhysicalDevice* pPhysicalDevices + + + PFN_vkVoidFunction vkGetDeviceProcAddr + VkDevice device + const char* pName + + + PFN_vkVoidFunction vkGetInstanceProcAddr + VkInstance instance + const char* pName + + + void vkGetPhysicalDeviceProperties + VkPhysicalDevice physicalDevice + VkPhysicalDeviceProperties* pProperties + + + void vkGetPhysicalDeviceQueueFamilyProperties + VkPhysicalDevice physicalDevice + uint32_t* pQueueFamilyPropertyCount + VkQueueFamilyProperties* pQueueFamilyProperties + + + void vkGetPhysicalDeviceMemoryProperties + VkPhysicalDevice physicalDevice + VkPhysicalDeviceMemoryProperties* pMemoryProperties + + + void vkGetPhysicalDeviceFeatures + VkPhysicalDevice physicalDevice + VkPhysicalDeviceFeatures* pFeatures + + + void vkGetPhysicalDeviceFormatProperties + VkPhysicalDevice physicalDevice + VkFormat format + VkFormatProperties* pFormatProperties + + + VkResult vkGetPhysicalDeviceImageFormatProperties + VkPhysicalDevice physicalDevice + VkFormat format + VkImageType type + VkImageTiling tiling + VkImageUsageFlags usage + VkImageCreateFlags flags + VkImageFormatProperties* pImageFormatProperties + + + VkResult vkCreateDevice + VkPhysicalDevice physicalDevice + const VkDeviceCreateInfo* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkDevice* pDevice + + + VkResult vkCreateDevice + VkPhysicalDevice physicalDevice + const VkDeviceCreateInfo* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkDevice* pDevice + + + void vkDestroyDevice + VkDevice device + const VkAllocationCallbacks* pAllocator + + all sname:VkQueue objects created from pname:device + + + + VkResult vkEnumerateInstanceVersion + uint32_t* pApiVersion + + + VkResult vkEnumerateInstanceLayerProperties + uint32_t* pPropertyCount + VkLayerProperties* pProperties + + + VkResult vkEnumerateInstanceExtensionProperties + const char* pLayerName + uint32_t* pPropertyCount + VkExtensionProperties* pProperties + + + VkResult vkEnumerateDeviceLayerProperties + VkPhysicalDevice physicalDevice + uint32_t* pPropertyCount + VkLayerProperties* pProperties + + + VkResult vkEnumerateDeviceLayerProperties + VkPhysicalDevice physicalDevice + uint32_t* pPropertyCount + VkLayerProperties* pProperties + + + + VkResult vkEnumerateDeviceExtensionProperties + VkPhysicalDevice physicalDevice + const char* pLayerName + uint32_t* pPropertyCount + VkExtensionProperties* pProperties + + + void vkGetDeviceQueue + VkDevice device + uint32_t queueFamilyIndex + uint32_t queueIndex + VkQueue* pQueue + + + VkResult vkQueueSubmit + VkQueue queue + uint32_t submitCount + const VkSubmitInfo* pSubmits + VkFence fence + + + VkResult vkQueueWaitIdle + VkQueue queue + + + VkResult vkDeviceWaitIdle + VkDevice device + + all sname:VkQueue objects created from pname:device + + + + VkResult vkAllocateMemory + VkDevice device + const VkMemoryAllocateInfo* pAllocateInfo + const VkAllocationCallbacks* pAllocator + VkDeviceMemory* pMemory + + + void vkFreeMemory + VkDevice device + VkDeviceMemory memory + const VkAllocationCallbacks* pAllocator + + + VkResult vkMapMemory + VkDevice device + VkDeviceMemory memory + VkDeviceSize offset + VkDeviceSize size + VkMemoryMapFlags flags + void** ppData + + + void vkUnmapMemory + VkDevice device + VkDeviceMemory memory + + + VkResult vkFlushMappedMemoryRanges + VkDevice device + uint32_t memoryRangeCount + const VkMappedMemoryRange* pMemoryRanges + + + VkResult vkInvalidateMappedMemoryRanges + VkDevice device + uint32_t memoryRangeCount + const VkMappedMemoryRange* pMemoryRanges + + + void vkGetDeviceMemoryCommitment + VkDevice device + VkDeviceMemory memory + VkDeviceSize* pCommittedMemoryInBytes + + + void vkGetBufferMemoryRequirements + VkDevice device + VkBuffer buffer + VkMemoryRequirements* pMemoryRequirements + + + VkResult vkBindBufferMemory + VkDevice device + VkBuffer buffer + VkDeviceMemory memory + VkDeviceSize memoryOffset + + + void vkGetImageMemoryRequirements + VkDevice device + VkImage image + VkMemoryRequirements* pMemoryRequirements + + + VkResult vkBindImageMemory + VkDevice device + VkImage image + VkDeviceMemory memory + VkDeviceSize memoryOffset + + + void vkGetImageSparseMemoryRequirements + VkDevice device + VkImage image + uint32_t* pSparseMemoryRequirementCount + VkSparseImageMemoryRequirements* pSparseMemoryRequirements + + + void vkGetPhysicalDeviceSparseImageFormatProperties + VkPhysicalDevice physicalDevice + VkFormat format + VkImageType type + VkSampleCountFlagBits samples + VkImageUsageFlags usage + VkImageTiling tiling + uint32_t* pPropertyCount + VkSparseImageFormatProperties* pProperties + + + VkResult vkQueueBindSparse + VkQueue queue + uint32_t bindInfoCount + const VkBindSparseInfo* pBindInfo + VkFence fence + + + VkResult vkCreateFence + VkDevice device + const VkFenceCreateInfo* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkFence* pFence + + + void vkDestroyFence + VkDevice device + VkFence fence + const VkAllocationCallbacks* pAllocator + + + VkResult vkResetFences + VkDevice device + uint32_t fenceCount + const VkFence* pFences + + + VkResult vkGetFenceStatus + VkDevice device + VkFence fence + + + VkResult vkWaitForFences + VkDevice device + uint32_t fenceCount + const VkFence* pFences + VkBool32 waitAll + uint64_t timeout + + + VkResult vkCreateSemaphore + VkDevice device + const VkSemaphoreCreateInfo* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkSemaphore* pSemaphore + + + void vkDestroySemaphore + VkDevice device + VkSemaphore semaphore + const VkAllocationCallbacks* pAllocator + + + VkResult vkCreateEvent + VkDevice device + const VkEventCreateInfo* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkEvent* pEvent + + + void vkDestroyEvent + VkDevice device + VkEvent event + const VkAllocationCallbacks* pAllocator + + + VkResult vkGetEventStatus + VkDevice device + VkEvent event + + + VkResult vkSetEvent + VkDevice device + VkEvent event + + + VkResult vkResetEvent + VkDevice device + VkEvent event + + + VkResult vkCreateQueryPool + VkDevice device + const VkQueryPoolCreateInfo* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkQueryPool* pQueryPool + + + void vkDestroyQueryPool + VkDevice device + VkQueryPool queryPool + const VkAllocationCallbacks* pAllocator + + + VkResult vkGetQueryPoolResults + VkDevice device + VkQueryPool queryPool + uint32_t firstQuery + uint32_t queryCount + size_t dataSize + void* pData + VkDeviceSize stride + VkQueryResultFlags flags + + + void vkResetQueryPool + VkDevice device + VkQueryPool queryPool + uint32_t firstQuery + uint32_t queryCount + + + + VkResult vkCreateBuffer + VkDevice device + const VkBufferCreateInfo* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkBuffer* pBuffer + + + void vkDestroyBuffer + VkDevice device + VkBuffer buffer + const VkAllocationCallbacks* pAllocator + + + VkResult vkCreateBufferView + VkDevice device + const VkBufferViewCreateInfo* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkBufferView* pView + + + void vkDestroyBufferView + VkDevice device + VkBufferView bufferView + const VkAllocationCallbacks* pAllocator + + + VkResult vkCreateImage + VkDevice device + const VkImageCreateInfo* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkImage* pImage + + + void vkDestroyImage + VkDevice device + VkImage image + const VkAllocationCallbacks* pAllocator + + + void vkGetImageSubresourceLayout + VkDevice device + VkImage image + const VkImageSubresource* pSubresource + VkSubresourceLayout* pLayout + + + VkResult vkCreateImageView + VkDevice device + const VkImageViewCreateInfo* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkImageView* pView + + + void vkDestroyImageView + VkDevice device + VkImageView imageView + const VkAllocationCallbacks* pAllocator + + + VkResult vkCreateShaderModule + VkDevice device + const VkShaderModuleCreateInfo* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkShaderModule* pShaderModule + + + void vkDestroyShaderModule + VkDevice device + VkShaderModule shaderModule + const VkAllocationCallbacks* pAllocator + + + VkResult vkCreatePipelineCache + VkDevice device + const VkPipelineCacheCreateInfo* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkPipelineCache* pPipelineCache + + + VkResult vkCreatePipelineCache + VkDevice device + const VkPipelineCacheCreateInfo* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkPipelineCache* pPipelineCache + + + void vkDestroyPipelineCache + VkDevice device + VkPipelineCache pipelineCache + const VkAllocationCallbacks* pAllocator + + + VkResult vkGetPipelineCacheData + VkDevice device + VkPipelineCache pipelineCache + size_t* pDataSize + void* pData + + + VkResult vkMergePipelineCaches + VkDevice device + VkPipelineCache dstCache + uint32_t srcCacheCount + const VkPipelineCache* pSrcCaches + + + VkResult vkCreateGraphicsPipelines + VkDevice device + VkPipelineCache pipelineCache + uint32_t createInfoCount + const VkGraphicsPipelineCreateInfo* pCreateInfos + const VkAllocationCallbacks* pAllocator + VkPipeline* pPipelines + + + VkResult vkCreateGraphicsPipelines + VkDevice device + VkPipelineCache pipelineCache + uint32_t createInfoCount + const VkGraphicsPipelineCreateInfo* pCreateInfos + const VkAllocationCallbacks* pAllocator + VkPipeline* pPipelines + + + VkResult vkCreateComputePipelines + VkDevice device + VkPipelineCache pipelineCache + uint32_t createInfoCount + const VkComputePipelineCreateInfo* pCreateInfos + const VkAllocationCallbacks* pAllocator + VkPipeline* pPipelines + + + VkResult vkCreateComputePipelines + VkDevice device + VkPipelineCache pipelineCache + uint32_t createInfoCount + const VkComputePipelineCreateInfo* pCreateInfos + const VkAllocationCallbacks* pAllocator + VkPipeline* pPipelines + + + VkResult vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI + VkDevice device + VkRenderPass renderpass + VkExtent2D* pMaxWorkgroupSize + + + void vkDestroyPipeline + VkDevice device + VkPipeline pipeline + const VkAllocationCallbacks* pAllocator + + + VkResult vkCreatePipelineLayout + VkDevice device + const VkPipelineLayoutCreateInfo* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkPipelineLayout* pPipelineLayout + + + void vkDestroyPipelineLayout + VkDevice device + VkPipelineLayout pipelineLayout + const VkAllocationCallbacks* pAllocator + + + VkResult vkCreateSampler + VkDevice device + const VkSamplerCreateInfo* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkSampler* pSampler + + + void vkDestroySampler + VkDevice device + VkSampler sampler + const VkAllocationCallbacks* pAllocator + + + VkResult vkCreateDescriptorSetLayout + VkDevice device + const VkDescriptorSetLayoutCreateInfo* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkDescriptorSetLayout* pSetLayout + + + void vkDestroyDescriptorSetLayout + VkDevice device + VkDescriptorSetLayout descriptorSetLayout + const VkAllocationCallbacks* pAllocator + + + VkResult vkCreateDescriptorPool + VkDevice device + const VkDescriptorPoolCreateInfo* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkDescriptorPool* pDescriptorPool + + + void vkDestroyDescriptorPool + VkDevice device + VkDescriptorPool descriptorPool + const VkAllocationCallbacks* pAllocator + + + VkResult vkResetDescriptorPool + VkDevice device + VkDescriptorPool descriptorPool + VkDescriptorPoolResetFlags flags + + any sname:VkDescriptorSet objects allocated from pname:descriptorPool + + + + VkResult vkAllocateDescriptorSets + VkDevice device + const VkDescriptorSetAllocateInfo* pAllocateInfo + VkDescriptorSet* pDescriptorSets + + + VkResult vkFreeDescriptorSets + VkDevice device + VkDescriptorPool descriptorPool + uint32_t descriptorSetCount + const VkDescriptorSet* pDescriptorSets + + + void vkUpdateDescriptorSets + VkDevice device + uint32_t descriptorWriteCount + const VkWriteDescriptorSet* pDescriptorWrites + uint32_t descriptorCopyCount + const VkCopyDescriptorSet* pDescriptorCopies + + + VkResult vkCreateFramebuffer + VkDevice device + const VkFramebufferCreateInfo* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkFramebuffer* pFramebuffer + + + void vkDestroyFramebuffer + VkDevice device + VkFramebuffer framebuffer + const VkAllocationCallbacks* pAllocator + + + VkResult vkCreateRenderPass + VkDevice device + const VkRenderPassCreateInfo* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkRenderPass* pRenderPass + + + void vkDestroyRenderPass + VkDevice device + VkRenderPass renderPass + const VkAllocationCallbacks* pAllocator + + + void vkGetRenderAreaGranularity + VkDevice device + VkRenderPass renderPass + VkExtent2D* pGranularity + + + void vkGetRenderingAreaGranularityKHR + VkDevice device + const VkRenderingAreaInfoKHR* pRenderingAreaInfo + VkExtent2D* pGranularity + + + VkResult vkCreateCommandPool + VkDevice device + const VkCommandPoolCreateInfo* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkCommandPool* pCommandPool + + + void vkDestroyCommandPool + VkDevice device + VkCommandPool commandPool + const VkAllocationCallbacks* pAllocator + + + VkResult vkResetCommandPool + VkDevice device + VkCommandPool commandPool + VkCommandPoolResetFlags flags + + + VkResult vkAllocateCommandBuffers + VkDevice device + const VkCommandBufferAllocateInfo* pAllocateInfo + VkCommandBuffer* pCommandBuffers + + + void vkFreeCommandBuffers + VkDevice device + VkCommandPool commandPool + uint32_t commandBufferCount + const VkCommandBuffer* pCommandBuffers + + + VkResult vkBeginCommandBuffer + VkCommandBuffer commandBuffer + const VkCommandBufferBeginInfo* pBeginInfo + + the sname:VkCommandPool that pname:commandBuffer was allocated from + + + + VkResult vkEndCommandBuffer + VkCommandBuffer commandBuffer + + the sname:VkCommandPool that pname:commandBuffer was allocated from + + + + VkResult vkResetCommandBuffer + VkCommandBuffer commandBuffer + VkCommandBufferResetFlags flags + + the sname:VkCommandPool that pname:commandBuffer was allocated from + + + + void vkCmdBindPipeline + VkCommandBuffer commandBuffer + VkPipelineBindPoint pipelineBindPoint + VkPipeline pipeline + + + void vkCmdSetAttachmentFeedbackLoopEnableEXT + VkCommandBuffer commandBuffer + VkImageAspectFlags aspectMask + + + void vkCmdSetViewport + VkCommandBuffer commandBuffer + uint32_t firstViewport + uint32_t viewportCount + const VkViewport* pViewports + + + void vkCmdSetScissor + VkCommandBuffer commandBuffer + uint32_t firstScissor + uint32_t scissorCount + const VkRect2D* pScissors + + + void vkCmdSetLineWidth + VkCommandBuffer commandBuffer + float lineWidth + + + void vkCmdSetDepthBias + VkCommandBuffer commandBuffer + float depthBiasConstantFactor + float depthBiasClamp + float depthBiasSlopeFactor + + + void vkCmdSetBlendConstants + VkCommandBuffer commandBuffer + const float blendConstants[4] + + + void vkCmdSetDepthBounds + VkCommandBuffer commandBuffer + float minDepthBounds + float maxDepthBounds + + + void vkCmdSetStencilCompareMask + VkCommandBuffer commandBuffer + VkStencilFaceFlags faceMask + uint32_t compareMask + + + void vkCmdSetStencilWriteMask + VkCommandBuffer commandBuffer + VkStencilFaceFlags faceMask + uint32_t writeMask + + + void vkCmdSetStencilReference + VkCommandBuffer commandBuffer + VkStencilFaceFlags faceMask + uint32_t reference + + + void vkCmdBindDescriptorSets + VkCommandBuffer commandBuffer + VkPipelineBindPoint pipelineBindPoint + VkPipelineLayout layout + uint32_t firstSet + uint32_t descriptorSetCount + const VkDescriptorSet* pDescriptorSets + uint32_t dynamicOffsetCount + const uint32_t* pDynamicOffsets + + + void vkCmdBindIndexBuffer + VkCommandBuffer commandBuffer + VkBuffer buffer + VkDeviceSize offset + VkIndexType indexType + + + void vkCmdBindVertexBuffers + VkCommandBuffer commandBuffer + uint32_t firstBinding + uint32_t bindingCount + const VkBuffer* pBuffers + const VkDeviceSize* pOffsets + + + void vkCmdDraw + VkCommandBuffer commandBuffer + uint32_t vertexCount + uint32_t instanceCount + uint32_t firstVertex + uint32_t firstInstance + + + void vkCmdDrawIndexed + VkCommandBuffer commandBuffer + uint32_t indexCount + uint32_t instanceCount + uint32_t firstIndex + int32_t vertexOffset + uint32_t firstInstance + + + void vkCmdDrawMultiEXT + VkCommandBuffer commandBuffer + uint32_t drawCount + const VkMultiDrawInfoEXT* pVertexInfo + uint32_t instanceCount + uint32_t firstInstance + uint32_t stride + + + void vkCmdDrawMultiIndexedEXT + VkCommandBuffer commandBuffer + uint32_t drawCount + const VkMultiDrawIndexedInfoEXT* pIndexInfo + uint32_t instanceCount + uint32_t firstInstance + uint32_t stride + const int32_t* pVertexOffset + + + void vkCmdDrawIndirect + VkCommandBuffer commandBuffer + VkBuffer buffer + VkDeviceSize offset + uint32_t drawCount + uint32_t stride + + + void vkCmdDrawIndexedIndirect + VkCommandBuffer commandBuffer + VkBuffer buffer + VkDeviceSize offset + uint32_t drawCount + uint32_t stride + + + void vkCmdDispatch + VkCommandBuffer commandBuffer + uint32_t groupCountX + uint32_t groupCountY + uint32_t groupCountZ + + + void vkCmdDispatchIndirect + VkCommandBuffer commandBuffer + VkBuffer buffer + VkDeviceSize offset + + + void vkCmdSubpassShadingHUAWEI + VkCommandBuffer commandBuffer + + + void vkCmdDrawClusterHUAWEI + VkCommandBuffer commandBuffer + uint32_t groupCountX + uint32_t groupCountY + uint32_t groupCountZ + + + void vkCmdDrawClusterIndirectHUAWEI + VkCommandBuffer commandBuffer + VkBuffer buffer + VkDeviceSize offset + + + void vkCmdUpdatePipelineIndirectBufferNV + VkCommandBuffer commandBuffer + VkPipelineBindPoint pipelineBindPoint + VkPipeline pipeline + + + void vkCmdCopyBuffer + VkCommandBuffer commandBuffer + VkBuffer srcBuffer + VkBuffer dstBuffer + uint32_t regionCount + const VkBufferCopy* pRegions + + + void vkCmdCopyImage + VkCommandBuffer commandBuffer + VkImage srcImage + VkImageLayout srcImageLayout + VkImage dstImage + VkImageLayout dstImageLayout + uint32_t regionCount + const VkImageCopy* pRegions + + + void vkCmdBlitImage + VkCommandBuffer commandBuffer + VkImage srcImage + VkImageLayout srcImageLayout + VkImage dstImage + VkImageLayout dstImageLayout + uint32_t regionCount + const VkImageBlit* pRegions + VkFilter filter + + + void vkCmdCopyBufferToImage + VkCommandBuffer commandBuffer + VkBuffer srcBuffer + VkImage dstImage + VkImageLayout dstImageLayout + uint32_t regionCount + const VkBufferImageCopy* pRegions + + + void vkCmdCopyImageToBuffer + VkCommandBuffer commandBuffer + VkImage srcImage + VkImageLayout srcImageLayout + VkBuffer dstBuffer + uint32_t regionCount + const VkBufferImageCopy* pRegions + + + void vkCmdCopyMemoryIndirectNV + VkCommandBuffer commandBuffer + VkDeviceAddress copyBufferAddress + uint32_t copyCount + uint32_t stride + + + void vkCmdCopyMemoryToImageIndirectNV + VkCommandBuffer commandBuffer + VkDeviceAddress copyBufferAddress + uint32_t copyCount + uint32_t stride + VkImage dstImage + VkImageLayout dstImageLayout + const VkImageSubresourceLayers* pImageSubresources + + + void vkCmdUpdateBuffer + VkCommandBuffer commandBuffer + VkBuffer dstBuffer + VkDeviceSize dstOffset + VkDeviceSize dataSize + const void* pData + + + void vkCmdFillBuffer + VkCommandBuffer commandBuffer + VkBuffer dstBuffer + VkDeviceSize dstOffset + VkDeviceSize size + uint32_t data + + + void vkCmdClearColorImage + VkCommandBuffer commandBuffer + VkImage image + VkImageLayout imageLayout + const VkClearColorValue* pColor + uint32_t rangeCount + const VkImageSubresourceRange* pRanges + + + void vkCmdClearDepthStencilImage + VkCommandBuffer commandBuffer + VkImage image + VkImageLayout imageLayout + const VkClearDepthStencilValue* pDepthStencil + uint32_t rangeCount + const VkImageSubresourceRange* pRanges + + + void vkCmdClearAttachments + VkCommandBuffer commandBuffer + uint32_t attachmentCount + const VkClearAttachment* pAttachments + uint32_t rectCount + const VkClearRect* pRects + + + void vkCmdResolveImage + VkCommandBuffer commandBuffer + VkImage srcImage + VkImageLayout srcImageLayout + VkImage dstImage + VkImageLayout dstImageLayout + uint32_t regionCount + const VkImageResolve* pRegions + + + void vkCmdSetEvent + VkCommandBuffer commandBuffer + VkEvent event + VkPipelineStageFlags stageMask + + + void vkCmdResetEvent + VkCommandBuffer commandBuffer + VkEvent event + VkPipelineStageFlags stageMask + + + void vkCmdWaitEvents + VkCommandBuffer commandBuffer + uint32_t eventCount + const VkEvent* pEvents + VkPipelineStageFlags srcStageMask + VkPipelineStageFlags dstStageMask + uint32_t memoryBarrierCount + const VkMemoryBarrier* pMemoryBarriers + uint32_t bufferMemoryBarrierCount + const VkBufferMemoryBarrier* pBufferMemoryBarriers + uint32_t imageMemoryBarrierCount + const VkImageMemoryBarrier* pImageMemoryBarriers + + + void vkCmdPipelineBarrier + VkCommandBuffer commandBuffer + VkPipelineStageFlags srcStageMask + VkPipelineStageFlags dstStageMask + VkDependencyFlags dependencyFlags + uint32_t memoryBarrierCount + const VkMemoryBarrier* pMemoryBarriers + uint32_t bufferMemoryBarrierCount + const VkBufferMemoryBarrier* pBufferMemoryBarriers + uint32_t imageMemoryBarrierCount + const VkImageMemoryBarrier* pImageMemoryBarriers + + + void vkCmdBeginQuery + VkCommandBuffer commandBuffer + VkQueryPool queryPool + uint32_t query + VkQueryControlFlags flags + + + void vkCmdEndQuery + VkCommandBuffer commandBuffer + VkQueryPool queryPool + uint32_t query + + + void vkCmdBeginConditionalRenderingEXT + VkCommandBuffer commandBuffer + const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin + + + void vkCmdEndConditionalRenderingEXT + VkCommandBuffer commandBuffer + + + void vkCmdResetQueryPool + VkCommandBuffer commandBuffer + VkQueryPool queryPool + uint32_t firstQuery + uint32_t queryCount + + + void vkCmdWriteTimestamp + VkCommandBuffer commandBuffer + VkPipelineStageFlagBits pipelineStage + VkQueryPool queryPool + uint32_t query + + + void vkCmdCopyQueryPoolResults + VkCommandBuffer commandBuffer + VkQueryPool queryPool + uint32_t firstQuery + uint32_t queryCount + VkBuffer dstBuffer + VkDeviceSize dstOffset + VkDeviceSize stride + VkQueryResultFlags flags + + + void vkCmdPushConstants + VkCommandBuffer commandBuffer + VkPipelineLayout layout + VkShaderStageFlags stageFlags + uint32_t offset + uint32_t size + const void* pValues + + + void vkCmdBeginRenderPass + VkCommandBuffer commandBuffer + const VkRenderPassBeginInfo* pRenderPassBegin + VkSubpassContents contents + + + void vkCmdNextSubpass + VkCommandBuffer commandBuffer + VkSubpassContents contents + + + void vkCmdEndRenderPass + VkCommandBuffer commandBuffer + + + void vkCmdExecuteCommands + VkCommandBuffer commandBuffer + uint32_t commandBufferCount + const VkCommandBuffer* pCommandBuffers + + + VkResult vkCreateAndroidSurfaceKHR + VkInstance instance + const VkAndroidSurfaceCreateInfoKHR* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkSurfaceKHR* pSurface + + + VkResult vkGetPhysicalDeviceDisplayPropertiesKHR + VkPhysicalDevice physicalDevice + uint32_t* pPropertyCount + VkDisplayPropertiesKHR* pProperties + + + VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR + VkPhysicalDevice physicalDevice + uint32_t* pPropertyCount + VkDisplayPlanePropertiesKHR* pProperties + + + VkResult vkGetDisplayPlaneSupportedDisplaysKHR + VkPhysicalDevice physicalDevice + uint32_t planeIndex + uint32_t* pDisplayCount + VkDisplayKHR* pDisplays + + + VkResult vkGetDisplayModePropertiesKHR + VkPhysicalDevice physicalDevice + VkDisplayKHR display + uint32_t* pPropertyCount + VkDisplayModePropertiesKHR* pProperties + + + VkResult vkCreateDisplayModeKHR + VkPhysicalDevice physicalDevice + VkDisplayKHR display + const VkDisplayModeCreateInfoKHR* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkDisplayModeKHR* pMode + + + VkResult vkGetDisplayPlaneCapabilitiesKHR + VkPhysicalDevice physicalDevice + VkDisplayModeKHR mode + uint32_t planeIndex + VkDisplayPlaneCapabilitiesKHR* pCapabilities + + + VkResult vkCreateDisplayPlaneSurfaceKHR + VkInstance instance + const VkDisplaySurfaceCreateInfoKHR* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkSurfaceKHR* pSurface + + + VkResult vkCreateSharedSwapchainsKHR + VkDevice device + uint32_t swapchainCount + const VkSwapchainCreateInfoKHR* pCreateInfos + const VkSwapchainCreateInfoKHR* pCreateInfos + const VkAllocationCallbacks* pAllocator + VkSwapchainKHR* pSwapchains + + + void vkDestroySurfaceKHR + VkInstance instance + VkSurfaceKHR surface + const VkAllocationCallbacks* pAllocator + + + VkResult vkGetPhysicalDeviceSurfaceSupportKHR + VkPhysicalDevice physicalDevice + uint32_t queueFamilyIndex + VkSurfaceKHR surface + VkBool32* pSupported + + + VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR + VkPhysicalDevice physicalDevice + VkSurfaceKHR surface + VkSurfaceCapabilitiesKHR* pSurfaceCapabilities + + + VkResult vkGetPhysicalDeviceSurfaceFormatsKHR + VkPhysicalDevice physicalDevice + VkSurfaceKHR surface + uint32_t* pSurfaceFormatCount + VkSurfaceFormatKHR* pSurfaceFormats + + + VkResult vkGetPhysicalDeviceSurfacePresentModesKHR + VkPhysicalDevice physicalDevice + VkSurfaceKHR surface + uint32_t* pPresentModeCount + VkPresentModeKHR* pPresentModes + + + VkResult vkCreateSwapchainKHR + VkDevice device + const VkSwapchainCreateInfoKHR* pCreateInfo + const VkSwapchainCreateInfoKHR* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkSwapchainKHR* pSwapchain + + + void vkDestroySwapchainKHR + VkDevice device + VkSwapchainKHR swapchain + const VkAllocationCallbacks* pAllocator + + + VkResult vkGetSwapchainImagesKHR + VkDevice device + VkSwapchainKHR swapchain + uint32_t* pSwapchainImageCount + VkImage* pSwapchainImages + + + VkResult vkAcquireNextImageKHR + VkDevice device + VkSwapchainKHR swapchain + uint64_t timeout + VkSemaphore semaphore + VkFence fence + uint32_t* pImageIndex + + + VkResult vkQueuePresentKHR + VkQueue queue + const VkPresentInfoKHR* pPresentInfo + + + VkResult vkCreateViSurfaceNN + VkInstance instance + const VkViSurfaceCreateInfoNN* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkSurfaceKHR* pSurface + + + VkResult vkCreateWaylandSurfaceKHR + VkInstance instance + const VkWaylandSurfaceCreateInfoKHR* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkSurfaceKHR* pSurface + + + VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR + VkPhysicalDevice physicalDevice + uint32_t queueFamilyIndex + struct wl_display* display + + + VkResult vkCreateWin32SurfaceKHR + VkInstance instance + const VkWin32SurfaceCreateInfoKHR* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkSurfaceKHR* pSurface + + + VkBool32 vkGetPhysicalDeviceWin32PresentationSupportKHR + VkPhysicalDevice physicalDevice + uint32_t queueFamilyIndex + + + VkResult vkCreateXlibSurfaceKHR + VkInstance instance + const VkXlibSurfaceCreateInfoKHR* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkSurfaceKHR* pSurface + + + VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR + VkPhysicalDevice physicalDevice + uint32_t queueFamilyIndex + Display* dpy + VisualID visualID + + + VkResult vkCreateXcbSurfaceKHR + VkInstance instance + const VkXcbSurfaceCreateInfoKHR* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkSurfaceKHR* pSurface + + + VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR + VkPhysicalDevice physicalDevice + uint32_t queueFamilyIndex + xcb_connection_t* connection + xcb_visualid_t visual_id + + + VkResult vkCreateDirectFBSurfaceEXT + VkInstance instance + const VkDirectFBSurfaceCreateInfoEXT* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkSurfaceKHR* pSurface + + + VkBool32 vkGetPhysicalDeviceDirectFBPresentationSupportEXT + VkPhysicalDevice physicalDevice + uint32_t queueFamilyIndex + IDirectFB* dfb + + + VkResult vkCreateImagePipeSurfaceFUCHSIA + VkInstance instance + const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkSurfaceKHR* pSurface + + + VkResult vkCreateStreamDescriptorSurfaceGGP + VkInstance instance + const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkSurfaceKHR* pSurface + + + VkResult vkCreateScreenSurfaceQNX + VkInstance instance + const VkScreenSurfaceCreateInfoQNX* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkSurfaceKHR* pSurface + + + VkBool32 vkGetPhysicalDeviceScreenPresentationSupportQNX + VkPhysicalDevice physicalDevice + uint32_t queueFamilyIndex + struct _screen_window* window + + + VkResult vkCreateDebugReportCallbackEXT + VkInstance instance + const VkDebugReportCallbackCreateInfoEXT* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkDebugReportCallbackEXT* pCallback + + + void vkDestroyDebugReportCallbackEXT + VkInstance instance + VkDebugReportCallbackEXT callback + const VkAllocationCallbacks* pAllocator + + + void vkDebugReportMessageEXT + VkInstance instance + VkDebugReportFlagsEXT flags + VkDebugReportObjectTypeEXT objectType + uint64_t object + size_t location + int32_t messageCode + const char* pLayerPrefix + const char* pMessage + + + VkResult vkDebugMarkerSetObjectNameEXT + VkDevice device + const VkDebugMarkerObjectNameInfoEXT* pNameInfo + + + VkResult vkDebugMarkerSetObjectTagEXT + VkDevice device + const VkDebugMarkerObjectTagInfoEXT* pTagInfo + + + void vkCmdDebugMarkerBeginEXT + VkCommandBuffer commandBuffer + const VkDebugMarkerMarkerInfoEXT* pMarkerInfo + + + void vkCmdDebugMarkerEndEXT + VkCommandBuffer commandBuffer + + + void vkCmdDebugMarkerInsertEXT + VkCommandBuffer commandBuffer + const VkDebugMarkerMarkerInfoEXT* pMarkerInfo + + + VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV + VkPhysicalDevice physicalDevice + VkFormat format + VkImageType type + VkImageTiling tiling + VkImageUsageFlags usage + VkImageCreateFlags flags + VkExternalMemoryHandleTypeFlagsNV externalHandleType + VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties + + + VkResult vkGetMemoryWin32HandleNV + VkDevice device + VkDeviceMemory memory + VkExternalMemoryHandleTypeFlagsNV handleType + HANDLE* pHandle + + + void vkCmdExecuteGeneratedCommandsNV + VkCommandBuffer commandBuffer + VkBool32 isPreprocessed + const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo + + + void vkCmdPreprocessGeneratedCommandsNV + VkCommandBuffer commandBuffer + const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo + + + void vkCmdBindPipelineShaderGroupNV + VkCommandBuffer commandBuffer + VkPipelineBindPoint pipelineBindPoint + VkPipeline pipeline + uint32_t groupIndex + + + void vkGetGeneratedCommandsMemoryRequirementsNV + VkDevice device + const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo + VkMemoryRequirements2* pMemoryRequirements + + + VkResult vkCreateIndirectCommandsLayoutNV + VkDevice device + const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkIndirectCommandsLayoutNV* pIndirectCommandsLayout + + + void vkDestroyIndirectCommandsLayoutNV + VkDevice device + VkIndirectCommandsLayoutNV indirectCommandsLayout + const VkAllocationCallbacks* pAllocator + + + void vkGetPhysicalDeviceFeatures2 + VkPhysicalDevice physicalDevice + VkPhysicalDeviceFeatures2* pFeatures + + + + void vkGetPhysicalDeviceProperties2 + VkPhysicalDevice physicalDevice + VkPhysicalDeviceProperties2* pProperties + + + + void vkGetPhysicalDeviceFormatProperties2 + VkPhysicalDevice physicalDevice + VkFormat format + VkFormatProperties2* pFormatProperties + + + + VkResult vkGetPhysicalDeviceImageFormatProperties2 + VkPhysicalDevice physicalDevice + const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo + VkImageFormatProperties2* pImageFormatProperties + + + + void vkGetPhysicalDeviceQueueFamilyProperties2 + VkPhysicalDevice physicalDevice + uint32_t* pQueueFamilyPropertyCount + VkQueueFamilyProperties2* pQueueFamilyProperties + + + + void vkGetPhysicalDeviceMemoryProperties2 + VkPhysicalDevice physicalDevice + VkPhysicalDeviceMemoryProperties2* pMemoryProperties + + + + void vkGetPhysicalDeviceSparseImageFormatProperties2 + VkPhysicalDevice physicalDevice + const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo + uint32_t* pPropertyCount + VkSparseImageFormatProperties2* pProperties + + + + void vkCmdPushDescriptorSetKHR + VkCommandBuffer commandBuffer + VkPipelineBindPoint pipelineBindPoint + VkPipelineLayout layout + uint32_t set + uint32_t descriptorWriteCount + const VkWriteDescriptorSet* pDescriptorWrites + + + void vkTrimCommandPool + VkDevice device + VkCommandPool commandPool + VkCommandPoolTrimFlags flags + + + + void vkGetPhysicalDeviceExternalBufferProperties + VkPhysicalDevice physicalDevice + const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo + VkExternalBufferProperties* pExternalBufferProperties + + + + VkResult vkGetMemoryWin32HandleKHR + VkDevice device + const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo + HANDLE* pHandle + + + VkResult vkGetMemoryWin32HandlePropertiesKHR + VkDevice device + VkExternalMemoryHandleTypeFlagBits handleType + HANDLE handle + VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties + + + VkResult vkGetMemoryFdKHR + VkDevice device + const VkMemoryGetFdInfoKHR* pGetFdInfo + int* pFd + + + VkResult vkGetMemoryFdPropertiesKHR + VkDevice device + VkExternalMemoryHandleTypeFlagBits handleType + int fd + VkMemoryFdPropertiesKHR* pMemoryFdProperties + + + VkResult vkGetMemoryZirconHandleFUCHSIA + VkDevice device + const VkMemoryGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo + zx_handle_t* pZirconHandle + + + VkResult vkGetMemoryZirconHandlePropertiesFUCHSIA + VkDevice device + VkExternalMemoryHandleTypeFlagBits handleType + zx_handle_t zirconHandle + VkMemoryZirconHandlePropertiesFUCHSIA* pMemoryZirconHandleProperties + + + VkResult vkGetMemoryRemoteAddressNV + VkDevice device + const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo + VkRemoteAddressNV* pAddress + + + VkResult vkGetMemorySciBufNV + VkDevice device + const VkMemoryGetSciBufInfoNV* pGetSciBufInfo + NvSciBufObj* pHandle + + + VkResult vkGetPhysicalDeviceExternalMemorySciBufPropertiesNV + VkPhysicalDevice physicalDevice + VkExternalMemoryHandleTypeFlagBits handleType + NvSciBufObj handle + VkMemorySciBufPropertiesNV* pMemorySciBufProperties + + + VkResult vkGetPhysicalDeviceSciBufAttributesNV + VkPhysicalDevice physicalDevice + NvSciBufAttrList pAttributes + + + void vkGetPhysicalDeviceExternalSemaphoreProperties + VkPhysicalDevice physicalDevice + const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo + VkExternalSemaphoreProperties* pExternalSemaphoreProperties + + + + VkResult vkGetSemaphoreWin32HandleKHR + VkDevice device + const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo + HANDLE* pHandle + + + VkResult vkImportSemaphoreWin32HandleKHR + VkDevice device + const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo + + + VkResult vkGetSemaphoreFdKHR + VkDevice device + const VkSemaphoreGetFdInfoKHR* pGetFdInfo + int* pFd + + + VkResult vkImportSemaphoreFdKHR + VkDevice device + const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo + + + VkResult vkGetSemaphoreZirconHandleFUCHSIA + VkDevice device + const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo + zx_handle_t* pZirconHandle + + + VkResult vkImportSemaphoreZirconHandleFUCHSIA + VkDevice device + const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo + + + void vkGetPhysicalDeviceExternalFenceProperties + VkPhysicalDevice physicalDevice + const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo + VkExternalFenceProperties* pExternalFenceProperties + + + + VkResult vkGetFenceWin32HandleKHR + VkDevice device + const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo + HANDLE* pHandle + + + VkResult vkImportFenceWin32HandleKHR + VkDevice device + const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo + + + VkResult vkGetFenceFdKHR + VkDevice device + const VkFenceGetFdInfoKHR* pGetFdInfo + int* pFd + + + VkResult vkImportFenceFdKHR + VkDevice device + const VkImportFenceFdInfoKHR* pImportFenceFdInfo + + + VkResult vkGetFenceSciSyncFenceNV + VkDevice device + const VkFenceGetSciSyncInfoNV* pGetSciSyncHandleInfo + void* pHandle + + + VkResult vkGetFenceSciSyncObjNV + VkDevice device + const VkFenceGetSciSyncInfoNV* pGetSciSyncHandleInfo + void* pHandle + + + VkResult vkImportFenceSciSyncFenceNV + VkDevice device + const VkImportFenceSciSyncInfoNV* pImportFenceSciSyncInfo + + + VkResult vkImportFenceSciSyncObjNV + VkDevice device + const VkImportFenceSciSyncInfoNV* pImportFenceSciSyncInfo + + + VkResult vkGetSemaphoreSciSyncObjNV + VkDevice device + const VkSemaphoreGetSciSyncInfoNV* pGetSciSyncInfo + void* pHandle + + + VkResult vkImportSemaphoreSciSyncObjNV + VkDevice device + const VkImportSemaphoreSciSyncInfoNV* pImportSemaphoreSciSyncInfo + + + VkResult vkGetPhysicalDeviceSciSyncAttributesNV + VkPhysicalDevice physicalDevice + const VkSciSyncAttributesInfoNV* pSciSyncAttributesInfo + NvSciSyncAttrList pAttributes + + + VkResult vkCreateSemaphoreSciSyncPoolNV + VkDevice device + const VkSemaphoreSciSyncPoolCreateInfoNV* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkSemaphoreSciSyncPoolNV* pSemaphorePool + + + void vkDestroySemaphoreSciSyncPoolNV + VkDevice device + VkSemaphoreSciSyncPoolNV semaphorePool + const VkAllocationCallbacks* pAllocator + + + VkResult vkReleaseDisplayEXT + VkPhysicalDevice physicalDevice + VkDisplayKHR display + + + VkResult vkAcquireXlibDisplayEXT + VkPhysicalDevice physicalDevice + Display* dpy + VkDisplayKHR display + + + VkResult vkGetRandROutputDisplayEXT + VkPhysicalDevice physicalDevice + Display* dpy + RROutput rrOutput + VkDisplayKHR* pDisplay + + + VkResult vkAcquireWinrtDisplayNV + VkPhysicalDevice physicalDevice + VkDisplayKHR display + + + VkResult vkGetWinrtDisplayNV + VkPhysicalDevice physicalDevice + uint32_t deviceRelativeId + VkDisplayKHR* pDisplay + + + VkResult vkDisplayPowerControlEXT + VkDevice device + VkDisplayKHR display + const VkDisplayPowerInfoEXT* pDisplayPowerInfo + + + VkResult vkRegisterDeviceEventEXT + VkDevice device + const VkDeviceEventInfoEXT* pDeviceEventInfo + const VkAllocationCallbacks* pAllocator + VkFence* pFence + + + VkResult vkRegisterDisplayEventEXT + VkDevice device + VkDisplayKHR display + const VkDisplayEventInfoEXT* pDisplayEventInfo + const VkAllocationCallbacks* pAllocator + VkFence* pFence + + + VkResult vkGetSwapchainCounterEXT + VkDevice device + VkSwapchainKHR swapchain + VkSurfaceCounterFlagBitsEXT counter + uint64_t* pCounterValue + + + VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT + VkPhysicalDevice physicalDevice + VkSurfaceKHR surface + VkSurfaceCapabilities2EXT* pSurfaceCapabilities + + + VkResult vkEnumeratePhysicalDeviceGroups + VkInstance instance + uint32_t* pPhysicalDeviceGroupCount + VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties + + + + void vkGetDeviceGroupPeerMemoryFeatures + VkDevice device + uint32_t heapIndex + uint32_t localDeviceIndex + uint32_t remoteDeviceIndex + VkPeerMemoryFeatureFlags* pPeerMemoryFeatures + + + + VkResult vkBindBufferMemory2 + VkDevice device + uint32_t bindInfoCount + const VkBindBufferMemoryInfo* pBindInfos + + + + VkResult vkBindImageMemory2 + VkDevice device + uint32_t bindInfoCount + const VkBindImageMemoryInfo* pBindInfos + + + + void vkCmdSetDeviceMask + VkCommandBuffer commandBuffer + uint32_t deviceMask + + + + VkResult vkGetDeviceGroupPresentCapabilitiesKHR + VkDevice device + VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities + + + VkResult vkGetDeviceGroupSurfacePresentModesKHR + VkDevice device + VkSurfaceKHR surface + VkDeviceGroupPresentModeFlagsKHR* pModes + + + VkResult vkAcquireNextImage2KHR + VkDevice device + const VkAcquireNextImageInfoKHR* pAcquireInfo + uint32_t* pImageIndex + + + void vkCmdDispatchBase + VkCommandBuffer commandBuffer + uint32_t baseGroupX + uint32_t baseGroupY + uint32_t baseGroupZ + uint32_t groupCountX + uint32_t groupCountY + uint32_t groupCountZ + + + + VkResult vkGetPhysicalDevicePresentRectanglesKHR + VkPhysicalDevice physicalDevice + VkSurfaceKHR surface + uint32_t* pRectCount + VkRect2D* pRects + + + VkResult vkCreateDescriptorUpdateTemplate + VkDevice device + const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate + + + + void vkDestroyDescriptorUpdateTemplate + VkDevice device + VkDescriptorUpdateTemplate descriptorUpdateTemplate + const VkAllocationCallbacks* pAllocator + + + + void vkUpdateDescriptorSetWithTemplate + VkDevice device + VkDescriptorSet descriptorSet + VkDescriptorUpdateTemplate descriptorUpdateTemplate + const void* pData + + + + void vkCmdPushDescriptorSetWithTemplateKHR + VkCommandBuffer commandBuffer + VkDescriptorUpdateTemplate descriptorUpdateTemplate + VkPipelineLayout layout + uint32_t set + const void* pData + + + void vkSetHdrMetadataEXT + VkDevice device + uint32_t swapchainCount + const VkSwapchainKHR* pSwapchains + const VkHdrMetadataEXT* pMetadata + + + VkResult vkGetSwapchainStatusKHR + VkDevice device + VkSwapchainKHR swapchain + + + VkResult vkGetRefreshCycleDurationGOOGLE + VkDevice device + VkSwapchainKHR swapchain + VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties + + + VkResult vkGetPastPresentationTimingGOOGLE + VkDevice device + VkSwapchainKHR swapchain + uint32_t* pPresentationTimingCount + VkPastPresentationTimingGOOGLE* pPresentationTimings + + + VkResult vkCreateIOSSurfaceMVK + VkInstance instance + const VkIOSSurfaceCreateInfoMVK* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkSurfaceKHR* pSurface + + + VkResult vkCreateMacOSSurfaceMVK + VkInstance instance + const VkMacOSSurfaceCreateInfoMVK* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkSurfaceKHR* pSurface + + + VkResult vkCreateMetalSurfaceEXT + VkInstance instance + const VkMetalSurfaceCreateInfoEXT* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkSurfaceKHR* pSurface + + + void vkCmdSetViewportWScalingNV + VkCommandBuffer commandBuffer + uint32_t firstViewport + uint32_t viewportCount + const VkViewportWScalingNV* pViewportWScalings + + + void vkCmdSetDiscardRectangleEXT + VkCommandBuffer commandBuffer + uint32_t firstDiscardRectangle + uint32_t discardRectangleCount + const VkRect2D* pDiscardRectangles + + + void vkCmdSetDiscardRectangleEnableEXT + VkCommandBuffer commandBuffer + VkBool32 discardRectangleEnable + + + void vkCmdSetDiscardRectangleModeEXT + VkCommandBuffer commandBuffer + VkDiscardRectangleModeEXT discardRectangleMode + + + void vkCmdSetSampleLocationsEXT + VkCommandBuffer commandBuffer + const VkSampleLocationsInfoEXT* pSampleLocationsInfo + + + void vkGetPhysicalDeviceMultisamplePropertiesEXT + VkPhysicalDevice physicalDevice + VkSampleCountFlagBits samples + VkMultisamplePropertiesEXT* pMultisampleProperties + + + VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR + VkPhysicalDevice physicalDevice + const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo + VkSurfaceCapabilities2KHR* pSurfaceCapabilities + + + VkResult vkGetPhysicalDeviceSurfaceFormats2KHR + VkPhysicalDevice physicalDevice + const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo + uint32_t* pSurfaceFormatCount + VkSurfaceFormat2KHR* pSurfaceFormats + + + VkResult vkGetPhysicalDeviceDisplayProperties2KHR + VkPhysicalDevice physicalDevice + uint32_t* pPropertyCount + VkDisplayProperties2KHR* pProperties + + + VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR + VkPhysicalDevice physicalDevice + uint32_t* pPropertyCount + VkDisplayPlaneProperties2KHR* pProperties + + + VkResult vkGetDisplayModeProperties2KHR + VkPhysicalDevice physicalDevice + VkDisplayKHR display + uint32_t* pPropertyCount + VkDisplayModeProperties2KHR* pProperties + + + VkResult vkGetDisplayPlaneCapabilities2KHR + VkPhysicalDevice physicalDevice + const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo + VkDisplayPlaneCapabilities2KHR* pCapabilities + + + void vkGetBufferMemoryRequirements2 + VkDevice device + const VkBufferMemoryRequirementsInfo2* pInfo + VkMemoryRequirements2* pMemoryRequirements + + + + void vkGetImageMemoryRequirements2 + VkDevice device + const VkImageMemoryRequirementsInfo2* pInfo + VkMemoryRequirements2* pMemoryRequirements + + + + void vkGetImageSparseMemoryRequirements2 + VkDevice device + const VkImageSparseMemoryRequirementsInfo2* pInfo + uint32_t* pSparseMemoryRequirementCount + VkSparseImageMemoryRequirements2* pSparseMemoryRequirements + + + + void vkGetDeviceBufferMemoryRequirements + VkDevice device + const VkDeviceBufferMemoryRequirements* pInfo + VkMemoryRequirements2* pMemoryRequirements + + + + void vkGetDeviceImageMemoryRequirements + VkDevice device + const VkDeviceImageMemoryRequirements* pInfo + VkMemoryRequirements2* pMemoryRequirements + + + + void vkGetDeviceImageSparseMemoryRequirements + VkDevice device + const VkDeviceImageMemoryRequirements* pInfo + uint32_t* pSparseMemoryRequirementCount + VkSparseImageMemoryRequirements2* pSparseMemoryRequirements + + + + VkResult vkCreateSamplerYcbcrConversion + VkDevice device + const VkSamplerYcbcrConversionCreateInfo* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkSamplerYcbcrConversion* pYcbcrConversion + + + + void vkDestroySamplerYcbcrConversion + VkDevice device + VkSamplerYcbcrConversion ycbcrConversion + const VkAllocationCallbacks* pAllocator + + + + void vkGetDeviceQueue2 + VkDevice device + const VkDeviceQueueInfo2* pQueueInfo + VkQueue* pQueue + + + VkResult vkCreateValidationCacheEXT + VkDevice device + const VkValidationCacheCreateInfoEXT* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkValidationCacheEXT* pValidationCache + + + void vkDestroyValidationCacheEXT + VkDevice device + VkValidationCacheEXT validationCache + const VkAllocationCallbacks* pAllocator + + + VkResult vkGetValidationCacheDataEXT + VkDevice device + VkValidationCacheEXT validationCache + size_t* pDataSize + void* pData + + + VkResult vkMergeValidationCachesEXT + VkDevice device + VkValidationCacheEXT dstCache + uint32_t srcCacheCount + const VkValidationCacheEXT* pSrcCaches + + + void vkGetDescriptorSetLayoutSupport + VkDevice device + const VkDescriptorSetLayoutCreateInfo* pCreateInfo + VkDescriptorSetLayoutSupport* pSupport + + + + VkResult vkGetSwapchainGrallocUsageANDROID + VkDevice device + VkFormat format + VkImageUsageFlags imageUsage + int* grallocUsage + + + VkResult vkGetSwapchainGrallocUsage2ANDROID + VkDevice device + VkFormat format + VkImageUsageFlags imageUsage + VkSwapchainImageUsageFlagsANDROID swapchainImageUsage + uint64_t* grallocConsumerUsage + uint64_t* grallocProducerUsage + + + VkResult vkAcquireImageANDROID + VkDevice device + VkImage image + int nativeFenceFd + VkSemaphore semaphore + VkFence fence + + + VkResult vkQueueSignalReleaseImageANDROID + VkQueue queue + uint32_t waitSemaphoreCount + const VkSemaphore* pWaitSemaphores + VkImage image + int* pNativeFenceFd + + + VkResult vkGetShaderInfoAMD + VkDevice device + VkPipeline pipeline + VkShaderStageFlagBits shaderStage + VkShaderInfoTypeAMD infoType + size_t* pInfoSize + void* pInfo + + + void vkSetLocalDimmingAMD + VkDevice device + VkSwapchainKHR swapChain + VkBool32 localDimmingEnable + + + VkResult vkGetPhysicalDeviceCalibrateableTimeDomainsKHR + VkPhysicalDevice physicalDevice + uint32_t* pTimeDomainCount + VkTimeDomainKHR* pTimeDomains + + + + VkResult vkGetCalibratedTimestampsKHR + VkDevice device + uint32_t timestampCount + const VkCalibratedTimestampInfoKHR* pTimestampInfos + uint64_t* pTimestamps + uint64_t* pMaxDeviation + + + + VkResult vkSetDebugUtilsObjectNameEXT + VkDevice device + const VkDebugUtilsObjectNameInfoEXT* pNameInfo + + + VkResult vkSetDebugUtilsObjectTagEXT + VkDevice device + const VkDebugUtilsObjectTagInfoEXT* pTagInfo + + + void vkQueueBeginDebugUtilsLabelEXT + VkQueue queue + const VkDebugUtilsLabelEXT* pLabelInfo + + + void vkQueueEndDebugUtilsLabelEXT + VkQueue queue + + + void vkQueueInsertDebugUtilsLabelEXT + VkQueue queue + const VkDebugUtilsLabelEXT* pLabelInfo + + + void vkCmdBeginDebugUtilsLabelEXT + VkCommandBuffer commandBuffer + const VkDebugUtilsLabelEXT* pLabelInfo + + + void vkCmdEndDebugUtilsLabelEXT + VkCommandBuffer commandBuffer + + + void vkCmdInsertDebugUtilsLabelEXT + VkCommandBuffer commandBuffer + const VkDebugUtilsLabelEXT* pLabelInfo + + + VkResult vkCreateDebugUtilsMessengerEXT + VkInstance instance + const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkDebugUtilsMessengerEXT* pMessenger + + + void vkDestroyDebugUtilsMessengerEXT + VkInstance instance + VkDebugUtilsMessengerEXT messenger + const VkAllocationCallbacks* pAllocator + + + void vkSubmitDebugUtilsMessageEXT + VkInstance instance + VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity + VkDebugUtilsMessageTypeFlagsEXT messageTypes + const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData + + + VkResult vkGetMemoryHostPointerPropertiesEXT + VkDevice device + VkExternalMemoryHandleTypeFlagBits handleType + const void* pHostPointer + VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties + + + void vkCmdWriteBufferMarkerAMD + VkCommandBuffer commandBuffer + VkPipelineStageFlagBits pipelineStage + VkBuffer dstBuffer + VkDeviceSize dstOffset + uint32_t marker + + + VkResult vkCreateRenderPass2 + VkDevice device + const VkRenderPassCreateInfo2* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkRenderPass* pRenderPass + + + + void vkCmdBeginRenderPass2 + VkCommandBuffer commandBuffer + const VkRenderPassBeginInfo* pRenderPassBegin + const VkSubpassBeginInfo* pSubpassBeginInfo + + + + void vkCmdNextSubpass2 + VkCommandBuffer commandBuffer + const VkSubpassBeginInfo* pSubpassBeginInfo + const VkSubpassEndInfo* pSubpassEndInfo + + + + void vkCmdEndRenderPass2 + VkCommandBuffer commandBuffer + const VkSubpassEndInfo* pSubpassEndInfo + + + + VkResult vkGetSemaphoreCounterValue + VkDevice device + VkSemaphore semaphore + uint64_t* pValue + + + + VkResult vkWaitSemaphores + VkDevice device + const VkSemaphoreWaitInfo* pWaitInfo + uint64_t timeout + + + + VkResult vkSignalSemaphore + VkDevice device + const VkSemaphoreSignalInfo* pSignalInfo + + + + VkResult vkGetAndroidHardwareBufferPropertiesANDROID + VkDevice device + const struct AHardwareBuffer* buffer + VkAndroidHardwareBufferPropertiesANDROID* pProperties + + + VkResult vkGetMemoryAndroidHardwareBufferANDROID + VkDevice device + const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo + struct AHardwareBuffer** pBuffer + + + void vkCmdDrawIndirectCount + VkCommandBuffer commandBuffer + VkBuffer buffer + VkDeviceSize offset + VkBuffer countBuffer + VkDeviceSize countBufferOffset + uint32_t maxDrawCount + uint32_t stride + + + + + void vkCmdDrawIndexedIndirectCount + VkCommandBuffer commandBuffer + VkBuffer buffer + VkDeviceSize offset + VkBuffer countBuffer + VkDeviceSize countBufferOffset + uint32_t maxDrawCount + uint32_t stride + + + + + void vkCmdSetCheckpointNV + VkCommandBuffer commandBuffer + const void* pCheckpointMarker + + + void vkGetQueueCheckpointDataNV + VkQueue queue + uint32_t* pCheckpointDataCount + VkCheckpointDataNV* pCheckpointData + + + void vkCmdBindTransformFeedbackBuffersEXT + VkCommandBuffer commandBuffer + uint32_t firstBinding + uint32_t bindingCount + const VkBuffer* pBuffers + const VkDeviceSize* pOffsets + const VkDeviceSize* pSizes + + + void vkCmdBeginTransformFeedbackEXT + VkCommandBuffer commandBuffer + uint32_t firstCounterBuffer + uint32_t counterBufferCount + const VkBuffer* pCounterBuffers + const VkDeviceSize* pCounterBufferOffsets + + + void vkCmdEndTransformFeedbackEXT + VkCommandBuffer commandBuffer + uint32_t firstCounterBuffer + uint32_t counterBufferCount + const VkBuffer* pCounterBuffers + const VkDeviceSize* pCounterBufferOffsets + + + void vkCmdBeginQueryIndexedEXT + VkCommandBuffer commandBuffer + VkQueryPool queryPool + uint32_t query + VkQueryControlFlags flags + uint32_t index + + + void vkCmdEndQueryIndexedEXT + VkCommandBuffer commandBuffer + VkQueryPool queryPool + uint32_t query + uint32_t index + + + void vkCmdDrawIndirectByteCountEXT + VkCommandBuffer commandBuffer + uint32_t instanceCount + uint32_t firstInstance + VkBuffer counterBuffer + VkDeviceSize counterBufferOffset + uint32_t counterOffset + uint32_t vertexStride + + + void vkCmdSetExclusiveScissorNV + VkCommandBuffer commandBuffer + uint32_t firstExclusiveScissor + uint32_t exclusiveScissorCount + const VkRect2D* pExclusiveScissors + + + void vkCmdSetExclusiveScissorEnableNV + VkCommandBuffer commandBuffer + uint32_t firstExclusiveScissor + uint32_t exclusiveScissorCount + const VkBool32* pExclusiveScissorEnables + + + void vkCmdBindShadingRateImageNV + VkCommandBuffer commandBuffer + VkImageView imageView + VkImageLayout imageLayout + + + void vkCmdSetViewportShadingRatePaletteNV + VkCommandBuffer commandBuffer + uint32_t firstViewport + uint32_t viewportCount + const VkShadingRatePaletteNV* pShadingRatePalettes + + + void vkCmdSetCoarseSampleOrderNV + VkCommandBuffer commandBuffer + VkCoarseSampleOrderTypeNV sampleOrderType + uint32_t customSampleOrderCount + const VkCoarseSampleOrderCustomNV* pCustomSampleOrders + + + void vkCmdDrawMeshTasksNV + VkCommandBuffer commandBuffer + uint32_t taskCount + uint32_t firstTask + + + void vkCmdDrawMeshTasksIndirectNV + VkCommandBuffer commandBuffer + VkBuffer buffer + VkDeviceSize offset + uint32_t drawCount + uint32_t stride + + + void vkCmdDrawMeshTasksIndirectCountNV + VkCommandBuffer commandBuffer + VkBuffer buffer + VkDeviceSize offset + VkBuffer countBuffer + VkDeviceSize countBufferOffset + uint32_t maxDrawCount + uint32_t stride + + + void vkCmdDrawMeshTasksEXT + VkCommandBuffer commandBuffer + uint32_t groupCountX + uint32_t groupCountY + uint32_t groupCountZ + + + void vkCmdDrawMeshTasksIndirectEXT + VkCommandBuffer commandBuffer + VkBuffer buffer + VkDeviceSize offset + uint32_t drawCount + uint32_t stride + + + void vkCmdDrawMeshTasksIndirectCountEXT + VkCommandBuffer commandBuffer + VkBuffer buffer + VkDeviceSize offset + VkBuffer countBuffer + VkDeviceSize countBufferOffset + uint32_t maxDrawCount + uint32_t stride + + + VkResult vkCompileDeferredNV + VkDevice device + VkPipeline pipeline + uint32_t shader + + + VkResult vkCreateAccelerationStructureNV + VkDevice device + const VkAccelerationStructureCreateInfoNV* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkAccelerationStructureNV* pAccelerationStructure + + + void vkCmdBindInvocationMaskHUAWEI + VkCommandBuffer commandBuffer + VkImageView imageView + VkImageLayout imageLayout + + + void vkDestroyAccelerationStructureKHR + VkDevice device + VkAccelerationStructureKHR accelerationStructure + const VkAllocationCallbacks* pAllocator + + + void vkDestroyAccelerationStructureNV + VkDevice device + VkAccelerationStructureNV accelerationStructure + const VkAllocationCallbacks* pAllocator + + + void vkGetAccelerationStructureMemoryRequirementsNV + VkDevice device + const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo + VkMemoryRequirements2KHR* pMemoryRequirements + + + VkResult vkBindAccelerationStructureMemoryNV + VkDevice device + uint32_t bindInfoCount + const VkBindAccelerationStructureMemoryInfoNV* pBindInfos + + + void vkCmdCopyAccelerationStructureNV + VkCommandBuffer commandBuffer + VkAccelerationStructureNV dst + VkAccelerationStructureNV src + VkCopyAccelerationStructureModeKHR mode + + + void vkCmdCopyAccelerationStructureKHR + VkCommandBuffer commandBuffer + const VkCopyAccelerationStructureInfoKHR* pInfo + + + VkResult vkCopyAccelerationStructureKHR + VkDevice device + VkDeferredOperationKHR deferredOperation + const VkCopyAccelerationStructureInfoKHR* pInfo + + + void vkCmdCopyAccelerationStructureToMemoryKHR + VkCommandBuffer commandBuffer + const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo + + + VkResult vkCopyAccelerationStructureToMemoryKHR + VkDevice device + VkDeferredOperationKHR deferredOperation + const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo + + + void vkCmdCopyMemoryToAccelerationStructureKHR + VkCommandBuffer commandBuffer + const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo + + + VkResult vkCopyMemoryToAccelerationStructureKHR + VkDevice device + VkDeferredOperationKHR deferredOperation + const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo + + + void vkCmdWriteAccelerationStructuresPropertiesKHR + VkCommandBuffer commandBuffer + uint32_t accelerationStructureCount + const VkAccelerationStructureKHR* pAccelerationStructures + VkQueryType queryType + VkQueryPool queryPool + uint32_t firstQuery + + + void vkCmdWriteAccelerationStructuresPropertiesNV + VkCommandBuffer commandBuffer + uint32_t accelerationStructureCount + const VkAccelerationStructureNV* pAccelerationStructures + VkQueryType queryType + VkQueryPool queryPool + uint32_t firstQuery + + + void vkCmdBuildAccelerationStructureNV + VkCommandBuffer commandBuffer + const VkAccelerationStructureInfoNV* pInfo + VkBuffer instanceData + VkDeviceSize instanceOffset + VkBool32 update + VkAccelerationStructureNV dst + VkAccelerationStructureNV src + VkBuffer scratch + VkDeviceSize scratchOffset + + + VkResult vkWriteAccelerationStructuresPropertiesKHR + VkDevice device + uint32_t accelerationStructureCount + const VkAccelerationStructureKHR* pAccelerationStructures + VkQueryType queryType + size_t dataSize + void* pData + size_t stride + + + void vkCmdTraceRaysKHR + VkCommandBuffer commandBuffer + const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable + const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable + const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable + const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable + uint32_t width + uint32_t height + uint32_t depth + + + void vkCmdTraceRaysNV + VkCommandBuffer commandBuffer + VkBuffer raygenShaderBindingTableBuffer + VkDeviceSize raygenShaderBindingOffset + VkBuffer missShaderBindingTableBuffer + VkDeviceSize missShaderBindingOffset + VkDeviceSize missShaderBindingStride + VkBuffer hitShaderBindingTableBuffer + VkDeviceSize hitShaderBindingOffset + VkDeviceSize hitShaderBindingStride + VkBuffer callableShaderBindingTableBuffer + VkDeviceSize callableShaderBindingOffset + VkDeviceSize callableShaderBindingStride + uint32_t width + uint32_t height + uint32_t depth + + + VkResult vkGetRayTracingShaderGroupHandlesKHR + VkDevice device + VkPipeline pipeline + uint32_t firstGroup + uint32_t groupCount + size_t dataSize + void* pData + + + + VkResult vkGetRayTracingCaptureReplayShaderGroupHandlesKHR + VkDevice device + VkPipeline pipeline + uint32_t firstGroup + uint32_t groupCount + size_t dataSize + void* pData + + + VkResult vkGetAccelerationStructureHandleNV + VkDevice device + VkAccelerationStructureNV accelerationStructure + size_t dataSize + void* pData + + + VkResult vkCreateRayTracingPipelinesNV + VkDevice device + VkPipelineCache pipelineCache + uint32_t createInfoCount + const VkRayTracingPipelineCreateInfoNV* pCreateInfos + const VkAllocationCallbacks* pAllocator + VkPipeline* pPipelines + + + VkResult vkCreateRayTracingPipelinesNV + VkDevice device + VkPipelineCache pipelineCache + uint32_t createInfoCount + const VkRayTracingPipelineCreateInfoNV* pCreateInfos + const VkAllocationCallbacks* pAllocator + VkPipeline* pPipelines + + + VkResult vkCreateRayTracingPipelinesKHR + VkDevice device + VkDeferredOperationKHR deferredOperation + VkPipelineCache pipelineCache + uint32_t createInfoCount + const VkRayTracingPipelineCreateInfoKHR* pCreateInfos + const VkAllocationCallbacks* pAllocator + VkPipeline* pPipelines + + + VkResult vkCreateRayTracingPipelinesKHR + VkDevice device + VkDeferredOperationKHR deferredOperation + VkPipelineCache pipelineCache + uint32_t createInfoCount + const VkRayTracingPipelineCreateInfoKHR* pCreateInfos + const VkAllocationCallbacks* pAllocator + VkPipeline* pPipelines + + + VkResult vkGetPhysicalDeviceCooperativeMatrixPropertiesNV + VkPhysicalDevice physicalDevice + uint32_t* pPropertyCount + VkCooperativeMatrixPropertiesNV* pProperties + + + void vkCmdTraceRaysIndirectKHR + VkCommandBuffer commandBuffer + const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable + const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable + const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable + const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable + VkDeviceAddress indirectDeviceAddress + + + void vkCmdTraceRaysIndirect2KHR + VkCommandBuffer commandBuffer + VkDeviceAddress indirectDeviceAddress + + + void vkGetDeviceAccelerationStructureCompatibilityKHR + VkDevice device + const VkAccelerationStructureVersionInfoKHR* pVersionInfo + VkAccelerationStructureCompatibilityKHR* pCompatibility + + + VkDeviceSize vkGetRayTracingShaderGroupStackSizeKHR + VkDevice device + VkPipeline pipeline + uint32_t group + VkShaderGroupShaderKHR groupShader + + + void vkCmdSetRayTracingPipelineStackSizeKHR + VkCommandBuffer commandBuffer + uint32_t pipelineStackSize + + + uint32_t vkGetImageViewHandleNVX + VkDevice device + const VkImageViewHandleInfoNVX* pInfo + + + VkResult vkGetImageViewAddressNVX + VkDevice device + VkImageView imageView + VkImageViewAddressPropertiesNVX* pProperties + + + VkResult vkGetPhysicalDeviceSurfacePresentModes2EXT + VkPhysicalDevice physicalDevice + const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo + uint32_t* pPresentModeCount + VkPresentModeKHR* pPresentModes + + + VkResult vkGetDeviceGroupSurfacePresentModes2EXT + VkDevice device + const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo + VkDeviceGroupPresentModeFlagsKHR* pModes + + + VkResult vkAcquireFullScreenExclusiveModeEXT + VkDevice device + VkSwapchainKHR swapchain + + + VkResult vkReleaseFullScreenExclusiveModeEXT + VkDevice device + VkSwapchainKHR swapchain + + + VkResult vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR + VkPhysicalDevice physicalDevice + uint32_t queueFamilyIndex + uint32_t* pCounterCount + VkPerformanceCounterKHR* pCounters + VkPerformanceCounterDescriptionKHR* pCounterDescriptions + + + void vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR + VkPhysicalDevice physicalDevice + const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo + uint32_t* pNumPasses + + + VkResult vkAcquireProfilingLockKHR + VkDevice device + const VkAcquireProfilingLockInfoKHR* pInfo + + + void vkReleaseProfilingLockKHR + VkDevice device + + + VkResult vkGetImageDrmFormatModifierPropertiesEXT + VkDevice device + VkImage image + VkImageDrmFormatModifierPropertiesEXT* pProperties + + + uint64_t vkGetBufferOpaqueCaptureAddress + VkDevice device + const VkBufferDeviceAddressInfo* pInfo + + + + VkDeviceAddress vkGetBufferDeviceAddress + VkDevice device + const VkBufferDeviceAddressInfo* pInfo + + + + + VkResult vkCreateHeadlessSurfaceEXT + VkInstance instance + const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkSurfaceKHR* pSurface + + + VkResult vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV + VkPhysicalDevice physicalDevice + uint32_t* pCombinationCount + VkFramebufferMixedSamplesCombinationNV* pCombinations + + + VkResult vkInitializePerformanceApiINTEL + VkDevice device + const VkInitializePerformanceApiInfoINTEL* pInitializeInfo + + + void vkUninitializePerformanceApiINTEL + VkDevice device + + + VkResult vkCmdSetPerformanceMarkerINTEL + VkCommandBuffer commandBuffer + const VkPerformanceMarkerInfoINTEL* pMarkerInfo + + + VkResult vkCmdSetPerformanceStreamMarkerINTEL + VkCommandBuffer commandBuffer + const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo + + + VkResult vkCmdSetPerformanceOverrideINTEL + VkCommandBuffer commandBuffer + const VkPerformanceOverrideInfoINTEL* pOverrideInfo + + + VkResult vkAcquirePerformanceConfigurationINTEL + VkDevice device + const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo + VkPerformanceConfigurationINTEL* pConfiguration + + + VkResult vkReleasePerformanceConfigurationINTEL + VkDevice device + VkPerformanceConfigurationINTEL configuration + + + VkResult vkQueueSetPerformanceConfigurationINTEL + VkQueue queue + VkPerformanceConfigurationINTEL configuration + + + VkResult vkGetPerformanceParameterINTEL + VkDevice device + VkPerformanceParameterTypeINTEL parameter + VkPerformanceValueINTEL* pValue + + + uint64_t vkGetDeviceMemoryOpaqueCaptureAddress + VkDevice device + const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo + + + + VkResult vkGetPipelineExecutablePropertiesKHR + VkDevice device + const VkPipelineInfoKHR* pPipelineInfo + uint32_t* pExecutableCount + VkPipelineExecutablePropertiesKHR* pProperties + + + VkResult vkGetPipelineExecutableStatisticsKHR + VkDevice device + const VkPipelineExecutableInfoKHR* pExecutableInfo + uint32_t* pStatisticCount + VkPipelineExecutableStatisticKHR* pStatistics + + + VkResult vkGetPipelineExecutableInternalRepresentationsKHR + VkDevice device + const VkPipelineExecutableInfoKHR* pExecutableInfo + uint32_t* pInternalRepresentationCount + VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations + + + void vkCmdSetLineStippleKHR + VkCommandBuffer commandBuffer + uint32_t lineStippleFactor + uint16_t lineStipplePattern + + + + VkResult vkGetFaultData + VkDevice device + VkFaultQueryBehavior faultQueryBehavior + VkBool32* pUnrecordedFaults + uint32_t* pFaultCount + VkFaultData* pFaults + + + VkResult vkGetPhysicalDeviceToolProperties + VkPhysicalDevice physicalDevice + uint32_t* pToolCount + VkPhysicalDeviceToolProperties* pToolProperties + + + + VkResult vkCreateAccelerationStructureKHR + VkDevice device + const VkAccelerationStructureCreateInfoKHR* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkAccelerationStructureKHR* pAccelerationStructure + + + void vkCmdBuildAccelerationStructuresKHR + VkCommandBuffer commandBuffer + uint32_t infoCount + const VkAccelerationStructureBuildGeometryInfoKHR* pInfos + const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos + + + void vkCmdBuildAccelerationStructuresIndirectKHR + VkCommandBuffer commandBuffer + uint32_t infoCount + const VkAccelerationStructureBuildGeometryInfoKHR* pInfos + const VkDeviceAddress* pIndirectDeviceAddresses + const uint32_t* pIndirectStrides + const uint32_t* const* ppMaxPrimitiveCounts + + + VkResult vkBuildAccelerationStructuresKHR + VkDevice device + VkDeferredOperationKHR deferredOperation + uint32_t infoCount + const VkAccelerationStructureBuildGeometryInfoKHR* pInfos + const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos + + + VkDeviceAddress vkGetAccelerationStructureDeviceAddressKHR + VkDevice device + const VkAccelerationStructureDeviceAddressInfoKHR* pInfo + + + VkResult vkCreateDeferredOperationKHR + VkDevice device + const VkAllocationCallbacks* pAllocator + VkDeferredOperationKHR* pDeferredOperation + + + void vkDestroyDeferredOperationKHR + VkDevice device + VkDeferredOperationKHR operation + const VkAllocationCallbacks* pAllocator + + + uint32_t vkGetDeferredOperationMaxConcurrencyKHR + VkDevice device + VkDeferredOperationKHR operation + + + VkResult vkGetDeferredOperationResultKHR + VkDevice device + VkDeferredOperationKHR operation + + + VkResult vkDeferredOperationJoinKHR + VkDevice device + VkDeferredOperationKHR operation + + + void vkGetPipelineIndirectMemoryRequirementsNV + VkDevice device + const VkComputePipelineCreateInfo* pCreateInfo + VkMemoryRequirements2* pMemoryRequirements + + + VkDeviceAddress vkGetPipelineIndirectDeviceAddressNV + VkDevice device + const VkPipelineIndirectDeviceAddressInfoNV* pInfo + + + void vkCmdSetCullMode + VkCommandBuffer commandBuffer + VkCullModeFlags cullMode + + + + void vkCmdSetFrontFace + VkCommandBuffer commandBuffer + VkFrontFace frontFace + + + + void vkCmdSetPrimitiveTopology + VkCommandBuffer commandBuffer + VkPrimitiveTopology primitiveTopology + + + + void vkCmdSetViewportWithCount + VkCommandBuffer commandBuffer + uint32_t viewportCount + const VkViewport* pViewports + + + + void vkCmdSetScissorWithCount + VkCommandBuffer commandBuffer + uint32_t scissorCount + const VkRect2D* pScissors + + + + void vkCmdBindIndexBuffer2KHR + VkCommandBuffer commandBuffer + VkBuffer buffer + VkDeviceSize offset + VkDeviceSize size + VkIndexType indexType + + + void vkCmdBindVertexBuffers2 + VkCommandBuffer commandBuffer + uint32_t firstBinding + uint32_t bindingCount + const VkBuffer* pBuffers + const VkDeviceSize* pOffsets + const VkDeviceSize* pSizes + const VkDeviceSize* pStrides + + + + void vkCmdSetDepthTestEnable + VkCommandBuffer commandBuffer + VkBool32 depthTestEnable + + + + void vkCmdSetDepthWriteEnable + VkCommandBuffer commandBuffer + VkBool32 depthWriteEnable + + + + void vkCmdSetDepthCompareOp + VkCommandBuffer commandBuffer + VkCompareOp depthCompareOp + + + + void vkCmdSetDepthBoundsTestEnable + VkCommandBuffer commandBuffer + VkBool32 depthBoundsTestEnable + + + + void vkCmdSetStencilTestEnable + VkCommandBuffer commandBuffer + VkBool32 stencilTestEnable + + + + void vkCmdSetStencilOp + VkCommandBuffer commandBuffer + VkStencilFaceFlags faceMask + VkStencilOp failOp + VkStencilOp passOp + VkStencilOp depthFailOp + VkCompareOp compareOp + + + + void vkCmdSetPatchControlPointsEXT + VkCommandBuffer commandBuffer + uint32_t patchControlPoints + + + void vkCmdSetRasterizerDiscardEnable + VkCommandBuffer commandBuffer + VkBool32 rasterizerDiscardEnable + + + + void vkCmdSetDepthBiasEnable + VkCommandBuffer commandBuffer + VkBool32 depthBiasEnable + + + + void vkCmdSetLogicOpEXT + VkCommandBuffer commandBuffer + VkLogicOp logicOp + + + void vkCmdSetPrimitiveRestartEnable + VkCommandBuffer commandBuffer + VkBool32 primitiveRestartEnable + + + + void vkCmdSetTessellationDomainOriginEXT + VkCommandBuffer commandBuffer + VkTessellationDomainOrigin domainOrigin + + + void vkCmdSetDepthClampEnableEXT + VkCommandBuffer commandBuffer + VkBool32 depthClampEnable + + + void vkCmdSetPolygonModeEXT + VkCommandBuffer commandBuffer + VkPolygonMode polygonMode + + + void vkCmdSetRasterizationSamplesEXT + VkCommandBuffer commandBuffer + VkSampleCountFlagBits rasterizationSamples + + + void vkCmdSetSampleMaskEXT + VkCommandBuffer commandBuffer + VkSampleCountFlagBits samples + const VkSampleMask* pSampleMask + + + void vkCmdSetAlphaToCoverageEnableEXT + VkCommandBuffer commandBuffer + VkBool32 alphaToCoverageEnable + + + void vkCmdSetAlphaToOneEnableEXT + VkCommandBuffer commandBuffer + VkBool32 alphaToOneEnable + + + void vkCmdSetLogicOpEnableEXT + VkCommandBuffer commandBuffer + VkBool32 logicOpEnable + + + void vkCmdSetColorBlendEnableEXT + VkCommandBuffer commandBuffer + uint32_t firstAttachment + uint32_t attachmentCount + const VkBool32* pColorBlendEnables + + + void vkCmdSetColorBlendEquationEXT + VkCommandBuffer commandBuffer + uint32_t firstAttachment + uint32_t attachmentCount + const VkColorBlendEquationEXT* pColorBlendEquations + + + void vkCmdSetColorWriteMaskEXT + VkCommandBuffer commandBuffer + uint32_t firstAttachment + uint32_t attachmentCount + const VkColorComponentFlags* pColorWriteMasks + + + void vkCmdSetRasterizationStreamEXT + VkCommandBuffer commandBuffer + uint32_t rasterizationStream + + + void vkCmdSetConservativeRasterizationModeEXT + VkCommandBuffer commandBuffer + VkConservativeRasterizationModeEXT conservativeRasterizationMode + + + void vkCmdSetExtraPrimitiveOverestimationSizeEXT + VkCommandBuffer commandBuffer + float extraPrimitiveOverestimationSize + + + void vkCmdSetDepthClipEnableEXT + VkCommandBuffer commandBuffer + VkBool32 depthClipEnable + + + void vkCmdSetSampleLocationsEnableEXT + VkCommandBuffer commandBuffer + VkBool32 sampleLocationsEnable + + + void vkCmdSetColorBlendAdvancedEXT + VkCommandBuffer commandBuffer + uint32_t firstAttachment + uint32_t attachmentCount + const VkColorBlendAdvancedEXT* pColorBlendAdvanced + + + void vkCmdSetProvokingVertexModeEXT + VkCommandBuffer commandBuffer + VkProvokingVertexModeEXT provokingVertexMode + + + void vkCmdSetLineRasterizationModeEXT + VkCommandBuffer commandBuffer + VkLineRasterizationModeEXT lineRasterizationMode + + + void vkCmdSetLineStippleEnableEXT + VkCommandBuffer commandBuffer + VkBool32 stippledLineEnable + + + void vkCmdSetDepthClipNegativeOneToOneEXT + VkCommandBuffer commandBuffer + VkBool32 negativeOneToOne + + + void vkCmdSetViewportWScalingEnableNV + VkCommandBuffer commandBuffer + VkBool32 viewportWScalingEnable + + + void vkCmdSetViewportSwizzleNV + VkCommandBuffer commandBuffer + uint32_t firstViewport + uint32_t viewportCount + const VkViewportSwizzleNV* pViewportSwizzles + + + void vkCmdSetCoverageToColorEnableNV + VkCommandBuffer commandBuffer + VkBool32 coverageToColorEnable + + + void vkCmdSetCoverageToColorLocationNV + VkCommandBuffer commandBuffer + uint32_t coverageToColorLocation + + + void vkCmdSetCoverageModulationModeNV + VkCommandBuffer commandBuffer + VkCoverageModulationModeNV coverageModulationMode + + + void vkCmdSetCoverageModulationTableEnableNV + VkCommandBuffer commandBuffer + VkBool32 coverageModulationTableEnable + + + void vkCmdSetCoverageModulationTableNV + VkCommandBuffer commandBuffer + uint32_t coverageModulationTableCount + const float* pCoverageModulationTable + + + void vkCmdSetShadingRateImageEnableNV + VkCommandBuffer commandBuffer + VkBool32 shadingRateImageEnable + + + void vkCmdSetCoverageReductionModeNV + VkCommandBuffer commandBuffer + VkCoverageReductionModeNV coverageReductionMode + + + void vkCmdSetRepresentativeFragmentTestEnableNV + VkCommandBuffer commandBuffer + VkBool32 representativeFragmentTestEnable + + + VkResult vkCreatePrivateDataSlot + VkDevice device + const VkPrivateDataSlotCreateInfo* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkPrivateDataSlot* pPrivateDataSlot + + + + void vkDestroyPrivateDataSlot + VkDevice device + VkPrivateDataSlot privateDataSlot + const VkAllocationCallbacks* pAllocator + + + + VkResult vkSetPrivateData + VkDevice device + VkObjectType objectType + uint64_t objectHandle + VkPrivateDataSlot privateDataSlot + uint64_t data + + + + void vkGetPrivateData + VkDevice device + VkObjectType objectType + uint64_t objectHandle + VkPrivateDataSlot privateDataSlot + uint64_t* pData + + + + void vkCmdCopyBuffer2 + VkCommandBuffer commandBuffer + const VkCopyBufferInfo2* pCopyBufferInfo + + + + void vkCmdCopyImage2 + VkCommandBuffer commandBuffer + const VkCopyImageInfo2* pCopyImageInfo + + + + void vkCmdBlitImage2 + VkCommandBuffer commandBuffer + const VkBlitImageInfo2* pBlitImageInfo + + + + void vkCmdCopyBufferToImage2 + VkCommandBuffer commandBuffer + const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo + + + + void vkCmdCopyImageToBuffer2 + VkCommandBuffer commandBuffer + const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo + + + + void vkCmdResolveImage2 + VkCommandBuffer commandBuffer + const VkResolveImageInfo2* pResolveImageInfo + + + + void vkCmdRefreshObjectsKHR + VkCommandBuffer commandBuffer + const VkRefreshObjectListKHR* pRefreshObjects + + + VkResult vkGetPhysicalDeviceRefreshableObjectTypesKHR + VkPhysicalDevice physicalDevice + uint32_t* pRefreshableObjectTypeCount + VkObjectType* pRefreshableObjectTypes + + + void vkCmdSetFragmentShadingRateKHR + VkCommandBuffer commandBuffer + const VkExtent2D* pFragmentSize + const VkFragmentShadingRateCombinerOpKHR combinerOps[2] + + + VkResult vkGetPhysicalDeviceFragmentShadingRatesKHR + VkPhysicalDevice physicalDevice + uint32_t* pFragmentShadingRateCount + VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates + + + void vkCmdSetFragmentShadingRateEnumNV + VkCommandBuffer commandBuffer + VkFragmentShadingRateNV shadingRate + const VkFragmentShadingRateCombinerOpKHR combinerOps[2] + + + void vkGetAccelerationStructureBuildSizesKHR + VkDevice device + VkAccelerationStructureBuildTypeKHR buildType + const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo + const uint32_t* pMaxPrimitiveCounts + VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo + + + void vkCmdSetVertexInputEXT + VkCommandBuffer commandBuffer + uint32_t vertexBindingDescriptionCount + const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions + uint32_t vertexAttributeDescriptionCount + const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions + + + void vkCmdSetColorWriteEnableEXT + VkCommandBuffer commandBuffer + uint32_t attachmentCount + const VkBool32* pColorWriteEnables + + + void vkCmdSetEvent2 + VkCommandBuffer commandBuffer + VkEvent event + const VkDependencyInfo* pDependencyInfo + + + + void vkCmdResetEvent2 + VkCommandBuffer commandBuffer + VkEvent event + VkPipelineStageFlags2 stageMask + + + + void vkCmdWaitEvents2 + VkCommandBuffer commandBuffer + uint32_t eventCount + const VkEvent* pEvents + const VkDependencyInfo* pDependencyInfos + + + + void vkCmdPipelineBarrier2 + VkCommandBuffer commandBuffer + const VkDependencyInfo* pDependencyInfo + + + + VkResult vkQueueSubmit2 + VkQueue queue + uint32_t submitCount + const VkSubmitInfo2* pSubmits + VkFence fence + + + + void vkCmdWriteTimestamp2 + VkCommandBuffer commandBuffer + VkPipelineStageFlags2 stage + VkQueryPool queryPool + uint32_t query + + + + void vkCmdWriteBufferMarker2AMD + VkCommandBuffer commandBuffer + VkPipelineStageFlags2 stage + VkBuffer dstBuffer + VkDeviceSize dstOffset + uint32_t marker + + + void vkGetQueueCheckpointData2NV + VkQueue queue + uint32_t* pCheckpointDataCount + VkCheckpointData2NV* pCheckpointData + + + VkResult vkCopyMemoryToImageEXT + VkDevice device + const VkCopyMemoryToImageInfoEXT* pCopyMemoryToImageInfo + + + VkResult vkCopyImageToMemoryEXT + VkDevice device + const VkCopyImageToMemoryInfoEXT* pCopyImageToMemoryInfo + + + VkResult vkCopyImageToImageEXT + VkDevice device + const VkCopyImageToImageInfoEXT* pCopyImageToImageInfo + + + VkResult vkTransitionImageLayoutEXT + VkDevice device + uint32_t transitionCount + const VkHostImageLayoutTransitionInfoEXT* pTransitions + + + void vkGetCommandPoolMemoryConsumption + VkDevice device + VkCommandPool commandPool + VkCommandBuffer commandBuffer + VkCommandPoolMemoryConsumption* pConsumption + + + VkResult vkGetPhysicalDeviceVideoCapabilitiesKHR + VkPhysicalDevice physicalDevice + const VkVideoProfileInfoKHR* pVideoProfile + VkVideoCapabilitiesKHR* pCapabilities + + + VkResult vkGetPhysicalDeviceVideoFormatPropertiesKHR + VkPhysicalDevice physicalDevice + const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo + uint32_t* pVideoFormatPropertyCount + VkVideoFormatPropertiesKHR* pVideoFormatProperties + + + VkResult vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR + VkPhysicalDevice physicalDevice + const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo + VkVideoEncodeQualityLevelPropertiesKHR* pQualityLevelProperties + + + VkResult vkCreateVideoSessionKHR + VkDevice device + const VkVideoSessionCreateInfoKHR* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkVideoSessionKHR* pVideoSession + + + void vkDestroyVideoSessionKHR + VkDevice device + VkVideoSessionKHR videoSession + const VkAllocationCallbacks* pAllocator + + + VkResult vkCreateVideoSessionParametersKHR + VkDevice device + const VkVideoSessionParametersCreateInfoKHR* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkVideoSessionParametersKHR* pVideoSessionParameters + + + VkResult vkUpdateVideoSessionParametersKHR + VkDevice device + VkVideoSessionParametersKHR videoSessionParameters + const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo + + + VkResult vkGetEncodedVideoSessionParametersKHR + VkDevice device + const VkVideoEncodeSessionParametersGetInfoKHR* pVideoSessionParametersInfo + VkVideoEncodeSessionParametersFeedbackInfoKHR* pFeedbackInfo + size_t* pDataSize + void* pData + + + void vkDestroyVideoSessionParametersKHR + VkDevice device + VkVideoSessionParametersKHR videoSessionParameters + const VkAllocationCallbacks* pAllocator + + + VkResult vkGetVideoSessionMemoryRequirementsKHR + VkDevice device + VkVideoSessionKHR videoSession + uint32_t* pMemoryRequirementsCount + VkVideoSessionMemoryRequirementsKHR* pMemoryRequirements + + + VkResult vkBindVideoSessionMemoryKHR + VkDevice device + VkVideoSessionKHR videoSession + uint32_t bindSessionMemoryInfoCount + const VkBindVideoSessionMemoryInfoKHR* pBindSessionMemoryInfos + + + void vkCmdDecodeVideoKHR + VkCommandBuffer commandBuffer + const VkVideoDecodeInfoKHR* pDecodeInfo + + + void vkCmdBeginVideoCodingKHR + VkCommandBuffer commandBuffer + const VkVideoBeginCodingInfoKHR* pBeginInfo + + + void vkCmdControlVideoCodingKHR + VkCommandBuffer commandBuffer + const VkVideoCodingControlInfoKHR* pCodingControlInfo + + + void vkCmdEndVideoCodingKHR + VkCommandBuffer commandBuffer + const VkVideoEndCodingInfoKHR* pEndCodingInfo + + + void vkCmdEncodeVideoKHR + VkCommandBuffer commandBuffer + const VkVideoEncodeInfoKHR* pEncodeInfo + + + void vkCmdDecompressMemoryNV + VkCommandBuffer commandBuffer + uint32_t decompressRegionCount + const VkDecompressMemoryRegionNV* pDecompressMemoryRegions + + + void vkCmdDecompressMemoryIndirectCountNV + VkCommandBuffer commandBuffer + VkDeviceAddress indirectCommandsAddress + VkDeviceAddress indirectCommandsCountAddress + uint32_t stride + + + VkResult vkCreateCuModuleNVX + VkDevice device + const VkCuModuleCreateInfoNVX* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkCuModuleNVX* pModule + + + VkResult vkCreateCuFunctionNVX + VkDevice device + const VkCuFunctionCreateInfoNVX* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkCuFunctionNVX* pFunction + + + void vkDestroyCuModuleNVX + VkDevice device + VkCuModuleNVX module + const VkAllocationCallbacks* pAllocator + + + void vkDestroyCuFunctionNVX + VkDevice device + VkCuFunctionNVX function + const VkAllocationCallbacks* pAllocator + + + void vkCmdCuLaunchKernelNVX + VkCommandBuffer commandBuffer + const VkCuLaunchInfoNVX* pLaunchInfo + + + void vkGetDescriptorSetLayoutSizeEXT + VkDevice device + VkDescriptorSetLayout layout + VkDeviceSize* pLayoutSizeInBytes + + + void vkGetDescriptorSetLayoutBindingOffsetEXT + VkDevice device + VkDescriptorSetLayout layout + uint32_t binding + VkDeviceSize* pOffset + + + void vkGetDescriptorEXT + VkDevice device + const VkDescriptorGetInfoEXT* pDescriptorInfo + size_t dataSize + void* pDescriptor + + + void vkCmdBindDescriptorBuffersEXT + VkCommandBuffer commandBuffer + uint32_t bufferCount + const VkDescriptorBufferBindingInfoEXT* pBindingInfos + + + void vkCmdSetDescriptorBufferOffsetsEXT + VkCommandBuffer commandBuffer + VkPipelineBindPoint pipelineBindPoint + VkPipelineLayout layout + uint32_t firstSet + uint32_t setCount + const uint32_t* pBufferIndices + const VkDeviceSize* pOffsets + + + void vkCmdBindDescriptorBufferEmbeddedSamplersEXT + VkCommandBuffer commandBuffer + VkPipelineBindPoint pipelineBindPoint + VkPipelineLayout layout + uint32_t set + + + VkResult vkGetBufferOpaqueCaptureDescriptorDataEXT + VkDevice device + const VkBufferCaptureDescriptorDataInfoEXT* pInfo + void* pData + + + VkResult vkGetImageOpaqueCaptureDescriptorDataEXT + VkDevice device + const VkImageCaptureDescriptorDataInfoEXT* pInfo + void* pData + + + VkResult vkGetImageViewOpaqueCaptureDescriptorDataEXT + VkDevice device + const VkImageViewCaptureDescriptorDataInfoEXT* pInfo + void* pData + + + VkResult vkGetSamplerOpaqueCaptureDescriptorDataEXT + VkDevice device + const VkSamplerCaptureDescriptorDataInfoEXT* pInfo + void* pData + + + VkResult vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT + VkDevice device + const VkAccelerationStructureCaptureDescriptorDataInfoEXT* pInfo + void* pData + + + void vkSetDeviceMemoryPriorityEXT + VkDevice device + VkDeviceMemory memory + float priority + + + VkResult vkAcquireDrmDisplayEXT + VkPhysicalDevice physicalDevice + int32_t drmFd + VkDisplayKHR display + + + VkResult vkGetDrmDisplayEXT + VkPhysicalDevice physicalDevice + int32_t drmFd + uint32_t connectorId + VkDisplayKHR* display + + + VkResult vkWaitForPresentKHR + VkDevice device + VkSwapchainKHR swapchain + uint64_t presentId + uint64_t timeout + + + VkResult vkCreateBufferCollectionFUCHSIA + VkDevice device + const VkBufferCollectionCreateInfoFUCHSIA* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkBufferCollectionFUCHSIA* pCollection + + + VkResult vkSetBufferCollectionBufferConstraintsFUCHSIA + VkDevice device + VkBufferCollectionFUCHSIA collection + const VkBufferConstraintsInfoFUCHSIA* pBufferConstraintsInfo + + + VkResult vkSetBufferCollectionImageConstraintsFUCHSIA + VkDevice device + VkBufferCollectionFUCHSIA collection + const VkImageConstraintsInfoFUCHSIA* pImageConstraintsInfo + + + void vkDestroyBufferCollectionFUCHSIA + VkDevice device + VkBufferCollectionFUCHSIA collection + const VkAllocationCallbacks* pAllocator + + + VkResult vkGetBufferCollectionPropertiesFUCHSIA + VkDevice device + VkBufferCollectionFUCHSIA collection + VkBufferCollectionPropertiesFUCHSIA* pProperties + + + VkResult vkCreateCudaModuleNV + VkDevice device + const VkCudaModuleCreateInfoNV* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkCudaModuleNV* pModule + + + VkResult vkGetCudaModuleCacheNV + VkDevice device + VkCudaModuleNV module + size_t* pCacheSize + void* pCacheData + + + VkResult vkCreateCudaFunctionNV + VkDevice device + const VkCudaFunctionCreateInfoNV* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkCudaFunctionNV* pFunction + + + void vkDestroyCudaModuleNV + VkDevice device + VkCudaModuleNV module + const VkAllocationCallbacks* pAllocator + + + void vkDestroyCudaFunctionNV + VkDevice device + VkCudaFunctionNV function + const VkAllocationCallbacks* pAllocator + + + void vkCmdCudaLaunchKernelNV + VkCommandBuffer commandBuffer + const VkCudaLaunchInfoNV* pLaunchInfo + + + void vkCmdBeginRendering + VkCommandBuffer commandBuffer + const VkRenderingInfo* pRenderingInfo + + + + void vkCmdEndRendering + VkCommandBuffer commandBuffer + + + + + void vkGetDescriptorSetLayoutHostMappingInfoVALVE + VkDevice device + const VkDescriptorSetBindingReferenceVALVE* pBindingReference + VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping + + + void vkGetDescriptorSetHostMappingVALVE + VkDevice device + VkDescriptorSet descriptorSet + void** ppData + + + VkResult vkCreateMicromapEXT + VkDevice device + const VkMicromapCreateInfoEXT* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkMicromapEXT* pMicromap + + + void vkCmdBuildMicromapsEXT + VkCommandBuffer commandBuffer + uint32_t infoCount + const VkMicromapBuildInfoEXT* pInfos + + + VkResult vkBuildMicromapsEXT + VkDevice device + VkDeferredOperationKHR deferredOperation + uint32_t infoCount + const VkMicromapBuildInfoEXT* pInfos + + + void vkDestroyMicromapEXT + VkDevice device + VkMicromapEXT micromap + const VkAllocationCallbacks* pAllocator + + + void vkCmdCopyMicromapEXT + VkCommandBuffer commandBuffer + const VkCopyMicromapInfoEXT* pInfo + + + VkResult vkCopyMicromapEXT + VkDevice device + VkDeferredOperationKHR deferredOperation + const VkCopyMicromapInfoEXT* pInfo + + + void vkCmdCopyMicromapToMemoryEXT + VkCommandBuffer commandBuffer + const VkCopyMicromapToMemoryInfoEXT* pInfo + + + VkResult vkCopyMicromapToMemoryEXT + VkDevice device + VkDeferredOperationKHR deferredOperation + const VkCopyMicromapToMemoryInfoEXT* pInfo + + + void vkCmdCopyMemoryToMicromapEXT + VkCommandBuffer commandBuffer + const VkCopyMemoryToMicromapInfoEXT* pInfo + + + VkResult vkCopyMemoryToMicromapEXT + VkDevice device + VkDeferredOperationKHR deferredOperation + const VkCopyMemoryToMicromapInfoEXT* pInfo + + + void vkCmdWriteMicromapsPropertiesEXT + VkCommandBuffer commandBuffer + uint32_t micromapCount + const VkMicromapEXT* pMicromaps + VkQueryType queryType + VkQueryPool queryPool + uint32_t firstQuery + + + VkResult vkWriteMicromapsPropertiesEXT + VkDevice device + uint32_t micromapCount + const VkMicromapEXT* pMicromaps + VkQueryType queryType + size_t dataSize + void* pData + size_t stride + + + void vkGetDeviceMicromapCompatibilityEXT + VkDevice device + const VkMicromapVersionInfoEXT* pVersionInfo + VkAccelerationStructureCompatibilityKHR* pCompatibility + + + void vkGetMicromapBuildSizesEXT + VkDevice device + VkAccelerationStructureBuildTypeKHR buildType + const VkMicromapBuildInfoEXT* pBuildInfo + VkMicromapBuildSizesInfoEXT* pSizeInfo + + + void vkGetShaderModuleIdentifierEXT + VkDevice device + VkShaderModule shaderModule + VkShaderModuleIdentifierEXT* pIdentifier + + + void vkGetShaderModuleCreateInfoIdentifierEXT + VkDevice device + const VkShaderModuleCreateInfo* pCreateInfo + VkShaderModuleIdentifierEXT* pIdentifier + + + void vkGetImageSubresourceLayout2KHR + VkDevice device + VkImage image + const VkImageSubresource2KHR* pSubresource + VkSubresourceLayout2KHR* pLayout + + + + VkResult vkGetPipelinePropertiesEXT + VkDevice device + const VkPipelineInfoEXT* pPipelineInfo + VkBaseOutStructure* pPipelineProperties + + + void vkExportMetalObjectsEXT + VkDevice device + VkExportMetalObjectsInfoEXT* pMetalObjectsInfo + + + VkResult vkGetFramebufferTilePropertiesQCOM + VkDevice device + VkFramebuffer framebuffer + uint32_t* pPropertiesCount + VkTilePropertiesQCOM* pProperties + + + VkResult vkGetDynamicRenderingTilePropertiesQCOM + VkDevice device + const VkRenderingInfo* pRenderingInfo + VkTilePropertiesQCOM* pProperties + + + VkResult vkGetPhysicalDeviceOpticalFlowImageFormatsNV + VkPhysicalDevice physicalDevice + const VkOpticalFlowImageFormatInfoNV* pOpticalFlowImageFormatInfo + uint32_t* pFormatCount + VkOpticalFlowImageFormatPropertiesNV* pImageFormatProperties + + + VkResult vkCreateOpticalFlowSessionNV + VkDevice device + const VkOpticalFlowSessionCreateInfoNV* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkOpticalFlowSessionNV* pSession + + + void vkDestroyOpticalFlowSessionNV + VkDevice device + VkOpticalFlowSessionNV session + const VkAllocationCallbacks* pAllocator + + + VkResult vkBindOpticalFlowSessionImageNV + VkDevice device + VkOpticalFlowSessionNV session + VkOpticalFlowSessionBindingPointNV bindingPoint + VkImageView view + VkImageLayout layout + + + void vkCmdOpticalFlowExecuteNV + VkCommandBuffer commandBuffer + VkOpticalFlowSessionNV session + const VkOpticalFlowExecuteInfoNV* pExecuteInfo + + + VkResult vkGetDeviceFaultInfoEXT + VkDevice device + VkDeviceFaultCountsEXT* pFaultCounts + VkDeviceFaultInfoEXT* pFaultInfo + + + void vkCmdSetDepthBias2EXT + VkCommandBuffer commandBuffer + const VkDepthBiasInfoEXT* pDepthBiasInfo + + + VkResult vkReleaseSwapchainImagesEXT + VkDevice device + const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo + + + void vkGetDeviceImageSubresourceLayoutKHR + VkDevice device + const VkDeviceImageSubresourceInfoKHR* pInfo + VkSubresourceLayout2KHR* pLayout + + + VkResult vkMapMemory2KHR + VkDevice device + const VkMemoryMapInfoKHR* pMemoryMapInfo + void** ppData + + + VkResult vkUnmapMemory2KHR + VkDevice device + const VkMemoryUnmapInfoKHR* pMemoryUnmapInfo + + + VkResult vkCreateShadersEXT + VkDevice device + uint32_t createInfoCount + const VkShaderCreateInfoEXT* pCreateInfos + const VkAllocationCallbacks* pAllocator + VkShaderEXT* pShaders + + + void vkDestroyShaderEXT + VkDevice device + VkShaderEXT shader + const VkAllocationCallbacks* pAllocator + + + VkResult vkGetShaderBinaryDataEXT + VkDevice device + VkShaderEXT shader + size_t* pDataSize + void* pData + + + void vkCmdBindShadersEXT + VkCommandBuffer commandBuffer + uint32_t stageCount + const VkShaderStageFlagBits* pStages + const VkShaderEXT* pShaders + + + VkResult vkGetScreenBufferPropertiesQNX + VkDevice device + const struct _screen_buffer* buffer + VkScreenBufferPropertiesQNX* pProperties + + + VkResult vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR + VkPhysicalDevice physicalDevice + uint32_t* pPropertyCount + VkCooperativeMatrixPropertiesKHR* pProperties + + + VkResult vkGetExecutionGraphPipelineScratchSizeAMDX + VkDevice device + VkPipeline executionGraph + VkExecutionGraphPipelineScratchSizeAMDX* pSizeInfo + + + VkResult vkGetExecutionGraphPipelineNodeIndexAMDX + VkDevice device + VkPipeline executionGraph + const VkPipelineShaderStageNodeCreateInfoAMDX* pNodeInfo + uint32_t* pNodeIndex + + + VkResult vkCreateExecutionGraphPipelinesAMDX + VkDevice device + VkPipelineCache pipelineCache + uint32_t createInfoCount + const VkExecutionGraphPipelineCreateInfoAMDX* pCreateInfos + const VkAllocationCallbacks* pAllocator + VkPipeline* pPipelines + + + void vkCmdInitializeGraphScratchMemoryAMDX + VkCommandBuffer commandBuffer + VkDeviceAddress scratch + + + void vkCmdDispatchGraphAMDX + VkCommandBuffer commandBuffer + VkDeviceAddress scratch + const VkDispatchGraphCountInfoAMDX* pCountInfo + + + void vkCmdDispatchGraphIndirectAMDX + VkCommandBuffer commandBuffer + VkDeviceAddress scratch + const VkDispatchGraphCountInfoAMDX* pCountInfo + + + void vkCmdDispatchGraphIndirectCountAMDX + VkCommandBuffer commandBuffer + VkDeviceAddress scratch + VkDeviceAddress countInfo + + + void vkCmdBindDescriptorSets2KHR + VkCommandBuffer commandBuffer + const VkBindDescriptorSetsInfoKHR* pBindDescriptorSetsInfo + + + void vkCmdPushConstants2KHR + VkCommandBuffer commandBuffer + const VkPushConstantsInfoKHR* pPushConstantsInfo + + + void vkCmdPushDescriptorSet2KHR + VkCommandBuffer commandBuffer + const VkPushDescriptorSetInfoKHR* pPushDescriptorSetInfo + + + void vkCmdPushDescriptorSetWithTemplate2KHR + VkCommandBuffer commandBuffer + const VkPushDescriptorSetWithTemplateInfoKHR* pPushDescriptorSetWithTemplateInfo + + + void vkCmdSetDescriptorBufferOffsets2EXT + VkCommandBuffer commandBuffer + const VkSetDescriptorBufferOffsetsInfoEXT* pSetDescriptorBufferOffsetsInfo + + + void vkCmdBindDescriptorBufferEmbeddedSamplers2EXT + VkCommandBuffer commandBuffer + const VkBindDescriptorBufferEmbeddedSamplersInfoEXT* pBindDescriptorBufferEmbeddedSamplersInfo + + + VkResult vkSetLatencySleepModeNV + VkDevice device + VkSwapchainKHR swapchain + const VkLatencySleepModeInfoNV* pSleepModeInfo + + + VkResult vkLatencySleepNV + VkDevice device + VkSwapchainKHR swapchain + const VkLatencySleepInfoNV* pSleepInfo + + + void vkSetLatencyMarkerNV + VkDevice device + VkSwapchainKHR swapchain + const VkSetLatencyMarkerInfoNV* pLatencyMarkerInfo + + + void vkGetLatencyTimingsNV + VkDevice device + VkSwapchainKHR swapchain + VkGetLatencyMarkerInfoNV* pLatencyMarkerInfo + + + void vkQueueNotifyOutOfBandNV + VkQueue queue + const VkOutOfBandQueueTypeInfoNV* pQueueTypeInfo + + + void vkCmdSetRenderingAttachmentLocationsKHR + VkCommandBuffer commandBuffer + const VkRenderingAttachmentLocationInfoKHR* pLocationInfo + + + void vkCmdSetRenderingInputAttachmentIndicesKHR + VkCommandBuffer commandBuffer + const VkRenderingInputAttachmentIndexInfoKHR* pLocationInfo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + offset 1 reserved for the old VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHX enum + offset 2 reserved for the old VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHX enum + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Additional dependent types / tokens extending enumerants, not explicitly mentioned + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Additional dependent types / tokens extending enumerants, not explicitly mentioned + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This duplicates definitions in VK_KHR_device_group below + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + VK_ANDROID_native_buffer is used between the Android Vulkan loader and drivers to implement the WSI extensions. It is not exposed to applications and uses types that are not part of Android's stable public API, so it is left disabled to keep it out of the standard Vulkan headers. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This duplicates definitions in other extensions, below + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - offset 1 reserved for the old VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHX enum - offset 2 reserved for the old VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHX enum - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Additional dependent types / tokens extending enumerants, not explicitly mentioned - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Additional dependent types / tokens extending enumerants, not explicitly mentioned - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - This duplicates definitions in VK_KHR_device_group below - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - VK_ANDROID_native_buffer is used between the Android Vulkan loader and drivers to implement the WSI extensions. It is not exposed to applications and uses types that are not part of Android's stable public API, so it is left disabled to keep it out of the standard Vulkan headers. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - This duplicates definitions in other extensions, below - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - + + - - + + + + + + + + + + + + + + + + - - - - - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + - - + + + - - - - - - - - - - - - - - - - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - + - + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + enum offset=0 was mistakenly used for the 1.1 core enum + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES + (value=1000094000). Fortunately, no conflict resulted. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This extension requires buffer_device_address functionality. + VK_EXT_buffer_device_address is also acceptable, but since it is deprecated the KHR version is preferred. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + These enums are present only to inform downstream + consumers like KTX2. There is no actual Vulkan extension + corresponding to the enums. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - enum offset=0 was mistakenly used for the 1.1 core enum - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES - (value=1000094000). Fortunately, no conflict resulted. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - This extension requires buffer_device_address functionality. - VK_EXT_buffer_device_address is also acceptable, but since it is deprecated the KHR version is preferred. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - These enums are present only to inform downstream - consumers like KTX2. There is no actual Vulkan extension - corresponding to the enums. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - - - + + + + + - - - + + + - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT and - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT - were not promoted to Vulkan 1.3. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - VkPhysicalDevice4444FormatsFeaturesEXT and - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT - were not promoted to Vulkan 1.3. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT and + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT + were not promoted to Vulkan 1.3. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + VkPhysicalDevice4444FormatsFeaturesEXT and + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT + were not promoted to Vulkan 1.3. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NV internal use only + + + + + + + + + + + + + + + + + + + + + + + + + + + NV internal use only + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Fragment shader stage is added by the VK_EXT_shader_tile_image extension + + + + + + + Fragment shader stage is added by the VK_EXT_shader_tile_image extension + + + + + + + + + + + + + + + + + + + TODO/Suggestion. Introduce 'synclist' (could be a different name) element + that specifies the list of stages, accesses, etc. This list can be used by + 'syncaccess' or 'syncstage' elements. For example, 'syncsupport' in addition to the + 'stage' attribute can support 'list' attribute to reference 'synclist'. + We can have the lists defined for ALL stages and it can be shared between MEMORY_READ + and MEMORY_WRITE accesses. Similarly, ALL shader stages list is often used. This proposal + is a way to fix duplication problem. When new stage is added multiple places needs to be + updated. It is potential source of bugs. The expectation such setup will produce more + robust system and also more simple structure to review and validate. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT + VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT + VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT + VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT + VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT + VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT + VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT + VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT + VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR + VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT + VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT + VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT + VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT + VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT + VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT + + + VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT + VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT + VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT + VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR + VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT + VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT + VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT + VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT + VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT + VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT + + + VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT + VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT + VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT + + + VK_PIPELINE_STAGE_2_TRANSFER_BIT + + + VK_PIPELINE_STAGE_2_HOST_BIT + + + VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI + + + VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV + + + VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR + + + VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR + + + VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT + + + VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT + VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR + + + VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR + + + VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR + + + VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV + + +