[{"data":1,"prerenderedAt":11029},["ShallowReactive",2],{"Ut4eQJIw6U":3,"VyF3Mmj32r":9372,"N9m89Rcq0G":9586},{"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,1796,1806,1959,2091,2101,2165,2211,2216,2306,2338,2344,2349,2453,2510,2610,2662,2682,2693,2768,2793,2803,2875,2898,2904,2909,2928,2933,2938,3046,3102,3112,3234,3363,3392,3405,3503,3568,3573,3661,3693,3699,3720,3731,3814,3856,3861,3976,3981,3987,3992,4577,4590,4602,4760,4766,4778,4790,4833,4868,4873,4878,4953,4959,4971,4976,5015,5029,5035,5054,5058,5093,5114,5120,5137,5196,5260,5265,5304,5326,5331,5429,5466,5499,5505,5521,5582,5628,5633,5676,5690,5709,5715,5720,5804,5810,5815,5885,5897,5958,5998,6010,6075,6081,6097,6103,6126,6132,6137,6142,6234,6283,6295,6305,6400,6488,6507,6512,6545,6555,6616,6629,6639,6725,6754,6760,6766,6785,6890,6958,6964,6969,7112,7332,7362,7367,7455,7517,7522,7527,7612,7651,7670,7676,7681,7759,7815,7821,7826,8006,8011,8058,8063,8099,8104,8129,8149,8160,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,1381],{"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},"type",{"type":15,"value":1372}," is a ",{"type":10,"tag":151,"props":1374,"children":1376},{"className":1375},[],[1377],{"type":15,"value":1378},"VkIndirectExecutionSetInfoTypeEXT",{"type":15,"value":1380}," describing the type of set being created and determining which field of the info union will be used.",{"type":10,"tag":33,"props":1382,"children":1383},{},[1384,1390,1391,1397],{"type":10,"tag":151,"props":1385,"children":1387},{"className":1386},[],[1388],{"type":15,"value":1389},"info",{"type":15,"value":1372},{"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,1785],{"type":10,"tag":33,"props":1760,"children":1761},{},[1762,1768,1770,1776,1778,1784],{"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":1775},"0",{"type":15,"value":1777},".\nThe bind point must be supported by ",{"type":10,"tag":151,"props":1779,"children":1781},{"className":1780},[],[1782],{"type":15,"value":1783},"VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT::supportedIndirectCommandsShaderStagesPipelineBinding",{"type":15,"value":301},{"type":10,"tag":33,"props":1786,"children":1787},{},[1788,1794],{"type":10,"tag":151,"props":1789,"children":1791},{"className":1790},[],[1792],{"type":15,"value":1793},"maxPipelineCount",{"type":15,"value":1795}," is the maximum number of pipelines stored in the set.",{"type":10,"tag":11,"props":1797,"children":1798},{},[1799,1800,1805],{"type":15,"value":444},{"type":10,"tag":151,"props":1801,"children":1803},{"className":1802},[],[1804],{"type":15,"value":1669},{"type":15,"value":1284},{"type":10,"tag":555,"props":1807,"children":1809},{"className":557,"code":1808,"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",[1810],{"type":10,"tag":151,"props":1811,"children":1812},{"__ignoreMap":560},[1813,1829,1836,1851,1863,1884,1905,1917,1929,1950],{"type":10,"tag":566,"props":1814,"children":1815},{"class":568,"line":569},[1816,1820,1824],{"type":10,"tag":566,"props":1817,"children":1818},{"style":579},[1819],{"type":15,"value":1299},{"type":10,"tag":566,"props":1821,"children":1822},{"style":579},[1823],{"type":15,"value":1304},{"type":10,"tag":566,"props":1825,"children":1826},{"style":573},[1827],{"type":15,"value":1828}," VkIndirectExecutionSetShaderInfoEXT {\n",{"type":10,"tag":566,"props":1830,"children":1831},{"class":568,"line":590},[1832],{"type":10,"tag":566,"props":1833,"children":1834},{"style":573},[1835],{"type":15,"value":1317},{"type":10,"tag":566,"props":1837,"children":1838},{"class":568,"line":599},[1839,1843,1847],{"type":10,"tag":566,"props":1840,"children":1841},{"style":579},[1842],{"type":15,"value":1147},{"type":10,"tag":566,"props":1844,"children":1845},{"style":579},[1846],{"type":15,"value":1329},{"type":10,"tag":566,"props":1848,"children":1849},{"style":573},[1850],{"type":15,"value":1334},{"type":10,"tag":566,"props":1852,"children":1853},{"class":568,"line":650},[1854,1858],{"type":10,"tag":566,"props":1855,"children":1856},{"style":579},[1857],{"type":15,"value":1742},{"type":10,"tag":566,"props":1859,"children":1860},{"style":573},[1861],{"type":15,"value":1862}," shaderCount;\n",{"type":10,"tag":566,"props":1864,"children":1865},{"class":568,"line":659},[1866,1870,1875,1879],{"type":10,"tag":566,"props":1867,"children":1868},{"style":579},[1869],{"type":15,"value":1147},{"type":10,"tag":566,"props":1871,"children":1872},{"style":573},[1873],{"type":15,"value":1874}," VkShaderEXT ",{"type":10,"tag":566,"props":1876,"children":1877},{"style":579},[1878],{"type":15,"value":1157},{"type":10,"tag":566,"props":1880,"children":1881},{"style":573},[1882],{"type":15,"value":1883},"pInitialShaders;\n",{"type":10,"tag":566,"props":1885,"children":1886},{"class":568,"line":678},[1887,1891,1896,1900],{"type":10,"tag":566,"props":1888,"children":1889},{"style":579},[1890],{"type":15,"value":1147},{"type":10,"tag":566,"props":1892,"children":1893},{"style":573},[1894],{"type":15,"value":1895}," VkIndirectExecutionSetShaderLayoutInfoEXT ",{"type":10,"tag":566,"props":1897,"children":1898},{"style":579},[1899],{"type":15,"value":1157},{"type":10,"tag":566,"props":1901,"children":1902},{"style":573},[1903],{"type":15,"value":1904},"pSetLayoutInfos;\n",{"type":10,"tag":566,"props":1906,"children":1907},{"class":568,"line":697},[1908,1912],{"type":10,"tag":566,"props":1909,"children":1910},{"style":579},[1911],{"type":15,"value":1742},{"type":10,"tag":566,"props":1913,"children":1914},{"style":573},[1915],{"type":15,"value":1916}," maxShaderCount;\n",{"type":10,"tag":566,"props":1918,"children":1919},{"class":568,"line":714},[1920,1924],{"type":10,"tag":566,"props":1921,"children":1922},{"style":579},[1923],{"type":15,"value":1742},{"type":10,"tag":566,"props":1925,"children":1926},{"style":573},[1927],{"type":15,"value":1928}," pushConstantRangeCount;\n",{"type":10,"tag":566,"props":1930,"children":1931},{"class":568,"line":731},[1932,1936,1941,1945],{"type":10,"tag":566,"props":1933,"children":1934},{"style":579},[1935],{"type":15,"value":1147},{"type":10,"tag":566,"props":1937,"children":1938},{"style":573},[1939],{"type":15,"value":1940}," VkPushConstantRange ",{"type":10,"tag":566,"props":1942,"children":1943},{"style":579},[1944],{"type":15,"value":1157},{"type":10,"tag":566,"props":1946,"children":1947},{"style":573},[1948],{"type":15,"value":1949},"pPushConstantRanges;\n",{"type":10,"tag":566,"props":1951,"children":1953},{"class":568,"line":1952},10,[1954],{"type":10,"tag":566,"props":1955,"children":1956},{"style":573},[1957],{"type":15,"value":1958},"} VkIndirectExecutionSetShaderInfoEXT;\n",{"type":10,"tag":29,"props":1960,"children":1961},{},[1962,1988,2019,2044,2055,2073],{"type":10,"tag":33,"props":1963,"children":1964},{},[1965,1971,1973,1979,1980,1986],{"type":10,"tag":151,"props":1966,"children":1968},{"className":1967},[],[1969],{"type":15,"value":1970},"shaderCount",{"type":15,"value":1972}," is the number of members in the ",{"type":10,"tag":151,"props":1974,"children":1976},{"className":1975},[],[1977],{"type":15,"value":1978},"pInitialShaders",{"type":15,"value":293},{"type":10,"tag":151,"props":1981,"children":1983},{"className":1982},[],[1984],{"type":15,"value":1985},"pSetLayoutInfos",{"type":15,"value":1987}," arrays.",{"type":10,"tag":33,"props":1989,"children":1990},{},[1991,1996,1998,2003,2005,2010,2012,2018],{"type":10,"tag":151,"props":1992,"children":1994},{"className":1993},[],[1995],{"type":15,"value":1978},{"type":15,"value":1997}," is a pointer to an array containing a ",{"type":10,"tag":151,"props":1999,"children":2001},{"className":2000},[],[2002],{"type":15,"value":1547},{"type":15,"value":2004}," 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":2006,"children":2008},{"className":2007},[],[2009],{"type":15,"value":1775},{"type":15,"value":2011},".\nThe stages of the shaders must be supported by ",{"type":10,"tag":151,"props":2013,"children":2015},{"className":2014},[],[2016],{"type":15,"value":2017},"VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT::supportedIndirectCommandsShaderStagesShaderBinding",{"type":15,"value":301},{"type":10,"tag":33,"props":2020,"children":2021},{},[2022,2027,2029,2035,2037,2042],{"type":10,"tag":151,"props":2023,"children":2025},{"className":2024},[],[2026],{"type":15,"value":1985},{"type":15,"value":2028}," is a pointer to array containing ",{"type":10,"tag":151,"props":2030,"children":2032},{"className":2031},[],[2033],{"type":15,"value":2034},"VkIndirectExecutionSetShaderLayoutInfoEXT",{"type":15,"value":2036}," infos used by each corresponding ",{"type":10,"tag":151,"props":2038,"children":2040},{"className":2039},[],[2041],{"type":15,"value":1978},{"type":15,"value":2043}," shader stage in the set.",{"type":10,"tag":33,"props":2045,"children":2046},{},[2047,2053],{"type":10,"tag":151,"props":2048,"children":2050},{"className":2049},[],[2051],{"type":15,"value":2052},"maxShaderCount",{"type":15,"value":2054}," is the maximum number of corresponding shader objects stored in the set.",{"type":10,"tag":33,"props":2056,"children":2057},{},[2058,2064,2065,2071],{"type":10,"tag":151,"props":2059,"children":2061},{"className":2060},[],[2062],{"type":15,"value":2063},"pushConstantRangeCount",{"type":15,"value":1972},{"type":10,"tag":151,"props":2066,"children":2068},{"className":2067},[],[2069],{"type":15,"value":2070},"pPushConstantRanges",{"type":15,"value":2072}," array.",{"type":10,"tag":33,"props":2074,"children":2075},{},[2076,2081,2083,2089],{"type":10,"tag":151,"props":2077,"children":2079},{"className":2078},[],[2080],{"type":15,"value":2070},{"type":15,"value":2082}," is a pointer to the array of ",{"type":10,"tag":151,"props":2084,"children":2086},{"className":2085},[],[2087],{"type":15,"value":2088},"VkPushConstantRange",{"type":15,"value":2090}," ranges used by all shaders in the set.",{"type":10,"tag":11,"props":2092,"children":2093},{},[2094,2095,2100],{"type":15,"value":444},{"type":10,"tag":151,"props":2096,"children":2098},{"className":2097},[],[2099],{"type":15,"value":2034},{"type":15,"value":1284},{"type":10,"tag":555,"props":2102,"children":2104},{"className":557,"code":2103,"language":559,"meta":560,"style":560},"typedef struct VkIndirectExecutionSetShaderLayoutInfoEXT {\n uint32_t setLayoutCount;\n const VkDescriptorSetLayout *pSetLayouts;\n} VkIndirectExecutionSetShaderLayoutInfoEXT;\n",[2105],{"type":10,"tag":151,"props":2106,"children":2107},{"__ignoreMap":560},[2108,2124,2136,2157],{"type":10,"tag":566,"props":2109,"children":2110},{"class":568,"line":569},[2111,2115,2119],{"type":10,"tag":566,"props":2112,"children":2113},{"style":579},[2114],{"type":15,"value":1299},{"type":10,"tag":566,"props":2116,"children":2117},{"style":579},[2118],{"type":15,"value":1304},{"type":10,"tag":566,"props":2120,"children":2121},{"style":573},[2122],{"type":15,"value":2123}," VkIndirectExecutionSetShaderLayoutInfoEXT {\n",{"type":10,"tag":566,"props":2125,"children":2126},{"class":568,"line":590},[2127,2131],{"type":10,"tag":566,"props":2128,"children":2129},{"style":579},[2130],{"type":15,"value":1742},{"type":10,"tag":566,"props":2132,"children":2133},{"style":573},[2134],{"type":15,"value":2135}," setLayoutCount;\n",{"type":10,"tag":566,"props":2137,"children":2138},{"class":568,"line":599},[2139,2143,2148,2152],{"type":10,"tag":566,"props":2140,"children":2141},{"style":579},[2142],{"type":15,"value":1147},{"type":10,"tag":566,"props":2144,"children":2145},{"style":573},[2146],{"type":15,"value":2147}," VkDescriptorSetLayout ",{"type":10,"tag":566,"props":2149,"children":2150},{"style":579},[2151],{"type":15,"value":1157},{"type":10,"tag":566,"props":2153,"children":2154},{"style":573},[2155],{"type":15,"value":2156},"pSetLayouts;\n",{"type":10,"tag":566,"props":2158,"children":2159},{"class":568,"line":650},[2160],{"type":10,"tag":566,"props":2161,"children":2162},{"style":573},[2163],{"type":15,"value":2164},"} VkIndirectExecutionSetShaderLayoutInfoEXT;\n",{"type":10,"tag":29,"props":2166,"children":2167},{},[2168,2194],{"type":10,"tag":33,"props":2169,"children":2170},{},[2171,2177,2179,2185,2187,2193],{"type":10,"tag":151,"props":2172,"children":2174},{"className":2173},[],[2175],{"type":15,"value":2176},"setLayoutCount",{"type":15,"value":2178}," is the number of ",{"type":10,"tag":151,"props":2180,"children":2182},{"className":2181},[],[2183],{"type":15,"value":2184},"VkDescriptorSetLayout",{"type":15,"value":2186}," in the ",{"type":10,"tag":151,"props":2188,"children":2190},{"className":2189},[],[2191],{"type":15,"value":2192},"pSetLayouts",{"type":15,"value":2072},{"type":10,"tag":33,"props":2195,"children":2196},{},[2197,2202,2204,2209],{"type":10,"tag":151,"props":2198,"children":2200},{"className":2199},[],[2201],{"type":15,"value":2192},{"type":15,"value":2203}," is a pointer to an array containing ",{"type":10,"tag":151,"props":2205,"children":2207},{"className":2206},[],[2208],{"type":15,"value":2184},{"type":15,"value":2210}," objects used by a given shader stage.",{"type":10,"tag":11,"props":2212,"children":2213},{},[2214],{"type":15,"value":2215},"Indirect execution sets are destroyed by:",{"type":10,"tag":555,"props":2217,"children":2219},{"className":557,"code":2218,"language":559,"meta":560,"style":560},"VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectExecutionSetEXT(\n VkDevice device,\n VkIndirectExecutionSetEXT indirectExecutionSet,\n const VkAllocationCallbacks* pAllocator);\n",[2220],{"type":10,"tag":151,"props":2221,"children":2222},{"__ignoreMap":560},[2223,2249,2265,2282],{"type":10,"tag":566,"props":2224,"children":2225},{"class":568,"line":569},[2226,2231,2235,2240,2245],{"type":10,"tag":566,"props":2227,"children":2228},{"style":573},[2229],{"type":15,"value":2230},"VKAPI_ATTR ",{"type":10,"tag":566,"props":2232,"children":2233},{"style":579},[2234],{"type":15,"value":610},{"type":10,"tag":566,"props":2236,"children":2237},{"style":573},[2238],{"type":15,"value":2239}," VKAPI_CALL ",{"type":10,"tag":566,"props":2241,"children":2242},{"style":613},[2243],{"type":15,"value":2244},"vkDestroyIndirectExecutionSetEXT",{"type":10,"tag":566,"props":2246,"children":2247},{"style":573},[2248],{"type":15,"value":1121},{"type":10,"tag":566,"props":2250,"children":2251},{"class":568,"line":590},[2252,2257,2261],{"type":10,"tag":566,"props":2253,"children":2254},{"style":573},[2255],{"type":15,"value":2256}," VkDevice ",{"type":10,"tag":566,"props":2258,"children":2259},{"style":629},[2260],{"type":15,"value":1134},{"type":10,"tag":566,"props":2262,"children":2263},{"style":573},[2264],{"type":15,"value":1139},{"type":10,"tag":566,"props":2266,"children":2267},{"class":568,"line":599},[2268,2273,2278],{"type":10,"tag":566,"props":2269,"children":2270},{"style":573},[2271],{"type":15,"value":2272}," VkIndirectExecutionSetEXT ",{"type":10,"tag":566,"props":2274,"children":2275},{"style":629},[2276],{"type":15,"value":2277},"indirectExecutionSet",{"type":10,"tag":566,"props":2279,"children":2280},{"style":573},[2281],{"type":15,"value":1139},{"type":10,"tag":566,"props":2283,"children":2284},{"class":568,"line":650},[2285,2289,2293,2297,2302],{"type":10,"tag":566,"props":2286,"children":2287},{"style":579},[2288],{"type":15,"value":1147},{"type":10,"tag":566,"props":2290,"children":2291},{"style":573},[2292],{"type":15,"value":1178},{"type":10,"tag":566,"props":2294,"children":2295},{"style":579},[2296],{"type":15,"value":1157},{"type":10,"tag":566,"props":2298,"children":2299},{"style":629},[2300],{"type":15,"value":2301}," pAllocator",{"type":10,"tag":566,"props":2303,"children":2304},{"style":573},[2305],{"type":15,"value":1213},{"type":10,"tag":29,"props":2307,"children":2308},{},[2309,2319,2329],{"type":10,"tag":33,"props":2310,"children":2311},{},[2312,2317],{"type":10,"tag":151,"props":2313,"children":2315},{"className":2314},[],[2316],{"type":15,"value":1134},{"type":15,"value":2318}," is the logical device that owns the indirect execution set.",{"type":10,"tag":33,"props":2320,"children":2321},{},[2322,2327],{"type":10,"tag":151,"props":2323,"children":2325},{"className":2324},[],[2326],{"type":15,"value":2277},{"type":15,"value":2328}," is the indirect execution set to destroy.",{"type":10,"tag":33,"props":2330,"children":2331},{},[2332,2337],{"type":10,"tag":151,"props":2333,"children":2335},{"className":2334},[],[2336],{"type":15,"value":1254},{"type":15,"value":1256},{"type":10,"tag":314,"props":2339,"children":2341},{"id":2340},"_updates",[2342],{"type":15,"value":2343},"Updates",{"type":10,"tag":11,"props":2345,"children":2346},{},[2347],{"type":15,"value":2348},"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":2350,"children":2352},{"className":557,"code":2351,"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",[2353],{"type":10,"tag":151,"props":2354,"children":2355},{"__ignoreMap":560},[2356,2380,2396,2412,2428],{"type":10,"tag":566,"props":2357,"children":2358},{"class":568,"line":569},[2359,2363,2367,2371,2376],{"type":10,"tag":566,"props":2360,"children":2361},{"style":573},[2362],{"type":15,"value":2230},{"type":10,"tag":566,"props":2364,"children":2365},{"style":579},[2366],{"type":15,"value":610},{"type":10,"tag":566,"props":2368,"children":2369},{"style":573},[2370],{"type":15,"value":2239},{"type":10,"tag":566,"props":2372,"children":2373},{"style":613},[2374],{"type":15,"value":2375},"vkUpdateIndirectExecutionSetPipelineEXT",{"type":10,"tag":566,"props":2377,"children":2378},{"style":573},[2379],{"type":15,"value":1121},{"type":10,"tag":566,"props":2381,"children":2382},{"class":568,"line":590},[2383,2388,2392],{"type":10,"tag":566,"props":2384,"children":2385},{"style":573},[2386],{"type":15,"value":2387}," VkDevice ",{"type":10,"tag":566,"props":2389,"children":2390},{"style":629},[2391],{"type":15,"value":1134},{"type":10,"tag":566,"props":2393,"children":2394},{"style":573},[2395],{"type":15,"value":1139},{"type":10,"tag":566,"props":2397,"children":2398},{"class":568,"line":599},[2399,2404,2408],{"type":10,"tag":566,"props":2400,"children":2401},{"style":573},[2402],{"type":15,"value":2403}," VkIndirectExecutionSetEXT ",{"type":10,"tag":566,"props":2405,"children":2406},{"style":629},[2407],{"type":15,"value":2277},{"type":10,"tag":566,"props":2409,"children":2410},{"style":573},[2411],{"type":15,"value":1139},{"type":10,"tag":566,"props":2413,"children":2414},{"class":568,"line":650},[2415,2419,2424],{"type":10,"tag":566,"props":2416,"children":2417},{"style":579},[2418],{"type":15,"value":1742},{"type":10,"tag":566,"props":2420,"children":2421},{"style":629},[2422],{"type":15,"value":2423}," executionSetWriteCount",{"type":10,"tag":566,"props":2425,"children":2426},{"style":573},[2427],{"type":15,"value":1139},{"type":10,"tag":566,"props":2429,"children":2430},{"class":568,"line":659},[2431,2435,2440,2444,2449],{"type":10,"tag":566,"props":2432,"children":2433},{"style":579},[2434],{"type":15,"value":1147},{"type":10,"tag":566,"props":2436,"children":2437},{"style":573},[2438],{"type":15,"value":2439}," VkWriteIndirectExecutionSetPipelineEXT",{"type":10,"tag":566,"props":2441,"children":2442},{"style":579},[2443],{"type":15,"value":1157},{"type":10,"tag":566,"props":2445,"children":2446},{"style":629},[2447],{"type":15,"value":2448}," pExecutionSetWrites",{"type":10,"tag":566,"props":2450,"children":2451},{"style":573},[2452],{"type":15,"value":1213},{"type":10,"tag":29,"props":2454,"children":2455},{},[2456,2465,2475,2493],{"type":10,"tag":33,"props":2457,"children":2458},{},[2459,2464],{"type":10,"tag":151,"props":2460,"children":2462},{"className":2461},[],[2463],{"type":15,"value":1134},{"type":15,"value":2318},{"type":10,"tag":33,"props":2466,"children":2467},{},[2468,2473],{"type":10,"tag":151,"props":2469,"children":2471},{"className":2470},[],[2472],{"type":15,"value":2277},{"type":15,"value":2474}," is the indirect execution set to update.",{"type":10,"tag":33,"props":2476,"children":2477},{},[2478,2484,2486,2492],{"type":10,"tag":151,"props":2479,"children":2481},{"className":2480},[],[2482],{"type":15,"value":2483},"executionSetWriteCount",{"type":15,"value":2485}," is the number of elements in ",{"type":10,"tag":151,"props":2487,"children":2489},{"className":2488},[],[2490],{"type":15,"value":2491},"pExecutionSetWrites",{"type":15,"value":301},{"type":10,"tag":33,"props":2494,"children":2495},{},[2496,2501,2502,2508],{"type":10,"tag":151,"props":2497,"children":2499},{"className":2498},[],[2500],{"type":15,"value":2491},{"type":15,"value":1237},{"type":10,"tag":151,"props":2503,"children":2505},{"className":2504},[],[2506],{"type":15,"value":2507},"VkWriteIndirectExecutionSetPipelineEXT",{"type":15,"value":2509}," structure describing the elements to update.",{"type":10,"tag":555,"props":2511,"children":2513},{"className":557,"code":2512,"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",[2514],{"type":10,"tag":151,"props":2515,"children":2516},{"__ignoreMap":560},[2517,2541,2556,2571,2586],{"type":10,"tag":566,"props":2518,"children":2519},{"class":568,"line":569},[2520,2524,2528,2532,2537],{"type":10,"tag":566,"props":2521,"children":2522},{"style":573},[2523],{"type":15,"value":2230},{"type":10,"tag":566,"props":2525,"children":2526},{"style":579},[2527],{"type":15,"value":610},{"type":10,"tag":566,"props":2529,"children":2530},{"style":573},[2531],{"type":15,"value":2239},{"type":10,"tag":566,"props":2533,"children":2534},{"style":613},[2535],{"type":15,"value":2536},"vkUpdateIndirectExecutionSetShaderEXT",{"type":10,"tag":566,"props":2538,"children":2539},{"style":573},[2540],{"type":15,"value":1121},{"type":10,"tag":566,"props":2542,"children":2543},{"class":568,"line":590},[2544,2548,2552],{"type":10,"tag":566,"props":2545,"children":2546},{"style":573},[2547],{"type":15,"value":2387},{"type":10,"tag":566,"props":2549,"children":2550},{"style":629},[2551],{"type":15,"value":1134},{"type":10,"tag":566,"props":2553,"children":2554},{"style":573},[2555],{"type":15,"value":1139},{"type":10,"tag":566,"props":2557,"children":2558},{"class":568,"line":599},[2559,2563,2567],{"type":10,"tag":566,"props":2560,"children":2561},{"style":573},[2562],{"type":15,"value":2403},{"type":10,"tag":566,"props":2564,"children":2565},{"style":629},[2566],{"type":15,"value":2277},{"type":10,"tag":566,"props":2568,"children":2569},{"style":573},[2570],{"type":15,"value":1139},{"type":10,"tag":566,"props":2572,"children":2573},{"class":568,"line":650},[2574,2578,2582],{"type":10,"tag":566,"props":2575,"children":2576},{"style":579},[2577],{"type":15,"value":1742},{"type":10,"tag":566,"props":2579,"children":2580},{"style":629},[2581],{"type":15,"value":2423},{"type":10,"tag":566,"props":2583,"children":2584},{"style":573},[2585],{"type":15,"value":1139},{"type":10,"tag":566,"props":2587,"children":2588},{"class":568,"line":659},[2589,2593,2598,2602,2606],{"type":10,"tag":566,"props":2590,"children":2591},{"style":579},[2592],{"type":15,"value":1147},{"type":10,"tag":566,"props":2594,"children":2595},{"style":573},[2596],{"type":15,"value":2597}," VkWriteIndirectExecutionSetShaderEXT",{"type":10,"tag":566,"props":2599,"children":2600},{"style":579},[2601],{"type":15,"value":1157},{"type":10,"tag":566,"props":2603,"children":2604},{"style":629},[2605],{"type":15,"value":2448},{"type":10,"tag":566,"props":2607,"children":2608},{"style":573},[2609],{"type":15,"value":1213},{"type":10,"tag":29,"props":2611,"children":2612},{},[2613,2622,2631,2646],{"type":10,"tag":33,"props":2614,"children":2615},{},[2616,2621],{"type":10,"tag":151,"props":2617,"children":2619},{"className":2618},[],[2620],{"type":15,"value":1134},{"type":15,"value":2318},{"type":10,"tag":33,"props":2623,"children":2624},{},[2625,2630],{"type":10,"tag":151,"props":2626,"children":2628},{"className":2627},[],[2629],{"type":15,"value":2277},{"type":15,"value":2474},{"type":10,"tag":33,"props":2632,"children":2633},{},[2634,2639,2640,2645],{"type":10,"tag":151,"props":2635,"children":2637},{"className":2636},[],[2638],{"type":15,"value":2483},{"type":15,"value":2485},{"type":10,"tag":151,"props":2641,"children":2643},{"className":2642},[],[2644],{"type":15,"value":2491},{"type":15,"value":301},{"type":10,"tag":33,"props":2647,"children":2648},{},[2649,2654,2655,2661],{"type":10,"tag":151,"props":2650,"children":2652},{"className":2651},[],[2653],{"type":15,"value":2491},{"type":15,"value":1237},{"type":10,"tag":151,"props":2656,"children":2658},{"className":2657},[],[2659],{"type":15,"value":2660},"VkWriteIndirectExecutionSetShaderEXT",{"type":15,"value":2509},{"type":10,"tag":11,"props":2663,"children":2664},{},[2665,2667,2673,2675,2680],{"type":15,"value":2666},"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":2668,"children":2670},{"className":2669},[],[2671],{"type":15,"value":2672},"VkWriteIndirectExecutionSetEXT",{"type":15,"value":2674}," are not in use. Any change to an indirect execution set requires recalculating memory requirements by calling ",{"type":10,"tag":151,"props":2676,"children":2678},{"className":2677},[],[2679],{"type":15,"value":943},{"type":15,"value":2681}," 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":2683,"children":2684},{},[2685,2686,2691],{"type":15,"value":444},{"type":10,"tag":151,"props":2687,"children":2689},{"className":2688},[],[2690],{"type":15,"value":2507},{"type":15,"value":2692}," struct is defined as:",{"type":10,"tag":555,"props":2694,"children":2696},{"className":557,"code":2695,"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",[2697],{"type":10,"tag":151,"props":2698,"children":2699},{"__ignoreMap":560},[2700,2716,2724,2740,2752,2760],{"type":10,"tag":566,"props":2701,"children":2702},{"class":568,"line":569},[2703,2707,2711],{"type":10,"tag":566,"props":2704,"children":2705},{"style":579},[2706],{"type":15,"value":1299},{"type":10,"tag":566,"props":2708,"children":2709},{"style":579},[2710],{"type":15,"value":1304},{"type":10,"tag":566,"props":2712,"children":2713},{"style":573},[2714],{"type":15,"value":2715}," VkWriteIndirectExecutionSetPipelineEXT {\n",{"type":10,"tag":566,"props":2717,"children":2718},{"class":568,"line":590},[2719],{"type":10,"tag":566,"props":2720,"children":2721},{"style":573},[2722],{"type":15,"value":2723}," VkStructureType sType;\n",{"type":10,"tag":566,"props":2725,"children":2726},{"class":568,"line":599},[2727,2731,2735],{"type":10,"tag":566,"props":2728,"children":2729},{"style":579},[2730],{"type":15,"value":1147},{"type":10,"tag":566,"props":2732,"children":2733},{"style":579},[2734],{"type":15,"value":1329},{"type":10,"tag":566,"props":2736,"children":2737},{"style":573},[2738],{"type":15,"value":2739}," pNext;\n",{"type":10,"tag":566,"props":2741,"children":2742},{"class":568,"line":650},[2743,2747],{"type":10,"tag":566,"props":2744,"children":2745},{"style":579},[2746],{"type":15,"value":1742},{"type":10,"tag":566,"props":2748,"children":2749},{"style":573},[2750],{"type":15,"value":2751}," index;\n",{"type":10,"tag":566,"props":2753,"children":2754},{"class":568,"line":659},[2755],{"type":10,"tag":566,"props":2756,"children":2757},{"style":573},[2758],{"type":15,"value":2759}," VkPipeline pipeline;\n",{"type":10,"tag":566,"props":2761,"children":2762},{"class":568,"line":678},[2763],{"type":10,"tag":566,"props":2764,"children":2765},{"style":573},[2766],{"type":15,"value":2767},"} VkWriteIndirectExecutionSetPipelineEXT;\n",{"type":10,"tag":29,"props":2769,"children":2770},{},[2771,2782],{"type":10,"tag":33,"props":2772,"children":2773},{},[2774,2780],{"type":10,"tag":151,"props":2775,"children":2777},{"className":2776},[],[2778],{"type":15,"value":2779},"index",{"type":15,"value":2781}," is the execution slot to update",{"type":10,"tag":33,"props":2783,"children":2784},{},[2785,2791],{"type":10,"tag":151,"props":2786,"children":2788},{"className":2787},[],[2789],{"type":15,"value":2790},"pipeline",{"type":15,"value":2792}," is the pipeline to store in the indirect execution set",{"type":10,"tag":11,"props":2794,"children":2795},{},[2796,2797,2802],{"type":15,"value":444},{"type":10,"tag":151,"props":2798,"children":2800},{"className":2799},[],[2801],{"type":15,"value":2660},{"type":15,"value":2692},{"type":10,"tag":555,"props":2804,"children":2806},{"className":557,"code":2805,"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",[2807],{"type":10,"tag":151,"props":2808,"children":2809},{"__ignoreMap":560},[2810,2826,2833,2848,2859,2867],{"type":10,"tag":566,"props":2811,"children":2812},{"class":568,"line":569},[2813,2817,2821],{"type":10,"tag":566,"props":2814,"children":2815},{"style":579},[2816],{"type":15,"value":1299},{"type":10,"tag":566,"props":2818,"children":2819},{"style":579},[2820],{"type":15,"value":1304},{"type":10,"tag":566,"props":2822,"children":2823},{"style":573},[2824],{"type":15,"value":2825}," VkWriteIndirectExecutionSetShaderEXT {\n",{"type":10,"tag":566,"props":2827,"children":2828},{"class":568,"line":590},[2829],{"type":10,"tag":566,"props":2830,"children":2831},{"style":573},[2832],{"type":15,"value":2723},{"type":10,"tag":566,"props":2834,"children":2835},{"class":568,"line":599},[2836,2840,2844],{"type":10,"tag":566,"props":2837,"children":2838},{"style":579},[2839],{"type":15,"value":1147},{"type":10,"tag":566,"props":2841,"children":2842},{"style":579},[2843],{"type":15,"value":1329},{"type":10,"tag":566,"props":2845,"children":2846},{"style":573},[2847],{"type":15,"value":2739},{"type":10,"tag":566,"props":2849,"children":2850},{"class":568,"line":650},[2851,2855],{"type":10,"tag":566,"props":2852,"children":2853},{"style":579},[2854],{"type":15,"value":1742},{"type":10,"tag":566,"props":2856,"children":2857},{"style":573},[2858],{"type":15,"value":2751},{"type":10,"tag":566,"props":2860,"children":2861},{"class":568,"line":659},[2862],{"type":10,"tag":566,"props":2863,"children":2864},{"style":573},[2865],{"type":15,"value":2866}," VkShaderEXT shader;\n",{"type":10,"tag":566,"props":2868,"children":2869},{"class":568,"line":678},[2870],{"type":10,"tag":566,"props":2871,"children":2872},{"style":573},[2873],{"type":15,"value":2874},"} VkWriteIndirectExecutionSetShaderEXT;\n",{"type":10,"tag":29,"props":2876,"children":2877},{},[2878,2887],{"type":10,"tag":33,"props":2879,"children":2880},{},[2881,2886],{"type":10,"tag":151,"props":2882,"children":2884},{"className":2883},[],[2885],{"type":15,"value":2779},{"type":15,"value":2781},{"type":10,"tag":33,"props":2888,"children":2889},{},[2890,2896],{"type":10,"tag":151,"props":2891,"children":2893},{"className":2892},[],[2894],{"type":15,"value":2895},"shader",{"type":15,"value":2897}," is the shader object to store in the indirect execution set",{"type":10,"tag":242,"props":2899,"children":2901},{"id":2900},"_indirect_commands_layout",[2902],{"type":15,"value":2903},"Indirect Commands Layout",{"type":10,"tag":11,"props":2905,"children":2906},{},[2907],{"type":15,"value":2908},"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":2910,"children":2912},{"className":557,"code":2911,"language":559,"meta":560,"style":560},"VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutEXT)\n",[2913],{"type":10,"tag":151,"props":2914,"children":2915},{"__ignoreMap":560},[2916],{"type":10,"tag":566,"props":2917,"children":2918},{"class":568,"line":569},[2919,2923],{"type":10,"tag":566,"props":2920,"children":2921},{"style":613},[2922],{"type":15,"value":1050},{"type":10,"tag":566,"props":2924,"children":2925},{"style":573},[2926],{"type":15,"value":2927},"(VkIndirectCommandsLayoutEXT)\n",{"type":10,"tag":314,"props":2929,"children":2931},{"id":2930},"_creation_and_deletion_2",[2932],{"type":15,"value":1091},{"type":10,"tag":11,"props":2934,"children":2935},{},[2936],{"type":15,"value":2937},"Indirect command layouts are created by:",{"type":10,"tag":555,"props":2939,"children":2941},{"className":557,"code":2940,"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",[2942],{"type":10,"tag":151,"props":2943,"children":2944},{"__ignoreMap":560},[2945,2961,2977,3001,3025],{"type":10,"tag":566,"props":2946,"children":2947},{"class":568,"line":569},[2948,2952,2957],{"type":10,"tag":566,"props":2949,"children":2950},{"style":573},[2951],{"type":15,"value":1111},{"type":10,"tag":566,"props":2953,"children":2954},{"style":613},[2955],{"type":15,"value":2956},"vkCreateIndirectCommandsLayoutEXT",{"type":10,"tag":566,"props":2958,"children":2959},{"style":573},[2960],{"type":15,"value":1121},{"type":10,"tag":566,"props":2962,"children":2963},{"class":568,"line":590},[2964,2969,2973],{"type":10,"tag":566,"props":2965,"children":2966},{"style":573},[2967],{"type":15,"value":2968}," VkDevice ",{"type":10,"tag":566,"props":2970,"children":2971},{"style":629},[2972],{"type":15,"value":1134},{"type":10,"tag":566,"props":2974,"children":2975},{"style":573},[2976],{"type":15,"value":1139},{"type":10,"tag":566,"props":2978,"children":2979},{"class":568,"line":599},[2980,2984,2989,2993,2997],{"type":10,"tag":566,"props":2981,"children":2982},{"style":579},[2983],{"type":15,"value":1147},{"type":10,"tag":566,"props":2985,"children":2986},{"style":573},[2987],{"type":15,"value":2988}," VkIndirectCommandsLayoutCreateInfoEXT",{"type":10,"tag":566,"props":2990,"children":2991},{"style":579},[2992],{"type":15,"value":1157},{"type":10,"tag":566,"props":2994,"children":2995},{"style":629},[2996],{"type":15,"value":1162},{"type":10,"tag":566,"props":2998,"children":2999},{"style":573},[3000],{"type":15,"value":1139},{"type":10,"tag":566,"props":3002,"children":3003},{"class":568,"line":650},[3004,3008,3012,3016,3021],{"type":10,"tag":566,"props":3005,"children":3006},{"style":579},[3007],{"type":15,"value":1147},{"type":10,"tag":566,"props":3009,"children":3010},{"style":573},[3011],{"type":15,"value":1178},{"type":10,"tag":566,"props":3013,"children":3014},{"style":579},[3015],{"type":15,"value":1157},{"type":10,"tag":566,"props":3017,"children":3018},{"style":629},[3019],{"type":15,"value":3020}," pAllocator",{"type":10,"tag":566,"props":3022,"children":3023},{"style":573},[3024],{"type":15,"value":1139},{"type":10,"tag":566,"props":3026,"children":3027},{"class":568,"line":659},[3028,3033,3037,3042],{"type":10,"tag":566,"props":3029,"children":3030},{"style":573},[3031],{"type":15,"value":3032}," VkIndirectCommandsLayoutEXT",{"type":10,"tag":566,"props":3034,"children":3035},{"style":579},[3036],{"type":15,"value":1157},{"type":10,"tag":566,"props":3038,"children":3039},{"style":629},[3040],{"type":15,"value":3041}," pIndirectCommandsLayout",{"type":10,"tag":566,"props":3043,"children":3044},{"style":573},[3045],{"type":15,"value":1213},{"type":10,"tag":29,"props":3047,"children":3048},{},[3049,3059,3076,3085],{"type":10,"tag":33,"props":3050,"children":3051},{},[3052,3057],{"type":10,"tag":151,"props":3053,"children":3055},{"className":3054},[],[3056],{"type":15,"value":1134},{"type":15,"value":3058}," is the logical device that creates the indirect command layout.",{"type":10,"tag":33,"props":3060,"children":3061},{},[3062,3067,3068,3074],{"type":10,"tag":151,"props":3063,"children":3065},{"className":3064},[],[3066],{"type":15,"value":1235},{"type":15,"value":1237},{"type":10,"tag":151,"props":3069,"children":3071},{"className":3070},[],[3072],{"type":15,"value":3073},"VkIndirectCommandsLayoutCreateInfoEXT",{"type":15,"value":3075}," structure containing parameters affecting creation of the indirect command layout.",{"type":10,"tag":33,"props":3077,"children":3078},{},[3079,3084],{"type":10,"tag":151,"props":3080,"children":3082},{"className":3081},[],[3083],{"type":15,"value":1254},{"type":15,"value":1256},{"type":10,"tag":33,"props":3086,"children":3087},{},[3088,3094,3095,3100],{"type":10,"tag":151,"props":3089,"children":3091},{"className":3090},[],[3092],{"type":15,"value":3093},"pIndirectCommandsLayout",{"type":15,"value":1237},{"type":10,"tag":151,"props":3096,"children":3098},{"className":3097},[],[3099],{"type":15,"value":892},{"type":15,"value":3101}," handle in which the resulting indirect command layout is returned.",{"type":10,"tag":11,"props":3103,"children":3104},{},[3105,3106,3111],{"type":15,"value":444},{"type":10,"tag":151,"props":3107,"children":3109},{"className":3108},[],[3110],{"type":15,"value":3073},{"type":15,"value":1284},{"type":10,"tag":555,"props":3113,"children":3115},{"className":557,"code":3114,"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",[3116],{"type":10,"tag":151,"props":3117,"children":3118},{"__ignoreMap":560},[3119,3135,3142,3157,3165,3173,3185,3193,3205,3226],{"type":10,"tag":566,"props":3120,"children":3121},{"class":568,"line":569},[3122,3126,3130],{"type":10,"tag":566,"props":3123,"children":3124},{"style":579},[3125],{"type":15,"value":1299},{"type":10,"tag":566,"props":3127,"children":3128},{"style":579},[3129],{"type":15,"value":1304},{"type":10,"tag":566,"props":3131,"children":3132},{"style":573},[3133],{"type":15,"value":3134}," VkIndirectCommandsLayoutCreateInfoEXT {\n",{"type":10,"tag":566,"props":3136,"children":3137},{"class":568,"line":590},[3138],{"type":10,"tag":566,"props":3139,"children":3140},{"style":573},[3141],{"type":15,"value":1317},{"type":10,"tag":566,"props":3143,"children":3144},{"class":568,"line":599},[3145,3149,3153],{"type":10,"tag":566,"props":3146,"children":3147},{"style":579},[3148],{"type":15,"value":1147},{"type":10,"tag":566,"props":3150,"children":3151},{"style":579},[3152],{"type":15,"value":1329},{"type":10,"tag":566,"props":3154,"children":3155},{"style":573},[3156],{"type":15,"value":1334},{"type":10,"tag":566,"props":3158,"children":3159},{"class":568,"line":650},[3160],{"type":10,"tag":566,"props":3161,"children":3162},{"style":573},[3163],{"type":15,"value":3164}," VkIndirectCommandsLayoutUsageFlagsEXT flags;\n",{"type":10,"tag":566,"props":3166,"children":3167},{"class":568,"line":659},[3168],{"type":10,"tag":566,"props":3169,"children":3170},{"style":573},[3171],{"type":15,"value":3172}," VkShaderStageFlags shaderStages;\n",{"type":10,"tag":566,"props":3174,"children":3175},{"class":568,"line":678},[3176,3180],{"type":10,"tag":566,"props":3177,"children":3178},{"style":579},[3179],{"type":15,"value":1742},{"type":10,"tag":566,"props":3181,"children":3182},{"style":573},[3183],{"type":15,"value":3184}," indirectStride;\n",{"type":10,"tag":566,"props":3186,"children":3187},{"class":568,"line":697},[3188],{"type":10,"tag":566,"props":3189,"children":3190},{"style":573},[3191],{"type":15,"value":3192}," VkPipelineLayout pipelineLayout;\n",{"type":10,"tag":566,"props":3194,"children":3195},{"class":568,"line":714},[3196,3200],{"type":10,"tag":566,"props":3197,"children":3198},{"style":579},[3199],{"type":15,"value":1742},{"type":10,"tag":566,"props":3201,"children":3202},{"style":573},[3203],{"type":15,"value":3204}," tokenCount;\n",{"type":10,"tag":566,"props":3206,"children":3207},{"class":568,"line":731},[3208,3212,3217,3221],{"type":10,"tag":566,"props":3209,"children":3210},{"style":579},[3211],{"type":15,"value":1147},{"type":10,"tag":566,"props":3213,"children":3214},{"style":573},[3215],{"type":15,"value":3216}," VkIndirectCommandsLayoutTokenEXT",{"type":10,"tag":566,"props":3218,"children":3219},{"style":579},[3220],{"type":15,"value":1157},{"type":10,"tag":566,"props":3222,"children":3223},{"style":573},[3224],{"type":15,"value":3225}," pTokens;\n",{"type":10,"tag":566,"props":3227,"children":3228},{"class":568,"line":1952},[3229],{"type":10,"tag":566,"props":3230,"children":3231},{"style":573},[3232],{"type":15,"value":3233},"} VkIndirectCommandsLayoutCreateInfoEXT;\n",{"type":10,"tag":29,"props":3235,"children":3236},{},[3237,3256,3275,3286,3326,3337],{"type":10,"tag":33,"props":3238,"children":3239},{},[3240,3246,3248,3254],{"type":10,"tag":151,"props":3241,"children":3243},{"className":3242},[],[3244],{"type":15,"value":3245},"flags",{"type":15,"value":3247}," is a bitmask of ",{"type":10,"tag":151,"props":3249,"children":3251},{"className":3250},[],[3252],{"type":15,"value":3253},"VkIndirectCommandsLayoutUsageFlagBitsEXT",{"type":15,"value":3255}," specifying usage rules for this layout.",{"type":10,"tag":33,"props":3257,"children":3258},{},[3259,3265,3267,3273],{"type":10,"tag":151,"props":3260,"children":3262},{"className":3261},[],[3263],{"type":15,"value":3264},"shaderStages",{"type":15,"value":3266}," is the ",{"type":10,"tag":151,"props":3268,"children":3270},{"className":3269},[],[3271],{"type":15,"value":3272},"VkShaderStageFlags",{"type":15,"value":3274}," that this layout supports.",{"type":10,"tag":33,"props":3276,"children":3277},{},[3278,3284],{"type":10,"tag":151,"props":3279,"children":3281},{"className":3280},[],[3282],{"type":15,"value":3283},"indirectStride",{"type":15,"value":3285}," is the stride of the indirect buffer.",{"type":10,"tag":33,"props":3287,"children":3288},{},[3289,3295,3296,3301,3303,3309,3311,3317,3319,3325],{"type":10,"tag":151,"props":3290,"children":3292},{"className":3291},[],[3293],{"type":15,"value":3294},"pipelineLayout",{"type":15,"value":3266},{"type":10,"tag":151,"props":3297,"children":3299},{"className":3298},[],[3300],{"type":15,"value":1066},{"type":15,"value":3302}," that this layout supports. If a ",{"type":10,"tag":151,"props":3304,"children":3306},{"className":3305},[],[3307],{"type":15,"value":3308},"VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT",{"type":15,"value":3310}," or ",{"type":10,"tag":151,"props":3312,"children":3314},{"className":3313},[],[3315],{"type":15,"value":3316},"VK_INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT",{"type":15,"value":3318}," is used by the layout, it must not be ",{"type":10,"tag":151,"props":3320,"children":3322},{"className":3321},[],[3323],{"type":15,"value":3324},"VK_NULL_HANDLE",{"type":15,"value":301},{"type":10,"tag":33,"props":3327,"children":3328},{},[3329,3335],{"type":10,"tag":151,"props":3330,"children":3332},{"className":3331},[],[3333],{"type":15,"value":3334},"tokenCount",{"type":15,"value":3336}," is the length of the individual command sequence.",{"type":10,"tag":33,"props":3338,"children":3339},{},[3340,3346,3348,3354,3355,3361],{"type":10,"tag":151,"props":3341,"children":3343},{"className":3342},[],[3344],{"type":15,"value":3345},"pTokens",{"type":15,"value":3347}," is an array describing each command token in detail. See ",{"type":10,"tag":151,"props":3349,"children":3351},{"className":3350},[],[3352],{"type":15,"value":3353},"VkIndirectCommandsTokenTypeEXT",{"type":15,"value":293},{"type":10,"tag":151,"props":3356,"children":3358},{"className":3357},[],[3359],{"type":15,"value":3360},"VkIndirectCommandsLayoutTokenEXT",{"type":15,"value":3362}," below for details.",{"type":10,"tag":11,"props":3364,"children":3365},{},[3366,3368,3374,3376,3382,3384,3390],{"type":15,"value":3367},"A ",{"type":10,"tag":151,"props":3369,"children":3371},{"className":3370},[],[3372],{"type":15,"value":3373},"VkPipelineLayoutCreateInfo",{"type":15,"value":3375}," can be passed in ",{"type":10,"tag":151,"props":3377,"children":3379},{"className":3378},[],[3380],{"type":15,"value":3381},"pNext",{"type":15,"value":3383}," if the ",{"type":10,"tag":151,"props":3385,"children":3387},{"className":3386},[],[3388],{"type":15,"value":3389},"dynamicGeneratedPipelineLayout",{"type":15,"value":3391}," feature is enabled.",{"type":10,"tag":11,"props":3393,"children":3394},{},[3395,3397,3403],{"type":15,"value":3396},"Bits which can be set in ",{"type":10,"tag":151,"props":3398,"children":3400},{"className":3399},[],[3401],{"type":15,"value":3402},"VkIndirectCommandsLayoutCreateInfoEXT::flags",{"type":15,"value":3404},", specifying usage rules of an indirect command layout, are:",{"type":10,"tag":555,"props":3406,"children":3408},{"className":557,"code":3407,"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",[3409],{"type":10,"tag":151,"props":3410,"children":3411},{"__ignoreMap":560},[3412,3428,3435,3459,3483,3491],{"type":10,"tag":566,"props":3413,"children":3414},{"class":568,"line":569},[3415,3419,3423],{"type":10,"tag":566,"props":3416,"children":3417},{"style":579},[3418],{"type":15,"value":1299},{"type":10,"tag":566,"props":3420,"children":3421},{"style":579},[3422],{"type":15,"value":1422},{"type":10,"tag":566,"props":3424,"children":3425},{"style":573},[3426],{"type":15,"value":3427}," VkIndirectCommandsLayoutUsageFlagBitsEXT\n",{"type":10,"tag":566,"props":3429,"children":3430},{"class":568,"line":590},[3431],{"type":10,"tag":566,"props":3432,"children":3433},{"style":573},[3434],{"type":15,"value":1435},{"type":10,"tag":566,"props":3436,"children":3437},{"class":568,"line":599},[3438,3443,3447,3451,3455],{"type":10,"tag":566,"props":3439,"children":3440},{"style":573},[3441],{"type":15,"value":3442}," VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_EXT ",{"type":10,"tag":566,"props":3444,"children":3445},{"style":579},[3446],{"type":15,"value":1448},{"type":10,"tag":566,"props":3448,"children":3449},{"style":579},[3450],{"type":15,"value":1453},{"type":10,"tag":566,"props":3452,"children":3453},{"style":1456},[3454],{"type":15,"value":1459},{"type":10,"tag":566,"props":3456,"children":3457},{"style":573},[3458],{"type":15,"value":1139},{"type":10,"tag":566,"props":3460,"children":3461},{"class":568,"line":650},[3462,3467,3471,3475,3479],{"type":10,"tag":566,"props":3463,"children":3464},{"style":573},[3465],{"type":15,"value":3466}," VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_EXT ",{"type":10,"tag":566,"props":3468,"children":3469},{"style":579},[3470],{"type":15,"value":1448},{"type":10,"tag":566,"props":3472,"children":3473},{"style":579},[3474],{"type":15,"value":1453},{"type":10,"tag":566,"props":3476,"children":3477},{"style":1456},[3478],{"type":15,"value":1484},{"type":10,"tag":566,"props":3480,"children":3481},{"style":573},[3482],{"type":15,"value":1139},{"type":10,"tag":566,"props":3484,"children":3485},{"class":568,"line":659},[3486],{"type":10,"tag":566,"props":3487,"children":3488},{"style":573},[3489],{"type":15,"value":3490},"} VkIndirectCommandsLayoutUsageFlagBitsEXT;\n",{"type":10,"tag":566,"props":3492,"children":3493},{"class":568,"line":678},[3494,3498],{"type":10,"tag":566,"props":3495,"children":3496},{"style":579},[3497],{"type":15,"value":1299},{"type":10,"tag":566,"props":3499,"children":3500},{"style":573},[3501],{"type":15,"value":3502}," VkFlags VkIndirectCommandsLayoutUsageFlagsEXT;\n",{"type":10,"tag":29,"props":3504,"children":3505},{},[3506,3546],{"type":10,"tag":33,"props":3507,"children":3508},{},[3509,3515,3517,3522,3524,3529,3531,3537,3539,3545],{"type":10,"tag":151,"props":3510,"children":3512},{"className":3511},[],[3513],{"type":15,"value":3514},"VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_EXT",{"type":15,"value":3516}," specifies that the layout is always used with the manual preprocessing step through calling ",{"type":10,"tag":151,"props":3518,"children":3520},{"className":3519},[],[3521],{"type":15,"value":955},{"type":15,"value":3523}," and executed by ",{"type":10,"tag":151,"props":3525,"children":3527},{"className":3526},[],[3528],{"type":15,"value":968},{"type":15,"value":3530}," when ",{"type":10,"tag":151,"props":3532,"children":3534},{"className":3533},[],[3535],{"type":15,"value":3536},"isPreprocessed",{"type":15,"value":3538}," set to ",{"type":10,"tag":151,"props":3540,"children":3542},{"className":3541},[],[3543],{"type":15,"value":3544},"VK_TRUE",{"type":15,"value":301},{"type":10,"tag":33,"props":3547,"children":3548},{},[3549,3555,3557,3566],{"type":10,"tag":151,"props":3550,"children":3552},{"className":3551},[],[3553],{"type":15,"value":3554},"VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_EXT",{"type":15,"value":3556}," specifies that ",{"type":10,"tag":3558,"props":3559,"children":3563},"a",{"href":3560,"rel":3561},"https://docs.vulkan.org/spec/latest/chapters/synchronization.html#synchronization-submission-order",[3562],"nofollow",[3564],{"type":15,"value":3565},"submission order",{"type":15,"value":3567}," is not affected by the ordering of sequences, and sequences may be processed in any order.",{"type":10,"tag":11,"props":3569,"children":3570},{},[3571],{"type":15,"value":3572},"Indirect command layouts are destroyed by:",{"type":10,"tag":555,"props":3574,"children":3576},{"className":557,"code":3575,"language":559,"meta":560,"style":560},"VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutEXT(\n VkDevice device,\n VkIndirectCommandsLayoutEXT indirectCommandsLayout,\n const VkAllocationCallbacks* pAllocator);\n",[3577],{"type":10,"tag":151,"props":3578,"children":3579},{"__ignoreMap":560},[3580,3604,3620,3637],{"type":10,"tag":566,"props":3581,"children":3582},{"class":568,"line":569},[3583,3587,3591,3595,3600],{"type":10,"tag":566,"props":3584,"children":3585},{"style":573},[3586],{"type":15,"value":2230},{"type":10,"tag":566,"props":3588,"children":3589},{"style":579},[3590],{"type":15,"value":610},{"type":10,"tag":566,"props":3592,"children":3593},{"style":573},[3594],{"type":15,"value":2239},{"type":10,"tag":566,"props":3596,"children":3597},{"style":613},[3598],{"type":15,"value":3599},"vkDestroyIndirectCommandsLayoutEXT",{"type":10,"tag":566,"props":3601,"children":3602},{"style":573},[3603],{"type":15,"value":1121},{"type":10,"tag":566,"props":3605,"children":3606},{"class":568,"line":590},[3607,3612,3616],{"type":10,"tag":566,"props":3608,"children":3609},{"style":573},[3610],{"type":15,"value":3611}," VkDevice ",{"type":10,"tag":566,"props":3613,"children":3614},{"style":629},[3615],{"type":15,"value":1134},{"type":10,"tag":566,"props":3617,"children":3618},{"style":573},[3619],{"type":15,"value":1139},{"type":10,"tag":566,"props":3621,"children":3622},{"class":568,"line":599},[3623,3628,3633],{"type":10,"tag":566,"props":3624,"children":3625},{"style":573},[3626],{"type":15,"value":3627}," VkIndirectCommandsLayoutEXT ",{"type":10,"tag":566,"props":3629,"children":3630},{"style":629},[3631],{"type":15,"value":3632},"indirectCommandsLayout",{"type":10,"tag":566,"props":3634,"children":3635},{"style":573},[3636],{"type":15,"value":1139},{"type":10,"tag":566,"props":3638,"children":3639},{"class":568,"line":650},[3640,3644,3648,3652,3657],{"type":10,"tag":566,"props":3641,"children":3642},{"style":579},[3643],{"type":15,"value":1147},{"type":10,"tag":566,"props":3645,"children":3646},{"style":573},[3647],{"type":15,"value":1178},{"type":10,"tag":566,"props":3649,"children":3650},{"style":579},[3651],{"type":15,"value":1157},{"type":10,"tag":566,"props":3653,"children":3654},{"style":629},[3655],{"type":15,"value":3656}," pAllocator",{"type":10,"tag":566,"props":3658,"children":3659},{"style":573},[3660],{"type":15,"value":1213},{"type":10,"tag":29,"props":3662,"children":3663},{},[3664,3674,3684],{"type":10,"tag":33,"props":3665,"children":3666},{},[3667,3672],{"type":10,"tag":151,"props":3668,"children":3670},{"className":3669},[],[3671],{"type":15,"value":1134},{"type":15,"value":3673}," is the logical device that owns the layout.",{"type":10,"tag":33,"props":3675,"children":3676},{},[3677,3682],{"type":10,"tag":151,"props":3678,"children":3680},{"className":3679},[],[3681],{"type":15,"value":3632},{"type":15,"value":3683}," is the layout to destroy.",{"type":10,"tag":33,"props":3685,"children":3686},{},[3687,3692],{"type":10,"tag":151,"props":3688,"children":3690},{"className":3689},[],[3691],{"type":15,"value":1254},{"type":15,"value":1256},{"type":10,"tag":314,"props":3694,"children":3696},{"id":3695},"_token_layout",[3697],{"type":15,"value":3698},"Token layout",{"type":10,"tag":11,"props":3700,"children":3701},{},[3702,3704,3710,3712,3718],{"type":15,"value":3703},"Each sequence of commands in the indirect buffer has the same memory layout. The data can contain raw ",{"type":10,"tag":151,"props":3705,"children":3707},{"className":3706},[],[3708],{"type":15,"value":3709},"uint32_t",{"type":15,"value":3711}," values, existing indirect command such as ",{"type":10,"tag":151,"props":3713,"children":3715},{"className":3714},[],[3716],{"type":15,"value":3717},"VkDrawIndirectCommand",{"type":15,"value":3719},", or additional commands listed in the next section.",{"type":10,"tag":11,"props":3721,"children":3722},{},[3723,3724,3729],{"type":15,"value":444},{"type":10,"tag":151,"props":3725,"children":3727},{"className":3726},[],[3728],{"type":15,"value":3360},{"type":15,"value":3730}," structure specifies details to the commands that need to be known at layout creation time:",{"type":10,"tag":555,"props":3732,"children":3734},{"className":557,"code":3733,"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",[3735],{"type":10,"tag":151,"props":3736,"children":3737},{"__ignoreMap":560},[3738,3754,3762,3778,3786,3794,3806],{"type":10,"tag":566,"props":3739,"children":3740},{"class":568,"line":569},[3741,3745,3749],{"type":10,"tag":566,"props":3742,"children":3743},{"style":579},[3744],{"type":15,"value":1299},{"type":10,"tag":566,"props":3746,"children":3747},{"style":579},[3748],{"type":15,"value":1304},{"type":10,"tag":566,"props":3750,"children":3751},{"style":573},[3752],{"type":15,"value":3753}," VkIndirectCommandsLayoutTokenEXT {\n",{"type":10,"tag":566,"props":3755,"children":3756},{"class":568,"line":590},[3757],{"type":10,"tag":566,"props":3758,"children":3759},{"style":573},[3760],{"type":15,"value":3761}," VkStructureType sType;\n",{"type":10,"tag":566,"props":3763,"children":3764},{"class":568,"line":599},[3765,3769,3773],{"type":10,"tag":566,"props":3766,"children":3767},{"style":579},[3768],{"type":15,"value":1147},{"type":10,"tag":566,"props":3770,"children":3771},{"style":579},[3772],{"type":15,"value":1329},{"type":10,"tag":566,"props":3774,"children":3775},{"style":573},[3776],{"type":15,"value":3777}," pNext;\n",{"type":10,"tag":566,"props":3779,"children":3780},{"class":568,"line":650},[3781],{"type":10,"tag":566,"props":3782,"children":3783},{"style":573},[3784],{"type":15,"value":3785}," VkIndirectCommandsTokenTypeEXT type;\n",{"type":10,"tag":566,"props":3787,"children":3788},{"class":568,"line":659},[3789],{"type":10,"tag":566,"props":3790,"children":3791},{"style":573},[3792],{"type":15,"value":3793}," VkIndirectCommandsTokenDataEXT data;\n",{"type":10,"tag":566,"props":3795,"children":3796},{"class":568,"line":678},[3797,3801],{"type":10,"tag":566,"props":3798,"children":3799},{"style":579},[3800],{"type":15,"value":1742},{"type":10,"tag":566,"props":3802,"children":3803},{"style":573},[3804],{"type":15,"value":3805}," offset;\n",{"type":10,"tag":566,"props":3807,"children":3808},{"class":568,"line":697},[3809],{"type":10,"tag":566,"props":3810,"children":3811},{"style":573},[3812],{"type":15,"value":3813},"} VkIndirectCommandsLayoutTokenEXT;\n",{"type":10,"tag":29,"props":3815,"children":3816},{},[3817,3827,3838],{"type":10,"tag":33,"props":3818,"children":3819},{},[3820,3825],{"type":10,"tag":151,"props":3821,"children":3823},{"className":3822},[],[3824],{"type":15,"value":1370},{"type":15,"value":3826}," specifies the token command type.",{"type":10,"tag":33,"props":3828,"children":3829},{},[3830,3836],{"type":10,"tag":151,"props":3831,"children":3833},{"className":3832},[],[3834],{"type":15,"value":3835},"data",{"type":15,"value":3837}," specifies token specific details for command execution.",{"type":10,"tag":33,"props":3839,"children":3840},{},[3841,3847,3849,3855],{"type":10,"tag":151,"props":3842,"children":3844},{"className":3843},[],[3845],{"type":15,"value":3846},"offset",{"type":15,"value":3848}," 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":3850,"children":3852},{"className":3851},[],[3853],{"type":15,"value":3854},"VkDispatchIndirectCommand",{"type":15,"value":301},{"type":10,"tag":11,"props":3857,"children":3858},{},[3859],{"type":15,"value":3860},"Token data is a union of additional information specific to the command:",{"type":10,"tag":555,"props":3862,"children":3864},{"className":557,"code":3863,"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",[3865],{"type":10,"tag":151,"props":3866,"children":3867},{"__ignoreMap":560},[3868,3884,3905,3926,3947,3968],{"type":10,"tag":566,"props":3869,"children":3870},{"class":568,"line":569},[3871,3875,3879],{"type":10,"tag":566,"props":3872,"children":3873},{"style":579},[3874],{"type":15,"value":1299},{"type":10,"tag":566,"props":3876,"children":3877},{"style":579},[3878],{"type":15,"value":1578},{"type":10,"tag":566,"props":3880,"children":3881},{"style":573},[3882],{"type":15,"value":3883}," VkIndirectCommandsTokenDataEXT {\n",{"type":10,"tag":566,"props":3885,"children":3886},{"class":568,"line":590},[3887,3891,3896,3900],{"type":10,"tag":566,"props":3888,"children":3889},{"style":579},[3890],{"type":15,"value":1147},{"type":10,"tag":566,"props":3892,"children":3893},{"style":573},[3894],{"type":15,"value":3895}," VkIndirectCommandsPushConstantTokenEXT ",{"type":10,"tag":566,"props":3897,"children":3898},{"style":579},[3899],{"type":15,"value":1157},{"type":10,"tag":566,"props":3901,"children":3902},{"style":573},[3903],{"type":15,"value":3904},"pPushConstant;\n",{"type":10,"tag":566,"props":3906,"children":3907},{"class":568,"line":599},[3908,3912,3917,3921],{"type":10,"tag":566,"props":3909,"children":3910},{"style":579},[3911],{"type":15,"value":1147},{"type":10,"tag":566,"props":3913,"children":3914},{"style":573},[3915],{"type":15,"value":3916}," VkIndirectCommandsVertexBufferTokenEXT ",{"type":10,"tag":566,"props":3918,"children":3919},{"style":579},[3920],{"type":15,"value":1157},{"type":10,"tag":566,"props":3922,"children":3923},{"style":573},[3924],{"type":15,"value":3925},"pVertexBuffer;\n",{"type":10,"tag":566,"props":3927,"children":3928},{"class":568,"line":650},[3929,3933,3938,3942],{"type":10,"tag":566,"props":3930,"children":3931},{"style":579},[3932],{"type":15,"value":1147},{"type":10,"tag":566,"props":3934,"children":3935},{"style":573},[3936],{"type":15,"value":3937}," VkIndirectCommandsIndexBufferTokenEXT ",{"type":10,"tag":566,"props":3939,"children":3940},{"style":579},[3941],{"type":15,"value":1157},{"type":10,"tag":566,"props":3943,"children":3944},{"style":573},[3945],{"type":15,"value":3946},"pIndexBuffer;\n",{"type":10,"tag":566,"props":3948,"children":3949},{"class":568,"line":659},[3950,3954,3959,3963],{"type":10,"tag":566,"props":3951,"children":3952},{"style":579},[3953],{"type":15,"value":1147},{"type":10,"tag":566,"props":3955,"children":3956},{"style":573},[3957],{"type":15,"value":3958}," VkIndirectCommandsExecutionSetTokenEXT ",{"type":10,"tag":566,"props":3960,"children":3961},{"style":579},[3962],{"type":15,"value":1157},{"type":10,"tag":566,"props":3964,"children":3965},{"style":573},[3966],{"type":15,"value":3967},"pExecutionSet;\n",{"type":10,"tag":566,"props":3969,"children":3970},{"class":568,"line":678},[3971],{"type":10,"tag":566,"props":3972,"children":3973},{"style":573},[3974],{"type":15,"value":3975},"} VkIndirectCommandsTokenDataEXT;\n",{"type":10,"tag":11,"props":3977,"children":3978},{},[3979],{"type":15,"value":3980},"These structures are described in the next section.",{"type":10,"tag":242,"props":3982,"children":3984},{"id":3983},"_indirect_commands",[3985],{"type":15,"value":3986},"Indirect Commands",{"type":10,"tag":11,"props":3988,"children":3989},{},[3990],{"type":15,"value":3991},"This extension defines the following commands for state changes and operations:",{"type":10,"tag":3993,"props":3994,"children":4000},"table",{"className":3995},[3996,3997,3998,3999],"tableblock","frame-all","grid-all","stretch",[4001,4013],{"type":10,"tag":4002,"props":4003,"children":4004},"colgroup",{},[4005,4010],{"type":10,"tag":4006,"props":4007,"children":4009},"col",{"style":4008},"width: 50%;",[],{"type":10,"tag":4006,"props":4011,"children":4012},{"style":4008},[],{"type":10,"tag":4014,"props":4015,"children":4016},"tbody",{},[4017,4052,4084,4113,4133,4161,4181,4210,4230,4259,4288,4308,4337,4365,4394,4423,4443,4478,4511,4544],{"type":10,"tag":4018,"props":4019,"children":4020},"tr",{},[4021,4039],{"type":10,"tag":4022,"props":4023,"children":4027},"td",{"className":4024},[3996,4025,4026],"halign-left","valign-top",[4028],{"type":10,"tag":11,"props":4029,"children":4031},{"className":4030},[3996],[4032],{"type":10,"tag":4033,"props":4034,"children":4036},"emphasis",{"role":4035},"strong",[4037],{"type":15,"value":4038},"Common Tokens",{"type":10,"tag":4022,"props":4040,"children":4042},{"className":4041},[3996,4025,4026],[4043],{"type":10,"tag":11,"props":4044,"children":4046},{"className":4045},[3996],[4047],{"type":10,"tag":4033,"props":4048,"children":4049},{"role":4035},[4050],{"type":15,"value":4051},"Command Data",{"type":10,"tag":4018,"props":4053,"children":4054},{},[4055,4069],{"type":10,"tag":4022,"props":4056,"children":4058},{"className":4057},[3996,4025,4026],[4059],{"type":10,"tag":11,"props":4060,"children":4062},{"className":4061},[3996],[4063],{"type":10,"tag":4064,"props":4065,"children":4066},"literal",{},[4067],{"type":15,"value":4068},"VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT",{"type":10,"tag":4022,"props":4070,"children":4072},{"className":4071},[3996,4025,4026],[4073],{"type":10,"tag":11,"props":4074,"children":4076},{"className":4075},[3996],[4077,4082],{"type":10,"tag":4064,"props":4078,"children":4079},{},[4080],{"type":15,"value":4081},"uint32_t[]",{"type":15,"value":4083}," array of indices into the indirect execution set",{"type":10,"tag":4018,"props":4085,"children":4086},{},[4087,4099],{"type":10,"tag":4022,"props":4088,"children":4090},{"className":4089},[3996,4025,4026],[4091],{"type":10,"tag":11,"props":4092,"children":4094},{"className":4093},[3996],[4095],{"type":10,"tag":4064,"props":4096,"children":4097},{},[4098],{"type":15,"value":3308},{"type":10,"tag":4022,"props":4100,"children":4102},{"className":4101},[3996,4025,4026],[4103],{"type":10,"tag":11,"props":4104,"children":4106},{"className":4105},[3996],[4107,4111],{"type":10,"tag":4064,"props":4108,"children":4109},{},[4110],{"type":15,"value":4081},{"type":15,"value":4112}," raw data",{"type":10,"tag":4018,"props":4114,"children":4115},{},[4116,4129],{"type":10,"tag":4022,"props":4117,"children":4119},{"className":4118},[3996,4025,4026],[4120],{"type":10,"tag":11,"props":4121,"children":4123},{"className":4122},[3996],[4124],{"type":10,"tag":4033,"props":4125,"children":4126},{"role":4035},[4127],{"type":15,"value":4128},"Compute Tokens",{"type":10,"tag":4022,"props":4130,"children":4132},{"className":4131},[3996,4025,4026],[],{"type":10,"tag":4018,"props":4134,"children":4135},{},[4136,4149],{"type":10,"tag":4022,"props":4137,"children":4139},{"className":4138},[3996,4025,4026],[4140],{"type":10,"tag":11,"props":4141,"children":4143},{"className":4142},[3996],[4144],{"type":10,"tag":4064,"props":4145,"children":4146},{},[4147],{"type":15,"value":4148},"VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_EXT",{"type":10,"tag":4022,"props":4150,"children":4152},{"className":4151},[3996,4025,4026],[4153],{"type":10,"tag":11,"props":4154,"children":4156},{"className":4155},[3996],[4157],{"type":10,"tag":4064,"props":4158,"children":4159},{},[4160],{"type":15,"value":3854},{"type":10,"tag":4018,"props":4162,"children":4163},{},[4164,4177],{"type":10,"tag":4022,"props":4165,"children":4167},{"className":4166},[3996,4025,4026],[4168],{"type":10,"tag":11,"props":4169,"children":4171},{"className":4170},[3996],[4172],{"type":10,"tag":4033,"props":4173,"children":4174},{"role":4035},[4175],{"type":15,"value":4176},"Ray Tracing Tokens",{"type":10,"tag":4022,"props":4178,"children":4180},{"className":4179},[3996,4025,4026],[],{"type":10,"tag":4018,"props":4182,"children":4183},{},[4184,4197],{"type":10,"tag":4022,"props":4185,"children":4187},{"className":4186},[3996,4025,4026],[4188],{"type":10,"tag":11,"props":4189,"children":4191},{"className":4190},[3996],[4192],{"type":10,"tag":4064,"props":4193,"children":4194},{},[4195],{"type":15,"value":4196},"VK_INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXT",{"type":10,"tag":4022,"props":4198,"children":4200},{"className":4199},[3996,4025,4026],[4201],{"type":10,"tag":11,"props":4202,"children":4204},{"className":4203},[3996],[4205],{"type":10,"tag":4064,"props":4206,"children":4207},{},[4208],{"type":15,"value":4209},"VkTraceRaysIndirectCommand2KHR",{"type":10,"tag":4018,"props":4211,"children":4212},{},[4213,4226],{"type":10,"tag":4022,"props":4214,"children":4216},{"className":4215},[3996,4025,4026],[4217],{"type":10,"tag":11,"props":4218,"children":4220},{"className":4219},[3996],[4221],{"type":10,"tag":4033,"props":4222,"children":4223},{"role":4035},[4224],{"type":15,"value":4225},"Graphics State Tokens",{"type":10,"tag":4022,"props":4227,"children":4229},{"className":4228},[3996,4025,4026],[],{"type":10,"tag":4018,"props":4231,"children":4232},{},[4233,4246],{"type":10,"tag":4022,"props":4234,"children":4236},{"className":4235},[3996,4025,4026],[4237],{"type":10,"tag":11,"props":4238,"children":4240},{"className":4239},[3996],[4241],{"type":10,"tag":4064,"props":4242,"children":4243},{},[4244],{"type":15,"value":4245},"VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT",{"type":10,"tag":4022,"props":4247,"children":4249},{"className":4248},[3996,4025,4026],[4250],{"type":10,"tag":11,"props":4251,"children":4253},{"className":4252},[3996],[4254],{"type":10,"tag":4064,"props":4255,"children":4256},{},[4257],{"type":15,"value":4258},"VkBindIndexBufferIndirectCommandEXT",{"type":10,"tag":4018,"props":4260,"children":4261},{},[4262,4275],{"type":10,"tag":4022,"props":4263,"children":4265},{"className":4264},[3996,4025,4026],[4266],{"type":10,"tag":11,"props":4267,"children":4269},{"className":4268},[3996],[4270],{"type":10,"tag":4064,"props":4271,"children":4272},{},[4273],{"type":15,"value":4274},"VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT",{"type":10,"tag":4022,"props":4276,"children":4278},{"className":4277},[3996,4025,4026],[4279],{"type":10,"tag":11,"props":4280,"children":4282},{"className":4281},[3996],[4283],{"type":10,"tag":4064,"props":4284,"children":4285},{},[4286],{"type":15,"value":4287},"VkBindVertexBufferIndirectCommandEXT",{"type":10,"tag":4018,"props":4289,"children":4290},{},[4291,4304],{"type":10,"tag":4022,"props":4292,"children":4294},{"className":4293},[3996,4025,4026],[4295],{"type":10,"tag":11,"props":4296,"children":4298},{"className":4297},[3996],[4299],{"type":10,"tag":4033,"props":4300,"children":4301},{"role":4035},[4302],{"type":15,"value":4303},"Graphics Draw Tokens",{"type":10,"tag":4022,"props":4305,"children":4307},{"className":4306},[3996,4025,4026],[],{"type":10,"tag":4018,"props":4309,"children":4310},{},[4311,4324],{"type":10,"tag":4022,"props":4312,"children":4314},{"className":4313},[3996,4025,4026],[4315],{"type":10,"tag":11,"props":4316,"children":4318},{"className":4317},[3996],[4319],{"type":10,"tag":4064,"props":4320,"children":4321},{},[4322],{"type":15,"value":4323},"VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_EXT",{"type":10,"tag":4022,"props":4325,"children":4327},{"className":4326},[3996,4025,4026],[4328],{"type":10,"tag":11,"props":4329,"children":4331},{"className":4330},[3996],[4332],{"type":10,"tag":4064,"props":4333,"children":4334},{},[4335],{"type":15,"value":4336},"VkDrawIndexedIndirectCommand",{"type":10,"tag":4018,"props":4338,"children":4339},{},[4340,4353],{"type":10,"tag":4022,"props":4341,"children":4343},{"className":4342},[3996,4025,4026],[4344],{"type":10,"tag":11,"props":4345,"children":4347},{"className":4346},[3996],[4348],{"type":10,"tag":4064,"props":4349,"children":4350},{},[4351],{"type":15,"value":4352},"VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_EXT",{"type":10,"tag":4022,"props":4354,"children":4356},{"className":4355},[3996,4025,4026],[4357],{"type":10,"tag":11,"props":4358,"children":4360},{"className":4359},[3996],[4361],{"type":10,"tag":4064,"props":4362,"children":4363},{},[4364],{"type":15,"value":3717},{"type":10,"tag":4018,"props":4366,"children":4367},{},[4368,4381],{"type":10,"tag":4022,"props":4369,"children":4371},{"className":4370},[3996,4025,4026],[4372],{"type":10,"tag":11,"props":4373,"children":4375},{"className":4374},[3996],[4376],{"type":10,"tag":4064,"props":4377,"children":4378},{},[4379],{"type":15,"value":4380},"VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_EXT",{"type":10,"tag":4022,"props":4382,"children":4384},{"className":4383},[3996,4025,4026],[4385],{"type":10,"tag":11,"props":4386,"children":4388},{"className":4387},[3996],[4389],{"type":10,"tag":4064,"props":4390,"children":4391},{},[4392],{"type":15,"value":4393},"VkDrawMeshTasksIndirectCommandEXT",{"type":10,"tag":4018,"props":4395,"children":4396},{},[4397,4410],{"type":10,"tag":4022,"props":4398,"children":4400},{"className":4399},[3996,4025,4026],[4401],{"type":10,"tag":11,"props":4402,"children":4404},{"className":4403},[3996],[4405],{"type":10,"tag":4064,"props":4406,"children":4407},{},[4408],{"type":15,"value":4409},"VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV_EXT",{"type":10,"tag":4022,"props":4411,"children":4413},{"className":4412},[3996,4025,4026],[4414],{"type":10,"tag":11,"props":4415,"children":4417},{"className":4416},[3996],[4418],{"type":10,"tag":4064,"props":4419,"children":4420},{},[4421],{"type":15,"value":4422},"VkDrawMeshTasksIndirectCommandNV",{"type":10,"tag":4018,"props":4424,"children":4425},{},[4426,4439],{"type":10,"tag":4022,"props":4427,"children":4429},{"className":4428},[3996,4025,4026],[4430],{"type":10,"tag":11,"props":4431,"children":4433},{"className":4432},[3996],[4434],{"type":10,"tag":4033,"props":4435,"children":4436},{"role":4035},[4437],{"type":15,"value":4438},"Graphics Draw Count Tokens",{"type":10,"tag":4022,"props":4440,"children":4442},{"className":4441},[3996,4025,4026],[],{"type":10,"tag":4018,"props":4444,"children":4445},{},[4446,4459],{"type":10,"tag":4022,"props":4447,"children":4449},{"className":4448},[3996,4025,4026],[4450],{"type":10,"tag":11,"props":4451,"children":4453},{"className":4452},[3996],[4454],{"type":10,"tag":4064,"props":4455,"children":4456},{},[4457],{"type":15,"value":4458},"VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_COUNT_EXT",{"type":10,"tag":4022,"props":4460,"children":4462},{"className":4461},[3996,4025,4026],[4463],{"type":10,"tag":11,"props":4464,"children":4466},{"className":4465},[3996],[4467,4472,4474],{"type":10,"tag":4064,"props":4468,"children":4469},{},[4470],{"type":15,"value":4471},"VkDrawIndirectCountIndirectCommandEXT",{"type":15,"value":4473}," with ",{"type":10,"tag":4064,"props":4475,"children":4476},{},[4477],{"type":15,"value":4336},{"type":10,"tag":4018,"props":4479,"children":4480},{},[4481,4494],{"type":10,"tag":4022,"props":4482,"children":4484},{"className":4483},[3996,4025,4026],[4485],{"type":10,"tag":11,"props":4486,"children":4488},{"className":4487},[3996],[4489],{"type":10,"tag":4064,"props":4490,"children":4491},{},[4492],{"type":15,"value":4493},"VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_COUNT_EXT",{"type":10,"tag":4022,"props":4495,"children":4497},{"className":4496},[3996,4025,4026],[4498],{"type":10,"tag":11,"props":4499,"children":4501},{"className":4500},[3996],[4502,4506,4507],{"type":10,"tag":4064,"props":4503,"children":4504},{},[4505],{"type":15,"value":4471},{"type":15,"value":4473},{"type":10,"tag":4064,"props":4508,"children":4509},{},[4510],{"type":15,"value":3717},{"type":10,"tag":4018,"props":4512,"children":4513},{},[4514,4527],{"type":10,"tag":4022,"props":4515,"children":4517},{"className":4516},[3996,4025,4026],[4518],{"type":10,"tag":11,"props":4519,"children":4521},{"className":4520},[3996],[4522],{"type":10,"tag":4064,"props":4523,"children":4524},{},[4525],{"type":15,"value":4526},"VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXT",{"type":10,"tag":4022,"props":4528,"children":4530},{"className":4529},[3996,4025,4026],[4531],{"type":10,"tag":11,"props":4532,"children":4534},{"className":4533},[3996],[4535,4539,4540],{"type":10,"tag":4064,"props":4536,"children":4537},{},[4538],{"type":15,"value":4471},{"type":15,"value":4473},{"type":10,"tag":4064,"props":4541,"children":4542},{},[4543],{"type":15,"value":4393},{"type":10,"tag":4018,"props":4545,"children":4546},{},[4547,4560],{"type":10,"tag":4022,"props":4548,"children":4550},{"className":4549},[3996,4025,4026],[4551],{"type":10,"tag":11,"props":4552,"children":4554},{"className":4553},[3996],[4555],{"type":10,"tag":4064,"props":4556,"children":4557},{},[4558],{"type":15,"value":4559},"VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXT",{"type":10,"tag":4022,"props":4561,"children":4563},{"className":4562},[3996,4025,4026],[4564],{"type":10,"tag":11,"props":4565,"children":4567},{"className":4566},[3996],[4568,4572,4573],{"type":10,"tag":4064,"props":4569,"children":4570},{},[4571],{"type":15,"value":4471},{"type":15,"value":4473},{"type":10,"tag":4064,"props":4574,"children":4575},{},[4576],{"type":15,"value":4422},{"type":10,"tag":11,"props":4578,"children":4579},{},[4580,4582,4588],{"type":15,"value":4581},"All commands can be stored 4-byte aligned, independent of 64-bit alignment of structures due to use of ",{"type":10,"tag":151,"props":4583,"children":4585},{"className":4584},[],[4586],{"type":15,"value":4587},"VkDeviceAddress",{"type":15,"value":4589},". This provides binary compatibility with D3D12.",{"type":10,"tag":11,"props":4591,"children":4592},{},[4593,4595,4600],{"type":15,"value":4594},"The type of tokens in a sequence is specified by ",{"type":10,"tag":151,"props":4596,"children":4598},{"className":4597},[],[4599],{"type":15,"value":3353},{"type":15,"value":4601}," which must be one of the values:",{"type":10,"tag":555,"props":4603,"children":4605},{"className":557,"code":4604,"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",[4606],{"type":10,"tag":151,"props":4607,"children":4608},{"__ignoreMap":560},[4609,4625,4633,4641,4649,4657,4665,4673,4681,4689,4697,4706,4715,4724,4733,4742,4751],{"type":10,"tag":566,"props":4610,"children":4611},{"class":568,"line":569},[4612,4616,4620],{"type":10,"tag":566,"props":4613,"children":4614},{"style":579},[4615],{"type":15,"value":1299},{"type":10,"tag":566,"props":4617,"children":4618},{"style":579},[4619],{"type":15,"value":1422},{"type":10,"tag":566,"props":4621,"children":4622},{"style":573},[4623],{"type":15,"value":4624}," VkIndirectCommandsTokenTypeEXT {\n",{"type":10,"tag":566,"props":4626,"children":4627},{"class":568,"line":590},[4628],{"type":10,"tag":566,"props":4629,"children":4630},{"style":573},[4631],{"type":15,"value":4632}," VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT,\n",{"type":10,"tag":566,"props":4634,"children":4635},{"class":568,"line":599},[4636],{"type":10,"tag":566,"props":4637,"children":4638},{"style":573},[4639],{"type":15,"value":4640}," VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT,\n",{"type":10,"tag":566,"props":4642,"children":4643},{"class":568,"line":650},[4644],{"type":10,"tag":566,"props":4645,"children":4646},{"style":573},[4647],{"type":15,"value":4648}," VK_INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT,\n",{"type":10,"tag":566,"props":4650,"children":4651},{"class":568,"line":659},[4652],{"type":10,"tag":566,"props":4653,"children":4654},{"style":573},[4655],{"type":15,"value":4656}," VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT,\n",{"type":10,"tag":566,"props":4658,"children":4659},{"class":568,"line":678},[4660],{"type":10,"tag":566,"props":4661,"children":4662},{"style":573},[4663],{"type":15,"value":4664}," VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT,\n",{"type":10,"tag":566,"props":4666,"children":4667},{"class":568,"line":697},[4668],{"type":10,"tag":566,"props":4669,"children":4670},{"style":573},[4671],{"type":15,"value":4672}," VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_EXT,\n",{"type":10,"tag":566,"props":4674,"children":4675},{"class":568,"line":714},[4676],{"type":10,"tag":566,"props":4677,"children":4678},{"style":573},[4679],{"type":15,"value":4680}," VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_EXT,\n",{"type":10,"tag":566,"props":4682,"children":4683},{"class":568,"line":731},[4684],{"type":10,"tag":566,"props":4685,"children":4686},{"style":573},[4687],{"type":15,"value":4688}," VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_EXT,\n",{"type":10,"tag":566,"props":4690,"children":4691},{"class":568,"line":1952},[4692],{"type":10,"tag":566,"props":4693,"children":4694},{"style":573},[4695],{"type":15,"value":4696}," VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV_EXT,\n",{"type":10,"tag":566,"props":4698,"children":4700},{"class":568,"line":4699},11,[4701],{"type":10,"tag":566,"props":4702,"children":4703},{"style":573},[4704],{"type":15,"value":4705}," VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_COUNT_EXT,\n",{"type":10,"tag":566,"props":4707,"children":4709},{"class":568,"line":4708},12,[4710],{"type":10,"tag":566,"props":4711,"children":4712},{"style":573},[4713],{"type":15,"value":4714}," VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_COUNT_EXT,\n",{"type":10,"tag":566,"props":4716,"children":4718},{"class":568,"line":4717},13,[4719],{"type":10,"tag":566,"props":4720,"children":4721},{"style":573},[4722],{"type":15,"value":4723}," VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXT,\n",{"type":10,"tag":566,"props":4725,"children":4727},{"class":568,"line":4726},14,[4728],{"type":10,"tag":566,"props":4729,"children":4730},{"style":573},[4731],{"type":15,"value":4732}," VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXT,\n",{"type":10,"tag":566,"props":4734,"children":4736},{"class":568,"line":4735},15,[4737],{"type":10,"tag":566,"props":4738,"children":4739},{"style":573},[4740],{"type":15,"value":4741}," VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_EXT,\n",{"type":10,"tag":566,"props":4743,"children":4745},{"class":568,"line":4744},16,[4746],{"type":10,"tag":566,"props":4747,"children":4748},{"style":573},[4749],{"type":15,"value":4750}," VK_INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXT,\n",{"type":10,"tag":566,"props":4752,"children":4754},{"class":568,"line":4753},17,[4755],{"type":10,"tag":566,"props":4756,"children":4757},{"style":573},[4758],{"type":15,"value":4759},"} VkIndirectCommandsTokenTypeEXT;\n",{"type":10,"tag":314,"props":4761,"children":4763},{"id":4762},"_bind_execution_command",[4764],{"type":15,"value":4765},"Bind Execution Command",{"type":10,"tag":11,"props":4767,"children":4768},{},[4769,4771,4776],{"type":15,"value":4770},"An array of 32-bit unsigned integer values are the input data for the ",{"type":10,"tag":151,"props":4772,"children":4774},{"className":4773},[],[4775],{"type":15,"value":4068},{"type":15,"value":4777}," 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":4779,"children":4780},{},[4781,4782,4788],{"type":15,"value":444},{"type":10,"tag":151,"props":4783,"children":4785},{"className":4784},[],[4786],{"type":15,"value":4787},"VkIndirectCommandsExecutionSetTokenEXT",{"type":15,"value":4789}," structure specifies additional info used when creating the layout object:",{"type":10,"tag":555,"props":4791,"children":4793},{"className":557,"code":4792,"language":559,"meta":560,"style":560},"struct VkIndirectCommandsExecutionSetTokenEXT {\n VkIndirectExecutionSetInfoTypeEXT type;\n VkShaderStageFlags shaderStages;\n};\n",[4794],{"type":10,"tag":151,"props":4795,"children":4796},{"__ignoreMap":560},[4797,4809,4817,4825],{"type":10,"tag":566,"props":4798,"children":4799},{"class":568,"line":569},[4800,4804],{"type":10,"tag":566,"props":4801,"children":4802},{"style":579},[4803],{"type":15,"value":582},{"type":10,"tag":566,"props":4805,"children":4806},{"style":573},[4807],{"type":15,"value":4808}," VkIndirectCommandsExecutionSetTokenEXT {\n",{"type":10,"tag":566,"props":4810,"children":4811},{"class":568,"line":590},[4812],{"type":10,"tag":566,"props":4813,"children":4814},{"style":573},[4815],{"type":15,"value":4816}," VkIndirectExecutionSetInfoTypeEXT type;\n",{"type":10,"tag":566,"props":4818,"children":4819},{"class":568,"line":599},[4820],{"type":10,"tag":566,"props":4821,"children":4822},{"style":573},[4823],{"type":15,"value":4824}," VkShaderStageFlags shaderStages;\n",{"type":10,"tag":566,"props":4826,"children":4827},{"class":568,"line":650},[4828],{"type":10,"tag":566,"props":4829,"children":4830},{"style":573},[4831],{"type":15,"value":4832},"};\n",{"type":10,"tag":29,"props":4834,"children":4835},{},[4836,4858],{"type":10,"tag":33,"props":4837,"children":4838},{},[4839,4844,4846,4851,4852,4857],{"type":10,"tag":151,"props":4840,"children":4842},{"className":4841},[],[4843],{"type":15,"value":1370},{"type":15,"value":4845}," must be either ",{"type":10,"tag":151,"props":4847,"children":4849},{"className":4848},[],[4850],{"type":15,"value":1508},{"type":15,"value":3310},{"type":10,"tag":151,"props":4853,"children":4855},{"className":4854},[],[4856],{"type":15,"value":1534},{"type":15,"value":301},{"type":10,"tag":33,"props":4859,"children":4860},{},[4861,4866],{"type":10,"tag":151,"props":4862,"children":4864},{"className":4863},[],[4865],{"type":15,"value":3264},{"type":15,"value":4867}," specifies the shaders that will be changed by this token.",{"type":10,"tag":11,"props":4869,"children":4870},{},[4871],{"type":15,"value":4872},"This must be the first command in a sequence when used.",{"type":10,"tag":11,"props":4874,"children":4875},{},[4876],{"type":15,"value":4877},"Pipelines and shaders bound in indirect buffers must be flagged at creation time:",{"type":10,"tag":555,"props":4879,"children":4881},{"className":557,"code":4880,"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",[4882],{"type":10,"tag":151,"props":4883,"children":4884},{"__ignoreMap":560},[4885,4923],{"type":10,"tag":566,"props":4886,"children":4887},{"class":568,"line":569},[4888,4893,4898,4903,4908,4913,4918],{"type":10,"tag":566,"props":4889,"children":4890},{"style":579},[4891],{"type":15,"value":4892},"#define",{"type":10,"tag":566,"props":4894,"children":4895},{"style":613},[4896],{"type":15,"value":4897}," VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT",{"type":10,"tag":566,"props":4899,"children":4900},{"style":573},[4901],{"type":15,"value":4902}," ((VkPipelineCreateFlagBits)",{"type":10,"tag":566,"props":4904,"children":4905},{"style":579},[4906],{"type":15,"value":4907},"0x",{"type":10,"tag":566,"props":4909,"children":4910},{"style":1456},[4911],{"type":15,"value":4912},"4000000000",{"type":10,"tag":566,"props":4914,"children":4915},{"style":579},[4916],{"type":15,"value":4917},"ULL",{"type":10,"tag":566,"props":4919,"children":4920},{"style":573},[4921],{"type":15,"value":4922},")\n",{"type":10,"tag":566,"props":4924,"children":4925},{"class":568,"line":590},[4926,4930,4935,4940,4944,4949],{"type":10,"tag":566,"props":4927,"children":4928},{"style":579},[4929],{"type":15,"value":4892},{"type":10,"tag":566,"props":4931,"children":4932},{"style":613},[4933],{"type":15,"value":4934}," VK_SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT",{"type":10,"tag":566,"props":4936,"children":4937},{"style":573},[4938],{"type":15,"value":4939}," ((VkShaderCreateFlagBitsEXT)",{"type":10,"tag":566,"props":4941,"children":4942},{"style":579},[4943],{"type":15,"value":4907},{"type":10,"tag":566,"props":4945,"children":4946},{"style":1456},[4947],{"type":15,"value":4948},"00000080",{"type":10,"tag":566,"props":4950,"children":4951},{"style":573},[4952],{"type":15,"value":4922},{"type":10,"tag":314,"props":4954,"children":4956},{"id":4955},"_push_constants_command",[4957],{"type":15,"value":4958},"Push Constants Command",{"type":10,"tag":11,"props":4960,"children":4961},{},[4962,4964,4969],{"type":15,"value":4963},"Raw 32-bit values are the input data for the ",{"type":10,"tag":151,"props":4965,"children":4967},{"className":4966},[],[4968],{"type":15,"value":3308},{"type":15,"value":4970}," token.",{"type":10,"tag":11,"props":4972,"children":4973},{},[4974],{"type":15,"value":4975},"Interpretation of the data is specified at layout creation time:",{"type":10,"tag":555,"props":4977,"children":4979},{"className":557,"code":4978,"language":559,"meta":560,"style":560},"typedef struct VkIndirectCommandsPushConstantTokenEXT {\n VkPushConstantRange updateRange;\n} VkIndirectCommandsPushConstantTokenEXT;\n",[4980],{"type":10,"tag":151,"props":4981,"children":4982},{"__ignoreMap":560},[4983,4999,5007],{"type":10,"tag":566,"props":4984,"children":4985},{"class":568,"line":569},[4986,4990,4994],{"type":10,"tag":566,"props":4987,"children":4988},{"style":579},[4989],{"type":15,"value":1299},{"type":10,"tag":566,"props":4991,"children":4992},{"style":579},[4993],{"type":15,"value":1304},{"type":10,"tag":566,"props":4995,"children":4996},{"style":573},[4997],{"type":15,"value":4998}," VkIndirectCommandsPushConstantTokenEXT {\n",{"type":10,"tag":566,"props":5000,"children":5001},{"class":568,"line":590},[5002],{"type":10,"tag":566,"props":5003,"children":5004},{"style":573},[5005],{"type":15,"value":5006}," VkPushConstantRange updateRange;\n",{"type":10,"tag":566,"props":5008,"children":5009},{"class":568,"line":599},[5010],{"type":10,"tag":566,"props":5011,"children":5012},{"style":573},[5013],{"type":15,"value":5014},"} VkIndirectCommandsPushConstantTokenEXT;\n",{"type":10,"tag":29,"props":5016,"children":5017},{},[5018],{"type":10,"tag":33,"props":5019,"children":5020},{},[5021,5027],{"type":10,"tag":151,"props":5022,"children":5024},{"className":5023},[],[5025],{"type":15,"value":5026},"updateRange",{"type":15,"value":5028}," is the range of push constant data to update.",{"type":10,"tag":314,"props":5030,"children":5032},{"id":5031},"_sequence_index_command",[5033],{"type":15,"value":5034},"Sequence Index Command",{"type":10,"tag":11,"props":5036,"children":5037},{},[5038,5040,5045,5047,5052],{"type":15,"value":5039},"There is a single ",{"type":10,"tag":151,"props":5041,"children":5043},{"className":5042},[],[5044],{"type":15,"value":3709},{"type":15,"value":5046}," of placeholder data for the ",{"type":10,"tag":151,"props":5048,"children":5050},{"className":5049},[],[5051],{"type":15,"value":3316},{"type":15,"value":5053}," 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":5055,"children":5056},{},[5057],{"type":15,"value":4975},{"type":10,"tag":555,"props":5059,"children":5060},{"className":557,"code":4978,"language":559,"meta":560,"style":560},[5061],{"type":10,"tag":151,"props":5062,"children":5063},{"__ignoreMap":560},[5064,5079,5086],{"type":10,"tag":566,"props":5065,"children":5066},{"class":568,"line":569},[5067,5071,5075],{"type":10,"tag":566,"props":5068,"children":5069},{"style":579},[5070],{"type":15,"value":1299},{"type":10,"tag":566,"props":5072,"children":5073},{"style":579},[5074],{"type":15,"value":1304},{"type":10,"tag":566,"props":5076,"children":5077},{"style":573},[5078],{"type":15,"value":4998},{"type":10,"tag":566,"props":5080,"children":5081},{"class":568,"line":590},[5082],{"type":10,"tag":566,"props":5083,"children":5084},{"style":573},[5085],{"type":15,"value":5006},{"type":10,"tag":566,"props":5087,"children":5088},{"class":568,"line":599},[5089],{"type":10,"tag":566,"props":5090,"children":5091},{"style":573},[5092],{"type":15,"value":5014},{"type":10,"tag":29,"props":5094,"children":5095},{},[5096],{"type":10,"tag":33,"props":5097,"children":5098},{},[5099,5104,5106,5112],{"type":10,"tag":151,"props":5100,"children":5102},{"className":5101},[],[5103],{"type":15,"value":5026},{"type":15,"value":5105}," is the range of push constant data to update. ",{"type":10,"tag":151,"props":5107,"children":5109},{"className":5108},[],[5110],{"type":15,"value":5111},"updateRange.size",{"type":15,"value":5113}," must be 4.",{"type":10,"tag":314,"props":5115,"children":5117},{"id":5116},"_bind_index_buffer_command",[5118],{"type":15,"value":5119},"Bind Index Buffer Command",{"type":10,"tag":11,"props":5121,"children":5122},{},[5123,5124,5129,5131,5136],{"type":15,"value":444},{"type":10,"tag":151,"props":5125,"children":5127},{"className":5126},[],[5128],{"type":15,"value":4258},{"type":15,"value":5130}," structure specifies the input data for the ",{"type":10,"tag":151,"props":5132,"children":5134},{"className":5133},[],[5135],{"type":15,"value":4245},{"type":15,"value":4970},{"type":10,"tag":555,"props":5138,"children":5140},{"className":557,"code":5139,"language":559,"meta":560,"style":560},"typedef struct VkBindIndexBufferIndirectCommandEXT {\n VkDeviceAddress bufferAddress;\n uint32_t size;\n VkIndexType indexType;\n} VkBindIndexBufferIndirectCommandEXT;\n",[5141],{"type":10,"tag":151,"props":5142,"children":5143},{"__ignoreMap":560},[5144,5160,5168,5180,5188],{"type":10,"tag":566,"props":5145,"children":5146},{"class":568,"line":569},[5147,5151,5155],{"type":10,"tag":566,"props":5148,"children":5149},{"style":579},[5150],{"type":15,"value":1299},{"type":10,"tag":566,"props":5152,"children":5153},{"style":579},[5154],{"type":15,"value":1304},{"type":10,"tag":566,"props":5156,"children":5157},{"style":573},[5158],{"type":15,"value":5159}," VkBindIndexBufferIndirectCommandEXT {\n",{"type":10,"tag":566,"props":5161,"children":5162},{"class":568,"line":590},[5163],{"type":10,"tag":566,"props":5164,"children":5165},{"style":573},[5166],{"type":15,"value":5167}," VkDeviceAddress bufferAddress;\n",{"type":10,"tag":566,"props":5169,"children":5170},{"class":568,"line":599},[5171,5175],{"type":10,"tag":566,"props":5172,"children":5173},{"style":579},[5174],{"type":15,"value":1742},{"type":10,"tag":566,"props":5176,"children":5177},{"style":573},[5178],{"type":15,"value":5179}," size;\n",{"type":10,"tag":566,"props":5181,"children":5182},{"class":568,"line":650},[5183],{"type":10,"tag":566,"props":5184,"children":5185},{"style":573},[5186],{"type":15,"value":5187}," VkIndexType indexType;\n",{"type":10,"tag":566,"props":5189,"children":5190},{"class":568,"line":659},[5191],{"type":10,"tag":566,"props":5192,"children":5193},{"style":573},[5194],{"type":15,"value":5195},"} VkBindIndexBufferIndirectCommandEXT;\n",{"type":10,"tag":29,"props":5197,"children":5198},{},[5199,5217,5228],{"type":10,"tag":33,"props":5200,"children":5201},{},[5202,5208,5210,5215],{"type":10,"tag":151,"props":5203,"children":5205},{"className":5204},[],[5206],{"type":15,"value":5207},"bufferAddress",{"type":15,"value":5209}," specifies a physical address of the ",{"type":10,"tag":151,"props":5211,"children":5213},{"className":5212},[],[5214],{"type":15,"value":923},{"type":15,"value":5216}," used as an index buffer.",{"type":10,"tag":33,"props":5218,"children":5219},{},[5220,5226],{"type":10,"tag":151,"props":5221,"children":5223},{"className":5222},[],[5224],{"type":15,"value":5225},"size",{"type":15,"value":5227}," is the byte size range which is available for this operation from the provided address.",{"type":10,"tag":33,"props":5229,"children":5230},{},[5231,5237,5238,5244,5246,5251,5253,5258],{"type":10,"tag":151,"props":5232,"children":5234},{"className":5233},[],[5235],{"type":15,"value":5236},"indexType",{"type":15,"value":1372},{"type":10,"tag":151,"props":5239,"children":5241},{"className":5240},[],[5242],{"type":15,"value":5243},"VkIndexType",{"type":15,"value":5245}," value specifying how indices are treated. Instead of the Vulkan enum values, custom ",{"type":10,"tag":151,"props":5247,"children":5249},{"className":5248},[],[5250],{"type":15,"value":3709},{"type":15,"value":5252}," values can be mapped to an ",{"type":10,"tag":151,"props":5254,"children":5256},{"className":5255},[],[5257],{"type":15,"value":5243},{"type":15,"value":5259}," as described below.",{"type":10,"tag":11,"props":5261,"children":5262},{},[5263],{"type":15,"value":5264},"The index buffer is bound as specified at layout creation time:",{"type":10,"tag":555,"props":5266,"children":5268},{"className":557,"code":5267,"language":559,"meta":560,"style":560},"typedef struct VkIndirectCommandsIndexBufferTokenEXT {\n VkIndirectCommandsInputModeFlagsEXT mode;\n} VkIndirectCommandsIndexBufferTokenEXT;\n",[5269],{"type":10,"tag":151,"props":5270,"children":5271},{"__ignoreMap":560},[5272,5288,5296],{"type":10,"tag":566,"props":5273,"children":5274},{"class":568,"line":569},[5275,5279,5283],{"type":10,"tag":566,"props":5276,"children":5277},{"style":579},[5278],{"type":15,"value":1299},{"type":10,"tag":566,"props":5280,"children":5281},{"style":579},[5282],{"type":15,"value":1304},{"type":10,"tag":566,"props":5284,"children":5285},{"style":573},[5286],{"type":15,"value":5287}," VkIndirectCommandsIndexBufferTokenEXT {\n",{"type":10,"tag":566,"props":5289,"children":5290},{"class":568,"line":590},[5291],{"type":10,"tag":566,"props":5292,"children":5293},{"style":573},[5294],{"type":15,"value":5295}," VkIndirectCommandsInputModeFlagsEXT mode;\n",{"type":10,"tag":566,"props":5297,"children":5298},{"class":568,"line":599},[5299],{"type":10,"tag":566,"props":5300,"children":5301},{"style":573},[5302],{"type":15,"value":5303},"} VkIndirectCommandsIndexBufferTokenEXT;\n",{"type":10,"tag":29,"props":5305,"children":5306},{},[5307],{"type":10,"tag":33,"props":5308,"children":5309},{},[5310,5316,5318,5324],{"type":10,"tag":151,"props":5311,"children":5313},{"className":5312},[],[5314],{"type":15,"value":5315},"mode",{"type":15,"value":5317}," is a single ",{"type":10,"tag":151,"props":5319,"children":5321},{"className":5320},[],[5322],{"type":15,"value":5323},"VkIndirectCommandsInputModeFlagBitsEXT",{"type":15,"value":5325}," value specifying the mode to be used with this token.",{"type":10,"tag":11,"props":5327,"children":5328},{},[5329],{"type":15,"value":5330},"The VkIndirectCommandsInputModeFlagsEXT enum is defined as:",{"type":10,"tag":555,"props":5332,"children":5334},{"className":557,"code":5333,"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",[5335],{"type":10,"tag":151,"props":5336,"children":5337},{"__ignoreMap":560},[5338,5354,5361,5385,5409,5417],{"type":10,"tag":566,"props":5339,"children":5340},{"class":568,"line":569},[5341,5345,5349],{"type":10,"tag":566,"props":5342,"children":5343},{"style":579},[5344],{"type":15,"value":1299},{"type":10,"tag":566,"props":5346,"children":5347},{"style":579},[5348],{"type":15,"value":1422},{"type":10,"tag":566,"props":5350,"children":5351},{"style":573},[5352],{"type":15,"value":5353}," VkIndirectCommandsInputModeFlagBitsEXT\n",{"type":10,"tag":566,"props":5355,"children":5356},{"class":568,"line":590},[5357],{"type":10,"tag":566,"props":5358,"children":5359},{"style":573},[5360],{"type":15,"value":1435},{"type":10,"tag":566,"props":5362,"children":5363},{"class":568,"line":599},[5364,5369,5373,5377,5381],{"type":10,"tag":566,"props":5365,"children":5366},{"style":573},[5367],{"type":15,"value":5368}," VK_INDIRECT_COMMANDS_INPUT_MODE_VULKAN_INDEX_BUFFER_EXT ",{"type":10,"tag":566,"props":5370,"children":5371},{"style":579},[5372],{"type":15,"value":1448},{"type":10,"tag":566,"props":5374,"children":5375},{"style":579},[5376],{"type":15,"value":1453},{"type":10,"tag":566,"props":5378,"children":5379},{"style":1456},[5380],{"type":15,"value":1459},{"type":10,"tag":566,"props":5382,"children":5383},{"style":573},[5384],{"type":15,"value":1139},{"type":10,"tag":566,"props":5386,"children":5387},{"class":568,"line":650},[5388,5393,5397,5401,5405],{"type":10,"tag":566,"props":5389,"children":5390},{"style":573},[5391],{"type":15,"value":5392}," VK_INDIRECT_COMMANDS_INPUT_MODE_DXGI_INDEX_BUFFER_EXT ",{"type":10,"tag":566,"props":5394,"children":5395},{"style":579},[5396],{"type":15,"value":1448},{"type":10,"tag":566,"props":5398,"children":5399},{"style":579},[5400],{"type":15,"value":1453},{"type":10,"tag":566,"props":5402,"children":5403},{"style":1456},[5404],{"type":15,"value":1484},{"type":10,"tag":566,"props":5406,"children":5407},{"style":573},[5408],{"type":15,"value":1139},{"type":10,"tag":566,"props":5410,"children":5411},{"class":568,"line":659},[5412],{"type":10,"tag":566,"props":5413,"children":5414},{"style":573},[5415],{"type":15,"value":5416},"} VkIndirectCommandsInputModeFlagBitsEXT;\n",{"type":10,"tag":566,"props":5418,"children":5419},{"class":568,"line":678},[5420,5424],{"type":10,"tag":566,"props":5421,"children":5422},{"style":579},[5423],{"type":15,"value":1299},{"type":10,"tag":566,"props":5425,"children":5426},{"style":573},[5427],{"type":15,"value":5428}," VkFlags VkIndirectCommandsInputModeFlagsEXT;\n",{"type":10,"tag":29,"props":5430,"children":5431},{},[5432,5449],{"type":10,"tag":33,"props":5433,"children":5434},{},[5435,5441,5443,5448],{"type":10,"tag":151,"props":5436,"children":5438},{"className":5437},[],[5439],{"type":15,"value":5440},"VK_INDIRECT_COMMANDS_INPUT_MODE_VULKAN_INDEX_BUFFER_EXT",{"type":15,"value":5442}," indicates that the indirect buffer contains ",{"type":10,"tag":151,"props":5444,"children":5446},{"className":5445},[],[5447],{"type":15,"value":4258},{"type":15,"value":301},{"type":10,"tag":33,"props":5450,"children":5451},{},[5452,5458,5459,5465],{"type":10,"tag":151,"props":5453,"children":5455},{"className":5454},[],[5456],{"type":15,"value":5457},"VK_INDIRECT_COMMANDS_INPUT_MODE_DXGI_INDEX_BUFFER_EXT",{"type":15,"value":5442},{"type":10,"tag":151,"props":5460,"children":5462},{"className":5461},[],[5463],{"type":15,"value":5464},"D3D12_INDEX_BUFFER_VIEW",{"type":15,"value":301},{"type":10,"tag":11,"props":5467,"children":5468},{},[5469,5471,5476,5478,5483,5485,5490,5492,5497],{"type":15,"value":5470},"This allows for easy layering of Vulkan atop other APIs. When ",{"type":10,"tag":151,"props":5472,"children":5474},{"className":5473},[],[5475],{"type":15,"value":5457},{"type":15,"value":5477}," is specified, the indirect buffer can contain a ",{"type":10,"tag":151,"props":5479,"children":5481},{"className":5480},[],[5482],{"type":15,"value":5464},{"type":15,"value":5484}," instead of ",{"type":10,"tag":151,"props":5486,"children":5488},{"className":5487},[],[5489],{"type":15,"value":4258},{"type":15,"value":5491}," as D3D’s DXGI format value is mapped to the ",{"type":10,"tag":151,"props":5493,"children":5495},{"className":5494},[],[5496],{"type":15,"value":5243},{"type":15,"value":5498},". It works as both structs are otherwise binary compatible.",{"type":10,"tag":314,"props":5500,"children":5502},{"id":5501},"_bind_vertex_buffer_command",[5503],{"type":15,"value":5504},"Bind Vertex Buffer Command",{"type":10,"tag":11,"props":5506,"children":5507},{},[5508,5509,5514,5515,5520],{"type":15,"value":444},{"type":10,"tag":151,"props":5510,"children":5512},{"className":5511},[],[5513],{"type":15,"value":4287},{"type":15,"value":5130},{"type":10,"tag":151,"props":5516,"children":5518},{"className":5517},[],[5519],{"type":15,"value":4274},{"type":15,"value":4970},{"type":10,"tag":555,"props":5522,"children":5524},{"className":557,"code":5523,"language":559,"meta":560,"style":560},"typedef struct VkBindVertexBufferIndirectCommandEXT {\n VkDeviceAddress bufferAddress;\n uint32_t size;\n uint32_t stride;\n} VkBindVertexBufferIndirectCommandEXT;\n",[5525],{"type":10,"tag":151,"props":5526,"children":5527},{"__ignoreMap":560},[5528,5544,5551,5562,5574],{"type":10,"tag":566,"props":5529,"children":5530},{"class":568,"line":569},[5531,5535,5539],{"type":10,"tag":566,"props":5532,"children":5533},{"style":579},[5534],{"type":15,"value":1299},{"type":10,"tag":566,"props":5536,"children":5537},{"style":579},[5538],{"type":15,"value":1304},{"type":10,"tag":566,"props":5540,"children":5541},{"style":573},[5542],{"type":15,"value":5543}," VkBindVertexBufferIndirectCommandEXT {\n",{"type":10,"tag":566,"props":5545,"children":5546},{"class":568,"line":590},[5547],{"type":10,"tag":566,"props":5548,"children":5549},{"style":573},[5550],{"type":15,"value":5167},{"type":10,"tag":566,"props":5552,"children":5553},{"class":568,"line":599},[5554,5558],{"type":10,"tag":566,"props":5555,"children":5556},{"style":579},[5557],{"type":15,"value":1742},{"type":10,"tag":566,"props":5559,"children":5560},{"style":573},[5561],{"type":15,"value":5179},{"type":10,"tag":566,"props":5563,"children":5564},{"class":568,"line":650},[5565,5569],{"type":10,"tag":566,"props":5566,"children":5567},{"style":579},[5568],{"type":15,"value":1742},{"type":10,"tag":566,"props":5570,"children":5571},{"style":573},[5572],{"type":15,"value":5573}," stride;\n",{"type":10,"tag":566,"props":5575,"children":5576},{"class":568,"line":659},[5577],{"type":10,"tag":566,"props":5578,"children":5579},{"style":573},[5580],{"type":15,"value":5581},"} VkBindVertexBufferIndirectCommandEXT;\n",{"type":10,"tag":29,"props":5583,"children":5584},{},[5585,5601,5610],{"type":10,"tag":33,"props":5586,"children":5587},{},[5588,5593,5594,5599],{"type":10,"tag":151,"props":5589,"children":5591},{"className":5590},[],[5592],{"type":15,"value":5207},{"type":15,"value":5209},{"type":10,"tag":151,"props":5595,"children":5597},{"className":5596},[],[5598],{"type":15,"value":923},{"type":15,"value":5600}," used as a vertex input binding.",{"type":10,"tag":33,"props":5602,"children":5603},{},[5604,5609],{"type":10,"tag":151,"props":5605,"children":5607},{"className":5606},[],[5608],{"type":15,"value":5225},{"type":15,"value":5227},{"type":10,"tag":33,"props":5611,"children":5612},{},[5613,5619,5621,5627],{"type":10,"tag":151,"props":5614,"children":5616},{"className":5615},[],[5617],{"type":15,"value":5618},"stride",{"type":15,"value":5620}," is the byte size stride for this vertex input binding as in ",{"type":10,"tag":151,"props":5622,"children":5624},{"className":5623},[],[5625],{"type":15,"value":5626},"VkVertexInputBindingDescription::stride",{"type":15,"value":301},{"type":10,"tag":11,"props":5629,"children":5630},{},[5631],{"type":15,"value":5632},"The vertex buffer is bound as specified at layout creation time:",{"type":10,"tag":555,"props":5634,"children":5636},{"className":557,"code":5635,"language":559,"meta":560,"style":560},"typedef struct VkIndirectCommandsVertexBufferTokenEXT {\n uint32_t vertexBindingUnit;\n} VkIndirectCommandsVertexBufferTokenEXT;\n",[5637],{"type":10,"tag":151,"props":5638,"children":5639},{"__ignoreMap":560},[5640,5656,5668],{"type":10,"tag":566,"props":5641,"children":5642},{"class":568,"line":569},[5643,5647,5651],{"type":10,"tag":566,"props":5644,"children":5645},{"style":579},[5646],{"type":15,"value":1299},{"type":10,"tag":566,"props":5648,"children":5649},{"style":579},[5650],{"type":15,"value":1304},{"type":10,"tag":566,"props":5652,"children":5653},{"style":573},[5654],{"type":15,"value":5655}," VkIndirectCommandsVertexBufferTokenEXT {\n",{"type":10,"tag":566,"props":5657,"children":5658},{"class":568,"line":590},[5659,5663],{"type":10,"tag":566,"props":5660,"children":5661},{"style":579},[5662],{"type":15,"value":1742},{"type":10,"tag":566,"props":5664,"children":5665},{"style":573},[5666],{"type":15,"value":5667}," vertexBindingUnit;\n",{"type":10,"tag":566,"props":5669,"children":5670},{"class":568,"line":599},[5671],{"type":10,"tag":566,"props":5672,"children":5673},{"style":573},[5674],{"type":15,"value":5675},"} VkIndirectCommandsVertexBufferTokenEXT;\n",{"type":10,"tag":29,"props":5677,"children":5678},{},[5679],{"type":10,"tag":33,"props":5680,"children":5681},{},[5682,5688],{"type":10,"tag":151,"props":5683,"children":5685},{"className":5684},[],[5686],{"type":15,"value":5687},"vertexBindingUnit",{"type":15,"value":5689}," is the vertex input binding number to be bound.",{"type":10,"tag":11,"props":5691,"children":5692},{},[5693,5695,5700,5701,5707],{"type":15,"value":5694},"Both ",{"type":10,"tag":151,"props":5696,"children":5698},{"className":5697},[],[5699],{"type":15,"value":4287},{"type":15,"value":293},{"type":10,"tag":151,"props":5702,"children":5704},{"className":5703},[],[5705],{"type":15,"value":5706},"D3D12_VERTEX_BUFFER_VIEW",{"type":15,"value":5708}," structs are binary compatible.",{"type":10,"tag":314,"props":5710,"children":5712},{"id":5711},"_draw_commands",[5713],{"type":15,"value":5714},"Draw Commands",{"type":10,"tag":11,"props":5716,"children":5717},{},[5718],{"type":15,"value":5719},"Draws can be executed with following commands:",{"type":10,"tag":29,"props":5721,"children":5722},{},[5723,5740,5756,5781],{"type":10,"tag":33,"props":5724,"children":5725},{},[5726,5727,5732,5734,5739],{"type":15,"value":444},{"type":10,"tag":151,"props":5728,"children":5730},{"className":5729},[],[5731],{"type":15,"value":4336},{"type":15,"value":5733}," structure specifies the inputs data for the ",{"type":10,"tag":151,"props":5735,"children":5737},{"className":5736},[],[5738],{"type":15,"value":4323},{"type":15,"value":4970},{"type":10,"tag":33,"props":5741,"children":5742},{},[5743,5744,5749,5750,5755],{"type":15,"value":444},{"type":10,"tag":151,"props":5745,"children":5747},{"className":5746},[],[5748],{"type":15,"value":3717},{"type":15,"value":5130},{"type":10,"tag":151,"props":5751,"children":5753},{"className":5752},[],[5754],{"type":15,"value":4352},{"type":15,"value":4970},{"type":10,"tag":33,"props":5757,"children":5758},{},[5759,5761,5767,5769,5774,5775,5780],{"type":15,"value":5760},"If ",{"type":10,"tag":151,"props":5762,"children":5764},{"className":5763},[],[5765],{"type":15,"value":5766},"EXT_mesh_shader",{"type":15,"value":5768}," is enabled, the ",{"type":10,"tag":151,"props":5770,"children":5772},{"className":5771},[],[5773],{"type":15,"value":4393},{"type":15,"value":5130},{"type":10,"tag":151,"props":5776,"children":5778},{"className":5777},[],[5779],{"type":15,"value":4380},{"type":15,"value":4970},{"type":10,"tag":33,"props":5782,"children":5783},{},[5784,5785,5791,5792,5797,5798,5803],{"type":15,"value":5760},{"type":10,"tag":151,"props":5786,"children":5788},{"className":5787},[],[5789],{"type":15,"value":5790},"NV_mesh_shader",{"type":15,"value":5768},{"type":10,"tag":151,"props":5793,"children":5795},{"className":5794},[],[5796],{"type":15,"value":4422},{"type":15,"value":5130},{"type":10,"tag":151,"props":5799,"children":5801},{"className":5800},[],[5802],{"type":15,"value":4409},{"type":15,"value":4970},{"type":10,"tag":314,"props":5805,"children":5807},{"id":5806},"_multi_draw_commands",[5808],{"type":15,"value":5809},"Multi-draw Commands",{"type":10,"tag":11,"props":5811,"children":5812},{},[5813],{"type":15,"value":5814},"Multiple draws can be executed using the following commands:",{"type":10,"tag":29,"props":5816,"children":5817},{},[5818,5829,5840,5857,5873],{"type":10,"tag":33,"props":5819,"children":5820},{},[5821,5823,5828],{"type":15,"value":5822},"Indexed draws with the ",{"type":10,"tag":151,"props":5824,"children":5826},{"className":5825},[],[5827],{"type":15,"value":4458},{"type":15,"value":4970},{"type":10,"tag":33,"props":5830,"children":5831},{},[5832,5834,5839],{"type":15,"value":5833},"Non-indexed draws with the ",{"type":10,"tag":151,"props":5835,"children":5837},{"className":5836},[],[5838],{"type":15,"value":4493},{"type":15,"value":4970},{"type":10,"tag":33,"props":5841,"children":5842},{},[5843,5844,5849,5851,5856],{"type":15,"value":5760},{"type":10,"tag":151,"props":5845,"children":5847},{"className":5846},[],[5848],{"type":15,"value":5766},{"type":15,"value":5850}," is enabled, mesh tasks with the ",{"type":10,"tag":151,"props":5852,"children":5854},{"className":5853},[],[5855],{"type":15,"value":4526},{"type":15,"value":4970},{"type":10,"tag":33,"props":5858,"children":5859},{},[5860,5861,5866,5867,5872],{"type":15,"value":5760},{"type":10,"tag":151,"props":5862,"children":5864},{"className":5863},[],[5865],{"type":15,"value":5790},{"type":15,"value":5850},{"type":10,"tag":151,"props":5868,"children":5870},{"className":5869},[],[5871],{"type":15,"value":4559},{"type":15,"value":4970},{"type":10,"tag":33,"props":5874,"children":5875},{},[5876,5877,5883],{"type":15,"value":444},{"type":10,"tag":151,"props":5878,"children":5880},{"className":5879},[],[5881],{"type":15,"value":5882},"DrawIndex",{"type":15,"value":5884}," shader variable is zero-indexed for each multi-draw token.",{"type":10,"tag":11,"props":5886,"children":5887},{},[5888,5890,5895],{"type":15,"value":5889},"All multi-draw commands use ",{"type":10,"tag":151,"props":5891,"children":5893},{"className":5892},[],[5894],{"type":15,"value":4471},{"type":15,"value":5896}," data:",{"type":10,"tag":555,"props":5898,"children":5900},{"className":557,"code":5899,"language":559,"meta":560,"style":560},"typedef struct VkDrawIndirectCountIndirectCommandEXT {\n VkDeviceAddress bufferAddress;\n uint32_t stride;\n uint32_t commandCount;\n} VkDrawIndirectCountIndirectCommandEXT;\n",[5901],{"type":10,"tag":151,"props":5902,"children":5903},{"__ignoreMap":560},[5904,5920,5927,5938,5950],{"type":10,"tag":566,"props":5905,"children":5906},{"class":568,"line":569},[5907,5911,5915],{"type":10,"tag":566,"props":5908,"children":5909},{"style":579},[5910],{"type":15,"value":1299},{"type":10,"tag":566,"props":5912,"children":5913},{"style":579},[5914],{"type":15,"value":1304},{"type":10,"tag":566,"props":5916,"children":5917},{"style":573},[5918],{"type":15,"value":5919}," VkDrawIndirectCountIndirectCommandEXT {\n",{"type":10,"tag":566,"props":5921,"children":5922},{"class":568,"line":590},[5923],{"type":10,"tag":566,"props":5924,"children":5925},{"style":573},[5926],{"type":15,"value":5167},{"type":10,"tag":566,"props":5928,"children":5929},{"class":568,"line":599},[5930,5934],{"type":10,"tag":566,"props":5931,"children":5932},{"style":579},[5933],{"type":15,"value":1742},{"type":10,"tag":566,"props":5935,"children":5936},{"style":573},[5937],{"type":15,"value":5573},{"type":10,"tag":566,"props":5939,"children":5940},{"class":568,"line":650},[5941,5945],{"type":10,"tag":566,"props":5942,"children":5943},{"style":579},[5944],{"type":15,"value":1742},{"type":10,"tag":566,"props":5946,"children":5947},{"style":573},[5948],{"type":15,"value":5949}," commandCount;\n",{"type":10,"tag":566,"props":5951,"children":5952},{"class":568,"line":659},[5953],{"type":10,"tag":566,"props":5954,"children":5955},{"style":573},[5956],{"type":15,"value":5957},"} VkDrawIndirectCountIndirectCommandEXT;\n",{"type":10,"tag":29,"props":5959,"children":5960},{},[5961,5977,5987],{"type":10,"tag":33,"props":5962,"children":5963},{},[5964,5969,5970,5975],{"type":10,"tag":151,"props":5965,"children":5967},{"className":5966},[],[5968],{"type":15,"value":5207},{"type":15,"value":5209},{"type":10,"tag":151,"props":5971,"children":5973},{"className":5972},[],[5974],{"type":15,"value":923},{"type":15,"value":5976}," used for draw commands.",{"type":10,"tag":33,"props":5978,"children":5979},{},[5980,5985],{"type":10,"tag":151,"props":5981,"children":5983},{"className":5982},[],[5984],{"type":15,"value":5618},{"type":15,"value":5986}," is the byte size stride for the command arguments",{"type":10,"tag":33,"props":5988,"children":5989},{},[5990,5996],{"type":10,"tag":151,"props":5991,"children":5993},{"className":5992},[],[5994],{"type":15,"value":5995},"commandCount",{"type":15,"value":5997}," is the number of commands to execute",{"type":10,"tag":11,"props":5999,"children":6000},{},[6001,6003,6008],{"type":15,"value":6002},"The data in ",{"type":10,"tag":151,"props":6004,"children":6006},{"className":6005},[],[6007],{"type":15,"value":5207},{"type":15,"value":6009}," depends on the token:",{"type":10,"tag":29,"props":6011,"children":6012},{},[6013,6029,6045,6060],{"type":10,"tag":33,"props":6014,"children":6015},{},[6016,6021,6023,6028],{"type":10,"tag":151,"props":6017,"children":6019},{"className":6018},[],[6020],{"type":15,"value":4336},{"type":15,"value":6022}," for ",{"type":10,"tag":151,"props":6024,"children":6026},{"className":6025},[],[6027],{"type":15,"value":4458},{"type":15,"value":301},{"type":10,"tag":33,"props":6030,"children":6031},{},[6032,6037,6038,6043],{"type":10,"tag":151,"props":6033,"children":6035},{"className":6034},[],[6036],{"type":15,"value":3717},{"type":15,"value":6022},{"type":10,"tag":151,"props":6039,"children":6041},{"className":6040},[],[6042],{"type":15,"value":4493},{"type":15,"value":6044}," .",{"type":10,"tag":33,"props":6046,"children":6047},{},[6048,6053,6054,6059],{"type":10,"tag":151,"props":6049,"children":6051},{"className":6050},[],[6052],{"type":15,"value":4393},{"type":15,"value":6022},{"type":10,"tag":151,"props":6055,"children":6057},{"className":6056},[],[6058],{"type":15,"value":4526},{"type":15,"value":301},{"type":10,"tag":33,"props":6061,"children":6062},{},[6063,6068,6069,6074],{"type":10,"tag":151,"props":6064,"children":6066},{"className":6065},[],[6067],{"type":15,"value":4422},{"type":15,"value":6022},{"type":10,"tag":151,"props":6070,"children":6072},{"className":6071},[],[6073],{"type":15,"value":4559},{"type":15,"value":301},{"type":10,"tag":314,"props":6076,"children":6078},{"id":6077},"_dispatch_command",[6079],{"type":15,"value":6080},"Dispatch Command",{"type":10,"tag":11,"props":6082,"children":6083},{},[6084,6085,6090,6091,6096],{"type":15,"value":444},{"type":10,"tag":151,"props":6086,"children":6088},{"className":6087},[],[6089],{"type":15,"value":3854},{"type":15,"value":5130},{"type":10,"tag":151,"props":6092,"children":6094},{"className":6093},[],[6095],{"type":15,"value":4148},{"type":15,"value":4970},{"type":10,"tag":314,"props":6098,"children":6100},{"id":6099},"_trace_rays_command",[6101],{"type":15,"value":6102},"Trace Rays Command",{"type":10,"tag":11,"props":6104,"children":6105},{},[6106,6107,6113,6114,6119,6120,6125],{"type":15,"value":5760},{"type":10,"tag":151,"props":6108,"children":6110},{"className":6109},[],[6111],{"type":15,"value":6112},"VK_KHR_ray_tracing_maintenance1",{"type":15,"value":5768},{"type":10,"tag":151,"props":6115,"children":6117},{"className":6116},[],[6118],{"type":15,"value":4209},{"type":15,"value":5130},{"type":10,"tag":151,"props":6121,"children":6123},{"className":6122},[],[6124],{"type":15,"value":4196},{"type":15,"value":4970},{"type":10,"tag":242,"props":6127,"children":6129},{"id":6128},"_preprocess_buffer",[6130],{"type":15,"value":6131},"Preprocess Buffer",{"type":10,"tag":11,"props":6133,"children":6134},{},[6135],{"type":15,"value":6136},"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":6138,"children":6139},{},[6140],{"type":15,"value":6141},"To retrieve the memory size and alignment requirements of a particular execution state call:",{"type":10,"tag":555,"props":6143,"children":6145},{"className":557,"code":6144,"language":559,"meta":560,"style":560},"VKAPI_ATTR void VKAPI_CALL vkGetGeneratedCommandsMemoryRequirementsEXT(\n VkDevice device,\n const VkGeneratedCommandsMemoryRequirementsInfoEXT* pInfo,\n VkMemoryRequirements2* pMemoryRequirements);\n",[6146],{"type":10,"tag":151,"props":6147,"children":6148},{"__ignoreMap":560},[6149,6172,6188,6213],{"type":10,"tag":566,"props":6150,"children":6151},{"class":568,"line":569},[6152,6156,6160,6164,6168],{"type":10,"tag":566,"props":6153,"children":6154},{"style":573},[6155],{"type":15,"value":2230},{"type":10,"tag":566,"props":6157,"children":6158},{"style":579},[6159],{"type":15,"value":610},{"type":10,"tag":566,"props":6161,"children":6162},{"style":573},[6163],{"type":15,"value":2239},{"type":10,"tag":566,"props":6165,"children":6166},{"style":613},[6167],{"type":15,"value":943},{"type":10,"tag":566,"props":6169,"children":6170},{"style":573},[6171],{"type":15,"value":1121},{"type":10,"tag":566,"props":6173,"children":6174},{"class":568,"line":590},[6175,6180,6184],{"type":10,"tag":566,"props":6176,"children":6177},{"style":573},[6178],{"type":15,"value":6179}," VkDevice ",{"type":10,"tag":566,"props":6181,"children":6182},{"style":629},[6183],{"type":15,"value":1134},{"type":10,"tag":566,"props":6185,"children":6186},{"style":573},[6187],{"type":15,"value":1139},{"type":10,"tag":566,"props":6189,"children":6190},{"class":568,"line":599},[6191,6195,6200,6204,6209],{"type":10,"tag":566,"props":6192,"children":6193},{"style":579},[6194],{"type":15,"value":1147},{"type":10,"tag":566,"props":6196,"children":6197},{"style":573},[6198],{"type":15,"value":6199}," VkGeneratedCommandsMemoryRequirementsInfoEXT",{"type":10,"tag":566,"props":6201,"children":6202},{"style":579},[6203],{"type":15,"value":1157},{"type":10,"tag":566,"props":6205,"children":6206},{"style":629},[6207],{"type":15,"value":6208}," pInfo",{"type":10,"tag":566,"props":6210,"children":6211},{"style":573},[6212],{"type":15,"value":1139},{"type":10,"tag":566,"props":6214,"children":6215},{"class":568,"line":650},[6216,6221,6225,6230],{"type":10,"tag":566,"props":6217,"children":6218},{"style":573},[6219],{"type":15,"value":6220}," VkMemoryRequirements2",{"type":10,"tag":566,"props":6222,"children":6223},{"style":579},[6224],{"type":15,"value":1157},{"type":10,"tag":566,"props":6226,"children":6227},{"style":629},[6228],{"type":15,"value":6229}," pMemoryRequirements",{"type":10,"tag":566,"props":6231,"children":6232},{"style":573},[6233],{"type":15,"value":1213},{"type":10,"tag":29,"props":6235,"children":6236},{},[6237,6247,6265],{"type":10,"tag":33,"props":6238,"children":6239},{},[6240,6245],{"type":10,"tag":151,"props":6241,"children":6243},{"className":6242},[],[6244],{"type":15,"value":1134},{"type":15,"value":6246}," is the logical device that will create the buffer.",{"type":10,"tag":33,"props":6248,"children":6249},{},[6250,6256,6257,6263],{"type":10,"tag":151,"props":6251,"children":6253},{"className":6252},[],[6254],{"type":15,"value":6255},"pInfo",{"type":15,"value":1237},{"type":10,"tag":151,"props":6258,"children":6260},{"className":6259},[],[6261],{"type":15,"value":6262},"VkGeneratedCommandsMemoryRequirementsInfoEXT",{"type":15,"value":6264}," structure containing parameters required for the memory requirements query.",{"type":10,"tag":33,"props":6266,"children":6267},{},[6268,6274,6275,6281],{"type":10,"tag":151,"props":6269,"children":6271},{"className":6270},[],[6272],{"type":15,"value":6273},"pMemoryRequirements",{"type":15,"value":1237},{"type":10,"tag":151,"props":6276,"children":6278},{"className":6277},[],[6279],{"type":15,"value":6280},"VkMemoryRequirements2",{"type":15,"value":6282}," structure in which the memory requirements of the buffer object are returned.",{"type":10,"tag":11,"props":6284,"children":6285},{},[6286,6287,6293],{"type":15,"value":5760},{"type":10,"tag":151,"props":6288,"children":6290},{"className":6289},[],[6291],{"type":15,"value":6292},"pMemoryRequirements→memoryRequirements.size",{"type":15,"value":6294}," is zero then preprocessing is not required.",{"type":10,"tag":11,"props":6296,"children":6297},{},[6298,6299,6304],{"type":15,"value":444},{"type":10,"tag":151,"props":6300,"children":6302},{"className":6301},[],[6303],{"type":15,"value":6262},{"type":15,"value":1284},{"type":10,"tag":555,"props":6306,"children":6308},{"className":557,"code":6307,"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",[6309],{"type":10,"tag":151,"props":6310,"children":6311},{"__ignoreMap":560},[6312,6328,6336,6352,6360,6368,6380,6392],{"type":10,"tag":566,"props":6313,"children":6314},{"class":568,"line":569},[6315,6319,6323],{"type":10,"tag":566,"props":6316,"children":6317},{"style":579},[6318],{"type":15,"value":1299},{"type":10,"tag":566,"props":6320,"children":6321},{"style":579},[6322],{"type":15,"value":1304},{"type":10,"tag":566,"props":6324,"children":6325},{"style":573},[6326],{"type":15,"value":6327}," VkGeneratedCommandsMemoryRequirementsInfoEXT {\n",{"type":10,"tag":566,"props":6329,"children":6330},{"class":568,"line":590},[6331],{"type":10,"tag":566,"props":6332,"children":6333},{"style":573},[6334],{"type":15,"value":6335}," VkStructureType sType;\n",{"type":10,"tag":566,"props":6337,"children":6338},{"class":568,"line":599},[6339,6343,6347],{"type":10,"tag":566,"props":6340,"children":6341},{"style":579},[6342],{"type":15,"value":1147},{"type":10,"tag":566,"props":6344,"children":6345},{"style":579},[6346],{"type":15,"value":1329},{"type":10,"tag":566,"props":6348,"children":6349},{"style":573},[6350],{"type":15,"value":6351}," pNext;\n",{"type":10,"tag":566,"props":6353,"children":6354},{"class":568,"line":650},[6355],{"type":10,"tag":566,"props":6356,"children":6357},{"style":573},[6358],{"type":15,"value":6359}," VkIndirectExecutionSetEXT indirectExecutionSet;\n",{"type":10,"tag":566,"props":6361,"children":6362},{"class":568,"line":659},[6363],{"type":10,"tag":566,"props":6364,"children":6365},{"style":573},[6366],{"type":15,"value":6367}," VkIndirectCommandsLayoutEXT indirectCommandsLayout;\n",{"type":10,"tag":566,"props":6369,"children":6370},{"class":568,"line":678},[6371,6375],{"type":10,"tag":566,"props":6372,"children":6373},{"style":579},[6374],{"type":15,"value":1742},{"type":10,"tag":566,"props":6376,"children":6377},{"style":573},[6378],{"type":15,"value":6379}," maxSequenceCount;\n",{"type":10,"tag":566,"props":6381,"children":6382},{"class":568,"line":697},[6383,6387],{"type":10,"tag":566,"props":6384,"children":6385},{"style":579},[6386],{"type":15,"value":1742},{"type":10,"tag":566,"props":6388,"children":6389},{"style":573},[6390],{"type":15,"value":6391}," maxDrawCount;\n",{"type":10,"tag":566,"props":6393,"children":6394},{"class":568,"line":714},[6395],{"type":10,"tag":566,"props":6396,"children":6397},{"style":573},[6398],{"type":15,"value":6399},"} VkGeneratedCommandsMemoryRequirementsInfoEXT;\n",{"type":10,"tag":29,"props":6401,"children":6402},{},[6403,6413,6436,6452,6463],{"type":10,"tag":33,"props":6404,"children":6405},{},[6406,6411],{"type":10,"tag":151,"props":6407,"children":6409},{"className":6408},[],[6410],{"type":15,"value":3264},{"type":15,"value":6412}," is the mask of shader stages that this buffer memory is intended to be used with during the execution.",{"type":10,"tag":33,"props":6414,"children":6415},{},[6416,6421,6423,6428,6430,6435],{"type":10,"tag":151,"props":6417,"children":6419},{"className":6418},[],[6420],{"type":15,"value":2277},{"type":15,"value":6422}," is the indirect execution set to be used for binding shaders. If the token sequence will contain a ",{"type":10,"tag":151,"props":6424,"children":6426},{"className":6425},[],[6427],{"type":15,"value":4068},{"type":15,"value":6429}," token, it must not be ",{"type":10,"tag":151,"props":6431,"children":6433},{"className":6432},[],[6434],{"type":15,"value":3324},{"type":15,"value":301},{"type":10,"tag":33,"props":6437,"children":6438},{},[6439,6444,6445,6450],{"type":10,"tag":151,"props":6440,"children":6442},{"className":6441},[],[6443],{"type":15,"value":3632},{"type":15,"value":3266},{"type":10,"tag":151,"props":6446,"children":6448},{"className":6447},[],[6449],{"type":15,"value":892},{"type":15,"value":6451}," that this buffer memory is intended to be used with.",{"type":10,"tag":33,"props":6453,"children":6454},{},[6455,6461],{"type":10,"tag":151,"props":6456,"children":6458},{"className":6457},[],[6459],{"type":15,"value":6460},"maxSequenceCount",{"type":15,"value":6462}," is the maximum number of sequences that this buffer memory can be used with.",{"type":10,"tag":33,"props":6464,"children":6465},{},[6466,6472,6474,6479,6481,6486],{"type":10,"tag":151,"props":6467,"children":6469},{"className":6468},[],[6470],{"type":15,"value":6471},"maxDrawCount",{"type":15,"value":6473}," 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":6475,"children":6477},{"className":6476},[],[6478],{"type":15,"value":6471},{"type":15,"value":6480}," in ",{"type":10,"tag":151,"props":6482,"children":6484},{"className":6483},[],[6485],{"type":15,"value":363},{"type":15,"value":6487},")",{"type":10,"tag":11,"props":6489,"children":6490},{},[6491,6493,6499,6500,6506],{"type":15,"value":6492},"Preprocess buffer memory can be recycled with different execution/preprocessing operations, but must be synchronized using barriers with ",{"type":10,"tag":151,"props":6494,"children":6496},{"className":6495},[],[6497],{"type":15,"value":6498},"VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_EXT",{"type":15,"value":293},{"type":10,"tag":151,"props":6501,"children":6503},{"className":6502},[],[6504],{"type":15,"value":6505},"VK_ACCESS_COMMAND_PREPROCESS_WRITE/READ_BIT_EXT",{"type":15,"value":301},{"type":10,"tag":11,"props":6508,"children":6509},{},[6510],{"type":15,"value":6511},"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":6513,"children":6514},{},[6515,6516,6521,6523,6528,6530,6536,6537,6543],{"type":15,"value":5760},{"type":10,"tag":151,"props":6517,"children":6519},{"className":6518},[],[6520],{"type":15,"value":2277},{"type":15,"value":6522}," is ",{"type":10,"tag":151,"props":6524,"children":6526},{"className":6525},[],[6527],{"type":15,"value":3324},{"type":15,"value":6529},", pipeline or shader info must be passed through the pNext pointer using either a ",{"type":10,"tag":151,"props":6531,"children":6533},{"className":6532},[],[6534],{"type":15,"value":6535},"VkGeneratedCommandsPipelineInfoEXT",{"type":15,"value":3310},{"type":10,"tag":151,"props":6538,"children":6540},{"className":6539},[],[6541],{"type":15,"value":6542},"VkGeneratedCommandsShaderInfoEXT",{"type":15,"value":6544}," struct.",{"type":10,"tag":11,"props":6546,"children":6547},{},[6548,6549,6554],{"type":15,"value":444},{"type":10,"tag":151,"props":6550,"children":6552},{"className":6551},[],[6553],{"type":15,"value":6535},{"type":15,"value":1284},{"type":10,"tag":555,"props":6556,"children":6558},{"className":557,"code":6557,"language":559,"meta":560,"style":560},"typedef struct VkGeneratedCommandsPipelineInfoEXT {\n VkStructureType sType;\n const void* pNext;\n VkPipeline pipeline;\n} VkGeneratedCommandsPipelineInfoEXT;\n",[6559],{"type":10,"tag":151,"props":6560,"children":6561},{"__ignoreMap":560},[6562,6578,6585,6600,6608],{"type":10,"tag":566,"props":6563,"children":6564},{"class":568,"line":569},[6565,6569,6573],{"type":10,"tag":566,"props":6566,"children":6567},{"style":579},[6568],{"type":15,"value":1299},{"type":10,"tag":566,"props":6570,"children":6571},{"style":579},[6572],{"type":15,"value":1304},{"type":10,"tag":566,"props":6574,"children":6575},{"style":573},[6576],{"type":15,"value":6577}," VkGeneratedCommandsPipelineInfoEXT {\n",{"type":10,"tag":566,"props":6579,"children":6580},{"class":568,"line":590},[6581],{"type":10,"tag":566,"props":6582,"children":6583},{"style":573},[6584],{"type":15,"value":6335},{"type":10,"tag":566,"props":6586,"children":6587},{"class":568,"line":599},[6588,6592,6596],{"type":10,"tag":566,"props":6589,"children":6590},{"style":579},[6591],{"type":15,"value":1147},{"type":10,"tag":566,"props":6593,"children":6594},{"style":579},[6595],{"type":15,"value":1329},{"type":10,"tag":566,"props":6597,"children":6598},{"style":573},[6599],{"type":15,"value":6351},{"type":10,"tag":566,"props":6601,"children":6602},{"class":568,"line":650},[6603],{"type":10,"tag":566,"props":6604,"children":6605},{"style":573},[6606],{"type":15,"value":6607}," VkPipeline pipeline;\n",{"type":10,"tag":566,"props":6609,"children":6610},{"class":568,"line":659},[6611],{"type":10,"tag":566,"props":6612,"children":6613},{"style":573},[6614],{"type":15,"value":6615},"} VkGeneratedCommandsPipelineInfoEXT;\n",{"type":10,"tag":29,"props":6617,"children":6618},{},[6619],{"type":10,"tag":33,"props":6620,"children":6621},{},[6622,6627],{"type":10,"tag":151,"props":6623,"children":6625},{"className":6624},[],[6626],{"type":15,"value":2790},{"type":15,"value":6628}," 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":6630,"children":6631},{},[6632,6633,6638],{"type":15,"value":444},{"type":10,"tag":151,"props":6634,"children":6636},{"className":6635},[],[6637],{"type":15,"value":6542},{"type":15,"value":1284},{"type":10,"tag":555,"props":6640,"children":6642},{"className":557,"code":6641,"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",[6643],{"type":10,"tag":151,"props":6644,"children":6645},{"__ignoreMap":560},[6646,6662,6669,6684,6696,6717],{"type":10,"tag":566,"props":6647,"children":6648},{"class":568,"line":569},[6649,6653,6657],{"type":10,"tag":566,"props":6650,"children":6651},{"style":579},[6652],{"type":15,"value":1299},{"type":10,"tag":566,"props":6654,"children":6655},{"style":579},[6656],{"type":15,"value":1304},{"type":10,"tag":566,"props":6658,"children":6659},{"style":573},[6660],{"type":15,"value":6661}," VkGeneratedCommandsShaderInfoEXT {\n",{"type":10,"tag":566,"props":6663,"children":6664},{"class":568,"line":590},[6665],{"type":10,"tag":566,"props":6666,"children":6667},{"style":573},[6668],{"type":15,"value":6335},{"type":10,"tag":566,"props":6670,"children":6671},{"class":568,"line":599},[6672,6676,6680],{"type":10,"tag":566,"props":6673,"children":6674},{"style":579},[6675],{"type":15,"value":1147},{"type":10,"tag":566,"props":6677,"children":6678},{"style":579},[6679],{"type":15,"value":1329},{"type":10,"tag":566,"props":6681,"children":6682},{"style":573},[6683],{"type":15,"value":6351},{"type":10,"tag":566,"props":6685,"children":6686},{"class":568,"line":650},[6687,6691],{"type":10,"tag":566,"props":6688,"children":6689},{"style":579},[6690],{"type":15,"value":1742},{"type":10,"tag":566,"props":6692,"children":6693},{"style":573},[6694],{"type":15,"value":6695}," shaderCount;\n",{"type":10,"tag":566,"props":6697,"children":6698},{"class":568,"line":659},[6699,6703,6708,6712],{"type":10,"tag":566,"props":6700,"children":6701},{"style":579},[6702],{"type":15,"value":1147},{"type":10,"tag":566,"props":6704,"children":6705},{"style":573},[6706],{"type":15,"value":6707}," VkShaderExt ",{"type":10,"tag":566,"props":6709,"children":6710},{"style":579},[6711],{"type":15,"value":1157},{"type":10,"tag":566,"props":6713,"children":6714},{"style":573},[6715],{"type":15,"value":6716},"pShaders;\n",{"type":10,"tag":566,"props":6718,"children":6719},{"class":568,"line":678},[6720],{"type":10,"tag":566,"props":6721,"children":6722},{"style":573},[6723],{"type":15,"value":6724},"} VkGeneratedCommandsShaderInfoEXT;\n",{"type":10,"tag":29,"props":6726,"children":6727},{},[6728,6744],{"type":10,"tag":33,"props":6729,"children":6730},{},[6731,6736,6737,6743],{"type":10,"tag":151,"props":6732,"children":6734},{"className":6733},[],[6735],{"type":15,"value":1970},{"type":15,"value":1972},{"type":10,"tag":151,"props":6738,"children":6740},{"className":6739},[],[6741],{"type":15,"value":6742},"pShaders",{"type":15,"value":2072},{"type":10,"tag":33,"props":6745,"children":6746},{},[6747,6752],{"type":10,"tag":151,"props":6748,"children":6750},{"className":6749},[],[6751],{"type":15,"value":6742},{"type":15,"value":6753}," 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":6755,"children":6757},{"id":6756},"_command_buffer",[6758],{"type":15,"value":6759},"Command Buffer",{"type":10,"tag":314,"props":6761,"children":6763},{"id":6762},"_synchronization",[6764],{"type":15,"value":6765},"Synchronization",{"type":10,"tag":11,"props":6767,"children":6768},{},[6769,6771,6776,6778,6783],{"type":15,"value":6770},"Synchronization of preprocessing via ",{"type":10,"tag":151,"props":6772,"children":6774},{"className":6773},[],[6775],{"type":15,"value":955},{"type":15,"value":6777}," and generation/execution via ",{"type":10,"tag":151,"props":6779,"children":6781},{"className":6780},[],[6782],{"type":15,"value":968},{"type":15,"value":6784}," is supported with a new stage and access flags:",{"type":10,"tag":555,"props":6786,"children":6788},{"className":557,"code":6787,"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",[6789],{"type":10,"tag":151,"props":6790,"children":6791},{"__ignoreMap":560},[6792,6822,6831,6860],{"type":10,"tag":566,"props":6793,"children":6794},{"class":568,"line":569},[6795,6799,6804,6809,6813,6818],{"type":10,"tag":566,"props":6796,"children":6797},{"style":579},[6798],{"type":15,"value":4892},{"type":10,"tag":566,"props":6800,"children":6801},{"style":613},[6802],{"type":15,"value":6803}," VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_EXT",{"type":10,"tag":566,"props":6805,"children":6806},{"style":573},[6807],{"type":15,"value":6808}," ((VkPipelineStageFlagBits)",{"type":10,"tag":566,"props":6810,"children":6811},{"style":579},[6812],{"type":15,"value":4907},{"type":10,"tag":566,"props":6814,"children":6815},{"style":1456},[6816],{"type":15,"value":6817},"00020000",{"type":10,"tag":566,"props":6819,"children":6820},{"style":573},[6821],{"type":15,"value":4922},{"type":10,"tag":566,"props":6823,"children":6824},{"class":568,"line":590},[6825],{"type":10,"tag":566,"props":6826,"children":6828},{"emptyLinePlaceholder":6827},true,[6829],{"type":15,"value":6830},"\n",{"type":10,"tag":566,"props":6832,"children":6833},{"class":568,"line":599},[6834,6838,6843,6848,6852,6856],{"type":10,"tag":566,"props":6835,"children":6836},{"style":579},[6837],{"type":15,"value":4892},{"type":10,"tag":566,"props":6839,"children":6840},{"style":613},[6841],{"type":15,"value":6842}," VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_EXT",{"type":10,"tag":566,"props":6844,"children":6845},{"style":573},[6846],{"type":15,"value":6847}," ((VkAccessFlagBits)",{"type":10,"tag":566,"props":6849,"children":6850},{"style":579},[6851],{"type":15,"value":4907},{"type":10,"tag":566,"props":6853,"children":6854},{"style":1456},[6855],{"type":15,"value":6817},{"type":10,"tag":566,"props":6857,"children":6858},{"style":573},[6859],{"type":15,"value":4922},{"type":10,"tag":566,"props":6861,"children":6862},{"class":568,"line":650},[6863,6867,6872,6877,6881,6886],{"type":10,"tag":566,"props":6864,"children":6865},{"style":579},[6866],{"type":15,"value":4892},{"type":10,"tag":566,"props":6868,"children":6869},{"style":613},[6870],{"type":15,"value":6871}," VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_EXT",{"type":10,"tag":566,"props":6873,"children":6874},{"style":573},[6875],{"type":15,"value":6876}," ((VkAccessFlagBits)",{"type":10,"tag":566,"props":6878,"children":6879},{"style":579},[6880],{"type":15,"value":4907},{"type":10,"tag":566,"props":6882,"children":6883},{"style":1456},[6884],{"type":15,"value":6885},"00040000",{"type":10,"tag":566,"props":6887,"children":6888},{"style":573},[6889],{"type":15,"value":4922},{"type":10,"tag":29,"props":6891,"children":6892},{},[6893,6910,6935],{"type":10,"tag":33,"props":6894,"children":6895},{},[6896,6901,6903,6908],{"type":10,"tag":151,"props":6897,"children":6899},{"className":6898},[],[6900],{"type":15,"value":6498},{"type":15,"value":6902}," specifies the stage of the pipeline where device-side preprocessing for generated commands via ",{"type":10,"tag":151,"props":6904,"children":6906},{"className":6905},[],[6907],{"type":15,"value":955},{"type":15,"value":6909}," is handled.",{"type":10,"tag":33,"props":6911,"children":6912},{},[6913,6919,6921,6926,6928,6933],{"type":10,"tag":151,"props":6914,"children":6916},{"className":6915},[],[6917],{"type":15,"value":6918},"VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_EXT",{"type":15,"value":6920}," specifies reads from buffer inputs to ",{"type":10,"tag":151,"props":6922,"children":6924},{"className":6923},[],[6925],{"type":15,"value":955},{"type":15,"value":6927},". Such access occurs in the ",{"type":10,"tag":151,"props":6929,"children":6931},{"className":6930},[],[6932],{"type":15,"value":6498},{"type":15,"value":6934}," pipeline stage.",{"type":10,"tag":33,"props":6936,"children":6937},{},[6938,6944,6946,6951,6952,6957],{"type":10,"tag":151,"props":6939,"children":6941},{"className":6940},[],[6942],{"type":15,"value":6943},"VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_EXT",{"type":15,"value":6945}," specifies writes to preprocess outputs from ",{"type":10,"tag":151,"props":6947,"children":6949},{"className":6948},[],[6950],{"type":15,"value":955},{"type":15,"value":6927},{"type":10,"tag":151,"props":6953,"children":6955},{"className":6954},[],[6956],{"type":15,"value":6498},{"type":15,"value":6934},{"type":10,"tag":314,"props":6959,"children":6961},{"id":6960},"_generated_commands",[6962],{"type":15,"value":6963},"Generated Commands",{"type":10,"tag":11,"props":6965,"children":6966},{},[6967],{"type":15,"value":6968},"Device-generated commands are specified by:",{"type":10,"tag":555,"props":6970,"children":6972},{"className":557,"code":6971,"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",[6973],{"type":10,"tag":151,"props":6974,"children":6975},{"__ignoreMap":560},[6976,6992,7000,7016,7024,7032,7040,7048,7056,7064,7072,7084,7092,7104],{"type":10,"tag":566,"props":6977,"children":6978},{"class":568,"line":569},[6979,6983,6987],{"type":10,"tag":566,"props":6980,"children":6981},{"style":579},[6982],{"type":15,"value":1299},{"type":10,"tag":566,"props":6984,"children":6985},{"style":579},[6986],{"type":15,"value":1304},{"type":10,"tag":566,"props":6988,"children":6989},{"style":573},[6990],{"type":15,"value":6991}," VkGeneratedCommandsInfoEXT {\n",{"type":10,"tag":566,"props":6993,"children":6994},{"class":568,"line":590},[6995],{"type":10,"tag":566,"props":6996,"children":6997},{"style":573},[6998],{"type":15,"value":6999}," VkStructureType sType;\n",{"type":10,"tag":566,"props":7001,"children":7002},{"class":568,"line":599},[7003,7007,7011],{"type":10,"tag":566,"props":7004,"children":7005},{"style":579},[7006],{"type":15,"value":1147},{"type":10,"tag":566,"props":7008,"children":7009},{"style":579},[7010],{"type":15,"value":1329},{"type":10,"tag":566,"props":7012,"children":7013},{"style":573},[7014],{"type":15,"value":7015}," pNext;\n",{"type":10,"tag":566,"props":7017,"children":7018},{"class":568,"line":650},[7019],{"type":10,"tag":566,"props":7020,"children":7021},{"style":573},[7022],{"type":15,"value":7023}," VkShaderStageFlags shaderStages;\n",{"type":10,"tag":566,"props":7025,"children":7026},{"class":568,"line":659},[7027],{"type":10,"tag":566,"props":7028,"children":7029},{"style":573},[7030],{"type":15,"value":7031}," VkIndirectExecutionSetEXT indirectExecutionSet;\n",{"type":10,"tag":566,"props":7033,"children":7034},{"class":568,"line":678},[7035],{"type":10,"tag":566,"props":7036,"children":7037},{"style":573},[7038],{"type":15,"value":7039}," VkIndirectCommandsLayoutEXT indirectCommandsLayout;\n",{"type":10,"tag":566,"props":7041,"children":7042},{"class":568,"line":697},[7043],{"type":10,"tag":566,"props":7044,"children":7045},{"style":573},[7046],{"type":15,"value":7047}," VkDeviceAddress indirectAddress;\n",{"type":10,"tag":566,"props":7049,"children":7050},{"class":568,"line":714},[7051],{"type":10,"tag":566,"props":7052,"children":7053},{"style":573},[7054],{"type":15,"value":7055}," VkDeviceSize indirectAddressSize;\n",{"type":10,"tag":566,"props":7057,"children":7058},{"class":568,"line":731},[7059],{"type":10,"tag":566,"props":7060,"children":7061},{"style":573},[7062],{"type":15,"value":7063}," VkDeviceAddress preprocessAddress;\n",{"type":10,"tag":566,"props":7065,"children":7066},{"class":568,"line":1952},[7067],{"type":10,"tag":566,"props":7068,"children":7069},{"style":573},[7070],{"type":15,"value":7071}," VkDeviceSize preprocessSize;\n",{"type":10,"tag":566,"props":7073,"children":7074},{"class":568,"line":4699},[7075,7079],{"type":10,"tag":566,"props":7076,"children":7077},{"style":579},[7078],{"type":15,"value":1742},{"type":10,"tag":566,"props":7080,"children":7081},{"style":573},[7082],{"type":15,"value":7083}," maxSequenceCount;\n",{"type":10,"tag":566,"props":7085,"children":7086},{"class":568,"line":4708},[7087],{"type":10,"tag":566,"props":7088,"children":7089},{"style":573},[7090],{"type":15,"value":7091}," VkDeviceAddress sequenceCountAddress;\n",{"type":10,"tag":566,"props":7093,"children":7094},{"class":568,"line":4717},[7095,7099],{"type":10,"tag":566,"props":7096,"children":7097},{"style":579},[7098],{"type":15,"value":1742},{"type":10,"tag":566,"props":7100,"children":7101},{"style":573},[7102],{"type":15,"value":7103}," maxDrawCount;\n",{"type":10,"tag":566,"props":7105,"children":7106},{"class":568,"line":4726},[7107],{"type":10,"tag":566,"props":7108,"children":7109},{"style":573},[7110],{"type":15,"value":7111},"} VkGeneratedCommandsInfoEXT;\n",{"type":10,"tag":29,"props":7113,"children":7114},{},[7115,7125,7147,7163,7174,7185,7216,7234,7294,7311],{"type":10,"tag":33,"props":7116,"children":7117},{},[7118,7123],{"type":10,"tag":151,"props":7119,"children":7121},{"className":7120},[],[7122],{"type":15,"value":3264},{"type":15,"value":7124}," is the mask of shader stages used by the commands.",{"type":10,"tag":33,"props":7126,"children":7127},{},[7128,7133,7135,7140,7141,7146],{"type":10,"tag":151,"props":7129,"children":7131},{"className":7130},[],[7132],{"type":15,"value":2277},{"type":15,"value":7134}," is the indirect execution set to be used for binding shaders. If the token sequence contains a ",{"type":10,"tag":151,"props":7136,"children":7138},{"className":7137},[],[7139],{"type":15,"value":4068},{"type":15,"value":6429},{"type":10,"tag":151,"props":7142,"children":7144},{"className":7143},[],[7145],{"type":15,"value":3324},{"type":15,"value":301},{"type":10,"tag":33,"props":7148,"children":7149},{},[7150,7155,7156,7161],{"type":10,"tag":151,"props":7151,"children":7153},{"className":7152},[],[7154],{"type":15,"value":3632},{"type":15,"value":3266},{"type":10,"tag":151,"props":7157,"children":7159},{"className":7158},[],[7160],{"type":15,"value":892},{"type":15,"value":7162}," that specifies the command sequence data.",{"type":10,"tag":33,"props":7164,"children":7165},{},[7166,7172],{"type":10,"tag":151,"props":7167,"children":7169},{"className":7168},[],[7170],{"type":15,"value":7171},"indirectAddress",{"type":15,"value":7173}," is an address that holds the indirect buffer data.",{"type":10,"tag":33,"props":7175,"children":7176},{},[7177,7183],{"type":10,"tag":151,"props":7178,"children":7180},{"className":7179},[],[7181],{"type":15,"value":7182},"indirectAddressSize",{"type":15,"value":7184}," is the size of the address space that holds the indirect buffer data.",{"type":10,"tag":33,"props":7186,"children":7187},{},[7188,7194,7195,7200,7202,7207,7209,7214],{"type":10,"tag":151,"props":7189,"children":7191},{"className":7190},[],[7192],{"type":15,"value":7193},"preprocessAddress",{"type":15,"value":5209},{"type":10,"tag":151,"props":7196,"children":7198},{"className":7197},[],[7199],{"type":15,"value":923},{"type":15,"value":7201}," used for preprocessing the input data for execution. It must not be ",{"type":10,"tag":151,"props":7203,"children":7205},{"className":7204},[],[7206],{"type":15,"value":1775},{"type":15,"value":7208}," if ",{"type":10,"tag":151,"props":7210,"children":7212},{"className":7211},[],[7213],{"type":15,"value":943},{"type":15,"value":7215}," returns non-zero size.",{"type":10,"tag":33,"props":7217,"children":7218},{},[7219,7225,7227,7232],{"type":10,"tag":151,"props":7220,"children":7222},{"className":7221},[],[7223],{"type":15,"value":7224},"preprocessSize",{"type":15,"value":7226}," is the maximum byte size within the ",{"type":10,"tag":151,"props":7228,"children":7230},{"className":7229},[],[7231],{"type":15,"value":7193},{"type":15,"value":7233}," that is available for preprocessing.",{"type":10,"tag":33,"props":7235,"children":7236},{},[7237,7242,7244,7250,7252,7258,7260,7265,7267,7273,7275,7280,7281,7286,7287,7292],{"type":10,"tag":151,"props":7238,"children":7240},{"className":7239},[],[7241],{"type":15,"value":6460},{"type":15,"value":7243}," is used to determine the number of sequences to execute. If ",{"type":10,"tag":151,"props":7245,"children":7247},{"className":7246},[],[7248],{"type":15,"value":7249},"sequenceCountAddress",{"type":15,"value":7251}," is not ",{"type":10,"tag":151,"props":7253,"children":7255},{"className":7254},[],[7256],{"type":15,"value":7257},"NULL",{"type":15,"value":7259},", then ",{"type":10,"tag":151,"props":7261,"children":7263},{"className":7262},[],[7264],{"type":15,"value":6460},{"type":15,"value":7266}," is the maximum number of sequences that can be executed. The actual number is ",{"type":10,"tag":151,"props":7268,"children":7270},{"className":7269},[],[7271],{"type":15,"value":7272},"min(maxSequenceCount, *sequenceCountAddress)",{"type":15,"value":7274},". Otherwise if ",{"type":10,"tag":151,"props":7276,"children":7278},{"className":7277},[],[7279],{"type":15,"value":7249},{"type":15,"value":6522},{"type":10,"tag":151,"props":7282,"children":7284},{"className":7283},[],[7285],{"type":15,"value":7257},{"type":15,"value":7259},{"type":10,"tag":151,"props":7288,"children":7290},{"className":7289},[],[7291],{"type":15,"value":6460},{"type":15,"value":7293}," is the exact number of sequences to execute.",{"type":10,"tag":33,"props":7295,"children":7296},{},[7297,7302,7304,7309],{"type":10,"tag":151,"props":7298,"children":7300},{"className":7299},[],[7301],{"type":15,"value":7249},{"type":15,"value":7303}," specifies an optional physical address of a single ",{"type":10,"tag":151,"props":7305,"children":7307},{"className":7306},[],[7308],{"type":15,"value":3709},{"type":15,"value":7310}," value containing the requested number of sequences to execute.",{"type":10,"tag":33,"props":7312,"children":7313},{},[7314,7319,7320,7325,7326,7331],{"type":10,"tag":151,"props":7315,"children":7317},{"className":7316},[],[7318],{"type":15,"value":6471},{"type":15,"value":6473},{"type":10,"tag":151,"props":7321,"children":7323},{"className":7322},[],[7324],{"type":15,"value":6471},{"type":15,"value":6480},{"type":10,"tag":151,"props":7327,"children":7329},{"className":7328},[],[7330],{"type":15,"value":363},{"type":15,"value":6487},{"type":10,"tag":11,"props":7333,"children":7334},{},[7335,7337,7342,7343,7348,7350,7355,7356,7361],{"type":15,"value":7336},"When preprocessing, if ",{"type":10,"tag":151,"props":7338,"children":7340},{"className":7339},[],[7341],{"type":15,"value":2277},{"type":15,"value":6522},{"type":10,"tag":151,"props":7344,"children":7346},{"className":7345},[],[7347],{"type":15,"value":3324},{"type":15,"value":7349}," then pipeline or shader info must be passed through the pNext pointer using either a ",{"type":10,"tag":151,"props":7351,"children":7353},{"className":7352},[],[7354],{"type":15,"value":6535},{"type":15,"value":3310},{"type":10,"tag":151,"props":7357,"children":7359},{"className":7358},[],[7360],{"type":15,"value":6542},{"type":15,"value":6544},{"type":10,"tag":11,"props":7363,"children":7364},{},[7365],{"type":15,"value":7366},"The actual generation of commands as well as their execution on the device is handled as single action with:",{"type":10,"tag":555,"props":7368,"children":7370},{"className":557,"code":7369,"language":559,"meta":560,"style":560},"VKAPI_ATTR void VKAPI_CALL vkCmdExecuteGeneratedCommandsEXT(\n VkCommandBuffer commandBuffer,\n VkBool32 isPreprocessed,\n const VkGeneratedCommandsInfoEXT* pGeneratedCommandsInfo);\n",[7371],{"type":10,"tag":151,"props":7372,"children":7373},{"__ignoreMap":560},[7374,7397,7414,7430],{"type":10,"tag":566,"props":7375,"children":7376},{"class":568,"line":569},[7377,7381,7385,7389,7393],{"type":10,"tag":566,"props":7378,"children":7379},{"style":573},[7380],{"type":15,"value":2230},{"type":10,"tag":566,"props":7382,"children":7383},{"style":579},[7384],{"type":15,"value":610},{"type":10,"tag":566,"props":7386,"children":7387},{"style":573},[7388],{"type":15,"value":2239},{"type":10,"tag":566,"props":7390,"children":7391},{"style":613},[7392],{"type":15,"value":968},{"type":10,"tag":566,"props":7394,"children":7395},{"style":573},[7396],{"type":15,"value":1121},{"type":10,"tag":566,"props":7398,"children":7399},{"class":568,"line":590},[7400,7405,7410],{"type":10,"tag":566,"props":7401,"children":7402},{"style":573},[7403],{"type":15,"value":7404}," VkCommandBuffer ",{"type":10,"tag":566,"props":7406,"children":7407},{"style":629},[7408],{"type":15,"value":7409},"commandBuffer",{"type":10,"tag":566,"props":7411,"children":7412},{"style":573},[7413],{"type":15,"value":1139},{"type":10,"tag":566,"props":7415,"children":7416},{"class":568,"line":599},[7417,7422,7426],{"type":10,"tag":566,"props":7418,"children":7419},{"style":573},[7420],{"type":15,"value":7421}," VkBool32 ",{"type":10,"tag":566,"props":7423,"children":7424},{"style":629},[7425],{"type":15,"value":3536},{"type":10,"tag":566,"props":7427,"children":7428},{"style":573},[7429],{"type":15,"value":1139},{"type":10,"tag":566,"props":7431,"children":7432},{"class":568,"line":650},[7433,7437,7442,7446,7451],{"type":10,"tag":566,"props":7434,"children":7435},{"style":579},[7436],{"type":15,"value":1147},{"type":10,"tag":566,"props":7438,"children":7439},{"style":573},[7440],{"type":15,"value":7441}," VkGeneratedCommandsInfoEXT",{"type":10,"tag":566,"props":7443,"children":7444},{"style":579},[7445],{"type":15,"value":1157},{"type":10,"tag":566,"props":7447,"children":7448},{"style":629},[7449],{"type":15,"value":7450}," pGeneratedCommandsInfo",{"type":10,"tag":566,"props":7452,"children":7453},{"style":573},[7454],{"type":15,"value":1213},{"type":10,"tag":29,"props":7456,"children":7457},{},[7458,7468,7499],{"type":10,"tag":33,"props":7459,"children":7460},{},[7461,7466],{"type":10,"tag":151,"props":7462,"children":7464},{"className":7463},[],[7465],{"type":15,"value":7409},{"type":15,"value":7467}," is the command buffer into which the command is recorded.",{"type":10,"tag":33,"props":7469,"children":7470},{},[7471,7476,7478,7483,7484,7489,7491,7497],{"type":10,"tag":151,"props":7472,"children":7474},{"className":7473},[],[7475],{"type":15,"value":3536},{"type":15,"value":7477}," represents whether the input data has been previously preprocessed on the device. If it is ",{"type":10,"tag":151,"props":7479,"children":7481},{"className":7480},[],[7482],{"type":15,"value":3544},{"type":15,"value":637},{"type":10,"tag":151,"props":7485,"children":7487},{"className":7486},[],[7488],{"type":15,"value":955},{"type":15,"value":7490}," must have been previously called. If it is ",{"type":10,"tag":151,"props":7492,"children":7494},{"className":7493},[],[7495],{"type":15,"value":7496},"VK_FALSE",{"type":15,"value":7498},", any necessary processing will be performed as part of this command.",{"type":10,"tag":33,"props":7500,"children":7501},{},[7502,7508,7509,7515],{"type":10,"tag":151,"props":7503,"children":7505},{"className":7504},[],[7506],{"type":15,"value":7507},"pGeneratedCommandsInfo",{"type":15,"value":1237},{"type":10,"tag":151,"props":7510,"children":7512},{"className":7511},[],[7513],{"type":15,"value":7514},"VkGeneratedCommandsInfoEXT",{"type":15,"value":7516}," structure containing parameters affecting the generation of commands.",{"type":10,"tag":11,"props":7518,"children":7519},{},[7520],{"type":15,"value":7521},"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":7523,"children":7524},{},[7525],{"type":15,"value":7526},"Commands can be preprocessed prior execution using the following command:",{"type":10,"tag":555,"props":7528,"children":7530},{"className":557,"code":7529,"language":559,"meta":560,"style":560},"VKAPI_ATTR void VKAPI_CALL vkCmdPreprocessGeneratedCommandsEXT(\n VkCommandBuffer commandBuffer,\n const VkGeneratedCommandsInfoEXT* pGeneratedCommandsInfo,\n VkCommandBuffer stateCommandBuffer);\n",[7531],{"type":10,"tag":151,"props":7532,"children":7533},{"__ignoreMap":560},[7534,7557,7573,7596],{"type":10,"tag":566,"props":7535,"children":7536},{"class":568,"line":569},[7537,7541,7545,7549,7553],{"type":10,"tag":566,"props":7538,"children":7539},{"style":573},[7540],{"type":15,"value":2230},{"type":10,"tag":566,"props":7542,"children":7543},{"style":579},[7544],{"type":15,"value":610},{"type":10,"tag":566,"props":7546,"children":7547},{"style":573},[7548],{"type":15,"value":2239},{"type":10,"tag":566,"props":7550,"children":7551},{"style":613},[7552],{"type":15,"value":955},{"type":10,"tag":566,"props":7554,"children":7555},{"style":573},[7556],{"type":15,"value":1121},{"type":10,"tag":566,"props":7558,"children":7559},{"class":568,"line":590},[7560,7565,7569],{"type":10,"tag":566,"props":7561,"children":7562},{"style":573},[7563],{"type":15,"value":7564}," VkCommandBuffer ",{"type":10,"tag":566,"props":7566,"children":7567},{"style":629},[7568],{"type":15,"value":7409},{"type":10,"tag":566,"props":7570,"children":7571},{"style":573},[7572],{"type":15,"value":1139},{"type":10,"tag":566,"props":7574,"children":7575},{"class":568,"line":599},[7576,7580,7584,7588,7592],{"type":10,"tag":566,"props":7577,"children":7578},{"style":579},[7579],{"type":15,"value":1147},{"type":10,"tag":566,"props":7581,"children":7582},{"style":573},[7583],{"type":15,"value":7441},{"type":10,"tag":566,"props":7585,"children":7586},{"style":579},[7587],{"type":15,"value":1157},{"type":10,"tag":566,"props":7589,"children":7590},{"style":629},[7591],{"type":15,"value":7450},{"type":10,"tag":566,"props":7593,"children":7594},{"style":573},[7595],{"type":15,"value":1139},{"type":10,"tag":566,"props":7597,"children":7598},{"class":568,"line":650},[7599,7603,7608],{"type":10,"tag":566,"props":7600,"children":7601},{"style":573},[7602],{"type":15,"value":7564},{"type":10,"tag":566,"props":7604,"children":7605},{"style":629},[7606],{"type":15,"value":7607},"stateCommandBuffer",{"type":10,"tag":566,"props":7609,"children":7610},{"style":573},[7611],{"type":15,"value":1213},{"type":10,"tag":29,"props":7613,"children":7614},{},[7615,7625,7641],{"type":10,"tag":33,"props":7616,"children":7617},{},[7618,7623],{"type":10,"tag":151,"props":7619,"children":7621},{"className":7620},[],[7622],{"type":15,"value":7409},{"type":15,"value":7624}," is the command buffer which does the preprocessing.",{"type":10,"tag":33,"props":7626,"children":7627},{},[7628,7633,7634,7639],{"type":10,"tag":151,"props":7629,"children":7631},{"className":7630},[],[7632],{"type":15,"value":7507},{"type":15,"value":1237},{"type":10,"tag":151,"props":7635,"children":7637},{"className":7636},[],[7638],{"type":15,"value":7514},{"type":15,"value":7640}," structure containing parameters affecting the preprocessing step.",{"type":10,"tag":33,"props":7642,"children":7643},{},[7644,7649],{"type":10,"tag":151,"props":7645,"children":7647},{"className":7646},[],[7648],{"type":15,"value":7607},{"type":15,"value":7650}," is an command buffer from which to pull state affecting the preprocessing step.",{"type":10,"tag":11,"props":7652,"children":7653},{},[7654,7656,7661,7663,7668],{"type":15,"value":7655},"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":7657,"children":7659},{"className":7658},[],[7660],{"type":15,"value":7607},{"type":15,"value":7662}," must be identical to the state bound at the time ",{"type":10,"tag":151,"props":7664,"children":7666},{"className":7665},[],[7667],{"type":15,"value":968},{"type":15,"value":7669}," is recorded.",{"type":10,"tag":242,"props":7671,"children":7673},{"id":7672},"_features",[7674],{"type":15,"value":7675},"Features",{"type":10,"tag":11,"props":7677,"children":7678},{},[7679],{"type":15,"value":7680},"The following features are exposed by this extension:",{"type":10,"tag":555,"props":7682,"children":7684},{"className":557,"code":7683,"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",[7685],{"type":10,"tag":151,"props":7686,"children":7687},{"__ignoreMap":560},[7688,7704,7711,7719,7735,7743,7751],{"type":10,"tag":566,"props":7689,"children":7690},{"class":568,"line":569},[7691,7695,7699],{"type":10,"tag":566,"props":7692,"children":7693},{"style":579},[7694],{"type":15,"value":1299},{"type":10,"tag":566,"props":7696,"children":7697},{"style":579},[7698],{"type":15,"value":1304},{"type":10,"tag":566,"props":7700,"children":7701},{"style":573},[7702],{"type":15,"value":7703}," VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT\n",{"type":10,"tag":566,"props":7705,"children":7706},{"class":568,"line":590},[7707],{"type":10,"tag":566,"props":7708,"children":7709},{"style":573},[7710],{"type":15,"value":1435},{"type":10,"tag":566,"props":7712,"children":7713},{"class":568,"line":599},[7714],{"type":10,"tag":566,"props":7715,"children":7716},{"style":573},[7717],{"type":15,"value":7718}," VkStructureType sType;\n",{"type":10,"tag":566,"props":7720,"children":7721},{"class":568,"line":650},[7722,7726,7730],{"type":10,"tag":566,"props":7723,"children":7724},{"style":579},[7725],{"type":15,"value":1147},{"type":10,"tag":566,"props":7727,"children":7728},{"style":579},[7729],{"type":15,"value":1329},{"type":10,"tag":566,"props":7731,"children":7732},{"style":573},[7733],{"type":15,"value":7734}," pNext;\n",{"type":10,"tag":566,"props":7736,"children":7737},{"class":568,"line":659},[7738],{"type":10,"tag":566,"props":7739,"children":7740},{"style":573},[7741],{"type":15,"value":7742}," VkBool32 deviceGeneratedCommands;\n",{"type":10,"tag":566,"props":7744,"children":7745},{"class":568,"line":678},[7746],{"type":10,"tag":566,"props":7747,"children":7748},{"style":573},[7749],{"type":15,"value":7750}," VkBool32 dynamicGeneratedPipelineLayout;\n",{"type":10,"tag":566,"props":7752,"children":7753},{"class":568,"line":697},[7754],{"type":10,"tag":566,"props":7755,"children":7756},{"style":573},[7757],{"type":15,"value":7758},"} VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT;\n",{"type":10,"tag":29,"props":7760,"children":7761},{},[7762,7773],{"type":10,"tag":33,"props":7763,"children":7764},{},[7765,7771],{"type":10,"tag":151,"props":7766,"children":7768},{"className":7767},[],[7769],{"type":15,"value":7770},"deviceGeneratedCommands",{"type":15,"value":7772}," is the core feature enabling the extension",{"type":10,"tag":33,"props":7774,"children":7775},{},[7776,7781,7783,7788,7789,7794,7796,7801,7803,7808,7810],{"type":10,"tag":151,"props":7777,"children":7779},{"className":7778},[],[7780],{"type":15,"value":3389},{"type":15,"value":7782}," enables passing a ",{"type":10,"tag":151,"props":7784,"children":7786},{"className":7785},[],[7787],{"type":15,"value":3373},{"type":15,"value":2186},{"type":10,"tag":151,"props":7790,"children":7792},{"className":7791},[],[7793],{"type":15,"value":3381},{"type":15,"value":7795}," of ",{"type":10,"tag":151,"props":7797,"children":7799},{"className":7798},[],[7800],{"type":15,"value":3073},{"type":15,"value":7802}," with a ",{"type":10,"tag":151,"props":7804,"children":7806},{"className":7805},[],[7807],{"type":15,"value":3324},{"type":15,"value":7809}," ",{"type":10,"tag":151,"props":7811,"children":7813},{"className":7812},[],[7814],{"type":15,"value":3294},{"type":10,"tag":242,"props":7816,"children":7818},{"id":7817},"_properties",[7819],{"type":15,"value":7820},"Properties",{"type":10,"tag":11,"props":7822,"children":7823},{},[7824],{"type":15,"value":7825},"The following properties are exposed by this extension:",{"type":10,"tag":555,"props":7827,"children":7829},{"className":557,"code":7828,"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",[7830],{"type":10,"tag":151,"props":7831,"children":7832},{"__ignoreMap":560},[7833,7849,7856,7863,7878,7890,7902,7914,7926,7938,7950,7958,7966,7974,7982,7990,7998],{"type":10,"tag":566,"props":7834,"children":7835},{"class":568,"line":569},[7836,7840,7844],{"type":10,"tag":566,"props":7837,"children":7838},{"style":579},[7839],{"type":15,"value":1299},{"type":10,"tag":566,"props":7841,"children":7842},{"style":579},[7843],{"type":15,"value":1304},{"type":10,"tag":566,"props":7845,"children":7846},{"style":573},[7847],{"type":15,"value":7848}," VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT\n",{"type":10,"tag":566,"props":7850,"children":7851},{"class":568,"line":590},[7852],{"type":10,"tag":566,"props":7853,"children":7854},{"style":573},[7855],{"type":15,"value":1435},{"type":10,"tag":566,"props":7857,"children":7858},{"class":568,"line":599},[7859],{"type":10,"tag":566,"props":7860,"children":7861},{"style":573},[7862],{"type":15,"value":7718},{"type":10,"tag":566,"props":7864,"children":7865},{"class":568,"line":650},[7866,7870,7874],{"type":10,"tag":566,"props":7867,"children":7868},{"style":579},[7869],{"type":15,"value":1147},{"type":10,"tag":566,"props":7871,"children":7872},{"style":579},[7873],{"type":15,"value":1329},{"type":10,"tag":566,"props":7875,"children":7876},{"style":573},[7877],{"type":15,"value":7734},{"type":10,"tag":566,"props":7879,"children":7880},{"class":568,"line":659},[7881,7885],{"type":10,"tag":566,"props":7882,"children":7883},{"style":579},[7884],{"type":15,"value":1742},{"type":10,"tag":566,"props":7886,"children":7887},{"style":573},[7888],{"type":15,"value":7889}," maxIndirectPipelineCount;\n",{"type":10,"tag":566,"props":7891,"children":7892},{"class":568,"line":678},[7893,7897],{"type":10,"tag":566,"props":7894,"children":7895},{"style":579},[7896],{"type":15,"value":1742},{"type":10,"tag":566,"props":7898,"children":7899},{"style":573},[7900],{"type":15,"value":7901}," maxIndirectShaderObjectCount;\n",{"type":10,"tag":566,"props":7903,"children":7904},{"class":568,"line":697},[7905,7909],{"type":10,"tag":566,"props":7906,"children":7907},{"style":579},[7908],{"type":15,"value":1742},{"type":10,"tag":566,"props":7910,"children":7911},{"style":573},[7912],{"type":15,"value":7913}," maxIndirectSequenceCount;\n",{"type":10,"tag":566,"props":7915,"children":7916},{"class":568,"line":714},[7917,7921],{"type":10,"tag":566,"props":7918,"children":7919},{"style":579},[7920],{"type":15,"value":1742},{"type":10,"tag":566,"props":7922,"children":7923},{"style":573},[7924],{"type":15,"value":7925}," maxIndirectCommandsTokenCount;\n",{"type":10,"tag":566,"props":7927,"children":7928},{"class":568,"line":731},[7929,7933],{"type":10,"tag":566,"props":7930,"children":7931},{"style":579},[7932],{"type":15,"value":1742},{"type":10,"tag":566,"props":7934,"children":7935},{"style":573},[7936],{"type":15,"value":7937}," maxIndirectCommandsTokenOffset;\n",{"type":10,"tag":566,"props":7939,"children":7940},{"class":568,"line":1952},[7941,7945],{"type":10,"tag":566,"props":7942,"children":7943},{"style":579},[7944],{"type":15,"value":1742},{"type":10,"tag":566,"props":7946,"children":7947},{"style":573},[7948],{"type":15,"value":7949}," maxIndirectCommandsIndirectStride;\n",{"type":10,"tag":566,"props":7951,"children":7952},{"class":568,"line":4699},[7953],{"type":10,"tag":566,"props":7954,"children":7955},{"style":573},[7956],{"type":15,"value":7957}," VkIndirectCommandsInputModeFlagsEXT supportedIndirectCommandsInputModes;\n",{"type":10,"tag":566,"props":7959,"children":7960},{"class":568,"line":4708},[7961],{"type":10,"tag":566,"props":7962,"children":7963},{"style":573},[7964],{"type":15,"value":7965}," VkShaderStageFlags supportedIndirectCommandsShaderStages;\n",{"type":10,"tag":566,"props":7967,"children":7968},{"class":568,"line":4717},[7969],{"type":10,"tag":566,"props":7970,"children":7971},{"style":573},[7972],{"type":15,"value":7973}," VkShaderStageFlags supportedIndirectCommandsShaderStagesPipelineBinding;\n",{"type":10,"tag":566,"props":7975,"children":7976},{"class":568,"line":4726},[7977],{"type":10,"tag":566,"props":7978,"children":7979},{"style":573},[7980],{"type":15,"value":7981}," VkShaderStageFlags supportedIndirectCommandsShaderStagesShaderBinding;\n",{"type":10,"tag":566,"props":7983,"children":7984},{"class":568,"line":4735},[7985],{"type":10,"tag":566,"props":7986,"children":7987},{"style":573},[7988],{"type":15,"value":7989}," VkBool32 deviceGeneratedCommandsTransformFeedback;\n",{"type":10,"tag":566,"props":7991,"children":7992},{"class":568,"line":4744},[7993],{"type":10,"tag":566,"props":7994,"children":7995},{"style":573},[7996],{"type":15,"value":7997}," VkBool32 deviceGeneratedCommandsMultiDrawIndirectCount;\n",{"type":10,"tag":566,"props":7999,"children":8000},{"class":568,"line":4753},[8001],{"type":10,"tag":566,"props":8002,"children":8003},{"style":573},[8004],{"type":15,"value":8005},"} VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT;\n",{"type":10,"tag":11,"props":8007,"children":8008},{},[8009],{"type":15,"value":8010},"The following limits affect indirect execution set creation:",{"type":10,"tag":29,"props":8012,"children":8013},{},[8014,8025,8036,8047],{"type":10,"tag":33,"props":8015,"children":8016},{},[8017,8023],{"type":10,"tag":151,"props":8018,"children":8020},{"className":8019},[],[8021],{"type":15,"value":8022},"maxIndirectPipelineCount",{"type":15,"value":8024}," indicates the maximum number of pipelines that can be stored in an indirect execution set.",{"type":10,"tag":33,"props":8026,"children":8027},{},[8028,8034],{"type":10,"tag":151,"props":8029,"children":8031},{"className":8030},[],[8032],{"type":15,"value":8033},"maxIndirectShaderObjectCount",{"type":15,"value":8035}," indicates the maximum number of shader objects that can be stored in an indirect execution set.",{"type":10,"tag":33,"props":8037,"children":8038},{},[8039,8045],{"type":10,"tag":151,"props":8040,"children":8042},{"className":8041},[],[8043],{"type":15,"value":8044},"supportedIndirectCommandsShaderStagesPipelineBinding",{"type":15,"value":8046}," is a bitmask of the shader stages which can be used within indirect execution sets comprised of pipelines.",{"type":10,"tag":33,"props":8048,"children":8049},{},[8050,8056],{"type":10,"tag":151,"props":8051,"children":8053},{"className":8052},[],[8054],{"type":15,"value":8055},"supportedIndirectCommandsShaderStagesShaderBinding",{"type":15,"value":8057}," is a bitmask of the shader stages which can be used within indirect execution sets comprised of shader objects.",{"type":10,"tag":11,"props":8059,"children":8060},{},[8061],{"type":15,"value":8062},"The following limits affect indirect command layout creation:",{"type":10,"tag":29,"props":8064,"children":8065},{},[8066,8077,8088],{"type":10,"tag":33,"props":8067,"children":8068},{},[8069,8075],{"type":10,"tag":151,"props":8070,"children":8072},{"className":8071},[],[8073],{"type":15,"value":8074},"maxIndirectCommandsTokenCount",{"type":15,"value":8076}," indicates the maximum number of tokens in a sequence.",{"type":10,"tag":33,"props":8078,"children":8079},{},[8080,8086],{"type":10,"tag":151,"props":8081,"children":8083},{"className":8082},[],[8084],{"type":15,"value":8085},"maxIndirectCommandsTokenOffset",{"type":15,"value":8087}," indicates the maximum byte offset of a token within a sequence.",{"type":10,"tag":33,"props":8089,"children":8090},{},[8091,8097],{"type":10,"tag":151,"props":8092,"children":8094},{"className":8093},[],[8095],{"type":15,"value":8096},"supportedIndirectCommandsInputModes",{"type":15,"value":8098}," indicates the supported index buffer modes.",{"type":10,"tag":11,"props":8100,"children":8101},{},[8102],{"type":15,"value":8103},"The following limits affect indirect command execution:",{"type":10,"tag":29,"props":8105,"children":8106},{},[8107,8118],{"type":10,"tag":33,"props":8108,"children":8109},{},[8110,8116],{"type":10,"tag":151,"props":8111,"children":8113},{"className":8112},[],[8114],{"type":15,"value":8115},"maxIndirectSequenceCount",{"type":15,"value":8117}," indicates the maximum number of sequences that can executed.",{"type":10,"tag":33,"props":8119,"children":8120},{},[8121,8127],{"type":10,"tag":151,"props":8122,"children":8124},{"className":8123},[],[8125],{"type":15,"value":8126},"maxIndirectCommandsIndirectStride",{"type":15,"value":8128}," indicates the maximum stride that can be used for the indirect buffer.",{"type":10,"tag":11,"props":8130,"children":8131},{},[8132,8133,8139,8141,8147],{"type":15,"value":5760},{"type":10,"tag":151,"props":8134,"children":8136},{"className":8135},[],[8137],{"type":15,"value":8138},"VK_EXT_transform_feedback",{"type":15,"value":8140}," is also enabled, ",{"type":10,"tag":151,"props":8142,"children":8144},{"className":8143},[],[8145],{"type":15,"value":8146},"deviceGeneratedCommandsTransformFeedback",{"type":15,"value":8148}," enables the use of Transform Feedback with indirect execution.",{"type":10,"tag":11,"props":8150,"children":8151},{},[8152,8158],{"type":10,"tag":151,"props":8153,"children":8155},{"className":8154},[],[8156],{"type":15,"value":8157},"supportedIndirectCommandsShaderStages",{"type":15,"value":8159}," 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":8161,"children":8162},{},[8163],{"type":10,"tag":33,"props":8164,"children":8165},{},[8166,8171,8172,8177],{"type":10,"tag":151,"props":8167,"children":8169},{"className":8168},[],[8170],{"type":15,"value":3308},{"type":15,"value":293},{"type":10,"tag":151,"props":8173,"children":8175},{"className":8174},[],[8176],{"type":15,"value":3316},{"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":4245},{"type":10,"tag":33,"props":8202,"children":8203},{},[8204],{"type":10,"tag":151,"props":8205,"children":8207},{"className":8206},[],[8208],{"type":15,"value":4274},{"type":10,"tag":33,"props":8210,"children":8211},{},[8212],{"type":10,"tag":151,"props":8213,"children":8215},{"className":8214},[],[8216],{"type":15,"value":4323},{"type":10,"tag":33,"props":8218,"children":8219},{},[8220],{"type":10,"tag":151,"props":8221,"children":8223},{"className":8222},[],[8224],{"type":15,"value":4352},{"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":4458},{"type":15,"value":7208},{"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":4493},{"type":15,"value":7208},{"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":5760},{"type":10,"tag":151,"props":8262,"children":8264},{"className":8263},[],[8265],{"type":15,"value":5766},{"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":4380},{"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":4526},{"type":15,"value":7208},{"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":5760},{"type":10,"tag":151,"props":8306,"children":8308},{"className":8307},[],[8309],{"type":15,"value":5790},{"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":4409},{"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":4559},{"type":15,"value":7208},{"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":4148},{"type":10,"tag":11,"props":8366,"children":8367},{},[8368,8369,8374],{"type":15,"value":5760},{"type":10,"tag":151,"props":8370,"children":8372},{"className":8371},[],[8373],{"type":15,"value":6112},{"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":4196},{"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":3993,"props":8405,"children":8407},{"className":8406},[3996,3997,3998,3999],[8408,8417],{"type":10,"tag":4002,"props":8409,"children":8410},{},[8411,8414],{"type":10,"tag":4006,"props":8412,"children":8413},{"style":4008},[],{"type":10,"tag":4006,"props":8415,"children":8416},{"style":4008},[],{"type":10,"tag":4014,"props":8418,"children":8419},{},[8420,8449,8477,8505,8533,8560],{"type":10,"tag":4018,"props":8421,"children":8422},{},[8423,8436],{"type":10,"tag":4022,"props":8424,"children":8426},{"className":8425},[3996,4025,4026],[8427],{"type":10,"tag":11,"props":8428,"children":8430},{"className":8429},[3996],[8431],{"type":10,"tag":4033,"props":8432,"children":8433},{"role":4035},[8434],{"type":15,"value":8435},"D3D12 type",{"type":10,"tag":4022,"props":8437,"children":8439},{"className":8438},[3996,4025,4026],[8440],{"type":10,"tag":11,"props":8441,"children":8443},{"className":8442},[3996],[8444],{"type":10,"tag":4033,"props":8445,"children":8446},{"role":4035},[8447],{"type":15,"value":8448},"Vulkan type",{"type":10,"tag":4018,"props":8450,"children":8451},{},[8452,8465],{"type":10,"tag":4022,"props":8453,"children":8455},{"className":8454},[3996,4025,4026],[8456],{"type":10,"tag":11,"props":8457,"children":8459},{"className":8458},[3996],[8460],{"type":10,"tag":4064,"props":8461,"children":8462},{},[8463],{"type":15,"value":8464},"D3D12_DRAW_ARGUMENTS",{"type":10,"tag":4022,"props":8466,"children":8468},{"className":8467},[3996,4025,4026],[8469],{"type":10,"tag":11,"props":8470,"children":8472},{"className":8471},[3996],[8473],{"type":10,"tag":4064,"props":8474,"children":8475},{},[8476],{"type":15,"value":3717},{"type":10,"tag":4018,"props":8478,"children":8479},{},[8480,8493],{"type":10,"tag":4022,"props":8481,"children":8483},{"className":8482},[3996,4025,4026],[8484],{"type":10,"tag":11,"props":8485,"children":8487},{"className":8486},[3996],[8488],{"type":10,"tag":4064,"props":8489,"children":8490},{},[8491],{"type":15,"value":8492},"D3D12_DRAW_INDEXED_ARGUMENTS",{"type":10,"tag":4022,"props":8494,"children":8496},{"className":8495},[3996,4025,4026],[8497],{"type":10,"tag":11,"props":8498,"children":8500},{"className":8499},[3996],[8501],{"type":10,"tag":4064,"props":8502,"children":8503},{},[8504],{"type":15,"value":4336},{"type":10,"tag":4018,"props":8506,"children":8507},{},[8508,8521],{"type":10,"tag":4022,"props":8509,"children":8511},{"className":8510},[3996,4025,4026],[8512],{"type":10,"tag":11,"props":8513,"children":8515},{"className":8514},[3996],[8516],{"type":10,"tag":4064,"props":8517,"children":8518},{},[8519],{"type":15,"value":8520},"D3D12_DISPATCH_ARGUMENTS",{"type":10,"tag":4022,"props":8522,"children":8524},{"className":8523},[3996,4025,4026],[8525],{"type":10,"tag":11,"props":8526,"children":8528},{"className":8527},[3996],[8529],{"type":10,"tag":4064,"props":8530,"children":8531},{},[8532],{"type":15,"value":3854},{"type":10,"tag":4018,"props":8534,"children":8535},{},[8536,8548],{"type":10,"tag":4022,"props":8537,"children":8539},{"className":8538},[3996,4025,4026],[8540],{"type":10,"tag":11,"props":8541,"children":8543},{"className":8542},[3996],[8544],{"type":10,"tag":4064,"props":8545,"children":8546},{},[8547],{"type":15,"value":5464},{"type":10,"tag":4022,"props":8549,"children":8551},{"className":8550},[3996,4025,4026],[8552],{"type":10,"tag":11,"props":8553,"children":8555},{"className":8554},[3996],[8556],{"type":10,"tag":4064,"props":8557,"children":8558},{},[8559],{"type":15,"value":4258},{"type":10,"tag":4018,"props":8561,"children":8562},{},[8563,8575],{"type":10,"tag":4022,"props":8564,"children":8566},{"className":8565},[3996,4025,4026],[8567],{"type":10,"tag":11,"props":8568,"children":8570},{"className":8569},[3996],[8571],{"type":10,"tag":4064,"props":8572,"children":8573},{},[8574],{"type":15,"value":5706},{"type":10,"tag":4022,"props":8576,"children":8578},{"className":8577},[3996,4025,4026],[8579],{"type":10,"tag":11,"props":8580,"children":8582},{"className":8581},[3996],[8583],{"type":10,"tag":4064,"props":8584,"children":8585},{},[8586],{"type":15,"value":4287},{"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":3353},{"type":15,"value":8609},":",{"type":10,"tag":3993,"props":8611,"children":8613},{"className":8612},[3996,3997,3998,3999],[8614,8623],{"type":10,"tag":4002,"props":8615,"children":8616},{},[8617,8620],{"type":10,"tag":4006,"props":8618,"children":8619},{"style":4008},[],{"type":10,"tag":4006,"props":8621,"children":8622},{"style":4008},[],{"type":10,"tag":4014,"props":8624,"children":8625},{},[8626,8655,8683,8711,8739,8767,8795,8823,8851,8879,8907,8935],{"type":10,"tag":4018,"props":8627,"children":8628},{},[8629,8642],{"type":10,"tag":4022,"props":8630,"children":8632},{"className":8631},[3996,4025,4026],[8633],{"type":10,"tag":11,"props":8634,"children":8636},{"className":8635},[3996],[8637],{"type":10,"tag":4033,"props":8638,"children":8639},{"role":4035},[8640],{"type":15,"value":8641},"D3D12 value",{"type":10,"tag":4022,"props":8643,"children":8645},{"className":8644},[3996,4025,4026],[8646],{"type":10,"tag":11,"props":8647,"children":8649},{"className":8648},[3996],[8650],{"type":10,"tag":4033,"props":8651,"children":8652},{"role":4035},[8653],{"type":15,"value":8654},"Vulkan value",{"type":10,"tag":4018,"props":8656,"children":8657},{},[8658,8671],{"type":10,"tag":4022,"props":8659,"children":8661},{"className":8660},[3996,4025,4026],[8662],{"type":10,"tag":11,"props":8663,"children":8665},{"className":8664},[3996],[8666],{"type":10,"tag":4064,"props":8667,"children":8668},{},[8669],{"type":15,"value":8670},"D3D12_INDIRECT_ARGUMENT_TYPE_DRAW",{"type":10,"tag":4022,"props":8672,"children":8674},{"className":8673},[3996,4025,4026],[8675],{"type":10,"tag":11,"props":8676,"children":8678},{"className":8677},[3996],[8679],{"type":10,"tag":4064,"props":8680,"children":8681},{},[8682],{"type":15,"value":4352},{"type":10,"tag":4018,"props":8684,"children":8685},{},[8686,8699],{"type":10,"tag":4022,"props":8687,"children":8689},{"className":8688},[3996,4025,4026],[8690],{"type":10,"tag":11,"props":8691,"children":8693},{"className":8692},[3996],[8694],{"type":10,"tag":4064,"props":8695,"children":8696},{},[8697],{"type":15,"value":8698},"D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED",{"type":10,"tag":4022,"props":8700,"children":8702},{"className":8701},[3996,4025,4026],[8703],{"type":10,"tag":11,"props":8704,"children":8706},{"className":8705},[3996],[8707],{"type":10,"tag":4064,"props":8708,"children":8709},{},[8710],{"type":15,"value":4323},{"type":10,"tag":4018,"props":8712,"children":8713},{},[8714,8727],{"type":10,"tag":4022,"props":8715,"children":8717},{"className":8716},[3996,4025,4026],[8718],{"type":10,"tag":11,"props":8719,"children":8721},{"className":8720},[3996],[8722],{"type":10,"tag":4064,"props":8723,"children":8724},{},[8725],{"type":15,"value":8726},"D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH",{"type":10,"tag":4022,"props":8728,"children":8730},{"className":8729},[3996,4025,4026],[8731],{"type":10,"tag":11,"props":8732,"children":8734},{"className":8733},[3996],[8735],{"type":10,"tag":4064,"props":8736,"children":8737},{},[8738],{"type":15,"value":4148},{"type":10,"tag":4018,"props":8740,"children":8741},{},[8742,8755],{"type":10,"tag":4022,"props":8743,"children":8745},{"className":8744},[3996,4025,4026],[8746],{"type":10,"tag":11,"props":8747,"children":8749},{"className":8748},[3996],[8750],{"type":10,"tag":4064,"props":8751,"children":8752},{},[8753],{"type":15,"value":8754},"D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW",{"type":10,"tag":4022,"props":8756,"children":8758},{"className":8757},[3996,4025,4026],[8759],{"type":10,"tag":11,"props":8760,"children":8762},{"className":8761},[3996],[8763],{"type":10,"tag":4064,"props":8764,"children":8765},{},[8766],{"type":15,"value":4274},{"type":10,"tag":4018,"props":8768,"children":8769},{},[8770,8783],{"type":10,"tag":4022,"props":8771,"children":8773},{"className":8772},[3996,4025,4026],[8774],{"type":10,"tag":11,"props":8775,"children":8777},{"className":8776},[3996],[8778],{"type":10,"tag":4064,"props":8779,"children":8780},{},[8781],{"type":15,"value":8782},"D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW",{"type":10,"tag":4022,"props":8784,"children":8786},{"className":8785},[3996,4025,4026],[8787],{"type":10,"tag":11,"props":8788,"children":8790},{"className":8789},[3996],[8791],{"type":10,"tag":4064,"props":8792,"children":8793},{},[8794],{"type":15,"value":4245},{"type":10,"tag":4018,"props":8796,"children":8797},{},[8798,8811],{"type":10,"tag":4022,"props":8799,"children":8801},{"className":8800},[3996,4025,4026],[8802],{"type":10,"tag":11,"props":8803,"children":8805},{"className":8804},[3996],[8806],{"type":10,"tag":4064,"props":8807,"children":8808},{},[8809],{"type":15,"value":8810},"D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT",{"type":10,"tag":4022,"props":8812,"children":8814},{"className":8813},[3996,4025,4026],[8815],{"type":10,"tag":11,"props":8816,"children":8818},{"className":8817},[3996],[8819],{"type":10,"tag":4064,"props":8820,"children":8821},{},[8822],{"type":15,"value":3308},{"type":10,"tag":4018,"props":8824,"children":8825},{},[8826,8839],{"type":10,"tag":4022,"props":8827,"children":8829},{"className":8828},[3996,4025,4026],[8830],{"type":10,"tag":11,"props":8831,"children":8833},{"className":8832},[3996],[8834],{"type":10,"tag":4064,"props":8835,"children":8836},{},[8837],{"type":15,"value":8838},"D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW",{"type":10,"tag":4022,"props":8840,"children":8842},{"className":8841},[3996,4025,4026],[8843],{"type":10,"tag":11,"props":8844,"children":8846},{"className":8845},[3996],[8847],{"type":10,"tag":4064,"props":8848,"children":8849},{},[8850],{"type":15,"value":3308},{"type":10,"tag":4018,"props":8852,"children":8853},{},[8854,8867],{"type":10,"tag":4022,"props":8855,"children":8857},{"className":8856},[3996,4025,4026],[8858],{"type":10,"tag":11,"props":8859,"children":8861},{"className":8860},[3996],[8862],{"type":10,"tag":4064,"props":8863,"children":8864},{},[8865],{"type":15,"value":8866},"D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW",{"type":10,"tag":4022,"props":8868,"children":8870},{"className":8869},[3996,4025,4026],[8871],{"type":10,"tag":11,"props":8872,"children":8874},{"className":8873},[3996],[8875],{"type":10,"tag":4064,"props":8876,"children":8877},{},[8878],{"type":15,"value":3308},{"type":10,"tag":4018,"props":8880,"children":8881},{},[8882,8895],{"type":10,"tag":4022,"props":8883,"children":8885},{"className":8884},[3996,4025,4026],[8886],{"type":10,"tag":11,"props":8887,"children":8889},{"className":8888},[3996],[8890],{"type":10,"tag":4064,"props":8891,"children":8892},{},[8893],{"type":15,"value":8894},"D3D12_INDIRECT_ARGUMENT_TYPE_UNORDERED_ACCESS_VIEW",{"type":10,"tag":4022,"props":8896,"children":8898},{"className":8897},[3996,4025,4026],[8899],{"type":10,"tag":11,"props":8900,"children":8902},{"className":8901},[3996],[8903],{"type":10,"tag":4064,"props":8904,"children":8905},{},[8906],{"type":15,"value":3308},{"type":10,"tag":4018,"props":8908,"children":8909},{},[8910,8923],{"type":10,"tag":4022,"props":8911,"children":8913},{"className":8912},[3996,4025,4026],[8914],{"type":10,"tag":11,"props":8915,"children":8917},{"className":8916},[3996],[8918],{"type":10,"tag":4064,"props":8919,"children":8920},{},[8921],{"type":15,"value":8922},"D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_RAYS",{"type":10,"tag":4022,"props":8924,"children":8926},{"className":8925},[3996,4025,4026],[8927],{"type":10,"tag":11,"props":8928,"children":8930},{"className":8929},[3996],[8931],{"type":10,"tag":4064,"props":8932,"children":8933},{},[8934],{"type":15,"value":4196},{"type":10,"tag":4018,"props":8936,"children":8937},{},[8938,8951],{"type":10,"tag":4022,"props":8939,"children":8941},{"className":8940},[3996,4025,4026],[8942],{"type":10,"tag":11,"props":8943,"children":8945},{"className":8944},[3996],[8946],{"type":10,"tag":4064,"props":8947,"children":8948},{},[8949],{"type":15,"value":8950},"D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_MESH",{"type":10,"tag":4022,"props":8952,"children":8954},{"className":8953},[3996,4025,4026],[8955],{"type":10,"tag":11,"props":8956,"children":8958},{"className":8957},[3996],[8959],{"type":10,"tag":4064,"props":8960,"children":8961},{},[8962],{"type":15,"value":4380},{"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":3308},{"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":3316},{"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":5457},{"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":5464},{"type":15,"value":293},{"type":10,"tag":151,"props":9197,"children":9199},{"className":9198},[],[9200],{"type":15,"value":4258},{"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":5243},{"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":5243},{"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":3367},{"type":10,"tag":151,"props":9260,"children":9262},{"className":9261},[],[9263],{"type":15,"value":7607},{"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":2900,"depth":599,"text":2903},{"id":3983,"depth":599,"text":3986},{"id":6128,"depth":599,"text":6131},{"id":6756,"depth":599,"text":6759},{"id":7672,"depth":599,"text":7675},{"id":7817,"depth":599,"text":7820},{"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,9540,9543,9547,9551,9555,9559,9562,9565,9568,9571,9574,9577,9580,9583],{"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":1952,"title":9405,"id":9406,"appendix":9377},"Memory Allocation","memory",{"index":4699,"title":9408,"id":9409,"appendix":9377},"Resource Creation","resources",{"index":4708,"title":9411,"id":9412,"appendix":9377},"Samplers","samplers",{"index":4717,"title":9414,"id":9415,"appendix":9377},"Resource Descriptors","descriptorsets",{"index":4726,"title":9417,"id":9418,"appendix":9377},"Shader Interfaces","interfaces",{"index":4735,"title":9420,"id":9421,"appendix":9377},"Image Operations","textures",{"index":4744,"title":9423,"id":9424,"appendix":9377},"Fragment Density Map Operations","fragmentdensitymapops",{"index":4753,"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,"External Compute Queues","_external_compute_queues",{"index":9537,"title":9538,"id":9539,"appendix":9377},45,"Extending Vulkan","extendingvulkan",{"index":9541,"title":7675,"id":9542,"appendix":9377},46,"features",{"index":9544,"title":9545,"id":9546,"appendix":9377},47,"Limits","limits",{"index":9548,"title":9549,"id":9550,"appendix":9377},48,"Formats","formats",{"index":9552,"title":9553,"id":9554,"appendix":9377},49,"Additional Capabilities","capabilities",{"index":9556,"title":9557,"id":9558,"appendix":9377},50,"Debugging","debugging",{"index":9374,"title":9560,"id":9561,"appendix":6827},"Vulkan Environment for SPIR-V","spirvenv",{"index":569,"title":9563,"id":9564,"appendix":6827},"Memory Model","memory-model",{"index":590,"title":9566,"id":9567,"appendix":6827},"Compressed Image Formats","compressed_image_formats",{"index":599,"title":9569,"id":9570,"appendix":6827},"Core Revisions (Informative)","versions",{"index":650,"title":9572,"id":9573,"appendix":6827},"Layers & Extensions (Informative)","extensions",{"index":659,"title":9575,"id":9576,"appendix":6827},"API Boilerplate","boilerplate",{"index":678,"title":9578,"id":9579,"appendix":6827},"Invariance","invariance",{"index":697,"title":9581,"id":9582,"appendix":6827},"Lexicon","lexicon",{"index":714,"title":9584,"id":9585,"appendix":6827},"Credits (Informative)","credits",[9587,9594,9598,9603,9607,9612,9615,9618,9621,9625,9629,9632,9635,9638,9640,9642,9645,9648,9652,9654,9658,9660,9663,9665,9668,9676,9680,9686,9691,9695,9700,9702,9706,9712,9718,9725,9727,9731,9737,9740,9744,9749,9753,9757,9761,9765,9768,9771,9777,9780,9783,9787,9791,9796,9800,9803,9805,9809,9814,9820,9823,9827,9831,9834,9840,9843,9847,9850,9854,9857,9861,9864,9869,9873,9876,9881,9886,9889,9892,9897,9900,9904,9909,9914,9918,9922,9926,9930,9935,9939,9943,9946,9949,9953,9956,9959,9962,9966,9971,9975,9978,9982,9987,9991,9996,9999,10002,10007,10011,10015,10018,10022,10027,10030,10035,10039,10042,10045,10049,10053,10057,10062,10066,10069,10074,10078,10082,10085,10088,10092,10096,10099,10101,10105,10108,10111,10114,10117,10120,10123,10126,10129,10132,10136,10140,10143,10146,10149,10152,10155,10158,10162,10166,10170,10173,10177,10180,10183,10186,10188,10192,10197,10201,10205,10208,10210,10214,10217,10224,10228,10232,10236,10242,10244,10248,10252,10255,10258,10262,10267,10272,10278,10282,10284,10289,10292,10297,10301,10306,10310,10314,10316,10319,10322,10324,10328,10331,10334,10339,10343,10347,10349,10354,10358,10362,10364,10366,10369,10371,10374,10377,10381,10385,10387,10391,10394,10398,10401,10403,10406,10410,10412,10416,10419,10422,10425,10429,10432,10435,10438,10441,10443,10446,10450,10453,10455,10457,10459,10461,10465,10468,10471,10476,10480,10483,10486,10489,10492,10494,10498,10502,10505,10508,10512,10515,10520,10524,10527,10531,10533,10536,10540,10544,10546,10551,10554,10558,10561,10564,10567,10570,10572,10575,10579,10582,10586,10589,10593,10597,10600,10603,10606,10609,10613,10616,10619,10621,10626,10627,10631,10634,10637,10640,10643,10645,10649,10652,10655,10658,10662,10665,10667,10671,10673,10677,10680,10682,10685,10689,10693,10695,10699,10702,10705,10708,10711,10715,10720,10725,10729,10735,10739,10742,10746,10750,10753,10756,10760,10764,10767,10770,10773,10777,10780,10785,10789,10791,10797,10800,10803,10806,10809,10811,10815,10820,10823,10827,10831,10833,10836,10838,10841,10843,10845,10848,10851,10854,10857,10860,10863,10865,10869,10873,10877,10881,10884,10887,10891,10894,10898,10902,10906,10908,10912,10916,10919,10922,10925,10928,10931,10934,10937,10940,10943,10946,10949,10952,10955,10958,10961,10965,10968,10972,10976,10979,10982,10985,10988,10991,10994,10998,11001,11005,11008,11014,11018,11022,11026],{"number":9588,"type":1134,"author":9589,"provisional":6827,"depends":9590,"platform":9591,"contact":9592,"extension":9593,"proposal":6827},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":9595,"type":1134,"author":9589,"provisional":9377,"contact":9596,"extension":9597,"proposal":6827},477,"Stu Smith","VK_AMD_anti_lag",{"number":9599,"type":1134,"author":9589,"provisional":9377,"specialuse":9600,"contact":9601,"extension":9602,"proposal":9377},180,"devtools","Daniel Rakos @drakos-amd","VK_AMD_buffer_marker",{"number":9604,"type":1134,"author":9589,"provisional":9377,"depends":9605,"contact":9592,"extension":9606,"proposal":9377},230,"VK_KHR_get_physical_device_properties2,VK_VERSION_1_1","VK_AMD_device_coherent_memory",{"number":9608,"type":1134,"author":9589,"provisional":9377,"depends":9609,"contact":9610,"extension":9611,"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":9589,"promotedto":9613,"provisional":9377,"contact":9601,"extension":9614,"proposal":9377},"VK_KHR_draw_indirect_count","VK_AMD_draw_indirect_count",{"number":9461,"type":1134,"author":9589,"provisional":9377,"contact":9616,"extension":9617,"proposal":9377},"Dominik Witczak @dominikwitczakamd","VK_AMD_gcn_shader",{"number":9505,"type":1134,"author":9589,"deprecatedby":9619,"provisional":9377,"contact":9616,"extension":9620,"proposal":9377},"VK_KHR_shader_float16_int8","VK_AMD_gpu_shader_half_float",{"number":9622,"type":1134,"author":9589,"deprecatedby":9619,"provisional":9377,"contact":9623,"extension":9624,"proposal":9377},133,"Qun Lin @linqun","VK_AMD_gpu_shader_int16",{"number":9626,"type":1134,"author":9589,"provisional":9377,"contact":9627,"extension":9628,"proposal":9377},190,"Martin Dinkov @mdinkov","VK_AMD_memory_overallocation_behavior",{"number":9630,"type":1134,"author":9589,"provisional":9377,"contact":9610,"extension":9631,"proposal":9377},137,"VK_AMD_mixed_attachment_samples",{"number":9501,"type":1134,"author":9589,"obsoletedby":9633,"provisional":9377,"contact":9610,"extension":9634,"proposal":9377},"VK_KHR_maintenance1","VK_AMD_negative_viewport_height",{"number":9636,"type":1134,"author":9589,"provisional":9377,"contact":9610,"extension":9637,"proposal":9377},184,"VK_AMD_pipeline_compiler_control",{"number":9433,"type":1134,"author":9589,"provisional":9377,"contact":9601,"extension":9639,"proposal":9377},"VK_AMD_rasterization_order",{"number":9509,"type":1134,"author":9589,"provisional":9377,"contact":9616,"extension":9641,"proposal":9377},"VK_AMD_shader_ballot",{"number":9643,"type":1134,"author":9589,"provisional":9377,"depends":9605,"contact":9627,"extension":9644,"proposal":9377},186,"VK_AMD_shader_core_properties",{"number":9646,"type":1134,"author":9589,"provisional":9377,"depends":9644,"contact":9610,"extension":9647,"proposal":9377},228,"VK_AMD_shader_core_properties2",{"number":9649,"type":1134,"author":9650,"provisional":9377,"depends":9605,"contact":9592,"extension":9651,"proposal":6827},322,"EXT","VK_AMD_shader_early_and_late_fragment_tests",{"number":9445,"type":1134,"author":9589,"provisional":9377,"contact":9623,"extension":9653,"proposal":9377},"VK_AMD_shader_explicit_vertex_parameter",{"number":9655,"type":1134,"author":9589,"provisional":9377,"contact":9656,"extension":9657,"proposal":9377},138,"Aaron Hagan @AaronHaganAMD","VK_AMD_shader_fragment_mask",{"number":9544,"type":1134,"author":9589,"provisional":9377,"contact":9616,"extension":9659,"proposal":9377},"VK_AMD_shader_image_load_store_lod",{"number":9529,"type":1134,"author":9589,"provisional":9377,"specialuse":9600,"contact":9661,"extension":9662,"proposal":9377},"Jaakko Konttinen @jaakkoamd","VK_AMD_shader_info",{"number":9441,"type":1134,"author":9589,"provisional":9377,"contact":9623,"extension":9664,"proposal":9377},"VK_AMD_shader_trinary_minmax",{"number":9525,"type":1134,"author":9589,"provisional":9377,"depends":9605,"contact":9666,"extension":9667,"proposal":9377},"Rex Xu @amdrexu","VK_AMD_texture_gather_bias_lod",{"number":9669,"type":1134,"author":9670,"provisional":9377,"depends":9671,"platform":9672,"specialuse":9673,"contact":9674,"extension":9675,"proposal":6827},469,"ANDROID","VK_ANDROID_external_memory_android_hardware_buffer","android","glemulation","Chris Forbes @chrisforbes","VK_ANDROID_external_format_resolve",{"number":9677,"type":1134,"author":9670,"provisional":9377,"depends":9678,"platform":9672,"contact":9679,"extension":9671,"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":9681,"type":1134,"author":9682,"provisional":9377,"depends":9683,"contact":9684,"extension":9685,"proposal":6827},597,"ARM","VK_EXT_opacity_micromap","Mathieu Robart @mathieurobart-arm","VK_ARM_pipeline_opacity_micromap",{"number":9687,"type":1134,"author":9682,"promotedto":9688,"provisional":9377,"depends":9605,"contact":9689,"extension":9690,"proposal":9377},343,"VK_EXT_rasterization_order_attachment_access","Jan-Harald Fredriksen @janharaldfredriksen-arm","VK_ARM_rasterization_order_attachment_access",{"number":9692,"type":1134,"author":9682,"provisional":9377,"depends":9693,"contact":9689,"extension":9694,"proposal":6827},425,"((VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_KHR_synchronization2),VK_VERSION_1_3","VK_ARM_render_pass_striped",{"number":9696,"type":1134,"author":9682,"provisional":9377,"depends":9697,"contact":9698,"extension":9699,"proposal":9377},418,"VK_ARM_shader_core_builtins","Kevin Petit @kpet","VK_ARM_scheduling_controls",{"number":9701,"type":1134,"author":9682,"provisional":9377,"depends":9605,"contact":9698,"extension":9697,"proposal":9377},498,{"number":9703,"type":1134,"author":9682,"provisional":9377,"depends":9704,"contact":9689,"extension":9705,"proposal":9377},416,"VK_VERSION_1_1","VK_ARM_shader_core_properties",{"number":9707,"type":1134,"author":9650,"promotedto":9708,"provisional":9377,"depends":9605,"ratified":9709,"contact":9710,"extension":9711,"proposal":9377},341,"VK_VERSION_1_3","vulkansc","Joshua Ashton @Joshua-Ashton","VK_EXT_4444_formats",{"number":9713,"type":9714,"author":9650,"provisional":9377,"depends":9715,"contact":9716,"extension":9717,"proposal":9377},286,"instance","VK_EXT_direct_mode_display","Drew DeVault sir@cmpwn.com","VK_EXT_acquire_drm_display",{"number":9719,"type":9714,"author":9720,"provisional":9377,"depends":9715,"platform":9721,"ratified":9722,"contact":9723,"extension":9724,"proposal":9377},90,"NV","xlib_xrandr","vulkan","James Jones @cubanismo","VK_EXT_acquire_xlib_display",{"extension":9726,"proposal":9377},"VK_EXT_application_parameters",{"number":9728,"type":1134,"author":9682,"provisional":9377,"depends":9605,"ratified":9729,"contact":9689,"extension":9730,"proposal":9377},68,"vulkan,vulkansc","VK_EXT_astc_decode_mode",{"number":9732,"type":1134,"author":9650,"provisional":9377,"depends":9733,"ratified":9722,"specialuse":9734,"contact":9735,"extension":9736,"proposal":6827},525,"(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_EXT_attachment_feedback_loop_layout","glemulation,d3demulation","Mike Blumenkrantz @zmike","VK_EXT_attachment_feedback_loop_dynamic_state",{"number":9738,"type":1134,"author":9650,"provisional":9377,"depends":9605,"ratified":9722,"specialuse":9734,"contact":9710,"extension":9739,"proposal":6827},340,"VK_EXT_attachment_feedback_loop_layout",{"number":9741,"type":1134,"author":9720,"provisional":9377,"depends":9605,"ratified":9729,"contact":9742,"extension":9743,"proposal":9377},149,"Jeff Bolz @jeffbolznv","VK_EXT_blend_operation_advanced",{"number":9745,"type":1134,"author":9650,"provisional":9377,"depends":9746,"ratified":9722,"specialuse":9734,"contact":9747,"extension":9748,"proposal":9377},412,"VK_EXT_custom_border_color","Piers Daniell @pdaniell-nv","VK_EXT_border_color_swizzle",{"number":9750,"type":1134,"author":9720,"deprecatedby":9751,"provisional":9377,"depends":9605,"contact":9742,"extension":9752,"proposal":9377},245,"VK_KHR_buffer_device_address","VK_EXT_buffer_device_address",{"number":9754,"type":1134,"author":9650,"promotedto":9755,"provisional":9377,"depends":9605,"contact":9601,"extension":9756,"proposal":6827},185,"VK_KHR_calibrated_timestamps","VK_EXT_calibrated_timestamps",{"number":9758,"type":1134,"author":9650,"provisional":9377,"depends":9605,"ratified":9729,"contact":9759,"extension":9760,"proposal":9377},382,"Sharif Elcott @selcott","VK_EXT_color_write_enable",{"number":9762,"type":1134,"author":9720,"provisional":9377,"depends":9605,"contact":9763,"extension":9764,"proposal":9377},82,"Vikram Kushwaha @vkushwaha","VK_EXT_conditional_rendering",{"number":9766,"type":1134,"author":9720,"provisional":9377,"depends":9605,"ratified":9729,"contact":9747,"extension":9767,"proposal":9377},102,"VK_EXT_conservative_rasterization",{"number":9769,"type":1134,"author":9650,"provisional":9377,"depends":9605,"ratified":9729,"specialuse":9734,"contact":9770,"extension":9746,"proposal":9377},288,"Liam Middlebrook @liam-middlebrook",{"number":9449,"type":1134,"author":9772,"promotedto":9773,"provisional":9377,"depends":9774,"specialuse":9558,"contact":9775,"extension":9776,"proposal":9377},"Baldur Karlsson","VK_EXT_debug_utils","VK_EXT_debug_report","Baldur Karlsson @baldurk","VK_EXT_debug_marker",{"number":4708,"type":9714,"author":9778,"deprecatedby":9773,"provisional":9377,"specialuse":9558,"contact":9779,"extension":9774,"proposal":9377},"GOOGLE","Courtney Goeltzenleuchter @courtney-g",{"number":9781,"type":9714,"author":9650,"provisional":9377,"ratified":9729,"specialuse":9558,"contact":9782,"extension":9773,"proposal":9377},129,"Mark Young @marky-lunarg",{"number":9784,"type":1134,"author":9650,"provisional":9377,"depends":9605,"ratified":9722,"specialuse":9785,"contact":9710,"extension":9786,"proposal":6827},284,"d3demulation","VK_EXT_depth_bias_control",{"number":9788,"type":1134,"author":9650,"provisional":9377,"depends":9605,"ratified":9722,"contact":9789,"extension":9790,"proposal":6827},583,"Jules Blok @jules","VK_EXT_depth_clamp_control",{"number":9792,"type":1134,"author":9650,"promotedto":9793,"provisional":9377,"depends":9605,"ratified":9722,"contact":9794,"extension":9795,"proposal":9377},422,"VK_KHR_depth_clamp_zero_one","Graeme Leese @gnl21","VK_EXT_depth_clamp_zero_one",{"number":9797,"type":1134,"author":9650,"provisional":9377,"depends":9605,"ratified":9722,"specialuse":9673,"contact":9798,"extension":9799,"proposal":9377},356,"Shahbaz Youssefi @syoussefi","VK_EXT_depth_clip_control",{"number":9801,"type":1134,"author":9650,"provisional":9377,"depends":9605,"ratified":9729,"specialuse":9785,"contact":9747,"extension":9802,"proposal":9377},103,"VK_EXT_depth_clip_enable",{"number":4726,"type":1134,"author":9720,"provisional":9377,"ratified":9729,"contact":9747,"extension":9804,"proposal":9377},"VK_EXT_depth_range_unrestricted",{"number":9806,"type":1134,"author":9650,"provisional":9377,"depends":9807,"ratified":9722,"contact":9592,"extension":9808,"proposal":6827},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":9810,"type":1134,"author":9720,"promotedto":9811,"provisional":9377,"depends":9812,"ratified":9722,"contact":9742,"extension":9813,"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":9815,"type":1134,"author":9650,"provisional":9377,"depends":9816,"specialuse":9817,"contact":9818,"extension":9819,"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":9821,"type":1134,"author":9650,"provisional":9377,"depends":9605,"ratified":9722,"contact":9818,"extension":9822,"proposal":6827},342,"VK_EXT_device_fault",{"number":9824,"type":1134,"author":9650,"provisional":9377,"depends":9825,"ratified":9722,"contact":9735,"extension":9826,"proposal":6827},573,"((VK_KHR_buffer_device_address,VK_VERSION_1_2)+VK_KHR_maintenance5),VK_VERSION_1_3","VK_EXT_device_generated_commands",{"number":9828,"type":1134,"author":9650,"provisional":9377,"depends":9605,"ratified":9722,"specialuse":9600,"contact":9829,"extension":9830,"proposal":9377},285,"Yiwei Zhang @zhangyiwei","VK_EXT_device_memory_report",{"number":9832,"type":9714,"author":9720,"provisional":9377,"depends":9833,"ratified":9729,"contact":9723,"extension":9715,"proposal":9377},89,"VK_KHR_display",{"number":9835,"type":9714,"author":9650,"provisional":9377,"depends":9836,"platform":9837,"ratified":9722,"contact":9838,"extension":9839,"proposal":9377},347,"VK_KHR_surface","directfb","Nicolas Caramelli @caramelli","VK_EXT_directfb_surface",{"number":9841,"type":1134,"author":9720,"provisional":9377,"depends":9605,"ratified":9729,"contact":9747,"extension":9842,"proposal":9377},100,"VK_EXT_discard_rectangles",{"number":9844,"type":1134,"author":9720,"provisional":9377,"depends":9845,"ratified":9729,"contact":9723,"extension":9846,"proposal":9377},92,"VK_EXT_display_surface_counter+VK_KHR_swapchain","VK_EXT_display_control",{"number":9848,"type":9714,"author":9720,"provisional":9377,"depends":9833,"ratified":9729,"contact":9723,"extension":9849,"proposal":9377},91,"VK_EXT_display_surface_counter",{"number":9851,"type":1134,"author":9650,"provisional":9377,"depends":9852,"ratified":9722,"contact":9747,"extension":9853,"proposal":6827},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":9855,"type":1134,"author":9650,"promotedto":9708,"provisional":9377,"depends":9605,"ratified":9709,"contact":9747,"extension":9856,"proposal":9377},268,"VK_EXT_extended_dynamic_state",{"number":9858,"type":1134,"author":9650,"promotedto":9708,"provisional":9377,"depends":9605,"ratified":9709,"contact":9859,"extension":9860,"proposal":9377},378,"Vikram Kushwaha @vkushwaha-nv","VK_EXT_extended_dynamic_state2",{"number":9862,"type":1134,"author":9720,"provisional":9377,"depends":9605,"ratified":9722,"contact":9747,"extension":9863,"proposal":6827},456,"VK_EXT_extended_dynamic_state3",{"number":9865,"type":1134,"author":9650,"provisional":9377,"depends":9866,"ratified":9722,"contact":9867,"extension":9868,"proposal":6827},454,"VK_KHR_external_memory,VK_VERSION_1_1","Lina Versace @linyaa-kiwi","VK_EXT_external_memory_acquire_unmodified",{"number":9870,"type":1134,"author":9650,"provisional":9377,"depends":9871,"ratified":9729,"contact":9867,"extension":9872,"proposal":9377},126,"VK_KHR_external_memory_fd","VK_EXT_external_memory_dma_buf",{"number":9874,"type":1134,"author":9650,"provisional":9377,"depends":9866,"ratified":9729,"contact":9601,"extension":9875,"proposal":9377},179,"VK_EXT_external_memory_host",{"number":9877,"type":1134,"author":9650,"provisional":9377,"depends":9866,"platform":9878,"ratified":9722,"contact":9879,"extension":9880,"proposal":6827},603,"metal","Aitor Camacho Larrondo @aitor-lunarg","VK_EXT_external_memory_metal",{"number":9882,"type":1134,"author":9883,"provisional":9377,"ratified":9729,"contact":9884,"extension":9885,"proposal":9377},171,"QCOM","Matthew Netsch @mnetsch","VK_EXT_filter_cubic",{"number":9887,"type":1134,"author":9650,"provisional":9377,"depends":9605,"ratified":9722,"contact":9884,"extension":9888,"proposal":9377},219,"VK_EXT_fragment_density_map",{"number":9890,"type":1134,"author":9650,"provisional":9377,"depends":9888,"ratified":9722,"contact":9884,"extension":9891,"proposal":9377},333,"VK_EXT_fragment_density_map2",{"number":9893,"type":1134,"author":9650,"provisional":9377,"depends":9894,"contact":9895,"extension":9896,"proposal":6827},620,"(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_EXT_fragment_density_map+(VK_KHR_create_renderpass2,VK_VERSION_1_2)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)","Connor Abbott @cwabbott0","VK_EXT_fragment_density_map_offset",{"number":9898,"type":1134,"author":9650,"provisional":9377,"depends":9605,"ratified":9729,"contact":9747,"extension":9899,"proposal":9377},252,"VK_EXT_fragment_shader_interlock",{"number":9901,"type":1134,"author":9650,"provisional":9377,"ratified":9722,"contact":9902,"extension":9903,"proposal":6827},376,"James Fitzpatrick @jamesfitzpatrick","VK_EXT_frame_boundary",{"number":9905,"type":1134,"author":9650,"provisional":9377,"depends":9906,"platform":9907,"ratified":9722,"contact":9723,"extension":9908,"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":9910,"type":1134,"author":9650,"promotedto":9911,"provisional":9377,"contact":9912,"extension":9913,"proposal":9377},175,"VK_KHR_global_priority","Andres Rodriguez @lostgoat","VK_EXT_global_priority",{"number":9915,"type":1134,"author":9650,"promotedto":9911,"provisional":9377,"depends":9916,"contact":9829,"extension":9917,"proposal":9377},389,"VK_EXT_global_priority+(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)","VK_EXT_global_priority_query",{"number":9919,"type":1134,"author":9589,"provisional":9377,"depends":9920,"ratified":9722,"contact":9592,"extension":9921,"proposal":6827},321,"(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_KHR_pipeline_library","VK_EXT_graphics_pipeline_library",{"number":9923,"type":1134,"author":9778,"provisional":9377,"depends":9924,"ratified":9729,"contact":9779,"extension":9925,"proposal":9377},106,"VK_KHR_swapchain","VK_EXT_hdr_metadata",{"number":9927,"type":9714,"author":9650,"provisional":9377,"depends":9836,"ratified":9729,"contact":9928,"extension":9929,"proposal":9377},257,"Lisa Wu @chengtianww","VK_EXT_headless_surface",{"number":9931,"type":1134,"author":9650,"promotedto":9932,"provisional":9377,"depends":9933,"ratified":9722,"contact":9798,"extension":9934,"proposal":6827},271,"VK_VERSION_1_4","((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":9936,"type":1134,"author":9650,"promotedto":9811,"provisional":9377,"depends":9605,"contact":9937,"extension":9938,"proposal":9377},262,"Bas Nieuwenhuizen @BNieuwenhuizen","VK_EXT_host_query_reset",{"number":9940,"type":1134,"author":9650,"provisional":9377,"depends":9941,"ratified":9722,"specialuse":9673,"contact":9735,"extension":9942,"proposal":9377},394,"(VK_KHR_maintenance1+VK_KHR_get_physical_device_properties2),VK_VERSION_1_1","VK_EXT_image_2d_view_of_3d",{"number":9944,"type":1134,"author":9650,"provisional":9377,"depends":9605,"ratified":9722,"contact":9689,"extension":9945,"proposal":6827},339,"VK_EXT_image_compression_control",{"number":9947,"type":1134,"author":9650,"provisional":9377,"depends":9945,"ratified":9722,"contact":9689,"extension":9948,"proposal":9377},438,"VK_EXT_image_compression_control_swapchain",{"number":9950,"type":1134,"author":9650,"provisional":9377,"depends":9951,"ratified":9729,"contact":9867,"extension":9952,"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":9954,"type":1134,"author":9650,"promotedto":9708,"provisional":9377,"depends":9605,"ratified":9709,"contact":9794,"extension":9955,"proposal":9377},336,"VK_EXT_image_robustness",{"number":9957,"type":1134,"author":9650,"provisional":9377,"depends":9941,"specialuse":9785,"contact":9735,"extension":9958,"proposal":6827},419,"VK_EXT_image_sliced_view_of_3d",{"number":9960,"type":1134,"author":9650,"provisional":9377,"depends":9605,"ratified":9722,"contact":9710,"extension":9961,"proposal":9377},392,"VK_EXT_image_view_min_lod",{"number":9963,"type":1134,"author":9650,"promotedto":9964,"provisional":9377,"depends":9605,"contact":9747,"extension":9965,"proposal":9377},266,"VK_KHR_index_type_uint8","VK_EXT_index_type_uint8",{"number":9967,"type":1134,"author":9650,"promotedto":9708,"provisional":9377,"depends":9968,"contact":9969,"extension":9970,"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":9972,"type":9714,"author":9650,"provisional":9377,"ratified":9729,"contact":9973,"extension":9974,"proposal":6827},497,"Christophe Riccio @christophe","VK_EXT_layer_settings",{"number":9976,"type":1134,"author":9650,"provisional":9377,"depends":9605,"specialuse":9673,"contact":9798,"extension":9977,"proposal":6827},466,"VK_EXT_legacy_dithering",{"number":9979,"type":1134,"author":9650,"provisional":9377,"depends":9980,"ratified":9722,"specialuse":9673,"contact":9735,"extension":9981,"proposal":6827},496,"VK_EXT_vertex_input_dynamic_state","VK_EXT_legacy_vertex_attributes",{"number":9983,"type":1134,"author":9650,"promotedto":9984,"provisional":9377,"depends":9605,"specialuse":9985,"contact":9742,"extension":9986,"proposal":9377},260,"VK_KHR_line_rasterization","cadsupport","VK_EXT_line_rasterization",{"number":9988,"type":1134,"author":9650,"promotedto":9989,"provisional":9377,"ratified":9722,"contact":9798,"extension":9990,"proposal":9377},401,"VK_KHR_load_store_op_none","VK_EXT_load_store_op_none",{"number":9992,"type":1134,"author":9650,"provisional":9377,"depends":9993,"ratified":9722,"contact":9994,"extension":9995,"proposal":6827},273,"VK_KHR_map_memory2,VK_VERSION_1_4","Faith Ekstrand @gfxstrand","VK_EXT_map_memory_placed",{"number":9997,"type":1134,"author":9650,"provisional":9377,"depends":9605,"ratified":9729,"contact":9742,"extension":9998,"proposal":9377},238,"VK_EXT_memory_budget",{"number":10000,"type":1134,"author":9650,"provisional":9377,"depends":9605,"ratified":9722,"contact":9742,"extension":10001,"proposal":9377},239,"VK_EXT_memory_priority",{"number":10003,"type":1134,"author":9650,"provisional":9377,"depends":10004,"contact":10005,"extension":10006,"proposal":6827},329,"VK_KHR_spirv_1_4,VK_VERSION_1_2","Christoph Kubisch @pixeljetstream","VK_EXT_mesh_shader",{"number":10008,"type":1134,"author":9650,"provisional":9377,"platform":9878,"ratified":9722,"contact":10009,"extension":10010,"proposal":6827},312,"Bill Hollings @billhollings","VK_EXT_metal_objects",{"number":10012,"type":9714,"author":9650,"provisional":9377,"depends":9836,"platform":9878,"ratified":9722,"contact":10013,"extension":10014,"proposal":9377},218,"Dzmitry Malyshau @kvark","VK_EXT_metal_surface",{"number":10016,"type":1134,"author":9650,"provisional":9377,"depends":9605,"ratified":9722,"contact":9735,"extension":10017,"proposal":9377},393,"VK_EXT_multi_draw",{"number":10019,"type":1134,"author":9650,"provisional":9377,"depends":10020,"ratified":9722,"contact":9798,"extension":10021,"proposal":6827},377,"(VK_KHR_create_renderpass2+VK_KHR_depth_stencil_resolve),VK_VERSION_1_2","VK_EXT_multisampled_render_to_single_sampled",{"number":10023,"type":1134,"author":9650,"provisional":9377,"depends":10024,"ratified":9722,"specialuse":9785,"contact":10025,"extension":10026,"proposal":6827},495,"VK_KHR_maintenance3,VK_VERSION_1_1","Joshua Ashton @Joshua-Ashton,Hans-Kristian Arntzen @HansKristian-Work","VK_EXT_mutable_descriptor_type",{"number":10028,"type":1134,"author":9650,"provisional":9377,"depends":9605,"ratified":9722,"contact":9747,"extension":10029,"proposal":9377},452,"VK_EXT_nested_command_buffer",{"number":10031,"type":1134,"author":9650,"provisional":9377,"depends":9605,"ratified":9722,"specialuse":10032,"contact":10033,"extension":10034,"proposal":6827},423,"d3demulation,glemulation","Georg Lehmann @DadSchoorse","VK_EXT_non_seamless_cube_map",{"number":10036,"type":1134,"author":9650,"provisional":9377,"depends":10037,"ratified":9722,"contact":10038,"extension":9683,"proposal":6827},397,"VK_KHR_acceleration_structure+(VK_KHR_synchronization2,VK_VERSION_1_3)","Christoph Kubisch @pixeljetstream, Eric Werness",{"number":10040,"type":1134,"author":9650,"provisional":9377,"depends":10001,"contact":9747,"extension":10041,"proposal":9377},413,"VK_EXT_pageable_device_local_memory",{"number":10043,"type":1134,"author":9650,"provisional":9377,"depends":9605,"ratified":9729,"contact":9610,"extension":10044,"proposal":9377},213,"VK_EXT_pci_bus_info",{"number":10046,"type":1134,"author":9650,"provisional":9377,"depends":9605,"ratified":9722,"contact":10047,"extension":10048,"proposal":9377},354,"Simon Ser @emersion","VK_EXT_physical_device_drm",{"number":10050,"type":1134,"author":9589,"promotedto":9708,"provisional":9377,"depends":9605,"contact":10051,"extension":10052,"proposal":9377},298,"Gregory Grebe @grgrebe_amd","VK_EXT_pipeline_creation_cache_control",{"number":10054,"type":1134,"author":9778,"promotedto":9708,"provisional":9377,"specialuse":9600,"contact":10055,"extension":10056,"proposal":9377},193,"Jean-Francois Roy @jfroy","VK_EXT_pipeline_creation_feedback",{"number":10058,"type":1134,"author":9650,"provisional":9377,"depends":10059,"contact":10060,"extension":10061,"proposal":6827},499,"VK_KHR_ray_tracing_pipeline+VK_KHR_pipeline_library","Hans-Kristian Arntzen @HansKristian-Work","VK_EXT_pipeline_library_group_handles",{"number":10063,"type":1134,"author":9650,"provisional":9377,"depends":9605,"contact":10064,"extension":10065,"proposal":9377},373,"Mukund Keshava @mkeshavanv","VK_EXT_pipeline_properties",{"number":10067,"type":1134,"author":9650,"promotedto":9932,"provisional":9377,"depends":9605,"contact":9798,"extension":10068,"proposal":6827},467,"VK_EXT_pipeline_protected_access",{"number":10070,"type":1134,"author":10071,"promotedto":9932,"provisional":9377,"depends":9605,"ratified":9722,"contact":10072,"extension":10073,"proposal":9377},69,"IMG","Jarred Davies","VK_EXT_pipeline_robustness",{"number":10075,"type":1134,"author":9720,"provisional":9377,"ratified":9729,"contact":10076,"extension":10077,"proposal":9377},156,"Daniel Koch @dgkoch","VK_EXT_post_depth_coverage",{"number":10079,"type":1134,"author":9650,"provisional":9377,"depends":9924,"ratified":9722,"contact":10080,"extension":10081,"proposal":6827},362,"Lionel Duc @nvlduc","VK_EXT_present_mode_fifo_latest_ready",{"number":10083,"type":1134,"author":9650,"provisional":9377,"depends":9605,"ratified":9722,"specialuse":9673,"contact":9798,"extension":10084,"proposal":9377},357,"VK_EXT_primitive_topology_list_restart",{"number":10086,"type":1134,"author":9650,"provisional":9377,"depends":8138,"ratified":9722,"specialuse":9673,"contact":9798,"extension":10087,"proposal":6827},383,"VK_EXT_primitives_generated_query",{"number":10089,"type":1134,"author":9720,"promotedto":9708,"provisional":9377,"depends":9605,"contact":10090,"extension":10091,"proposal":9377},296,"Matthew Rusch @mattruschnv","VK_EXT_private_data",{"number":10093,"type":1134,"author":9650,"provisional":9377,"depends":9605,"ratified":9722,"specialuse":9673,"contact":10094,"extension":10095,"proposal":9377},255,"Jesse Hall @jessehall","VK_EXT_provoking_vertex",{"number":10097,"type":1134,"author":9650,"provisional":9377,"depends":9866,"ratified":9729,"contact":9867,"extension":10098,"proposal":9377},127,"VK_EXT_queue_family_foreign",{"number":10100,"type":1134,"author":9682,"provisional":9377,"depends":9605,"ratified":9722,"contact":9689,"extension":9688,"proposal":6827},464,{"number":10102,"type":1134,"author":9650,"provisional":9377,"depends":10103,"ratified":9722,"contact":9689,"extension":10104,"proposal":9377},345,"VK_KHR_sampler_ycbcr_conversion,VK_VERSION_1_1","VK_EXT_rgba10x6_formats",{"number":10106,"type":1134,"author":9650,"provisional":9377,"depends":9605,"ratified":9729,"contact":9770,"extension":10107,"proposal":9377},287,"VK_EXT_robustness2",{"number":10109,"type":1134,"author":9589,"provisional":9377,"depends":9605,"ratified":9729,"contact":9601,"extension":10110,"proposal":9377},144,"VK_EXT_sample_locations",{"number":10112,"type":1134,"author":9720,"promotedto":9811,"provisional":9377,"depends":9605,"contact":9742,"extension":10113,"proposal":9377},131,"VK_EXT_sampler_filter_minmax",{"number":10115,"type":1134,"author":9650,"promotedto":9811,"provisional":9377,"depends":9605,"contact":9592,"extension":10116,"proposal":9377},222,"VK_EXT_scalar_block_layout",{"number":10118,"type":1134,"author":9650,"promotedto":9811,"provisional":9377,"contact":9601,"extension":10119,"proposal":9377},247,"VK_EXT_separate_stencil_usage",{"number":10121,"type":1134,"author":9720,"provisional":9377,"depends":9605,"ratified":9729,"contact":9859,"extension":10122,"proposal":9377},261,"VK_EXT_shader_atomic_float",{"number":10124,"type":1134,"author":9650,"provisional":9377,"depends":10122,"ratified":9722,"contact":9994,"extension":10125,"proposal":9377},274,"VK_EXT_shader_atomic_float2",{"number":10127,"type":1134,"author":9650,"promotedto":9708,"provisional":9377,"depends":9605,"ratified":9709,"contact":9742,"extension":10128,"proposal":9377},277,"VK_EXT_shader_demote_to_helper_invocation",{"number":10130,"type":1134,"author":9650,"provisional":9377,"depends":9605,"ratified":9729,"contact":9592,"extension":10131,"proposal":9377},235,"VK_EXT_shader_image_atomic_int64",{"number":10133,"type":1134,"author":9650,"provisional":9377,"depends":10134,"ratified":9722,"contact":10060,"extension":10135,"proposal":6827},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":10137,"type":1134,"author":9650,"provisional":9377,"depends":9852,"ratified":9722,"contact":10138,"extension":10139,"proposal":6827},483,"Daniel Story @daniel-story","VK_EXT_shader_object",{"number":10141,"type":1134,"author":9650,"provisional":9377,"ratified":9722,"contact":9698,"extension":10142,"proposal":6827},565,"VK_EXT_shader_replicated_composites",{"number":10144,"type":1134,"author":9650,"provisional":9377,"ratified":9729,"contact":9616,"extension":10145,"proposal":9377},141,"VK_EXT_shader_stencil_export",{"number":10147,"type":1134,"author":9720,"deprecatedby":9811,"provisional":9377,"contact":10076,"extension":10148,"proposal":9377},65,"VK_EXT_shader_subgroup_ballot",{"number":10150,"type":1134,"author":9720,"deprecatedby":9704,"provisional":9377,"contact":10076,"extension":10151,"proposal":9377},66,"VK_EXT_shader_subgroup_vote",{"number":10153,"type":1134,"author":9650,"provisional":9377,"depends":9708,"ratified":9722,"contact":9689,"extension":10154,"proposal":6827},396,"VK_EXT_shader_tile_image",{"number":10156,"type":1134,"author":9720,"promotedto":9811,"provisional":9377,"contact":10076,"extension":10157,"proposal":9377},163,"VK_EXT_shader_viewport_index_layer",{"number":10159,"type":1134,"author":9650,"promotedto":9708,"provisional":9377,"depends":9704,"ratified":9709,"contact":10160,"extension":10161,"proposal":9377},226,"Neil Henning @sheredom","VK_EXT_subgroup_size_control",{"number":10163,"type":1134,"author":9650,"provisional":9377,"depends":9605,"ratified":9722,"contact":10164,"extension":10165,"proposal":6827},459,"Ting Wei @catweiting","VK_EXT_subpass_merge_feedback",{"number":10167,"type":9714,"author":9650,"provisional":9377,"depends":10168,"ratified":9722,"contact":9798,"extension":10169,"proposal":6827},275,"VK_KHR_surface+VK_KHR_get_surface_capabilities2","VK_EXT_surface_maintenance1",{"number":10171,"type":9714,"author":9778,"provisional":9377,"depends":9836,"ratified":9729,"contact":9779,"extension":10172,"proposal":9377},105,"VK_EXT_swapchain_colorspace",{"number":10174,"type":1134,"author":9650,"provisional":9377,"depends":10175,"ratified":9722,"contact":9798,"extension":10176,"proposal":6827},276,"VK_KHR_swapchain+VK_EXT_surface_maintenance1+(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)","VK_EXT_swapchain_maintenance1",{"number":10178,"type":1134,"author":9650,"promotedto":9708,"provisional":9377,"depends":9605,"ratified":9709,"contact":9742,"extension":10179,"proposal":9377},282,"VK_EXT_texel_buffer_alignment",{"number":10181,"type":1134,"author":9682,"promotedto":9708,"provisional":9377,"depends":9605,"ratified":9709,"contact":9689,"extension":10182,"proposal":9377},67,"VK_EXT_texture_compression_astc_hdr",{"number":10184,"type":1134,"author":9650,"promotedto":9708,"provisional":9377,"contact":9592,"extension":10185,"proposal":9377},246,"VK_EXT_tooling_info",{"number":9473,"type":1134,"author":9720,"provisional":9377,"depends":9605,"ratified":9722,"specialuse":10187,"contact":9747,"extension":8138,"proposal":9377},"glemulation,d3demulation,devtools",{"number":10189,"type":1134,"author":9778,"provisional":9377,"ratified":9722,"contact":10190,"extension":10191,"proposal":9377},161,"Cort Stratton @cdwfs","VK_EXT_validation_cache",{"number":10193,"type":9714,"author":10194,"deprecatedby":9974,"provisional":9377,"ratified":9722,"specialuse":9558,"contact":10195,"extension":10196,"proposal":9377},248,"LUNARG","Karl Schultz @karl-lunarg","VK_EXT_validation_features",{"number":10198,"type":9714,"author":9778,"deprecatedby":9974,"provisional":9377,"specialuse":9558,"contact":10199,"extension":10200,"proposal":9377},62,"Tobin Ehlis @tobine","VK_EXT_validation_flags",{"number":10202,"type":1134,"author":9720,"promotedto":10203,"provisional":9377,"depends":9605,"contact":9763,"extension":10204,"proposal":9377},191,"VK_KHR_vertex_attribute_divisor","VK_EXT_vertex_attribute_divisor",{"number":10206,"type":1134,"author":9650,"provisional":9377,"depends":9605,"contact":9747,"extension":10207,"proposal":9377},609,"VK_EXT_vertex_attribute_robustness",{"number":10209,"type":1134,"author":9650,"provisional":9377,"depends":9605,"ratified":9729,"contact":9747,"extension":9980,"proposal":9377},353,{"number":10211,"type":1134,"author":9650,"promotedto":9708,"provisional":9377,"depends":10103,"ratified":9709,"contact":10212,"extension":10213,"proposal":9377},331,"Tony Zlatinski @tzlatinski","VK_EXT_ycbcr_2plane_444_formats",{"number":10215,"type":1134,"author":9650,"provisional":9377,"depends":10103,"ratified":9729,"contact":9747,"extension":10216,"proposal":9377},253,"VK_EXT_ycbcr_image_arrays",{"number":10218,"type":1134,"author":10219,"provisional":9377,"depends":10220,"platform":10221,"contact":10222,"extension":10223,"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":10225,"type":1134,"author":10219,"provisional":9377,"depends":10226,"platform":10221,"contact":10222,"extension":10227,"proposal":9377},365,"(VK_KHR_external_memory_capabilities+VK_KHR_external_memory),VK_VERSION_1_1","VK_FUCHSIA_external_memory",{"number":10229,"type":1134,"author":10219,"provisional":9377,"depends":10230,"platform":10221,"contact":10222,"extension":10231,"proposal":9377},366,"VK_KHR_external_semaphore_capabilities+VK_KHR_external_semaphore","VK_FUCHSIA_external_semaphore",{"number":10233,"type":9714,"author":10219,"provisional":9377,"depends":9836,"platform":10221,"contact":10234,"extension":10235,"proposal":9377},215,"Craig Stout @cdotstout","VK_FUCHSIA_imagepipe_surface",{"number":10237,"type":1134,"author":10238,"provisional":9377,"depends":10239,"platform":10240,"contact":10055,"extension":10241,"proposal":9377},192,"GGP","VK_KHR_swapchain+VK_GGP_stream_descriptor_surface","ggp","VK_GGP_frame_token",{"number":9556,"type":9714,"author":10238,"provisional":9377,"depends":9836,"platform":10240,"contact":10055,"extension":10243,"proposal":9377},"VK_GGP_stream_descriptor_surface",{"number":10245,"type":1134,"author":9778,"provisional":9377,"contact":10246,"extension":10247,"proposal":9377},225,"Hai Nguyen @chaoticbob","VK_GOOGLE_decorate_string",{"number":10249,"type":1134,"author":9778,"provisional":9377,"depends":9924,"contact":10250,"extension":10251,"proposal":9377},93,"Ian Elliott @ianelliottus","VK_GOOGLE_display_timing",{"number":10253,"type":1134,"author":9778,"provisional":9377,"contact":10246,"extension":10254,"proposal":9377},224,"VK_GOOGLE_hlsl_functionality1",{"number":10256,"type":9714,"author":9778,"provisional":9377,"depends":9836,"specialuse":9673,"contact":9798,"extension":10257,"proposal":6827},434,"VK_GOOGLE_surfaceless_query",{"number":10259,"type":1134,"author":9778,"provisional":9377,"contact":10260,"extension":10261,"proposal":9377},290,"Kaye Mason @chaleur","VK_GOOGLE_user_type",{"number":10263,"type":1134,"author":10264,"provisional":9377,"depends":9605,"contact":10265,"extension":10266,"proposal":6827},405,"HUAWEI","Yuchang Wang @richard_Wang2","VK_HUAWEI_cluster_culling_shader",{"number":10268,"type":1134,"author":10264,"provisional":9377,"depends":10269,"contact":10270,"extension":10271,"proposal":9377},591,"(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_KHR_swapchain+VK_EXT_hdr_metadata","Zehui Lin @bactlink","VK_HUAWEI_hdr_vivid",{"number":10273,"type":1134,"author":10274,"provisional":9377,"depends":10275,"contact":10276,"extension":10277,"proposal":6827},371,"Huawei","VK_KHR_ray_tracing_pipeline+(VK_KHR_synchronization2,VK_VERSION_1_3)","Pan Gao @PanGao-h","VK_HUAWEI_invocation_mask",{"number":10279,"type":1134,"author":10264,"provisional":9377,"depends":10280,"contact":10276,"extension":10281,"proposal":9377},370,"((VK_KHR_create_renderpass2,VK_VERSION_1_2)+VK_KHR_synchronization2),VK_VERSION_1_3","VK_HUAWEI_subpass_shading",{"number":4744,"type":1134,"author":10071,"provisional":9377,"contact":9592,"extension":10283,"proposal":9377},"VK_IMG_filter_cubic",{"number":10285,"type":1134,"author":10071,"deprecatedby":10286,"provisional":9377,"contact":10287,"extension":10288,"proposal":9377},55,null,"Stuart Smith","VK_IMG_format_pvrtc",{"number":10290,"type":1134,"author":10071,"provisional":9377,"depends":9605,"specialuse":9673,"contact":9902,"extension":10291,"proposal":9377},111,"VK_IMG_relaxed_line_rasterization",{"number":10293,"type":1134,"author":10294,"provisional":9377,"specialuse":9600,"contact":10295,"extension":10296,"proposal":9377},211,"INTEL","Lionel Landwerlin @llandwerlin","VK_INTEL_performance_query",{"number":10298,"type":1134,"author":10294,"provisional":9377,"depends":9605,"contact":10299,"extension":10300,"proposal":9377},210,"Ian Romanick @ianromanick","VK_INTEL_shader_integer_functions2",{"number":10302,"type":1134,"author":10303,"promotedto":9704,"provisional":9377,"depends":10304,"ratified":9722,"contact":9689,"extension":10305,"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":10307,"type":1134,"author":10303,"promotedto":9811,"provisional":9377,"depends":10304,"ratified":9722,"contact":10308,"extension":10309,"proposal":9377},178,"Alexander Galazin @alegal-arm","VK_KHR_8bit_storage",{"number":10311,"type":1134,"author":10303,"provisional":9377,"depends":10312,"ratified":9722,"contact":10076,"extension":10313,"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":9714,"author":10303,"provisional":9377,"depends":9836,"platform":9672,"ratified":9722,"contact":9679,"extension":10315,"proposal":9377},"VK_KHR_android_surface",{"number":10317,"type":1134,"author":10303,"promotedto":9704,"provisional":9377,"ratified":9722,"contact":9592,"extension":10318,"proposal":9377},158,"VK_KHR_bind_memory2",{"number":10320,"type":1134,"author":10303,"promotedto":9811,"provisional":9377,"depends":10321,"ratified":9722,"contact":9742,"extension":9751,"proposal":9377},258,"(VK_KHR_get_physical_device_properties2+VK_KHR_device_group),VK_VERSION_1_1",{"number":10323,"type":1134,"author":10303,"provisional":9377,"depends":9605,"ratified":9729,"contact":9969,"extension":9755,"proposal":9377},544,{"number":10325,"type":1134,"author":10303,"provisional":9377,"depends":9605,"ratified":9722,"contact":10326,"extension":10327,"proposal":6827},512,"Jean-Noe Morissette @MagicPoncho","VK_KHR_compute_shader_derivatives",{"number":10329,"type":1134,"author":10303,"provisional":9377,"depends":9605,"ratified":9722,"contact":9698,"extension":10330,"proposal":6827},507,"VK_KHR_cooperative_matrix",{"number":10332,"type":1134,"author":10303,"promotedto":9708,"provisional":9377,"depends":9605,"ratified":9729,"contact":9884,"extension":10333,"proposal":9377},338,"VK_KHR_copy_commands2",{"number":10335,"type":1134,"author":10303,"promotedto":9811,"provisional":9377,"depends":10336,"ratified":9722,"contact":10337,"extension":10338,"proposal":9377},110,"(VK_KHR_multiview+VK_KHR_maintenance2),VK_VERSION_1_1","Tobias Hector @tobias","VK_KHR_create_renderpass2",{"number":10340,"type":1134,"author":10303,"promotedto":9704,"provisional":9377,"depends":10341,"ratified":9722,"contact":9723,"extension":10342,"proposal":9377},128,"VK_KHR_get_memory_requirements2,VK_VERSION_1_1","VK_KHR_dedicated_allocation",{"number":10344,"type":1134,"author":10303,"provisional":9377,"ratified":9722,"contact":10345,"extension":10346,"proposal":9377},269,"Josh Barczak @jbarczak","VK_KHR_deferred_host_operations",{"number":10348,"type":1134,"author":10303,"provisional":9377,"depends":9605,"ratified":9722,"contact":9794,"extension":9793,"proposal":9377},605,{"number":10350,"type":1134,"author":10303,"promotedto":9811,"provisional":9377,"depends":10351,"ratified":9722,"contact":10352,"extension":10353,"proposal":9377},200,"VK_KHR_create_renderpass2,VK_VERSION_1_2","Jan-Harald Fredriksen @janharald","VK_KHR_depth_stencil_resolve",{"number":10355,"type":1134,"author":10303,"promotedto":9704,"provisional":9377,"ratified":9722,"contact":10356,"extension":10357,"proposal":9377},86,"Markus Tavenrath @mtavenrath","VK_KHR_descriptor_update_template",{"number":10359,"type":1134,"author":10303,"promotedto":9704,"provisional":9377,"depends":10360,"ratified":9722,"contact":9742,"extension":10361,"proposal":9377},61,"VK_KHR_device_group_creation","VK_KHR_device_group",{"number":10363,"type":9714,"author":10303,"promotedto":9704,"provisional":9377,"ratified":9722,"contact":9742,"extension":10360,"proposal":9377},71,{"number":599,"type":9714,"author":10303,"provisional":9377,"depends":9836,"ratified":9729,"contact":10365,"extension":9833,"proposal":9377},"James Jones @cubanismo,Norbert Nopper @FslNopper",{"number":650,"type":1134,"author":10303,"provisional":9377,"depends":10367,"ratified":9729,"contact":9723,"extension":10368,"proposal":9377},"VK_KHR_swapchain+VK_KHR_display","VK_KHR_display_swapchain",{"number":10370,"type":1134,"author":10303,"promotedto":9811,"provisional":9377,"ratified":9722,"contact":9747,"extension":9613,"proposal":9377},170,{"number":10372,"type":1134,"author":10303,"promotedto":9811,"provisional":9377,"depends":9605,"ratified":9722,"contact":9601,"extension":10373,"proposal":9377},197,"VK_KHR_driver_properties",{"number":9537,"type":1134,"author":10303,"promotedto":9708,"provisional":9377,"depends":10375,"ratified":9722,"contact":9592,"extension":10376,"proposal":6827},"((VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_KHR_depth_stencil_resolve),VK_VERSION_1_2","VK_KHR_dynamic_rendering",{"number":10378,"type":1134,"author":9589,"promotedto":9932,"provisional":9377,"depends":10379,"ratified":9722,"contact":9592,"extension":10380,"proposal":6827},233,"VK_KHR_dynamic_rendering,VK_VERSION_1_3","VK_KHR_dynamic_rendering_local_read",{"number":10382,"type":1134,"author":10303,"promotedto":9704,"provisional":9377,"depends":10383,"ratified":9722,"contact":9679,"extension":10384,"proposal":9377},114,"VK_KHR_external_fence_capabilities","VK_KHR_external_fence",{"number":10386,"type":9714,"author":10303,"promotedto":9704,"provisional":9377,"depends":9605,"ratified":9722,"contact":9679,"extension":10383,"proposal":9377},113,{"number":10388,"type":1134,"author":10303,"provisional":9377,"depends":10389,"ratified":9729,"contact":9679,"extension":10390,"proposal":9377},116,"VK_KHR_external_fence,VK_VERSION_1_1","VK_KHR_external_fence_fd",{"number":10392,"type":1134,"author":10303,"provisional":9377,"depends":10384,"platform":9907,"ratified":9722,"contact":9679,"extension":10393,"proposal":9377},115,"VK_KHR_external_fence_win32",{"number":10395,"type":1134,"author":10303,"promotedto":9704,"provisional":9377,"depends":10396,"ratified":9722,"contact":9723,"extension":10397,"proposal":9377},73,"VK_KHR_external_memory_capabilities,VK_VERSION_1_1","VK_KHR_external_memory",{"number":10399,"type":9714,"author":10303,"promotedto":9704,"provisional":9377,"depends":9605,"ratified":9722,"contact":9723,"extension":10400,"proposal":9377},72,"VK_KHR_external_memory_capabilities",{"number":10402,"type":1134,"author":10303,"provisional":9377,"depends":9866,"ratified":9729,"contact":9723,"extension":9871,"proposal":9377},75,{"number":10404,"type":1134,"author":10303,"provisional":9377,"depends":9866,"platform":9907,"ratified":9722,"contact":9723,"extension":10405,"proposal":9377},74,"VK_KHR_external_memory_win32",{"number":10407,"type":1134,"author":10303,"promotedto":9704,"provisional":9377,"depends":10408,"ratified":9722,"contact":9723,"extension":10409,"proposal":9377},78,"VK_KHR_external_semaphore_capabilities","VK_KHR_external_semaphore",{"number":10411,"type":9714,"author":10303,"promotedto":9704,"provisional":9377,"depends":9605,"ratified":9722,"contact":9723,"extension":10408,"proposal":9377},77,{"number":10413,"type":1134,"author":10303,"provisional":9377,"depends":10414,"ratified":9729,"contact":9723,"extension":10415,"proposal":9377},80,"VK_KHR_external_semaphore,VK_VERSION_1_1","VK_KHR_external_semaphore_fd",{"number":10417,"type":1134,"author":10303,"provisional":9377,"depends":10409,"platform":9907,"ratified":9722,"contact":9723,"extension":10418,"proposal":9377},79,"VK_KHR_external_semaphore_win32",{"number":10420,"type":1134,"author":10303,"promotedto":9708,"provisional":9377,"depends":9605,"ratified":9722,"contact":10295,"extension":10421,"proposal":9377},361,"VK_KHR_format_feature_flags2",{"number":10423,"type":1134,"author":10303,"provisional":9377,"depends":9605,"ratified":9722,"contact":9596,"extension":10424,"proposal":6827},323,"VK_KHR_fragment_shader_barycentric",{"number":10426,"type":1134,"author":10303,"provisional":9377,"depends":10427,"ratified":9729,"contact":9592,"extension":10428,"proposal":6827},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":10430,"type":9714,"author":10303,"provisional":9377,"depends":9833,"ratified":9729,"contact":9723,"extension":10431,"proposal":9377},122,"VK_KHR_get_display_properties2",{"number":10433,"type":1134,"author":10303,"promotedto":9704,"provisional":9377,"ratified":9722,"contact":9994,"extension":10434,"proposal":9377},147,"VK_KHR_get_memory_requirements2",{"number":10436,"type":9714,"author":10303,"promotedto":9704,"provisional":9377,"ratified":9722,"contact":9742,"extension":10437,"proposal":9377},60,"VK_KHR_get_physical_device_properties2",{"number":10439,"type":9714,"author":10303,"provisional":9377,"depends":9836,"ratified":9729,"contact":9723,"extension":10440,"proposal":9377},120,"VK_KHR_get_surface_capabilities2",{"number":10442,"type":1134,"author":10303,"promotedto":9932,"provisional":9377,"depends":9605,"ratified":9729,"contact":9592,"extension":9911,"proposal":9377},189,{"number":10444,"type":1134,"author":10303,"promotedto":9811,"provisional":9377,"ratified":9722,"contact":9994,"extension":10445,"proposal":9377},148,"VK_KHR_image_format_list",{"number":10447,"type":1134,"author":10303,"promotedto":9811,"provisional":9377,"depends":10448,"ratified":9722,"contact":10337,"extension":10449,"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":10451,"type":1134,"author":10303,"provisional":9377,"depends":9924,"ratified":9729,"contact":10250,"extension":10452,"proposal":9377},85,"VK_KHR_incremental_present",{"number":10454,"type":1134,"author":10303,"promotedto":9932,"provisional":9377,"depends":9605,"ratified":9729,"contact":9747,"extension":9964,"proposal":9377},534,{"number":10456,"type":1134,"author":10303,"promotedto":9932,"provisional":9377,"depends":9605,"ratified":9729,"contact":9747,"extension":9984,"proposal":9377},535,{"number":10458,"type":1134,"author":10303,"promotedto":9932,"provisional":9377,"ratified":9722,"contact":9798,"extension":9989,"proposal":6827},527,{"number":10460,"type":1134,"author":10303,"promotedto":9704,"provisional":9377,"ratified":9722,"contact":9747,"extension":9633,"proposal":9377},70,{"number":10462,"type":1134,"author":10303,"promotedto":9704,"provisional":9377,"ratified":9722,"contact":10463,"extension":10464,"proposal":9377},118,"Michael Worcester @michaelworcester","VK_KHR_maintenance2",{"number":10466,"type":1134,"author":10303,"promotedto":9704,"provisional":9377,"depends":9605,"ratified":9722,"contact":9742,"extension":10467,"proposal":9377},169,"VK_KHR_maintenance3",{"number":10469,"type":1134,"author":10303,"promotedto":9708,"provisional":9377,"depends":9704,"ratified":9722,"contact":9747,"extension":10470,"proposal":9377},414,"VK_KHR_maintenance4",{"number":10472,"type":1134,"author":10303,"promotedto":9932,"provisional":9377,"depends":10473,"ratified":9722,"contact":10474,"extension":10475,"proposal":6827},471,"(VK_VERSION_1_1+VK_KHR_dynamic_rendering),VK_VERSION_1_3","Stu Smith @stu-s","VK_KHR_maintenance5",{"number":10477,"type":1134,"author":10303,"promotedto":9932,"provisional":9377,"depends":9704,"ratified":9722,"contact":10478,"extension":10479,"proposal":6827},546,"Jon Leech @oddhack","VK_KHR_maintenance6",{"number":10481,"type":1134,"author":10303,"provisional":9377,"depends":9704,"ratified":9722,"contact":9735,"extension":10482,"proposal":6827},563,"VK_KHR_maintenance7",{"number":10484,"type":1134,"author":10303,"provisional":9377,"depends":9704,"ratified":9722,"contact":9735,"extension":10485,"proposal":6827},575,"VK_KHR_maintenance8",{"number":10487,"type":1134,"author":10303,"promotedto":9932,"provisional":9377,"ratified":9722,"contact":9994,"extension":10488,"proposal":6827},272,"VK_KHR_map_memory2",{"number":10490,"type":1134,"author":10303,"promotedto":9704,"provisional":9377,"depends":9605,"ratified":9722,"contact":9742,"extension":10491,"proposal":9377},54,"VK_KHR_multiview",{"extension":10493,"proposal":9377},"VK_KHR_object_refresh",{"number":10495,"type":1134,"author":10303,"provisional":9377,"depends":9605,"ratified":9729,"specialuse":9600,"contact":10496,"extension":10497,"proposal":9377},117,"Alon Or-bach @alonorbach","VK_KHR_performance_query",{"number":10499,"type":1134,"author":10303,"provisional":9377,"depends":10500,"ratified":9722,"contact":10474,"extension":10501,"proposal":6827},484,"VK_KHR_maintenance5,VK_VERSION_1_4","VK_KHR_pipeline_binary",{"number":10503,"type":1134,"author":10303,"provisional":9377,"depends":9605,"ratified":9722,"specialuse":9600,"contact":9994,"extension":10504,"proposal":9377},270,"VK_KHR_pipeline_executable_properties",{"number":10506,"type":1134,"author":10303,"provisional":9377,"ratified":9722,"contact":10005,"extension":10507,"proposal":9377},291,"VK_KHR_pipeline_library",{"number":10509,"type":9714,"author":10303,"provisional":9377,"ratified":9722,"contact":10510,"extension":10511,"proposal":9377},395,"Charles Giessen @charles-lunarg","VK_KHR_portability_enumeration",{"number":10513,"type":1134,"author":10303,"provisional":6827,"depends":9605,"platform":9591,"ratified":9722,"contact":10009,"extension":10514,"proposal":9377},164,"VK_KHR_portability_subset",{"number":10516,"type":1134,"author":10303,"provisional":9377,"depends":10517,"ratified":9722,"contact":10518,"extension":10519,"proposal":9377},295,"VK_KHR_swapchain+VK_KHR_get_physical_device_properties2,VK_VERSION_1_1","Keith Packard @keithp","VK_KHR_present_id",{"number":10521,"type":1134,"author":10303,"provisional":9377,"depends":10522,"ratified":9722,"contact":10518,"extension":10523,"proposal":9377},249,"VK_KHR_swapchain+VK_KHR_present_id","VK_KHR_present_wait",{"number":10525,"type":1134,"author":10303,"promotedto":9932,"provisional":9377,"depends":9605,"ratified":9722,"contact":9742,"extension":10526,"proposal":9377},81,"VK_KHR_push_descriptor",{"number":10528,"type":1134,"author":10303,"provisional":9377,"depends":10529,"ratified":9722,"contact":10076,"extension":10530,"proposal":9377},349,"(VK_KHR_spirv_1_4,VK_VERSION_1_2)+VK_KHR_acceleration_structure","VK_KHR_ray_query",{"number":10532,"type":1134,"author":10303,"provisional":9377,"depends":10313,"ratified":9722,"contact":10076,"extension":6112,"proposal":9377},387,{"number":10534,"type":1134,"author":10303,"provisional":9377,"depends":10529,"ratified":9722,"contact":10076,"extension":10535,"proposal":9377},348,"VK_KHR_ray_tracing_pipeline",{"number":10537,"type":1134,"author":10303,"provisional":9377,"depends":10313,"ratified":9722,"contact":10538,"extension":10539,"proposal":6827},482,"Eric Werness","VK_KHR_ray_tracing_position_fetch",{"number":10541,"type":1134,"author":10303,"promotedto":9704,"provisional":9377,"ratified":9722,"contact":10542,"extension":10543,"proposal":9377},145,"John Kessenich @johnkslang","VK_KHR_relaxed_block_layout",{"number":4735,"type":1134,"author":10303,"promotedto":9811,"provisional":9377,"ratified":9722,"contact":9592,"extension":10545,"proposal":9377},"VK_KHR_sampler_mirror_clamp_to_edge",{"number":10547,"type":1134,"author":10303,"promotedto":9704,"provisional":9377,"depends":10548,"ratified":9722,"contact":10549,"extension":10550,"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":10552,"type":1134,"author":10303,"promotedto":9811,"provisional":9377,"depends":10427,"ratified":9722,"contact":9747,"extension":10553,"proposal":9377},242,"VK_KHR_separate_depth_stencil_layouts",{"number":10555,"type":1134,"author":10303,"promotedto":9811,"provisional":9377,"depends":9605,"ratified":9722,"contact":10556,"extension":10557,"proposal":9377},181,"Aaron Hagan @ahagan","VK_KHR_shader_atomic_int64",{"number":10559,"type":1134,"author":10303,"provisional":9377,"depends":9605,"ratified":9722,"contact":9592,"extension":10560,"proposal":6827},142,"VK_KHR_shader_bfloat16",{"number":10562,"type":1134,"author":10303,"provisional":9377,"depends":9605,"ratified":9729,"contact":10556,"extension":10563,"proposal":9377},182,"VK_KHR_shader_clock",{"number":10565,"type":1134,"author":10303,"promotedto":9704,"provisional":9377,"ratified":9722,"contact":10076,"extension":10566,"proposal":9377},64,"VK_KHR_shader_draw_parameters",{"number":10568,"type":1134,"author":10303,"promotedto":9932,"provisional":9377,"depends":9605,"ratified":9722,"contact":9698,"extension":10569,"proposal":6827},545,"VK_KHR_shader_expect_assume",{"number":10571,"type":1134,"author":10303,"promotedto":9811,"provisional":9377,"depends":9605,"ratified":9722,"contact":10308,"extension":9619,"proposal":9377},83,{"number":10573,"type":1134,"author":10303,"promotedto":9811,"provisional":9377,"depends":9605,"ratified":9722,"contact":10308,"extension":10574,"proposal":9377},198,"VK_KHR_shader_float_controls",{"number":10576,"type":1134,"author":10303,"promotedto":9932,"provisional":9377,"depends":10577,"ratified":9722,"contact":9794,"extension":10578,"proposal":6827},529,"VK_VERSION_1_1+VK_KHR_shader_float_controls","VK_KHR_shader_float_controls2",{"number":10580,"type":1134,"author":10303,"promotedto":9708,"provisional":9377,"depends":9605,"ratified":9722,"contact":9698,"extension":10581,"proposal":6827},281,"VK_KHR_shader_integer_dot_product",{"number":10583,"type":1134,"author":10303,"provisional":9377,"depends":9704,"ratified":9722,"contact":10584,"extension":10585,"proposal":6827},435,"Alan Baker @alan-baker","VK_KHR_shader_maximal_reconvergence",{"number":10587,"type":1134,"author":10303,"promotedto":9708,"provisional":9377,"ratified":9722,"contact":9775,"extension":10588,"proposal":9377},294,"VK_KHR_shader_non_semantic_info",{"number":10590,"type":1134,"author":10303,"provisional":9377,"depends":10591,"ratified":9722,"contact":9592,"extension":10592,"proposal":6827},236,"((VK_VERSION_1_1+VK_KHR_vulkan_memory_model),VK_VERSION_1_2)+VK_KHR_shader_maximal_reconvergence","VK_KHR_shader_quad_control",{"number":10594,"type":1134,"author":10303,"provisional":9377,"ratified":9722,"contact":10595,"extension":10596,"proposal":6827},559,"Nathan Gauër @Keenuts","VK_KHR_shader_relaxed_extended_instruction",{"number":10598,"type":1134,"author":10303,"promotedto":9811,"provisional":9377,"depends":9704,"ratified":9722,"contact":10160,"extension":10599,"proposal":9377},176,"VK_KHR_shader_subgroup_extended_types",{"number":10601,"type":1134,"author":10303,"promotedto":9932,"provisional":9377,"ratified":9722,"contact":9698,"extension":10602,"proposal":6827},417,"VK_KHR_shader_subgroup_rotate",{"number":10604,"type":1134,"author":10303,"provisional":9377,"depends":9704,"ratified":9722,"contact":10584,"extension":10605,"proposal":9377},324,"VK_KHR_shader_subgroup_uniform_control_flow",{"number":10607,"type":1134,"author":10303,"promotedto":9708,"provisional":9377,"depends":9605,"ratified":9729,"contact":9679,"extension":10608,"proposal":9377},216,"VK_KHR_shader_terminate_invocation",{"number":10610,"type":1134,"author":10303,"provisional":9377,"depends":10611,"ratified":9729,"contact":10496,"extension":10612,"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":10614,"type":1134,"author":10303,"promotedto":9811,"provisional":9377,"depends":10577,"ratified":9722,"contact":9679,"extension":10615,"proposal":9377},237,"VK_KHR_spirv_1_4",{"number":10617,"type":1134,"author":10303,"promotedto":9704,"provisional":9377,"ratified":9722,"contact":10308,"extension":10618,"proposal":9377},132,"VK_KHR_storage_buffer_storage_class",{"number":569,"type":9714,"author":10303,"provisional":9377,"ratified":9729,"contact":10620,"extension":9836,"proposal":9377},"James Jones @cubanismo,Ian Elliott @ianelliottus",{"number":10622,"type":9714,"author":10303,"provisional":9377,"depends":10623,"ratified":9722,"contact":10624,"extension":10625,"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":10303,"provisional":9377,"depends":9836,"ratified":9729,"contact":10620,"extension":9924,"proposal":9377},{"number":10628,"type":1134,"author":10303,"provisional":9377,"depends":10629,"ratified":9729,"contact":9601,"extension":10630,"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":10632,"type":1134,"author":10303,"promotedto":9708,"provisional":9377,"depends":9605,"ratified":9729,"contact":9592,"extension":10633,"proposal":9377},315,"VK_KHR_synchronization2",{"number":10635,"type":1134,"author":10303,"promotedto":9811,"provisional":9377,"depends":9605,"ratified":9722,"contact":9994,"extension":10636,"proposal":9377},208,"VK_KHR_timeline_semaphore",{"number":10638,"type":1134,"author":10303,"promotedto":9811,"provisional":9377,"depends":9605,"ratified":9722,"contact":9794,"extension":10639,"proposal":9377},254,"VK_KHR_uniform_buffer_standard_layout",{"number":10641,"type":1134,"author":10303,"promotedto":9704,"provisional":9377,"depends":10304,"ratified":9722,"contact":9679,"extension":10642,"proposal":9377},121,"VK_KHR_variable_pointers",{"number":10644,"type":1134,"author":10303,"promotedto":9932,"provisional":9377,"depends":9605,"ratified":9729,"contact":9798,"extension":10203,"proposal":6827},526,{"number":10646,"type":1134,"author":10303,"provisional":9377,"depends":10647,"ratified":9722,"contact":9969,"extension":10648,"proposal":6827},513,"VK_KHR_video_decode_queue","VK_KHR_video_decode_av1",{"number":9521,"type":1134,"author":10303,"provisional":9377,"depends":10647,"ratified":9722,"contact":10650,"extension":10651,"proposal":6827},"peter.fang@amd.com","VK_KHR_video_decode_h264",{"number":10653,"type":1134,"author":10303,"provisional":9377,"depends":10647,"ratified":9722,"contact":10650,"extension":10654,"proposal":6827},188,"VK_KHR_video_decode_h265",{"number":9457,"type":1134,"author":10303,"provisional":9377,"depends":10656,"ratified":9722,"contact":10657,"extension":10647,"proposal":6827},"VK_KHR_video_queue+(VK_KHR_synchronization2,VK_VERSION_1_3)","jake.beju@amd.com",{"number":10659,"type":1134,"author":10303,"provisional":9377,"depends":10660,"ratified":9722,"contact":9969,"extension":10661,"proposal":6827},514,"VK_KHR_video_encode_queue","VK_KHR_video_encode_av1",{"number":9513,"type":1134,"author":10303,"provisional":9377,"depends":10660,"ratified":9722,"contact":10663,"extension":10664,"proposal":6827},"Ahmed Abdelkhalek @aabdelkh","VK_KHR_video_encode_h264",{"number":9517,"type":1134,"author":10303,"provisional":9377,"depends":10660,"ratified":9722,"contact":10663,"extension":10666,"proposal":6827},"VK_KHR_video_encode_h265",{"number":10668,"type":1134,"author":10303,"provisional":9377,"depends":10669,"ratified":9722,"contact":10663,"extension":10670,"proposal":6827},554,"VK_KHR_video_encode_queue+(VK_KHR_format_feature_flags2,VK_VERSION_1_3)","VK_KHR_video_encode_quantization_map",{"number":10672,"type":1134,"author":10303,"provisional":9377,"depends":10656,"ratified":9722,"contact":10663,"extension":10660,"proposal":6827},300,{"number":10674,"type":1134,"author":10303,"provisional":9377,"depends":10675,"ratified":9722,"contact":9969,"extension":10676,"proposal":6827},516,"VK_KHR_video_queue","VK_KHR_video_maintenance1",{"number":10678,"type":1134,"author":10303,"provisional":9377,"depends":10675,"ratified":9722,"contact":9969,"extension":10679,"proposal":6827},587,"VK_KHR_video_maintenance2",{"number":9453,"type":1134,"author":10303,"provisional":9377,"depends":10681,"ratified":9722,"contact":10212,"extension":10675,"proposal":6827},"(VK_VERSION_1_1+VK_KHR_synchronization2),VK_VERSION_1_3",{"number":10683,"type":1134,"author":10303,"promotedto":9811,"provisional":9377,"depends":9605,"ratified":9722,"contact":9742,"extension":10684,"proposal":9377},212,"VK_KHR_vulkan_memory_model",{"number":697,"type":9714,"author":10303,"provisional":9377,"depends":9836,"platform":10686,"ratified":9722,"contact":10687,"extension":10688,"proposal":9377},"wayland","Jesse Hall @critsec,Ian Elliott @ianelliottus","VK_KHR_wayland_surface",{"number":10690,"type":1134,"author":10303,"provisional":9377,"depends":10405,"platform":9907,"ratified":9722,"contact":10691,"extension":10692,"proposal":9377},76,"Carsten Rohde @crohde","VK_KHR_win32_keyed_mutex",{"number":1952,"type":9714,"author":10303,"provisional":9377,"depends":9836,"platform":9907,"ratified":9722,"contact":10687,"extension":10694,"proposal":9377},"VK_KHR_win32_surface",{"number":10696,"type":1134,"author":10303,"provisional":9377,"depends":9605,"ratified":9722,"contact":10697,"extension":10698,"proposal":9377},337,"Caio Marcelo de Oliveira Filho @cmarcelo","VK_KHR_workgroup_memory_explicit_layout",{"number":678,"type":9714,"author":10303,"provisional":9377,"depends":9836,"platform":10700,"ratified":9722,"contact":10687,"extension":10701,"proposal":9377},"xcb","VK_KHR_xcb_surface",{"number":659,"type":9714,"author":10303,"provisional":9377,"depends":9836,"platform":10703,"ratified":9722,"contact":10687,"extension":10704,"proposal":9377},"xlib","VK_KHR_xlib_surface",{"number":10706,"type":1134,"author":10303,"promotedto":9708,"provisional":9377,"depends":9605,"ratified":9722,"contact":10584,"extension":10707,"proposal":9377},326,"VK_KHR_zero_initialize_workgroup_memory",{"number":10709,"type":9714,"author":10194,"provisional":9377,"contact":10510,"extension":10710,"proposal":6827},460,"VK_LUNARG_direct_driver_loading",{"number":10712,"type":1134,"author":10713,"provisional":9377,"depends":9605,"specialuse":9785,"contact":10060,"extension":10714,"proposal":9377},576,"MESA","VK_MESA_image_alignment_control",{"number":10716,"type":1134,"author":10717,"provisional":9377,"depends":9605,"contact":10718,"extension":10719,"proposal":6827},531,"MSFT","Jesse Natalie @jenatali","VK_MSFT_layered_driver",{"number":10721,"type":9714,"author":10722,"deprecatedby":10014,"provisional":9377,"depends":9836,"platform":10723,"contact":10009,"extension":10724,"proposal":9377},123,"MVK","ios","VK_MVK_ios_surface",{"number":10726,"type":9714,"author":10722,"deprecatedby":10014,"provisional":9377,"depends":9836,"platform":10727,"contact":10009,"extension":10728,"proposal":9377},124,"macos","VK_MVK_macos_surface",{"number":10730,"type":9714,"author":10731,"provisional":9377,"depends":9836,"platform":10732,"contact":10733,"extension":10734,"proposal":9377},63,"NN","vi","Mathias Heyer gitlab:@mheyer","VK_NN_vi_surface",{"number":9477,"type":1134,"author":10736,"provisional":9377,"contact":10737,"extension":10738,"proposal":9377},"NVX","Eric Werness @ewerness-nv,Liam Middlebrook @liam-middlebrook","VK_NVX_binary_import",{"number":9481,"type":1134,"author":10736,"provisional":9377,"contact":10740,"extension":10741,"proposal":9377},"Eric Werness @ewerness-nv","VK_NVX_image_view_handle",{"number":10743,"type":1134,"author":10736,"provisional":9377,"depends":10744,"contact":9742,"extension":10745,"proposal":9377},98,"VK_KHR_multiview,VK_VERSION_1_1","VK_NVX_multiview_per_view_attributes",{"number":10747,"type":1134,"author":9720,"provisional":9377,"depends":9715,"platform":9907,"contact":10748,"extension":10749,"proposal":9377},346,"Jeff Juliano @jjuliano","VK_NV_acquire_winrt_display",{"number":10751,"type":1134,"author":9720,"provisional":9377,"contact":10740,"extension":10752,"proposal":9377},88,"VK_NV_clip_space_w_scaling",{"number":10754,"type":1134,"author":9720,"provisional":9377,"depends":10313,"contact":9763,"extension":10755,"proposal":6827},570,"VK_NV_cluster_acceleration_structure",{"number":10757,"type":1134,"author":9720,"provisional":9377,"contact":10758,"extension":10759,"proposal":9377},560,"Lujin Wang @lujinwangnv","VK_NV_command_buffer_inheritance",{"number":10761,"type":1134,"author":9720,"promotedto":10327,"provisional":9377,"depends":9605,"contact":10762,"extension":10763,"proposal":9377},202,"Pat Brown @nvpbrown","VK_NV_compute_shader_derivatives",{"number":10765,"type":1134,"author":9720,"provisional":9377,"depends":9605,"contact":9742,"extension":10766,"proposal":9377},250,"VK_NV_cooperative_matrix",{"number":10768,"type":1134,"author":9720,"provisional":9377,"depends":10330,"contact":9742,"extension":10769,"proposal":6827},594,"VK_NV_cooperative_matrix2",{"number":10771,"type":1134,"author":9720,"provisional":9377,"contact":9742,"extension":10772,"proposal":6827},492,"VK_NV_cooperative_vector",{"number":10774,"type":1134,"author":9720,"provisional":9377,"depends":10775,"contact":9859,"extension":10776,"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":10778,"type":1134,"author":9720,"provisional":9377,"depends":9605,"contact":10076,"extension":10779,"proposal":9377},51,"VK_NV_corner_sampled_image",{"number":10781,"type":1134,"author":9720,"provisional":9377,"depends":10782,"contact":10783,"extension":10784,"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":10786,"type":1134,"author":9720,"provisional":6827,"platform":9591,"contact":10787,"extension":10788,"proposal":9377},308,"Tristan Lorach @tlorach","VK_NV_cuda_kernel_launch",{"number":9465,"type":1134,"author":9720,"deprecatedby":10342,"provisional":9377,"contact":9742,"extension":10790,"proposal":9377},"VK_NV_dedicated_allocation",{"number":10792,"type":1134,"author":10793,"provisional":9377,"depends":10794,"contact":10795,"extension":10796,"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":10798,"type":1134,"author":9720,"provisional":9377,"depends":9704,"contact":9747,"extension":10799,"proposal":9377},547,"VK_NV_descriptor_pool_overallocation",{"number":10801,"type":1134,"author":10793,"provisional":9377,"depends":9605,"contact":10795,"extension":10802,"proposal":9377},207,"VK_NV_device_diagnostic_checkpoints",{"number":10804,"type":1134,"author":9720,"provisional":9377,"depends":9605,"contact":10783,"extension":10805,"proposal":9377},301,"VK_NV_device_diagnostics_config",{"number":10807,"type":1134,"author":9720,"provisional":9377,"depends":10808,"contact":10005,"extension":450,"proposal":9377},278,"(VK_VERSION_1_1+VK_KHR_buffer_device_address),VK_VERSION_1_2",{"number":10810,"type":1134,"author":9720,"provisional":9377,"depends":450,"contact":9859,"extension":516,"proposal":9377},429,{"number":10812,"type":1134,"author":9720,"provisional":6827,"depends":9683,"platform":9591,"contact":10813,"extension":10814,"proposal":9377},398,"Christoph Kubisch @pixeljetstream, Eric Werness @ewerness-nv","VK_NV_displacement_micromap",{"number":10816,"type":9714,"author":9720,"provisional":9377,"depends":10817,"contact":10818,"extension":10819,"proposal":6827},552,"VK_KHR_display+VK_KHR_get_display_properties2","Russell Chou @russellcnv","VK_NV_display_stereo",{"number":10821,"type":1134,"author":9720,"provisional":9377,"contact":10818,"extension":10822,"proposal":9377},493,"VK_NV_extended_sparse_address_space",{"number":10824,"type":1134,"author":9720,"provisional":9377,"contact":10825,"extension":10826,"proposal":6827},557,"Chris Lentini @clentini","VK_NV_external_compute_queue",{"number":10828,"type":1134,"author":9720,"deprecatedby":10397,"provisional":9377,"depends":10829,"contact":9723,"extension":10830,"proposal":9377},57,"VK_NV_external_memory_capabilities","VK_NV_external_memory",{"number":10832,"type":9714,"author":9720,"deprecatedby":10400,"provisional":9377,"contact":9723,"extension":10829,"proposal":9377},56,{"number":10834,"type":1134,"author":9720,"provisional":9377,"depends":9866,"contact":10691,"extension":10835,"proposal":9377},372,"VK_NV_external_memory_rdma",{"extension":10837,"proposal":9377},"VK_NV_external_memory_sci_buf",{"number":10839,"type":1134,"author":9720,"deprecatedby":10405,"provisional":9377,"depends":10830,"platform":9907,"contact":9723,"extension":10840,"proposal":9377},58,"VK_NV_external_memory_win32",{"extension":10842,"proposal":9377},"VK_NV_external_sci_sync",{"extension":10844,"proposal":9377},"VK_NV_external_sci_sync2",{"number":10846,"type":1134,"author":9720,"provisional":9377,"contact":9742,"extension":10847,"proposal":9377},154,"VK_NV_fill_rectangle",{"number":10849,"type":1134,"author":9720,"provisional":9377,"contact":9742,"extension":10850,"proposal":9377},150,"VK_NV_fragment_coverage_to_color",{"number":10852,"type":1134,"author":9720,"promotedto":10424,"provisional":9377,"depends":9605,"contact":10762,"extension":10853,"proposal":9377},204,"VK_NV_fragment_shader_barycentric",{"number":10855,"type":1134,"author":9720,"provisional":9377,"depends":10428,"contact":10762,"extension":10856,"proposal":9377},327,"VK_NV_fragment_shading_rate_enums",{"number":10858,"type":1134,"author":9720,"provisional":9377,"contact":9742,"extension":10859,"proposal":9377},153,"VK_NV_framebuffer_mixed_samples",{"number":10861,"type":1134,"author":9720,"provisional":9377,"contact":10076,"extension":10862,"proposal":9377},96,"VK_NV_geometry_shader_passthrough",{"number":4717,"type":1134,"author":9720,"deprecatedby":10286,"provisional":9377,"contact":9747,"extension":10864,"proposal":9377},"VK_NV_glsl_shader",{"number":10866,"type":1134,"author":9720,"provisional":9377,"depends":9605,"contact":10867,"extension":10868,"proposal":9377},279,"David Zhao Akeley @akeley98","VK_NV_inherited_viewport_scissor",{"number":10870,"type":1134,"author":10793,"provisional":9377,"depends":9605,"contact":10871,"extension":10872,"proposal":9377},431,"sourav parmar @souravpNV","VK_NV_linear_color_attachment",{"number":10874,"type":1134,"author":9720,"provisional":9377,"contact":10875,"extension":10876,"proposal":9377},311,"Charles Hansen @cshansen","VK_NV_low_latency",{"number":10878,"type":1134,"author":9720,"provisional":9377,"depends":10879,"contact":10875,"extension":10880,"proposal":9377},506,"VK_VERSION_1_2,VK_KHR_timeline_semaphore","VK_NV_low_latency2",{"number":10882,"type":1134,"author":9720,"provisional":9377,"depends":10775,"contact":9859,"extension":10883,"proposal":9377},428,"VK_NV_memory_decompression",{"number":10885,"type":1134,"author":9720,"provisional":9377,"depends":9605,"contact":10005,"extension":10886,"proposal":9377},203,"VK_NV_mesh_shader",{"number":10888,"type":1134,"author":9720,"provisional":9377,"depends":10889,"contact":10691,"extension":10890,"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":10892,"type":1134,"author":9720,"provisional":9377,"depends":10313,"contact":9763,"extension":10893,"proposal":6827},571,"VK_NV_partitioned_acceleration_structure",{"number":10895,"type":1134,"author":9720,"provisional":9377,"depends":10896,"contact":9747,"extension":10897,"proposal":9377},517,"VK_KHR_maintenance6,VK_VERSION_1_4","VK_NV_per_stage_descriptor_set",{"number":10899,"type":1134,"author":9720,"provisional":9377,"depends":9906,"contact":10900,"extension":10901,"proposal":9377},293,"Liya Li @liyli","VK_NV_present_barrier",{"number":10903,"type":1134,"author":9720,"provisional":6827,"platform":9591,"contact":10904,"extension":10905,"proposal":9377},614,"Charles Hansen @chansen","VK_NV_present_metering",{"extension":10907,"proposal":9377},"VK_NV_private_vendor_info",{"number":10909,"type":1134,"author":9720,"provisional":9377,"contact":10910,"extension":10911,"proposal":9377},556,"Rodrigo Locatti @rlocatti","VK_NV_raw_access_chains",{"number":10913,"type":1134,"author":9720,"deprecatedby":10535,"provisional":9377,"depends":10914,"contact":10740,"extension":10915,"proposal":9377},166,"(VK_KHR_get_physical_device_properties2+VK_KHR_get_memory_requirements2),VK_VERSION_1_1","VK_NV_ray_tracing",{"number":10917,"type":1134,"author":9720,"provisional":9377,"depends":10535,"contact":10740,"extension":10918,"proposal":9377},491,"VK_NV_ray_tracing_invocation_reorder",{"number":10920,"type":1134,"author":9720,"provisional":9377,"depends":10535,"contact":9763,"extension":10921,"proposal":6827},430,"VK_NV_ray_tracing_linear_swept_spheres",{"number":10923,"type":1134,"author":9720,"provisional":9377,"depends":10535,"contact":10538,"extension":10924,"proposal":9377},328,"VK_NV_ray_tracing_motion_blur",{"number":10926,"type":1134,"author":9720,"provisional":9377,"contact":9859,"extension":10927,"proposal":6827},569,"VK_NV_ray_tracing_validation",{"number":10929,"type":1134,"author":9720,"provisional":9377,"depends":9605,"contact":10783,"extension":10930,"proposal":9377},167,"VK_NV_representative_fragment_test",{"number":10932,"type":1134,"author":9720,"provisional":9377,"contact":9747,"extension":10933,"proposal":9377},95,"VK_NV_sample_mask_override_coverage",{"number":10935,"type":1134,"author":9720,"provisional":9377,"depends":9605,"contact":10762,"extension":10936,"proposal":9377},206,"VK_NV_scissor_exclusive",{"number":10938,"type":1134,"author":9720,"provisional":9377,"contact":9742,"extension":10939,"proposal":9377},564,"VK_NV_shader_atomic_float16_vector",{"number":10941,"type":1134,"author":9720,"provisional":9377,"depends":9605,"contact":10762,"extension":10942,"proposal":9377},205,"VK_NV_shader_image_footprint",{"number":10944,"type":1134,"author":9720,"provisional":9377,"depends":9704,"contact":10076,"extension":10945,"proposal":9377},155,"VK_NV_shader_sm_builtins",{"number":10947,"type":1134,"author":9720,"provisional":9377,"depends":9704,"contact":9742,"extension":10948,"proposal":9377},199,"VK_NV_shader_subgroup_partitioned",{"number":10950,"type":1134,"author":9720,"provisional":9377,"depends":9605,"contact":10762,"extension":10951,"proposal":9377},165,"VK_NV_shading_rate_image",{"number":10953,"type":1134,"author":9720,"provisional":9377,"contact":10076,"extension":10954,"proposal":9377},97,"VK_NV_viewport_array2",{"number":10956,"type":1134,"author":9720,"provisional":9377,"contact":9747,"extension":10957,"proposal":9377},99,"VK_NV_viewport_swizzle",{"number":10959,"type":1134,"author":9720,"promotedto":10692,"provisional":9377,"depends":10840,"platform":9907,"contact":10691,"extension":10960,"proposal":9377},59,"VK_NV_win32_keyed_mutex",{"number":10962,"type":1134,"author":9883,"provisional":9377,"depends":10963,"contact":9884,"extension":10964,"proposal":9377},522,"(VK_EXT_filter_cubic)+(VK_VERSION_1_2,VK_EXT_sampler_filter_minmax)","VK_QCOM_filter_cubic_clamp",{"number":10966,"type":1134,"author":9883,"provisional":9377,"depends":9885,"contact":9884,"extension":10967,"proposal":9377},520,"VK_QCOM_filter_cubic_weights",{"number":10969,"type":1134,"author":9883,"promotedto":9896,"provisional":9377,"depends":10970,"contact":9884,"extension":10971,"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":10973,"type":1134,"author":9883,"provisional":9377,"depends":10974,"contact":9884,"extension":10975,"proposal":6827},441,"VK_KHR_format_feature_flags2,VK_VERSION_1_3","VK_QCOM_image_processing",{"number":10977,"type":1134,"author":9883,"provisional":9377,"depends":10975,"contact":9884,"extension":10978,"proposal":9377},519,"VK_QCOM_image_processing2",{"number":10980,"type":1134,"author":9883,"provisional":9377,"contact":9884,"extension":10981,"proposal":9377},511,"VK_QCOM_multiview_per_view_render_areas",{"number":10983,"type":1134,"author":9883,"provisional":9377,"depends":9605,"contact":9884,"extension":10984,"proposal":9377},489,"VK_QCOM_multiview_per_view_viewports",{"number":10986,"type":1134,"author":9883,"provisional":9377,"contact":9884,"extension":10987,"proposal":9377},172,"VK_QCOM_render_pass_shader_resolve",{"number":10989,"type":1134,"author":9883,"provisional":9377,"contact":9884,"extension":10990,"proposal":9377},302,"VK_QCOM_render_pass_store_ops",{"number":10992,"type":1134,"author":9883,"provisional":9377,"contact":9884,"extension":10993,"proposal":9377},283,"VK_QCOM_render_pass_transform",{"number":10995,"type":1134,"author":9883,"provisional":9377,"depends":10996,"contact":9884,"extension":10997,"proposal":9377},334,"VK_KHR_copy_commands2,VK_VERSION_1_3","VK_QCOM_rotated_copy_commands",{"number":10999,"type":1134,"author":9883,"provisional":9377,"depends":9605,"contact":9884,"extension":11000,"proposal":6827},485,"VK_QCOM_tile_properties",{"number":11002,"type":1134,"author":9883,"provisional":9377,"depends":11003,"contact":9884,"extension":11004,"proposal":6827},310,"VK_QCOM_tile_properties,VK_KHR_get_physical_device_properties2","VK_QCOM_tile_shading",{"number":11006,"type":1134,"author":9883,"provisional":9377,"contact":9884,"extension":11007,"proposal":9377},521,"VK_QCOM_ycbcr_degamma",{"number":11009,"type":1134,"author":11010,"provisional":9377,"depends":9678,"platform":11011,"contact":11012,"extension":11013,"proposal":9377},530,"QNX","screen","Mike Gorchak @mgorchak-blackberry, Aaron Ruby @aruby-blackberry","VK_QNX_external_memory_screen_buffer",{"number":11015,"type":9714,"author":11010,"provisional":9377,"depends":9836,"platform":11011,"contact":11016,"extension":11017,"proposal":9377},379,"Mike Gorchak @mgorchak-blackberry","VK_QNX_screen_surface",{"number":11019,"type":1134,"author":11020,"provisional":9377,"depends":9605,"contact":9818,"extension":11021,"proposal":9377},486,"SEC","VK_SEC_amigo_profiling",{"number":11023,"type":1134,"author":11024,"provisional":9377,"depends":9605,"specialuse":9785,"contact":10060,"extension":11025,"proposal":9377},421,"VALVE","VK_VALVE_descriptor_set_host_mapping",{"number":11027,"type":1134,"author":11024,"promotedto":10026,"provisional":9377,"depends":10467,"specialuse":9785,"contact":10025,"extension":11028,"proposal":9377},352,"VK_VALVE_mutable_descriptor_type",1744876622933]