[{"data":1,"prerenderedAt":10949},["ShallowReactive",2],{"Ut4eQJIw6U":3,"VyF3Mmj32r":9372,"N9m89Rcq0G":9582},{"title":4,"description":5,"body":6,"_type":9371,"_id":4},"VK_EXT_device_generated_commands.proposal","This document details API design for indirect execution of device generated commands, improving performance by eliminating unnecessary host and device work.",{"type":7,"children":8,"toc":9337},"root",[9,16,23,28,53,58,76,81,87,92,236,241,248,253,307,313,320,325,440,453,476,481,494,500,526,531,537,549,554,738,744,749,761,774,792,797,803,815,820,850,855,860,865,874,879,971,981,992,1025,1031,1036,1056,1069,1074,1086,1092,1097,1214,1274,1285,1359,1399,1404,1497,1549,1560,1633,1672,1682,1756,1795,1805,1958,2090,2100,2164,2210,2215,2305,2337,2343,2348,2452,2509,2609,2661,2681,2692,2767,2792,2802,2874,2897,2903,2908,2927,2932,2937,3045,3101,3111,3233,3361,3390,3403,3501,3566,3571,3659,3691,3697,3718,3729,3812,3855,3860,3975,3980,3986,3991,4576,4589,4601,4759,4765,4777,4789,4832,4867,4872,4877,4952,4958,4970,4975,5014,5028,5034,5053,5057,5092,5113,5119,5136,5195,5259,5264,5303,5324,5329,5427,5464,5497,5503,5519,5580,5626,5631,5674,5688,5707,5713,5718,5802,5808,5813,5883,5895,5956,5996,6008,6073,6079,6095,6101,6124,6130,6135,6140,6232,6281,6293,6303,6398,6487,6506,6511,6544,6554,6615,6628,6638,6724,6753,6759,6765,6784,6889,6957,6963,6968,7111,7331,7361,7366,7454,7516,7521,7526,7611,7650,7669,7675,7680,7758,7814,7820,7825,8005,8010,8057,8062,8098,8103,8128,8148,8159,8179,8190,8257,8275,8301,8318,8344,8354,8365,8376,8387,8393,8399,8404,8587,8592,8598,8610,8963,8975,8985,8991,9040,9046,9051,9094,9100,9105,9111,9117,9129,9135,9140,9146,9151,9157,9170,9176,9181,9187,9216,9227,9233,9238,9244,9249,9255,9280,9286,9318,9323,9331],{"type":10,"tag":11,"props":12,"children":13},"element","p",{},[14],{"type":15,"value":5},"text",{"type":10,"tag":17,"props":18,"children":20},"h2",{"id":19},"_problem_statement",[21],{"type":15,"value":22},"Problem Statement",{"type":10,"tag":11,"props":24,"children":25},{},[26],{"type":15,"value":27},"Device-driven rendering is increasingly used to manage large and complex environments. Scene management in particular is well suited for execution on device and is responsible for:",{"type":10,"tag":29,"props":30,"children":31},"ul",{},[32,38,43,48],{"type":10,"tag":33,"props":34,"children":35},"li",{},[36],{"type":15,"value":37},"Traversing the scene",{"type":10,"tag":33,"props":39,"children":40},{},[41],{"type":15,"value":42},"Managing LoD",{"type":10,"tag":33,"props":44,"children":45},{},[46],{"type":15,"value":47},"Performing various culling algorithms",{"type":10,"tag":33,"props":49,"children":50},{},[51],{"type":15,"value":52},"Generating work to render the visible result",{"type":10,"tag":11,"props":54,"children":55},{},[56],{"type":15,"value":57},"Graphics APIs differ in their expressiveness but most have limitations for device-driven scene management that result in:",{"type":10,"tag":29,"props":59,"children":60},{},[61,66,71],{"type":10,"tag":33,"props":62,"children":63},{},[64],{"type":15,"value":65},"Unnecessary state changes",{"type":10,"tag":33,"props":67,"children":68},{},[69],{"type":15,"value":70},"Wasted memory for worst-case allocations for intermediate results",{"type":10,"tag":33,"props":72,"children":73},{},[74],{"type":15,"value":75},"Round-tripping through memory instead of staying on chip",{"type":10,"tag":11,"props":77,"children":78},{},[79],{"type":15,"value":80},"This proposal focuses on reducing unnecessary state changes. For example, enabling a device to use compute shaders to launch other compute shaders rather than requiring explicit dispatch commands to be recorded.",{"type":10,"tag":17,"props":82,"children":84},{"id":83},"_solution_space",[85],{"type":15,"value":86},"Solution Space",{"type":10,"tag":11,"props":88,"children":89},{},[90],{"type":15,"value":91},"There are several approaches to reduce unnecessary state changes. Here are some potential solutions:",{"type":10,"tag":93,"props":94,"children":95},"ol",{},[96,114,132,162,190,213],{"type":10,"tag":33,"props":97,"children":98},{},[99,101],{"type":15,"value":100},"No API changes",{"type":10,"tag":29,"props":102,"children":103},{},[104,109],{"type":10,"tag":33,"props":105,"children":106},{},[107],{"type":15,"value":108},"Work is done on the host to determine the set of shaders that are potentially visible. This might be a simpler problem than object/triangle culling.",{"type":10,"tag":33,"props":110,"children":111},{},[112],{"type":15,"value":113},"Potentially duplicates work done by the device.",{"type":10,"tag":33,"props":115,"children":116},{},[117,119],{"type":15,"value":118},"Work Graphs",{"type":10,"tag":29,"props":120,"children":121},{},[122,127],{"type":10,"tag":33,"props":123,"children":124},{},[125],{"type":15,"value":126},"D3D12 supports Work Graphs, which are a more powerful method of moving work generation to the GPU",{"type":10,"tag":33,"props":128,"children":129},{},[130],{"type":15,"value":131},"Standardization and cross-vendor support of this advanced functionality takes a long time to achieve ecosystem adoption",{"type":10,"tag":33,"props":133,"children":134},{},[135,137],{"type":15,"value":136},"Predicated/Conditional Rendering",{"type":10,"tag":29,"props":138,"children":139},{},[140,145,157],{"type":10,"tag":33,"props":141,"children":142},{},[143],{"type":15,"value":144},"Commands are optionally executed depending on a condition evaluated on the device timeline.",{"type":10,"tag":33,"props":146,"children":147},{},[148,150],{"type":15,"value":149},"Exposed in D3D12 as ",{"type":10,"tag":151,"props":152,"children":154},"code",{"className":153},[],[155],{"type":15,"value":156},"ID3D12GraphicsCommandList::SetPredication",{"type":10,"tag":33,"props":158,"children":159},{},[160],{"type":15,"value":161},"Host encoding overhead of binding the shaders still exists.",{"type":10,"tag":33,"props":163,"children":164},{},[165,167],{"type":15,"value":166},"Indirect Command Buffers (Host)",{"type":10,"tag":29,"props":168,"children":169},{},[170,175,180,185],{"type":10,"tag":33,"props":171,"children":172},{},[173],{"type":15,"value":174},"Similar to secondary command buffers but with different restrictions and inheritance rules.",{"type":10,"tag":33,"props":176,"children":177},{},[178],{"type":15,"value":179},"Create multiple indirect command buffers (e.g. one per pipeline).",{"type":10,"tag":33,"props":181,"children":182},{},[183],{"type":15,"value":184},"Indirect execution of multiple indirect command buffers.",{"type":10,"tag":33,"props":186,"children":187},{},[188],{"type":15,"value":189},"May require patching/fast updating of objects referenced by the indirect command buffer.",{"type":10,"tag":33,"props":191,"children":192},{},[193,195],{"type":15,"value":194},"Indirect Command Buffers (Device)",{"type":10,"tag":29,"props":196,"children":197},{},[198,203,208],{"type":10,"tag":33,"props":199,"children":200},{},[201],{"type":15,"value":202},"Created in a compute shader.",{"type":10,"tag":33,"props":204,"children":205},{},[206],{"type":15,"value":207},"Can be re-created every frame avoiding multiple execution complexity or patching.",{"type":10,"tag":33,"props":209,"children":210},{},[211],{"type":15,"value":212},"Requires extensive shading language support.",{"type":10,"tag":33,"props":214,"children":215},{},[216,218],{"type":15,"value":217},"Enhanced Indirect",{"type":10,"tag":29,"props":219,"children":220},{},[221,226,231],{"type":10,"tag":33,"props":222,"children":223},{},[224],{"type":15,"value":225},"Add support to execute multiple types of operations in a sequence.",{"type":10,"tag":33,"props":227,"children":228},{},[229],{"type":15,"value":230},"Limited state changes and operations compared to what is available for primary or secondary command buffers.",{"type":10,"tag":33,"props":232,"children":233},{},[234],{"type":15,"value":235},"Should be able to represent most work in a \"pass\" (e.g. drawing shadows or opaque geometry)",{"type":10,"tag":11,"props":237,"children":238},{},[239],{"type":15,"value":240},"Many graphics APIs have more expressive indirect capabilities. This proposal pursues that approach to address both the problem statement and provide an emulation target.",{"type":10,"tag":242,"props":243,"children":245},"h3",{"id":244},"_goals",[246],{"type":15,"value":247},"Goals",{"type":10,"tag":11,"props":249,"children":250},{},[251],{"type":15,"value":252},"These are the primary goals for the proposal:",{"type":10,"tag":29,"props":254,"children":255},{},[256,261,266,271,276,281,302],{"type":10,"tag":33,"props":257,"children":258},{},[259],{"type":15,"value":260},"Efficient implementation for many-draws and many-dispatches per set of shaders.",{"type":10,"tag":33,"props":262,"children":263},{},[264],{"type":15,"value":265},"Device-side binding of shaders.",{"type":10,"tag":33,"props":267,"children":268},{},[269],{"type":15,"value":270},"Changing shaders for indirect dispatch during application lifetime.",{"type":10,"tag":33,"props":272,"children":273},{},[274],{"type":15,"value":275},"Emulation of D3D12 indirect execution.",{"type":10,"tag":33,"props":277,"children":278},{},[279],{"type":15,"value":280},"Emulation of D3D12 work graphs.",{"type":10,"tag":33,"props":282,"children":283},{},[284,286,292,294,300],{"type":15,"value":285},"Transition existing uses of ",{"type":10,"tag":151,"props":287,"children":289},{"className":288},[],[290],{"type":15,"value":291},"NV_device_generated_commands",{"type":15,"value":293}," and ",{"type":10,"tag":151,"props":295,"children":297},{"className":296},[],[298],{"type":15,"value":299},"NV_device_generated_commands_compute",{"type":15,"value":301},".",{"type":10,"tag":33,"props":303,"children":304},{},[305],{"type":15,"value":306},"Single framework for all execution-based indirect commands. Other indirect operations (e.g. building acceleration structures) have very different setup and argument management.",{"type":10,"tag":242,"props":308,"children":310},{"id":309},"_current_implementations",[311],{"type":15,"value":312},"Current implementations",{"type":10,"tag":314,"props":315,"children":317},"h4",{"id":316},"_vulkan",[318],{"type":15,"value":319},"Vulkan",{"type":10,"tag":11,"props":321,"children":322},{},[323],{"type":15,"value":324},"Indirect execution in Vulkan typically support only a single type of command:",{"type":10,"tag":29,"props":326,"children":327},{},[328,337,346,355,366,376,387,397,408,419,430],{"type":10,"tag":33,"props":329,"children":330},{},[331],{"type":10,"tag":151,"props":332,"children":334},{"className":333},[],[335],{"type":15,"value":336},"vkCmdDrawIndirect",{"type":10,"tag":33,"props":338,"children":339},{},[340],{"type":10,"tag":151,"props":341,"children":343},{"className":342},[],[344],{"type":15,"value":345},"vkCmdDrawIndexedIndirect",{"type":10,"tag":33,"props":347,"children":348},{},[349],{"type":10,"tag":151,"props":350,"children":352},{"className":351},[],[353],{"type":15,"value":354},"vkCmdDispatchIndirect",{"type":10,"tag":33,"props":356,"children":357},{},[358,364],{"type":10,"tag":151,"props":359,"children":361},{"className":360},[],[362],{"type":15,"value":363},"vkCmdDrawIndirectCount",{"type":15,"value":365}," (Vulkan 1.2)",{"type":10,"tag":33,"props":367,"children":368},{},[369,375],{"type":10,"tag":151,"props":370,"children":372},{"className":371},[],[373],{"type":15,"value":374},"vkCmdDrawIndexedIndirectCount",{"type":15,"value":365},{"type":10,"tag":33,"props":377,"children":378},{},[379,385],{"type":10,"tag":151,"props":380,"children":382},{"className":381},[],[383],{"type":15,"value":384},"vkCmdDrawMeshTasksIndirectNV",{"type":15,"value":386}," (VK_NV_mesh_shader)",{"type":10,"tag":33,"props":388,"children":389},{},[390,396],{"type":10,"tag":151,"props":391,"children":393},{"className":392},[],[394],{"type":15,"value":395},"vkCmdDrawMeshTasksIndirectCountNV",{"type":15,"value":386},{"type":10,"tag":33,"props":398,"children":399},{},[400,406],{"type":10,"tag":151,"props":401,"children":403},{"className":402},[],[404],{"type":15,"value":405},"vkCmdBuildAccelerationStructuresIndirectKHR",{"type":15,"value":407}," (VK_KHR_acceleration_structure)",{"type":10,"tag":33,"props":409,"children":410},{},[411,417],{"type":10,"tag":151,"props":412,"children":414},{"className":413},[],[415],{"type":15,"value":416},"vkCmdTraceRaysIndirectKHR",{"type":15,"value":418}," (VK_KHR_ray_tracing_pipeline)",{"type":10,"tag":33,"props":420,"children":421},{},[422,428],{"type":10,"tag":151,"props":423,"children":425},{"className":424},[],[426],{"type":15,"value":427},"vkCmdDrawMeshTasksIndirectEXT",{"type":15,"value":429}," (VK_EXT_mesh_shader)",{"type":10,"tag":33,"props":431,"children":432},{},[433,439],{"type":10,"tag":151,"props":434,"children":436},{"className":435},[],[437],{"type":15,"value":438},"vkCmdDrawMeshTasksIndirectCountEXT",{"type":15,"value":429},{"type":10,"tag":11,"props":441,"children":442},{},[443,445,451],{"type":15,"value":444},"The ",{"type":10,"tag":151,"props":446,"children":448},{"className":447},[],[449],{"type":15,"value":450},"VK_NV_device_generated_commands",{"type":15,"value":452}," extension enables a more expressive model supporting multiple commands in a sequence that may change the following state:",{"type":10,"tag":29,"props":454,"children":455},{},[456,461,466,471],{"type":10,"tag":33,"props":457,"children":458},{},[459],{"type":15,"value":460},"Shaders",{"type":10,"tag":33,"props":462,"children":463},{},[464],{"type":15,"value":465},"Primitive winding",{"type":10,"tag":33,"props":467,"children":468},{},[469],{"type":15,"value":470},"Index and vertex buffers",{"type":10,"tag":33,"props":472,"children":473},{},[474],{"type":15,"value":475},"Push constants",{"type":10,"tag":11,"props":477,"children":478},{},[479],{"type":15,"value":480},"and perform the following operations:",{"type":10,"tag":29,"props":482,"children":483},{},[484,489],{"type":10,"tag":33,"props":485,"children":486},{},[487],{"type":15,"value":488},"Indexed and non-indexed draws",{"type":10,"tag":33,"props":490,"children":491},{},[492],{"type":15,"value":493},"Mesh tasks",{"type":10,"tag":314,"props":495,"children":497},{"id":496},"_d3d12",[498],{"type":15,"value":499},"D3D12",{"type":10,"tag":11,"props":501,"children":502},{},[503,505,510,511,517,519,524],{"type":15,"value":504},"D3D12 indirect execution is similar in expressivity to both ",{"type":10,"tag":151,"props":506,"children":508},{"className":507},[],[509],{"type":15,"value":450},{"type":15,"value":293},{"type":10,"tag":151,"props":512,"children":514},{"className":513},[],[515],{"type":15,"value":516},"VK_NV_device_generated_commands_compute",{"type":15,"value":518}," but offers no mechanism for changing graphics shaders or pipelines. It is currently possible to emulate D3D12 behavior on top of ",{"type":10,"tag":151,"props":520,"children":522},{"className":521},[],[523],{"type":15,"value":450},{"type":15,"value":525}," and other base Vulkan functionality so it is important to not lose any features required for emulation with this proposal.",{"type":10,"tag":11,"props":527,"children":528},{},[529],{"type":15,"value":530},"D3D12 work graphs are more powerful in certain aspects than indirect execution but are not yet officially supported in Vulkan.",{"type":10,"tag":314,"props":532,"children":534},{"id":533},"_metal",[535],{"type":15,"value":536},"Metal",{"type":10,"tag":11,"props":538,"children":539},{},[540,542,547],{"type":15,"value":541},"Metal is similar in expressivity to ",{"type":10,"tag":151,"props":543,"children":545},{"className":544},[],[546],{"type":15,"value":450},{"type":15,"value":548}," and supports full pipeline changes as well as the equivalent of binding descriptor sets.",{"type":10,"tag":11,"props":550,"children":551},{},[552],{"type":15,"value":553},"Indirect buffer layout is opaque and can be encoded on host through the API or on device using a compute shader. For example:",{"type":10,"tag":555,"props":556,"children":561},"pre",{"className":557,"code":558,"language":559,"meta":560,"style":560},"language-c shiki shiki-themes github-light-default github-dark-default","​struct arguments { command_buffer cmd_buffer; };​\n​\nkernel void producer(device arguments& args, ushort cmd_idx [[thread_position_in_grid]])​\n{​\n render_command cmd(args.cmd_buffer, cmd_idx);​\n cmd.set_render_pipeline_state(...);​\n cmd.set_vertex_buffer(...);​\n cmd.draw_primitives(...);​\n}\n","c","",[562],{"type":10,"tag":151,"props":563,"children":564},{"__ignoreMap":560},[565,588,597,648,657,676,695,712,729],{"type":10,"tag":566,"props":567,"children":570},"span",{"class":568,"line":569},"line",1,[571,577,583],{"type":10,"tag":566,"props":572,"children":574},{"style":573},"--shiki-default:#1F2328;--shiki-dark:#E6EDF3",[575],{"type":15,"value":576},"​",{"type":10,"tag":566,"props":578,"children":580},{"style":579},"--shiki-default:#CF222E;--shiki-dark:#FF7B72",[581],{"type":15,"value":582},"struct",{"type":10,"tag":566,"props":584,"children":585},{"style":573},[586],{"type":15,"value":587}," arguments { command_buffer cmd_buffer; };​\n",{"type":10,"tag":566,"props":589,"children":591},{"class":568,"line":590},2,[592],{"type":10,"tag":566,"props":593,"children":594},{"style":573},[595],{"type":15,"value":596},"​\n",{"type":10,"tag":566,"props":598,"children":600},{"class":568,"line":599},3,[601,606,611,617,622,627,633,638,643],{"type":10,"tag":566,"props":602,"children":603},{"style":573},[604],{"type":15,"value":605},"kernel ",{"type":10,"tag":566,"props":607,"children":608},{"style":579},[609],{"type":15,"value":610},"void",{"type":10,"tag":566,"props":612,"children":614},{"style":613},"--shiki-default:#8250DF;--shiki-dark:#D2A8FF",[615],{"type":15,"value":616}," producer",{"type":10,"tag":566,"props":618,"children":619},{"style":573},[620],{"type":15,"value":621},"(device arguments",{"type":10,"tag":566,"props":623,"children":624},{"style":579},[625],{"type":15,"value":626},"&",{"type":10,"tag":566,"props":628,"children":630},{"style":629},"--shiki-default:#953800;--shiki-dark:#FFA657",[631],{"type":15,"value":632}," args",{"type":10,"tag":566,"props":634,"children":635},{"style":573},[636],{"type":15,"value":637},", ",{"type":10,"tag":566,"props":639,"children":640},{"style":579},[641],{"type":15,"value":642},"ushort",{"type":10,"tag":566,"props":644,"children":645},{"style":573},[646],{"type":15,"value":647}," cmd_idx [[thread_position_in_grid]])​\n",{"type":10,"tag":566,"props":649,"children":651},{"class":568,"line":650},4,[652],{"type":10,"tag":566,"props":653,"children":654},{"style":573},[655],{"type":15,"value":656},"{​\n",{"type":10,"tag":566,"props":658,"children":660},{"class":568,"line":659},5,[661,666,671],{"type":10,"tag":566,"props":662,"children":663},{"style":573},[664],{"type":15,"value":665}," render_command ",{"type":10,"tag":566,"props":667,"children":668},{"style":613},[669],{"type":15,"value":670},"cmd",{"type":10,"tag":566,"props":672,"children":673},{"style":573},[674],{"type":15,"value":675},"(args.cmd_buffer, cmd_idx);​\n",{"type":10,"tag":566,"props":677,"children":679},{"class":568,"line":678},6,[680,685,690],{"type":10,"tag":566,"props":681,"children":682},{"style":573},[683],{"type":15,"value":684}," cmd.",{"type":10,"tag":566,"props":686,"children":687},{"style":613},[688],{"type":15,"value":689},"set_render_pipeline_state",{"type":10,"tag":566,"props":691,"children":692},{"style":573},[693],{"type":15,"value":694},"(...);​\n",{"type":10,"tag":566,"props":696,"children":698},{"class":568,"line":697},7,[699,703,708],{"type":10,"tag":566,"props":700,"children":701},{"style":573},[702],{"type":15,"value":684},{"type":10,"tag":566,"props":704,"children":705},{"style":613},[706],{"type":15,"value":707},"set_vertex_buffer",{"type":10,"tag":566,"props":709,"children":710},{"style":573},[711],{"type":15,"value":694},{"type":10,"tag":566,"props":713,"children":715},{"class":568,"line":714},8,[716,720,725],{"type":10,"tag":566,"props":717,"children":718},{"style":573},[719],{"type":15,"value":684},{"type":10,"tag":566,"props":721,"children":722},{"style":613},[723],{"type":15,"value":724},"draw_primitives",{"type":10,"tag":566,"props":726,"children":727},{"style":573},[728],{"type":15,"value":694},{"type":10,"tag":566,"props":730,"children":732},{"class":568,"line":731},9,[733],{"type":10,"tag":566,"props":734,"children":735},{"style":573},[736],{"type":15,"value":737},"}\n",{"type":10,"tag":242,"props":739,"children":741},{"id":740},"_command_representation",[742],{"type":15,"value":743},"Command representation",{"type":10,"tag":11,"props":745,"children":746},{},[747],{"type":15,"value":748},"Supporting multiple commands in an indirect buffer can either be done with a homogeneous structure where the layout is fixed and the same pattern of operations is executed. Another alternative is a heterogeneous structure where there is no restriction on command ordering. For heterogeneous layout, the size of the arguments for each command may also vary.",{"type":10,"tag":11,"props":750,"children":751},{},[752,754,759],{"type":15,"value":753},"This proposal uses a homogeneous structure which matches D3D12, Metal, and ",{"type":10,"tag":151,"props":755,"children":757},{"className":756},[],[758],{"type":15,"value":450},{"type":15,"value":760},". This restricted model simplifies construction and interpretation of the data while also introducing an optimization challenge.",{"type":10,"tag":11,"props":762,"children":763},{},[764,766,772],{"type":15,"value":765},"Consider a sequence of ",{"type":10,"tag":151,"props":767,"children":769},{"className":768},[],[770],{"type":15,"value":771},"Bind Shaders/Draw",{"type":15,"value":773}," that binds the same shaders multiple times. If the command buffer is constructed on the host, draw calls with the same shaders can be grouped together creating a heterogeneous structure. There are several options to with a homogeneous structure:",{"type":10,"tag":93,"props":775,"children":776},{},[777,782,787],{"type":10,"tag":33,"props":778,"children":779},{},[780],{"type":15,"value":781},"On-device optimization. The implementation could detect/remove duplicates during pre-processing or execution. This may be difficult or impractical for a device to implement.",{"type":10,"tag":33,"props":783,"children":784},{},[785],{"type":15,"value":786},"Multi-level indirect. One of the indirect operations could be another indirect execution. For example, a two-level solution could be used with low-frequency operations in the first indirect buffer and high-frequency operations in the second indirect buffer.",{"type":10,"tag":33,"props":788,"children":789},{},[790],{"type":15,"value":791},"IndirectCount commands. Vulkan has pre-existing indirect commands that execute multiple operations with a device-specified count. This is equivalent to a heavily constrained multi-level indirect solution.",{"type":10,"tag":11,"props":793,"children":794},{},[795],{"type":15,"value":796},"This proposal does not expect significant on-device optimization and uses IndirectCount commands which are capable of representing many common application scenarios.",{"type":10,"tag":17,"props":798,"children":800},{"id":799},"_proposal",[801],{"type":15,"value":802},"Proposal",{"type":10,"tag":11,"props":804,"children":805},{},[806,808,813],{"type":15,"value":807},"This proposal targets Vulkan 1.3 building on functionality from ",{"type":10,"tag":151,"props":809,"children":811},{"className":810},[],[812],{"type":15,"value":291},{"type":15,"value":814}," to address the problem statement and also provide an emulation target for other APIs.",{"type":10,"tag":11,"props":816,"children":817},{},[818],{"type":15,"value":819},"Indirect buffers contain work elements (sequences) of uniform structure. The memory layout of a sequence is described by an Indirect Commands Layout that specifies a fixed number of command buffer operations:",{"type":10,"tag":29,"props":821,"children":822},{},[823,827,831,835,840,845],{"type":10,"tag":33,"props":824,"children":825},{},[826],{"type":15,"value":460},{"type":10,"tag":33,"props":828,"children":829},{},[830],{"type":15,"value":475},{"type":10,"tag":33,"props":832,"children":833},{},[834],{"type":15,"value":470},{"type":10,"tag":33,"props":836,"children":837},{},[838],{"type":15,"value":839},"Draws and dispatches",{"type":10,"tag":33,"props":841,"children":842},{},[843],{"type":15,"value":844},"Multi-draws with device-specified count",{"type":10,"tag":33,"props":846,"children":847},{},[848],{"type":15,"value":849},"Trace rays",{"type":10,"tag":11,"props":851,"children":852},{},[853],{"type":15,"value":854},"The extension provides a common framework for all existing and future indirect commands. An implementation does not need to support every command (see the Features section for more detail).",{"type":10,"tag":11,"props":856,"children":857},{},[858],{"type":15,"value":859},"Sequences of compute commands that change shaders must refer to elements of an Indirect Execution Set, a table that references multiple shaders of similar state.",{"type":10,"tag":11,"props":861,"children":862},{},[863],{"type":15,"value":864},"Implementations may also require a preprocess buffer to translate to a device-specific format. With Multi-draw commands being available, optimization of the preprocess buffer to remove duplicates is not expected.",{"type":10,"tag":11,"props":866,"children":867},{},[868],{"type":10,"tag":869,"props":870,"children":873},"img",{"alt":871,"src":872},"VK EXT device generated commands overview","../images/proposals/VK_EXT_device_generated_commands_overview.svg",[],{"type":10,"tag":11,"props":875,"children":876},{},[877],{"type":15,"value":878},"The generation of device generated commands uses the following principle steps:",{"type":10,"tag":29,"props":880,"children":881},{},[882,895,908,913,926,945,958],{"type":10,"tag":33,"props":883,"children":884},{},[885,887,893],{"type":15,"value":886},"Define via ",{"type":10,"tag":151,"props":888,"children":890},{"className":889},[],[891],{"type":15,"value":892},"VkIndirectCommandsLayoutEXT",{"type":15,"value":894}," the sequence of commands which can be generated.",{"type":10,"tag":33,"props":896,"children":897},{},[898,900,906],{"type":15,"value":899},"Optionally create and update an ",{"type":10,"tag":151,"props":901,"children":903},{"className":902},[],[904],{"type":15,"value":905},"VkIndirectExecutionSetEXT",{"type":15,"value":907}," to support changing shaders.",{"type":10,"tag":33,"props":909,"children":910},{},[911],{"type":15,"value":912},"Retrieve device addresses and handles for objects stored in indirect buffers.",{"type":10,"tag":33,"props":914,"children":915},{},[916,918,924],{"type":15,"value":917},"Fill a ",{"type":10,"tag":151,"props":919,"children":921},{"className":920},[],[922],{"type":15,"value":923},"VkBuffer",{"type":15,"value":925}," with the content that matches the indirect command layout.",{"type":10,"tag":33,"props":927,"children":928},{},[929,931,936,938,944],{"type":15,"value":930},"Create a preprocess ",{"type":10,"tag":151,"props":932,"children":934},{"className":933},[],[935],{"type":15,"value":923},{"type":15,"value":937}," that satisfies the allocation information from ",{"type":10,"tag":151,"props":939,"children":941},{"className":940},[],[942],{"type":15,"value":943},"vkGetGeneratedCommandsMemoryRequirementsEXT",{"type":15,"value":301},{"type":10,"tag":33,"props":946,"children":947},{},[948,950,956],{"type":15,"value":949},"Optionally preprocess the input data using ",{"type":10,"tag":151,"props":951,"children":953},{"className":952},[],[954],{"type":15,"value":955},"vkCmdPreprocessGeneratedCommandsEXT",{"type":15,"value":957}," in a separate action.",{"type":10,"tag":33,"props":959,"children":960},{},[961,963,969],{"type":15,"value":962},"Generate and execute the actual commands via ",{"type":10,"tag":151,"props":964,"children":966},{"className":965},[],[967],{"type":15,"value":968},"vkCmdExecuteGeneratedCommandsEXT",{"type":15,"value":970}," passing all required data.",{"type":10,"tag":11,"props":972,"children":973},{},[974,979],{"type":10,"tag":151,"props":975,"children":977},{"className":976},[],[978],{"type":15,"value":955},{"type":15,"value":980}," executes in a separate logical pipeline from either graphics or compute. When preprocessing commands in a separate step they must be explicitly synchronized against the command execution. When not preprocessing, the preprocessing is automatically synchronized against the command execution.",{"type":10,"tag":242,"props":982,"children":984},{"id":983},"_key_differences_with_vk_nv_device_generated_commands",[985,987],{"type":15,"value":986},"Key differences with ",{"type":10,"tag":151,"props":988,"children":990},{"className":989},[],[991],{"type":15,"value":450},{"type":10,"tag":29,"props":993,"children":994},{},[995,1000,1005,1010,1015,1020],{"type":10,"tag":33,"props":996,"children":997},{},[998],{"type":15,"value":999},"Common indirect commands under one unified framework (graphics, compute, and ray tracing)",{"type":10,"tag":33,"props":1001,"children":1002},{},[1003],{"type":15,"value":1004},"Incremental update of shaders available for use",{"type":10,"tag":33,"props":1006,"children":1007},{},[1008],{"type":15,"value":1009},"Adds IndirectCount commands",{"type":10,"tag":33,"props":1011,"children":1012},{},[1013],{"type":15,"value":1014},"Adds compute dispatch support",{"type":10,"tag":33,"props":1016,"children":1017},{},[1018],{"type":15,"value":1019},"Single-interleaved stream",{"type":10,"tag":33,"props":1021,"children":1022},{},[1023],{"type":15,"value":1024},"VK_EXT_shader_object support",{"type":10,"tag":242,"props":1026,"children":1028},{"id":1027},"_indirect_execution_sets",[1029],{"type":15,"value":1030},"Indirect Execution Sets",{"type":10,"tag":11,"props":1032,"children":1033},{},[1034],{"type":15,"value":1035},"Indirect buffers that bind shaders reference shaders (pipelines or shader objects) managed by a collection represented by:",{"type":10,"tag":555,"props":1037,"children":1039},{"className":557,"code":1038,"language":559,"meta":560,"style":560},"VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectExecutionSetEXT)\n",[1040],{"type":10,"tag":151,"props":1041,"children":1042},{"__ignoreMap":560},[1043],{"type":10,"tag":566,"props":1044,"children":1045},{"class":568,"line":569},[1046,1051],{"type":10,"tag":566,"props":1047,"children":1048},{"style":613},[1049],{"type":15,"value":1050},"VK_DEFINE_NON_DISPATCHABLE_HANDLE",{"type":10,"tag":566,"props":1052,"children":1053},{"style":573},[1054],{"type":15,"value":1055},"(VkIndirectExecutionSetEXT)\n",{"type":10,"tag":11,"props":1057,"children":1058},{},[1059,1061,1067],{"type":15,"value":1060},"Indirect execution sets group both pipelines with the same ",{"type":10,"tag":151,"props":1062,"children":1064},{"className":1063},[],[1065],{"type":15,"value":1066},"VkPipelineLayout",{"type":15,"value":1068}," and shader stages with matching per-stage descriptor layouts.",{"type":10,"tag":11,"props":1070,"children":1071},{},[1072],{"type":15,"value":1073},"Indirect execution sets contain a maximum number of N execution slots that can be updated when not referenced by indirect buffers currently in flight. Drivers should ensure that updating a set is a pretty cheap operation as it is expected to be modified as application content changes.",{"type":10,"tag":11,"props":1075,"children":1076},{},[1077,1079,1084],{"type":15,"value":1078},"Modifications to an indirect execution set may change the sizing requirements of the preprocess buffer. Applications must call ",{"type":10,"tag":151,"props":1080,"children":1082},{"className":1081},[],[1083],{"type":15,"value":943},{"type":15,"value":1085}," and update the preprocess buffer if needed when modifications are complete.",{"type":10,"tag":314,"props":1087,"children":1089},{"id":1088},"_creation_and_deletion",[1090],{"type":15,"value":1091},"Creation and Deletion",{"type":10,"tag":11,"props":1093,"children":1094},{},[1095],{"type":15,"value":1096},"Indirect execution sets are created by:",{"type":10,"tag":555,"props":1098,"children":1100},{"className":557,"code":1099,"language":559,"meta":560,"style":560},"VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectExecutionSetEXT(\n VkDevice device,\n const VkIndirectExecutionSetCreateInfoEXT* pCreateInfo,\n const VkAllocationCallbacks* pAllocator,\n VkIndirectExecutionSetEXT* pIndirectExecutionSet);\n",[1101],{"type":10,"tag":151,"props":1102,"children":1103},{"__ignoreMap":560},[1104,1122,1140,1167,1192],{"type":10,"tag":566,"props":1105,"children":1106},{"class":568,"line":569},[1107,1112,1117],{"type":10,"tag":566,"props":1108,"children":1109},{"style":573},[1110],{"type":15,"value":1111},"VKAPI_ATTR VkResult VKAPI_CALL ",{"type":10,"tag":566,"props":1113,"children":1114},{"style":613},[1115],{"type":15,"value":1116},"vkCreateIndirectExecutionSetEXT",{"type":10,"tag":566,"props":1118,"children":1119},{"style":573},[1120],{"type":15,"value":1121},"(\n",{"type":10,"tag":566,"props":1123,"children":1124},{"class":568,"line":590},[1125,1130,1135],{"type":10,"tag":566,"props":1126,"children":1127},{"style":573},[1128],{"type":15,"value":1129}," VkDevice ",{"type":10,"tag":566,"props":1131,"children":1132},{"style":629},[1133],{"type":15,"value":1134},"device",{"type":10,"tag":566,"props":1136,"children":1137},{"style":573},[1138],{"type":15,"value":1139},",\n",{"type":10,"tag":566,"props":1141,"children":1142},{"class":568,"line":599},[1143,1148,1153,1158,1163],{"type":10,"tag":566,"props":1144,"children":1145},{"style":579},[1146],{"type":15,"value":1147}," const",{"type":10,"tag":566,"props":1149,"children":1150},{"style":573},[1151],{"type":15,"value":1152}," VkIndirectExecutionSetCreateInfoEXT",{"type":10,"tag":566,"props":1154,"children":1155},{"style":579},[1156],{"type":15,"value":1157},"*",{"type":10,"tag":566,"props":1159,"children":1160},{"style":629},[1161],{"type":15,"value":1162}," pCreateInfo",{"type":10,"tag":566,"props":1164,"children":1165},{"style":573},[1166],{"type":15,"value":1139},{"type":10,"tag":566,"props":1168,"children":1169},{"class":568,"line":650},[1170,1174,1179,1183,1188],{"type":10,"tag":566,"props":1171,"children":1172},{"style":579},[1173],{"type":15,"value":1147},{"type":10,"tag":566,"props":1175,"children":1176},{"style":573},[1177],{"type":15,"value":1178}," VkAllocationCallbacks",{"type":10,"tag":566,"props":1180,"children":1181},{"style":579},[1182],{"type":15,"value":1157},{"type":10,"tag":566,"props":1184,"children":1185},{"style":629},[1186],{"type":15,"value":1187}," pAllocator",{"type":10,"tag":566,"props":1189,"children":1190},{"style":573},[1191],{"type":15,"value":1139},{"type":10,"tag":566,"props":1193,"children":1194},{"class":568,"line":659},[1195,1200,1204,1209],{"type":10,"tag":566,"props":1196,"children":1197},{"style":573},[1198],{"type":15,"value":1199}," VkIndirectExecutionSetEXT",{"type":10,"tag":566,"props":1201,"children":1202},{"style":579},[1203],{"type":15,"value":1157},{"type":10,"tag":566,"props":1205,"children":1206},{"style":629},[1207],{"type":15,"value":1208}," pIndirectExecutionSet",{"type":10,"tag":566,"props":1210,"children":1211},{"style":573},[1212],{"type":15,"value":1213},");\n",{"type":10,"tag":29,"props":1215,"children":1216},{},[1217,1227,1246,1257],{"type":10,"tag":33,"props":1218,"children":1219},{},[1220,1225],{"type":10,"tag":151,"props":1221,"children":1223},{"className":1222},[],[1224],{"type":15,"value":1134},{"type":15,"value":1226}," is the logical device that creates the indirect execution set.",{"type":10,"tag":33,"props":1228,"children":1229},{},[1230,1236,1238,1244],{"type":10,"tag":151,"props":1231,"children":1233},{"className":1232},[],[1234],{"type":15,"value":1235},"pCreateInfo",{"type":15,"value":1237}," is a pointer to a ",{"type":10,"tag":151,"props":1239,"children":1241},{"className":1240},[],[1242],{"type":15,"value":1243},"VkIndirectExecutionSetCreateInfoEXT",{"type":15,"value":1245}," structure containing parameters affecting creation of the indirect execution set.",{"type":10,"tag":33,"props":1247,"children":1248},{},[1249,1255],{"type":10,"tag":151,"props":1250,"children":1252},{"className":1251},[],[1253],{"type":15,"value":1254},"pAllocator",{"type":15,"value":1256}," controls host memory allocation as described in the Memory Allocation chapter.",{"type":10,"tag":33,"props":1258,"children":1259},{},[1260,1266,1267,1272],{"type":10,"tag":151,"props":1261,"children":1263},{"className":1262},[],[1264],{"type":15,"value":1265},"pIndirectExecutionSet",{"type":15,"value":1237},{"type":10,"tag":151,"props":1268,"children":1270},{"className":1269},[],[1271],{"type":15,"value":905},{"type":15,"value":1273}," handle in which the resulting indirect execution set is returned.",{"type":10,"tag":11,"props":1275,"children":1276},{},[1277,1278,1283],{"type":15,"value":444},{"type":10,"tag":151,"props":1279,"children":1281},{"className":1280},[],[1282],{"type":15,"value":1243},{"type":15,"value":1284}," structure is defined as:",{"type":10,"tag":555,"props":1286,"children":1288},{"className":557,"code":1287,"language":559,"meta":560,"style":560},"typedef struct VkIndirectExecutionSetCreateInfoEXT {\n VkStructureType sType;\n const void* pNext;\n VkIndirectExecutionSetInfoTypeEXT type;\n VkIndirectExecutionSetInfoEXT info;\n} VkIndirectExecutionSetCreateInfoEXT;\n",[1289],{"type":10,"tag":151,"props":1290,"children":1291},{"__ignoreMap":560},[1292,1310,1318,1335,1343,1351],{"type":10,"tag":566,"props":1293,"children":1294},{"class":568,"line":569},[1295,1300,1305],{"type":10,"tag":566,"props":1296,"children":1297},{"style":579},[1298],{"type":15,"value":1299},"typedef",{"type":10,"tag":566,"props":1301,"children":1302},{"style":579},[1303],{"type":15,"value":1304}," struct",{"type":10,"tag":566,"props":1306,"children":1307},{"style":573},[1308],{"type":15,"value":1309}," VkIndirectExecutionSetCreateInfoEXT {\n",{"type":10,"tag":566,"props":1311,"children":1312},{"class":568,"line":590},[1313],{"type":10,"tag":566,"props":1314,"children":1315},{"style":573},[1316],{"type":15,"value":1317}," VkStructureType sType;\n",{"type":10,"tag":566,"props":1319,"children":1320},{"class":568,"line":599},[1321,1325,1330],{"type":10,"tag":566,"props":1322,"children":1323},{"style":579},[1324],{"type":15,"value":1147},{"type":10,"tag":566,"props":1326,"children":1327},{"style":579},[1328],{"type":15,"value":1329}," void*",{"type":10,"tag":566,"props":1331,"children":1332},{"style":573},[1333],{"type":15,"value":1334}," pNext;\n",{"type":10,"tag":566,"props":1336,"children":1337},{"class":568,"line":650},[1338],{"type":10,"tag":566,"props":1339,"children":1340},{"style":573},[1341],{"type":15,"value":1342}," VkIndirectExecutionSetInfoTypeEXT type;\n",{"type":10,"tag":566,"props":1344,"children":1345},{"class":568,"line":659},[1346],{"type":10,"tag":566,"props":1347,"children":1348},{"style":573},[1349],{"type":15,"value":1350}," VkIndirectExecutionSetInfoEXT info;\n",{"type":10,"tag":566,"props":1352,"children":1353},{"class":568,"line":678},[1354],{"type":10,"tag":566,"props":1355,"children":1356},{"style":573},[1357],{"type":15,"value":1358},"} VkIndirectExecutionSetCreateInfoEXT;\n",{"type":10,"tag":29,"props":1360,"children":1361},{},[1362,1380],{"type":10,"tag":33,"props":1363,"children":1364},{},[1365,1371,1373,1379],{"type":10,"tag":151,"props":1366,"children":1368},{"className":1367},[],[1369],{"type":15,"value":1370},"flags",{"type":15,"value":1372}," must not be ",{"type":10,"tag":151,"props":1374,"children":1376},{"className":1375},[],[1377],{"type":15,"value":1378},"0",{"type":15,"value":301},{"type":10,"tag":33,"props":1381,"children":1382},{},[1383,1389,1391,1397],{"type":10,"tag":151,"props":1384,"children":1386},{"className":1385},[],[1387],{"type":15,"value":1388},"info",{"type":15,"value":1390}," is a ",{"type":10,"tag":151,"props":1392,"children":1394},{"className":1393},[],[1395],{"type":15,"value":1396},"VkIndirectExecutionSetInfoEXT",{"type":15,"value":1398}," union containing layout information for the indirect execution set.",{"type":10,"tag":11,"props":1400,"children":1401},{},[1402],{"type":15,"value":1403},"The VkIndirectExecutionSetInfoTypeEXT enum is defined as:",{"type":10,"tag":555,"props":1405,"children":1407},{"className":557,"code":1406,"language":559,"meta":560,"style":560},"typedef enum VkIndirectExecutionSetInfoTypeEXT\n{\n VK_INDIRECT_EXECUTION_SET_INFO_TYPE_PIPELINES_EXT = 0x00000001,\n VK_INDIRECT_EXECUTION_SET_INFO_TYPE_SHADER_OBJECTS_EXT = 0x00000002,\n} VkIndirectExecutionSetInfoTypeEXT;\n",[1408],{"type":10,"tag":151,"props":1409,"children":1410},{"__ignoreMap":560},[1411,1428,1436,1464,1489],{"type":10,"tag":566,"props":1412,"children":1413},{"class":568,"line":569},[1414,1418,1423],{"type":10,"tag":566,"props":1415,"children":1416},{"style":579},[1417],{"type":15,"value":1299},{"type":10,"tag":566,"props":1419,"children":1420},{"style":579},[1421],{"type":15,"value":1422}," enum",{"type":10,"tag":566,"props":1424,"children":1425},{"style":573},[1426],{"type":15,"value":1427}," VkIndirectExecutionSetInfoTypeEXT\n",{"type":10,"tag":566,"props":1429,"children":1430},{"class":568,"line":590},[1431],{"type":10,"tag":566,"props":1432,"children":1433},{"style":573},[1434],{"type":15,"value":1435},"{\n",{"type":10,"tag":566,"props":1437,"children":1438},{"class":568,"line":599},[1439,1444,1449,1454,1460],{"type":10,"tag":566,"props":1440,"children":1441},{"style":573},[1442],{"type":15,"value":1443}," VK_INDIRECT_EXECUTION_SET_INFO_TYPE_PIPELINES_EXT ",{"type":10,"tag":566,"props":1445,"children":1446},{"style":579},[1447],{"type":15,"value":1448},"=",{"type":10,"tag":566,"props":1450,"children":1451},{"style":579},[1452],{"type":15,"value":1453}," 0x",{"type":10,"tag":566,"props":1455,"children":1457},{"style":1456},"--shiki-default:#0550AE;--shiki-dark:#79C0FF",[1458],{"type":15,"value":1459},"00000001",{"type":10,"tag":566,"props":1461,"children":1462},{"style":573},[1463],{"type":15,"value":1139},{"type":10,"tag":566,"props":1465,"children":1466},{"class":568,"line":650},[1467,1472,1476,1480,1485],{"type":10,"tag":566,"props":1468,"children":1469},{"style":573},[1470],{"type":15,"value":1471}," VK_INDIRECT_EXECUTION_SET_INFO_TYPE_SHADER_OBJECTS_EXT ",{"type":10,"tag":566,"props":1473,"children":1474},{"style":579},[1475],{"type":15,"value":1448},{"type":10,"tag":566,"props":1477,"children":1478},{"style":579},[1479],{"type":15,"value":1453},{"type":10,"tag":566,"props":1481,"children":1482},{"style":1456},[1483],{"type":15,"value":1484},"00000002",{"type":10,"tag":566,"props":1486,"children":1487},{"style":573},[1488],{"type":15,"value":1139},{"type":10,"tag":566,"props":1490,"children":1491},{"class":568,"line":659},[1492],{"type":10,"tag":566,"props":1493,"children":1494},{"style":573},[1495],{"type":15,"value":1496},"} VkIndirectExecutionSetInfoTypeEXT;\n",{"type":10,"tag":29,"props":1498,"children":1499},{},[1500,1526],{"type":10,"tag":33,"props":1501,"children":1502},{},[1503,1509,1511,1516,1518,1524],{"type":10,"tag":151,"props":1504,"children":1506},{"className":1505},[],[1507],{"type":15,"value":1508},"VK_INDIRECT_EXECUTION_SET_INFO_TYPE_PIPELINES_EXT",{"type":15,"value":1510}," indicates that the ",{"type":10,"tag":151,"props":1512,"children":1514},{"className":1513},[],[1515],{"type":15,"value":905},{"type":15,"value":1517}," contains ",{"type":10,"tag":151,"props":1519,"children":1521},{"className":1520},[],[1522],{"type":15,"value":1523},"VkPipeline",{"type":15,"value":1525}," objects.",{"type":10,"tag":33,"props":1527,"children":1528},{},[1529,1535,1536,1541,1542,1548],{"type":10,"tag":151,"props":1530,"children":1532},{"className":1531},[],[1533],{"type":15,"value":1534},"VK_INDIRECT_EXECUTION_SET_INFO_TYPE_SHADER_OBJECTS_EXT",{"type":15,"value":1510},{"type":10,"tag":151,"props":1537,"children":1539},{"className":1538},[],[1540],{"type":15,"value":905},{"type":15,"value":1517},{"type":10,"tag":151,"props":1543,"children":1545},{"className":1544},[],[1546],{"type":15,"value":1547},"VkShaderEXT",{"type":15,"value":1525},{"type":10,"tag":11,"props":1550,"children":1551},{},[1552,1553,1558],{"type":15,"value":444},{"type":10,"tag":151,"props":1554,"children":1556},{"className":1555},[],[1557],{"type":15,"value":1396},{"type":15,"value":1559}," union is defined as:",{"type":10,"tag":555,"props":1561,"children":1563},{"className":557,"code":1562,"language":559,"meta":560,"style":560},"typedef union VkIndirectExecutionSetInfoEXT {\n const VkIndirectExecutionSetPipelineInfoEXT *pPipelineInfo;\n const VkIndirectExecutionSetShaderInfoEXT *pShaderInfo;\n}\n",[1564],{"type":10,"tag":151,"props":1565,"children":1566},{"__ignoreMap":560},[1567,1584,1605,1626],{"type":10,"tag":566,"props":1568,"children":1569},{"class":568,"line":569},[1570,1574,1579],{"type":10,"tag":566,"props":1571,"children":1572},{"style":579},[1573],{"type":15,"value":1299},{"type":10,"tag":566,"props":1575,"children":1576},{"style":579},[1577],{"type":15,"value":1578}," union",{"type":10,"tag":566,"props":1580,"children":1581},{"style":573},[1582],{"type":15,"value":1583}," VkIndirectExecutionSetInfoEXT {\n",{"type":10,"tag":566,"props":1585,"children":1586},{"class":568,"line":590},[1587,1591,1596,1600],{"type":10,"tag":566,"props":1588,"children":1589},{"style":579},[1590],{"type":15,"value":1147},{"type":10,"tag":566,"props":1592,"children":1593},{"style":573},[1594],{"type":15,"value":1595}," VkIndirectExecutionSetPipelineInfoEXT ",{"type":10,"tag":566,"props":1597,"children":1598},{"style":579},[1599],{"type":15,"value":1157},{"type":10,"tag":566,"props":1601,"children":1602},{"style":573},[1603],{"type":15,"value":1604},"pPipelineInfo;\n",{"type":10,"tag":566,"props":1606,"children":1607},{"class":568,"line":599},[1608,1612,1617,1621],{"type":10,"tag":566,"props":1609,"children":1610},{"style":579},[1611],{"type":15,"value":1147},{"type":10,"tag":566,"props":1613,"children":1614},{"style":573},[1615],{"type":15,"value":1616}," VkIndirectExecutionSetShaderInfoEXT ",{"type":10,"tag":566,"props":1618,"children":1619},{"style":579},[1620],{"type":15,"value":1157},{"type":10,"tag":566,"props":1622,"children":1623},{"style":573},[1624],{"type":15,"value":1625},"pShaderInfo;\n",{"type":10,"tag":566,"props":1627,"children":1628},{"class":568,"line":650},[1629],{"type":10,"tag":566,"props":1630,"children":1631},{"style":573},[1632],{"type":15,"value":737},{"type":10,"tag":29,"props":1634,"children":1635},{},[1636,1654],{"type":10,"tag":33,"props":1637,"children":1638},{},[1639,1645,1646,1652],{"type":10,"tag":151,"props":1640,"children":1642},{"className":1641},[],[1643],{"type":15,"value":1644},"pPipelineInfo",{"type":15,"value":1237},{"type":10,"tag":151,"props":1647,"children":1649},{"className":1648},[],[1650],{"type":15,"value":1651},"VkIndirectExecutionSetPipelineInfoEXT",{"type":15,"value":1653}," struct containing pipeline layout information for the indirect execution set.",{"type":10,"tag":33,"props":1655,"children":1656},{},[1657,1663,1664,1670],{"type":10,"tag":151,"props":1658,"children":1660},{"className":1659},[],[1661],{"type":15,"value":1662},"pShaderInfo",{"type":15,"value":1237},{"type":10,"tag":151,"props":1665,"children":1667},{"className":1666},[],[1668],{"type":15,"value":1669},"VkIndirectExecutionSetShaderInfoEXT",{"type":15,"value":1671}," struct containing shader object layout information for the indirect execution set.",{"type":10,"tag":11,"props":1673,"children":1674},{},[1675,1676,1681],{"type":15,"value":444},{"type":10,"tag":151,"props":1677,"children":1679},{"className":1678},[],[1680],{"type":15,"value":1651},{"type":15,"value":1284},{"type":10,"tag":555,"props":1683,"children":1685},{"className":557,"code":1684,"language":559,"meta":560,"style":560},"typedef struct VkIndirectExecutionSetPipelineInfoEXT {\n VkStructureType sType;\n const void* pNext;\n VkPipeline initialPipeline;\n uint32_t maxPipelineCount;\n} VkIndirectExecutionSetPipelineInfoEXT;\n",[1686],{"type":10,"tag":151,"props":1687,"children":1688},{"__ignoreMap":560},[1689,1705,1712,1727,1735,1748],{"type":10,"tag":566,"props":1690,"children":1691},{"class":568,"line":569},[1692,1696,1700],{"type":10,"tag":566,"props":1693,"children":1694},{"style":579},[1695],{"type":15,"value":1299},{"type":10,"tag":566,"props":1697,"children":1698},{"style":579},[1699],{"type":15,"value":1304},{"type":10,"tag":566,"props":1701,"children":1702},{"style":573},[1703],{"type":15,"value":1704}," VkIndirectExecutionSetPipelineInfoEXT {\n",{"type":10,"tag":566,"props":1706,"children":1707},{"class":568,"line":590},[1708],{"type":10,"tag":566,"props":1709,"children":1710},{"style":573},[1711],{"type":15,"value":1317},{"type":10,"tag":566,"props":1713,"children":1714},{"class":568,"line":599},[1715,1719,1723],{"type":10,"tag":566,"props":1716,"children":1717},{"style":579},[1718],{"type":15,"value":1147},{"type":10,"tag":566,"props":1720,"children":1721},{"style":579},[1722],{"type":15,"value":1329},{"type":10,"tag":566,"props":1724,"children":1725},{"style":573},[1726],{"type":15,"value":1334},{"type":10,"tag":566,"props":1728,"children":1729},{"class":568,"line":650},[1730],{"type":10,"tag":566,"props":1731,"children":1732},{"style":573},[1733],{"type":15,"value":1734}," VkPipeline initialPipeline;\n",{"type":10,"tag":566,"props":1736,"children":1737},{"class":568,"line":659},[1738,1743],{"type":10,"tag":566,"props":1739,"children":1740},{"style":579},[1741],{"type":15,"value":1742}," uint32_t",{"type":10,"tag":566,"props":1744,"children":1745},{"style":573},[1746],{"type":15,"value":1747}," maxPipelineCount;\n",{"type":10,"tag":566,"props":1749,"children":1750},{"class":568,"line":678},[1751],{"type":10,"tag":566,"props":1752,"children":1753},{"style":573},[1754],{"type":15,"value":1755},"} VkIndirectExecutionSetPipelineInfoEXT;\n",{"type":10,"tag":29,"props":1757,"children":1758},{},[1759,1784],{"type":10,"tag":33,"props":1760,"children":1761},{},[1762,1768,1770,1775,1777,1783],{"type":10,"tag":151,"props":1763,"children":1765},{"className":1764},[],[1766],{"type":15,"value":1767},"initialPipeline",{"type":15,"value":1769}," is the pipeline to validate other pipelines in the set against. Its state will be used for validation even if it is removed from the set.\nThis pipeline will be automatically added to the set at index ",{"type":10,"tag":151,"props":1771,"children":1773},{"className":1772},[],[1774],{"type":15,"value":1378},{"type":15,"value":1776},".\nThe bind point must be supported by ",{"type":10,"tag":151,"props":1778,"children":1780},{"className":1779},[],[1781],{"type":15,"value":1782},"VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT::supportedIndirectCommandsShaderStagesPipelineBinding",{"type":15,"value":301},{"type":10,"tag":33,"props":1785,"children":1786},{},[1787,1793],{"type":10,"tag":151,"props":1788,"children":1790},{"className":1789},[],[1791],{"type":15,"value":1792},"maxPipelineCount",{"type":15,"value":1794}," is the maximum number of pipelines stored in the set.",{"type":10,"tag":11,"props":1796,"children":1797},{},[1798,1799,1804],{"type":15,"value":444},{"type":10,"tag":151,"props":1800,"children":1802},{"className":1801},[],[1803],{"type":15,"value":1669},{"type":15,"value":1284},{"type":10,"tag":555,"props":1806,"children":1808},{"className":557,"code":1807,"language":559,"meta":560,"style":560},"typedef struct VkIndirectExecutionSetShaderInfoEXT {\n VkStructureType sType;\n const void* pNext;\n uint32_t shaderCount;\n const VkShaderEXT *pInitialShaders;\n const VkIndirectExecutionSetShaderLayoutInfoEXT *pSetLayoutInfos;\n uint32_t maxShaderCount;\n uint32_t pushConstantRangeCount;\n const VkPushConstantRange *pPushConstantRanges;\n} VkIndirectExecutionSetShaderInfoEXT;\n",[1809],{"type":10,"tag":151,"props":1810,"children":1811},{"__ignoreMap":560},[1812,1828,1835,1850,1862,1883,1904,1916,1928,1949],{"type":10,"tag":566,"props":1813,"children":1814},{"class":568,"line":569},[1815,1819,1823],{"type":10,"tag":566,"props":1816,"children":1817},{"style":579},[1818],{"type":15,"value":1299},{"type":10,"tag":566,"props":1820,"children":1821},{"style":579},[1822],{"type":15,"value":1304},{"type":10,"tag":566,"props":1824,"children":1825},{"style":573},[1826],{"type":15,"value":1827}," VkIndirectExecutionSetShaderInfoEXT {\n",{"type":10,"tag":566,"props":1829,"children":1830},{"class":568,"line":590},[1831],{"type":10,"tag":566,"props":1832,"children":1833},{"style":573},[1834],{"type":15,"value":1317},{"type":10,"tag":566,"props":1836,"children":1837},{"class":568,"line":599},[1838,1842,1846],{"type":10,"tag":566,"props":1839,"children":1840},{"style":579},[1841],{"type":15,"value":1147},{"type":10,"tag":566,"props":1843,"children":1844},{"style":579},[1845],{"type":15,"value":1329},{"type":10,"tag":566,"props":1847,"children":1848},{"style":573},[1849],{"type":15,"value":1334},{"type":10,"tag":566,"props":1851,"children":1852},{"class":568,"line":650},[1853,1857],{"type":10,"tag":566,"props":1854,"children":1855},{"style":579},[1856],{"type":15,"value":1742},{"type":10,"tag":566,"props":1858,"children":1859},{"style":573},[1860],{"type":15,"value":1861}," shaderCount;\n",{"type":10,"tag":566,"props":1863,"children":1864},{"class":568,"line":659},[1865,1869,1874,1878],{"type":10,"tag":566,"props":1866,"children":1867},{"style":579},[1868],{"type":15,"value":1147},{"type":10,"tag":566,"props":1870,"children":1871},{"style":573},[1872],{"type":15,"value":1873}," VkShaderEXT ",{"type":10,"tag":566,"props":1875,"children":1876},{"style":579},[1877],{"type":15,"value":1157},{"type":10,"tag":566,"props":1879,"children":1880},{"style":573},[1881],{"type":15,"value":1882},"pInitialShaders;\n",{"type":10,"tag":566,"props":1884,"children":1885},{"class":568,"line":678},[1886,1890,1895,1899],{"type":10,"tag":566,"props":1887,"children":1888},{"style":579},[1889],{"type":15,"value":1147},{"type":10,"tag":566,"props":1891,"children":1892},{"style":573},[1893],{"type":15,"value":1894}," VkIndirectExecutionSetShaderLayoutInfoEXT ",{"type":10,"tag":566,"props":1896,"children":1897},{"style":579},[1898],{"type":15,"value":1157},{"type":10,"tag":566,"props":1900,"children":1901},{"style":573},[1902],{"type":15,"value":1903},"pSetLayoutInfos;\n",{"type":10,"tag":566,"props":1905,"children":1906},{"class":568,"line":697},[1907,1911],{"type":10,"tag":566,"props":1908,"children":1909},{"style":579},[1910],{"type":15,"value":1742},{"type":10,"tag":566,"props":1912,"children":1913},{"style":573},[1914],{"type":15,"value":1915}," maxShaderCount;\n",{"type":10,"tag":566,"props":1917,"children":1918},{"class":568,"line":714},[1919,1923],{"type":10,"tag":566,"props":1920,"children":1921},{"style":579},[1922],{"type":15,"value":1742},{"type":10,"tag":566,"props":1924,"children":1925},{"style":573},[1926],{"type":15,"value":1927}," pushConstantRangeCount;\n",{"type":10,"tag":566,"props":1929,"children":1930},{"class":568,"line":731},[1931,1935,1940,1944],{"type":10,"tag":566,"props":1932,"children":1933},{"style":579},[1934],{"type":15,"value":1147},{"type":10,"tag":566,"props":1936,"children":1937},{"style":573},[1938],{"type":15,"value":1939}," VkPushConstantRange ",{"type":10,"tag":566,"props":1941,"children":1942},{"style":579},[1943],{"type":15,"value":1157},{"type":10,"tag":566,"props":1945,"children":1946},{"style":573},[1947],{"type":15,"value":1948},"pPushConstantRanges;\n",{"type":10,"tag":566,"props":1950,"children":1952},{"class":568,"line":1951},10,[1953],{"type":10,"tag":566,"props":1954,"children":1955},{"style":573},[1956],{"type":15,"value":1957},"} VkIndirectExecutionSetShaderInfoEXT;\n",{"type":10,"tag":29,"props":1959,"children":1960},{},[1961,1987,2018,2043,2054,2072],{"type":10,"tag":33,"props":1962,"children":1963},{},[1964,1970,1972,1978,1979,1985],{"type":10,"tag":151,"props":1965,"children":1967},{"className":1966},[],[1968],{"type":15,"value":1969},"shaderCount",{"type":15,"value":1971}," is the number of members in the ",{"type":10,"tag":151,"props":1973,"children":1975},{"className":1974},[],[1976],{"type":15,"value":1977},"pInitialShaders",{"type":15,"value":293},{"type":10,"tag":151,"props":1980,"children":1982},{"className":1981},[],[1983],{"type":15,"value":1984},"pSetLayoutInfos",{"type":15,"value":1986}," arrays.",{"type":10,"tag":33,"props":1988,"children":1989},{},[1990,1995,1997,2002,2004,2009,2011,2017],{"type":10,"tag":151,"props":1991,"children":1993},{"className":1992},[],[1994],{"type":15,"value":1977},{"type":15,"value":1996}," is a pointer to an array containing a ",{"type":10,"tag":151,"props":1998,"children":2000},{"className":1999},[],[2001],{"type":15,"value":1547},{"type":15,"value":2003}," object for each shader stage that will be used in the set.\nThese shaders will be used to validate other shaders in the set against. Their state will be used for validation even if they are removed from the set.\nThese shaders will be automatically added to the set beginning at index ",{"type":10,"tag":151,"props":2005,"children":2007},{"className":2006},[],[2008],{"type":15,"value":1378},{"type":15,"value":2010},".\nThe stages of the shaders must be supported by ",{"type":10,"tag":151,"props":2012,"children":2014},{"className":2013},[],[2015],{"type":15,"value":2016},"VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT::supportedIndirectCommandsShaderStagesShaderBinding",{"type":15,"value":301},{"type":10,"tag":33,"props":2019,"children":2020},{},[2021,2026,2028,2034,2036,2041],{"type":10,"tag":151,"props":2022,"children":2024},{"className":2023},[],[2025],{"type":15,"value":1984},{"type":15,"value":2027}," is a pointer to array containing ",{"type":10,"tag":151,"props":2029,"children":2031},{"className":2030},[],[2032],{"type":15,"value":2033},"VkIndirectExecutionSetShaderLayoutInfoEXT",{"type":15,"value":2035}," infos used by each corresponding ",{"type":10,"tag":151,"props":2037,"children":2039},{"className":2038},[],[2040],{"type":15,"value":1977},{"type":15,"value":2042}," shader stage in the set.",{"type":10,"tag":33,"props":2044,"children":2045},{},[2046,2052],{"type":10,"tag":151,"props":2047,"children":2049},{"className":2048},[],[2050],{"type":15,"value":2051},"maxShaderCount",{"type":15,"value":2053}," is the maximum number of corresponding shader objects stored in the set.",{"type":10,"tag":33,"props":2055,"children":2056},{},[2057,2063,2064,2070],{"type":10,"tag":151,"props":2058,"children":2060},{"className":2059},[],[2061],{"type":15,"value":2062},"pushConstantRangeCount",{"type":15,"value":1971},{"type":10,"tag":151,"props":2065,"children":2067},{"className":2066},[],[2068],{"type":15,"value":2069},"pPushConstantRanges",{"type":15,"value":2071}," array.",{"type":10,"tag":33,"props":2073,"children":2074},{},[2075,2080,2082,2088],{"type":10,"tag":151,"props":2076,"children":2078},{"className":2077},[],[2079],{"type":15,"value":2069},{"type":15,"value":2081}," is a pointer to the array of ",{"type":10,"tag":151,"props":2083,"children":2085},{"className":2084},[],[2086],{"type":15,"value":2087},"VkPushConstantRange",{"type":15,"value":2089}," ranges used by all shaders in the set.",{"type":10,"tag":11,"props":2091,"children":2092},{},[2093,2094,2099],{"type":15,"value":444},{"type":10,"tag":151,"props":2095,"children":2097},{"className":2096},[],[2098],{"type":15,"value":2033},{"type":15,"value":1284},{"type":10,"tag":555,"props":2101,"children":2103},{"className":557,"code":2102,"language":559,"meta":560,"style":560},"typedef struct VkIndirectExecutionSetShaderLayoutInfoEXT {\n uint32_t setLayoutCount;\n const VkDescriptorSetLayout *pSetLayouts;\n} VkIndirectExecutionSetShaderLayoutInfoEXT;\n",[2104],{"type":10,"tag":151,"props":2105,"children":2106},{"__ignoreMap":560},[2107,2123,2135,2156],{"type":10,"tag":566,"props":2108,"children":2109},{"class":568,"line":569},[2110,2114,2118],{"type":10,"tag":566,"props":2111,"children":2112},{"style":579},[2113],{"type":15,"value":1299},{"type":10,"tag":566,"props":2115,"children":2116},{"style":579},[2117],{"type":15,"value":1304},{"type":10,"tag":566,"props":2119,"children":2120},{"style":573},[2121],{"type":15,"value":2122}," VkIndirectExecutionSetShaderLayoutInfoEXT {\n",{"type":10,"tag":566,"props":2124,"children":2125},{"class":568,"line":590},[2126,2130],{"type":10,"tag":566,"props":2127,"children":2128},{"style":579},[2129],{"type":15,"value":1742},{"type":10,"tag":566,"props":2131,"children":2132},{"style":573},[2133],{"type":15,"value":2134}," setLayoutCount;\n",{"type":10,"tag":566,"props":2136,"children":2137},{"class":568,"line":599},[2138,2142,2147,2151],{"type":10,"tag":566,"props":2139,"children":2140},{"style":579},[2141],{"type":15,"value":1147},{"type":10,"tag":566,"props":2143,"children":2144},{"style":573},[2145],{"type":15,"value":2146}," VkDescriptorSetLayout ",{"type":10,"tag":566,"props":2148,"children":2149},{"style":579},[2150],{"type":15,"value":1157},{"type":10,"tag":566,"props":2152,"children":2153},{"style":573},[2154],{"type":15,"value":2155},"pSetLayouts;\n",{"type":10,"tag":566,"props":2157,"children":2158},{"class":568,"line":650},[2159],{"type":10,"tag":566,"props":2160,"children":2161},{"style":573},[2162],{"type":15,"value":2163},"} VkIndirectExecutionSetShaderLayoutInfoEXT;\n",{"type":10,"tag":29,"props":2165,"children":2166},{},[2167,2193],{"type":10,"tag":33,"props":2168,"children":2169},{},[2170,2176,2178,2184,2186,2192],{"type":10,"tag":151,"props":2171,"children":2173},{"className":2172},[],[2174],{"type":15,"value":2175},"setLayoutCount",{"type":15,"value":2177}," is the number of ",{"type":10,"tag":151,"props":2179,"children":2181},{"className":2180},[],[2182],{"type":15,"value":2183},"VkDescriptorSetLayout",{"type":15,"value":2185}," in the ",{"type":10,"tag":151,"props":2187,"children":2189},{"className":2188},[],[2190],{"type":15,"value":2191},"pSetLayouts",{"type":15,"value":2071},{"type":10,"tag":33,"props":2194,"children":2195},{},[2196,2201,2203,2208],{"type":10,"tag":151,"props":2197,"children":2199},{"className":2198},[],[2200],{"type":15,"value":2191},{"type":15,"value":2202}," is a pointer to an array containing ",{"type":10,"tag":151,"props":2204,"children":2206},{"className":2205},[],[2207],{"type":15,"value":2183},{"type":15,"value":2209}," objects used by a given shader stage.",{"type":10,"tag":11,"props":2211,"children":2212},{},[2213],{"type":15,"value":2214},"Indirect execution sets are destroyed by:",{"type":10,"tag":555,"props":2216,"children":2218},{"className":557,"code":2217,"language":559,"meta":560,"style":560},"VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectExecutionSetEXT(\n VkDevice device,\n VkIndirectExecutionSetEXT indirectExecutionSet,\n const VkAllocationCallbacks* pAllocator);\n",[2219],{"type":10,"tag":151,"props":2220,"children":2221},{"__ignoreMap":560},[2222,2248,2264,2281],{"type":10,"tag":566,"props":2223,"children":2224},{"class":568,"line":569},[2225,2230,2234,2239,2244],{"type":10,"tag":566,"props":2226,"children":2227},{"style":573},[2228],{"type":15,"value":2229},"VKAPI_ATTR ",{"type":10,"tag":566,"props":2231,"children":2232},{"style":579},[2233],{"type":15,"value":610},{"type":10,"tag":566,"props":2235,"children":2236},{"style":573},[2237],{"type":15,"value":2238}," VKAPI_CALL ",{"type":10,"tag":566,"props":2240,"children":2241},{"style":613},[2242],{"type":15,"value":2243},"vkDestroyIndirectExecutionSetEXT",{"type":10,"tag":566,"props":2245,"children":2246},{"style":573},[2247],{"type":15,"value":1121},{"type":10,"tag":566,"props":2249,"children":2250},{"class":568,"line":590},[2251,2256,2260],{"type":10,"tag":566,"props":2252,"children":2253},{"style":573},[2254],{"type":15,"value":2255}," VkDevice ",{"type":10,"tag":566,"props":2257,"children":2258},{"style":629},[2259],{"type":15,"value":1134},{"type":10,"tag":566,"props":2261,"children":2262},{"style":573},[2263],{"type":15,"value":1139},{"type":10,"tag":566,"props":2265,"children":2266},{"class":568,"line":599},[2267,2272,2277],{"type":10,"tag":566,"props":2268,"children":2269},{"style":573},[2270],{"type":15,"value":2271}," VkIndirectExecutionSetEXT ",{"type":10,"tag":566,"props":2273,"children":2274},{"style":629},[2275],{"type":15,"value":2276},"indirectExecutionSet",{"type":10,"tag":566,"props":2278,"children":2279},{"style":573},[2280],{"type":15,"value":1139},{"type":10,"tag":566,"props":2282,"children":2283},{"class":568,"line":650},[2284,2288,2292,2296,2301],{"type":10,"tag":566,"props":2285,"children":2286},{"style":579},[2287],{"type":15,"value":1147},{"type":10,"tag":566,"props":2289,"children":2290},{"style":573},[2291],{"type":15,"value":1178},{"type":10,"tag":566,"props":2293,"children":2294},{"style":579},[2295],{"type":15,"value":1157},{"type":10,"tag":566,"props":2297,"children":2298},{"style":629},[2299],{"type":15,"value":2300}," pAllocator",{"type":10,"tag":566,"props":2302,"children":2303},{"style":573},[2304],{"type":15,"value":1213},{"type":10,"tag":29,"props":2306,"children":2307},{},[2308,2318,2328],{"type":10,"tag":33,"props":2309,"children":2310},{},[2311,2316],{"type":10,"tag":151,"props":2312,"children":2314},{"className":2313},[],[2315],{"type":15,"value":1134},{"type":15,"value":2317}," is the logical device that owns the indirect execution set.",{"type":10,"tag":33,"props":2319,"children":2320},{},[2321,2326],{"type":10,"tag":151,"props":2322,"children":2324},{"className":2323},[],[2325],{"type":15,"value":2276},{"type":15,"value":2327}," is the indirect execution set to destroy.",{"type":10,"tag":33,"props":2329,"children":2330},{},[2331,2336],{"type":10,"tag":151,"props":2332,"children":2334},{"className":2333},[],[2335],{"type":15,"value":1254},{"type":15,"value":1256},{"type":10,"tag":314,"props":2338,"children":2340},{"id":2339},"_updates",[2341],{"type":15,"value":2342},"Updates",{"type":10,"tag":11,"props":2344,"children":2345},{},[2346],{"type":15,"value":2347},"Once created, execution slots in indirect execution sets can be updated with one of the following functions depending on how it was created:",{"type":10,"tag":555,"props":2349,"children":2351},{"className":557,"code":2350,"language":559,"meta":560,"style":560},"VKAPI_ATTR void VKAPI_CALL vkUpdateIndirectExecutionSetPipelineEXT(\n VkDevice device,\n VkIndirectExecutionSetEXT indirectExecutionSet,\n uint32_t executionSetWriteCount,\n const VkWriteIndirectExecutionSetPipelineEXT* pExecutionSetWrites);\n",[2352],{"type":10,"tag":151,"props":2353,"children":2354},{"__ignoreMap":560},[2355,2379,2395,2411,2427],{"type":10,"tag":566,"props":2356,"children":2357},{"class":568,"line":569},[2358,2362,2366,2370,2375],{"type":10,"tag":566,"props":2359,"children":2360},{"style":573},[2361],{"type":15,"value":2229},{"type":10,"tag":566,"props":2363,"children":2364},{"style":579},[2365],{"type":15,"value":610},{"type":10,"tag":566,"props":2367,"children":2368},{"style":573},[2369],{"type":15,"value":2238},{"type":10,"tag":566,"props":2371,"children":2372},{"style":613},[2373],{"type":15,"value":2374},"vkUpdateIndirectExecutionSetPipelineEXT",{"type":10,"tag":566,"props":2376,"children":2377},{"style":573},[2378],{"type":15,"value":1121},{"type":10,"tag":566,"props":2380,"children":2381},{"class":568,"line":590},[2382,2387,2391],{"type":10,"tag":566,"props":2383,"children":2384},{"style":573},[2385],{"type":15,"value":2386}," VkDevice ",{"type":10,"tag":566,"props":2388,"children":2389},{"style":629},[2390],{"type":15,"value":1134},{"type":10,"tag":566,"props":2392,"children":2393},{"style":573},[2394],{"type":15,"value":1139},{"type":10,"tag":566,"props":2396,"children":2397},{"class":568,"line":599},[2398,2403,2407],{"type":10,"tag":566,"props":2399,"children":2400},{"style":573},[2401],{"type":15,"value":2402}," VkIndirectExecutionSetEXT ",{"type":10,"tag":566,"props":2404,"children":2405},{"style":629},[2406],{"type":15,"value":2276},{"type":10,"tag":566,"props":2408,"children":2409},{"style":573},[2410],{"type":15,"value":1139},{"type":10,"tag":566,"props":2412,"children":2413},{"class":568,"line":650},[2414,2418,2423],{"type":10,"tag":566,"props":2415,"children":2416},{"style":579},[2417],{"type":15,"value":1742},{"type":10,"tag":566,"props":2419,"children":2420},{"style":629},[2421],{"type":15,"value":2422}," executionSetWriteCount",{"type":10,"tag":566,"props":2424,"children":2425},{"style":573},[2426],{"type":15,"value":1139},{"type":10,"tag":566,"props":2428,"children":2429},{"class":568,"line":659},[2430,2434,2439,2443,2448],{"type":10,"tag":566,"props":2431,"children":2432},{"style":579},[2433],{"type":15,"value":1147},{"type":10,"tag":566,"props":2435,"children":2436},{"style":573},[2437],{"type":15,"value":2438}," VkWriteIndirectExecutionSetPipelineEXT",{"type":10,"tag":566,"props":2440,"children":2441},{"style":579},[2442],{"type":15,"value":1157},{"type":10,"tag":566,"props":2444,"children":2445},{"style":629},[2446],{"type":15,"value":2447}," pExecutionSetWrites",{"type":10,"tag":566,"props":2449,"children":2450},{"style":573},[2451],{"type":15,"value":1213},{"type":10,"tag":29,"props":2453,"children":2454},{},[2455,2464,2474,2492],{"type":10,"tag":33,"props":2456,"children":2457},{},[2458,2463],{"type":10,"tag":151,"props":2459,"children":2461},{"className":2460},[],[2462],{"type":15,"value":1134},{"type":15,"value":2317},{"type":10,"tag":33,"props":2465,"children":2466},{},[2467,2472],{"type":10,"tag":151,"props":2468,"children":2470},{"className":2469},[],[2471],{"type":15,"value":2276},{"type":15,"value":2473}," is the indirect execution set to update.",{"type":10,"tag":33,"props":2475,"children":2476},{},[2477,2483,2485,2491],{"type":10,"tag":151,"props":2478,"children":2480},{"className":2479},[],[2481],{"type":15,"value":2482},"executionSetWriteCount",{"type":15,"value":2484}," is the number of elements in ",{"type":10,"tag":151,"props":2486,"children":2488},{"className":2487},[],[2489],{"type":15,"value":2490},"pExecutionSetWrites",{"type":15,"value":301},{"type":10,"tag":33,"props":2493,"children":2494},{},[2495,2500,2501,2507],{"type":10,"tag":151,"props":2496,"children":2498},{"className":2497},[],[2499],{"type":15,"value":2490},{"type":15,"value":1237},{"type":10,"tag":151,"props":2502,"children":2504},{"className":2503},[],[2505],{"type":15,"value":2506},"VkWriteIndirectExecutionSetPipelineEXT",{"type":15,"value":2508}," structure describing the elements to update.",{"type":10,"tag":555,"props":2510,"children":2512},{"className":557,"code":2511,"language":559,"meta":560,"style":560},"VKAPI_ATTR void VKAPI_CALL vkUpdateIndirectExecutionSetShaderEXT(\n VkDevice device,\n VkIndirectExecutionSetEXT indirectExecutionSet,\n uint32_t executionSetWriteCount,\n const VkWriteIndirectExecutionSetShaderEXT* pExecutionSetWrites);\n",[2513],{"type":10,"tag":151,"props":2514,"children":2515},{"__ignoreMap":560},[2516,2540,2555,2570,2585],{"type":10,"tag":566,"props":2517,"children":2518},{"class":568,"line":569},[2519,2523,2527,2531,2536],{"type":10,"tag":566,"props":2520,"children":2521},{"style":573},[2522],{"type":15,"value":2229},{"type":10,"tag":566,"props":2524,"children":2525},{"style":579},[2526],{"type":15,"value":610},{"type":10,"tag":566,"props":2528,"children":2529},{"style":573},[2530],{"type":15,"value":2238},{"type":10,"tag":566,"props":2532,"children":2533},{"style":613},[2534],{"type":15,"value":2535},"vkUpdateIndirectExecutionSetShaderEXT",{"type":10,"tag":566,"props":2537,"children":2538},{"style":573},[2539],{"type":15,"value":1121},{"type":10,"tag":566,"props":2541,"children":2542},{"class":568,"line":590},[2543,2547,2551],{"type":10,"tag":566,"props":2544,"children":2545},{"style":573},[2546],{"type":15,"value":2386},{"type":10,"tag":566,"props":2548,"children":2549},{"style":629},[2550],{"type":15,"value":1134},{"type":10,"tag":566,"props":2552,"children":2553},{"style":573},[2554],{"type":15,"value":1139},{"type":10,"tag":566,"props":2556,"children":2557},{"class":568,"line":599},[2558,2562,2566],{"type":10,"tag":566,"props":2559,"children":2560},{"style":573},[2561],{"type":15,"value":2402},{"type":10,"tag":566,"props":2563,"children":2564},{"style":629},[2565],{"type":15,"value":2276},{"type":10,"tag":566,"props":2567,"children":2568},{"style":573},[2569],{"type":15,"value":1139},{"type":10,"tag":566,"props":2571,"children":2572},{"class":568,"line":650},[2573,2577,2581],{"type":10,"tag":566,"props":2574,"children":2575},{"style":579},[2576],{"type":15,"value":1742},{"type":10,"tag":566,"props":2578,"children":2579},{"style":629},[2580],{"type":15,"value":2422},{"type":10,"tag":566,"props":2582,"children":2583},{"style":573},[2584],{"type":15,"value":1139},{"type":10,"tag":566,"props":2586,"children":2587},{"class":568,"line":659},[2588,2592,2597,2601,2605],{"type":10,"tag":566,"props":2589,"children":2590},{"style":579},[2591],{"type":15,"value":1147},{"type":10,"tag":566,"props":2593,"children":2594},{"style":573},[2595],{"type":15,"value":2596}," VkWriteIndirectExecutionSetShaderEXT",{"type":10,"tag":566,"props":2598,"children":2599},{"style":579},[2600],{"type":15,"value":1157},{"type":10,"tag":566,"props":2602,"children":2603},{"style":629},[2604],{"type":15,"value":2447},{"type":10,"tag":566,"props":2606,"children":2607},{"style":573},[2608],{"type":15,"value":1213},{"type":10,"tag":29,"props":2610,"children":2611},{},[2612,2621,2630,2645],{"type":10,"tag":33,"props":2613,"children":2614},{},[2615,2620],{"type":10,"tag":151,"props":2616,"children":2618},{"className":2617},[],[2619],{"type":15,"value":1134},{"type":15,"value":2317},{"type":10,"tag":33,"props":2622,"children":2623},{},[2624,2629],{"type":10,"tag":151,"props":2625,"children":2627},{"className":2626},[],[2628],{"type":15,"value":2276},{"type":15,"value":2473},{"type":10,"tag":33,"props":2631,"children":2632},{},[2633,2638,2639,2644],{"type":10,"tag":151,"props":2634,"children":2636},{"className":2635},[],[2637],{"type":15,"value":2482},{"type":15,"value":2484},{"type":10,"tag":151,"props":2640,"children":2642},{"className":2641},[],[2643],{"type":15,"value":2490},{"type":15,"value":301},{"type":10,"tag":33,"props":2646,"children":2647},{},[2648,2653,2654,2660],{"type":10,"tag":151,"props":2649,"children":2651},{"className":2650},[],[2652],{"type":15,"value":2490},{"type":15,"value":1237},{"type":10,"tag":151,"props":2655,"children":2657},{"className":2656},[],[2658],{"type":15,"value":2659},"VkWriteIndirectExecutionSetShaderEXT",{"type":15,"value":2508},{"type":10,"tag":11,"props":2662,"children":2663},{},[2664,2666,2672,2674,2679],{"type":15,"value":2665},"It is legal to update an indirect execution set that is used in flight as long as the slot indices in ",{"type":10,"tag":151,"props":2667,"children":2669},{"className":2668},[],[2670],{"type":15,"value":2671},"VkWriteIndirectExecutionSetEXT",{"type":15,"value":2673}," are not in use. Any change to an indirect execution set requires recalculating memory requirements by calling ",{"type":10,"tag":151,"props":2675,"children":2677},{"className":2676},[],[2678],{"type":15,"value":943},{"type":15,"value":2680}," for commands that use that modified state. Commands that are in flight or those not using the changed state are safe.",{"type":10,"tag":11,"props":2682,"children":2683},{},[2684,2685,2690],{"type":15,"value":444},{"type":10,"tag":151,"props":2686,"children":2688},{"className":2687},[],[2689],{"type":15,"value":2506},{"type":15,"value":2691}," struct is defined as:",{"type":10,"tag":555,"props":2693,"children":2695},{"className":557,"code":2694,"language":559,"meta":560,"style":560},"typedef struct VkWriteIndirectExecutionSetPipelineEXT {\n VkStructureType sType;\n const void* pNext;\n uint32_t index;\n VkPipeline pipeline;\n} VkWriteIndirectExecutionSetPipelineEXT;\n",[2696],{"type":10,"tag":151,"props":2697,"children":2698},{"__ignoreMap":560},[2699,2715,2723,2739,2751,2759],{"type":10,"tag":566,"props":2700,"children":2701},{"class":568,"line":569},[2702,2706,2710],{"type":10,"tag":566,"props":2703,"children":2704},{"style":579},[2705],{"type":15,"value":1299},{"type":10,"tag":566,"props":2707,"children":2708},{"style":579},[2709],{"type":15,"value":1304},{"type":10,"tag":566,"props":2711,"children":2712},{"style":573},[2713],{"type":15,"value":2714}," VkWriteIndirectExecutionSetPipelineEXT {\n",{"type":10,"tag":566,"props":2716,"children":2717},{"class":568,"line":590},[2718],{"type":10,"tag":566,"props":2719,"children":2720},{"style":573},[2721],{"type":15,"value":2722}," VkStructureType sType;\n",{"type":10,"tag":566,"props":2724,"children":2725},{"class":568,"line":599},[2726,2730,2734],{"type":10,"tag":566,"props":2727,"children":2728},{"style":579},[2729],{"type":15,"value":1147},{"type":10,"tag":566,"props":2731,"children":2732},{"style":579},[2733],{"type":15,"value":1329},{"type":10,"tag":566,"props":2735,"children":2736},{"style":573},[2737],{"type":15,"value":2738}," pNext;\n",{"type":10,"tag":566,"props":2740,"children":2741},{"class":568,"line":650},[2742,2746],{"type":10,"tag":566,"props":2743,"children":2744},{"style":579},[2745],{"type":15,"value":1742},{"type":10,"tag":566,"props":2747,"children":2748},{"style":573},[2749],{"type":15,"value":2750}," index;\n",{"type":10,"tag":566,"props":2752,"children":2753},{"class":568,"line":659},[2754],{"type":10,"tag":566,"props":2755,"children":2756},{"style":573},[2757],{"type":15,"value":2758}," VkPipeline pipeline;\n",{"type":10,"tag":566,"props":2760,"children":2761},{"class":568,"line":678},[2762],{"type":10,"tag":566,"props":2763,"children":2764},{"style":573},[2765],{"type":15,"value":2766},"} VkWriteIndirectExecutionSetPipelineEXT;\n",{"type":10,"tag":29,"props":2768,"children":2769},{},[2770,2781],{"type":10,"tag":33,"props":2771,"children":2772},{},[2773,2779],{"type":10,"tag":151,"props":2774,"children":2776},{"className":2775},[],[2777],{"type":15,"value":2778},"index",{"type":15,"value":2780}," is the execution slot to update",{"type":10,"tag":33,"props":2782,"children":2783},{},[2784,2790],{"type":10,"tag":151,"props":2785,"children":2787},{"className":2786},[],[2788],{"type":15,"value":2789},"pipeline",{"type":15,"value":2791}," is the pipeline to store in the indirect execution set",{"type":10,"tag":11,"props":2793,"children":2794},{},[2795,2796,2801],{"type":15,"value":444},{"type":10,"tag":151,"props":2797,"children":2799},{"className":2798},[],[2800],{"type":15,"value":2659},{"type":15,"value":2691},{"type":10,"tag":555,"props":2803,"children":2805},{"className":557,"code":2804,"language":559,"meta":560,"style":560},"typedef struct VkWriteIndirectExecutionSetShaderEXT {\n VkStructureType sType;\n const void* pNext;\n uint32_t index;\n VkShaderEXT shader;\n} VkWriteIndirectExecutionSetShaderEXT;\n",[2806],{"type":10,"tag":151,"props":2807,"children":2808},{"__ignoreMap":560},[2809,2825,2832,2847,2858,2866],{"type":10,"tag":566,"props":2810,"children":2811},{"class":568,"line":569},[2812,2816,2820],{"type":10,"tag":566,"props":2813,"children":2814},{"style":579},[2815],{"type":15,"value":1299},{"type":10,"tag":566,"props":2817,"children":2818},{"style":579},[2819],{"type":15,"value":1304},{"type":10,"tag":566,"props":2821,"children":2822},{"style":573},[2823],{"type":15,"value":2824}," VkWriteIndirectExecutionSetShaderEXT {\n",{"type":10,"tag":566,"props":2826,"children":2827},{"class":568,"line":590},[2828],{"type":10,"tag":566,"props":2829,"children":2830},{"style":573},[2831],{"type":15,"value":2722},{"type":10,"tag":566,"props":2833,"children":2834},{"class":568,"line":599},[2835,2839,2843],{"type":10,"tag":566,"props":2836,"children":2837},{"style":579},[2838],{"type":15,"value":1147},{"type":10,"tag":566,"props":2840,"children":2841},{"style":579},[2842],{"type":15,"value":1329},{"type":10,"tag":566,"props":2844,"children":2845},{"style":573},[2846],{"type":15,"value":2738},{"type":10,"tag":566,"props":2848,"children":2849},{"class":568,"line":650},[2850,2854],{"type":10,"tag":566,"props":2851,"children":2852},{"style":579},[2853],{"type":15,"value":1742},{"type":10,"tag":566,"props":2855,"children":2856},{"style":573},[2857],{"type":15,"value":2750},{"type":10,"tag":566,"props":2859,"children":2860},{"class":568,"line":659},[2861],{"type":10,"tag":566,"props":2862,"children":2863},{"style":573},[2864],{"type":15,"value":2865}," VkShaderEXT shader;\n",{"type":10,"tag":566,"props":2867,"children":2868},{"class":568,"line":678},[2869],{"type":10,"tag":566,"props":2870,"children":2871},{"style":573},[2872],{"type":15,"value":2873},"} VkWriteIndirectExecutionSetShaderEXT;\n",{"type":10,"tag":29,"props":2875,"children":2876},{},[2877,2886],{"type":10,"tag":33,"props":2878,"children":2879},{},[2880,2885],{"type":10,"tag":151,"props":2881,"children":2883},{"className":2882},[],[2884],{"type":15,"value":2778},{"type":15,"value":2780},{"type":10,"tag":33,"props":2887,"children":2888},{},[2889,2895],{"type":10,"tag":151,"props":2890,"children":2892},{"className":2891},[],[2893],{"type":15,"value":2894},"shader",{"type":15,"value":2896}," is the shader object to store in the indirect execution set",{"type":10,"tag":242,"props":2898,"children":2900},{"id":2899},"_indirect_commands_layout",[2901],{"type":15,"value":2902},"Indirect Commands Layout",{"type":10,"tag":11,"props":2904,"children":2905},{},[2906],{"type":15,"value":2907},"The device-side command generation happens through an iterative processing of an atomic sequence comprised of command tokens, which are represented by:",{"type":10,"tag":555,"props":2909,"children":2911},{"className":557,"code":2910,"language":559,"meta":560,"style":560},"VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutEXT)\n",[2912],{"type":10,"tag":151,"props":2913,"children":2914},{"__ignoreMap":560},[2915],{"type":10,"tag":566,"props":2916,"children":2917},{"class":568,"line":569},[2918,2922],{"type":10,"tag":566,"props":2919,"children":2920},{"style":613},[2921],{"type":15,"value":1050},{"type":10,"tag":566,"props":2923,"children":2924},{"style":573},[2925],{"type":15,"value":2926},"(VkIndirectCommandsLayoutEXT)\n",{"type":10,"tag":314,"props":2928,"children":2930},{"id":2929},"_creation_and_deletion_2",[2931],{"type":15,"value":1091},{"type":10,"tag":11,"props":2933,"children":2934},{},[2935],{"type":15,"value":2936},"Indirect command layouts are created by:",{"type":10,"tag":555,"props":2938,"children":2940},{"className":557,"code":2939,"language":559,"meta":560,"style":560},"VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutEXT(\n VkDevice device,\n const VkIndirectCommandsLayoutCreateInfoEXT* pCreateInfo,\n const VkAllocationCallbacks* pAllocator,\n VkIndirectCommandsLayoutEXT* pIndirectCommandsLayout);\n",[2941],{"type":10,"tag":151,"props":2942,"children":2943},{"__ignoreMap":560},[2944,2960,2976,3000,3024],{"type":10,"tag":566,"props":2945,"children":2946},{"class":568,"line":569},[2947,2951,2956],{"type":10,"tag":566,"props":2948,"children":2949},{"style":573},[2950],{"type":15,"value":1111},{"type":10,"tag":566,"props":2952,"children":2953},{"style":613},[2954],{"type":15,"value":2955},"vkCreateIndirectCommandsLayoutEXT",{"type":10,"tag":566,"props":2957,"children":2958},{"style":573},[2959],{"type":15,"value":1121},{"type":10,"tag":566,"props":2961,"children":2962},{"class":568,"line":590},[2963,2968,2972],{"type":10,"tag":566,"props":2964,"children":2965},{"style":573},[2966],{"type":15,"value":2967}," VkDevice ",{"type":10,"tag":566,"props":2969,"children":2970},{"style":629},[2971],{"type":15,"value":1134},{"type":10,"tag":566,"props":2973,"children":2974},{"style":573},[2975],{"type":15,"value":1139},{"type":10,"tag":566,"props":2977,"children":2978},{"class":568,"line":599},[2979,2983,2988,2992,2996],{"type":10,"tag":566,"props":2980,"children":2981},{"style":579},[2982],{"type":15,"value":1147},{"type":10,"tag":566,"props":2984,"children":2985},{"style":573},[2986],{"type":15,"value":2987}," VkIndirectCommandsLayoutCreateInfoEXT",{"type":10,"tag":566,"props":2989,"children":2990},{"style":579},[2991],{"type":15,"value":1157},{"type":10,"tag":566,"props":2993,"children":2994},{"style":629},[2995],{"type":15,"value":1162},{"type":10,"tag":566,"props":2997,"children":2998},{"style":573},[2999],{"type":15,"value":1139},{"type":10,"tag":566,"props":3001,"children":3002},{"class":568,"line":650},[3003,3007,3011,3015,3020],{"type":10,"tag":566,"props":3004,"children":3005},{"style":579},[3006],{"type":15,"value":1147},{"type":10,"tag":566,"props":3008,"children":3009},{"style":573},[3010],{"type":15,"value":1178},{"type":10,"tag":566,"props":3012,"children":3013},{"style":579},[3014],{"type":15,"value":1157},{"type":10,"tag":566,"props":3016,"children":3017},{"style":629},[3018],{"type":15,"value":3019}," pAllocator",{"type":10,"tag":566,"props":3021,"children":3022},{"style":573},[3023],{"type":15,"value":1139},{"type":10,"tag":566,"props":3025,"children":3026},{"class":568,"line":659},[3027,3032,3036,3041],{"type":10,"tag":566,"props":3028,"children":3029},{"style":573},[3030],{"type":15,"value":3031}," VkIndirectCommandsLayoutEXT",{"type":10,"tag":566,"props":3033,"children":3034},{"style":579},[3035],{"type":15,"value":1157},{"type":10,"tag":566,"props":3037,"children":3038},{"style":629},[3039],{"type":15,"value":3040}," pIndirectCommandsLayout",{"type":10,"tag":566,"props":3042,"children":3043},{"style":573},[3044],{"type":15,"value":1213},{"type":10,"tag":29,"props":3046,"children":3047},{},[3048,3058,3075,3084],{"type":10,"tag":33,"props":3049,"children":3050},{},[3051,3056],{"type":10,"tag":151,"props":3052,"children":3054},{"className":3053},[],[3055],{"type":15,"value":1134},{"type":15,"value":3057}," is the logical device that creates the indirect command layout.",{"type":10,"tag":33,"props":3059,"children":3060},{},[3061,3066,3067,3073],{"type":10,"tag":151,"props":3062,"children":3064},{"className":3063},[],[3065],{"type":15,"value":1235},{"type":15,"value":1237},{"type":10,"tag":151,"props":3068,"children":3070},{"className":3069},[],[3071],{"type":15,"value":3072},"VkIndirectCommandsLayoutCreateInfoEXT",{"type":15,"value":3074}," structure containing parameters affecting creation of the indirect command layout.",{"type":10,"tag":33,"props":3076,"children":3077},{},[3078,3083],{"type":10,"tag":151,"props":3079,"children":3081},{"className":3080},[],[3082],{"type":15,"value":1254},{"type":15,"value":1256},{"type":10,"tag":33,"props":3085,"children":3086},{},[3087,3093,3094,3099],{"type":10,"tag":151,"props":3088,"children":3090},{"className":3089},[],[3091],{"type":15,"value":3092},"pIndirectCommandsLayout",{"type":15,"value":1237},{"type":10,"tag":151,"props":3095,"children":3097},{"className":3096},[],[3098],{"type":15,"value":892},{"type":15,"value":3100}," handle in which the resulting indirect command layout is returned.",{"type":10,"tag":11,"props":3102,"children":3103},{},[3104,3105,3110],{"type":15,"value":444},{"type":10,"tag":151,"props":3106,"children":3108},{"className":3107},[],[3109],{"type":15,"value":3072},{"type":15,"value":1284},{"type":10,"tag":555,"props":3112,"children":3114},{"className":557,"code":3113,"language":559,"meta":560,"style":560},"typedef struct VkIndirectCommandsLayoutCreateInfoEXT {\n VkStructureType sType;\n const void* pNext;\n VkIndirectCommandsLayoutUsageFlagsEXT flags;\n VkShaderStageFlags shaderStages;\n uint32_t indirectStride;\n VkPipelineLayout pipelineLayout;\n uint32_t tokenCount;\n const VkIndirectCommandsLayoutTokenEXT* pTokens;\n} VkIndirectCommandsLayoutCreateInfoEXT;\n",[3115],{"type":10,"tag":151,"props":3116,"children":3117},{"__ignoreMap":560},[3118,3134,3141,3156,3164,3172,3184,3192,3204,3225],{"type":10,"tag":566,"props":3119,"children":3120},{"class":568,"line":569},[3121,3125,3129],{"type":10,"tag":566,"props":3122,"children":3123},{"style":579},[3124],{"type":15,"value":1299},{"type":10,"tag":566,"props":3126,"children":3127},{"style":579},[3128],{"type":15,"value":1304},{"type":10,"tag":566,"props":3130,"children":3131},{"style":573},[3132],{"type":15,"value":3133}," VkIndirectCommandsLayoutCreateInfoEXT {\n",{"type":10,"tag":566,"props":3135,"children":3136},{"class":568,"line":590},[3137],{"type":10,"tag":566,"props":3138,"children":3139},{"style":573},[3140],{"type":15,"value":1317},{"type":10,"tag":566,"props":3142,"children":3143},{"class":568,"line":599},[3144,3148,3152],{"type":10,"tag":566,"props":3145,"children":3146},{"style":579},[3147],{"type":15,"value":1147},{"type":10,"tag":566,"props":3149,"children":3150},{"style":579},[3151],{"type":15,"value":1329},{"type":10,"tag":566,"props":3153,"children":3154},{"style":573},[3155],{"type":15,"value":1334},{"type":10,"tag":566,"props":3157,"children":3158},{"class":568,"line":650},[3159],{"type":10,"tag":566,"props":3160,"children":3161},{"style":573},[3162],{"type":15,"value":3163}," VkIndirectCommandsLayoutUsageFlagsEXT flags;\n",{"type":10,"tag":566,"props":3165,"children":3166},{"class":568,"line":659},[3167],{"type":10,"tag":566,"props":3168,"children":3169},{"style":573},[3170],{"type":15,"value":3171}," VkShaderStageFlags shaderStages;\n",{"type":10,"tag":566,"props":3173,"children":3174},{"class":568,"line":678},[3175,3179],{"type":10,"tag":566,"props":3176,"children":3177},{"style":579},[3178],{"type":15,"value":1742},{"type":10,"tag":566,"props":3180,"children":3181},{"style":573},[3182],{"type":15,"value":3183}," indirectStride;\n",{"type":10,"tag":566,"props":3185,"children":3186},{"class":568,"line":697},[3187],{"type":10,"tag":566,"props":3188,"children":3189},{"style":573},[3190],{"type":15,"value":3191}," VkPipelineLayout pipelineLayout;\n",{"type":10,"tag":566,"props":3193,"children":3194},{"class":568,"line":714},[3195,3199],{"type":10,"tag":566,"props":3196,"children":3197},{"style":579},[3198],{"type":15,"value":1742},{"type":10,"tag":566,"props":3200,"children":3201},{"style":573},[3202],{"type":15,"value":3203}," tokenCount;\n",{"type":10,"tag":566,"props":3205,"children":3206},{"class":568,"line":731},[3207,3211,3216,3220],{"type":10,"tag":566,"props":3208,"children":3209},{"style":579},[3210],{"type":15,"value":1147},{"type":10,"tag":566,"props":3212,"children":3213},{"style":573},[3214],{"type":15,"value":3215}," VkIndirectCommandsLayoutTokenEXT",{"type":10,"tag":566,"props":3217,"children":3218},{"style":579},[3219],{"type":15,"value":1157},{"type":10,"tag":566,"props":3221,"children":3222},{"style":573},[3223],{"type":15,"value":3224}," pTokens;\n",{"type":10,"tag":566,"props":3226,"children":3227},{"class":568,"line":1951},[3228],{"type":10,"tag":566,"props":3229,"children":3230},{"style":573},[3231],{"type":15,"value":3232},"} VkIndirectCommandsLayoutCreateInfoEXT;\n",{"type":10,"tag":29,"props":3234,"children":3235},{},[3236,3254,3273,3284,3324,3335],{"type":10,"tag":33,"props":3237,"children":3238},{},[3239,3244,3246,3252],{"type":10,"tag":151,"props":3240,"children":3242},{"className":3241},[],[3243],{"type":15,"value":1370},{"type":15,"value":3245}," is a bitmask of ",{"type":10,"tag":151,"props":3247,"children":3249},{"className":3248},[],[3250],{"type":15,"value":3251},"VkIndirectCommandsLayoutUsageFlagBitsEXT",{"type":15,"value":3253}," specifying usage rules for this layout.",{"type":10,"tag":33,"props":3255,"children":3256},{},[3257,3263,3265,3271],{"type":10,"tag":151,"props":3258,"children":3260},{"className":3259},[],[3261],{"type":15,"value":3262},"shaderStages",{"type":15,"value":3264}," is the ",{"type":10,"tag":151,"props":3266,"children":3268},{"className":3267},[],[3269],{"type":15,"value":3270},"VkShaderStageFlags",{"type":15,"value":3272}," that this layout supports.",{"type":10,"tag":33,"props":3274,"children":3275},{},[3276,3282],{"type":10,"tag":151,"props":3277,"children":3279},{"className":3278},[],[3280],{"type":15,"value":3281},"indirectStride",{"type":15,"value":3283}," is the stride of the indirect buffer.",{"type":10,"tag":33,"props":3285,"children":3286},{},[3287,3293,3294,3299,3301,3307,3309,3315,3317,3323],{"type":10,"tag":151,"props":3288,"children":3290},{"className":3289},[],[3291],{"type":15,"value":3292},"pipelineLayout",{"type":15,"value":3264},{"type":10,"tag":151,"props":3295,"children":3297},{"className":3296},[],[3298],{"type":15,"value":1066},{"type":15,"value":3300}," that this layout supports. If a ",{"type":10,"tag":151,"props":3302,"children":3304},{"className":3303},[],[3305],{"type":15,"value":3306},"VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT",{"type":15,"value":3308}," or ",{"type":10,"tag":151,"props":3310,"children":3312},{"className":3311},[],[3313],{"type":15,"value":3314},"VK_INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT",{"type":15,"value":3316}," is used by the layout, it must not be ",{"type":10,"tag":151,"props":3318,"children":3320},{"className":3319},[],[3321],{"type":15,"value":3322},"VK_NULL_HANDLE`",{"type":15,"value":301},{"type":10,"tag":33,"props":3325,"children":3326},{},[3327,3333],{"type":10,"tag":151,"props":3328,"children":3330},{"className":3329},[],[3331],{"type":15,"value":3332},"tokenCount",{"type":15,"value":3334}," is the length of the individual command sequence.",{"type":10,"tag":33,"props":3336,"children":3337},{},[3338,3344,3346,3352,3353,3359],{"type":10,"tag":151,"props":3339,"children":3341},{"className":3340},[],[3342],{"type":15,"value":3343},"pTokens",{"type":15,"value":3345}," is an array describing each command token in detail. See ",{"type":10,"tag":151,"props":3347,"children":3349},{"className":3348},[],[3350],{"type":15,"value":3351},"VkIndirectCommandsTokenTypeEXT",{"type":15,"value":293},{"type":10,"tag":151,"props":3354,"children":3356},{"className":3355},[],[3357],{"type":15,"value":3358},"VkIndirectCommandsLayoutTokenEXT",{"type":15,"value":3360}," below for details.",{"type":10,"tag":11,"props":3362,"children":3363},{},[3364,3366,3372,3374,3380,3382,3388],{"type":15,"value":3365},"A ",{"type":10,"tag":151,"props":3367,"children":3369},{"className":3368},[],[3370],{"type":15,"value":3371},"VkPipelineLayoutCreateInfo",{"type":15,"value":3373}," can be passed in ",{"type":10,"tag":151,"props":3375,"children":3377},{"className":3376},[],[3378],{"type":15,"value":3379},"pNext",{"type":15,"value":3381}," if the ",{"type":10,"tag":151,"props":3383,"children":3385},{"className":3384},[],[3386],{"type":15,"value":3387},"dynamicGeneratedPipelineLayout",{"type":15,"value":3389}," feature is enabled.",{"type":10,"tag":11,"props":3391,"children":3392},{},[3393,3395,3401],{"type":15,"value":3394},"Bits which can be set in ",{"type":10,"tag":151,"props":3396,"children":3398},{"className":3397},[],[3399],{"type":15,"value":3400},"VkIndirectCommandsLayoutCreateInfoEXT::flags",{"type":15,"value":3402},", specifying usage rules of an indirect command layout, are:",{"type":10,"tag":555,"props":3404,"children":3406},{"className":557,"code":3405,"language":559,"meta":560,"style":560},"typedef enum VkIndirectCommandsLayoutUsageFlagBitsEXT\n{\n VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_EXT = 0x00000001,\n VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_EXT = 0x00000002,\n} VkIndirectCommandsLayoutUsageFlagBitsEXT;\ntypedef VkFlags VkIndirectCommandsLayoutUsageFlagsEXT;\n",[3407],{"type":10,"tag":151,"props":3408,"children":3409},{"__ignoreMap":560},[3410,3426,3433,3457,3481,3489],{"type":10,"tag":566,"props":3411,"children":3412},{"class":568,"line":569},[3413,3417,3421],{"type":10,"tag":566,"props":3414,"children":3415},{"style":579},[3416],{"type":15,"value":1299},{"type":10,"tag":566,"props":3418,"children":3419},{"style":579},[3420],{"type":15,"value":1422},{"type":10,"tag":566,"props":3422,"children":3423},{"style":573},[3424],{"type":15,"value":3425}," VkIndirectCommandsLayoutUsageFlagBitsEXT\n",{"type":10,"tag":566,"props":3427,"children":3428},{"class":568,"line":590},[3429],{"type":10,"tag":566,"props":3430,"children":3431},{"style":573},[3432],{"type":15,"value":1435},{"type":10,"tag":566,"props":3434,"children":3435},{"class":568,"line":599},[3436,3441,3445,3449,3453],{"type":10,"tag":566,"props":3437,"children":3438},{"style":573},[3439],{"type":15,"value":3440}," VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_EXT ",{"type":10,"tag":566,"props":3442,"children":3443},{"style":579},[3444],{"type":15,"value":1448},{"type":10,"tag":566,"props":3446,"children":3447},{"style":579},[3448],{"type":15,"value":1453},{"type":10,"tag":566,"props":3450,"children":3451},{"style":1456},[3452],{"type":15,"value":1459},{"type":10,"tag":566,"props":3454,"children":3455},{"style":573},[3456],{"type":15,"value":1139},{"type":10,"tag":566,"props":3458,"children":3459},{"class":568,"line":650},[3460,3465,3469,3473,3477],{"type":10,"tag":566,"props":3461,"children":3462},{"style":573},[3463],{"type":15,"value":3464}," VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_EXT ",{"type":10,"tag":566,"props":3466,"children":3467},{"style":579},[3468],{"type":15,"value":1448},{"type":10,"tag":566,"props":3470,"children":3471},{"style":579},[3472],{"type":15,"value":1453},{"type":10,"tag":566,"props":3474,"children":3475},{"style":1456},[3476],{"type":15,"value":1484},{"type":10,"tag":566,"props":3478,"children":3479},{"style":573},[3480],{"type":15,"value":1139},{"type":10,"tag":566,"props":3482,"children":3483},{"class":568,"line":659},[3484],{"type":10,"tag":566,"props":3485,"children":3486},{"style":573},[3487],{"type":15,"value":3488},"} VkIndirectCommandsLayoutUsageFlagBitsEXT;\n",{"type":10,"tag":566,"props":3490,"children":3491},{"class":568,"line":678},[3492,3496],{"type":10,"tag":566,"props":3493,"children":3494},{"style":579},[3495],{"type":15,"value":1299},{"type":10,"tag":566,"props":3497,"children":3498},{"style":573},[3499],{"type":15,"value":3500}," VkFlags VkIndirectCommandsLayoutUsageFlagsEXT;\n",{"type":10,"tag":29,"props":3502,"children":3503},{},[3504,3544],{"type":10,"tag":33,"props":3505,"children":3506},{},[3507,3513,3515,3520,3522,3527,3529,3535,3537,3543],{"type":10,"tag":151,"props":3508,"children":3510},{"className":3509},[],[3511],{"type":15,"value":3512},"VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_EXT",{"type":15,"value":3514}," specifies that the layout is always used with the manual preprocessing step through calling ",{"type":10,"tag":151,"props":3516,"children":3518},{"className":3517},[],[3519],{"type":15,"value":955},{"type":15,"value":3521}," and executed by ",{"type":10,"tag":151,"props":3523,"children":3525},{"className":3524},[],[3526],{"type":15,"value":968},{"type":15,"value":3528}," when ",{"type":10,"tag":151,"props":3530,"children":3532},{"className":3531},[],[3533],{"type":15,"value":3534},"isPreprocessed",{"type":15,"value":3536}," set to ",{"type":10,"tag":151,"props":3538,"children":3540},{"className":3539},[],[3541],{"type":15,"value":3542},"VK_TRUE",{"type":15,"value":301},{"type":10,"tag":33,"props":3545,"children":3546},{},[3547,3553,3555,3564],{"type":10,"tag":151,"props":3548,"children":3550},{"className":3549},[],[3551],{"type":15,"value":3552},"VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_EXT",{"type":15,"value":3554}," specifies that ",{"type":10,"tag":3556,"props":3557,"children":3561},"a",{"href":3558,"rel":3559},"https://docs.vulkan.org/spec/latest/chapters/synchronization.html#synchronization-submission-order",[3560],"nofollow",[3562],{"type":15,"value":3563},"submission order",{"type":15,"value":3565}," is not affected by the ordering of sequences, and sequences may be processed in any order.",{"type":10,"tag":11,"props":3567,"children":3568},{},[3569],{"type":15,"value":3570},"Indirect command layouts are destroyed by:",{"type":10,"tag":555,"props":3572,"children":3574},{"className":557,"code":3573,"language":559,"meta":560,"style":560},"VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutEXT(\n VkDevice device,\n VkIndirectCommandsLayoutEXT indirectCommandsLayout,\n const VkAllocationCallbacks* pAllocator);\n",[3575],{"type":10,"tag":151,"props":3576,"children":3577},{"__ignoreMap":560},[3578,3602,3618,3635],{"type":10,"tag":566,"props":3579,"children":3580},{"class":568,"line":569},[3581,3585,3589,3593,3598],{"type":10,"tag":566,"props":3582,"children":3583},{"style":573},[3584],{"type":15,"value":2229},{"type":10,"tag":566,"props":3586,"children":3587},{"style":579},[3588],{"type":15,"value":610},{"type":10,"tag":566,"props":3590,"children":3591},{"style":573},[3592],{"type":15,"value":2238},{"type":10,"tag":566,"props":3594,"children":3595},{"style":613},[3596],{"type":15,"value":3597},"vkDestroyIndirectCommandsLayoutEXT",{"type":10,"tag":566,"props":3599,"children":3600},{"style":573},[3601],{"type":15,"value":1121},{"type":10,"tag":566,"props":3603,"children":3604},{"class":568,"line":590},[3605,3610,3614],{"type":10,"tag":566,"props":3606,"children":3607},{"style":573},[3608],{"type":15,"value":3609}," VkDevice ",{"type":10,"tag":566,"props":3611,"children":3612},{"style":629},[3613],{"type":15,"value":1134},{"type":10,"tag":566,"props":3615,"children":3616},{"style":573},[3617],{"type":15,"value":1139},{"type":10,"tag":566,"props":3619,"children":3620},{"class":568,"line":599},[3621,3626,3631],{"type":10,"tag":566,"props":3622,"children":3623},{"style":573},[3624],{"type":15,"value":3625}," VkIndirectCommandsLayoutEXT ",{"type":10,"tag":566,"props":3627,"children":3628},{"style":629},[3629],{"type":15,"value":3630},"indirectCommandsLayout",{"type":10,"tag":566,"props":3632,"children":3633},{"style":573},[3634],{"type":15,"value":1139},{"type":10,"tag":566,"props":3636,"children":3637},{"class":568,"line":650},[3638,3642,3646,3650,3655],{"type":10,"tag":566,"props":3639,"children":3640},{"style":579},[3641],{"type":15,"value":1147},{"type":10,"tag":566,"props":3643,"children":3644},{"style":573},[3645],{"type":15,"value":1178},{"type":10,"tag":566,"props":3647,"children":3648},{"style":579},[3649],{"type":15,"value":1157},{"type":10,"tag":566,"props":3651,"children":3652},{"style":629},[3653],{"type":15,"value":3654}," pAllocator",{"type":10,"tag":566,"props":3656,"children":3657},{"style":573},[3658],{"type":15,"value":1213},{"type":10,"tag":29,"props":3660,"children":3661},{},[3662,3672,3682],{"type":10,"tag":33,"props":3663,"children":3664},{},[3665,3670],{"type":10,"tag":151,"props":3666,"children":3668},{"className":3667},[],[3669],{"type":15,"value":1134},{"type":15,"value":3671}," is the logical device that owns the layout.",{"type":10,"tag":33,"props":3673,"children":3674},{},[3675,3680],{"type":10,"tag":151,"props":3676,"children":3678},{"className":3677},[],[3679],{"type":15,"value":3630},{"type":15,"value":3681}," is the layout to destroy.",{"type":10,"tag":33,"props":3683,"children":3684},{},[3685,3690],{"type":10,"tag":151,"props":3686,"children":3688},{"className":3687},[],[3689],{"type":15,"value":1254},{"type":15,"value":1256},{"type":10,"tag":314,"props":3692,"children":3694},{"id":3693},"_token_layout",[3695],{"type":15,"value":3696},"Token layout",{"type":10,"tag":11,"props":3698,"children":3699},{},[3700,3702,3708,3710,3716],{"type":15,"value":3701},"Each sequence of commands in the indirect buffer has the same memory layout. The data can contain raw ",{"type":10,"tag":151,"props":3703,"children":3705},{"className":3704},[],[3706],{"type":15,"value":3707},"uint32_t",{"type":15,"value":3709}," values, existing indirect command such as ",{"type":10,"tag":151,"props":3711,"children":3713},{"className":3712},[],[3714],{"type":15,"value":3715},"VkDrawIndirectCommand",{"type":15,"value":3717},", or additional commands listed in the next section.",{"type":10,"tag":11,"props":3719,"children":3720},{},[3721,3722,3727],{"type":15,"value":444},{"type":10,"tag":151,"props":3723,"children":3725},{"className":3724},[],[3726],{"type":15,"value":3358},{"type":15,"value":3728}," structure specifies details to the commands that need to be known at layout creation time:",{"type":10,"tag":555,"props":3730,"children":3732},{"className":557,"code":3731,"language":559,"meta":560,"style":560},"typedef struct VkIndirectCommandsLayoutTokenEXT {\n VkStructureType sType;\n const void* pNext;\n VkIndirectCommandsTokenTypeEXT type;\n VkIndirectCommandsTokenDataEXT data;\n uint32_t offset;\n} VkIndirectCommandsLayoutTokenEXT;\n",[3733],{"type":10,"tag":151,"props":3734,"children":3735},{"__ignoreMap":560},[3736,3752,3760,3776,3784,3792,3804],{"type":10,"tag":566,"props":3737,"children":3738},{"class":568,"line":569},[3739,3743,3747],{"type":10,"tag":566,"props":3740,"children":3741},{"style":579},[3742],{"type":15,"value":1299},{"type":10,"tag":566,"props":3744,"children":3745},{"style":579},[3746],{"type":15,"value":1304},{"type":10,"tag":566,"props":3748,"children":3749},{"style":573},[3750],{"type":15,"value":3751}," VkIndirectCommandsLayoutTokenEXT {\n",{"type":10,"tag":566,"props":3753,"children":3754},{"class":568,"line":590},[3755],{"type":10,"tag":566,"props":3756,"children":3757},{"style":573},[3758],{"type":15,"value":3759}," VkStructureType sType;\n",{"type":10,"tag":566,"props":3761,"children":3762},{"class":568,"line":599},[3763,3767,3771],{"type":10,"tag":566,"props":3764,"children":3765},{"style":579},[3766],{"type":15,"value":1147},{"type":10,"tag":566,"props":3768,"children":3769},{"style":579},[3770],{"type":15,"value":1329},{"type":10,"tag":566,"props":3772,"children":3773},{"style":573},[3774],{"type":15,"value":3775}," pNext;\n",{"type":10,"tag":566,"props":3777,"children":3778},{"class":568,"line":650},[3779],{"type":10,"tag":566,"props":3780,"children":3781},{"style":573},[3782],{"type":15,"value":3783}," VkIndirectCommandsTokenTypeEXT type;\n",{"type":10,"tag":566,"props":3785,"children":3786},{"class":568,"line":659},[3787],{"type":10,"tag":566,"props":3788,"children":3789},{"style":573},[3790],{"type":15,"value":3791}," VkIndirectCommandsTokenDataEXT data;\n",{"type":10,"tag":566,"props":3793,"children":3794},{"class":568,"line":678},[3795,3799],{"type":10,"tag":566,"props":3796,"children":3797},{"style":579},[3798],{"type":15,"value":1742},{"type":10,"tag":566,"props":3800,"children":3801},{"style":573},[3802],{"type":15,"value":3803}," offset;\n",{"type":10,"tag":566,"props":3805,"children":3806},{"class":568,"line":697},[3807],{"type":10,"tag":566,"props":3808,"children":3809},{"style":573},[3810],{"type":15,"value":3811},"} VkIndirectCommandsLayoutTokenEXT;\n",{"type":10,"tag":29,"props":3813,"children":3814},{},[3815,3826,3837],{"type":10,"tag":33,"props":3816,"children":3817},{},[3818,3824],{"type":10,"tag":151,"props":3819,"children":3821},{"className":3820},[],[3822],{"type":15,"value":3823},"type",{"type":15,"value":3825}," specifies the token command type.",{"type":10,"tag":33,"props":3827,"children":3828},{},[3829,3835],{"type":10,"tag":151,"props":3830,"children":3832},{"className":3831},[],[3833],{"type":15,"value":3834},"data",{"type":15,"value":3836}," specifies token specific details for command execution.",{"type":10,"tag":33,"props":3838,"children":3839},{},[3840,3846,3848,3854],{"type":10,"tag":151,"props":3841,"children":3843},{"className":3842},[],[3844],{"type":15,"value":3845},"offset",{"type":15,"value":3847}," is the relative byte offset for the token within one sequence of the indirect buffer. The data stored at that offset is the command data for the token, e.g. ",{"type":10,"tag":151,"props":3849,"children":3851},{"className":3850},[],[3852],{"type":15,"value":3853},"VkDispatchIndirectCommand",{"type":15,"value":301},{"type":10,"tag":11,"props":3856,"children":3857},{},[3858],{"type":15,"value":3859},"Token data is a union of additional information specific to the command:",{"type":10,"tag":555,"props":3861,"children":3863},{"className":557,"code":3862,"language":559,"meta":560,"style":560},"typedef union VkIndirectCommandsTokenDataEXT {\n const VkIndirectCommandsPushConstantTokenEXT *pPushConstant;\n const VkIndirectCommandsVertexBufferTokenEXT *pVertexBuffer;\n const VkIndirectCommandsIndexBufferTokenEXT *pIndexBuffer;\n const VkIndirectCommandsExecutionSetTokenEXT *pExecutionSet;\n} VkIndirectCommandsTokenDataEXT;\n",[3864],{"type":10,"tag":151,"props":3865,"children":3866},{"__ignoreMap":560},[3867,3883,3904,3925,3946,3967],{"type":10,"tag":566,"props":3868,"children":3869},{"class":568,"line":569},[3870,3874,3878],{"type":10,"tag":566,"props":3871,"children":3872},{"style":579},[3873],{"type":15,"value":1299},{"type":10,"tag":566,"props":3875,"children":3876},{"style":579},[3877],{"type":15,"value":1578},{"type":10,"tag":566,"props":3879,"children":3880},{"style":573},[3881],{"type":15,"value":3882}," VkIndirectCommandsTokenDataEXT {\n",{"type":10,"tag":566,"props":3884,"children":3885},{"class":568,"line":590},[3886,3890,3895,3899],{"type":10,"tag":566,"props":3887,"children":3888},{"style":579},[3889],{"type":15,"value":1147},{"type":10,"tag":566,"props":3891,"children":3892},{"style":573},[3893],{"type":15,"value":3894}," VkIndirectCommandsPushConstantTokenEXT ",{"type":10,"tag":566,"props":3896,"children":3897},{"style":579},[3898],{"type":15,"value":1157},{"type":10,"tag":566,"props":3900,"children":3901},{"style":573},[3902],{"type":15,"value":3903},"pPushConstant;\n",{"type":10,"tag":566,"props":3905,"children":3906},{"class":568,"line":599},[3907,3911,3916,3920],{"type":10,"tag":566,"props":3908,"children":3909},{"style":579},[3910],{"type":15,"value":1147},{"type":10,"tag":566,"props":3912,"children":3913},{"style":573},[3914],{"type":15,"value":3915}," VkIndirectCommandsVertexBufferTokenEXT ",{"type":10,"tag":566,"props":3917,"children":3918},{"style":579},[3919],{"type":15,"value":1157},{"type":10,"tag":566,"props":3921,"children":3922},{"style":573},[3923],{"type":15,"value":3924},"pVertexBuffer;\n",{"type":10,"tag":566,"props":3926,"children":3927},{"class":568,"line":650},[3928,3932,3937,3941],{"type":10,"tag":566,"props":3929,"children":3930},{"style":579},[3931],{"type":15,"value":1147},{"type":10,"tag":566,"props":3933,"children":3934},{"style":573},[3935],{"type":15,"value":3936}," VkIndirectCommandsIndexBufferTokenEXT ",{"type":10,"tag":566,"props":3938,"children":3939},{"style":579},[3940],{"type":15,"value":1157},{"type":10,"tag":566,"props":3942,"children":3943},{"style":573},[3944],{"type":15,"value":3945},"pIndexBuffer;\n",{"type":10,"tag":566,"props":3947,"children":3948},{"class":568,"line":659},[3949,3953,3958,3962],{"type":10,"tag":566,"props":3950,"children":3951},{"style":579},[3952],{"type":15,"value":1147},{"type":10,"tag":566,"props":3954,"children":3955},{"style":573},[3956],{"type":15,"value":3957}," VkIndirectCommandsExecutionSetTokenEXT ",{"type":10,"tag":566,"props":3959,"children":3960},{"style":579},[3961],{"type":15,"value":1157},{"type":10,"tag":566,"props":3963,"children":3964},{"style":573},[3965],{"type":15,"value":3966},"pExecutionSet;\n",{"type":10,"tag":566,"props":3968,"children":3969},{"class":568,"line":678},[3970],{"type":10,"tag":566,"props":3971,"children":3972},{"style":573},[3973],{"type":15,"value":3974},"} VkIndirectCommandsTokenDataEXT;\n",{"type":10,"tag":11,"props":3976,"children":3977},{},[3978],{"type":15,"value":3979},"These structures are described in the next section.",{"type":10,"tag":242,"props":3981,"children":3983},{"id":3982},"_indirect_commands",[3984],{"type":15,"value":3985},"Indirect Commands",{"type":10,"tag":11,"props":3987,"children":3988},{},[3989],{"type":15,"value":3990},"This extension defines the following commands for state changes and operations:",{"type":10,"tag":3992,"props":3993,"children":3999},"table",{"className":3994},[3995,3996,3997,3998],"tableblock","frame-all","grid-all","stretch",[4000,4012],{"type":10,"tag":4001,"props":4002,"children":4003},"colgroup",{},[4004,4009],{"type":10,"tag":4005,"props":4006,"children":4008},"col",{"style":4007},"width: 50%;",[],{"type":10,"tag":4005,"props":4010,"children":4011},{"style":4007},[],{"type":10,"tag":4013,"props":4014,"children":4015},"tbody",{},[4016,4051,4083,4112,4132,4160,4180,4209,4229,4258,4287,4307,4336,4364,4393,4422,4442,4477,4510,4543],{"type":10,"tag":4017,"props":4018,"children":4019},"tr",{},[4020,4038],{"type":10,"tag":4021,"props":4022,"children":4026},"td",{"className":4023},[3995,4024,4025],"halign-left","valign-top",[4027],{"type":10,"tag":11,"props":4028,"children":4030},{"className":4029},[3995],[4031],{"type":10,"tag":4032,"props":4033,"children":4035},"emphasis",{"role":4034},"strong",[4036],{"type":15,"value":4037},"Common Tokens",{"type":10,"tag":4021,"props":4039,"children":4041},{"className":4040},[3995,4024,4025],[4042],{"type":10,"tag":11,"props":4043,"children":4045},{"className":4044},[3995],[4046],{"type":10,"tag":4032,"props":4047,"children":4048},{"role":4034},[4049],{"type":15,"value":4050},"Command Data",{"type":10,"tag":4017,"props":4052,"children":4053},{},[4054,4068],{"type":10,"tag":4021,"props":4055,"children":4057},{"className":4056},[3995,4024,4025],[4058],{"type":10,"tag":11,"props":4059,"children":4061},{"className":4060},[3995],[4062],{"type":10,"tag":4063,"props":4064,"children":4065},"literal",{},[4066],{"type":15,"value":4067},"VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT",{"type":10,"tag":4021,"props":4069,"children":4071},{"className":4070},[3995,4024,4025],[4072],{"type":10,"tag":11,"props":4073,"children":4075},{"className":4074},[3995],[4076,4081],{"type":10,"tag":4063,"props":4077,"children":4078},{},[4079],{"type":15,"value":4080},"uint32_t[]",{"type":15,"value":4082}," array of indices into the indirect execution set",{"type":10,"tag":4017,"props":4084,"children":4085},{},[4086,4098],{"type":10,"tag":4021,"props":4087,"children":4089},{"className":4088},[3995,4024,4025],[4090],{"type":10,"tag":11,"props":4091,"children":4093},{"className":4092},[3995],[4094],{"type":10,"tag":4063,"props":4095,"children":4096},{},[4097],{"type":15,"value":3306},{"type":10,"tag":4021,"props":4099,"children":4101},{"className":4100},[3995,4024,4025],[4102],{"type":10,"tag":11,"props":4103,"children":4105},{"className":4104},[3995],[4106,4110],{"type":10,"tag":4063,"props":4107,"children":4108},{},[4109],{"type":15,"value":4080},{"type":15,"value":4111}," raw data",{"type":10,"tag":4017,"props":4113,"children":4114},{},[4115,4128],{"type":10,"tag":4021,"props":4116,"children":4118},{"className":4117},[3995,4024,4025],[4119],{"type":10,"tag":11,"props":4120,"children":4122},{"className":4121},[3995],[4123],{"type":10,"tag":4032,"props":4124,"children":4125},{"role":4034},[4126],{"type":15,"value":4127},"Compute Tokens",{"type":10,"tag":4021,"props":4129,"children":4131},{"className":4130},[3995,4024,4025],[],{"type":10,"tag":4017,"props":4133,"children":4134},{},[4135,4148],{"type":10,"tag":4021,"props":4136,"children":4138},{"className":4137},[3995,4024,4025],[4139],{"type":10,"tag":11,"props":4140,"children":4142},{"className":4141},[3995],[4143],{"type":10,"tag":4063,"props":4144,"children":4145},{},[4146],{"type":15,"value":4147},"VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_EXT",{"type":10,"tag":4021,"props":4149,"children":4151},{"className":4150},[3995,4024,4025],[4152],{"type":10,"tag":11,"props":4153,"children":4155},{"className":4154},[3995],[4156],{"type":10,"tag":4063,"props":4157,"children":4158},{},[4159],{"type":15,"value":3853},{"type":10,"tag":4017,"props":4161,"children":4162},{},[4163,4176],{"type":10,"tag":4021,"props":4164,"children":4166},{"className":4165},[3995,4024,4025],[4167],{"type":10,"tag":11,"props":4168,"children":4170},{"className":4169},[3995],[4171],{"type":10,"tag":4032,"props":4172,"children":4173},{"role":4034},[4174],{"type":15,"value":4175},"Ray Tracing Tokens",{"type":10,"tag":4021,"props":4177,"children":4179},{"className":4178},[3995,4024,4025],[],{"type":10,"tag":4017,"props":4181,"children":4182},{},[4183,4196],{"type":10,"tag":4021,"props":4184,"children":4186},{"className":4185},[3995,4024,4025],[4187],{"type":10,"tag":11,"props":4188,"children":4190},{"className":4189},[3995],[4191],{"type":10,"tag":4063,"props":4192,"children":4193},{},[4194],{"type":15,"value":4195},"VK_INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXT",{"type":10,"tag":4021,"props":4197,"children":4199},{"className":4198},[3995,4024,4025],[4200],{"type":10,"tag":11,"props":4201,"children":4203},{"className":4202},[3995],[4204],{"type":10,"tag":4063,"props":4205,"children":4206},{},[4207],{"type":15,"value":4208},"VkTraceRaysIndirectCommand2KHR",{"type":10,"tag":4017,"props":4210,"children":4211},{},[4212,4225],{"type":10,"tag":4021,"props":4213,"children":4215},{"className":4214},[3995,4024,4025],[4216],{"type":10,"tag":11,"props":4217,"children":4219},{"className":4218},[3995],[4220],{"type":10,"tag":4032,"props":4221,"children":4222},{"role":4034},[4223],{"type":15,"value":4224},"Graphics State Tokens",{"type":10,"tag":4021,"props":4226,"children":4228},{"className":4227},[3995,4024,4025],[],{"type":10,"tag":4017,"props":4230,"children":4231},{},[4232,4245],{"type":10,"tag":4021,"props":4233,"children":4235},{"className":4234},[3995,4024,4025],[4236],{"type":10,"tag":11,"props":4237,"children":4239},{"className":4238},[3995],[4240],{"type":10,"tag":4063,"props":4241,"children":4242},{},[4243],{"type":15,"value":4244},"VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT",{"type":10,"tag":4021,"props":4246,"children":4248},{"className":4247},[3995,4024,4025],[4249],{"type":10,"tag":11,"props":4250,"children":4252},{"className":4251},[3995],[4253],{"type":10,"tag":4063,"props":4254,"children":4255},{},[4256],{"type":15,"value":4257},"VkBindIndexBufferIndirectCommandEXT",{"type":10,"tag":4017,"props":4259,"children":4260},{},[4261,4274],{"type":10,"tag":4021,"props":4262,"children":4264},{"className":4263},[3995,4024,4025],[4265],{"type":10,"tag":11,"props":4266,"children":4268},{"className":4267},[3995],[4269],{"type":10,"tag":4063,"props":4270,"children":4271},{},[4272],{"type":15,"value":4273},"VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT",{"type":10,"tag":4021,"props":4275,"children":4277},{"className":4276},[3995,4024,4025],[4278],{"type":10,"tag":11,"props":4279,"children":4281},{"className":4280},[3995],[4282],{"type":10,"tag":4063,"props":4283,"children":4284},{},[4285],{"type":15,"value":4286},"VkBindVertexBufferIndirectCommandEXT",{"type":10,"tag":4017,"props":4288,"children":4289},{},[4290,4303],{"type":10,"tag":4021,"props":4291,"children":4293},{"className":4292},[3995,4024,4025],[4294],{"type":10,"tag":11,"props":4295,"children":4297},{"className":4296},[3995],[4298],{"type":10,"tag":4032,"props":4299,"children":4300},{"role":4034},[4301],{"type":15,"value":4302},"Graphics Draw Tokens",{"type":10,"tag":4021,"props":4304,"children":4306},{"className":4305},[3995,4024,4025],[],{"type":10,"tag":4017,"props":4308,"children":4309},{},[4310,4323],{"type":10,"tag":4021,"props":4311,"children":4313},{"className":4312},[3995,4024,4025],[4314],{"type":10,"tag":11,"props":4315,"children":4317},{"className":4316},[3995],[4318],{"type":10,"tag":4063,"props":4319,"children":4320},{},[4321],{"type":15,"value":4322},"VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_EXT",{"type":10,"tag":4021,"props":4324,"children":4326},{"className":4325},[3995,4024,4025],[4327],{"type":10,"tag":11,"props":4328,"children":4330},{"className":4329},[3995],[4331],{"type":10,"tag":4063,"props":4332,"children":4333},{},[4334],{"type":15,"value":4335},"VkDrawIndexedIndirectCommand",{"type":10,"tag":4017,"props":4337,"children":4338},{},[4339,4352],{"type":10,"tag":4021,"props":4340,"children":4342},{"className":4341},[3995,4024,4025],[4343],{"type":10,"tag":11,"props":4344,"children":4346},{"className":4345},[3995],[4347],{"type":10,"tag":4063,"props":4348,"children":4349},{},[4350],{"type":15,"value":4351},"VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_EXT",{"type":10,"tag":4021,"props":4353,"children":4355},{"className":4354},[3995,4024,4025],[4356],{"type":10,"tag":11,"props":4357,"children":4359},{"className":4358},[3995],[4360],{"type":10,"tag":4063,"props":4361,"children":4362},{},[4363],{"type":15,"value":3715},{"type":10,"tag":4017,"props":4365,"children":4366},{},[4367,4380],{"type":10,"tag":4021,"props":4368,"children":4370},{"className":4369},[3995,4024,4025],[4371],{"type":10,"tag":11,"props":4372,"children":4374},{"className":4373},[3995],[4375],{"type":10,"tag":4063,"props":4376,"children":4377},{},[4378],{"type":15,"value":4379},"VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_EXT",{"type":10,"tag":4021,"props":4381,"children":4383},{"className":4382},[3995,4024,4025],[4384],{"type":10,"tag":11,"props":4385,"children":4387},{"className":4386},[3995],[4388],{"type":10,"tag":4063,"props":4389,"children":4390},{},[4391],{"type":15,"value":4392},"VkDrawMeshTasksIndirectCommandEXT",{"type":10,"tag":4017,"props":4394,"children":4395},{},[4396,4409],{"type":10,"tag":4021,"props":4397,"children":4399},{"className":4398},[3995,4024,4025],[4400],{"type":10,"tag":11,"props":4401,"children":4403},{"className":4402},[3995],[4404],{"type":10,"tag":4063,"props":4405,"children":4406},{},[4407],{"type":15,"value":4408},"VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV_EXT",{"type":10,"tag":4021,"props":4410,"children":4412},{"className":4411},[3995,4024,4025],[4413],{"type":10,"tag":11,"props":4414,"children":4416},{"className":4415},[3995],[4417],{"type":10,"tag":4063,"props":4418,"children":4419},{},[4420],{"type":15,"value":4421},"VkDrawMeshTasksIndirectCommandNV",{"type":10,"tag":4017,"props":4423,"children":4424},{},[4425,4438],{"type":10,"tag":4021,"props":4426,"children":4428},{"className":4427},[3995,4024,4025],[4429],{"type":10,"tag":11,"props":4430,"children":4432},{"className":4431},[3995],[4433],{"type":10,"tag":4032,"props":4434,"children":4435},{"role":4034},[4436],{"type":15,"value":4437},"Graphics Draw Count Tokens",{"type":10,"tag":4021,"props":4439,"children":4441},{"className":4440},[3995,4024,4025],[],{"type":10,"tag":4017,"props":4443,"children":4444},{},[4445,4458],{"type":10,"tag":4021,"props":4446,"children":4448},{"className":4447},[3995,4024,4025],[4449],{"type":10,"tag":11,"props":4450,"children":4452},{"className":4451},[3995],[4453],{"type":10,"tag":4063,"props":4454,"children":4455},{},[4456],{"type":15,"value":4457},"VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_COUNT_EXT",{"type":10,"tag":4021,"props":4459,"children":4461},{"className":4460},[3995,4024,4025],[4462],{"type":10,"tag":11,"props":4463,"children":4465},{"className":4464},[3995],[4466,4471,4473],{"type":10,"tag":4063,"props":4467,"children":4468},{},[4469],{"type":15,"value":4470},"VkDrawIndirectCountIndirectCommandEXT",{"type":15,"value":4472}," with ",{"type":10,"tag":4063,"props":4474,"children":4475},{},[4476],{"type":15,"value":4335},{"type":10,"tag":4017,"props":4478,"children":4479},{},[4480,4493],{"type":10,"tag":4021,"props":4481,"children":4483},{"className":4482},[3995,4024,4025],[4484],{"type":10,"tag":11,"props":4485,"children":4487},{"className":4486},[3995],[4488],{"type":10,"tag":4063,"props":4489,"children":4490},{},[4491],{"type":15,"value":4492},"VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_COUNT_EXT",{"type":10,"tag":4021,"props":4494,"children":4496},{"className":4495},[3995,4024,4025],[4497],{"type":10,"tag":11,"props":4498,"children":4500},{"className":4499},[3995],[4501,4505,4506],{"type":10,"tag":4063,"props":4502,"children":4503},{},[4504],{"type":15,"value":4470},{"type":15,"value":4472},{"type":10,"tag":4063,"props":4507,"children":4508},{},[4509],{"type":15,"value":3715},{"type":10,"tag":4017,"props":4511,"children":4512},{},[4513,4526],{"type":10,"tag":4021,"props":4514,"children":4516},{"className":4515},[3995,4024,4025],[4517],{"type":10,"tag":11,"props":4518,"children":4520},{"className":4519},[3995],[4521],{"type":10,"tag":4063,"props":4522,"children":4523},{},[4524],{"type":15,"value":4525},"VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXT",{"type":10,"tag":4021,"props":4527,"children":4529},{"className":4528},[3995,4024,4025],[4530],{"type":10,"tag":11,"props":4531,"children":4533},{"className":4532},[3995],[4534,4538,4539],{"type":10,"tag":4063,"props":4535,"children":4536},{},[4537],{"type":15,"value":4470},{"type":15,"value":4472},{"type":10,"tag":4063,"props":4540,"children":4541},{},[4542],{"type":15,"value":4392},{"type":10,"tag":4017,"props":4544,"children":4545},{},[4546,4559],{"type":10,"tag":4021,"props":4547,"children":4549},{"className":4548},[3995,4024,4025],[4550],{"type":10,"tag":11,"props":4551,"children":4553},{"className":4552},[3995],[4554],{"type":10,"tag":4063,"props":4555,"children":4556},{},[4557],{"type":15,"value":4558},"VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXT",{"type":10,"tag":4021,"props":4560,"children":4562},{"className":4561},[3995,4024,4025],[4563],{"type":10,"tag":11,"props":4564,"children":4566},{"className":4565},[3995],[4567,4571,4572],{"type":10,"tag":4063,"props":4568,"children":4569},{},[4570],{"type":15,"value":4470},{"type":15,"value":4472},{"type":10,"tag":4063,"props":4573,"children":4574},{},[4575],{"type":15,"value":4421},{"type":10,"tag":11,"props":4577,"children":4578},{},[4579,4581,4587],{"type":15,"value":4580},"All commands can be stored 4-byte aligned, independent of 64-bit alignment of structures due to use of ",{"type":10,"tag":151,"props":4582,"children":4584},{"className":4583},[],[4585],{"type":15,"value":4586},"VkDeviceAddress",{"type":15,"value":4588},". This provides binary compatibility with D3D12.",{"type":10,"tag":11,"props":4590,"children":4591},{},[4592,4594,4599],{"type":15,"value":4593},"The type of tokens in a sequence is specified by ",{"type":10,"tag":151,"props":4595,"children":4597},{"className":4596},[],[4598],{"type":15,"value":3351},{"type":15,"value":4600}," which must be one of the values:",{"type":10,"tag":555,"props":4602,"children":4604},{"className":557,"code":4603,"language":559,"meta":560,"style":560},"typedef enum VkIndirectCommandsTokenTypeEXT {\n VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT,\n VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT,\n VK_INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT,\n VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT,\n VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT,\n VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_EXT,\n VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_EXT,\n VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_EXT,\n VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV_EXT,\n VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_COUNT_EXT,\n VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_COUNT_EXT,\n VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXT,\n VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXT,\n VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_EXT,\n VK_INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXT,\n} VkIndirectCommandsTokenTypeEXT;\n",[4605],{"type":10,"tag":151,"props":4606,"children":4607},{"__ignoreMap":560},[4608,4624,4632,4640,4648,4656,4664,4672,4680,4688,4696,4705,4714,4723,4732,4741,4750],{"type":10,"tag":566,"props":4609,"children":4610},{"class":568,"line":569},[4611,4615,4619],{"type":10,"tag":566,"props":4612,"children":4613},{"style":579},[4614],{"type":15,"value":1299},{"type":10,"tag":566,"props":4616,"children":4617},{"style":579},[4618],{"type":15,"value":1422},{"type":10,"tag":566,"props":4620,"children":4621},{"style":573},[4622],{"type":15,"value":4623}," VkIndirectCommandsTokenTypeEXT {\n",{"type":10,"tag":566,"props":4625,"children":4626},{"class":568,"line":590},[4627],{"type":10,"tag":566,"props":4628,"children":4629},{"style":573},[4630],{"type":15,"value":4631}," VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT,\n",{"type":10,"tag":566,"props":4633,"children":4634},{"class":568,"line":599},[4635],{"type":10,"tag":566,"props":4636,"children":4637},{"style":573},[4638],{"type":15,"value":4639}," VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT,\n",{"type":10,"tag":566,"props":4641,"children":4642},{"class":568,"line":650},[4643],{"type":10,"tag":566,"props":4644,"children":4645},{"style":573},[4646],{"type":15,"value":4647}," VK_INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT,\n",{"type":10,"tag":566,"props":4649,"children":4650},{"class":568,"line":659},[4651],{"type":10,"tag":566,"props":4652,"children":4653},{"style":573},[4654],{"type":15,"value":4655}," VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT,\n",{"type":10,"tag":566,"props":4657,"children":4658},{"class":568,"line":678},[4659],{"type":10,"tag":566,"props":4660,"children":4661},{"style":573},[4662],{"type":15,"value":4663}," VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT,\n",{"type":10,"tag":566,"props":4665,"children":4666},{"class":568,"line":697},[4667],{"type":10,"tag":566,"props":4668,"children":4669},{"style":573},[4670],{"type":15,"value":4671}," VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_EXT,\n",{"type":10,"tag":566,"props":4673,"children":4674},{"class":568,"line":714},[4675],{"type":10,"tag":566,"props":4676,"children":4677},{"style":573},[4678],{"type":15,"value":4679}," VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_EXT,\n",{"type":10,"tag":566,"props":4681,"children":4682},{"class":568,"line":731},[4683],{"type":10,"tag":566,"props":4684,"children":4685},{"style":573},[4686],{"type":15,"value":4687}," VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_EXT,\n",{"type":10,"tag":566,"props":4689,"children":4690},{"class":568,"line":1951},[4691],{"type":10,"tag":566,"props":4692,"children":4693},{"style":573},[4694],{"type":15,"value":4695}," VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV_EXT,\n",{"type":10,"tag":566,"props":4697,"children":4699},{"class":568,"line":4698},11,[4700],{"type":10,"tag":566,"props":4701,"children":4702},{"style":573},[4703],{"type":15,"value":4704}," VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_COUNT_EXT,\n",{"type":10,"tag":566,"props":4706,"children":4708},{"class":568,"line":4707},12,[4709],{"type":10,"tag":566,"props":4710,"children":4711},{"style":573},[4712],{"type":15,"value":4713}," VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_COUNT_EXT,\n",{"type":10,"tag":566,"props":4715,"children":4717},{"class":568,"line":4716},13,[4718],{"type":10,"tag":566,"props":4719,"children":4720},{"style":573},[4721],{"type":15,"value":4722}," VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXT,\n",{"type":10,"tag":566,"props":4724,"children":4726},{"class":568,"line":4725},14,[4727],{"type":10,"tag":566,"props":4728,"children":4729},{"style":573},[4730],{"type":15,"value":4731}," VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXT,\n",{"type":10,"tag":566,"props":4733,"children":4735},{"class":568,"line":4734},15,[4736],{"type":10,"tag":566,"props":4737,"children":4738},{"style":573},[4739],{"type":15,"value":4740}," VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_EXT,\n",{"type":10,"tag":566,"props":4742,"children":4744},{"class":568,"line":4743},16,[4745],{"type":10,"tag":566,"props":4746,"children":4747},{"style":573},[4748],{"type":15,"value":4749}," VK_INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXT,\n",{"type":10,"tag":566,"props":4751,"children":4753},{"class":568,"line":4752},17,[4754],{"type":10,"tag":566,"props":4755,"children":4756},{"style":573},[4757],{"type":15,"value":4758},"} VkIndirectCommandsTokenTypeEXT;\n",{"type":10,"tag":314,"props":4760,"children":4762},{"id":4761},"_bind_execution_command",[4763],{"type":15,"value":4764},"Bind Execution Command",{"type":10,"tag":11,"props":4766,"children":4767},{},[4768,4770,4775],{"type":15,"value":4769},"An array of 32-bit unsigned integer values are the input data for the ",{"type":10,"tag":151,"props":4771,"children":4773},{"className":4772},[],[4774],{"type":15,"value":4067},{"type":15,"value":4776}," token.\nEach value is an index, specified in canonical pipeline order, into the Indirect Execution Set.\nOne index value must be passed for each bit set in VkIndirectCommandsExecutionSetTokenEXT::shaderStages.",{"type":10,"tag":11,"props":4778,"children":4779},{},[4780,4781,4787],{"type":15,"value":444},{"type":10,"tag":151,"props":4782,"children":4784},{"className":4783},[],[4785],{"type":15,"value":4786},"VkIndirectCommandsExecutionSetTokenEXT",{"type":15,"value":4788}," structure specifies additional info used when creating the layout object:",{"type":10,"tag":555,"props":4790,"children":4792},{"className":557,"code":4791,"language":559,"meta":560,"style":560},"struct VkIndirectCommandsExecutionSetTokenEXT {\n VkIndirectExecutionSetInfoTypeEXT type;\n VkShaderStageFlags shaderStages;\n};\n",[4793],{"type":10,"tag":151,"props":4794,"children":4795},{"__ignoreMap":560},[4796,4808,4816,4824],{"type":10,"tag":566,"props":4797,"children":4798},{"class":568,"line":569},[4799,4803],{"type":10,"tag":566,"props":4800,"children":4801},{"style":579},[4802],{"type":15,"value":582},{"type":10,"tag":566,"props":4804,"children":4805},{"style":573},[4806],{"type":15,"value":4807}," VkIndirectCommandsExecutionSetTokenEXT {\n",{"type":10,"tag":566,"props":4809,"children":4810},{"class":568,"line":590},[4811],{"type":10,"tag":566,"props":4812,"children":4813},{"style":573},[4814],{"type":15,"value":4815}," VkIndirectExecutionSetInfoTypeEXT type;\n",{"type":10,"tag":566,"props":4817,"children":4818},{"class":568,"line":599},[4819],{"type":10,"tag":566,"props":4820,"children":4821},{"style":573},[4822],{"type":15,"value":4823}," VkShaderStageFlags shaderStages;\n",{"type":10,"tag":566,"props":4825,"children":4826},{"class":568,"line":650},[4827],{"type":10,"tag":566,"props":4828,"children":4829},{"style":573},[4830],{"type":15,"value":4831},"};\n",{"type":10,"tag":29,"props":4833,"children":4834},{},[4835,4857],{"type":10,"tag":33,"props":4836,"children":4837},{},[4838,4843,4845,4850,4851,4856],{"type":10,"tag":151,"props":4839,"children":4841},{"className":4840},[],[4842],{"type":15,"value":3823},{"type":15,"value":4844}," must be either ",{"type":10,"tag":151,"props":4846,"children":4848},{"className":4847},[],[4849],{"type":15,"value":1508},{"type":15,"value":3308},{"type":10,"tag":151,"props":4852,"children":4854},{"className":4853},[],[4855],{"type":15,"value":1534},{"type":15,"value":301},{"type":10,"tag":33,"props":4858,"children":4859},{},[4860,4865],{"type":10,"tag":151,"props":4861,"children":4863},{"className":4862},[],[4864],{"type":15,"value":3262},{"type":15,"value":4866}," specifies the shaders that will be changed by this token.",{"type":10,"tag":11,"props":4868,"children":4869},{},[4870],{"type":15,"value":4871},"This must be the first command in a sequence when used.",{"type":10,"tag":11,"props":4873,"children":4874},{},[4875],{"type":15,"value":4876},"Pipelines and shaders bound in indirect buffers must be flagged at creation time:",{"type":10,"tag":555,"props":4878,"children":4880},{"className":557,"code":4879,"language":559,"meta":560,"style":560},"#define VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT ((VkPipelineCreateFlagBits)0x4000000000ULL)\n#define VK_SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT ((VkShaderCreateFlagBitsEXT)0x00000080)\n",[4881],{"type":10,"tag":151,"props":4882,"children":4883},{"__ignoreMap":560},[4884,4922],{"type":10,"tag":566,"props":4885,"children":4886},{"class":568,"line":569},[4887,4892,4897,4902,4907,4912,4917],{"type":10,"tag":566,"props":4888,"children":4889},{"style":579},[4890],{"type":15,"value":4891},"#define",{"type":10,"tag":566,"props":4893,"children":4894},{"style":613},[4895],{"type":15,"value":4896}," VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT",{"type":10,"tag":566,"props":4898,"children":4899},{"style":573},[4900],{"type":15,"value":4901}," ((VkPipelineCreateFlagBits)",{"type":10,"tag":566,"props":4903,"children":4904},{"style":579},[4905],{"type":15,"value":4906},"0x",{"type":10,"tag":566,"props":4908,"children":4909},{"style":1456},[4910],{"type":15,"value":4911},"4000000000",{"type":10,"tag":566,"props":4913,"children":4914},{"style":579},[4915],{"type":15,"value":4916},"ULL",{"type":10,"tag":566,"props":4918,"children":4919},{"style":573},[4920],{"type":15,"value":4921},")\n",{"type":10,"tag":566,"props":4923,"children":4924},{"class":568,"line":590},[4925,4929,4934,4939,4943,4948],{"type":10,"tag":566,"props":4926,"children":4927},{"style":579},[4928],{"type":15,"value":4891},{"type":10,"tag":566,"props":4930,"children":4931},{"style":613},[4932],{"type":15,"value":4933}," VK_SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT",{"type":10,"tag":566,"props":4935,"children":4936},{"style":573},[4937],{"type":15,"value":4938}," ((VkShaderCreateFlagBitsEXT)",{"type":10,"tag":566,"props":4940,"children":4941},{"style":579},[4942],{"type":15,"value":4906},{"type":10,"tag":566,"props":4944,"children":4945},{"style":1456},[4946],{"type":15,"value":4947},"00000080",{"type":10,"tag":566,"props":4949,"children":4950},{"style":573},[4951],{"type":15,"value":4921},{"type":10,"tag":314,"props":4953,"children":4955},{"id":4954},"_push_constants_command",[4956],{"type":15,"value":4957},"Push Constants Command",{"type":10,"tag":11,"props":4959,"children":4960},{},[4961,4963,4968],{"type":15,"value":4962},"Raw 32-bit values are the input data for the ",{"type":10,"tag":151,"props":4964,"children":4966},{"className":4965},[],[4967],{"type":15,"value":3306},{"type":15,"value":4969}," token.",{"type":10,"tag":11,"props":4971,"children":4972},{},[4973],{"type":15,"value":4974},"Interpretation of the data is specified at layout creation time:",{"type":10,"tag":555,"props":4976,"children":4978},{"className":557,"code":4977,"language":559,"meta":560,"style":560},"typedef struct VkIndirectCommandsPushConstantTokenEXT {\n VkPushConstantRange updateRange;\n} VkIndirectCommandsPushConstantTokenEXT;\n",[4979],{"type":10,"tag":151,"props":4980,"children":4981},{"__ignoreMap":560},[4982,4998,5006],{"type":10,"tag":566,"props":4983,"children":4984},{"class":568,"line":569},[4985,4989,4993],{"type":10,"tag":566,"props":4986,"children":4987},{"style":579},[4988],{"type":15,"value":1299},{"type":10,"tag":566,"props":4990,"children":4991},{"style":579},[4992],{"type":15,"value":1304},{"type":10,"tag":566,"props":4994,"children":4995},{"style":573},[4996],{"type":15,"value":4997}," VkIndirectCommandsPushConstantTokenEXT {\n",{"type":10,"tag":566,"props":4999,"children":5000},{"class":568,"line":590},[5001],{"type":10,"tag":566,"props":5002,"children":5003},{"style":573},[5004],{"type":15,"value":5005}," VkPushConstantRange updateRange;\n",{"type":10,"tag":566,"props":5007,"children":5008},{"class":568,"line":599},[5009],{"type":10,"tag":566,"props":5010,"children":5011},{"style":573},[5012],{"type":15,"value":5013},"} VkIndirectCommandsPushConstantTokenEXT;\n",{"type":10,"tag":29,"props":5015,"children":5016},{},[5017],{"type":10,"tag":33,"props":5018,"children":5019},{},[5020,5026],{"type":10,"tag":151,"props":5021,"children":5023},{"className":5022},[],[5024],{"type":15,"value":5025},"updateRange",{"type":15,"value":5027}," is the range of push constant data to update.",{"type":10,"tag":314,"props":5029,"children":5031},{"id":5030},"_sequence_index_command",[5032],{"type":15,"value":5033},"Sequence Index Command",{"type":10,"tag":11,"props":5035,"children":5036},{},[5037,5039,5044,5046,5051],{"type":15,"value":5038},"There is a single ",{"type":10,"tag":151,"props":5040,"children":5042},{"className":5041},[],[5043],{"type":15,"value":3707},{"type":15,"value":5045}," of placeholder data for the ",{"type":10,"tag":151,"props":5047,"children":5049},{"className":5048},[],[5050],{"type":15,"value":3314},{"type":15,"value":5052}," token which is not accessed by the shader. It writes a single 32-bit value containing the current sequence index to the specified push constant range.",{"type":10,"tag":11,"props":5054,"children":5055},{},[5056],{"type":15,"value":4974},{"type":10,"tag":555,"props":5058,"children":5059},{"className":557,"code":4977,"language":559,"meta":560,"style":560},[5060],{"type":10,"tag":151,"props":5061,"children":5062},{"__ignoreMap":560},[5063,5078,5085],{"type":10,"tag":566,"props":5064,"children":5065},{"class":568,"line":569},[5066,5070,5074],{"type":10,"tag":566,"props":5067,"children":5068},{"style":579},[5069],{"type":15,"value":1299},{"type":10,"tag":566,"props":5071,"children":5072},{"style":579},[5073],{"type":15,"value":1304},{"type":10,"tag":566,"props":5075,"children":5076},{"style":573},[5077],{"type":15,"value":4997},{"type":10,"tag":566,"props":5079,"children":5080},{"class":568,"line":590},[5081],{"type":10,"tag":566,"props":5082,"children":5083},{"style":573},[5084],{"type":15,"value":5005},{"type":10,"tag":566,"props":5086,"children":5087},{"class":568,"line":599},[5088],{"type":10,"tag":566,"props":5089,"children":5090},{"style":573},[5091],{"type":15,"value":5013},{"type":10,"tag":29,"props":5093,"children":5094},{},[5095],{"type":10,"tag":33,"props":5096,"children":5097},{},[5098,5103,5105,5111],{"type":10,"tag":151,"props":5099,"children":5101},{"className":5100},[],[5102],{"type":15,"value":5025},{"type":15,"value":5104}," is the range of push constant data to update. ",{"type":10,"tag":151,"props":5106,"children":5108},{"className":5107},[],[5109],{"type":15,"value":5110},"updateRange.size",{"type":15,"value":5112}," must be 4.",{"type":10,"tag":314,"props":5114,"children":5116},{"id":5115},"_bind_index_buffer_command",[5117],{"type":15,"value":5118},"Bind Index Buffer Command",{"type":10,"tag":11,"props":5120,"children":5121},{},[5122,5123,5128,5130,5135],{"type":15,"value":444},{"type":10,"tag":151,"props":5124,"children":5126},{"className":5125},[],[5127],{"type":15,"value":4257},{"type":15,"value":5129}," structure specifies the input data for the ",{"type":10,"tag":151,"props":5131,"children":5133},{"className":5132},[],[5134],{"type":15,"value":4244},{"type":15,"value":4969},{"type":10,"tag":555,"props":5137,"children":5139},{"className":557,"code":5138,"language":559,"meta":560,"style":560},"typedef struct VkBindIndexBufferIndirectCommandEXT {\n VkDeviceAddress bufferAddress;\n uint32_t size;\n VkIndexType indexType;\n} VkBindIndexBufferIndirectCommandEXT;\n",[5140],{"type":10,"tag":151,"props":5141,"children":5142},{"__ignoreMap":560},[5143,5159,5167,5179,5187],{"type":10,"tag":566,"props":5144,"children":5145},{"class":568,"line":569},[5146,5150,5154],{"type":10,"tag":566,"props":5147,"children":5148},{"style":579},[5149],{"type":15,"value":1299},{"type":10,"tag":566,"props":5151,"children":5152},{"style":579},[5153],{"type":15,"value":1304},{"type":10,"tag":566,"props":5155,"children":5156},{"style":573},[5157],{"type":15,"value":5158}," VkBindIndexBufferIndirectCommandEXT {\n",{"type":10,"tag":566,"props":5160,"children":5161},{"class":568,"line":590},[5162],{"type":10,"tag":566,"props":5163,"children":5164},{"style":573},[5165],{"type":15,"value":5166}," VkDeviceAddress bufferAddress;\n",{"type":10,"tag":566,"props":5168,"children":5169},{"class":568,"line":599},[5170,5174],{"type":10,"tag":566,"props":5171,"children":5172},{"style":579},[5173],{"type":15,"value":1742},{"type":10,"tag":566,"props":5175,"children":5176},{"style":573},[5177],{"type":15,"value":5178}," size;\n",{"type":10,"tag":566,"props":5180,"children":5181},{"class":568,"line":650},[5182],{"type":10,"tag":566,"props":5183,"children":5184},{"style":573},[5185],{"type":15,"value":5186}," VkIndexType indexType;\n",{"type":10,"tag":566,"props":5188,"children":5189},{"class":568,"line":659},[5190],{"type":10,"tag":566,"props":5191,"children":5192},{"style":573},[5193],{"type":15,"value":5194},"} VkBindIndexBufferIndirectCommandEXT;\n",{"type":10,"tag":29,"props":5196,"children":5197},{},[5198,5216,5227],{"type":10,"tag":33,"props":5199,"children":5200},{},[5201,5207,5209,5214],{"type":10,"tag":151,"props":5202,"children":5204},{"className":5203},[],[5205],{"type":15,"value":5206},"bufferAddress",{"type":15,"value":5208}," specifies a physical address of the ",{"type":10,"tag":151,"props":5210,"children":5212},{"className":5211},[],[5213],{"type":15,"value":923},{"type":15,"value":5215}," used as an index buffer.",{"type":10,"tag":33,"props":5217,"children":5218},{},[5219,5225],{"type":10,"tag":151,"props":5220,"children":5222},{"className":5221},[],[5223],{"type":15,"value":5224},"size",{"type":15,"value":5226}," is the byte size range which is available for this operation from the provided address.",{"type":10,"tag":33,"props":5228,"children":5229},{},[5230,5236,5237,5243,5245,5250,5252,5257],{"type":10,"tag":151,"props":5231,"children":5233},{"className":5232},[],[5234],{"type":15,"value":5235},"indexType",{"type":15,"value":1390},{"type":10,"tag":151,"props":5238,"children":5240},{"className":5239},[],[5241],{"type":15,"value":5242},"VkIndexType",{"type":15,"value":5244}," value specifying how indices are treated. Instead of the Vulkan enum values, custom ",{"type":10,"tag":151,"props":5246,"children":5248},{"className":5247},[],[5249],{"type":15,"value":3707},{"type":15,"value":5251}," values can be mapped to an ",{"type":10,"tag":151,"props":5253,"children":5255},{"className":5254},[],[5256],{"type":15,"value":5242},{"type":15,"value":5258}," as described below.",{"type":10,"tag":11,"props":5260,"children":5261},{},[5262],{"type":15,"value":5263},"The index buffer is bound as specified at layout creation time:",{"type":10,"tag":555,"props":5265,"children":5267},{"className":557,"code":5266,"language":559,"meta":560,"style":560},"typedef struct VkIndirectCommandsIndexBufferTokenEXT {\n VkIndirectCommandsInputModeFlagsEXT mode;\n} VkIndirectCommandsIndexBufferTokenEXT;\n",[5268],{"type":10,"tag":151,"props":5269,"children":5270},{"__ignoreMap":560},[5271,5287,5295],{"type":10,"tag":566,"props":5272,"children":5273},{"class":568,"line":569},[5274,5278,5282],{"type":10,"tag":566,"props":5275,"children":5276},{"style":579},[5277],{"type":15,"value":1299},{"type":10,"tag":566,"props":5279,"children":5280},{"style":579},[5281],{"type":15,"value":1304},{"type":10,"tag":566,"props":5283,"children":5284},{"style":573},[5285],{"type":15,"value":5286}," VkIndirectCommandsIndexBufferTokenEXT {\n",{"type":10,"tag":566,"props":5288,"children":5289},{"class":568,"line":590},[5290],{"type":10,"tag":566,"props":5291,"children":5292},{"style":573},[5293],{"type":15,"value":5294}," VkIndirectCommandsInputModeFlagsEXT mode;\n",{"type":10,"tag":566,"props":5296,"children":5297},{"class":568,"line":599},[5298],{"type":10,"tag":566,"props":5299,"children":5300},{"style":573},[5301],{"type":15,"value":5302},"} VkIndirectCommandsIndexBufferTokenEXT;\n",{"type":10,"tag":29,"props":5304,"children":5305},{},[5306],{"type":10,"tag":33,"props":5307,"children":5308},{},[5309,5314,5316,5322],{"type":10,"tag":151,"props":5310,"children":5312},{"className":5311},[],[5313],{"type":15,"value":1370},{"type":15,"value":5315}," is a single ",{"type":10,"tag":151,"props":5317,"children":5319},{"className":5318},[],[5320],{"type":15,"value":5321},"VkIndirectCommandsInputModeFlagBitsEXT",{"type":15,"value":5323}," value specifying the mode to be used with this token.",{"type":10,"tag":11,"props":5325,"children":5326},{},[5327],{"type":15,"value":5328},"The VkIndirectCommandsInputModeFlagsEXT enum is defined as:",{"type":10,"tag":555,"props":5330,"children":5332},{"className":557,"code":5331,"language":559,"meta":560,"style":560},"typedef enum VkIndirectCommandsInputModeFlagBitsEXT\n{\n VK_INDIRECT_COMMANDS_INPUT_MODE_VULKAN_INDEX_BUFFER_EXT = 0x00000001,\n VK_INDIRECT_COMMANDS_INPUT_MODE_DXGI_INDEX_BUFFER_EXT = 0x00000002,\n} VkIndirectCommandsInputModeFlagBitsEXT;\ntypedef VkFlags VkIndirectCommandsInputModeFlagsEXT;\n",[5333],{"type":10,"tag":151,"props":5334,"children":5335},{"__ignoreMap":560},[5336,5352,5359,5383,5407,5415],{"type":10,"tag":566,"props":5337,"children":5338},{"class":568,"line":569},[5339,5343,5347],{"type":10,"tag":566,"props":5340,"children":5341},{"style":579},[5342],{"type":15,"value":1299},{"type":10,"tag":566,"props":5344,"children":5345},{"style":579},[5346],{"type":15,"value":1422},{"type":10,"tag":566,"props":5348,"children":5349},{"style":573},[5350],{"type":15,"value":5351}," VkIndirectCommandsInputModeFlagBitsEXT\n",{"type":10,"tag":566,"props":5353,"children":5354},{"class":568,"line":590},[5355],{"type":10,"tag":566,"props":5356,"children":5357},{"style":573},[5358],{"type":15,"value":1435},{"type":10,"tag":566,"props":5360,"children":5361},{"class":568,"line":599},[5362,5367,5371,5375,5379],{"type":10,"tag":566,"props":5363,"children":5364},{"style":573},[5365],{"type":15,"value":5366}," VK_INDIRECT_COMMANDS_INPUT_MODE_VULKAN_INDEX_BUFFER_EXT ",{"type":10,"tag":566,"props":5368,"children":5369},{"style":579},[5370],{"type":15,"value":1448},{"type":10,"tag":566,"props":5372,"children":5373},{"style":579},[5374],{"type":15,"value":1453},{"type":10,"tag":566,"props":5376,"children":5377},{"style":1456},[5378],{"type":15,"value":1459},{"type":10,"tag":566,"props":5380,"children":5381},{"style":573},[5382],{"type":15,"value":1139},{"type":10,"tag":566,"props":5384,"children":5385},{"class":568,"line":650},[5386,5391,5395,5399,5403],{"type":10,"tag":566,"props":5387,"children":5388},{"style":573},[5389],{"type":15,"value":5390}," VK_INDIRECT_COMMANDS_INPUT_MODE_DXGI_INDEX_BUFFER_EXT ",{"type":10,"tag":566,"props":5392,"children":5393},{"style":579},[5394],{"type":15,"value":1448},{"type":10,"tag":566,"props":5396,"children":5397},{"style":579},[5398],{"type":15,"value":1453},{"type":10,"tag":566,"props":5400,"children":5401},{"style":1456},[5402],{"type":15,"value":1484},{"type":10,"tag":566,"props":5404,"children":5405},{"style":573},[5406],{"type":15,"value":1139},{"type":10,"tag":566,"props":5408,"children":5409},{"class":568,"line":659},[5410],{"type":10,"tag":566,"props":5411,"children":5412},{"style":573},[5413],{"type":15,"value":5414},"} VkIndirectCommandsInputModeFlagBitsEXT;\n",{"type":10,"tag":566,"props":5416,"children":5417},{"class":568,"line":678},[5418,5422],{"type":10,"tag":566,"props":5419,"children":5420},{"style":579},[5421],{"type":15,"value":1299},{"type":10,"tag":566,"props":5423,"children":5424},{"style":573},[5425],{"type":15,"value":5426}," VkFlags VkIndirectCommandsInputModeFlagsEXT;\n",{"type":10,"tag":29,"props":5428,"children":5429},{},[5430,5447],{"type":10,"tag":33,"props":5431,"children":5432},{},[5433,5439,5441,5446],{"type":10,"tag":151,"props":5434,"children":5436},{"className":5435},[],[5437],{"type":15,"value":5438},"VK_INDIRECT_COMMANDS_INPUT_MODE_VULKAN_INDEX_BUFFER_EXT",{"type":15,"value":5440}," indicates that the indirect buffer contains ",{"type":10,"tag":151,"props":5442,"children":5444},{"className":5443},[],[5445],{"type":15,"value":4257},{"type":15,"value":301},{"type":10,"tag":33,"props":5448,"children":5449},{},[5450,5456,5457,5463],{"type":10,"tag":151,"props":5451,"children":5453},{"className":5452},[],[5454],{"type":15,"value":5455},"VK_INDIRECT_COMMANDS_INPUT_MODE_DXGI_INDEX_BUFFER_EXT",{"type":15,"value":5440},{"type":10,"tag":151,"props":5458,"children":5460},{"className":5459},[],[5461],{"type":15,"value":5462},"D3D12_INDEX_BUFFER_VIEW",{"type":15,"value":301},{"type":10,"tag":11,"props":5465,"children":5466},{},[5467,5469,5474,5476,5481,5483,5488,5490,5495],{"type":15,"value":5468},"This allows for easy layering of Vulkan atop other APIs. When ",{"type":10,"tag":151,"props":5470,"children":5472},{"className":5471},[],[5473],{"type":15,"value":5455},{"type":15,"value":5475}," is specified, the indirect buffer can contain a ",{"type":10,"tag":151,"props":5477,"children":5479},{"className":5478},[],[5480],{"type":15,"value":5462},{"type":15,"value":5482}," instead of ",{"type":10,"tag":151,"props":5484,"children":5486},{"className":5485},[],[5487],{"type":15,"value":4257},{"type":15,"value":5489}," as D3D’s DXGI format value is mapped to the ",{"type":10,"tag":151,"props":5491,"children":5493},{"className":5492},[],[5494],{"type":15,"value":5242},{"type":15,"value":5496},". It works as both structs are otherwise binary compatible.",{"type":10,"tag":314,"props":5498,"children":5500},{"id":5499},"_bind_vertex_buffer_command",[5501],{"type":15,"value":5502},"Bind Vertex Buffer Command",{"type":10,"tag":11,"props":5504,"children":5505},{},[5506,5507,5512,5513,5518],{"type":15,"value":444},{"type":10,"tag":151,"props":5508,"children":5510},{"className":5509},[],[5511],{"type":15,"value":4286},{"type":15,"value":5129},{"type":10,"tag":151,"props":5514,"children":5516},{"className":5515},[],[5517],{"type":15,"value":4273},{"type":15,"value":4969},{"type":10,"tag":555,"props":5520,"children":5522},{"className":557,"code":5521,"language":559,"meta":560,"style":560},"typedef struct VkBindVertexBufferIndirectCommandEXT {\n VkDeviceAddress bufferAddress;\n uint32_t size;\n uint32_t stride;\n} VkBindVertexBufferIndirectCommandEXT;\n",[5523],{"type":10,"tag":151,"props":5524,"children":5525},{"__ignoreMap":560},[5526,5542,5549,5560,5572],{"type":10,"tag":566,"props":5527,"children":5528},{"class":568,"line":569},[5529,5533,5537],{"type":10,"tag":566,"props":5530,"children":5531},{"style":579},[5532],{"type":15,"value":1299},{"type":10,"tag":566,"props":5534,"children":5535},{"style":579},[5536],{"type":15,"value":1304},{"type":10,"tag":566,"props":5538,"children":5539},{"style":573},[5540],{"type":15,"value":5541}," VkBindVertexBufferIndirectCommandEXT {\n",{"type":10,"tag":566,"props":5543,"children":5544},{"class":568,"line":590},[5545],{"type":10,"tag":566,"props":5546,"children":5547},{"style":573},[5548],{"type":15,"value":5166},{"type":10,"tag":566,"props":5550,"children":5551},{"class":568,"line":599},[5552,5556],{"type":10,"tag":566,"props":5553,"children":5554},{"style":579},[5555],{"type":15,"value":1742},{"type":10,"tag":566,"props":5557,"children":5558},{"style":573},[5559],{"type":15,"value":5178},{"type":10,"tag":566,"props":5561,"children":5562},{"class":568,"line":650},[5563,5567],{"type":10,"tag":566,"props":5564,"children":5565},{"style":579},[5566],{"type":15,"value":1742},{"type":10,"tag":566,"props":5568,"children":5569},{"style":573},[5570],{"type":15,"value":5571}," stride;\n",{"type":10,"tag":566,"props":5573,"children":5574},{"class":568,"line":659},[5575],{"type":10,"tag":566,"props":5576,"children":5577},{"style":573},[5578],{"type":15,"value":5579},"} VkBindVertexBufferIndirectCommandEXT;\n",{"type":10,"tag":29,"props":5581,"children":5582},{},[5583,5599,5608],{"type":10,"tag":33,"props":5584,"children":5585},{},[5586,5591,5592,5597],{"type":10,"tag":151,"props":5587,"children":5589},{"className":5588},[],[5590],{"type":15,"value":5206},{"type":15,"value":5208},{"type":10,"tag":151,"props":5593,"children":5595},{"className":5594},[],[5596],{"type":15,"value":923},{"type":15,"value":5598}," used as a vertex input binding.",{"type":10,"tag":33,"props":5600,"children":5601},{},[5602,5607],{"type":10,"tag":151,"props":5603,"children":5605},{"className":5604},[],[5606],{"type":15,"value":5224},{"type":15,"value":5226},{"type":10,"tag":33,"props":5609,"children":5610},{},[5611,5617,5619,5625],{"type":10,"tag":151,"props":5612,"children":5614},{"className":5613},[],[5615],{"type":15,"value":5616},"stride",{"type":15,"value":5618}," is the byte size stride for this vertex input binding as in ",{"type":10,"tag":151,"props":5620,"children":5622},{"className":5621},[],[5623],{"type":15,"value":5624},"VkVertexInputBindingDescription::stride",{"type":15,"value":301},{"type":10,"tag":11,"props":5627,"children":5628},{},[5629],{"type":15,"value":5630},"The vertex buffer is bound as specified at layout creation time:",{"type":10,"tag":555,"props":5632,"children":5634},{"className":557,"code":5633,"language":559,"meta":560,"style":560},"typedef struct VkIndirectCommandsVertexBufferTokenEXT {\n uint32_t vertexBindingUnit;\n} VkIndirectCommandsVertexBufferTokenEXT;\n",[5635],{"type":10,"tag":151,"props":5636,"children":5637},{"__ignoreMap":560},[5638,5654,5666],{"type":10,"tag":566,"props":5639,"children":5640},{"class":568,"line":569},[5641,5645,5649],{"type":10,"tag":566,"props":5642,"children":5643},{"style":579},[5644],{"type":15,"value":1299},{"type":10,"tag":566,"props":5646,"children":5647},{"style":579},[5648],{"type":15,"value":1304},{"type":10,"tag":566,"props":5650,"children":5651},{"style":573},[5652],{"type":15,"value":5653}," VkIndirectCommandsVertexBufferTokenEXT {\n",{"type":10,"tag":566,"props":5655,"children":5656},{"class":568,"line":590},[5657,5661],{"type":10,"tag":566,"props":5658,"children":5659},{"style":579},[5660],{"type":15,"value":1742},{"type":10,"tag":566,"props":5662,"children":5663},{"style":573},[5664],{"type":15,"value":5665}," vertexBindingUnit;\n",{"type":10,"tag":566,"props":5667,"children":5668},{"class":568,"line":599},[5669],{"type":10,"tag":566,"props":5670,"children":5671},{"style":573},[5672],{"type":15,"value":5673},"} VkIndirectCommandsVertexBufferTokenEXT;\n",{"type":10,"tag":29,"props":5675,"children":5676},{},[5677],{"type":10,"tag":33,"props":5678,"children":5679},{},[5680,5686],{"type":10,"tag":151,"props":5681,"children":5683},{"className":5682},[],[5684],{"type":15,"value":5685},"vertexBindingUnit",{"type":15,"value":5687}," is the vertex input binding number to be bound.",{"type":10,"tag":11,"props":5689,"children":5690},{},[5691,5693,5698,5699,5705],{"type":15,"value":5692},"Both ",{"type":10,"tag":151,"props":5694,"children":5696},{"className":5695},[],[5697],{"type":15,"value":4286},{"type":15,"value":293},{"type":10,"tag":151,"props":5700,"children":5702},{"className":5701},[],[5703],{"type":15,"value":5704},"D3D12_VERTEX_BUFFER_VIEW",{"type":15,"value":5706}," structs are binary compatible.",{"type":10,"tag":314,"props":5708,"children":5710},{"id":5709},"_draw_commands",[5711],{"type":15,"value":5712},"Draw Commands",{"type":10,"tag":11,"props":5714,"children":5715},{},[5716],{"type":15,"value":5717},"Draws can be executed with following commands:",{"type":10,"tag":29,"props":5719,"children":5720},{},[5721,5738,5754,5779],{"type":10,"tag":33,"props":5722,"children":5723},{},[5724,5725,5730,5732,5737],{"type":15,"value":444},{"type":10,"tag":151,"props":5726,"children":5728},{"className":5727},[],[5729],{"type":15,"value":4335},{"type":15,"value":5731}," structure specifies the inputs data for the ",{"type":10,"tag":151,"props":5733,"children":5735},{"className":5734},[],[5736],{"type":15,"value":4322},{"type":15,"value":4969},{"type":10,"tag":33,"props":5739,"children":5740},{},[5741,5742,5747,5748,5753],{"type":15,"value":444},{"type":10,"tag":151,"props":5743,"children":5745},{"className":5744},[],[5746],{"type":15,"value":3715},{"type":15,"value":5129},{"type":10,"tag":151,"props":5749,"children":5751},{"className":5750},[],[5752],{"type":15,"value":4351},{"type":15,"value":4969},{"type":10,"tag":33,"props":5755,"children":5756},{},[5757,5759,5765,5767,5772,5773,5778],{"type":15,"value":5758},"If ",{"type":10,"tag":151,"props":5760,"children":5762},{"className":5761},[],[5763],{"type":15,"value":5764},"EXT_mesh_shader",{"type":15,"value":5766}," is enabled, the ",{"type":10,"tag":151,"props":5768,"children":5770},{"className":5769},[],[5771],{"type":15,"value":4392},{"type":15,"value":5129},{"type":10,"tag":151,"props":5774,"children":5776},{"className":5775},[],[5777],{"type":15,"value":4379},{"type":15,"value":4969},{"type":10,"tag":33,"props":5780,"children":5781},{},[5782,5783,5789,5790,5795,5796,5801],{"type":15,"value":5758},{"type":10,"tag":151,"props":5784,"children":5786},{"className":5785},[],[5787],{"type":15,"value":5788},"NV_mesh_shader",{"type":15,"value":5766},{"type":10,"tag":151,"props":5791,"children":5793},{"className":5792},[],[5794],{"type":15,"value":4421},{"type":15,"value":5129},{"type":10,"tag":151,"props":5797,"children":5799},{"className":5798},[],[5800],{"type":15,"value":4408},{"type":15,"value":4969},{"type":10,"tag":314,"props":5803,"children":5805},{"id":5804},"_multi_draw_commands",[5806],{"type":15,"value":5807},"Multi-draw Commands",{"type":10,"tag":11,"props":5809,"children":5810},{},[5811],{"type":15,"value":5812},"Multiple draws can be executed using the following commands:",{"type":10,"tag":29,"props":5814,"children":5815},{},[5816,5827,5838,5855,5871],{"type":10,"tag":33,"props":5817,"children":5818},{},[5819,5821,5826],{"type":15,"value":5820},"Indexed draws with the ",{"type":10,"tag":151,"props":5822,"children":5824},{"className":5823},[],[5825],{"type":15,"value":4457},{"type":15,"value":4969},{"type":10,"tag":33,"props":5828,"children":5829},{},[5830,5832,5837],{"type":15,"value":5831},"Non-indexed draws with the ",{"type":10,"tag":151,"props":5833,"children":5835},{"className":5834},[],[5836],{"type":15,"value":4492},{"type":15,"value":4969},{"type":10,"tag":33,"props":5839,"children":5840},{},[5841,5842,5847,5849,5854],{"type":15,"value":5758},{"type":10,"tag":151,"props":5843,"children":5845},{"className":5844},[],[5846],{"type":15,"value":5764},{"type":15,"value":5848}," is enabled, mesh tasks with the ",{"type":10,"tag":151,"props":5850,"children":5852},{"className":5851},[],[5853],{"type":15,"value":4525},{"type":15,"value":4969},{"type":10,"tag":33,"props":5856,"children":5857},{},[5858,5859,5864,5865,5870],{"type":15,"value":5758},{"type":10,"tag":151,"props":5860,"children":5862},{"className":5861},[],[5863],{"type":15,"value":5788},{"type":15,"value":5848},{"type":10,"tag":151,"props":5866,"children":5868},{"className":5867},[],[5869],{"type":15,"value":4558},{"type":15,"value":4969},{"type":10,"tag":33,"props":5872,"children":5873},{},[5874,5875,5881],{"type":15,"value":444},{"type":10,"tag":151,"props":5876,"children":5878},{"className":5877},[],[5879],{"type":15,"value":5880},"DrawIndex",{"type":15,"value":5882}," shader variable is zero-indexed for each multi-draw token.",{"type":10,"tag":11,"props":5884,"children":5885},{},[5886,5888,5893],{"type":15,"value":5887},"All multi-draw commands use ",{"type":10,"tag":151,"props":5889,"children":5891},{"className":5890},[],[5892],{"type":15,"value":4470},{"type":15,"value":5894}," data:",{"type":10,"tag":555,"props":5896,"children":5898},{"className":557,"code":5897,"language":559,"meta":560,"style":560},"typedef struct VkDrawIndirectCountIndirectCommandEXT {\n VkDeviceAddress bufferAddress;\n uint32_t stride;\n uint32_t commandCount;\n} VkDrawIndirectCountIndirectCommandEXT;\n",[5899],{"type":10,"tag":151,"props":5900,"children":5901},{"__ignoreMap":560},[5902,5918,5925,5936,5948],{"type":10,"tag":566,"props":5903,"children":5904},{"class":568,"line":569},[5905,5909,5913],{"type":10,"tag":566,"props":5906,"children":5907},{"style":579},[5908],{"type":15,"value":1299},{"type":10,"tag":566,"props":5910,"children":5911},{"style":579},[5912],{"type":15,"value":1304},{"type":10,"tag":566,"props":5914,"children":5915},{"style":573},[5916],{"type":15,"value":5917}," VkDrawIndirectCountIndirectCommandEXT {\n",{"type":10,"tag":566,"props":5919,"children":5920},{"class":568,"line":590},[5921],{"type":10,"tag":566,"props":5922,"children":5923},{"style":573},[5924],{"type":15,"value":5166},{"type":10,"tag":566,"props":5926,"children":5927},{"class":568,"line":599},[5928,5932],{"type":10,"tag":566,"props":5929,"children":5930},{"style":579},[5931],{"type":15,"value":1742},{"type":10,"tag":566,"props":5933,"children":5934},{"style":573},[5935],{"type":15,"value":5571},{"type":10,"tag":566,"props":5937,"children":5938},{"class":568,"line":650},[5939,5943],{"type":10,"tag":566,"props":5940,"children":5941},{"style":579},[5942],{"type":15,"value":1742},{"type":10,"tag":566,"props":5944,"children":5945},{"style":573},[5946],{"type":15,"value":5947}," commandCount;\n",{"type":10,"tag":566,"props":5949,"children":5950},{"class":568,"line":659},[5951],{"type":10,"tag":566,"props":5952,"children":5953},{"style":573},[5954],{"type":15,"value":5955},"} VkDrawIndirectCountIndirectCommandEXT;\n",{"type":10,"tag":29,"props":5957,"children":5958},{},[5959,5975,5985],{"type":10,"tag":33,"props":5960,"children":5961},{},[5962,5967,5968,5973],{"type":10,"tag":151,"props":5963,"children":5965},{"className":5964},[],[5966],{"type":15,"value":5206},{"type":15,"value":5208},{"type":10,"tag":151,"props":5969,"children":5971},{"className":5970},[],[5972],{"type":15,"value":923},{"type":15,"value":5974}," used for draw commands.",{"type":10,"tag":33,"props":5976,"children":5977},{},[5978,5983],{"type":10,"tag":151,"props":5979,"children":5981},{"className":5980},[],[5982],{"type":15,"value":5616},{"type":15,"value":5984}," is the byte size stride for the command arguments",{"type":10,"tag":33,"props":5986,"children":5987},{},[5988,5994],{"type":10,"tag":151,"props":5989,"children":5991},{"className":5990},[],[5992],{"type":15,"value":5993},"commandCount",{"type":15,"value":5995}," is the number of commands to execute",{"type":10,"tag":11,"props":5997,"children":5998},{},[5999,6001,6006],{"type":15,"value":6000},"The data in ",{"type":10,"tag":151,"props":6002,"children":6004},{"className":6003},[],[6005],{"type":15,"value":5206},{"type":15,"value":6007}," depends on the token:",{"type":10,"tag":29,"props":6009,"children":6010},{},[6011,6027,6043,6058],{"type":10,"tag":33,"props":6012,"children":6013},{},[6014,6019,6021,6026],{"type":10,"tag":151,"props":6015,"children":6017},{"className":6016},[],[6018],{"type":15,"value":4335},{"type":15,"value":6020}," for ",{"type":10,"tag":151,"props":6022,"children":6024},{"className":6023},[],[6025],{"type":15,"value":4457},{"type":15,"value":301},{"type":10,"tag":33,"props":6028,"children":6029},{},[6030,6035,6036,6041],{"type":10,"tag":151,"props":6031,"children":6033},{"className":6032},[],[6034],{"type":15,"value":3715},{"type":15,"value":6020},{"type":10,"tag":151,"props":6037,"children":6039},{"className":6038},[],[6040],{"type":15,"value":4492},{"type":15,"value":6042}," .",{"type":10,"tag":33,"props":6044,"children":6045},{},[6046,6051,6052,6057],{"type":10,"tag":151,"props":6047,"children":6049},{"className":6048},[],[6050],{"type":15,"value":4392},{"type":15,"value":6020},{"type":10,"tag":151,"props":6053,"children":6055},{"className":6054},[],[6056],{"type":15,"value":4525},{"type":15,"value":301},{"type":10,"tag":33,"props":6059,"children":6060},{},[6061,6066,6067,6072],{"type":10,"tag":151,"props":6062,"children":6064},{"className":6063},[],[6065],{"type":15,"value":4421},{"type":15,"value":6020},{"type":10,"tag":151,"props":6068,"children":6070},{"className":6069},[],[6071],{"type":15,"value":4558},{"type":15,"value":301},{"type":10,"tag":314,"props":6074,"children":6076},{"id":6075},"_dispatch_command",[6077],{"type":15,"value":6078},"Dispatch Command",{"type":10,"tag":11,"props":6080,"children":6081},{},[6082,6083,6088,6089,6094],{"type":15,"value":444},{"type":10,"tag":151,"props":6084,"children":6086},{"className":6085},[],[6087],{"type":15,"value":3853},{"type":15,"value":5129},{"type":10,"tag":151,"props":6090,"children":6092},{"className":6091},[],[6093],{"type":15,"value":4147},{"type":15,"value":4969},{"type":10,"tag":314,"props":6096,"children":6098},{"id":6097},"_trace_rays_command",[6099],{"type":15,"value":6100},"Trace Rays Command",{"type":10,"tag":11,"props":6102,"children":6103},{},[6104,6105,6111,6112,6117,6118,6123],{"type":15,"value":5758},{"type":10,"tag":151,"props":6106,"children":6108},{"className":6107},[],[6109],{"type":15,"value":6110},"VK_KHR_ray_tracing_maintenance1",{"type":15,"value":5766},{"type":10,"tag":151,"props":6113,"children":6115},{"className":6114},[],[6116],{"type":15,"value":4208},{"type":15,"value":5129},{"type":10,"tag":151,"props":6119,"children":6121},{"className":6120},[],[6122],{"type":15,"value":4195},{"type":15,"value":4969},{"type":10,"tag":242,"props":6125,"children":6127},{"id":6126},"_preprocess_buffer",[6128],{"type":15,"value":6129},"Preprocess Buffer",{"type":10,"tag":11,"props":6131,"children":6132},{},[6133],{"type":15,"value":6134},"The generation of commands on the device may require a preprocess buffer. Implementations may use this for the storage of device-specific commands or scratch memory.",{"type":10,"tag":11,"props":6136,"children":6137},{},[6138],{"type":15,"value":6139},"To retrieve the memory size and alignment requirements of a particular execution state call:",{"type":10,"tag":555,"props":6141,"children":6143},{"className":557,"code":6142,"language":559,"meta":560,"style":560},"VKAPI_ATTR void VKAPI_CALL vkGetGeneratedCommandsMemoryRequirementsEXT(\n VkDevice device,\n const VkGeneratedCommandsMemoryRequirementsInfoEXT* pInfo,\n VkMemoryRequirements2* pMemoryRequirements);\n",[6144],{"type":10,"tag":151,"props":6145,"children":6146},{"__ignoreMap":560},[6147,6170,6186,6211],{"type":10,"tag":566,"props":6148,"children":6149},{"class":568,"line":569},[6150,6154,6158,6162,6166],{"type":10,"tag":566,"props":6151,"children":6152},{"style":573},[6153],{"type":15,"value":2229},{"type":10,"tag":566,"props":6155,"children":6156},{"style":579},[6157],{"type":15,"value":610},{"type":10,"tag":566,"props":6159,"children":6160},{"style":573},[6161],{"type":15,"value":2238},{"type":10,"tag":566,"props":6163,"children":6164},{"style":613},[6165],{"type":15,"value":943},{"type":10,"tag":566,"props":6167,"children":6168},{"style":573},[6169],{"type":15,"value":1121},{"type":10,"tag":566,"props":6171,"children":6172},{"class":568,"line":590},[6173,6178,6182],{"type":10,"tag":566,"props":6174,"children":6175},{"style":573},[6176],{"type":15,"value":6177}," VkDevice ",{"type":10,"tag":566,"props":6179,"children":6180},{"style":629},[6181],{"type":15,"value":1134},{"type":10,"tag":566,"props":6183,"children":6184},{"style":573},[6185],{"type":15,"value":1139},{"type":10,"tag":566,"props":6187,"children":6188},{"class":568,"line":599},[6189,6193,6198,6202,6207],{"type":10,"tag":566,"props":6190,"children":6191},{"style":579},[6192],{"type":15,"value":1147},{"type":10,"tag":566,"props":6194,"children":6195},{"style":573},[6196],{"type":15,"value":6197}," VkGeneratedCommandsMemoryRequirementsInfoEXT",{"type":10,"tag":566,"props":6199,"children":6200},{"style":579},[6201],{"type":15,"value":1157},{"type":10,"tag":566,"props":6203,"children":6204},{"style":629},[6205],{"type":15,"value":6206}," pInfo",{"type":10,"tag":566,"props":6208,"children":6209},{"style":573},[6210],{"type":15,"value":1139},{"type":10,"tag":566,"props":6212,"children":6213},{"class":568,"line":650},[6214,6219,6223,6228],{"type":10,"tag":566,"props":6215,"children":6216},{"style":573},[6217],{"type":15,"value":6218}," VkMemoryRequirements2",{"type":10,"tag":566,"props":6220,"children":6221},{"style":579},[6222],{"type":15,"value":1157},{"type":10,"tag":566,"props":6224,"children":6225},{"style":629},[6226],{"type":15,"value":6227}," pMemoryRequirements",{"type":10,"tag":566,"props":6229,"children":6230},{"style":573},[6231],{"type":15,"value":1213},{"type":10,"tag":29,"props":6233,"children":6234},{},[6235,6245,6263],{"type":10,"tag":33,"props":6236,"children":6237},{},[6238,6243],{"type":10,"tag":151,"props":6239,"children":6241},{"className":6240},[],[6242],{"type":15,"value":1134},{"type":15,"value":6244}," is the logical device that will create the buffer.",{"type":10,"tag":33,"props":6246,"children":6247},{},[6248,6254,6255,6261],{"type":10,"tag":151,"props":6249,"children":6251},{"className":6250},[],[6252],{"type":15,"value":6253},"pInfo",{"type":15,"value":1237},{"type":10,"tag":151,"props":6256,"children":6258},{"className":6257},[],[6259],{"type":15,"value":6260},"VkGeneratedCommandsMemoryRequirementsInfoEXT",{"type":15,"value":6262}," structure containing parameters required for the memory requirements query.",{"type":10,"tag":33,"props":6264,"children":6265},{},[6266,6272,6273,6279],{"type":10,"tag":151,"props":6267,"children":6269},{"className":6268},[],[6270],{"type":15,"value":6271},"pMemoryRequirements",{"type":15,"value":1237},{"type":10,"tag":151,"props":6274,"children":6276},{"className":6275},[],[6277],{"type":15,"value":6278},"VkMemoryRequirements2",{"type":15,"value":6280}," structure in which the memory requirements of the buffer object are returned.",{"type":10,"tag":11,"props":6282,"children":6283},{},[6284,6285,6291],{"type":15,"value":5758},{"type":10,"tag":151,"props":6286,"children":6288},{"className":6287},[],[6289],{"type":15,"value":6290},"pMemoryRequirements→memoryRequirements.size",{"type":15,"value":6292}," is zero then preprocessing is not required.",{"type":10,"tag":11,"props":6294,"children":6295},{},[6296,6297,6302],{"type":15,"value":444},{"type":10,"tag":151,"props":6298,"children":6300},{"className":6299},[],[6301],{"type":15,"value":6260},{"type":15,"value":1284},{"type":10,"tag":555,"props":6304,"children":6306},{"className":557,"code":6305,"language":559,"meta":560,"style":560},"typedef struct VkGeneratedCommandsMemoryRequirementsInfoEXT {\n VkStructureType sType;\n const void* pNext;\n VkIndirectExecutionSetEXT indirectExecutionSet;\n VkIndirectCommandsLayoutEXT indirectCommandsLayout;\n uint32_t maxSequenceCount;\n uint32_t maxDrawCount;\n} VkGeneratedCommandsMemoryRequirementsInfoEXT;\n",[6307],{"type":10,"tag":151,"props":6308,"children":6309},{"__ignoreMap":560},[6310,6326,6334,6350,6358,6366,6378,6390],{"type":10,"tag":566,"props":6311,"children":6312},{"class":568,"line":569},[6313,6317,6321],{"type":10,"tag":566,"props":6314,"children":6315},{"style":579},[6316],{"type":15,"value":1299},{"type":10,"tag":566,"props":6318,"children":6319},{"style":579},[6320],{"type":15,"value":1304},{"type":10,"tag":566,"props":6322,"children":6323},{"style":573},[6324],{"type":15,"value":6325}," VkGeneratedCommandsMemoryRequirementsInfoEXT {\n",{"type":10,"tag":566,"props":6327,"children":6328},{"class":568,"line":590},[6329],{"type":10,"tag":566,"props":6330,"children":6331},{"style":573},[6332],{"type":15,"value":6333}," VkStructureType sType;\n",{"type":10,"tag":566,"props":6335,"children":6336},{"class":568,"line":599},[6337,6341,6345],{"type":10,"tag":566,"props":6338,"children":6339},{"style":579},[6340],{"type":15,"value":1147},{"type":10,"tag":566,"props":6342,"children":6343},{"style":579},[6344],{"type":15,"value":1329},{"type":10,"tag":566,"props":6346,"children":6347},{"style":573},[6348],{"type":15,"value":6349}," pNext;\n",{"type":10,"tag":566,"props":6351,"children":6352},{"class":568,"line":650},[6353],{"type":10,"tag":566,"props":6354,"children":6355},{"style":573},[6356],{"type":15,"value":6357}," VkIndirectExecutionSetEXT indirectExecutionSet;\n",{"type":10,"tag":566,"props":6359,"children":6360},{"class":568,"line":659},[6361],{"type":10,"tag":566,"props":6362,"children":6363},{"style":573},[6364],{"type":15,"value":6365}," VkIndirectCommandsLayoutEXT indirectCommandsLayout;\n",{"type":10,"tag":566,"props":6367,"children":6368},{"class":568,"line":678},[6369,6373],{"type":10,"tag":566,"props":6370,"children":6371},{"style":579},[6372],{"type":15,"value":1742},{"type":10,"tag":566,"props":6374,"children":6375},{"style":573},[6376],{"type":15,"value":6377}," maxSequenceCount;\n",{"type":10,"tag":566,"props":6379,"children":6380},{"class":568,"line":697},[6381,6385],{"type":10,"tag":566,"props":6382,"children":6383},{"style":579},[6384],{"type":15,"value":1742},{"type":10,"tag":566,"props":6386,"children":6387},{"style":573},[6388],{"type":15,"value":6389}," maxDrawCount;\n",{"type":10,"tag":566,"props":6391,"children":6392},{"class":568,"line":714},[6393],{"type":10,"tag":566,"props":6394,"children":6395},{"style":573},[6396],{"type":15,"value":6397},"} VkGeneratedCommandsMemoryRequirementsInfoEXT;\n",{"type":10,"tag":29,"props":6399,"children":6400},{},[6401,6411,6435,6451,6462],{"type":10,"tag":33,"props":6402,"children":6403},{},[6404,6409],{"type":10,"tag":151,"props":6405,"children":6407},{"className":6406},[],[6408],{"type":15,"value":3262},{"type":15,"value":6410}," is the mask of shader stages that this buffer memory is intended to be used with during the execution.",{"type":10,"tag":33,"props":6412,"children":6413},{},[6414,6419,6421,6426,6428,6434],{"type":10,"tag":151,"props":6415,"children":6417},{"className":6416},[],[6418],{"type":15,"value":2276},{"type":15,"value":6420}," is the indirect execution set to be used for binding shaders. If the token sequence will contain a ",{"type":10,"tag":151,"props":6422,"children":6424},{"className":6423},[],[6425],{"type":15,"value":4067},{"type":15,"value":6427}," token, it must not be ",{"type":10,"tag":151,"props":6429,"children":6431},{"className":6430},[],[6432],{"type":15,"value":6433},"VK_NULL_HANDLE",{"type":15,"value":301},{"type":10,"tag":33,"props":6436,"children":6437},{},[6438,6443,6444,6449],{"type":10,"tag":151,"props":6439,"children":6441},{"className":6440},[],[6442],{"type":15,"value":3630},{"type":15,"value":3264},{"type":10,"tag":151,"props":6445,"children":6447},{"className":6446},[],[6448],{"type":15,"value":892},{"type":15,"value":6450}," that this buffer memory is intended to be used with.",{"type":10,"tag":33,"props":6452,"children":6453},{},[6454,6460],{"type":10,"tag":151,"props":6455,"children":6457},{"className":6456},[],[6458],{"type":15,"value":6459},"maxSequenceCount",{"type":15,"value":6461}," is the maximum number of sequences that this buffer memory can be used with.",{"type":10,"tag":33,"props":6463,"children":6464},{},[6465,6471,6473,6478,6480,6485],{"type":10,"tag":151,"props":6466,"children":6468},{"className":6467},[],[6469],{"type":15,"value":6470},"maxDrawCount",{"type":15,"value":6472}," is the maximum number of indirect draws that can be executed by any COUNT-type multi-draw indirect tokens (equivalent to ",{"type":10,"tag":151,"props":6474,"children":6476},{"className":6475},[],[6477],{"type":15,"value":6470},{"type":15,"value":6479}," in ",{"type":10,"tag":151,"props":6481,"children":6483},{"className":6482},[],[6484],{"type":15,"value":363},{"type":15,"value":6486},")",{"type":10,"tag":11,"props":6488,"children":6489},{},[6490,6492,6498,6499,6505],{"type":15,"value":6491},"Preprocess buffer memory can be recycled with different execution/preprocessing operations, but must be synchronized using barriers with ",{"type":10,"tag":151,"props":6493,"children":6495},{"className":6494},[],[6496],{"type":15,"value":6497},"VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_EXT",{"type":15,"value":293},{"type":10,"tag":151,"props":6500,"children":6502},{"className":6501},[],[6503],{"type":15,"value":6504},"VK_ACCESS_COMMAND_PREPROCESS_WRITE/READ_BIT_EXT",{"type":15,"value":301},{"type":10,"tag":11,"props":6507,"children":6508},{},[6509],{"type":15,"value":6510},"The contents and the layout of this buffer is opaque to applications and must not be modified or copied to another buffer for reuse.",{"type":10,"tag":11,"props":6512,"children":6513},{},[6514,6515,6520,6522,6527,6529,6535,6536,6542],{"type":15,"value":5758},{"type":10,"tag":151,"props":6516,"children":6518},{"className":6517},[],[6519],{"type":15,"value":2276},{"type":15,"value":6521}," is ",{"type":10,"tag":151,"props":6523,"children":6525},{"className":6524},[],[6526],{"type":15,"value":6433},{"type":15,"value":6528},", pipeline or shader info must be passed through the pNext pointer using either a ",{"type":10,"tag":151,"props":6530,"children":6532},{"className":6531},[],[6533],{"type":15,"value":6534},"VkGeneratedCommandsPipelineInfoEXT",{"type":15,"value":3308},{"type":10,"tag":151,"props":6537,"children":6539},{"className":6538},[],[6540],{"type":15,"value":6541},"VkGeneratedCommandsShaderInfoEXT",{"type":15,"value":6543}," struct.",{"type":10,"tag":11,"props":6545,"children":6546},{},[6547,6548,6553],{"type":15,"value":444},{"type":10,"tag":151,"props":6549,"children":6551},{"className":6550},[],[6552],{"type":15,"value":6534},{"type":15,"value":1284},{"type":10,"tag":555,"props":6555,"children":6557},{"className":557,"code":6556,"language":559,"meta":560,"style":560},"typedef struct VkGeneratedCommandsPipelineInfoEXT {\n VkStructureType sType;\n const void* pNext;\n VkPipeline pipeline;\n} VkGeneratedCommandsPipelineInfoEXT;\n",[6558],{"type":10,"tag":151,"props":6559,"children":6560},{"__ignoreMap":560},[6561,6577,6584,6599,6607],{"type":10,"tag":566,"props":6562,"children":6563},{"class":568,"line":569},[6564,6568,6572],{"type":10,"tag":566,"props":6565,"children":6566},{"style":579},[6567],{"type":15,"value":1299},{"type":10,"tag":566,"props":6569,"children":6570},{"style":579},[6571],{"type":15,"value":1304},{"type":10,"tag":566,"props":6573,"children":6574},{"style":573},[6575],{"type":15,"value":6576}," VkGeneratedCommandsPipelineInfoEXT {\n",{"type":10,"tag":566,"props":6578,"children":6579},{"class":568,"line":590},[6580],{"type":10,"tag":566,"props":6581,"children":6582},{"style":573},[6583],{"type":15,"value":6333},{"type":10,"tag":566,"props":6585,"children":6586},{"class":568,"line":599},[6587,6591,6595],{"type":10,"tag":566,"props":6588,"children":6589},{"style":579},[6590],{"type":15,"value":1147},{"type":10,"tag":566,"props":6592,"children":6593},{"style":579},[6594],{"type":15,"value":1329},{"type":10,"tag":566,"props":6596,"children":6597},{"style":573},[6598],{"type":15,"value":6349},{"type":10,"tag":566,"props":6600,"children":6601},{"class":568,"line":650},[6602],{"type":10,"tag":566,"props":6603,"children":6604},{"style":573},[6605],{"type":15,"value":6606}," VkPipeline pipeline;\n",{"type":10,"tag":566,"props":6608,"children":6609},{"class":568,"line":659},[6610],{"type":10,"tag":566,"props":6611,"children":6612},{"style":573},[6613],{"type":15,"value":6614},"} VkGeneratedCommandsPipelineInfoEXT;\n",{"type":10,"tag":29,"props":6616,"children":6617},{},[6618],{"type":10,"tag":33,"props":6619,"children":6620},{},[6621,6626],{"type":10,"tag":151,"props":6622,"children":6624},{"className":6623},[],[6625],{"type":15,"value":2789},{"type":15,"value":6627}," is a pipeline comprised of shaders that are compatible with the ones which will be used with the resulting indirect buffer.",{"type":10,"tag":11,"props":6629,"children":6630},{},[6631,6632,6637],{"type":15,"value":444},{"type":10,"tag":151,"props":6633,"children":6635},{"className":6634},[],[6636],{"type":15,"value":6541},{"type":15,"value":1284},{"type":10,"tag":555,"props":6639,"children":6641},{"className":557,"code":6640,"language":559,"meta":560,"style":560},"typedef struct VkGeneratedCommandsShaderInfoEXT {\n VkStructureType sType;\n const void* pNext;\n uint32_t shaderCount;\n const VkShaderExt *pShaders;\n} VkGeneratedCommandsShaderInfoEXT;\n",[6642],{"type":10,"tag":151,"props":6643,"children":6644},{"__ignoreMap":560},[6645,6661,6668,6683,6695,6716],{"type":10,"tag":566,"props":6646,"children":6647},{"class":568,"line":569},[6648,6652,6656],{"type":10,"tag":566,"props":6649,"children":6650},{"style":579},[6651],{"type":15,"value":1299},{"type":10,"tag":566,"props":6653,"children":6654},{"style":579},[6655],{"type":15,"value":1304},{"type":10,"tag":566,"props":6657,"children":6658},{"style":573},[6659],{"type":15,"value":6660}," VkGeneratedCommandsShaderInfoEXT {\n",{"type":10,"tag":566,"props":6662,"children":6663},{"class":568,"line":590},[6664],{"type":10,"tag":566,"props":6665,"children":6666},{"style":573},[6667],{"type":15,"value":6333},{"type":10,"tag":566,"props":6669,"children":6670},{"class":568,"line":599},[6671,6675,6679],{"type":10,"tag":566,"props":6672,"children":6673},{"style":579},[6674],{"type":15,"value":1147},{"type":10,"tag":566,"props":6676,"children":6677},{"style":579},[6678],{"type":15,"value":1329},{"type":10,"tag":566,"props":6680,"children":6681},{"style":573},[6682],{"type":15,"value":6349},{"type":10,"tag":566,"props":6684,"children":6685},{"class":568,"line":650},[6686,6690],{"type":10,"tag":566,"props":6687,"children":6688},{"style":579},[6689],{"type":15,"value":1742},{"type":10,"tag":566,"props":6691,"children":6692},{"style":573},[6693],{"type":15,"value":6694}," shaderCount;\n",{"type":10,"tag":566,"props":6696,"children":6697},{"class":568,"line":659},[6698,6702,6707,6711],{"type":10,"tag":566,"props":6699,"children":6700},{"style":579},[6701],{"type":15,"value":1147},{"type":10,"tag":566,"props":6703,"children":6704},{"style":573},[6705],{"type":15,"value":6706}," VkShaderExt ",{"type":10,"tag":566,"props":6708,"children":6709},{"style":579},[6710],{"type":15,"value":1157},{"type":10,"tag":566,"props":6712,"children":6713},{"style":573},[6714],{"type":15,"value":6715},"pShaders;\n",{"type":10,"tag":566,"props":6717,"children":6718},{"class":568,"line":678},[6719],{"type":10,"tag":566,"props":6720,"children":6721},{"style":573},[6722],{"type":15,"value":6723},"} VkGeneratedCommandsShaderInfoEXT;\n",{"type":10,"tag":29,"props":6725,"children":6726},{},[6727,6743],{"type":10,"tag":33,"props":6728,"children":6729},{},[6730,6735,6736,6742],{"type":10,"tag":151,"props":6731,"children":6733},{"className":6732},[],[6734],{"type":15,"value":1969},{"type":15,"value":1971},{"type":10,"tag":151,"props":6737,"children":6739},{"className":6738},[],[6740],{"type":15,"value":6741},"pShaders",{"type":15,"value":2071},{"type":10,"tag":33,"props":6744,"children":6745},{},[6746,6751],{"type":10,"tag":151,"props":6747,"children":6749},{"className":6748},[],[6750],{"type":15,"value":6741},{"type":15,"value":6752}," is a pointer to an array of shaders that are compatible with the ones which will be used with the resulting indirect buffer.",{"type":10,"tag":242,"props":6754,"children":6756},{"id":6755},"_command_buffer",[6757],{"type":15,"value":6758},"Command Buffer",{"type":10,"tag":314,"props":6760,"children":6762},{"id":6761},"_synchronization",[6763],{"type":15,"value":6764},"Synchronization",{"type":10,"tag":11,"props":6766,"children":6767},{},[6768,6770,6775,6777,6782],{"type":15,"value":6769},"Synchronization of preprocessing via ",{"type":10,"tag":151,"props":6771,"children":6773},{"className":6772},[],[6774],{"type":15,"value":955},{"type":15,"value":6776}," and generation/execution via ",{"type":10,"tag":151,"props":6778,"children":6780},{"className":6779},[],[6781],{"type":15,"value":968},{"type":15,"value":6783}," is supported with a new stage and access flags:",{"type":10,"tag":555,"props":6785,"children":6787},{"className":557,"code":6786,"language":559,"meta":560,"style":560},"#define VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_EXT ((VkPipelineStageFlagBits)0x00020000)\n\n#define VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_EXT ((VkAccessFlagBits)0x00020000)\n#define VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_EXT ((VkAccessFlagBits)0x00040000)\n",[6788],{"type":10,"tag":151,"props":6789,"children":6790},{"__ignoreMap":560},[6791,6821,6830,6859],{"type":10,"tag":566,"props":6792,"children":6793},{"class":568,"line":569},[6794,6798,6803,6808,6812,6817],{"type":10,"tag":566,"props":6795,"children":6796},{"style":579},[6797],{"type":15,"value":4891},{"type":10,"tag":566,"props":6799,"children":6800},{"style":613},[6801],{"type":15,"value":6802}," VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_EXT",{"type":10,"tag":566,"props":6804,"children":6805},{"style":573},[6806],{"type":15,"value":6807}," ((VkPipelineStageFlagBits)",{"type":10,"tag":566,"props":6809,"children":6810},{"style":579},[6811],{"type":15,"value":4906},{"type":10,"tag":566,"props":6813,"children":6814},{"style":1456},[6815],{"type":15,"value":6816},"00020000",{"type":10,"tag":566,"props":6818,"children":6819},{"style":573},[6820],{"type":15,"value":4921},{"type":10,"tag":566,"props":6822,"children":6823},{"class":568,"line":590},[6824],{"type":10,"tag":566,"props":6825,"children":6827},{"emptyLinePlaceholder":6826},true,[6828],{"type":15,"value":6829},"\n",{"type":10,"tag":566,"props":6831,"children":6832},{"class":568,"line":599},[6833,6837,6842,6847,6851,6855],{"type":10,"tag":566,"props":6834,"children":6835},{"style":579},[6836],{"type":15,"value":4891},{"type":10,"tag":566,"props":6838,"children":6839},{"style":613},[6840],{"type":15,"value":6841}," VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_EXT",{"type":10,"tag":566,"props":6843,"children":6844},{"style":573},[6845],{"type":15,"value":6846}," ((VkAccessFlagBits)",{"type":10,"tag":566,"props":6848,"children":6849},{"style":579},[6850],{"type":15,"value":4906},{"type":10,"tag":566,"props":6852,"children":6853},{"style":1456},[6854],{"type":15,"value":6816},{"type":10,"tag":566,"props":6856,"children":6857},{"style":573},[6858],{"type":15,"value":4921},{"type":10,"tag":566,"props":6860,"children":6861},{"class":568,"line":650},[6862,6866,6871,6876,6880,6885],{"type":10,"tag":566,"props":6863,"children":6864},{"style":579},[6865],{"type":15,"value":4891},{"type":10,"tag":566,"props":6867,"children":6868},{"style":613},[6869],{"type":15,"value":6870}," VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_EXT",{"type":10,"tag":566,"props":6872,"children":6873},{"style":573},[6874],{"type":15,"value":6875}," ((VkAccessFlagBits)",{"type":10,"tag":566,"props":6877,"children":6878},{"style":579},[6879],{"type":15,"value":4906},{"type":10,"tag":566,"props":6881,"children":6882},{"style":1456},[6883],{"type":15,"value":6884},"00040000",{"type":10,"tag":566,"props":6886,"children":6887},{"style":573},[6888],{"type":15,"value":4921},{"type":10,"tag":29,"props":6890,"children":6891},{},[6892,6909,6934],{"type":10,"tag":33,"props":6893,"children":6894},{},[6895,6900,6902,6907],{"type":10,"tag":151,"props":6896,"children":6898},{"className":6897},[],[6899],{"type":15,"value":6497},{"type":15,"value":6901}," specifies the stage of the pipeline where device-side preprocessing for generated commands via ",{"type":10,"tag":151,"props":6903,"children":6905},{"className":6904},[],[6906],{"type":15,"value":955},{"type":15,"value":6908}," is handled.",{"type":10,"tag":33,"props":6910,"children":6911},{},[6912,6918,6920,6925,6927,6932],{"type":10,"tag":151,"props":6913,"children":6915},{"className":6914},[],[6916],{"type":15,"value":6917},"VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_EXT",{"type":15,"value":6919}," specifies reads from buffer inputs to ",{"type":10,"tag":151,"props":6921,"children":6923},{"className":6922},[],[6924],{"type":15,"value":955},{"type":15,"value":6926},". Such access occurs in the ",{"type":10,"tag":151,"props":6928,"children":6930},{"className":6929},[],[6931],{"type":15,"value":6497},{"type":15,"value":6933}," pipeline stage.",{"type":10,"tag":33,"props":6935,"children":6936},{},[6937,6943,6945,6950,6951,6956],{"type":10,"tag":151,"props":6938,"children":6940},{"className":6939},[],[6941],{"type":15,"value":6942},"VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_EXT",{"type":15,"value":6944}," specifies writes to preprocess outputs from ",{"type":10,"tag":151,"props":6946,"children":6948},{"className":6947},[],[6949],{"type":15,"value":955},{"type":15,"value":6926},{"type":10,"tag":151,"props":6952,"children":6954},{"className":6953},[],[6955],{"type":15,"value":6497},{"type":15,"value":6933},{"type":10,"tag":314,"props":6958,"children":6960},{"id":6959},"_generated_commands",[6961],{"type":15,"value":6962},"Generated Commands",{"type":10,"tag":11,"props":6964,"children":6965},{},[6966],{"type":15,"value":6967},"Device-generated commands are specified by:",{"type":10,"tag":555,"props":6969,"children":6971},{"className":557,"code":6970,"language":559,"meta":560,"style":560},"typedef struct VkGeneratedCommandsInfoEXT {\n VkStructureType sType;\n const void* pNext;\n VkShaderStageFlags shaderStages;\n VkIndirectExecutionSetEXT indirectExecutionSet;\n VkIndirectCommandsLayoutEXT indirectCommandsLayout;\n VkDeviceAddress indirectAddress;\n VkDeviceSize indirectAddressSize;\n VkDeviceAddress preprocessAddress;\n VkDeviceSize preprocessSize;\n uint32_t maxSequenceCount;\n VkDeviceAddress sequenceCountAddress;\n uint32_t maxDrawCount;\n} VkGeneratedCommandsInfoEXT;\n",[6972],{"type":10,"tag":151,"props":6973,"children":6974},{"__ignoreMap":560},[6975,6991,6999,7015,7023,7031,7039,7047,7055,7063,7071,7083,7091,7103],{"type":10,"tag":566,"props":6976,"children":6977},{"class":568,"line":569},[6978,6982,6986],{"type":10,"tag":566,"props":6979,"children":6980},{"style":579},[6981],{"type":15,"value":1299},{"type":10,"tag":566,"props":6983,"children":6984},{"style":579},[6985],{"type":15,"value":1304},{"type":10,"tag":566,"props":6987,"children":6988},{"style":573},[6989],{"type":15,"value":6990}," VkGeneratedCommandsInfoEXT {\n",{"type":10,"tag":566,"props":6992,"children":6993},{"class":568,"line":590},[6994],{"type":10,"tag":566,"props":6995,"children":6996},{"style":573},[6997],{"type":15,"value":6998}," VkStructureType sType;\n",{"type":10,"tag":566,"props":7000,"children":7001},{"class":568,"line":599},[7002,7006,7010],{"type":10,"tag":566,"props":7003,"children":7004},{"style":579},[7005],{"type":15,"value":1147},{"type":10,"tag":566,"props":7007,"children":7008},{"style":579},[7009],{"type":15,"value":1329},{"type":10,"tag":566,"props":7011,"children":7012},{"style":573},[7013],{"type":15,"value":7014}," pNext;\n",{"type":10,"tag":566,"props":7016,"children":7017},{"class":568,"line":650},[7018],{"type":10,"tag":566,"props":7019,"children":7020},{"style":573},[7021],{"type":15,"value":7022}," VkShaderStageFlags shaderStages;\n",{"type":10,"tag":566,"props":7024,"children":7025},{"class":568,"line":659},[7026],{"type":10,"tag":566,"props":7027,"children":7028},{"style":573},[7029],{"type":15,"value":7030}," VkIndirectExecutionSetEXT indirectExecutionSet;\n",{"type":10,"tag":566,"props":7032,"children":7033},{"class":568,"line":678},[7034],{"type":10,"tag":566,"props":7035,"children":7036},{"style":573},[7037],{"type":15,"value":7038}," VkIndirectCommandsLayoutEXT indirectCommandsLayout;\n",{"type":10,"tag":566,"props":7040,"children":7041},{"class":568,"line":697},[7042],{"type":10,"tag":566,"props":7043,"children":7044},{"style":573},[7045],{"type":15,"value":7046}," VkDeviceAddress indirectAddress;\n",{"type":10,"tag":566,"props":7048,"children":7049},{"class":568,"line":714},[7050],{"type":10,"tag":566,"props":7051,"children":7052},{"style":573},[7053],{"type":15,"value":7054}," VkDeviceSize indirectAddressSize;\n",{"type":10,"tag":566,"props":7056,"children":7057},{"class":568,"line":731},[7058],{"type":10,"tag":566,"props":7059,"children":7060},{"style":573},[7061],{"type":15,"value":7062}," VkDeviceAddress preprocessAddress;\n",{"type":10,"tag":566,"props":7064,"children":7065},{"class":568,"line":1951},[7066],{"type":10,"tag":566,"props":7067,"children":7068},{"style":573},[7069],{"type":15,"value":7070}," VkDeviceSize preprocessSize;\n",{"type":10,"tag":566,"props":7072,"children":7073},{"class":568,"line":4698},[7074,7078],{"type":10,"tag":566,"props":7075,"children":7076},{"style":579},[7077],{"type":15,"value":1742},{"type":10,"tag":566,"props":7079,"children":7080},{"style":573},[7081],{"type":15,"value":7082}," maxSequenceCount;\n",{"type":10,"tag":566,"props":7084,"children":7085},{"class":568,"line":4707},[7086],{"type":10,"tag":566,"props":7087,"children":7088},{"style":573},[7089],{"type":15,"value":7090}," VkDeviceAddress sequenceCountAddress;\n",{"type":10,"tag":566,"props":7092,"children":7093},{"class":568,"line":4716},[7094,7098],{"type":10,"tag":566,"props":7095,"children":7096},{"style":579},[7097],{"type":15,"value":1742},{"type":10,"tag":566,"props":7099,"children":7100},{"style":573},[7101],{"type":15,"value":7102}," maxDrawCount;\n",{"type":10,"tag":566,"props":7104,"children":7105},{"class":568,"line":4725},[7106],{"type":10,"tag":566,"props":7107,"children":7108},{"style":573},[7109],{"type":15,"value":7110},"} VkGeneratedCommandsInfoEXT;\n",{"type":10,"tag":29,"props":7112,"children":7113},{},[7114,7124,7146,7162,7173,7184,7215,7233,7293,7310],{"type":10,"tag":33,"props":7115,"children":7116},{},[7117,7122],{"type":10,"tag":151,"props":7118,"children":7120},{"className":7119},[],[7121],{"type":15,"value":3262},{"type":15,"value":7123}," is the mask of shader stages used by the commands.",{"type":10,"tag":33,"props":7125,"children":7126},{},[7127,7132,7134,7139,7140,7145],{"type":10,"tag":151,"props":7128,"children":7130},{"className":7129},[],[7131],{"type":15,"value":2276},{"type":15,"value":7133}," is the indirect execution set to be used for binding shaders. If the token sequence contains a ",{"type":10,"tag":151,"props":7135,"children":7137},{"className":7136},[],[7138],{"type":15,"value":4067},{"type":15,"value":6427},{"type":10,"tag":151,"props":7141,"children":7143},{"className":7142},[],[7144],{"type":15,"value":6433},{"type":15,"value":301},{"type":10,"tag":33,"props":7147,"children":7148},{},[7149,7154,7155,7160],{"type":10,"tag":151,"props":7150,"children":7152},{"className":7151},[],[7153],{"type":15,"value":3630},{"type":15,"value":3264},{"type":10,"tag":151,"props":7156,"children":7158},{"className":7157},[],[7159],{"type":15,"value":892},{"type":15,"value":7161}," that specifies the command sequence data.",{"type":10,"tag":33,"props":7163,"children":7164},{},[7165,7171],{"type":10,"tag":151,"props":7166,"children":7168},{"className":7167},[],[7169],{"type":15,"value":7170},"indirectAddress",{"type":15,"value":7172}," is an address that holds the indirect buffer data.",{"type":10,"tag":33,"props":7174,"children":7175},{},[7176,7182],{"type":10,"tag":151,"props":7177,"children":7179},{"className":7178},[],[7180],{"type":15,"value":7181},"indirectAddressSize",{"type":15,"value":7183}," is the size of the address space that holds the indirect buffer data.",{"type":10,"tag":33,"props":7185,"children":7186},{},[7187,7193,7194,7199,7201,7206,7208,7213],{"type":10,"tag":151,"props":7188,"children":7190},{"className":7189},[],[7191],{"type":15,"value":7192},"preprocessAddress",{"type":15,"value":5208},{"type":10,"tag":151,"props":7195,"children":7197},{"className":7196},[],[7198],{"type":15,"value":923},{"type":15,"value":7200}," used for preprocessing the input data for execution. It must not be ",{"type":10,"tag":151,"props":7202,"children":7204},{"className":7203},[],[7205],{"type":15,"value":1378},{"type":15,"value":7207}," if ",{"type":10,"tag":151,"props":7209,"children":7211},{"className":7210},[],[7212],{"type":15,"value":943},{"type":15,"value":7214}," returns non-zero size.",{"type":10,"tag":33,"props":7216,"children":7217},{},[7218,7224,7226,7231],{"type":10,"tag":151,"props":7219,"children":7221},{"className":7220},[],[7222],{"type":15,"value":7223},"preprocessSize",{"type":15,"value":7225}," is the maximum byte size within the ",{"type":10,"tag":151,"props":7227,"children":7229},{"className":7228},[],[7230],{"type":15,"value":7192},{"type":15,"value":7232}," that is available for preprocessing.",{"type":10,"tag":33,"props":7234,"children":7235},{},[7236,7241,7243,7249,7251,7257,7259,7264,7266,7272,7274,7279,7280,7285,7286,7291],{"type":10,"tag":151,"props":7237,"children":7239},{"className":7238},[],[7240],{"type":15,"value":6459},{"type":15,"value":7242}," is used to determine the number of sequences to execute. If ",{"type":10,"tag":151,"props":7244,"children":7246},{"className":7245},[],[7247],{"type":15,"value":7248},"sequenceCountAddress",{"type":15,"value":7250}," is not ",{"type":10,"tag":151,"props":7252,"children":7254},{"className":7253},[],[7255],{"type":15,"value":7256},"NULL",{"type":15,"value":7258},", then ",{"type":10,"tag":151,"props":7260,"children":7262},{"className":7261},[],[7263],{"type":15,"value":6459},{"type":15,"value":7265}," is the maximum number of sequences that can be executed. The actual number is ",{"type":10,"tag":151,"props":7267,"children":7269},{"className":7268},[],[7270],{"type":15,"value":7271},"min(maxSequenceCount, *sequenceCountAddress)",{"type":15,"value":7273},". Otherwise if ",{"type":10,"tag":151,"props":7275,"children":7277},{"className":7276},[],[7278],{"type":15,"value":7248},{"type":15,"value":6521},{"type":10,"tag":151,"props":7281,"children":7283},{"className":7282},[],[7284],{"type":15,"value":7256},{"type":15,"value":7258},{"type":10,"tag":151,"props":7287,"children":7289},{"className":7288},[],[7290],{"type":15,"value":6459},{"type":15,"value":7292}," is the exact number of sequences to execute.",{"type":10,"tag":33,"props":7294,"children":7295},{},[7296,7301,7303,7308],{"type":10,"tag":151,"props":7297,"children":7299},{"className":7298},[],[7300],{"type":15,"value":7248},{"type":15,"value":7302}," specifies an optional physical address of a single ",{"type":10,"tag":151,"props":7304,"children":7306},{"className":7305},[],[7307],{"type":15,"value":3707},{"type":15,"value":7309}," value containing the requested number of sequences to execute.",{"type":10,"tag":33,"props":7311,"children":7312},{},[7313,7318,7319,7324,7325,7330],{"type":10,"tag":151,"props":7314,"children":7316},{"className":7315},[],[7317],{"type":15,"value":6470},{"type":15,"value":6472},{"type":10,"tag":151,"props":7320,"children":7322},{"className":7321},[],[7323],{"type":15,"value":6470},{"type":15,"value":6479},{"type":10,"tag":151,"props":7326,"children":7328},{"className":7327},[],[7329],{"type":15,"value":363},{"type":15,"value":6486},{"type":10,"tag":11,"props":7332,"children":7333},{},[7334,7336,7341,7342,7347,7349,7354,7355,7360],{"type":15,"value":7335},"When preprocessing, if ",{"type":10,"tag":151,"props":7337,"children":7339},{"className":7338},[],[7340],{"type":15,"value":2276},{"type":15,"value":6521},{"type":10,"tag":151,"props":7343,"children":7345},{"className":7344},[],[7346],{"type":15,"value":6433},{"type":15,"value":7348}," then pipeline or shader info must be passed through the pNext pointer using either a ",{"type":10,"tag":151,"props":7350,"children":7352},{"className":7351},[],[7353],{"type":15,"value":6534},{"type":15,"value":3308},{"type":10,"tag":151,"props":7356,"children":7358},{"className":7357},[],[7359],{"type":15,"value":6541},{"type":15,"value":6543},{"type":10,"tag":11,"props":7362,"children":7363},{},[7364],{"type":15,"value":7365},"The actual generation of commands as well as their execution on the device is handled as single action with:",{"type":10,"tag":555,"props":7367,"children":7369},{"className":557,"code":7368,"language":559,"meta":560,"style":560},"VKAPI_ATTR void VKAPI_CALL vkCmdExecuteGeneratedCommandsEXT(\n VkCommandBuffer commandBuffer,\n VkBool32 isPreprocessed,\n const VkGeneratedCommandsInfoEXT* pGeneratedCommandsInfo);\n",[7370],{"type":10,"tag":151,"props":7371,"children":7372},{"__ignoreMap":560},[7373,7396,7413,7429],{"type":10,"tag":566,"props":7374,"children":7375},{"class":568,"line":569},[7376,7380,7384,7388,7392],{"type":10,"tag":566,"props":7377,"children":7378},{"style":573},[7379],{"type":15,"value":2229},{"type":10,"tag":566,"props":7381,"children":7382},{"style":579},[7383],{"type":15,"value":610},{"type":10,"tag":566,"props":7385,"children":7386},{"style":573},[7387],{"type":15,"value":2238},{"type":10,"tag":566,"props":7389,"children":7390},{"style":613},[7391],{"type":15,"value":968},{"type":10,"tag":566,"props":7393,"children":7394},{"style":573},[7395],{"type":15,"value":1121},{"type":10,"tag":566,"props":7397,"children":7398},{"class":568,"line":590},[7399,7404,7409],{"type":10,"tag":566,"props":7400,"children":7401},{"style":573},[7402],{"type":15,"value":7403}," VkCommandBuffer ",{"type":10,"tag":566,"props":7405,"children":7406},{"style":629},[7407],{"type":15,"value":7408},"commandBuffer",{"type":10,"tag":566,"props":7410,"children":7411},{"style":573},[7412],{"type":15,"value":1139},{"type":10,"tag":566,"props":7414,"children":7415},{"class":568,"line":599},[7416,7421,7425],{"type":10,"tag":566,"props":7417,"children":7418},{"style":573},[7419],{"type":15,"value":7420}," VkBool32 ",{"type":10,"tag":566,"props":7422,"children":7423},{"style":629},[7424],{"type":15,"value":3534},{"type":10,"tag":566,"props":7426,"children":7427},{"style":573},[7428],{"type":15,"value":1139},{"type":10,"tag":566,"props":7430,"children":7431},{"class":568,"line":650},[7432,7436,7441,7445,7450],{"type":10,"tag":566,"props":7433,"children":7434},{"style":579},[7435],{"type":15,"value":1147},{"type":10,"tag":566,"props":7437,"children":7438},{"style":573},[7439],{"type":15,"value":7440}," VkGeneratedCommandsInfoEXT",{"type":10,"tag":566,"props":7442,"children":7443},{"style":579},[7444],{"type":15,"value":1157},{"type":10,"tag":566,"props":7446,"children":7447},{"style":629},[7448],{"type":15,"value":7449}," pGeneratedCommandsInfo",{"type":10,"tag":566,"props":7451,"children":7452},{"style":573},[7453],{"type":15,"value":1213},{"type":10,"tag":29,"props":7455,"children":7456},{},[7457,7467,7498],{"type":10,"tag":33,"props":7458,"children":7459},{},[7460,7465],{"type":10,"tag":151,"props":7461,"children":7463},{"className":7462},[],[7464],{"type":15,"value":7408},{"type":15,"value":7466}," is the command buffer into which the command is recorded.",{"type":10,"tag":33,"props":7468,"children":7469},{},[7470,7475,7477,7482,7483,7488,7490,7496],{"type":10,"tag":151,"props":7471,"children":7473},{"className":7472},[],[7474],{"type":15,"value":3534},{"type":15,"value":7476}," represents whether the input data has been previously preprocessed on the device. If it is ",{"type":10,"tag":151,"props":7478,"children":7480},{"className":7479},[],[7481],{"type":15,"value":3542},{"type":15,"value":637},{"type":10,"tag":151,"props":7484,"children":7486},{"className":7485},[],[7487],{"type":15,"value":955},{"type":15,"value":7489}," must have been previously called. If it is ",{"type":10,"tag":151,"props":7491,"children":7493},{"className":7492},[],[7494],{"type":15,"value":7495},"VK_FALSE",{"type":15,"value":7497},", any necessary processing will be performed as part of this command.",{"type":10,"tag":33,"props":7499,"children":7500},{},[7501,7507,7508,7514],{"type":10,"tag":151,"props":7502,"children":7504},{"className":7503},[],[7505],{"type":15,"value":7506},"pGeneratedCommandsInfo",{"type":15,"value":1237},{"type":10,"tag":151,"props":7509,"children":7511},{"className":7510},[],[7512],{"type":15,"value":7513},"VkGeneratedCommandsInfoEXT",{"type":15,"value":7515}," structure containing parameters affecting the generation of commands.",{"type":10,"tag":11,"props":7517,"children":7518},{},[7519],{"type":15,"value":7520},"All state affected by executed tokens is undefined after this command. The view mask of an active rendering pass must be zero.",{"type":10,"tag":11,"props":7522,"children":7523},{},[7524],{"type":15,"value":7525},"Commands can be preprocessed prior execution using the following command:",{"type":10,"tag":555,"props":7527,"children":7529},{"className":557,"code":7528,"language":559,"meta":560,"style":560},"VKAPI_ATTR void VKAPI_CALL vkCmdPreprocessGeneratedCommandsEXT(\n VkCommandBuffer commandBuffer,\n const VkGeneratedCommandsInfoEXT* pGeneratedCommandsInfo,\n VkCommandBuffer stateCommandBuffer);\n",[7530],{"type":10,"tag":151,"props":7531,"children":7532},{"__ignoreMap":560},[7533,7556,7572,7595],{"type":10,"tag":566,"props":7534,"children":7535},{"class":568,"line":569},[7536,7540,7544,7548,7552],{"type":10,"tag":566,"props":7537,"children":7538},{"style":573},[7539],{"type":15,"value":2229},{"type":10,"tag":566,"props":7541,"children":7542},{"style":579},[7543],{"type":15,"value":610},{"type":10,"tag":566,"props":7545,"children":7546},{"style":573},[7547],{"type":15,"value":2238},{"type":10,"tag":566,"props":7549,"children":7550},{"style":613},[7551],{"type":15,"value":955},{"type":10,"tag":566,"props":7553,"children":7554},{"style":573},[7555],{"type":15,"value":1121},{"type":10,"tag":566,"props":7557,"children":7558},{"class":568,"line":590},[7559,7564,7568],{"type":10,"tag":566,"props":7560,"children":7561},{"style":573},[7562],{"type":15,"value":7563}," VkCommandBuffer ",{"type":10,"tag":566,"props":7565,"children":7566},{"style":629},[7567],{"type":15,"value":7408},{"type":10,"tag":566,"props":7569,"children":7570},{"style":573},[7571],{"type":15,"value":1139},{"type":10,"tag":566,"props":7573,"children":7574},{"class":568,"line":599},[7575,7579,7583,7587,7591],{"type":10,"tag":566,"props":7576,"children":7577},{"style":579},[7578],{"type":15,"value":1147},{"type":10,"tag":566,"props":7580,"children":7581},{"style":573},[7582],{"type":15,"value":7440},{"type":10,"tag":566,"props":7584,"children":7585},{"style":579},[7586],{"type":15,"value":1157},{"type":10,"tag":566,"props":7588,"children":7589},{"style":629},[7590],{"type":15,"value":7449},{"type":10,"tag":566,"props":7592,"children":7593},{"style":573},[7594],{"type":15,"value":1139},{"type":10,"tag":566,"props":7596,"children":7597},{"class":568,"line":650},[7598,7602,7607],{"type":10,"tag":566,"props":7599,"children":7600},{"style":573},[7601],{"type":15,"value":7563},{"type":10,"tag":566,"props":7603,"children":7604},{"style":629},[7605],{"type":15,"value":7606},"stateCommandBuffer",{"type":10,"tag":566,"props":7608,"children":7609},{"style":573},[7610],{"type":15,"value":1213},{"type":10,"tag":29,"props":7612,"children":7613},{},[7614,7624,7640],{"type":10,"tag":33,"props":7615,"children":7616},{},[7617,7622],{"type":10,"tag":151,"props":7618,"children":7620},{"className":7619},[],[7621],{"type":15,"value":7408},{"type":15,"value":7623}," is the command buffer which does the preprocessing.",{"type":10,"tag":33,"props":7625,"children":7626},{},[7627,7632,7633,7638],{"type":10,"tag":151,"props":7628,"children":7630},{"className":7629},[],[7631],{"type":15,"value":7506},{"type":15,"value":1237},{"type":10,"tag":151,"props":7634,"children":7636},{"className":7635},[],[7637],{"type":15,"value":7513},{"type":15,"value":7639}," structure containing parameters affecting the preprocessing step.",{"type":10,"tag":33,"props":7641,"children":7642},{},[7643,7648],{"type":10,"tag":151,"props":7644,"children":7646},{"className":7645},[],[7647],{"type":15,"value":7606},{"type":15,"value":7649}," is an command buffer from which to pull state affecting the preprocessing step.",{"type":10,"tag":11,"props":7651,"children":7652},{},[7653,7655,7660,7662,7667],{"type":15,"value":7654},"Explicitly preprocessing the indirect buffer provides more control over the scheduling of work. If not performed, the implementation may still have additional work to do that is deferred to execution time.\nThe bound state in ",{"type":10,"tag":151,"props":7656,"children":7658},{"className":7657},[],[7659],{"type":15,"value":7606},{"type":15,"value":7661}," must be identical to the state bound at the time ",{"type":10,"tag":151,"props":7663,"children":7665},{"className":7664},[],[7666],{"type":15,"value":968},{"type":15,"value":7668}," is recorded.",{"type":10,"tag":242,"props":7670,"children":7672},{"id":7671},"_features",[7673],{"type":15,"value":7674},"Features",{"type":10,"tag":11,"props":7676,"children":7677},{},[7678],{"type":15,"value":7679},"The following features are exposed by this extension:",{"type":10,"tag":555,"props":7681,"children":7683},{"className":557,"code":7682,"language":559,"meta":560,"style":560},"typedef struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT\n{\n VkStructureType sType;\n const void* pNext;\n VkBool32 deviceGeneratedCommands;\n VkBool32 dynamicGeneratedPipelineLayout;\n} VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT;\n",[7684],{"type":10,"tag":151,"props":7685,"children":7686},{"__ignoreMap":560},[7687,7703,7710,7718,7734,7742,7750],{"type":10,"tag":566,"props":7688,"children":7689},{"class":568,"line":569},[7690,7694,7698],{"type":10,"tag":566,"props":7691,"children":7692},{"style":579},[7693],{"type":15,"value":1299},{"type":10,"tag":566,"props":7695,"children":7696},{"style":579},[7697],{"type":15,"value":1304},{"type":10,"tag":566,"props":7699,"children":7700},{"style":573},[7701],{"type":15,"value":7702}," VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT\n",{"type":10,"tag":566,"props":7704,"children":7705},{"class":568,"line":590},[7706],{"type":10,"tag":566,"props":7707,"children":7708},{"style":573},[7709],{"type":15,"value":1435},{"type":10,"tag":566,"props":7711,"children":7712},{"class":568,"line":599},[7713],{"type":10,"tag":566,"props":7714,"children":7715},{"style":573},[7716],{"type":15,"value":7717}," VkStructureType sType;\n",{"type":10,"tag":566,"props":7719,"children":7720},{"class":568,"line":650},[7721,7725,7729],{"type":10,"tag":566,"props":7722,"children":7723},{"style":579},[7724],{"type":15,"value":1147},{"type":10,"tag":566,"props":7726,"children":7727},{"style":579},[7728],{"type":15,"value":1329},{"type":10,"tag":566,"props":7730,"children":7731},{"style":573},[7732],{"type":15,"value":7733}," pNext;\n",{"type":10,"tag":566,"props":7735,"children":7736},{"class":568,"line":659},[7737],{"type":10,"tag":566,"props":7738,"children":7739},{"style":573},[7740],{"type":15,"value":7741}," VkBool32 deviceGeneratedCommands;\n",{"type":10,"tag":566,"props":7743,"children":7744},{"class":568,"line":678},[7745],{"type":10,"tag":566,"props":7746,"children":7747},{"style":573},[7748],{"type":15,"value":7749}," VkBool32 dynamicGeneratedPipelineLayout;\n",{"type":10,"tag":566,"props":7751,"children":7752},{"class":568,"line":697},[7753],{"type":10,"tag":566,"props":7754,"children":7755},{"style":573},[7756],{"type":15,"value":7757},"} VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT;\n",{"type":10,"tag":29,"props":7759,"children":7760},{},[7761,7772],{"type":10,"tag":33,"props":7762,"children":7763},{},[7764,7770],{"type":10,"tag":151,"props":7765,"children":7767},{"className":7766},[],[7768],{"type":15,"value":7769},"deviceGeneratedCommands",{"type":15,"value":7771}," is the core feature enabling the extension",{"type":10,"tag":33,"props":7773,"children":7774},{},[7775,7780,7782,7787,7788,7793,7795,7800,7802,7807,7809],{"type":10,"tag":151,"props":7776,"children":7778},{"className":7777},[],[7779],{"type":15,"value":3387},{"type":15,"value":7781}," enables passing a ",{"type":10,"tag":151,"props":7783,"children":7785},{"className":7784},[],[7786],{"type":15,"value":3371},{"type":15,"value":2185},{"type":10,"tag":151,"props":7789,"children":7791},{"className":7790},[],[7792],{"type":15,"value":3379},{"type":15,"value":7794}," of ",{"type":10,"tag":151,"props":7796,"children":7798},{"className":7797},[],[7799],{"type":15,"value":3072},{"type":15,"value":7801}," with a ",{"type":10,"tag":151,"props":7803,"children":7805},{"className":7804},[],[7806],{"type":15,"value":6433},{"type":15,"value":7808}," ",{"type":10,"tag":151,"props":7810,"children":7812},{"className":7811},[],[7813],{"type":15,"value":3292},{"type":10,"tag":242,"props":7815,"children":7817},{"id":7816},"_properties",[7818],{"type":15,"value":7819},"Properties",{"type":10,"tag":11,"props":7821,"children":7822},{},[7823],{"type":15,"value":7824},"The following properties are exposed by this extension:",{"type":10,"tag":555,"props":7826,"children":7828},{"className":557,"code":7827,"language":559,"meta":560,"style":560},"typedef struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT\n{\n VkStructureType sType;\n const void* pNext;\n uint32_t maxIndirectPipelineCount;\n uint32_t maxIndirectShaderObjectCount;\n uint32_t maxIndirectSequenceCount;\n uint32_t maxIndirectCommandsTokenCount;\n uint32_t maxIndirectCommandsTokenOffset;\n uint32_t maxIndirectCommandsIndirectStride;\n VkIndirectCommandsInputModeFlagsEXT supportedIndirectCommandsInputModes;\n VkShaderStageFlags supportedIndirectCommandsShaderStages;\n VkShaderStageFlags supportedIndirectCommandsShaderStagesPipelineBinding;\n VkShaderStageFlags supportedIndirectCommandsShaderStagesShaderBinding;\n VkBool32 deviceGeneratedCommandsTransformFeedback;\n VkBool32 deviceGeneratedCommandsMultiDrawIndirectCount;\n} VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT;\n",[7829],{"type":10,"tag":151,"props":7830,"children":7831},{"__ignoreMap":560},[7832,7848,7855,7862,7877,7889,7901,7913,7925,7937,7949,7957,7965,7973,7981,7989,7997],{"type":10,"tag":566,"props":7833,"children":7834},{"class":568,"line":569},[7835,7839,7843],{"type":10,"tag":566,"props":7836,"children":7837},{"style":579},[7838],{"type":15,"value":1299},{"type":10,"tag":566,"props":7840,"children":7841},{"style":579},[7842],{"type":15,"value":1304},{"type":10,"tag":566,"props":7844,"children":7845},{"style":573},[7846],{"type":15,"value":7847}," VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT\n",{"type":10,"tag":566,"props":7849,"children":7850},{"class":568,"line":590},[7851],{"type":10,"tag":566,"props":7852,"children":7853},{"style":573},[7854],{"type":15,"value":1435},{"type":10,"tag":566,"props":7856,"children":7857},{"class":568,"line":599},[7858],{"type":10,"tag":566,"props":7859,"children":7860},{"style":573},[7861],{"type":15,"value":7717},{"type":10,"tag":566,"props":7863,"children":7864},{"class":568,"line":650},[7865,7869,7873],{"type":10,"tag":566,"props":7866,"children":7867},{"style":579},[7868],{"type":15,"value":1147},{"type":10,"tag":566,"props":7870,"children":7871},{"style":579},[7872],{"type":15,"value":1329},{"type":10,"tag":566,"props":7874,"children":7875},{"style":573},[7876],{"type":15,"value":7733},{"type":10,"tag":566,"props":7878,"children":7879},{"class":568,"line":659},[7880,7884],{"type":10,"tag":566,"props":7881,"children":7882},{"style":579},[7883],{"type":15,"value":1742},{"type":10,"tag":566,"props":7885,"children":7886},{"style":573},[7887],{"type":15,"value":7888}," maxIndirectPipelineCount;\n",{"type":10,"tag":566,"props":7890,"children":7891},{"class":568,"line":678},[7892,7896],{"type":10,"tag":566,"props":7893,"children":7894},{"style":579},[7895],{"type":15,"value":1742},{"type":10,"tag":566,"props":7897,"children":7898},{"style":573},[7899],{"type":15,"value":7900}," maxIndirectShaderObjectCount;\n",{"type":10,"tag":566,"props":7902,"children":7903},{"class":568,"line":697},[7904,7908],{"type":10,"tag":566,"props":7905,"children":7906},{"style":579},[7907],{"type":15,"value":1742},{"type":10,"tag":566,"props":7909,"children":7910},{"style":573},[7911],{"type":15,"value":7912}," maxIndirectSequenceCount;\n",{"type":10,"tag":566,"props":7914,"children":7915},{"class":568,"line":714},[7916,7920],{"type":10,"tag":566,"props":7917,"children":7918},{"style":579},[7919],{"type":15,"value":1742},{"type":10,"tag":566,"props":7921,"children":7922},{"style":573},[7923],{"type":15,"value":7924}," maxIndirectCommandsTokenCount;\n",{"type":10,"tag":566,"props":7926,"children":7927},{"class":568,"line":731},[7928,7932],{"type":10,"tag":566,"props":7929,"children":7930},{"style":579},[7931],{"type":15,"value":1742},{"type":10,"tag":566,"props":7933,"children":7934},{"style":573},[7935],{"type":15,"value":7936}," maxIndirectCommandsTokenOffset;\n",{"type":10,"tag":566,"props":7938,"children":7939},{"class":568,"line":1951},[7940,7944],{"type":10,"tag":566,"props":7941,"children":7942},{"style":579},[7943],{"type":15,"value":1742},{"type":10,"tag":566,"props":7945,"children":7946},{"style":573},[7947],{"type":15,"value":7948}," maxIndirectCommandsIndirectStride;\n",{"type":10,"tag":566,"props":7950,"children":7951},{"class":568,"line":4698},[7952],{"type":10,"tag":566,"props":7953,"children":7954},{"style":573},[7955],{"type":15,"value":7956}," VkIndirectCommandsInputModeFlagsEXT supportedIndirectCommandsInputModes;\n",{"type":10,"tag":566,"props":7958,"children":7959},{"class":568,"line":4707},[7960],{"type":10,"tag":566,"props":7961,"children":7962},{"style":573},[7963],{"type":15,"value":7964}," VkShaderStageFlags supportedIndirectCommandsShaderStages;\n",{"type":10,"tag":566,"props":7966,"children":7967},{"class":568,"line":4716},[7968],{"type":10,"tag":566,"props":7969,"children":7970},{"style":573},[7971],{"type":15,"value":7972}," VkShaderStageFlags supportedIndirectCommandsShaderStagesPipelineBinding;\n",{"type":10,"tag":566,"props":7974,"children":7975},{"class":568,"line":4725},[7976],{"type":10,"tag":566,"props":7977,"children":7978},{"style":573},[7979],{"type":15,"value":7980}," VkShaderStageFlags supportedIndirectCommandsShaderStagesShaderBinding;\n",{"type":10,"tag":566,"props":7982,"children":7983},{"class":568,"line":4734},[7984],{"type":10,"tag":566,"props":7985,"children":7986},{"style":573},[7987],{"type":15,"value":7988}," VkBool32 deviceGeneratedCommandsTransformFeedback;\n",{"type":10,"tag":566,"props":7990,"children":7991},{"class":568,"line":4743},[7992],{"type":10,"tag":566,"props":7993,"children":7994},{"style":573},[7995],{"type":15,"value":7996}," VkBool32 deviceGeneratedCommandsMultiDrawIndirectCount;\n",{"type":10,"tag":566,"props":7998,"children":7999},{"class":568,"line":4752},[8000],{"type":10,"tag":566,"props":8001,"children":8002},{"style":573},[8003],{"type":15,"value":8004},"} VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT;\n",{"type":10,"tag":11,"props":8006,"children":8007},{},[8008],{"type":15,"value":8009},"The following limits affect indirect execution set creation:",{"type":10,"tag":29,"props":8011,"children":8012},{},[8013,8024,8035,8046],{"type":10,"tag":33,"props":8014,"children":8015},{},[8016,8022],{"type":10,"tag":151,"props":8017,"children":8019},{"className":8018},[],[8020],{"type":15,"value":8021},"maxIndirectPipelineCount",{"type":15,"value":8023}," indicates the maximum number of pipelines that can be stored in an indirect execution set.",{"type":10,"tag":33,"props":8025,"children":8026},{},[8027,8033],{"type":10,"tag":151,"props":8028,"children":8030},{"className":8029},[],[8031],{"type":15,"value":8032},"maxIndirectShaderObjectCount",{"type":15,"value":8034}," indicates the maximum number of shader objects that can be stored in an indirect execution set.",{"type":10,"tag":33,"props":8036,"children":8037},{},[8038,8044],{"type":10,"tag":151,"props":8039,"children":8041},{"className":8040},[],[8042],{"type":15,"value":8043},"supportedIndirectCommandsShaderStagesPipelineBinding",{"type":15,"value":8045}," is a bitmask of the shader stages which can be used within indirect execution sets comprised of pipelines.",{"type":10,"tag":33,"props":8047,"children":8048},{},[8049,8055],{"type":10,"tag":151,"props":8050,"children":8052},{"className":8051},[],[8053],{"type":15,"value":8054},"supportedIndirectCommandsShaderStagesShaderBinding",{"type":15,"value":8056}," is a bitmask of the shader stages which can be used within indirect execution sets comprised of shader objects.",{"type":10,"tag":11,"props":8058,"children":8059},{},[8060],{"type":15,"value":8061},"The following limits affect indirect command layout creation:",{"type":10,"tag":29,"props":8063,"children":8064},{},[8065,8076,8087],{"type":10,"tag":33,"props":8066,"children":8067},{},[8068,8074],{"type":10,"tag":151,"props":8069,"children":8071},{"className":8070},[],[8072],{"type":15,"value":8073},"maxIndirectCommandsTokenCount",{"type":15,"value":8075}," indicates the maximum number of tokens in a sequence.",{"type":10,"tag":33,"props":8077,"children":8078},{},[8079,8085],{"type":10,"tag":151,"props":8080,"children":8082},{"className":8081},[],[8083],{"type":15,"value":8084},"maxIndirectCommandsTokenOffset",{"type":15,"value":8086}," indicates the maximum byte offset of a token within a sequence.",{"type":10,"tag":33,"props":8088,"children":8089},{},[8090,8096],{"type":10,"tag":151,"props":8091,"children":8093},{"className":8092},[],[8094],{"type":15,"value":8095},"supportedIndirectCommandsInputModes",{"type":15,"value":8097}," indicates the supported index buffer modes.",{"type":10,"tag":11,"props":8099,"children":8100},{},[8101],{"type":15,"value":8102},"The following limits affect indirect command execution:",{"type":10,"tag":29,"props":8104,"children":8105},{},[8106,8117],{"type":10,"tag":33,"props":8107,"children":8108},{},[8109,8115],{"type":10,"tag":151,"props":8110,"children":8112},{"className":8111},[],[8113],{"type":15,"value":8114},"maxIndirectSequenceCount",{"type":15,"value":8116}," indicates the maximum number of sequences that can executed.",{"type":10,"tag":33,"props":8118,"children":8119},{},[8120,8126],{"type":10,"tag":151,"props":8121,"children":8123},{"className":8122},[],[8124],{"type":15,"value":8125},"maxIndirectCommandsIndirectStride",{"type":15,"value":8127}," indicates the maximum stride that can be used for the indirect buffer.",{"type":10,"tag":11,"props":8129,"children":8130},{},[8131,8132,8138,8140,8146],{"type":15,"value":5758},{"type":10,"tag":151,"props":8133,"children":8135},{"className":8134},[],[8136],{"type":15,"value":8137},"VK_EXT_transform_feedback",{"type":15,"value":8139}," is also enabled, ",{"type":10,"tag":151,"props":8141,"children":8143},{"className":8142},[],[8144],{"type":15,"value":8145},"deviceGeneratedCommandsTransformFeedback",{"type":15,"value":8147}," enables the use of Transform Feedback with indirect execution.",{"type":10,"tag":11,"props":8149,"children":8150},{},[8151,8157],{"type":10,"tag":151,"props":8152,"children":8154},{"className":8153},[],[8155],{"type":15,"value":8156},"supportedIndirectCommandsShaderStages",{"type":15,"value":8158}," is a bitmask of the shader stages which can be active while executing indirect commands as well as the use of certain tokens.",{"type":10,"tag":29,"props":8160,"children":8161},{},[8162],{"type":10,"tag":33,"props":8163,"children":8164},{},[8165,8170,8171,8177],{"type":10,"tag":151,"props":8166,"children":8168},{"className":8167},[],[8169],{"type":15,"value":3306},{"type":15,"value":293},{"type":10,"tag":151,"props":8172,"children":8174},{"className":8173},[],[8175],{"type":15,"value":8176},"VK_INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT`",{"type":15,"value":8178}," are always supported for the specified stages.",{"type":10,"tag":11,"props":8180,"children":8181},{},[8182,8188],{"type":10,"tag":151,"props":8183,"children":8185},{"className":8184},[],[8186],{"type":15,"value":8187},"VK_SHADER_STAGE_VERTEX_BIT | VK_SHADER_STAGE_FRAGMENT_BIT",{"type":15,"value":8189}," enables use of these tokens:",{"type":10,"tag":29,"props":8191,"children":8192},{},[8193,8201,8209,8217,8225,8242],{"type":10,"tag":33,"props":8194,"children":8195},{},[8196],{"type":10,"tag":151,"props":8197,"children":8199},{"className":8198},[],[8200],{"type":15,"value":4244},{"type":10,"tag":33,"props":8202,"children":8203},{},[8204],{"type":10,"tag":151,"props":8205,"children":8207},{"className":8206},[],[8208],{"type":15,"value":4273},{"type":10,"tag":33,"props":8210,"children":8211},{},[8212],{"type":10,"tag":151,"props":8213,"children":8215},{"className":8214},[],[8216],{"type":15,"value":4322},{"type":10,"tag":33,"props":8218,"children":8219},{},[8220],{"type":10,"tag":151,"props":8221,"children":8223},{"className":8222},[],[8224],{"type":15,"value":4351},{"type":10,"tag":33,"props":8226,"children":8227},{},[8228,8233,8234,8240],{"type":10,"tag":151,"props":8229,"children":8231},{"className":8230},[],[8232],{"type":15,"value":4457},{"type":15,"value":7207},{"type":10,"tag":151,"props":8235,"children":8237},{"className":8236},[],[8238],{"type":15,"value":8239},"deviceGeneratedCommandsMultiDrawIndirectCount",{"type":15,"value":8241}," is supported",{"type":10,"tag":33,"props":8243,"children":8244},{},[8245,8250,8251,8256],{"type":10,"tag":151,"props":8246,"children":8248},{"className":8247},[],[8249],{"type":15,"value":4492},{"type":15,"value":7207},{"type":10,"tag":151,"props":8252,"children":8254},{"className":8253},[],[8255],{"type":15,"value":8239},{"type":15,"value":8241},{"type":10,"tag":11,"props":8258,"children":8259},{},[8260,8261,8266,8268,8274],{"type":15,"value":5758},{"type":10,"tag":151,"props":8262,"children":8264},{"className":8263},[],[8265],{"type":15,"value":5764},{"type":15,"value":8267}," extension is also enabled, ",{"type":10,"tag":151,"props":8269,"children":8271},{"className":8270},[],[8272],{"type":15,"value":8273},"VK_SHADER_STAGE_FRAGMENT_BIT | VK_SHADER_STAGE_MESH_BIT_EXT",{"type":15,"value":8189},{"type":10,"tag":29,"props":8276,"children":8277},{},[8278,8286],{"type":10,"tag":33,"props":8279,"children":8280},{},[8281],{"type":10,"tag":151,"props":8282,"children":8284},{"className":8283},[],[8285],{"type":15,"value":4379},{"type":10,"tag":33,"props":8287,"children":8288},{},[8289,8294,8295,8300],{"type":10,"tag":151,"props":8290,"children":8292},{"className":8291},[],[8293],{"type":15,"value":4525},{"type":15,"value":7207},{"type":10,"tag":151,"props":8296,"children":8298},{"className":8297},[],[8299],{"type":15,"value":8239},{"type":15,"value":8241},{"type":10,"tag":11,"props":8302,"children":8303},{},[8304,8305,8310,8311,8317],{"type":15,"value":5758},{"type":10,"tag":151,"props":8306,"children":8308},{"className":8307},[],[8309],{"type":15,"value":5788},{"type":15,"value":8267},{"type":10,"tag":151,"props":8312,"children":8314},{"className":8313},[],[8315],{"type":15,"value":8316},"VK_SHADER_STAGE_FRAGMENT_BIT | VK_SHADER_STAGE_MESH_BIT_NV",{"type":15,"value":8189},{"type":10,"tag":29,"props":8319,"children":8320},{},[8321,8329],{"type":10,"tag":33,"props":8322,"children":8323},{},[8324],{"type":10,"tag":151,"props":8325,"children":8327},{"className":8326},[],[8328],{"type":15,"value":4408},{"type":10,"tag":33,"props":8330,"children":8331},{},[8332,8337,8338,8343],{"type":10,"tag":151,"props":8333,"children":8335},{"className":8334},[],[8336],{"type":15,"value":4558},{"type":15,"value":7207},{"type":10,"tag":151,"props":8339,"children":8341},{"className":8340},[],[8342],{"type":15,"value":8239},{"type":15,"value":8241},{"type":10,"tag":11,"props":8345,"children":8346},{},[8347,8353],{"type":10,"tag":151,"props":8348,"children":8350},{"className":8349},[],[8351],{"type":15,"value":8352},"VK_SHADER_STAGE_COMPUTE_BIT",{"type":15,"value":8189},{"type":10,"tag":29,"props":8355,"children":8356},{},[8357],{"type":10,"tag":33,"props":8358,"children":8359},{},[8360],{"type":10,"tag":151,"props":8361,"children":8363},{"className":8362},[],[8364],{"type":15,"value":4147},{"type":10,"tag":11,"props":8366,"children":8367},{},[8368,8369,8374],{"type":15,"value":5758},{"type":10,"tag":151,"props":8370,"children":8372},{"className":8371},[],[8373],{"type":15,"value":6110},{"type":15,"value":8375}," is also enabled, the presence of ray tracing stages enables use of these tokens:",{"type":10,"tag":29,"props":8377,"children":8378},{},[8379],{"type":10,"tag":33,"props":8380,"children":8381},{},[8382],{"type":10,"tag":151,"props":8383,"children":8385},{"className":8384},[],[8386],{"type":15,"value":4195},{"type":10,"tag":242,"props":8388,"children":8390},{"id":8389},"_d3d12_emulation",[8391],{"type":15,"value":8392},"D3D12 Emulation",{"type":10,"tag":314,"props":8394,"children":8396},{"id":8395},"_argument_structures",[8397],{"type":15,"value":8398},"Argument Structures",{"type":10,"tag":11,"props":8400,"children":8401},{},[8402],{"type":15,"value":8403},"Most structures have direct equivalents:",{"type":10,"tag":3992,"props":8405,"children":8407},{"className":8406},[3995,3996,3997,3998],[8408,8417],{"type":10,"tag":4001,"props":8409,"children":8410},{},[8411,8414],{"type":10,"tag":4005,"props":8412,"children":8413},{"style":4007},[],{"type":10,"tag":4005,"props":8415,"children":8416},{"style":4007},[],{"type":10,"tag":4013,"props":8418,"children":8419},{},[8420,8449,8477,8505,8533,8560],{"type":10,"tag":4017,"props":8421,"children":8422},{},[8423,8436],{"type":10,"tag":4021,"props":8424,"children":8426},{"className":8425},[3995,4024,4025],[8427],{"type":10,"tag":11,"props":8428,"children":8430},{"className":8429},[3995],[8431],{"type":10,"tag":4032,"props":8432,"children":8433},{"role":4034},[8434],{"type":15,"value":8435},"D3D12 type",{"type":10,"tag":4021,"props":8437,"children":8439},{"className":8438},[3995,4024,4025],[8440],{"type":10,"tag":11,"props":8441,"children":8443},{"className":8442},[3995],[8444],{"type":10,"tag":4032,"props":8445,"children":8446},{"role":4034},[8447],{"type":15,"value":8448},"Vulkan type",{"type":10,"tag":4017,"props":8450,"children":8451},{},[8452,8465],{"type":10,"tag":4021,"props":8453,"children":8455},{"className":8454},[3995,4024,4025],[8456],{"type":10,"tag":11,"props":8457,"children":8459},{"className":8458},[3995],[8460],{"type":10,"tag":4063,"props":8461,"children":8462},{},[8463],{"type":15,"value":8464},"D3D12_DRAW_ARGUMENTS",{"type":10,"tag":4021,"props":8466,"children":8468},{"className":8467},[3995,4024,4025],[8469],{"type":10,"tag":11,"props":8470,"children":8472},{"className":8471},[3995],[8473],{"type":10,"tag":4063,"props":8474,"children":8475},{},[8476],{"type":15,"value":3715},{"type":10,"tag":4017,"props":8478,"children":8479},{},[8480,8493],{"type":10,"tag":4021,"props":8481,"children":8483},{"className":8482},[3995,4024,4025],[8484],{"type":10,"tag":11,"props":8485,"children":8487},{"className":8486},[3995],[8488],{"type":10,"tag":4063,"props":8489,"children":8490},{},[8491],{"type":15,"value":8492},"D3D12_DRAW_INDEXED_ARGUMENTS",{"type":10,"tag":4021,"props":8494,"children":8496},{"className":8495},[3995,4024,4025],[8497],{"type":10,"tag":11,"props":8498,"children":8500},{"className":8499},[3995],[8501],{"type":10,"tag":4063,"props":8502,"children":8503},{},[8504],{"type":15,"value":4335},{"type":10,"tag":4017,"props":8506,"children":8507},{},[8508,8521],{"type":10,"tag":4021,"props":8509,"children":8511},{"className":8510},[3995,4024,4025],[8512],{"type":10,"tag":11,"props":8513,"children":8515},{"className":8514},[3995],[8516],{"type":10,"tag":4063,"props":8517,"children":8518},{},[8519],{"type":15,"value":8520},"D3D12_DISPATCH_ARGUMENTS",{"type":10,"tag":4021,"props":8522,"children":8524},{"className":8523},[3995,4024,4025],[8525],{"type":10,"tag":11,"props":8526,"children":8528},{"className":8527},[3995],[8529],{"type":10,"tag":4063,"props":8530,"children":8531},{},[8532],{"type":15,"value":3853},{"type":10,"tag":4017,"props":8534,"children":8535},{},[8536,8548],{"type":10,"tag":4021,"props":8537,"children":8539},{"className":8538},[3995,4024,4025],[8540],{"type":10,"tag":11,"props":8541,"children":8543},{"className":8542},[3995],[8544],{"type":10,"tag":4063,"props":8545,"children":8546},{},[8547],{"type":15,"value":5462},{"type":10,"tag":4021,"props":8549,"children":8551},{"className":8550},[3995,4024,4025],[8552],{"type":10,"tag":11,"props":8553,"children":8555},{"className":8554},[3995],[8556],{"type":10,"tag":4063,"props":8557,"children":8558},{},[8559],{"type":15,"value":4257},{"type":10,"tag":4017,"props":8561,"children":8562},{},[8563,8575],{"type":10,"tag":4021,"props":8564,"children":8566},{"className":8565},[3995,4024,4025],[8567],{"type":10,"tag":11,"props":8568,"children":8570},{"className":8569},[3995],[8571],{"type":10,"tag":4063,"props":8572,"children":8573},{},[8574],{"type":15,"value":5704},{"type":10,"tag":4021,"props":8576,"children":8578},{"className":8577},[3995,4024,4025],[8579],{"type":10,"tag":11,"props":8580,"children":8582},{"className":8581},[3995],[8583],{"type":10,"tag":4063,"props":8584,"children":8585},{},[8586],{"type":15,"value":4286},{"type":10,"tag":11,"props":8588,"children":8589},{},[8590],{"type":15,"value":8591},"Binding of views or constants require translation due to mismatches between the APIs.",{"type":10,"tag":314,"props":8593,"children":8595},{"id":8594},"_indirect_argument_type",[8596],{"type":15,"value":8597},"Indirect Argument Type",{"type":10,"tag":11,"props":8599,"children":8600},{},[8601,8603,8608],{"type":15,"value":8602},"Maps to ",{"type":10,"tag":151,"props":8604,"children":8606},{"className":8605},[],[8607],{"type":15,"value":3351},{"type":15,"value":8609},":",{"type":10,"tag":3992,"props":8611,"children":8613},{"className":8612},[3995,3996,3997,3998],[8614,8623],{"type":10,"tag":4001,"props":8615,"children":8616},{},[8617,8620],{"type":10,"tag":4005,"props":8618,"children":8619},{"style":4007},[],{"type":10,"tag":4005,"props":8621,"children":8622},{"style":4007},[],{"type":10,"tag":4013,"props":8624,"children":8625},{},[8626,8655,8683,8711,8739,8767,8795,8823,8851,8879,8907,8935],{"type":10,"tag":4017,"props":8627,"children":8628},{},[8629,8642],{"type":10,"tag":4021,"props":8630,"children":8632},{"className":8631},[3995,4024,4025],[8633],{"type":10,"tag":11,"props":8634,"children":8636},{"className":8635},[3995],[8637],{"type":10,"tag":4032,"props":8638,"children":8639},{"role":4034},[8640],{"type":15,"value":8641},"D3D12 value",{"type":10,"tag":4021,"props":8643,"children":8645},{"className":8644},[3995,4024,4025],[8646],{"type":10,"tag":11,"props":8647,"children":8649},{"className":8648},[3995],[8650],{"type":10,"tag":4032,"props":8651,"children":8652},{"role":4034},[8653],{"type":15,"value":8654},"Vulkan value",{"type":10,"tag":4017,"props":8656,"children":8657},{},[8658,8671],{"type":10,"tag":4021,"props":8659,"children":8661},{"className":8660},[3995,4024,4025],[8662],{"type":10,"tag":11,"props":8663,"children":8665},{"className":8664},[3995],[8666],{"type":10,"tag":4063,"props":8667,"children":8668},{},[8669],{"type":15,"value":8670},"D3D12_INDIRECT_ARGUMENT_TYPE_DRAW",{"type":10,"tag":4021,"props":8672,"children":8674},{"className":8673},[3995,4024,4025],[8675],{"type":10,"tag":11,"props":8676,"children":8678},{"className":8677},[3995],[8679],{"type":10,"tag":4063,"props":8680,"children":8681},{},[8682],{"type":15,"value":4351},{"type":10,"tag":4017,"props":8684,"children":8685},{},[8686,8699],{"type":10,"tag":4021,"props":8687,"children":8689},{"className":8688},[3995,4024,4025],[8690],{"type":10,"tag":11,"props":8691,"children":8693},{"className":8692},[3995],[8694],{"type":10,"tag":4063,"props":8695,"children":8696},{},[8697],{"type":15,"value":8698},"D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED",{"type":10,"tag":4021,"props":8700,"children":8702},{"className":8701},[3995,4024,4025],[8703],{"type":10,"tag":11,"props":8704,"children":8706},{"className":8705},[3995],[8707],{"type":10,"tag":4063,"props":8708,"children":8709},{},[8710],{"type":15,"value":4322},{"type":10,"tag":4017,"props":8712,"children":8713},{},[8714,8727],{"type":10,"tag":4021,"props":8715,"children":8717},{"className":8716},[3995,4024,4025],[8718],{"type":10,"tag":11,"props":8719,"children":8721},{"className":8720},[3995],[8722],{"type":10,"tag":4063,"props":8723,"children":8724},{},[8725],{"type":15,"value":8726},"D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH",{"type":10,"tag":4021,"props":8728,"children":8730},{"className":8729},[3995,4024,4025],[8731],{"type":10,"tag":11,"props":8732,"children":8734},{"className":8733},[3995],[8735],{"type":10,"tag":4063,"props":8736,"children":8737},{},[8738],{"type":15,"value":4147},{"type":10,"tag":4017,"props":8740,"children":8741},{},[8742,8755],{"type":10,"tag":4021,"props":8743,"children":8745},{"className":8744},[3995,4024,4025],[8746],{"type":10,"tag":11,"props":8747,"children":8749},{"className":8748},[3995],[8750],{"type":10,"tag":4063,"props":8751,"children":8752},{},[8753],{"type":15,"value":8754},"D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW",{"type":10,"tag":4021,"props":8756,"children":8758},{"className":8757},[3995,4024,4025],[8759],{"type":10,"tag":11,"props":8760,"children":8762},{"className":8761},[3995],[8763],{"type":10,"tag":4063,"props":8764,"children":8765},{},[8766],{"type":15,"value":4273},{"type":10,"tag":4017,"props":8768,"children":8769},{},[8770,8783],{"type":10,"tag":4021,"props":8771,"children":8773},{"className":8772},[3995,4024,4025],[8774],{"type":10,"tag":11,"props":8775,"children":8777},{"className":8776},[3995],[8778],{"type":10,"tag":4063,"props":8779,"children":8780},{},[8781],{"type":15,"value":8782},"D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW",{"type":10,"tag":4021,"props":8784,"children":8786},{"className":8785},[3995,4024,4025],[8787],{"type":10,"tag":11,"props":8788,"children":8790},{"className":8789},[3995],[8791],{"type":10,"tag":4063,"props":8792,"children":8793},{},[8794],{"type":15,"value":4244},{"type":10,"tag":4017,"props":8796,"children":8797},{},[8798,8811],{"type":10,"tag":4021,"props":8799,"children":8801},{"className":8800},[3995,4024,4025],[8802],{"type":10,"tag":11,"props":8803,"children":8805},{"className":8804},[3995],[8806],{"type":10,"tag":4063,"props":8807,"children":8808},{},[8809],{"type":15,"value":8810},"D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT",{"type":10,"tag":4021,"props":8812,"children":8814},{"className":8813},[3995,4024,4025],[8815],{"type":10,"tag":11,"props":8816,"children":8818},{"className":8817},[3995],[8819],{"type":10,"tag":4063,"props":8820,"children":8821},{},[8822],{"type":15,"value":3306},{"type":10,"tag":4017,"props":8824,"children":8825},{},[8826,8839],{"type":10,"tag":4021,"props":8827,"children":8829},{"className":8828},[3995,4024,4025],[8830],{"type":10,"tag":11,"props":8831,"children":8833},{"className":8832},[3995],[8834],{"type":10,"tag":4063,"props":8835,"children":8836},{},[8837],{"type":15,"value":8838},"D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW",{"type":10,"tag":4021,"props":8840,"children":8842},{"className":8841},[3995,4024,4025],[8843],{"type":10,"tag":11,"props":8844,"children":8846},{"className":8845},[3995],[8847],{"type":10,"tag":4063,"props":8848,"children":8849},{},[8850],{"type":15,"value":3306},{"type":10,"tag":4017,"props":8852,"children":8853},{},[8854,8867],{"type":10,"tag":4021,"props":8855,"children":8857},{"className":8856},[3995,4024,4025],[8858],{"type":10,"tag":11,"props":8859,"children":8861},{"className":8860},[3995],[8862],{"type":10,"tag":4063,"props":8863,"children":8864},{},[8865],{"type":15,"value":8866},"D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW",{"type":10,"tag":4021,"props":8868,"children":8870},{"className":8869},[3995,4024,4025],[8871],{"type":10,"tag":11,"props":8872,"children":8874},{"className":8873},[3995],[8875],{"type":10,"tag":4063,"props":8876,"children":8877},{},[8878],{"type":15,"value":3306},{"type":10,"tag":4017,"props":8880,"children":8881},{},[8882,8895],{"type":10,"tag":4021,"props":8883,"children":8885},{"className":8884},[3995,4024,4025],[8886],{"type":10,"tag":11,"props":8887,"children":8889},{"className":8888},[3995],[8890],{"type":10,"tag":4063,"props":8891,"children":8892},{},[8893],{"type":15,"value":8894},"D3D12_INDIRECT_ARGUMENT_TYPE_UNORDERED_ACCESS_VIEW",{"type":10,"tag":4021,"props":8896,"children":8898},{"className":8897},[3995,4024,4025],[8899],{"type":10,"tag":11,"props":8900,"children":8902},{"className":8901},[3995],[8903],{"type":10,"tag":4063,"props":8904,"children":8905},{},[8906],{"type":15,"value":3306},{"type":10,"tag":4017,"props":8908,"children":8909},{},[8910,8923],{"type":10,"tag":4021,"props":8911,"children":8913},{"className":8912},[3995,4024,4025],[8914],{"type":10,"tag":11,"props":8915,"children":8917},{"className":8916},[3995],[8918],{"type":10,"tag":4063,"props":8919,"children":8920},{},[8921],{"type":15,"value":8922},"D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_RAYS",{"type":10,"tag":4021,"props":8924,"children":8926},{"className":8925},[3995,4024,4025],[8927],{"type":10,"tag":11,"props":8928,"children":8930},{"className":8929},[3995],[8931],{"type":10,"tag":4063,"props":8932,"children":8933},{},[8934],{"type":15,"value":4195},{"type":10,"tag":4017,"props":8936,"children":8937},{},[8938,8951],{"type":10,"tag":4021,"props":8939,"children":8941},{"className":8940},[3995,4024,4025],[8942],{"type":10,"tag":11,"props":8943,"children":8945},{"className":8944},[3995],[8946],{"type":10,"tag":4063,"props":8947,"children":8948},{},[8949],{"type":15,"value":8950},"D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_MESH",{"type":10,"tag":4021,"props":8952,"children":8954},{"className":8953},[3995,4024,4025],[8955],{"type":10,"tag":11,"props":8956,"children":8958},{"className":8957},[3995],[8959],{"type":10,"tag":4063,"props":8960,"children":8961},{},[8962],{"type":15,"value":4379},{"type":10,"tag":11,"props":8964,"children":8965},{},[8966,8968,8973],{"type":15,"value":8967},"A root descriptor in D3D12 is a 64-bit virtual address to a raw buffer. To implement this, ",{"type":10,"tag":151,"props":8969,"children":8971},{"className":8970},[],[8972],{"type":15,"value":3306},{"type":15,"value":8974}," tokens can be used to update buffer device addresses stored in push constants rather than interacting with the descriptor binding model. Similar techniques can be used to update non-root descriptors as well.",{"type":10,"tag":11,"props":8976,"children":8977},{},[8978,8983],{"type":10,"tag":151,"props":8979,"children":8981},{"className":8980},[],[8982],{"type":15,"value":3314},{"type":15,"value":8984}," can be used to mimic D3D12 DGC TIER_1_1 support.",{"type":10,"tag":314,"props":8986,"children":8988},{"id":8987},"_command_signature",[8989],{"type":15,"value":8990},"Command Signature",{"type":10,"tag":29,"props":8992,"children":8993},{},[8994,9012],{"type":10,"tag":33,"props":8995,"children":8996},{},[8997,9003,9005,9011],{"type":10,"tag":151,"props":8998,"children":9000},{"className":8999},[],[9001],{"type":15,"value":9002},"ByteStride",{"type":15,"value":9004}," is specified at execution time with ",{"type":10,"tag":151,"props":9006,"children":9008},{"className":9007},[],[9009],{"type":15,"value":9010},"VkGeneratedCommandsInfoEXT::indirectAddressRegion.stride",{"type":15,"value":301},{"type":10,"tag":33,"props":9013,"children":9014},{},[9015,9017,9023,9025,9030,9032,9038],{"type":15,"value":9016},"Set ",{"type":10,"tag":151,"props":9018,"children":9020},{"className":9019},[],[9021],{"type":15,"value":9022},"VkIndirectCommandsIndexBufferTokenEXT::mode",{"type":15,"value":9024}," to ",{"type":10,"tag":151,"props":9026,"children":9028},{"className":9027},[],[9029],{"type":15,"value":5455},{"type":15,"value":9031}," to remap ",{"type":10,"tag":151,"props":9033,"children":9035},{"className":9034},[],[9036],{"type":15,"value":9037},"DXGI_FORMAT",{"type":15,"value":9039}," values.",{"type":10,"tag":314,"props":9041,"children":9043},{"id":9042},"_alignment",[9044],{"type":15,"value":9045},"Alignment",{"type":10,"tag":11,"props":9047,"children":9048},{},[9049],{"type":15,"value":9050},"Alignment requirements:",{"type":10,"tag":29,"props":9052,"children":9053},{},[9054,9064,9074,9084],{"type":10,"tag":33,"props":9055,"children":9056},{},[9057,9062],{"type":10,"tag":151,"props":9058,"children":9060},{"className":9059},[],[9061],{"type":15,"value":9002},{"type":15,"value":9063}," is 4 byte aligned",{"type":10,"tag":33,"props":9065,"children":9066},{},[9067,9073],{"type":10,"tag":151,"props":9068,"children":9070},{"className":9069},[],[9071],{"type":15,"value":9072},"CountBufferOffset",{"type":15,"value":9063},{"type":10,"tag":33,"props":9075,"children":9076},{},[9077,9083],{"type":10,"tag":151,"props":9078,"children":9080},{"className":9079},[],[9081],{"type":15,"value":9082},"ArgumentBufferOffset",{"type":15,"value":9063},{"type":10,"tag":33,"props":9085,"children":9086},{},[9087,9093],{"type":10,"tag":151,"props":9088,"children":9090},{"className":9089},[],[9091],{"type":15,"value":9092},"tokenOffset",{"type":15,"value":9063},{"type":10,"tag":17,"props":9095,"children":9097},{"id":9096},"_examples",[9098],{"type":15,"value":9099},"Examples",{"type":10,"tag":11,"props":9101,"children":9102},{},[9103],{"type":15,"value":9104},"TODO",{"type":10,"tag":17,"props":9106,"children":9108},{"id":9107},"_issues",[9109],{"type":15,"value":9110},"Issues",{"type":10,"tag":242,"props":9112,"children":9114},{"id":9113},"_unresolved_how_will_future_commands_be_added",[9115],{"type":15,"value":9116},"UNRESOLVED: How will future commands be added?",{"type":10,"tag":11,"props":9118,"children":9119},{},[9120,9122,9128],{"type":15,"value":9121},"New pointer members will be added to ",{"type":10,"tag":151,"props":9123,"children":9125},{"className":9124},[],[9126],{"type":15,"value":9127},"VkIndirectCommandsTokenDataEXT",{"type":15,"value":301},{"type":10,"tag":242,"props":9130,"children":9132},{"id":9131},"_resolved_should_additional_state_be_included",[9133],{"type":15,"value":9134},"RESOLVED: Should additional state be included?",{"type":10,"tag":11,"props":9136,"children":9137},{},[9138],{"type":15,"value":9139},"No additional state changes are permitted in order to enable fast and broad adoption.",{"type":10,"tag":242,"props":9141,"children":9143},{"id":9142},"_resolved_what_shader_stages_or_pipeline_states_should_be_allowed_to_change",[9144],{"type":15,"value":9145},"RESOLVED: What shader stages or pipeline states should be allowed to change?",{"type":10,"tag":11,"props":9147,"children":9148},{},[9149],{"type":15,"value":9150},"All implementation-supported shader stagess can be changed indirectly. No pipeline state may be changed. Future extensions may expose additional functionality.",{"type":10,"tag":242,"props":9152,"children":9154},{"id":9153},"_unresolved_should_indirect_execution_sets_be_merged_with_either_shader_binding_tables_or_indirect_object_sets",[9155],{"type":15,"value":9156},"UNRESOLVED: Should Indirect execution sets be merged with either Shader Binding Tables or Indirect Object Sets?",{"type":10,"tag":29,"props":9158,"children":9159},{},[9160,9165],{"type":10,"tag":33,"props":9161,"children":9162},{},[9163],{"type":15,"value":9164},"Significant overlap in functionality with Shader Binding Tables",{"type":10,"tag":33,"props":9166,"children":9167},{},[9168],{"type":15,"value":9169},"Indirect Object Sets would allow for indirect dynamic state groups.",{"type":10,"tag":242,"props":9171,"children":9173},{"id":9172},"_resolved_should_additional_alignment_properties_be_added",[9174],{"type":15,"value":9175},"RESOLVED: Should additional alignment properties be added?",{"type":10,"tag":11,"props":9177,"children":9178},{},[9179],{"type":15,"value":9180},"Recent extensions have been using fixed rather than queryable alignment rules. It makes sense to use fixed alignments here too.",{"type":10,"tag":242,"props":9182,"children":9184},{"id":9183},"_resolved_should_index_type_values_be_remappable",[9185],{"type":15,"value":9186},"RESOLVED: Should index type values be remappable?",{"type":10,"tag":11,"props":9188,"children":9189},{},[9190,9195,9196,9201,9203,9208,9209,9214],{"type":10,"tag":151,"props":9191,"children":9193},{"className":9192},[],[9194],{"type":15,"value":5462},{"type":15,"value":293},{"type":10,"tag":151,"props":9197,"children":9199},{"className":9198},[],[9200],{"type":15,"value":4257},{"type":15,"value":9202}," have the same memory layout but ",{"type":10,"tag":151,"props":9204,"children":9206},{"className":9205},[],[9207],{"type":15,"value":9037},{"type":15,"value":293},{"type":10,"tag":151,"props":9210,"children":9212},{"className":9211},[],[9213],{"type":15,"value":5242},{"type":15,"value":9215}," do not have equivalent values. Providing the ability to remap index type values in the layout simplifies API emulation.",{"type":10,"tag":11,"props":9217,"children":9218},{},[9219,9221,9226],{"type":15,"value":9220},"There is explicit mapping from data values to ",{"type":10,"tag":151,"props":9222,"children":9224},{"className":9223},[],[9225],{"type":15,"value":5242},{"type":15,"value":301},{"type":10,"tag":242,"props":9228,"children":9230},{"id":9229},"_resolved_should_indirect_buffers_be_reusable",[9231],{"type":15,"value":9232},"RESOLVED: Should indirect buffers be reusable?",{"type":10,"tag":11,"props":9234,"children":9235},{},[9236],{"type":15,"value":9237},"Yes, indirect buffers can be reused.",{"type":10,"tag":242,"props":9239,"children":9241},{"id":9240},"_resolved_how_should_commands_with_less_than_32_bits_of_data_be_handled",[9242],{"type":15,"value":9243},"RESOLVED: How should commands with less than 32-bits of data be handled?",{"type":10,"tag":11,"props":9245,"children":9246},{},[9247],{"type":15,"value":9248},"No such commands are provided.",{"type":10,"tag":242,"props":9250,"children":9252},{"id":9251},"_resolved_how_should_applications_provide_data_to_the_preprocess_command_in_order_for_drivers_to_optimize_indirect_execution",[9253],{"type":15,"value":9254},"RESOLVED: How should applications provide data to the preprocess command in order for drivers to optimize indirect execution?",{"type":10,"tag":11,"props":9256,"children":9257},{},[9258,9259,9264,9266,9271,9273,9278],{"type":15,"value":3365},{"type":10,"tag":151,"props":9260,"children":9262},{"className":9261},[],[9263],{"type":15,"value":7606},{"type":15,"value":9265}," is added to ",{"type":10,"tag":151,"props":9267,"children":9269},{"className":9268},[],[9270],{"type":15,"value":955},{"type":15,"value":9272}," with the requirement that all state must match between this command buffer and the one used to record ",{"type":10,"tag":151,"props":9274,"children":9276},{"className":9275},[],[9277],{"type":15,"value":968},{"type":15,"value":9279},".\nThis guarantees that all pipeline state and, specifically for draw commands, other state (e.g., vertex buffers, index buffers) is available at preprocess time.",{"type":10,"tag":17,"props":9281,"children":9283},{"id":9282},"_further_functionality",[9284],{"type":15,"value":9285},"Further Functionality",{"type":10,"tag":29,"props":9287,"children":9288},{},[9289,9302,9313],{"type":10,"tag":33,"props":9290,"children":9291},{},[9292,9294,9300],{"type":15,"value":9293},"Support for Multi-dispatch (needs something like ",{"type":10,"tag":151,"props":9295,"children":9297},{"className":9296},[],[9298],{"type":15,"value":9299},"gl_drawID",{"type":15,"value":9301}," for compute shaders).",{"type":10,"tag":33,"props":9303,"children":9304},{},[9305,9307,9312],{"type":15,"value":9306},"Multi-level indirect execution through a command that is equivalent to ",{"type":10,"tag":151,"props":9308,"children":9310},{"className":9309},[],[9311],{"type":15,"value":968},{"type":15,"value":301},{"type":10,"tag":33,"props":9314,"children":9315},{},[9316],{"type":15,"value":9317},"Indirect command buffers.",{"type":10,"tag":17,"props":9319,"children":9321},{"id":9320},"_todo",[9322],{"type":15,"value":9104},{"type":10,"tag":29,"props":9324,"children":9325},{},[9326],{"type":10,"tag":33,"props":9327,"children":9328},{},[9329],{"type":15,"value":9330},"Example section",{"type":10,"tag":9332,"props":9333,"children":9334},"style",{},[9335],{"type":15,"value":9336},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":560,"searchDepth":590,"depth":590,"links":9338},[9339,9340,9345,9357,9358,9369,9370],{"id":19,"depth":590,"text":22},{"id":83,"depth":590,"text":86,"children":9341},[9342,9343,9344],{"id":244,"depth":599,"text":247},{"id":309,"depth":599,"text":312},{"id":740,"depth":599,"text":743},{"id":799,"depth":590,"text":802,"children":9346},[9347,9349,9350,9351,9352,9353,9354,9355,9356],{"id":983,"depth":599,"text":9348},"Key differences with VK_NV_device_generated_commands",{"id":1027,"depth":599,"text":1030},{"id":2899,"depth":599,"text":2902},{"id":3982,"depth":599,"text":3985},{"id":6126,"depth":599,"text":6129},{"id":6755,"depth":599,"text":6758},{"id":7671,"depth":599,"text":7674},{"id":7816,"depth":599,"text":7819},{"id":8389,"depth":599,"text":8392},{"id":9096,"depth":590,"text":9099},{"id":9107,"depth":590,"text":9110,"children":9359},[9360,9361,9362,9363,9364,9365,9366,9367,9368],{"id":9113,"depth":599,"text":9116},{"id":9131,"depth":599,"text":9134},{"id":9142,"depth":599,"text":9145},{"id":9153,"depth":599,"text":9156},{"id":9172,"depth":599,"text":9175},{"id":9183,"depth":599,"text":9186},{"id":9229,"depth":599,"text":9232},{"id":9240,"depth":599,"text":9243},{"id":9251,"depth":599,"text":9254},{"id":9282,"depth":590,"text":9285},{"id":9320,"depth":590,"text":9104},"markdown",[9373,9378,9381,9384,9387,9390,9393,9396,9399,9401,9404,9407,9410,9413,9416,9419,9422,9425,9428,9432,9436,9440,9444,9448,9452,9456,9460,9464,9468,9472,9476,9480,9484,9488,9492,9496,9500,9504,9508,9512,9516,9520,9524,9528,9532,9536,9539,9543,9547,9551,9555,9558,9561,9564,9567,9570,9573,9576,9579],{"index":9374,"title":9375,"id":9376,"appendix":9377},0,"Preamble","preamble",false,{"index":569,"title":9379,"id":9380,"appendix":9377},"Introduction","introduction",{"index":590,"title":9382,"id":9383,"appendix":9377},"Fundamentals","fundamentals",{"index":599,"title":9385,"id":9386,"appendix":9377},"Initialization","initialization",{"index":650,"title":9388,"id":9389,"appendix":9377},"Devices and Queues","devsandqueues",{"index":659,"title":9391,"id":9392,"appendix":9377},"Command Buffers","commandbuffers",{"index":678,"title":9394,"id":9395,"appendix":9377},"Synchronization and Cache Control","synchronization",{"index":697,"title":9397,"id":9398,"appendix":9377},"Render Pass","renderpass",{"index":714,"title":460,"id":9400,"appendix":9377},"shaders",{"index":731,"title":9402,"id":9403,"appendix":9377},"Pipelines","pipelines",{"index":1951,"title":9405,"id":9406,"appendix":9377},"Memory Allocation","memory",{"index":4698,"title":9408,"id":9409,"appendix":9377},"Resource Creation","resources",{"index":4707,"title":9411,"id":9412,"appendix":9377},"Samplers","samplers",{"index":4716,"title":9414,"id":9415,"appendix":9377},"Resource Descriptors","descriptorsets",{"index":4725,"title":9417,"id":9418,"appendix":9377},"Shader Interfaces","interfaces",{"index":4734,"title":9420,"id":9421,"appendix":9377},"Image Operations","textures",{"index":4743,"title":9423,"id":9424,"appendix":9377},"Fragment Density Map Operations","fragmentdensitymapops",{"index":4752,"title":9426,"id":9427,"appendix":9377},"Queries","queries",{"index":9429,"title":9430,"id":9431,"appendix":9377},18,"Clear Commands","clears",{"index":9433,"title":9434,"id":9435,"appendix":9377},19,"Copy Commands","copies",{"index":9437,"title":9438,"id":9439,"appendix":9377},20,"Drawing Commands","drawing",{"index":9441,"title":9442,"id":9443,"appendix":9377},21,"Fixed-Function Vertex Processing","fxvertex",{"index":9445,"title":9446,"id":9447,"appendix":9377},22,"Tessellation","tessellation",{"index":9449,"title":9450,"id":9451,"appendix":9377},23,"Geometry Shading","geometry",{"index":9453,"title":9454,"id":9455,"appendix":9377},24,"Mesh Shading","mesh",{"index":9457,"title":9458,"id":9459,"appendix":9377},25,"Cluster Culling Shading","cluster-culling",{"index":9461,"title":9462,"id":9463,"appendix":9377},26,"Fixed-Function Vertex Post-Processing","vertexpostproc",{"index":9465,"title":9466,"id":9467,"appendix":9377},27,"Rasterization","primsrast",{"index":9469,"title":9470,"id":9471,"appendix":9377},28,"Fragment Operations","fragops",{"index":9473,"title":9474,"id":9475,"appendix":9377},29,"The Framebuffer","framebuffer",{"index":9477,"title":9478,"id":9479,"appendix":9377},30,"Dispatching Commands","dispatch",{"index":9481,"title":9482,"id":9483,"appendix":9377},31,"Device-Generated Commands","device-generated-commands",{"index":9485,"title":9486,"id":9487,"appendix":9377},32,"Sparse Resources","sparsememory",{"index":9489,"title":9490,"id":9491,"appendix":9377},33,"Window System Integration (WSI)","wsi",{"index":9493,"title":9494,"id":9495,"appendix":9377},34,"Deferred Host Operations","deferred-host-operations",{"index":9497,"title":9498,"id":9499,"appendix":9377},35,"Private Data","private-data",{"index":9501,"title":9502,"id":9503,"appendix":9377},36,"Acceleration Structures","acceleration-structure",{"index":9505,"title":9506,"id":9507,"appendix":9377},37,"Micromap","micromap",{"index":9509,"title":9510,"id":9511,"appendix":9377},38,"Ray Traversal","ray-traversal",{"index":9513,"title":9514,"id":9515,"appendix":9377},39,"Ray Tracing","ray-tracing",{"index":9517,"title":9518,"id":9519,"appendix":9377},40,"Memory Decompression","memory-decompression",{"index":9521,"title":9522,"id":9523,"appendix":9377},41,"Video Coding","video-coding",{"index":9525,"title":9526,"id":9527,"appendix":9377},42,"Optical Flow","opticalflow",{"index":9529,"title":9530,"id":9531,"appendix":9377},43,"Execution Graphs","executiongraphs",{"index":9533,"title":9534,"id":9535,"appendix":9377},44,"Extending Vulkan","extendingvulkan",{"index":9537,"title":7674,"id":9538,"appendix":9377},45,"features",{"index":9540,"title":9541,"id":9542,"appendix":9377},46,"Limits","limits",{"index":9544,"title":9545,"id":9546,"appendix":9377},47,"Formats","formats",{"index":9548,"title":9549,"id":9550,"appendix":9377},48,"Additional Capabilities","capabilities",{"index":9552,"title":9553,"id":9554,"appendix":9377},49,"Debugging","debugging",{"index":9374,"title":9556,"id":9557,"appendix":6826},"Vulkan Environment for SPIR-V","spirvenv",{"index":569,"title":9559,"id":9560,"appendix":6826},"Memory Model","memory-model",{"index":590,"title":9562,"id":9563,"appendix":6826},"Compressed Image Formats","compressed_image_formats",{"index":599,"title":9565,"id":9566,"appendix":6826},"Core Revisions (Informative)","versions",{"index":650,"title":9568,"id":9569,"appendix":6826},"Layers & Extensions (Informative)","extensions",{"index":659,"title":9571,"id":9572,"appendix":6826},"API Boilerplate","boilerplate",{"index":678,"title":9574,"id":9575,"appendix":6826},"Invariance","invariance",{"index":697,"title":9577,"id":9578,"appendix":6826},"Lexicon","lexicon",{"index":714,"title":9580,"id":9581,"appendix":6826},"Credits (Informative)","credits",[9583,9590,9594,9599,9603,9608,9611,9614,9617,9621,9625,9628,9631,9634,9636,9638,9641,9644,9648,9650,9654,9656,9659,9661,9664,9672,9676,9682,9686,9691,9693,9697,9703,9709,9715,9717,9720,9727,9730,9734,9739,9743,9747,9752,9756,9759,9762,9768,9771,9774,9778,9782,9786,9790,9793,9795,9799,9804,9810,9813,9817,9821,9824,9830,9833,9837,9840,9844,9847,9851,9854,9859,9863,9866,9871,9874,9877,9880,9884,9889,9894,9898,9902,9906,9910,9914,9918,9922,9925,9928,9932,9935,9938,9941,9945,9950,9954,9957,9961,9966,9970,9975,9978,9981,9986,9991,9995,9998,10002,10007,10010,10015,10020,10023,10026,10030,10034,10038,10043,10047,10050,10055,10059,10063,10066,10069,10073,10077,10080,10082,10086,10089,10092,10095,10098,10101,10104,10107,10110,10113,10117,10121,10124,10127,10130,10133,10136,10139,10143,10147,10151,10154,10158,10161,10164,10167,10169,10173,10178,10182,10186,10188,10192,10195,10202,10206,10210,10214,10220,10223,10227,10231,10234,10237,10241,10246,10252,10256,10258,10263,10266,10271,10275,10280,10284,10288,10290,10293,10296,10298,10303,10306,10309,10314,10318,10322,10327,10331,10335,10337,10339,10342,10344,10347,10350,10354,10358,10360,10364,10367,10371,10374,10376,10379,10383,10385,10389,10392,10395,10398,10402,10405,10408,10410,10413,10415,10418,10422,10425,10427,10429,10431,10433,10437,10439,10442,10447,10451,10454,10456,10459,10461,10465,10468,10471,10474,10478,10481,10486,10490,10493,10497,10499,10502,10506,10510,10512,10517,10520,10524,10527,10530,10533,10535,10538,10542,10545,10549,10552,10556,10560,10563,10566,10569,10572,10576,10578,10581,10583,10588,10589,10593,10596,10599,10602,10605,10607,10611,10614,10617,10620,10624,10626,10628,10632,10634,10637,10641,10645,10647,10651,10654,10657,10660,10663,10667,10672,10677,10681,10687,10691,10694,10698,10702,10705,10709,10713,10716,10720,10723,10728,10732,10734,10740,10743,10746,10749,10752,10754,10758,10762,10766,10768,10771,10773,10776,10778,10780,10783,10786,10789,10792,10795,10798,10800,10804,10808,10812,10816,10819,10822,10826,10829,10833,10835,10839,10843,10846,10849,10852,10855,10858,10861,10864,10867,10870,10873,10876,10879,10882,10885,10889,10892,10896,10900,10903,10906,10909,10912,10915,10918,10922,10925,10928,10934,10938,10942,10946],{"number":9584,"type":1134,"author":9585,"provisional":6826,"depends":9586,"platform":9587,"contact":9588,"extension":9589,"proposal":6826},135,"AMD","((VK_KHR_synchronization2+VK_KHR_spirv_1_4+VK_EXT_extended_dynamic_state),VK_VERSION_1_3)+VK_KHR_maintenance5+VK_KHR_pipeline_library","provisional","Tobias Hector @tobski","VK_AMDX_shader_enqueue",{"number":9591,"type":1134,"author":9585,"provisional":9377,"contact":9592,"extension":9593,"proposal":6826},477,"Stu Smith","VK_AMD_anti_lag",{"number":9595,"type":1134,"author":9585,"provisional":9377,"specialuse":9596,"contact":9597,"extension":9598,"proposal":9377},180,"devtools","Daniel Rakos @drakos-amd","VK_AMD_buffer_marker",{"number":9600,"type":1134,"author":9585,"provisional":9377,"depends":9601,"contact":9588,"extension":9602,"proposal":9377},230,"VK_KHR_get_physical_device_properties2,VK_VERSION_1_1","VK_AMD_device_coherent_memory",{"number":9604,"type":1134,"author":9585,"provisional":9377,"depends":9605,"contact":9606,"extension":9607,"proposal":9377},214,"(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_KHR_get_surface_capabilities2+VK_KHR_swapchain","Matthaeus G. Chajdas @anteru","VK_AMD_display_native_hdr",{"number":9493,"type":1134,"author":9585,"promotedto":9609,"provisional":9377,"contact":9597,"extension":9610,"proposal":9377},"VK_KHR_draw_indirect_count","VK_AMD_draw_indirect_count",{"number":9461,"type":1134,"author":9585,"provisional":9377,"contact":9612,"extension":9613,"proposal":9377},"Dominik Witczak @dominikwitczakamd","VK_AMD_gcn_shader",{"number":9505,"type":1134,"author":9585,"deprecatedby":9615,"provisional":9377,"contact":9612,"extension":9616,"proposal":9377},"VK_KHR_shader_float16_int8","VK_AMD_gpu_shader_half_float",{"number":9618,"type":1134,"author":9585,"deprecatedby":9615,"provisional":9377,"contact":9619,"extension":9620,"proposal":9377},133,"Qun Lin @linqun","VK_AMD_gpu_shader_int16",{"number":9622,"type":1134,"author":9585,"provisional":9377,"contact":9623,"extension":9624,"proposal":9377},190,"Martin Dinkov @mdinkov","VK_AMD_memory_overallocation_behavior",{"number":9626,"type":1134,"author":9585,"provisional":9377,"contact":9606,"extension":9627,"proposal":9377},137,"VK_AMD_mixed_attachment_samples",{"number":9501,"type":1134,"author":9585,"obsoletedby":9629,"provisional":9377,"contact":9606,"extension":9630,"proposal":9377},"VK_KHR_maintenance1","VK_AMD_negative_viewport_height",{"number":9632,"type":1134,"author":9585,"provisional":9377,"contact":9606,"extension":9633,"proposal":9377},184,"VK_AMD_pipeline_compiler_control",{"number":9433,"type":1134,"author":9585,"provisional":9377,"contact":9597,"extension":9635,"proposal":9377},"VK_AMD_rasterization_order",{"number":9509,"type":1134,"author":9585,"provisional":9377,"contact":9612,"extension":9637,"proposal":9377},"VK_AMD_shader_ballot",{"number":9639,"type":1134,"author":9585,"provisional":9377,"depends":9601,"contact":9623,"extension":9640,"proposal":9377},186,"VK_AMD_shader_core_properties",{"number":9642,"type":1134,"author":9585,"provisional":9377,"depends":9640,"contact":9606,"extension":9643,"proposal":9377},228,"VK_AMD_shader_core_properties2",{"number":9645,"type":1134,"author":9646,"provisional":9377,"depends":9601,"contact":9588,"extension":9647,"proposal":6826},322,"EXT","VK_AMD_shader_early_and_late_fragment_tests",{"number":9445,"type":1134,"author":9585,"provisional":9377,"contact":9619,"extension":9649,"proposal":9377},"VK_AMD_shader_explicit_vertex_parameter",{"number":9651,"type":1134,"author":9585,"provisional":9377,"contact":9652,"extension":9653,"proposal":9377},138,"Aaron Hagan @AaronHaganAMD","VK_AMD_shader_fragment_mask",{"number":9544,"type":1134,"author":9585,"provisional":9377,"contact":9612,"extension":9655,"proposal":9377},"VK_AMD_shader_image_load_store_lod",{"number":9529,"type":1134,"author":9585,"provisional":9377,"specialuse":9596,"contact":9657,"extension":9658,"proposal":9377},"Jaakko Konttinen @jaakkoamd","VK_AMD_shader_info",{"number":9441,"type":1134,"author":9585,"provisional":9377,"contact":9619,"extension":9660,"proposal":9377},"VK_AMD_shader_trinary_minmax",{"number":9525,"type":1134,"author":9585,"provisional":9377,"depends":9601,"contact":9662,"extension":9663,"proposal":9377},"Rex Xu @amdrexu","VK_AMD_texture_gather_bias_lod",{"number":9665,"type":1134,"author":9666,"provisional":9377,"depends":9667,"platform":9668,"specialuse":9669,"contact":9670,"extension":9671,"proposal":6826},469,"ANDROID","VK_ANDROID_external_memory_android_hardware_buffer","android","glemulation","Chris Forbes @chrisforbes","VK_ANDROID_external_format_resolve",{"number":9673,"type":1134,"author":9666,"provisional":9377,"depends":9674,"platform":9668,"contact":9675,"extension":9667,"proposal":9377},130,"((VK_KHR_sampler_ycbcr_conversion+VK_KHR_external_memory+VK_KHR_dedicated_allocation),VK_VERSION_1_1)+VK_EXT_queue_family_foreign","Jesse Hall @critsec",{"number":9677,"type":1134,"author":9678,"promotedto":9679,"provisional":9377,"depends":9601,"contact":9680,"extension":9681,"proposal":9377},343,"ARM","VK_EXT_rasterization_order_attachment_access","Jan-Harald Fredriksen @janharaldfredriksen-arm","VK_ARM_rasterization_order_attachment_access",{"number":9683,"type":1134,"author":9678,"provisional":9377,"depends":9684,"contact":9680,"extension":9685,"proposal":6826},425,"((VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_KHR_synchronization2),VK_VERSION_1_3","VK_ARM_render_pass_striped",{"number":9687,"type":1134,"author":9678,"provisional":9377,"depends":9688,"contact":9689,"extension":9690,"proposal":9377},418,"VK_ARM_shader_core_builtins","Kevin Petit @kpet","VK_ARM_scheduling_controls",{"number":9692,"type":1134,"author":9678,"provisional":9377,"depends":9601,"contact":9689,"extension":9688,"proposal":9377},498,{"number":9694,"type":1134,"author":9678,"provisional":9377,"depends":9695,"contact":9680,"extension":9696,"proposal":9377},416,"VK_VERSION_1_1","VK_ARM_shader_core_properties",{"number":9698,"type":1134,"author":9646,"promotedto":9699,"provisional":9377,"depends":9601,"ratified":9700,"contact":9701,"extension":9702,"proposal":9377},341,"VK_VERSION_1_3","vulkansc","Joshua Ashton @Joshua-Ashton","VK_EXT_4444_formats",{"number":9704,"type":9705,"author":9646,"provisional":9377,"depends":9706,"contact":9707,"extension":9708,"proposal":9377},286,"instance","VK_EXT_direct_mode_display","Drew DeVault sir@cmpwn.com","VK_EXT_acquire_drm_display",{"number":9710,"type":9705,"author":9711,"provisional":9377,"depends":9706,"platform":9712,"contact":9713,"extension":9714,"proposal":9377},90,"NV","xlib_xrandr","James Jones @cubanismo","VK_EXT_acquire_xlib_display",{"extension":9716,"proposal":9377},"VK_EXT_application_parameters",{"number":9718,"type":1134,"author":9678,"provisional":9377,"depends":9601,"contact":9680,"extension":9719,"proposal":9377},68,"VK_EXT_astc_decode_mode",{"number":9721,"type":1134,"author":9646,"provisional":9377,"depends":9722,"ratified":9723,"specialuse":9724,"contact":9725,"extension":9726,"proposal":6826},525,"(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_EXT_attachment_feedback_loop_layout","vulkan","glemulation,d3demulation","Mike Blumenkrantz @zmike","VK_EXT_attachment_feedback_loop_dynamic_state",{"number":9728,"type":1134,"author":9646,"provisional":9377,"depends":9601,"ratified":9723,"specialuse":9724,"contact":9701,"extension":9729,"proposal":6826},340,"VK_EXT_attachment_feedback_loop_layout",{"number":9731,"type":1134,"author":9711,"provisional":9377,"depends":9601,"ratified":9723,"contact":9732,"extension":9733,"proposal":9377},149,"Jeff Bolz @jeffbolznv","VK_EXT_blend_operation_advanced",{"number":9735,"type":1134,"author":9646,"provisional":9377,"depends":9736,"specialuse":9724,"contact":9737,"extension":9738,"proposal":9377},412,"VK_EXT_custom_border_color","Piers Daniell @pdaniell-nv","VK_EXT_border_color_swizzle",{"number":9740,"type":1134,"author":9711,"deprecatedby":9741,"provisional":9377,"depends":9601,"contact":9732,"extension":9742,"proposal":9377},245,"VK_KHR_buffer_device_address","VK_EXT_buffer_device_address",{"number":9744,"type":1134,"author":9646,"promotedto":9745,"provisional":9377,"depends":9601,"contact":9597,"extension":9746,"proposal":6826},185,"VK_KHR_calibrated_timestamps","VK_EXT_calibrated_timestamps",{"number":9748,"type":1134,"author":9646,"provisional":9377,"depends":9601,"ratified":9749,"contact":9750,"extension":9751,"proposal":9377},382,"vulkan,vulkansc","Sharif Elcott @selcott","VK_EXT_color_write_enable",{"number":9753,"type":1134,"author":9711,"provisional":9377,"depends":9601,"contact":9754,"extension":9755,"proposal":9377},82,"Vikram Kushwaha @vkushwaha","VK_EXT_conditional_rendering",{"number":9757,"type":1134,"author":9711,"provisional":9377,"depends":9601,"ratified":9723,"contact":9737,"extension":9758,"proposal":9377},102,"VK_EXT_conservative_rasterization",{"number":9760,"type":1134,"author":9646,"provisional":9377,"depends":9601,"ratified":9749,"specialuse":9724,"contact":9761,"extension":9736,"proposal":9377},288,"Liam Middlebrook @liam-middlebrook",{"number":9449,"type":1134,"author":9763,"promotedto":9764,"provisional":9377,"depends":9765,"specialuse":9554,"contact":9766,"extension":9767,"proposal":9377},"Baldur Karlsson","VK_EXT_debug_utils","VK_EXT_debug_report","Baldur Karlsson @baldurk","VK_EXT_debug_marker",{"number":4707,"type":9705,"author":9769,"deprecatedby":9764,"provisional":9377,"specialuse":9554,"contact":9770,"extension":9765,"proposal":9377},"GOOGLE","Courtney Goeltzenleuchter @courtney-g",{"number":9772,"type":9705,"author":9646,"provisional":9377,"specialuse":9554,"contact":9773,"extension":9764,"proposal":9377},129,"Mark Young @marky-lunarg",{"number":9775,"type":1134,"author":9646,"provisional":9377,"depends":9601,"ratified":9723,"specialuse":9776,"contact":9701,"extension":9777,"proposal":6826},284,"d3demulation","VK_EXT_depth_bias_control",{"number":9779,"type":1134,"author":9646,"provisional":9377,"depends":9601,"ratified":9723,"contact":9780,"extension":9781,"proposal":6826},583,"Jules Blok @jules","VK_EXT_depth_clamp_control",{"number":9783,"type":1134,"author":9646,"provisional":9377,"depends":9601,"contact":9784,"extension":9785,"proposal":9377},422,"Graeme Leese @gnl21","VK_EXT_depth_clamp_zero_one",{"number":9787,"type":1134,"author":9646,"provisional":9377,"depends":9601,"ratified":9723,"specialuse":9669,"contact":9788,"extension":9789,"proposal":9377},356,"Shahbaz Youssefi @syoussefi","VK_EXT_depth_clip_control",{"number":9791,"type":1134,"author":9646,"provisional":9377,"depends":9601,"ratified":9749,"specialuse":9776,"contact":9737,"extension":9792,"proposal":9377},103,"VK_EXT_depth_clip_enable",{"number":4725,"type":1134,"author":9711,"provisional":9377,"ratified":9749,"contact":9737,"extension":9794,"proposal":9377},"VK_EXT_depth_range_unrestricted",{"number":9796,"type":1134,"author":9646,"provisional":9377,"depends":9797,"contact":9588,"extension":9798,"proposal":6826},317,"((((VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_KHR_buffer_device_address+VK_EXT_descriptor_indexing),VK_VERSION_1_2)+VK_KHR_synchronization2),VK_VERSION_1_3","VK_EXT_descriptor_buffer",{"number":9800,"type":1134,"author":9711,"promotedto":9801,"provisional":9377,"depends":9802,"contact":9732,"extension":9803,"proposal":9377},162,"VK_VERSION_1_2","(VK_KHR_get_physical_device_properties2+VK_KHR_maintenance3),VK_VERSION_1_1","VK_EXT_descriptor_indexing",{"number":9805,"type":1134,"author":9646,"provisional":9377,"depends":9806,"specialuse":9807,"contact":9808,"extension":9809,"proposal":9377},355,"(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_EXT_debug_utils","debugging,devtools","Ralph Potter gitlab:@r_potter","VK_EXT_device_address_binding_report",{"number":9811,"type":1134,"author":9646,"provisional":9377,"depends":9601,"contact":9808,"extension":9812,"proposal":6826},342,"VK_EXT_device_fault",{"number":9814,"type":1134,"author":9646,"provisional":9377,"depends":9815,"ratified":9723,"contact":9725,"extension":9816,"proposal":6826},573,"VK_KHR_buffer_device_address+VK_KHR_maintenance5","VK_EXT_device_generated_commands",{"number":9818,"type":1134,"author":9646,"provisional":9377,"depends":9601,"ratified":9723,"specialuse":9596,"contact":9819,"extension":9820,"proposal":9377},285,"Yiwei Zhang @zhangyiwei","VK_EXT_device_memory_report",{"number":9822,"type":9705,"author":9711,"provisional":9377,"depends":9823,"contact":9713,"extension":9706,"proposal":9377},89,"VK_KHR_display",{"number":9825,"type":9705,"author":9646,"provisional":9377,"depends":9826,"platform":9827,"contact":9828,"extension":9829,"proposal":9377},347,"VK_KHR_surface","directfb","Nicolas Caramelli @caramelli","VK_EXT_directfb_surface",{"number":9831,"type":1134,"author":9711,"provisional":9377,"depends":9601,"ratified":9749,"contact":9737,"extension":9832,"proposal":9377},100,"VK_EXT_discard_rectangles",{"number":9834,"type":1134,"author":9711,"provisional":9377,"depends":9835,"ratified":9723,"contact":9713,"extension":9836,"proposal":9377},92,"VK_EXT_display_surface_counter+VK_KHR_swapchain","VK_EXT_display_control",{"number":9838,"type":9705,"author":9711,"provisional":9377,"depends":9823,"ratified":9723,"contact":9713,"extension":9839,"proposal":9377},91,"VK_EXT_display_surface_counter",{"number":9841,"type":1134,"author":9646,"provisional":9377,"depends":9842,"ratified":9723,"contact":9737,"extension":9843,"proposal":6826},500,"((VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_KHR_dynamic_rendering),VK_VERSION_1_3","VK_EXT_dynamic_rendering_unused_attachments",{"number":9845,"type":1134,"author":9646,"promotedto":9699,"provisional":9377,"depends":9601,"ratified":9700,"contact":9737,"extension":9846,"proposal":9377},268,"VK_EXT_extended_dynamic_state",{"number":9848,"type":1134,"author":9646,"promotedto":9699,"provisional":9377,"depends":9601,"ratified":9700,"contact":9849,"extension":9850,"proposal":9377},378,"Vikram Kushwaha @vkushwaha-nv","VK_EXT_extended_dynamic_state2",{"number":9852,"type":1134,"author":9711,"provisional":9377,"depends":9601,"ratified":9723,"contact":9737,"extension":9853,"proposal":6826},456,"VK_EXT_extended_dynamic_state3",{"number":9855,"type":1134,"author":9646,"provisional":9377,"depends":9856,"ratified":9723,"contact":9857,"extension":9858,"proposal":6826},454,"VK_KHR_external_memory,VK_VERSION_1_1","Lina Versace @linyaa-kiwi","VK_EXT_external_memory_acquire_unmodified",{"number":9860,"type":1134,"author":9646,"provisional":9377,"depends":9861,"ratified":9749,"contact":9857,"extension":9862,"proposal":9377},126,"VK_KHR_external_memory_fd","VK_EXT_external_memory_dma_buf",{"number":9864,"type":1134,"author":9646,"provisional":9377,"depends":9856,"ratified":9749,"contact":9597,"extension":9865,"proposal":9377},179,"VK_EXT_external_memory_host",{"number":9867,"type":1134,"author":9868,"provisional":9377,"ratified":9723,"contact":9869,"extension":9870,"proposal":9377},171,"QCOM","Matthew Netsch @mnetsch","VK_EXT_filter_cubic",{"number":9872,"type":1134,"author":9646,"provisional":9377,"depends":9601,"contact":9869,"extension":9873,"proposal":9377},219,"VK_EXT_fragment_density_map",{"number":9875,"type":1134,"author":9646,"provisional":9377,"depends":9873,"contact":9869,"extension":9876,"proposal":9377},333,"VK_EXT_fragment_density_map2",{"number":9878,"type":1134,"author":9646,"provisional":9377,"depends":9601,"contact":9737,"extension":9879,"proposal":9377},252,"VK_EXT_fragment_shader_interlock",{"number":9881,"type":1134,"author":9646,"provisional":9377,"ratified":9723,"contact":9882,"extension":9883,"proposal":6826},376,"James Fitzpatrick @jamesfitzpatrick","VK_EXT_frame_boundary",{"number":9885,"type":1134,"author":9646,"provisional":9377,"depends":9886,"platform":9887,"ratified":9723,"contact":9713,"extension":9888,"proposal":9377},256,"(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_KHR_surface+VK_KHR_get_surface_capabilities2+VK_KHR_swapchain","win32","VK_EXT_full_screen_exclusive",{"number":9890,"type":1134,"author":9646,"promotedto":9891,"provisional":9377,"contact":9892,"extension":9893,"proposal":9377},175,"VK_KHR_global_priority","Andres Rodriguez @lostgoat","VK_EXT_global_priority",{"number":9895,"type":1134,"author":9646,"promotedto":9891,"provisional":9377,"depends":9896,"contact":9819,"extension":9897,"proposal":9377},389,"VK_EXT_global_priority+(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)","VK_EXT_global_priority_query",{"number":9899,"type":1134,"author":9585,"provisional":9377,"depends":9900,"contact":9588,"extension":9901,"proposal":6826},321,"(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_KHR_pipeline_library","VK_EXT_graphics_pipeline_library",{"number":9903,"type":1134,"author":9769,"provisional":9377,"depends":9904,"ratified":9749,"contact":9770,"extension":9905,"proposal":9377},106,"VK_KHR_swapchain","VK_EXT_hdr_metadata",{"number":9907,"type":9705,"author":9646,"provisional":9377,"depends":9826,"contact":9908,"extension":9909,"proposal":9377},257,"Lisa Wu @chengtianww","VK_EXT_headless_surface",{"number":9911,"type":1134,"author":9646,"provisional":9377,"depends":9912,"ratified":9723,"contact":9788,"extension":9913,"proposal":6826},271,"((VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_KHR_copy_commands2+VK_KHR_format_feature_flags2),VK_VERSION_1_3","VK_EXT_host_image_copy",{"number":9915,"type":1134,"author":9646,"promotedto":9801,"provisional":9377,"depends":9601,"contact":9916,"extension":9917,"proposal":9377},262,"Bas Nieuwenhuizen @BNieuwenhuizen","VK_EXT_host_query_reset",{"number":9919,"type":1134,"author":9646,"provisional":9377,"depends":9920,"specialuse":9669,"contact":9725,"extension":9921,"proposal":9377},394,"(VK_KHR_maintenance1+VK_KHR_get_physical_device_properties2),VK_VERSION_1_1","VK_EXT_image_2d_view_of_3d",{"number":9923,"type":1134,"author":9646,"provisional":9377,"depends":9601,"contact":9680,"extension":9924,"proposal":6826},339,"VK_EXT_image_compression_control",{"number":9926,"type":1134,"author":9646,"provisional":9377,"depends":9924,"contact":9680,"extension":9927,"proposal":9377},438,"VK_EXT_image_compression_control_swapchain",{"number":9929,"type":1134,"author":9646,"provisional":9377,"depends":9930,"ratified":9723,"contact":9857,"extension":9931,"proposal":9377},159,"(((VK_KHR_bind_memory2+VK_KHR_get_physical_device_properties2+VK_KHR_sampler_ycbcr_conversion),VK_VERSION_1_1)+VK_KHR_image_format_list),VK_VERSION_1_2","VK_EXT_image_drm_format_modifier",{"number":9933,"type":1134,"author":9646,"promotedto":9699,"provisional":9377,"depends":9601,"ratified":9700,"contact":9784,"extension":9934,"proposal":9377},336,"VK_EXT_image_robustness",{"number":9936,"type":1134,"author":9646,"provisional":9377,"depends":9920,"specialuse":9776,"contact":9725,"extension":9937,"proposal":6826},419,"VK_EXT_image_sliced_view_of_3d",{"number":9939,"type":1134,"author":9646,"provisional":9377,"depends":9601,"contact":9701,"extension":9940,"proposal":9377},392,"VK_EXT_image_view_min_lod",{"number":9942,"type":1134,"author":9646,"promotedto":9943,"provisional":9377,"depends":9601,"contact":9737,"extension":9944,"proposal":9377},266,"VK_KHR_index_type_uint8","VK_EXT_index_type_uint8",{"number":9946,"type":1134,"author":9646,"promotedto":9699,"provisional":9377,"depends":9947,"contact":9948,"extension":9949,"proposal":9377},139,"(VK_KHR_get_physical_device_properties2+VK_KHR_maintenance1),VK_VERSION_1_1","Daniel Rakos @aqnuep","VK_EXT_inline_uniform_block",{"number":9951,"type":9705,"author":9646,"provisional":9377,"ratified":9723,"contact":9952,"extension":9953,"proposal":6826},497,"Christophe Riccio @christophe","VK_EXT_layer_settings",{"number":9955,"type":1134,"author":9646,"provisional":9377,"depends":9601,"specialuse":9669,"contact":9788,"extension":9956,"proposal":6826},466,"VK_EXT_legacy_dithering",{"number":9958,"type":1134,"author":9646,"provisional":9377,"depends":9959,"ratified":9723,"specialuse":9669,"contact":9725,"extension":9960,"proposal":6826},496,"VK_EXT_vertex_input_dynamic_state","VK_EXT_legacy_vertex_attributes",{"number":9962,"type":1134,"author":9646,"promotedto":9963,"provisional":9377,"depends":9601,"specialuse":9964,"contact":9732,"extension":9965,"proposal":9377},260,"VK_KHR_line_rasterization","cadsupport","VK_EXT_line_rasterization",{"number":9967,"type":1134,"author":9646,"promotedto":9968,"provisional":9377,"ratified":9723,"contact":9788,"extension":9969,"proposal":9377},401,"VK_KHR_load_store_op_none","VK_EXT_load_store_op_none",{"number":9971,"type":1134,"author":9646,"provisional":9377,"depends":9972,"ratified":9723,"contact":9973,"extension":9974,"proposal":6826},273,"VK_KHR_map_memory2","Faith Ekstrand @gfxstrand","VK_EXT_map_memory_placed",{"number":9976,"type":1134,"author":9646,"provisional":9377,"depends":9601,"ratified":9723,"contact":9732,"extension":9977,"proposal":9377},238,"VK_EXT_memory_budget",{"number":9979,"type":1134,"author":9646,"provisional":9377,"depends":9601,"ratified":9723,"contact":9732,"extension":9980,"proposal":9377},239,"VK_EXT_memory_priority",{"number":9982,"type":1134,"author":9646,"provisional":9377,"depends":9983,"contact":9984,"extension":9985,"proposal":6826},329,"VK_KHR_spirv_1_4","Christoph Kubisch @pixeljetstream","VK_EXT_mesh_shader",{"number":9987,"type":1134,"author":9646,"provisional":9377,"platform":9988,"contact":9989,"extension":9990,"proposal":6826},312,"metal","Bill Hollings @billhollings","VK_EXT_metal_objects",{"number":9992,"type":9705,"author":9646,"provisional":9377,"depends":9826,"platform":9988,"contact":9993,"extension":9994,"proposal":9377},218,"Dzmitry Malyshau @kvark","VK_EXT_metal_surface",{"number":9996,"type":1134,"author":9646,"provisional":9377,"depends":9601,"contact":9725,"extension":9997,"proposal":9377},393,"VK_EXT_multi_draw",{"number":9999,"type":1134,"author":9646,"provisional":9377,"depends":10000,"contact":9788,"extension":10001,"proposal":6826},377,"(VK_KHR_create_renderpass2+VK_KHR_depth_stencil_resolve),VK_VERSION_1_2","VK_EXT_multisampled_render_to_single_sampled",{"number":10003,"type":1134,"author":9646,"provisional":9377,"depends":10004,"specialuse":9776,"contact":10005,"extension":10006,"proposal":6826},495,"VK_KHR_maintenance3","Joshua Ashton @Joshua-Ashton,Hans-Kristian Arntzen @HansKristian-Work","VK_EXT_mutable_descriptor_type",{"number":10008,"type":1134,"author":9646,"provisional":9377,"depends":9601,"ratified":9723,"contact":9737,"extension":10009,"proposal":9377},452,"VK_EXT_nested_command_buffer",{"number":10011,"type":1134,"author":9646,"provisional":9377,"depends":9601,"specialuse":10012,"contact":10013,"extension":10014,"proposal":6826},423,"d3demulation,glemulation","Georg Lehmann @DadSchoorse","VK_EXT_non_seamless_cube_map",{"number":10016,"type":1134,"author":9646,"provisional":9377,"depends":10017,"ratified":9723,"contact":10018,"extension":10019,"proposal":6826},397,"VK_KHR_acceleration_structure+(VK_KHR_synchronization2,VK_VERSION_1_3)","Christoph Kubisch @pixeljetstream, Eric Werness","VK_EXT_opacity_micromap",{"number":10021,"type":1134,"author":9646,"provisional":9377,"depends":9980,"contact":9737,"extension":10022,"proposal":9377},413,"VK_EXT_pageable_device_local_memory",{"number":10024,"type":1134,"author":9646,"provisional":9377,"depends":9601,"ratified":9749,"contact":9606,"extension":10025,"proposal":9377},213,"VK_EXT_pci_bus_info",{"number":10027,"type":1134,"author":9646,"provisional":9377,"depends":9601,"contact":10028,"extension":10029,"proposal":9377},354,"Simon Ser @emersion","VK_EXT_physical_device_drm",{"number":10031,"type":1134,"author":9585,"promotedto":9699,"provisional":9377,"depends":9601,"contact":10032,"extension":10033,"proposal":9377},298,"Gregory Grebe @grgrebe_amd","VK_EXT_pipeline_creation_cache_control",{"number":10035,"type":1134,"author":9769,"promotedto":9699,"provisional":9377,"specialuse":9596,"contact":10036,"extension":10037,"proposal":9377},193,"Jean-Francois Roy @jfroy","VK_EXT_pipeline_creation_feedback",{"number":10039,"type":1134,"author":9646,"provisional":9377,"depends":10040,"contact":10041,"extension":10042,"proposal":6826},499,"VK_KHR_ray_tracing_pipeline+VK_KHR_pipeline_library","Hans-Kristian Arntzen @HansKristian-Work","VK_EXT_pipeline_library_group_handles",{"number":10044,"type":1134,"author":9646,"provisional":9377,"depends":9601,"contact":10045,"extension":10046,"proposal":9377},373,"Mukund Keshava @mkeshavanv","VK_EXT_pipeline_properties",{"number":10048,"type":1134,"author":9646,"provisional":9377,"depends":9601,"contact":9788,"extension":10049,"proposal":6826},467,"VK_EXT_pipeline_protected_access",{"number":10051,"type":1134,"author":10052,"provisional":9377,"depends":9601,"contact":10053,"extension":10054,"proposal":9377},69,"IMG","Jarred Davies","VK_EXT_pipeline_robustness",{"number":10056,"type":1134,"author":9711,"provisional":9377,"ratified":9723,"contact":10057,"extension":10058,"proposal":9377},156,"Daniel Koch @dgkoch","VK_EXT_post_depth_coverage",{"number":10060,"type":1134,"author":9646,"provisional":9377,"depends":9904,"ratified":9723,"contact":10061,"extension":10062,"proposal":6826},362,"Lionel Duc @nvlduc","VK_EXT_present_mode_fifo_latest_ready",{"number":10064,"type":1134,"author":9646,"provisional":9377,"depends":9601,"ratified":9723,"specialuse":9669,"contact":9788,"extension":10065,"proposal":9377},357,"VK_EXT_primitive_topology_list_restart",{"number":10067,"type":1134,"author":9646,"provisional":9377,"depends":8137,"specialuse":9669,"contact":9788,"extension":10068,"proposal":6826},383,"VK_EXT_primitives_generated_query",{"number":10070,"type":1134,"author":9711,"promotedto":9699,"provisional":9377,"depends":9601,"contact":10071,"extension":10072,"proposal":9377},296,"Matthew Rusch @mattruschnv","VK_EXT_private_data",{"number":10074,"type":1134,"author":9646,"provisional":9377,"depends":9601,"ratified":9723,"specialuse":9669,"contact":10075,"extension":10076,"proposal":9377},255,"Jesse Hall @jessehall","VK_EXT_provoking_vertex",{"number":10078,"type":1134,"author":9646,"provisional":9377,"depends":9856,"ratified":9749,"contact":9857,"extension":10079,"proposal":9377},127,"VK_EXT_queue_family_foreign",{"number":10081,"type":1134,"author":9678,"provisional":9377,"depends":9601,"contact":9680,"extension":9679,"proposal":6826},464,{"number":10083,"type":1134,"author":9646,"provisional":9377,"depends":10084,"contact":9680,"extension":10085,"proposal":9377},345,"VK_KHR_sampler_ycbcr_conversion,VK_VERSION_1_1","VK_EXT_rgba10x6_formats",{"number":10087,"type":1134,"author":9646,"provisional":9377,"depends":9601,"ratified":9749,"contact":9761,"extension":10088,"proposal":9377},287,"VK_EXT_robustness2",{"number":10090,"type":1134,"author":9585,"provisional":9377,"depends":9601,"ratified":9749,"contact":9597,"extension":10091,"proposal":9377},144,"VK_EXT_sample_locations",{"number":10093,"type":1134,"author":9711,"promotedto":9801,"provisional":9377,"depends":9601,"contact":9732,"extension":10094,"proposal":9377},131,"VK_EXT_sampler_filter_minmax",{"number":10096,"type":1134,"author":9646,"promotedto":9801,"provisional":9377,"depends":9601,"contact":9588,"extension":10097,"proposal":9377},222,"VK_EXT_scalar_block_layout",{"number":10099,"type":1134,"author":9646,"promotedto":9801,"provisional":9377,"contact":9597,"extension":10100,"proposal":9377},247,"VK_EXT_separate_stencil_usage",{"number":10102,"type":1134,"author":9711,"provisional":9377,"depends":9601,"ratified":9749,"contact":9849,"extension":10103,"proposal":9377},261,"VK_EXT_shader_atomic_float",{"number":10105,"type":1134,"author":9646,"provisional":9377,"depends":10103,"ratified":9723,"contact":9973,"extension":10106,"proposal":9377},274,"VK_EXT_shader_atomic_float2",{"number":10108,"type":1134,"author":9646,"promotedto":9699,"provisional":9377,"depends":9601,"ratified":9700,"contact":9732,"extension":10109,"proposal":9377},277,"VK_EXT_shader_demote_to_helper_invocation",{"number":10111,"type":1134,"author":9646,"provisional":9377,"depends":9601,"ratified":9723,"contact":9588,"extension":10112,"proposal":9377},235,"VK_EXT_shader_image_atomic_int64",{"number":10114,"type":1134,"author":9646,"provisional":9377,"depends":10115,"contact":10041,"extension":10116,"proposal":6826},463,"((VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_EXT_pipeline_creation_cache_control),VK_VERSION_1_3","VK_EXT_shader_module_identifier",{"number":10118,"type":1134,"author":9646,"provisional":9377,"depends":9842,"ratified":9723,"contact":10119,"extension":10120,"proposal":6826},483,"Daniel Story @daniel-story","VK_EXT_shader_object",{"number":10122,"type":1134,"author":9646,"provisional":9377,"ratified":9723,"contact":9689,"extension":10123,"proposal":6826},565,"VK_EXT_shader_replicated_composites",{"number":10125,"type":1134,"author":9646,"provisional":9377,"ratified":9749,"contact":9612,"extension":10126,"proposal":9377},141,"VK_EXT_shader_stencil_export",{"number":10128,"type":1134,"author":9711,"deprecatedby":9801,"provisional":9377,"contact":10057,"extension":10129,"proposal":9377},65,"VK_EXT_shader_subgroup_ballot",{"number":10131,"type":1134,"author":9711,"deprecatedby":9695,"provisional":9377,"contact":10057,"extension":10132,"proposal":9377},66,"VK_EXT_shader_subgroup_vote",{"number":10134,"type":1134,"author":9646,"provisional":9377,"depends":9699,"ratified":9723,"contact":9680,"extension":10135,"proposal":6826},396,"VK_EXT_shader_tile_image",{"number":10137,"type":1134,"author":9711,"promotedto":9801,"provisional":9377,"contact":10057,"extension":10138,"proposal":9377},163,"VK_EXT_shader_viewport_index_layer",{"number":10140,"type":1134,"author":9646,"promotedto":9699,"provisional":9377,"depends":9695,"ratified":9700,"contact":10141,"extension":10142,"proposal":9377},226,"Neil Henning @sheredom","VK_EXT_subgroup_size_control",{"number":10144,"type":1134,"author":9646,"provisional":9377,"depends":9601,"contact":10145,"extension":10146,"proposal":6826},459,"Ting Wei @catweiting","VK_EXT_subpass_merge_feedback",{"number":10148,"type":9705,"author":9646,"provisional":9377,"depends":10149,"contact":9788,"extension":10150,"proposal":6826},275,"VK_KHR_surface+VK_KHR_get_surface_capabilities2","VK_EXT_surface_maintenance1",{"number":10152,"type":9705,"author":9769,"provisional":9377,"depends":9826,"contact":9770,"extension":10153,"proposal":9377},105,"VK_EXT_swapchain_colorspace",{"number":10155,"type":1134,"author":9646,"provisional":9377,"depends":10156,"contact":9788,"extension":10157,"proposal":6826},276,"VK_KHR_swapchain+VK_EXT_surface_maintenance1+(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)","VK_EXT_swapchain_maintenance1",{"number":10159,"type":1134,"author":9646,"promotedto":9699,"provisional":9377,"depends":9601,"ratified":9700,"contact":9732,"extension":10160,"proposal":9377},282,"VK_EXT_texel_buffer_alignment",{"number":10162,"type":1134,"author":9678,"promotedto":9699,"provisional":9377,"depends":9601,"ratified":9700,"contact":9680,"extension":10163,"proposal":9377},67,"VK_EXT_texture_compression_astc_hdr",{"number":10165,"type":1134,"author":9646,"promotedto":9699,"provisional":9377,"contact":9588,"extension":10166,"proposal":9377},246,"VK_EXT_tooling_info",{"number":9473,"type":1134,"author":9711,"provisional":9377,"depends":9601,"ratified":9723,"specialuse":10168,"contact":9737,"extension":8137,"proposal":9377},"glemulation,d3demulation,devtools",{"number":10170,"type":1134,"author":9769,"provisional":9377,"contact":10171,"extension":10172,"proposal":9377},161,"Cort Stratton @cdwfs","VK_EXT_validation_cache",{"number":10174,"type":9705,"author":10175,"deprecatedby":9953,"provisional":9377,"specialuse":9554,"contact":10176,"extension":10177,"proposal":9377},248,"LUNARG","Karl Schultz @karl-lunarg","VK_EXT_validation_features",{"number":10179,"type":9705,"author":9769,"deprecatedby":9953,"provisional":9377,"specialuse":9554,"contact":10180,"extension":10181,"proposal":9377},62,"Tobin Ehlis @tobine","VK_EXT_validation_flags",{"number":10183,"type":1134,"author":9711,"promotedto":10184,"provisional":9377,"depends":9601,"contact":9754,"extension":10185,"proposal":9377},191,"VK_KHR_vertex_attribute_divisor","VK_EXT_vertex_attribute_divisor",{"number":10187,"type":1134,"author":9646,"provisional":9377,"depends":9601,"ratified":9723,"contact":9737,"extension":9959,"proposal":9377},353,{"number":10189,"type":1134,"author":9646,"promotedto":9699,"provisional":9377,"depends":10084,"ratified":9700,"contact":10190,"extension":10191,"proposal":9377},331,"Tony Zlatinski @tzlatinski","VK_EXT_ycbcr_2plane_444_formats",{"number":10193,"type":1134,"author":9646,"provisional":9377,"depends":10084,"ratified":9749,"contact":9737,"extension":10194,"proposal":9377},253,"VK_EXT_ycbcr_image_arrays",{"number":10196,"type":1134,"author":10197,"provisional":9377,"depends":10198,"platform":10199,"contact":10200,"extension":10201,"proposal":9377},367,"FUCHSIA","VK_FUCHSIA_external_memory+(VK_KHR_sampler_ycbcr_conversion,VK_VERSION_1_1)","fuchsia","John Rosasco @rosasco","VK_FUCHSIA_buffer_collection",{"number":10203,"type":1134,"author":10197,"provisional":9377,"depends":10204,"platform":10199,"contact":10200,"extension":10205,"proposal":9377},365,"(VK_KHR_external_memory_capabilities+VK_KHR_external_memory),VK_VERSION_1_1","VK_FUCHSIA_external_memory",{"number":10207,"type":1134,"author":10197,"provisional":9377,"depends":10208,"platform":10199,"contact":10200,"extension":10209,"proposal":9377},366,"VK_KHR_external_semaphore_capabilities+VK_KHR_external_semaphore","VK_FUCHSIA_external_semaphore",{"number":10211,"type":9705,"author":10197,"provisional":9377,"depends":9826,"platform":10199,"contact":10212,"extension":10213,"proposal":9377},215,"Craig Stout @cdotstout","VK_FUCHSIA_imagepipe_surface",{"number":10215,"type":1134,"author":10216,"provisional":9377,"depends":10217,"platform":10218,"contact":10036,"extension":10219,"proposal":9377},192,"GGP","VK_KHR_swapchain+VK_GGP_stream_descriptor_surface","ggp","VK_GGP_frame_token",{"number":10221,"type":9705,"author":10216,"provisional":9377,"depends":9826,"platform":10218,"contact":10036,"extension":10222,"proposal":9377},50,"VK_GGP_stream_descriptor_surface",{"number":10224,"type":1134,"author":9769,"provisional":9377,"contact":10225,"extension":10226,"proposal":9377},225,"Hai Nguyen @chaoticbob","VK_GOOGLE_decorate_string",{"number":10228,"type":1134,"author":9769,"provisional":9377,"depends":9904,"contact":10229,"extension":10230,"proposal":9377},93,"Ian Elliott @ianelliottus","VK_GOOGLE_display_timing",{"number":10232,"type":1134,"author":9769,"provisional":9377,"contact":10225,"extension":10233,"proposal":9377},224,"VK_GOOGLE_hlsl_functionality1",{"number":10235,"type":9705,"author":9769,"provisional":9377,"depends":9826,"specialuse":9669,"contact":9788,"extension":10236,"proposal":6826},434,"VK_GOOGLE_surfaceless_query",{"number":10238,"type":1134,"author":9769,"provisional":9377,"contact":10239,"extension":10240,"proposal":9377},290,"Kaye Mason @chaleur","VK_GOOGLE_user_type",{"number":10242,"type":1134,"author":10243,"provisional":9377,"depends":9601,"contact":10244,"extension":10245,"proposal":6826},405,"HUAWEI","Yuchang Wang @richard_Wang2","VK_HUAWEI_cluster_culling_shader",{"number":10247,"type":1134,"author":10248,"provisional":9377,"depends":10249,"contact":10250,"extension":10251,"proposal":6826},371,"Huawei","VK_KHR_ray_tracing_pipeline+(VK_KHR_synchronization2,VK_VERSION_1_3)","Pan Gao @PanGao-h","VK_HUAWEI_invocation_mask",{"number":10253,"type":1134,"author":10243,"provisional":9377,"depends":10254,"contact":10250,"extension":10255,"proposal":9377},370,"((VK_KHR_create_renderpass2,VK_VERSION_1_2)+VK_KHR_synchronization2),VK_VERSION_1_3","VK_HUAWEI_subpass_shading",{"number":4743,"type":1134,"author":10052,"provisional":9377,"contact":9588,"extension":10257,"proposal":9377},"VK_IMG_filter_cubic",{"number":10259,"type":1134,"author":10052,"deprecatedby":10260,"provisional":9377,"contact":10261,"extension":10262,"proposal":9377},55,null,"Stuart Smith","VK_IMG_format_pvrtc",{"number":10264,"type":1134,"author":10052,"provisional":9377,"depends":9601,"specialuse":9669,"contact":9882,"extension":10265,"proposal":9377},111,"VK_IMG_relaxed_line_rasterization",{"number":10267,"type":1134,"author":10268,"provisional":9377,"specialuse":9596,"contact":10269,"extension":10270,"proposal":9377},211,"INTEL","Lionel Landwerlin @llandwerlin","VK_INTEL_performance_query",{"number":10272,"type":1134,"author":10268,"provisional":9377,"depends":9601,"contact":10273,"extension":10274,"proposal":9377},210,"Ian Romanick @ianromanick","VK_INTEL_shader_integer_functions2",{"number":10276,"type":1134,"author":10277,"promotedto":9695,"provisional":9377,"depends":10278,"ratified":9723,"contact":9680,"extension":10279,"proposal":9377},84,"KHR","(VK_KHR_get_physical_device_properties2+VK_KHR_storage_buffer_storage_class),VK_VERSION_1_1","VK_KHR_16bit_storage",{"number":10281,"type":1134,"author":10277,"promotedto":9801,"provisional":9377,"depends":10278,"ratified":9723,"contact":10282,"extension":10283,"proposal":9377},178,"Alexander Galazin @alegal-arm","VK_KHR_8bit_storage",{"number":10285,"type":1134,"author":10277,"provisional":9377,"depends":10286,"ratified":9723,"contact":10057,"extension":10287,"proposal":9377},151,"((VK_VERSION_1_1+VK_EXT_descriptor_indexing+VK_KHR_buffer_device_address),VK_VERSION_1_2)+VK_KHR_deferred_host_operations","VK_KHR_acceleration_structure",{"number":731,"type":9705,"author":10277,"provisional":9377,"depends":9826,"platform":9668,"ratified":9723,"contact":9675,"extension":10289,"proposal":9377},"VK_KHR_android_surface",{"number":10291,"type":1134,"author":10277,"promotedto":9695,"provisional":9377,"ratified":9723,"contact":9588,"extension":10292,"proposal":9377},158,"VK_KHR_bind_memory2",{"number":10294,"type":1134,"author":10277,"promotedto":9801,"provisional":9377,"depends":10295,"ratified":9723,"contact":9732,"extension":9741,"proposal":9377},258,"(VK_KHR_get_physical_device_properties2+VK_KHR_device_group),VK_VERSION_1_1",{"number":10297,"type":1134,"author":10277,"provisional":9377,"depends":9601,"ratified":9749,"contact":9948,"extension":9745,"proposal":9377},544,{"number":10299,"type":1134,"author":10277,"provisional":9377,"depends":10300,"ratified":9723,"contact":10301,"extension":10302,"proposal":6826},512,"VK_KHR_get_physical_device_properties2","Jean-Noe Morissette @MagicPoncho","VK_KHR_compute_shader_derivatives",{"number":10304,"type":1134,"author":10277,"provisional":9377,"depends":9601,"ratified":9723,"contact":9689,"extension":10305,"proposal":6826},507,"VK_KHR_cooperative_matrix",{"number":10307,"type":1134,"author":10277,"promotedto":9699,"provisional":9377,"depends":9601,"ratified":9749,"contact":9869,"extension":10308,"proposal":9377},338,"VK_KHR_copy_commands2",{"number":10310,"type":1134,"author":10277,"promotedto":9801,"provisional":9377,"depends":10311,"ratified":9723,"contact":10312,"extension":10313,"proposal":9377},110,"(VK_KHR_multiview+VK_KHR_maintenance2),VK_VERSION_1_1","Tobias Hector @tobias","VK_KHR_create_renderpass2",{"number":10315,"type":1134,"author":10277,"promotedto":9695,"provisional":9377,"depends":10316,"ratified":9723,"contact":9713,"extension":10317,"proposal":9377},128,"VK_KHR_get_memory_requirements2,VK_VERSION_1_1","VK_KHR_dedicated_allocation",{"number":10319,"type":1134,"author":10277,"provisional":9377,"ratified":9723,"contact":10320,"extension":10321,"proposal":9377},269,"Josh Barczak @jbarczak","VK_KHR_deferred_host_operations",{"number":10323,"type":1134,"author":10277,"promotedto":9801,"provisional":9377,"depends":10324,"ratified":9723,"contact":10325,"extension":10326,"proposal":9377},200,"VK_KHR_create_renderpass2,VK_VERSION_1_2","Jan-Harald Fredriksen @janharald","VK_KHR_depth_stencil_resolve",{"number":10328,"type":1134,"author":10277,"promotedto":9695,"provisional":9377,"ratified":9723,"contact":10329,"extension":10330,"proposal":9377},86,"Markus Tavenrath @mtavenrath","VK_KHR_descriptor_update_template",{"number":10332,"type":1134,"author":10277,"promotedto":9695,"provisional":9377,"depends":10333,"ratified":9723,"contact":9732,"extension":10334,"proposal":9377},61,"VK_KHR_device_group_creation","VK_KHR_device_group",{"number":10336,"type":9705,"author":10277,"promotedto":9695,"provisional":9377,"ratified":9723,"contact":9732,"extension":10333,"proposal":9377},71,{"number":599,"type":9705,"author":10277,"provisional":9377,"depends":9826,"ratified":9749,"contact":10338,"extension":9823,"proposal":9377},"James Jones @cubanismo,Norbert Nopper @FslNopper",{"number":650,"type":1134,"author":10277,"provisional":9377,"depends":10340,"ratified":9749,"contact":9713,"extension":10341,"proposal":9377},"VK_KHR_swapchain+VK_KHR_display","VK_KHR_display_swapchain",{"number":10343,"type":1134,"author":10277,"promotedto":9801,"provisional":9377,"ratified":9723,"contact":9737,"extension":9609,"proposal":9377},170,{"number":10345,"type":1134,"author":10277,"promotedto":9801,"provisional":9377,"depends":9601,"ratified":9723,"contact":9597,"extension":10346,"proposal":9377},197,"VK_KHR_driver_properties",{"number":9537,"type":1134,"author":10277,"promotedto":9699,"provisional":9377,"depends":10348,"ratified":9723,"contact":9588,"extension":10349,"proposal":6826},"((VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_KHR_depth_stencil_resolve),VK_VERSION_1_2","VK_KHR_dynamic_rendering",{"number":10351,"type":1134,"author":9585,"provisional":9377,"depends":10352,"ratified":9723,"contact":9588,"extension":10353,"proposal":6826},233,"VK_KHR_dynamic_rendering,VK_VERSION_1_3","VK_KHR_dynamic_rendering_local_read",{"number":10355,"type":1134,"author":10277,"promotedto":9695,"provisional":9377,"depends":10356,"ratified":9723,"contact":9675,"extension":10357,"proposal":9377},114,"VK_KHR_external_fence_capabilities","VK_KHR_external_fence",{"number":10359,"type":9705,"author":10277,"promotedto":9695,"provisional":9377,"depends":9601,"ratified":9723,"contact":9675,"extension":10356,"proposal":9377},113,{"number":10361,"type":1134,"author":10277,"provisional":9377,"depends":10362,"ratified":9749,"contact":9675,"extension":10363,"proposal":9377},116,"VK_KHR_external_fence,VK_VERSION_1_1","VK_KHR_external_fence_fd",{"number":10365,"type":1134,"author":10277,"provisional":9377,"depends":10357,"platform":9887,"ratified":9723,"contact":9675,"extension":10366,"proposal":9377},115,"VK_KHR_external_fence_win32",{"number":10368,"type":1134,"author":10277,"promotedto":9695,"provisional":9377,"depends":10369,"ratified":9723,"contact":9713,"extension":10370,"proposal":9377},73,"VK_KHR_external_memory_capabilities,VK_VERSION_1_1","VK_KHR_external_memory",{"number":10372,"type":9705,"author":10277,"promotedto":9695,"provisional":9377,"depends":9601,"ratified":9723,"contact":9713,"extension":10373,"proposal":9377},72,"VK_KHR_external_memory_capabilities",{"number":10375,"type":1134,"author":10277,"provisional":9377,"depends":9856,"ratified":9749,"contact":9713,"extension":9861,"proposal":9377},75,{"number":10377,"type":1134,"author":10277,"provisional":9377,"depends":9856,"platform":9887,"ratified":9723,"contact":9713,"extension":10378,"proposal":9377},74,"VK_KHR_external_memory_win32",{"number":10380,"type":1134,"author":10277,"promotedto":9695,"provisional":9377,"depends":10381,"ratified":9723,"contact":9713,"extension":10382,"proposal":9377},78,"VK_KHR_external_semaphore_capabilities","VK_KHR_external_semaphore",{"number":10384,"type":9705,"author":10277,"promotedto":9695,"provisional":9377,"depends":9601,"ratified":9723,"contact":9713,"extension":10381,"proposal":9377},77,{"number":10386,"type":1134,"author":10277,"provisional":9377,"depends":10387,"ratified":9749,"contact":9713,"extension":10388,"proposal":9377},80,"VK_KHR_external_semaphore,VK_VERSION_1_1","VK_KHR_external_semaphore_fd",{"number":10390,"type":1134,"author":10277,"provisional":9377,"depends":10382,"platform":9887,"ratified":9723,"contact":9713,"extension":10391,"proposal":9377},79,"VK_KHR_external_semaphore_win32",{"number":10393,"type":1134,"author":10277,"promotedto":9699,"provisional":9377,"depends":9601,"ratified":9723,"contact":10269,"extension":10394,"proposal":9377},361,"VK_KHR_format_feature_flags2",{"number":10396,"type":1134,"author":10277,"provisional":9377,"depends":9601,"ratified":9723,"contact":9592,"extension":10397,"proposal":6826},323,"VK_KHR_fragment_shader_barycentric",{"number":10399,"type":1134,"author":10277,"provisional":9377,"depends":10400,"ratified":9749,"contact":9588,"extension":10401,"proposal":6826},227,"((VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_KHR_create_renderpass2),VK_VERSION_1_2","VK_KHR_fragment_shading_rate",{"number":10403,"type":9705,"author":10277,"provisional":9377,"depends":9823,"ratified":9749,"contact":9713,"extension":10404,"proposal":9377},122,"VK_KHR_get_display_properties2",{"number":10406,"type":1134,"author":10277,"promotedto":9695,"provisional":9377,"ratified":9723,"contact":9973,"extension":10407,"proposal":9377},147,"VK_KHR_get_memory_requirements2",{"number":10409,"type":9705,"author":10277,"promotedto":9695,"provisional":9377,"ratified":9723,"contact":9732,"extension":10300,"proposal":9377},60,{"number":10411,"type":9705,"author":10277,"provisional":9377,"depends":9826,"ratified":9749,"contact":9713,"extension":10412,"proposal":9377},120,"VK_KHR_get_surface_capabilities2",{"number":10414,"type":1134,"author":10277,"provisional":9377,"depends":9601,"ratified":9749,"contact":9588,"extension":9891,"proposal":9377},189,{"number":10416,"type":1134,"author":10277,"promotedto":9801,"provisional":9377,"ratified":9723,"contact":9973,"extension":10417,"proposal":9377},148,"VK_KHR_image_format_list",{"number":10419,"type":1134,"author":10277,"promotedto":9801,"provisional":9377,"depends":10420,"ratified":9723,"contact":10312,"extension":10421,"proposal":9377},109,"(((VK_KHR_get_physical_device_properties2+VK_KHR_maintenance2),VK_VERSION_1_1)+VK_KHR_image_format_list),VK_VERSION_1_2","VK_KHR_imageless_framebuffer",{"number":10423,"type":1134,"author":10277,"provisional":9377,"depends":9904,"ratified":9749,"contact":10229,"extension":10424,"proposal":9377},85,"VK_KHR_incremental_present",{"number":10426,"type":1134,"author":10277,"provisional":9377,"depends":9601,"ratified":9749,"contact":9737,"extension":9943,"proposal":9377},534,{"number":10428,"type":1134,"author":10277,"provisional":9377,"depends":9601,"ratified":9749,"contact":9737,"extension":9963,"proposal":9377},535,{"number":10430,"type":1134,"author":10277,"provisional":9377,"ratified":9723,"contact":9788,"extension":9968,"proposal":6826},527,{"number":10432,"type":1134,"author":10277,"promotedto":9695,"provisional":9377,"ratified":9723,"contact":9737,"extension":9629,"proposal":9377},70,{"number":10434,"type":1134,"author":10277,"promotedto":9695,"provisional":9377,"ratified":9723,"contact":10435,"extension":10436,"proposal":9377},118,"Michael Worcester @michaelworcester","VK_KHR_maintenance2",{"number":10438,"type":1134,"author":10277,"promotedto":9695,"provisional":9377,"depends":9601,"ratified":9723,"contact":9732,"extension":10004,"proposal":9377},169,{"number":10440,"type":1134,"author":10277,"promotedto":9699,"provisional":9377,"depends":9695,"ratified":9723,"contact":9737,"extension":10441,"proposal":9377},414,"VK_KHR_maintenance4",{"number":10443,"type":1134,"author":10277,"provisional":9377,"depends":10444,"ratified":9723,"contact":10445,"extension":10446,"proposal":6826},471,"(VK_VERSION_1_1+VK_KHR_dynamic_rendering),VK_VERSION_1_3","Stu Smith @stu-s","VK_KHR_maintenance5",{"number":10448,"type":1134,"author":10277,"provisional":9377,"depends":9695,"ratified":9723,"contact":10449,"extension":10450,"proposal":6826},546,"Jon Leech @oddhack","VK_KHR_maintenance6",{"number":10452,"type":1134,"author":10277,"provisional":9377,"depends":9695,"ratified":9723,"contact":9725,"extension":10453,"proposal":6826},563,"VK_KHR_maintenance7",{"number":10455,"type":1134,"author":10277,"provisional":9377,"ratified":9723,"contact":9973,"extension":9972,"proposal":6826},272,{"number":10457,"type":1134,"author":10277,"promotedto":9695,"provisional":9377,"depends":9601,"ratified":9723,"contact":9732,"extension":10458,"proposal":9377},54,"VK_KHR_multiview",{"extension":10460,"proposal":9377},"VK_KHR_object_refresh",{"number":10462,"type":1134,"author":10277,"provisional":9377,"depends":9601,"ratified":9749,"specialuse":9596,"contact":10463,"extension":10464,"proposal":9377},117,"Alon Or-bach @alonorbach","VK_KHR_performance_query",{"number":10466,"type":1134,"author":10277,"provisional":9377,"depends":10446,"ratified":9723,"contact":10445,"extension":10467,"proposal":6826},484,"VK_KHR_pipeline_binary",{"number":10469,"type":1134,"author":10277,"provisional":9377,"depends":9601,"ratified":9723,"specialuse":9596,"contact":9973,"extension":10470,"proposal":9377},270,"VK_KHR_pipeline_executable_properties",{"number":10472,"type":1134,"author":10277,"provisional":9377,"ratified":9723,"contact":9984,"extension":10473,"proposal":9377},291,"VK_KHR_pipeline_library",{"number":10475,"type":9705,"author":10277,"provisional":9377,"ratified":9723,"contact":10476,"extension":10477,"proposal":9377},395,"Charles Giessen @charles-lunarg","VK_KHR_portability_enumeration",{"number":10479,"type":1134,"author":10277,"provisional":6826,"depends":9601,"platform":9587,"ratified":9723,"contact":9989,"extension":10480,"proposal":9377},164,"VK_KHR_portability_subset",{"number":10482,"type":1134,"author":10277,"provisional":9377,"depends":10483,"ratified":9723,"contact":10484,"extension":10485,"proposal":9377},295,"VK_KHR_swapchain+VK_KHR_get_physical_device_properties2,VK_VERSION_1_1","Keith Packard @keithp","VK_KHR_present_id",{"number":10487,"type":1134,"author":10277,"provisional":9377,"depends":10488,"ratified":9723,"contact":10484,"extension":10489,"proposal":9377},249,"VK_KHR_swapchain+VK_KHR_present_id","VK_KHR_present_wait",{"number":10491,"type":1134,"author":10277,"provisional":9377,"depends":9601,"ratified":9723,"contact":9732,"extension":10492,"proposal":9377},81,"VK_KHR_push_descriptor",{"number":10494,"type":1134,"author":10277,"provisional":9377,"depends":10495,"ratified":9723,"contact":10057,"extension":10496,"proposal":9377},349,"VK_KHR_spirv_1_4+VK_KHR_acceleration_structure","VK_KHR_ray_query",{"number":10498,"type":1134,"author":10277,"provisional":9377,"depends":10287,"ratified":9723,"contact":10057,"extension":6110,"proposal":9377},387,{"number":10500,"type":1134,"author":10277,"provisional":9377,"depends":10495,"ratified":9723,"contact":10057,"extension":10501,"proposal":9377},348,"VK_KHR_ray_tracing_pipeline",{"number":10503,"type":1134,"author":10277,"provisional":9377,"depends":10287,"ratified":9723,"contact":10504,"extension":10505,"proposal":6826},482,"Eric Werness","VK_KHR_ray_tracing_position_fetch",{"number":10507,"type":1134,"author":10277,"promotedto":9695,"provisional":9377,"ratified":9723,"contact":10508,"extension":10509,"proposal":9377},145,"John Kessenich @johnkslang","VK_KHR_relaxed_block_layout",{"number":4734,"type":1134,"author":10277,"promotedto":9801,"provisional":9377,"ratified":9723,"contact":9588,"extension":10511,"proposal":9377},"VK_KHR_sampler_mirror_clamp_to_edge",{"number":10513,"type":1134,"author":10277,"promotedto":9695,"provisional":9377,"depends":10514,"ratified":9723,"contact":10515,"extension":10516,"proposal":9377},157,"(VK_KHR_maintenance1+VK_KHR_bind_memory2+VK_KHR_get_memory_requirements2+VK_KHR_get_physical_device_properties2),VK_VERSION_1_1","Andrew Garrard @fluppeteer","VK_KHR_sampler_ycbcr_conversion",{"number":10518,"type":1134,"author":10277,"promotedto":9801,"provisional":9377,"depends":10400,"ratified":9723,"contact":9737,"extension":10519,"proposal":9377},242,"VK_KHR_separate_depth_stencil_layouts",{"number":10521,"type":1134,"author":10277,"promotedto":9801,"provisional":9377,"depends":9601,"ratified":9723,"contact":10522,"extension":10523,"proposal":9377},181,"Aaron Hagan @ahagan","VK_KHR_shader_atomic_int64",{"number":10525,"type":1134,"author":10277,"provisional":9377,"depends":9601,"ratified":9749,"contact":10522,"extension":10526,"proposal":9377},182,"VK_KHR_shader_clock",{"number":10528,"type":1134,"author":10277,"promotedto":9695,"provisional":9377,"ratified":9723,"contact":10057,"extension":10529,"proposal":9377},64,"VK_KHR_shader_draw_parameters",{"number":10531,"type":1134,"author":10277,"provisional":9377,"depends":9601,"ratified":9723,"contact":9689,"extension":10532,"proposal":6826},545,"VK_KHR_shader_expect_assume",{"number":10534,"type":1134,"author":10277,"promotedto":9801,"provisional":9377,"depends":9601,"ratified":9723,"contact":10282,"extension":9615,"proposal":9377},83,{"number":10536,"type":1134,"author":10277,"promotedto":9801,"provisional":9377,"depends":9601,"ratified":9723,"contact":10282,"extension":10537,"proposal":9377},198,"VK_KHR_shader_float_controls",{"number":10539,"type":1134,"author":10277,"provisional":9377,"depends":10540,"ratified":9723,"contact":9784,"extension":10541,"proposal":6826},529,"VK_VERSION_1_1+VK_KHR_shader_float_controls","VK_KHR_shader_float_controls2",{"number":10543,"type":1134,"author":10277,"promotedto":9699,"provisional":9377,"depends":9601,"ratified":9723,"contact":9689,"extension":10544,"proposal":6826},281,"VK_KHR_shader_integer_dot_product",{"number":10546,"type":1134,"author":10277,"provisional":9377,"depends":9695,"ratified":9723,"contact":10547,"extension":10548,"proposal":6826},435,"Alan Baker @alan-baker","VK_KHR_shader_maximal_reconvergence",{"number":10550,"type":1134,"author":10277,"promotedto":9699,"provisional":9377,"ratified":9723,"contact":9766,"extension":10551,"proposal":9377},294,"VK_KHR_shader_non_semantic_info",{"number":10553,"type":1134,"author":10277,"provisional":9377,"depends":10554,"ratified":9723,"contact":9588,"extension":10555,"proposal":6826},236,"VK_VERSION_1_1+VK_KHR_vulkan_memory_model+VK_KHR_shader_maximal_reconvergence","VK_KHR_shader_quad_control",{"number":10557,"type":1134,"author":10277,"provisional":9377,"ratified":9723,"contact":10558,"extension":10559,"proposal":6826},559,"Nathan Gauër @Keenuts","VK_KHR_shader_relaxed_extended_instruction",{"number":10561,"type":1134,"author":10277,"promotedto":9801,"provisional":9377,"depends":9695,"ratified":9723,"contact":10141,"extension":10562,"proposal":9377},176,"VK_KHR_shader_subgroup_extended_types",{"number":10564,"type":1134,"author":10277,"provisional":9377,"ratified":9723,"contact":9689,"extension":10565,"proposal":6826},417,"VK_KHR_shader_subgroup_rotate",{"number":10567,"type":1134,"author":10277,"provisional":9377,"depends":9695,"ratified":9723,"contact":10547,"extension":10568,"proposal":9377},324,"VK_KHR_shader_subgroup_uniform_control_flow",{"number":10570,"type":1134,"author":10277,"promotedto":9699,"provisional":9377,"depends":9601,"ratified":9749,"contact":9675,"extension":10571,"proposal":9377},216,"VK_KHR_shader_terminate_invocation",{"number":10573,"type":1134,"author":10277,"provisional":9377,"depends":10574,"ratified":9749,"contact":10463,"extension":10575,"proposal":9377},112,"VK_KHR_swapchain+VK_KHR_get_surface_capabilities2+(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)","VK_KHR_shared_presentable_image",{"number":10577,"type":1134,"author":10277,"promotedto":9801,"provisional":9377,"depends":10540,"ratified":9723,"contact":9675,"extension":9983,"proposal":9377},237,{"number":10579,"type":1134,"author":10277,"promotedto":9695,"provisional":9377,"ratified":9723,"contact":10282,"extension":10580,"proposal":9377},132,"VK_KHR_storage_buffer_storage_class",{"number":569,"type":9705,"author":10277,"provisional":9377,"ratified":9749,"contact":10582,"extension":9826,"proposal":9377},"James Jones @cubanismo,Ian Elliott @ianelliottus",{"number":10584,"type":9705,"author":10277,"provisional":9377,"depends":10585,"ratified":9723,"contact":10586,"extension":10587,"proposal":9377},240,"VK_VERSION_1_1+VK_KHR_get_surface_capabilities2","Sandeep Shinde @sashinde","VK_KHR_surface_protected_capabilities",{"number":590,"type":1134,"author":10277,"provisional":9377,"depends":9826,"ratified":9749,"contact":10582,"extension":9904,"proposal":9377},{"number":10590,"type":1134,"author":10277,"provisional":9377,"depends":10591,"ratified":9749,"contact":9597,"extension":10592,"proposal":9377},201,"VK_KHR_swapchain+(VK_KHR_maintenance2,VK_VERSION_1_1)+(VK_KHR_image_format_list,VK_VERSION_1_2)","VK_KHR_swapchain_mutable_format",{"number":10594,"type":1134,"author":10277,"promotedto":9699,"provisional":9377,"depends":9601,"ratified":9749,"contact":9588,"extension":10595,"proposal":9377},315,"VK_KHR_synchronization2",{"number":10597,"type":1134,"author":10277,"promotedto":9801,"provisional":9377,"depends":9601,"ratified":9723,"contact":9973,"extension":10598,"proposal":9377},208,"VK_KHR_timeline_semaphore",{"number":10600,"type":1134,"author":10277,"promotedto":9801,"provisional":9377,"depends":9601,"ratified":9723,"contact":9784,"extension":10601,"proposal":9377},254,"VK_KHR_uniform_buffer_standard_layout",{"number":10603,"type":1134,"author":10277,"promotedto":9695,"provisional":9377,"depends":10278,"ratified":9723,"contact":9675,"extension":10604,"proposal":9377},121,"VK_KHR_variable_pointers",{"number":10606,"type":1134,"author":10277,"provisional":9377,"depends":9601,"ratified":9749,"contact":9788,"extension":10184,"proposal":6826},526,{"number":10608,"type":1134,"author":10277,"provisional":9377,"depends":10609,"ratified":9723,"contact":9948,"extension":10610,"proposal":6826},513,"VK_KHR_video_decode_queue","VK_KHR_video_decode_av1",{"number":9521,"type":1134,"author":10277,"provisional":9377,"depends":10609,"ratified":9723,"contact":10612,"extension":10613,"proposal":6826},"peter.fang@amd.com","VK_KHR_video_decode_h264",{"number":10615,"type":1134,"author":10277,"provisional":9377,"depends":10609,"ratified":9723,"contact":10612,"extension":10616,"proposal":6826},188,"VK_KHR_video_decode_h265",{"number":9457,"type":1134,"author":10277,"provisional":9377,"depends":10618,"ratified":9723,"contact":10619,"extension":10609,"proposal":6826},"VK_KHR_video_queue+(VK_KHR_synchronization2,VK_VERSION_1_3)","jake.beju@amd.com",{"number":9513,"type":1134,"author":10277,"provisional":9377,"depends":10621,"ratified":9723,"contact":10622,"extension":10623,"proposal":6826},"VK_KHR_video_encode_queue","Ahmed Abdelkhalek @aabdelkh","VK_KHR_video_encode_h264",{"number":9517,"type":1134,"author":10277,"provisional":9377,"depends":10621,"ratified":9723,"contact":10622,"extension":10625,"proposal":6826},"VK_KHR_video_encode_h265",{"number":10627,"type":1134,"author":10277,"provisional":9377,"depends":10618,"ratified":9723,"contact":10622,"extension":10621,"proposal":6826},300,{"number":10629,"type":1134,"author":10277,"provisional":9377,"depends":10630,"ratified":9723,"contact":9948,"extension":10631,"proposal":6826},516,"VK_KHR_video_queue","VK_KHR_video_maintenance1",{"number":9453,"type":1134,"author":10277,"provisional":9377,"depends":10633,"ratified":9723,"contact":10190,"extension":10630,"proposal":6826},"(VK_VERSION_1_1+VK_KHR_synchronization2),VK_VERSION_1_3",{"number":10635,"type":1134,"author":10277,"promotedto":9801,"provisional":9377,"depends":9601,"ratified":9723,"contact":9732,"extension":10636,"proposal":9377},212,"VK_KHR_vulkan_memory_model",{"number":697,"type":9705,"author":10277,"provisional":9377,"depends":9826,"platform":10638,"ratified":9723,"contact":10639,"extension":10640,"proposal":9377},"wayland","Jesse Hall @critsec,Ian Elliott @ianelliottus","VK_KHR_wayland_surface",{"number":10642,"type":1134,"author":10277,"provisional":9377,"depends":10378,"platform":9887,"ratified":9723,"contact":10643,"extension":10644,"proposal":9377},76,"Carsten Rohde @crohde","VK_KHR_win32_keyed_mutex",{"number":1951,"type":9705,"author":10277,"provisional":9377,"depends":9826,"platform":9887,"ratified":9723,"contact":10639,"extension":10646,"proposal":9377},"VK_KHR_win32_surface",{"number":10648,"type":1134,"author":10277,"provisional":9377,"depends":9601,"ratified":9723,"contact":10649,"extension":10650,"proposal":9377},337,"Caio Marcelo de Oliveira Filho @cmarcelo","VK_KHR_workgroup_memory_explicit_layout",{"number":678,"type":9705,"author":10277,"provisional":9377,"depends":9826,"platform":10652,"ratified":9723,"contact":10639,"extension":10653,"proposal":9377},"xcb","VK_KHR_xcb_surface",{"number":659,"type":9705,"author":10277,"provisional":9377,"depends":9826,"platform":10655,"ratified":9723,"contact":10639,"extension":10656,"proposal":9377},"xlib","VK_KHR_xlib_surface",{"number":10658,"type":1134,"author":10277,"promotedto":9699,"provisional":9377,"depends":9601,"ratified":9723,"contact":10547,"extension":10659,"proposal":9377},326,"VK_KHR_zero_initialize_workgroup_memory",{"number":10661,"type":9705,"author":10175,"provisional":9377,"contact":10476,"extension":10662,"proposal":6826},460,"VK_LUNARG_direct_driver_loading",{"number":10664,"type":1134,"author":10665,"provisional":9377,"depends":9601,"specialuse":9776,"contact":10041,"extension":10666,"proposal":9377},576,"MESA","VK_MESA_image_alignment_control",{"number":10668,"type":1134,"author":10669,"provisional":9377,"depends":9601,"contact":10670,"extension":10671,"proposal":6826},531,"MSFT","Jesse Natalie @jenatali","VK_MSFT_layered_driver",{"number":10673,"type":9705,"author":10674,"deprecatedby":9994,"provisional":9377,"depends":9826,"platform":10675,"contact":9989,"extension":10676,"proposal":9377},123,"MVK","ios","VK_MVK_ios_surface",{"number":10678,"type":9705,"author":10674,"deprecatedby":9994,"provisional":9377,"depends":9826,"platform":10679,"contact":9989,"extension":10680,"proposal":9377},124,"macos","VK_MVK_macos_surface",{"number":10682,"type":9705,"author":10683,"provisional":9377,"depends":9826,"platform":10684,"contact":10685,"extension":10686,"proposal":9377},63,"NN","vi","Mathias Heyer gitlab:@mheyer","VK_NN_vi_surface",{"number":9477,"type":1134,"author":10688,"provisional":9377,"contact":10689,"extension":10690,"proposal":9377},"NVX","Eric Werness @ewerness-nv,Liam Middlebrook @liam-middlebrook","VK_NVX_binary_import",{"number":9481,"type":1134,"author":10688,"provisional":9377,"contact":10692,"extension":10693,"proposal":9377},"Eric Werness @ewerness-nv","VK_NVX_image_view_handle",{"number":10695,"type":1134,"author":10688,"provisional":9377,"depends":10696,"contact":9732,"extension":10697,"proposal":9377},98,"VK_KHR_multiview,VK_VERSION_1_1","VK_NVX_multiview_per_view_attributes",{"number":10699,"type":1134,"author":9711,"provisional":9377,"depends":9706,"platform":9887,"contact":10700,"extension":10701,"proposal":9377},346,"Jeff Juliano @jjuliano","VK_NV_acquire_winrt_display",{"number":10703,"type":1134,"author":9711,"provisional":9377,"contact":10692,"extension":10704,"proposal":9377},88,"VK_NV_clip_space_w_scaling",{"number":10706,"type":1134,"author":9711,"provisional":9377,"contact":10707,"extension":10708,"proposal":9377},560,"Lujin Wang @lujinwangnv","VK_NV_command_buffer_inheritance",{"number":10710,"type":1134,"author":9711,"promotedto":10302,"provisional":9377,"depends":9601,"contact":10711,"extension":10712,"proposal":9377},202,"Pat Brown @nvpbrown","VK_NV_compute_shader_derivatives",{"number":10714,"type":1134,"author":9711,"provisional":9377,"depends":9601,"contact":9732,"extension":10715,"proposal":9377},250,"VK_NV_cooperative_matrix",{"number":10717,"type":1134,"author":9711,"provisional":9377,"depends":10718,"contact":9849,"extension":10719,"proposal":9377},427,"((VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_KHR_buffer_device_address),VK_VERSION_1_2","VK_NV_copy_memory_indirect",{"number":10721,"type":1134,"author":9711,"provisional":9377,"depends":9601,"contact":10057,"extension":10722,"proposal":9377},51,"VK_NV_corner_sampled_image",{"number":10724,"type":1134,"author":9711,"provisional":9377,"depends":10725,"contact":10726,"extension":10727,"proposal":9377},251,"VK_NV_framebuffer_mixed_samples+(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)","Kedarnath Thangudu @kthangudu","VK_NV_coverage_reduction_mode",{"number":10729,"type":1134,"author":9711,"provisional":6826,"contact":10730,"extension":10731,"proposal":9377},308,"Tristan Lorach @tlorach","VK_NV_cuda_kernel_launch",{"number":9465,"type":1134,"author":9711,"deprecatedby":10317,"provisional":9377,"contact":9732,"extension":10733,"proposal":9377},"VK_NV_dedicated_allocation",{"number":10735,"type":1134,"author":10736,"provisional":9377,"depends":10737,"contact":10738,"extension":10739,"proposal":9377},241,"NVIDIA","(VK_KHR_dedicated_allocation+VK_KHR_get_physical_device_properties2),VK_VERSION_1_1","Nuno Subtil @nsubtil","VK_NV_dedicated_allocation_image_aliasing",{"number":10741,"type":1134,"author":9711,"provisional":9377,"depends":9695,"contact":9737,"extension":10742,"proposal":9377},547,"VK_NV_descriptor_pool_overallocation",{"number":10744,"type":1134,"author":10736,"provisional":9377,"depends":9601,"contact":10738,"extension":10745,"proposal":9377},207,"VK_NV_device_diagnostic_checkpoints",{"number":10747,"type":1134,"author":9711,"provisional":9377,"depends":9601,"contact":10726,"extension":10748,"proposal":9377},301,"VK_NV_device_diagnostics_config",{"number":10750,"type":1134,"author":9711,"provisional":9377,"depends":10751,"contact":9984,"extension":450,"proposal":9377},278,"(VK_VERSION_1_1+VK_KHR_buffer_device_address),VK_VERSION_1_2",{"number":10753,"type":1134,"author":9711,"provisional":9377,"depends":450,"contact":9849,"extension":516,"proposal":9377},429,{"number":10755,"type":1134,"author":9711,"provisional":6826,"depends":10019,"platform":9587,"contact":10756,"extension":10757,"proposal":9377},398,"Christoph Kubisch @pixeljetstream, Eric Werness @ewerness-nv","VK_NV_displacement_micromap",{"number":10759,"type":1134,"author":9711,"provisional":9377,"contact":10760,"extension":10761,"proposal":9377},493,"Russell Chou @russellcnv","VK_NV_extended_sparse_address_space",{"number":10763,"type":1134,"author":9711,"deprecatedby":10370,"provisional":9377,"depends":10764,"contact":9713,"extension":10765,"proposal":9377},57,"VK_NV_external_memory_capabilities","VK_NV_external_memory",{"number":10767,"type":9705,"author":9711,"deprecatedby":10373,"provisional":9377,"contact":9713,"extension":10764,"proposal":9377},56,{"number":10769,"type":1134,"author":9711,"provisional":9377,"depends":9856,"contact":10643,"extension":10770,"proposal":9377},372,"VK_NV_external_memory_rdma",{"extension":10772,"proposal":9377},"VK_NV_external_memory_sci_buf",{"number":10774,"type":1134,"author":9711,"deprecatedby":10378,"provisional":9377,"depends":10765,"platform":9887,"contact":9713,"extension":10775,"proposal":9377},58,"VK_NV_external_memory_win32",{"extension":10777,"proposal":9377},"VK_NV_external_sci_sync",{"extension":10779,"proposal":9377},"VK_NV_external_sci_sync2",{"number":10781,"type":1134,"author":9711,"provisional":9377,"contact":9732,"extension":10782,"proposal":9377},154,"VK_NV_fill_rectangle",{"number":10784,"type":1134,"author":9711,"provisional":9377,"contact":9732,"extension":10785,"proposal":9377},150,"VK_NV_fragment_coverage_to_color",{"number":10787,"type":1134,"author":9711,"promotedto":10397,"provisional":9377,"depends":9601,"contact":10711,"extension":10788,"proposal":9377},204,"VK_NV_fragment_shader_barycentric",{"number":10790,"type":1134,"author":9711,"provisional":9377,"depends":10401,"contact":10711,"extension":10791,"proposal":9377},327,"VK_NV_fragment_shading_rate_enums",{"number":10793,"type":1134,"author":9711,"provisional":9377,"contact":9732,"extension":10794,"proposal":9377},153,"VK_NV_framebuffer_mixed_samples",{"number":10796,"type":1134,"author":9711,"provisional":9377,"contact":10057,"extension":10797,"proposal":9377},96,"VK_NV_geometry_shader_passthrough",{"number":4716,"type":1134,"author":9711,"deprecatedby":10260,"provisional":9377,"contact":9737,"extension":10799,"proposal":9377},"VK_NV_glsl_shader",{"number":10801,"type":1134,"author":9711,"provisional":9377,"depends":9601,"contact":10802,"extension":10803,"proposal":9377},279,"David Zhao Akeley @akeley98","VK_NV_inherited_viewport_scissor",{"number":10805,"type":1134,"author":10736,"provisional":9377,"depends":9601,"contact":10806,"extension":10807,"proposal":9377},431,"sourav parmar @souravpNV","VK_NV_linear_color_attachment",{"number":10809,"type":1134,"author":9711,"provisional":9377,"contact":10810,"extension":10811,"proposal":9377},311,"Charles Hansen @cshansen","VK_NV_low_latency",{"number":10813,"type":1134,"author":9711,"provisional":9377,"depends":10814,"contact":10810,"extension":10815,"proposal":9377},506,"VK_VERSION_1_2,VK_KHR_timeline_semaphore","VK_NV_low_latency2",{"number":10817,"type":1134,"author":9711,"provisional":9377,"depends":10718,"contact":9849,"extension":10818,"proposal":9377},428,"VK_NV_memory_decompression",{"number":10820,"type":1134,"author":9711,"provisional":9377,"depends":9601,"contact":9984,"extension":10821,"proposal":9377},203,"VK_NV_mesh_shader",{"number":10823,"type":1134,"author":9711,"provisional":9377,"depends":10824,"contact":10643,"extension":10825,"proposal":9377},465,"((VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_KHR_format_feature_flags2+VK_KHR_synchronization2),VK_VERSION_1_3","VK_NV_optical_flow",{"number":10827,"type":1134,"author":9711,"provisional":9377,"depends":10450,"contact":9737,"extension":10828,"proposal":9377},517,"VK_NV_per_stage_descriptor_set",{"number":10830,"type":1134,"author":9711,"provisional":9377,"depends":9886,"contact":10831,"extension":10832,"proposal":9377},293,"Liya Li @liyli","VK_NV_present_barrier",{"extension":10834,"proposal":9377},"VK_NV_private_vendor_info",{"number":10836,"type":1134,"author":9711,"provisional":9377,"contact":10837,"extension":10838,"proposal":9377},556,"Rodrigo Locatti @rlocatti","VK_NV_raw_access_chains",{"number":10840,"type":1134,"author":9711,"deprecatedby":10501,"provisional":9377,"depends":10841,"contact":10692,"extension":10842,"proposal":9377},166,"(VK_KHR_get_physical_device_properties2+VK_KHR_get_memory_requirements2),VK_VERSION_1_1","VK_NV_ray_tracing",{"number":10844,"type":1134,"author":9711,"provisional":9377,"depends":10501,"contact":10692,"extension":10845,"proposal":9377},491,"VK_NV_ray_tracing_invocation_reorder",{"number":10847,"type":1134,"author":9711,"provisional":9377,"depends":10501,"contact":10504,"extension":10848,"proposal":9377},328,"VK_NV_ray_tracing_motion_blur",{"number":10850,"type":1134,"author":9711,"provisional":9377,"contact":9849,"extension":10851,"proposal":6826},569,"VK_NV_ray_tracing_validation",{"number":10853,"type":1134,"author":9711,"provisional":9377,"depends":9601,"contact":10726,"extension":10854,"proposal":9377},167,"VK_NV_representative_fragment_test",{"number":10856,"type":1134,"author":9711,"provisional":9377,"contact":9737,"extension":10857,"proposal":9377},95,"VK_NV_sample_mask_override_coverage",{"number":10859,"type":1134,"author":9711,"provisional":9377,"depends":9601,"contact":10711,"extension":10860,"proposal":9377},206,"VK_NV_scissor_exclusive",{"number":10862,"type":1134,"author":9711,"provisional":9377,"contact":9732,"extension":10863,"proposal":9377},564,"VK_NV_shader_atomic_float16_vector",{"number":10865,"type":1134,"author":9711,"provisional":9377,"depends":9601,"contact":10711,"extension":10866,"proposal":9377},205,"VK_NV_shader_image_footprint",{"number":10868,"type":1134,"author":9711,"provisional":9377,"depends":9695,"contact":10057,"extension":10869,"proposal":9377},155,"VK_NV_shader_sm_builtins",{"number":10871,"type":1134,"author":9711,"provisional":9377,"depends":9695,"contact":9732,"extension":10872,"proposal":9377},199,"VK_NV_shader_subgroup_partitioned",{"number":10874,"type":1134,"author":9711,"provisional":9377,"depends":9601,"contact":10711,"extension":10875,"proposal":9377},165,"VK_NV_shading_rate_image",{"number":10877,"type":1134,"author":9711,"provisional":9377,"contact":10057,"extension":10878,"proposal":9377},97,"VK_NV_viewport_array2",{"number":10880,"type":1134,"author":9711,"provisional":9377,"contact":9737,"extension":10881,"proposal":9377},99,"VK_NV_viewport_swizzle",{"number":10883,"type":1134,"author":9711,"promotedto":10644,"provisional":9377,"depends":10775,"platform":9887,"contact":10643,"extension":10884,"proposal":9377},59,"VK_NV_win32_keyed_mutex",{"number":10886,"type":1134,"author":9868,"provisional":9377,"depends":10887,"contact":9869,"extension":10888,"proposal":9377},522,"(VK_EXT_filter_cubic)+(VK_VERSION_1_2,VK_EXT_sampler_filter_minmax)","VK_QCOM_filter_cubic_clamp",{"number":10890,"type":1134,"author":9868,"provisional":9377,"depends":9870,"contact":9869,"extension":10891,"proposal":9377},520,"VK_QCOM_filter_cubic_weights",{"number":10893,"type":1134,"author":9868,"provisional":9377,"depends":10894,"contact":9869,"extension":10895,"proposal":9377},426,"(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_EXT_fragment_density_map","VK_QCOM_fragment_density_map_offset",{"number":10897,"type":1134,"author":9868,"provisional":9377,"depends":10898,"contact":9869,"extension":10899,"proposal":6826},441,"VK_KHR_format_feature_flags2,VK_VERSION_1_3","VK_QCOM_image_processing",{"number":10901,"type":1134,"author":9868,"provisional":9377,"depends":10899,"contact":9869,"extension":10902,"proposal":9377},519,"VK_QCOM_image_processing2",{"number":10904,"type":1134,"author":9868,"provisional":9377,"contact":9869,"extension":10905,"proposal":9377},511,"VK_QCOM_multiview_per_view_render_areas",{"number":10907,"type":1134,"author":9868,"provisional":9377,"depends":9601,"contact":9869,"extension":10908,"proposal":9377},489,"VK_QCOM_multiview_per_view_viewports",{"number":10910,"type":1134,"author":9868,"provisional":9377,"contact":9869,"extension":10911,"proposal":9377},172,"VK_QCOM_render_pass_shader_resolve",{"number":10913,"type":1134,"author":9868,"provisional":9377,"contact":9869,"extension":10914,"proposal":9377},302,"VK_QCOM_render_pass_store_ops",{"number":10916,"type":1134,"author":9868,"provisional":9377,"contact":9869,"extension":10917,"proposal":9377},283,"VK_QCOM_render_pass_transform",{"number":10919,"type":1134,"author":9868,"provisional":9377,"depends":10920,"contact":9869,"extension":10921,"proposal":9377},334,"VK_KHR_copy_commands2,VK_VERSION_1_3","VK_QCOM_rotated_copy_commands",{"number":10923,"type":1134,"author":9868,"provisional":9377,"depends":9601,"contact":9869,"extension":10924,"proposal":6826},485,"VK_QCOM_tile_properties",{"number":10926,"type":1134,"author":9868,"provisional":9377,"contact":9869,"extension":10927,"proposal":9377},521,"VK_QCOM_ycbcr_degamma",{"number":10929,"type":1134,"author":10930,"provisional":9377,"depends":9674,"platform":10931,"contact":10932,"extension":10933,"proposal":9377},530,"QNX","screen","Mike Gorchak @mgorchak-blackberry, Aaron Ruby @aruby-blackberry","VK_QNX_external_memory_screen_buffer",{"number":10935,"type":9705,"author":10930,"provisional":9377,"depends":9826,"platform":10931,"contact":10936,"extension":10937,"proposal":9377},379,"Mike Gorchak @mgorchak-blackberry","VK_QNX_screen_surface",{"number":10939,"type":1134,"author":10940,"provisional":9377,"depends":9601,"contact":9808,"extension":10941,"proposal":9377},486,"SEC","VK_SEC_amigo_profiling",{"number":10943,"type":1134,"author":10944,"provisional":9377,"depends":9601,"specialuse":9776,"contact":10041,"extension":10945,"proposal":9377},421,"VALVE","VK_VALVE_descriptor_set_host_mapping",{"number":10947,"type":1134,"author":10944,"promotedto":10006,"provisional":9377,"depends":10004,"specialuse":9776,"contact":10005,"extension":10948,"proposal":9377},352,"VK_VALVE_mutable_descriptor_type",1729612547564]