[{"data":1,"prerenderedAt":799},["ShallowReactive",2],{"eWgUCeYOmM":3},{"title":4,"description":5,"parent":6,"cmd_buf_level":7,"render_pass_scope":9,"supported_queue_types":10,"tasks":13,"type":15,"xrefs":16,"body":17,"_type":798,"_id":4},"vkCmdPreprocessGeneratedCommandsEXT","Performs preprocessing for generated commands","VK_EXT_device_generated_commands",[8],"primary","outside",[11,12],"graphics","compute",[14],"action","protos",[],{"type":18,"children":19,"toc":796},"root",[20,35,276,321,341,519,730,790],{"type":21,"tag":22,"props":23,"children":24},"element","p",{},[25,28,33],{"type":26,"value":27},"text","Commands ",{"type":21,"tag":29,"props":30,"children":32},"normative",{"type":31},"can",[],{"type":26,"value":34}," be preprocessed prior execution using the following command:",{"type":21,"tag":36,"props":37,"children":38},"code-group",{},[39,142],{"type":21,"tag":40,"props":41,"children":47},"pre",{"className":42,"code":43,"filename":44,"language":45,"meta":46,"style":46},"language-c shiki shiki-themes github-light-default github-dark-default","void vkCmdPreprocessGeneratedCommandsEXT(\n VkCommandBuffer commandBuffer,\n const VkGeneratedCommandsInfoEXT* pGeneratedCommandsInfo,\n VkCommandBuffer stateCommandBuffer);\n","C","c","",[48],{"type":21,"tag":49,"props":50,"children":51},"code",{"__ignoreMap":46},[52,76,96,124],{"type":21,"tag":53,"props":54,"children":57},"span",{"class":55,"line":56},"line",1,[58,64,70],{"type":21,"tag":53,"props":59,"children":61},{"style":60},"--shiki-default:#CF222E;--shiki-dark:#FF7B72",[62],{"type":26,"value":63},"void",{"type":21,"tag":53,"props":65,"children":67},{"style":66},"--shiki-default:#8250DF;--shiki-dark:#D2A8FF",[68],{"type":26,"value":69}," vkCmdPreprocessGeneratedCommandsEXT",{"type":21,"tag":53,"props":71,"children":73},{"style":72},"--shiki-default:#1F2328;--shiki-dark:#E6EDF3",[74],{"type":26,"value":75},"(\n",{"type":21,"tag":53,"props":77,"children":79},{"class":55,"line":78},2,[80,85,91],{"type":21,"tag":53,"props":81,"children":82},{"style":72},[83],{"type":26,"value":84}," VkCommandBuffer ",{"type":21,"tag":53,"props":86,"children":88},{"style":87},"--shiki-default:#953800;--shiki-dark:#FFA657",[89],{"type":26,"value":90},"commandBuffer",{"type":21,"tag":53,"props":92,"children":93},{"style":72},[94],{"type":26,"value":95},",\n",{"type":21,"tag":53,"props":97,"children":99},{"class":55,"line":98},3,[100,105,110,115,120],{"type":21,"tag":53,"props":101,"children":102},{"style":60},[103],{"type":26,"value":104}," const",{"type":21,"tag":53,"props":106,"children":107},{"style":72},[108],{"type":26,"value":109}," VkGeneratedCommandsInfoEXT",{"type":21,"tag":53,"props":111,"children":112},{"style":60},[113],{"type":26,"value":114},"*",{"type":21,"tag":53,"props":116,"children":117},{"style":87},[118],{"type":26,"value":119}," pGeneratedCommandsInfo",{"type":21,"tag":53,"props":121,"children":122},{"style":72},[123],{"type":26,"value":95},{"type":21,"tag":53,"props":125,"children":127},{"class":55,"line":126},4,[128,132,137],{"type":21,"tag":53,"props":129,"children":130},{"style":72},[131],{"type":26,"value":84},{"type":21,"tag":53,"props":133,"children":134},{"style":87},[135],{"type":26,"value":136},"stateCommandBuffer",{"type":21,"tag":53,"props":138,"children":139},{"style":72},[140],{"type":26,"value":141},");\n",{"type":21,"tag":40,"props":143,"children":148},{"className":144,"code":145,"filename":146,"language":147,"meta":46,"style":46},"language-rs shiki shiki-themes github-light-default github-dark-default","pub fn cmd_preprocess_generated_commands_ext(\n command_buffer: vk::CommandBuffer,\n p_generated_commands_info: *const vk::GeneratedCommandsInfoEXT,\n state_command_buffer: vk::CommandBuffer,\n);\n","Rust","rs",[149],{"type":21,"tag":49,"props":150,"children":151},{"__ignoreMap":46},[152,174,206,240,268],{"type":21,"tag":53,"props":153,"children":154},{"class":55,"line":56},[155,160,165,170],{"type":21,"tag":53,"props":156,"children":157},{"style":60},[158],{"type":26,"value":159},"pub",{"type":21,"tag":53,"props":161,"children":162},{"style":60},[163],{"type":26,"value":164}," fn",{"type":21,"tag":53,"props":166,"children":167},{"style":66},[168],{"type":26,"value":169}," cmd_preprocess_generated_commands_ext",{"type":21,"tag":53,"props":171,"children":172},{"style":72},[173],{"type":26,"value":75},{"type":21,"tag":53,"props":175,"children":176},{"class":55,"line":78},[177,182,187,192,197,202],{"type":21,"tag":53,"props":178,"children":179},{"style":72},[180],{"type":26,"value":181}," command_buffer",{"type":21,"tag":53,"props":183,"children":184},{"style":60},[185],{"type":26,"value":186},":",{"type":21,"tag":53,"props":188,"children":189},{"style":87},[190],{"type":26,"value":191}," vk",{"type":21,"tag":53,"props":193,"children":194},{"style":60},[195],{"type":26,"value":196},"::",{"type":21,"tag":53,"props":198,"children":199},{"style":87},[200],{"type":26,"value":201},"CommandBuffer",{"type":21,"tag":53,"props":203,"children":204},{"style":72},[205],{"type":26,"value":95},{"type":21,"tag":53,"props":207,"children":208},{"class":55,"line":98},[209,214,218,223,227,231,236],{"type":21,"tag":53,"props":210,"children":211},{"style":72},[212],{"type":26,"value":213}," p_generated_commands_info",{"type":21,"tag":53,"props":215,"children":216},{"style":60},[217],{"type":26,"value":186},{"type":21,"tag":53,"props":219,"children":220},{"style":60},[221],{"type":26,"value":222}," *const",{"type":21,"tag":53,"props":224,"children":225},{"style":87},[226],{"type":26,"value":191},{"type":21,"tag":53,"props":228,"children":229},{"style":60},[230],{"type":26,"value":196},{"type":21,"tag":53,"props":232,"children":233},{"style":87},[234],{"type":26,"value":235},"GeneratedCommandsInfoEXT",{"type":21,"tag":53,"props":237,"children":238},{"style":72},[239],{"type":26,"value":95},{"type":21,"tag":53,"props":241,"children":242},{"class":55,"line":126},[243,248,252,256,260,264],{"type":21,"tag":53,"props":244,"children":245},{"style":72},[246],{"type":26,"value":247}," state_command_buffer",{"type":21,"tag":53,"props":249,"children":250},{"style":60},[251],{"type":26,"value":186},{"type":21,"tag":53,"props":253,"children":254},{"style":87},[255],{"type":26,"value":191},{"type":21,"tag":53,"props":257,"children":258},{"style":60},[259],{"type":26,"value":196},{"type":21,"tag":53,"props":261,"children":262},{"style":87},[263],{"type":26,"value":201},{"type":21,"tag":53,"props":265,"children":266},{"style":72},[267],{"type":26,"value":95},{"type":21,"tag":53,"props":269,"children":271},{"class":55,"line":270},5,[272],{"type":21,"tag":53,"props":273,"children":274},{"style":72},[275],{"type":26,"value":141},{"type":21,"tag":277,"props":278,"children":279},"ul",{},[280,291,311],{"type":21,"tag":281,"props":282,"children":283},"li",{},[284,289],{"type":21,"tag":49,"props":285,"children":287},{"className":286},[],[288],{"type":26,"value":90},{"type":26,"value":290}," is the command buffer which does the preprocessing.",{"type":21,"tag":281,"props":292,"children":293},{},[294,300,302,309],{"type":21,"tag":49,"props":295,"children":297},{"className":296},[],[298],{"type":26,"value":299},"pGeneratedCommandsInfo",{"type":26,"value":301}," is a pointer to a\n",{"type":21,"tag":303,"props":304,"children":306},"a",{"href":305},"/man/VkGeneratedCommandsInfoEXT",[307],{"type":26,"value":308},"VkGeneratedCommandsInfoEXT",{"type":26,"value":310}," structure containing parameters\naffecting the preprocessing step.",{"type":21,"tag":281,"props":312,"children":313},{},[314,319],{"type":21,"tag":49,"props":315,"children":317},{"className":316},[],[318],{"type":26,"value":136},{"type":26,"value":320}," is a command buffer from which to snapshot\ncurrent states affecting the preprocessing step.\nWhen a graphics command action token is used, graphics state is\nsnapshotted.\nWhen a compute action command token is used, compute state is\nsnapshotted.\nWhen a ray tracing action command token is used, ray tracing state is\nsnapshotted.\nIt can be deleted at any time after this command has been recorded.",{"type":21,"tag":322,"props":323,"children":324},"note",{},[325],{"type":21,"tag":22,"props":326,"children":327},{},[328,333,335,339],{"type":21,"tag":49,"props":329,"children":331},{"className":330},[],[332],{"type":26,"value":136},{"type":26,"value":334}," access is not synchronized by the driver, meaning\nthat this command buffer ",{"type":21,"tag":29,"props":336,"children":338},{"type":337},"must",[],{"type":26,"value":340}," not be modified between threads in an unsafe\nmanner.",{"type":21,"tag":342,"props":343,"children":345},"validity-group",{"name":344},"Valid Usage",[346,382,433,451,484],{"type":21,"tag":347,"props":348,"children":350},"validity-field",{"name":349},"VUID-vkCmdPreprocessGeneratedCommandsEXT-pGeneratedCommandsInfo-11082",[351],{"type":21,"tag":22,"props":352,"children":353},{},[354,359,361,367,369,372,374,380],{"type":21,"tag":49,"props":355,"children":357},{"className":356},[],[358],{"type":26,"value":299},{"type":26,"value":360},"’s ",{"type":21,"tag":49,"props":362,"children":364},{"className":363},[],[365],{"type":26,"value":366},"indirectCommandsLayout",{"type":26,"value":368}," ",{"type":21,"tag":29,"props":370,"children":371},{"type":337},[],{"type":26,"value":373}," have\nbeen created with the\n",{"type":21,"tag":49,"props":375,"children":377},{"className":376},[],[378],{"type":26,"value":379},"VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_EXT",{"type":26,"value":381}," bit\nset",{"type":21,"tag":347,"props":383,"children":385},{"name":384},"VUID-vkCmdPreprocessGeneratedCommandsEXT-indirectCommandsLayout-11084",[386],{"type":21,"tag":22,"props":387,"children":388},{},[389,391,395,396,401,403,409,411,415,416,422,423,426,428],{"type":26,"value":390},"If the token sequence of the passed\n",{"type":21,"tag":303,"props":392,"children":393},{"href":305},[394],{"type":26,"value":308},{"type":26,"value":196},{"type":21,"tag":49,"props":397,"children":399},{"className":398},[],[400],{"type":26,"value":366},{"type":26,"value":402}," contains\na ",{"type":21,"tag":49,"props":404,"children":406},{"className":405},[],[407],{"type":26,"value":408},"VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT",{"type":26,"value":410}," token, the\ninitial shader state of\n",{"type":21,"tag":303,"props":412,"children":413},{"href":305},[414],{"type":26,"value":308},{"type":26,"value":196},{"type":21,"tag":49,"props":417,"children":419},{"className":418},[],[420],{"type":26,"value":421},"indirectExecutionSet",{"type":26,"value":368},{"type":21,"tag":29,"props":424,"children":425},{"type":337},[],{"type":26,"value":427}," be\nbound on ",{"type":21,"tag":49,"props":429,"children":431},{"className":430},[],[432],{"type":26,"value":136},{"type":21,"tag":347,"props":434,"children":436},{"name":435},"VUID-vkCmdPreprocessGeneratedCommandsEXT-stateCommandBuffer-11138",[437],{"type":21,"tag":22,"props":438,"children":439},{},[440,445,446,449],{"type":21,"tag":49,"props":441,"children":443},{"className":442},[],[444],{"type":26,"value":136},{"type":26,"value":368},{"type":21,"tag":29,"props":447,"children":448},{"type":337},[],{"type":26,"value":450}," be in the recording state",{"type":21,"tag":347,"props":452,"children":454},{"name":453},"VUID-vkCmdPreprocessGeneratedCommandsEXT-deviceGeneratedCommands-11087",[455],{"type":21,"tag":22,"props":456,"children":457},{},[458,460,477,479,482],{"type":26,"value":459},"The ",{"type":21,"tag":303,"props":461,"children":463},{"href":462},"/man/VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT#features-deviceGeneratedCommands",[464,470,471],{"type":21,"tag":49,"props":465,"children":467},{"className":466},[],[468],{"type":26,"value":469},"VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT",{"type":26,"value":196},{"type":21,"tag":49,"props":472,"children":474},{"className":473},[],[475],{"type":26,"value":476},"deviceGeneratedCommands",{"type":26,"value":478},"\nfeature ",{"type":21,"tag":29,"props":480,"children":481},{"type":337},[],{"type":26,"value":483}," be enabled",{"type":21,"tag":347,"props":485,"children":487},{"name":486},"VUID-vkCmdPreprocessGeneratedCommandsEXT-supportedIndirectCommandsShaderStages-11088",[488],{"type":21,"tag":22,"props":489,"children":490},{},[491,493,499,500,506,508,511,513],{"type":26,"value":492},"Only stages specified in [",{"type":21,"tag":303,"props":494,"children":496},{"href":495},"/man/VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT",[497],{"type":26,"value":498},"VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT",{"type":26,"value":196},{"type":21,"tag":49,"props":501,"children":503},{"className":502},[],[504],{"type":26,"value":505},"supportedIndirectCommandsShaderStages",{"type":26,"value":507},"](xref::limits-supportedIndirectCommandsShaderStages)\n",{"type":21,"tag":29,"props":509,"children":510},{"type":31},[],{"type":26,"value":512}," be set in ",{"type":21,"tag":49,"props":514,"children":516},{"className":515},[],[517],{"type":26,"value":518},"pGeneratedCommandsInfo→shaderStages",{"type":21,"tag":342,"props":520,"children":522},{"name":521},"Valid Usage (Implicit)",[523,549,573,595,619,647,661,674,697],{"type":21,"tag":347,"props":524,"children":526},{"name":525},"VUID-vkCmdPreprocessGeneratedCommandsEXT-commandBuffer-parameter",[527],{"type":21,"tag":22,"props":528,"children":529},{},[530,535,536,539,541,547],{"type":21,"tag":49,"props":531,"children":533},{"className":532},[],[534],{"type":26,"value":90},{"type":26,"value":368},{"type":21,"tag":29,"props":537,"children":538},{"type":337},[],{"type":26,"value":540}," be a valid ",{"type":21,"tag":303,"props":542,"children":544},{"href":543},"/man/VkCommandBuffer",[545],{"type":26,"value":546},"VkCommandBuffer",{"type":26,"value":548}," handle",{"type":21,"tag":347,"props":550,"children":552},{"name":551},"VUID-vkCmdPreprocessGeneratedCommandsEXT-pGeneratedCommandsInfo-parameter",[553],{"type":21,"tag":22,"props":554,"children":555},{},[556,561,562,565,567,571],{"type":21,"tag":49,"props":557,"children":559},{"className":558},[],[560],{"type":26,"value":299},{"type":26,"value":368},{"type":21,"tag":29,"props":563,"children":564},{"type":337},[],{"type":26,"value":566}," be a valid pointer to a valid ",{"type":21,"tag":303,"props":568,"children":569},{"href":305},[570],{"type":26,"value":308},{"type":26,"value":572}," structure",{"type":21,"tag":347,"props":574,"children":576},{"name":575},"VUID-vkCmdPreprocessGeneratedCommandsEXT-stateCommandBuffer-parameter",[577],{"type":21,"tag":22,"props":578,"children":579},{},[580,585,586,589,590,594],{"type":21,"tag":49,"props":581,"children":583},{"className":582},[],[584],{"type":26,"value":136},{"type":26,"value":368},{"type":21,"tag":29,"props":587,"children":588},{"type":337},[],{"type":26,"value":540},{"type":21,"tag":303,"props":591,"children":592},{"href":543},[593],{"type":26,"value":546},{"type":26,"value":548},{"type":21,"tag":347,"props":596,"children":598},{"name":597},"VUID-vkCmdPreprocessGeneratedCommandsEXT-commandBuffer-recording",[599],{"type":21,"tag":22,"props":600,"children":601},{},[602,607,608,611,613],{"type":21,"tag":49,"props":603,"children":605},{"className":604},[],[606],{"type":26,"value":90},{"type":26,"value":368},{"type":21,"tag":29,"props":609,"children":610},{"type":337},[],{"type":26,"value":612}," be in the ",{"type":21,"tag":303,"props":614,"children":616},{"href":615},"/chapters/commandbuffers#commandbuffers-lifecycle",[617],{"type":26,"value":618},"recording state",{"type":21,"tag":347,"props":620,"children":622},{"name":621},"VUID-vkCmdPreprocessGeneratedCommandsEXT-commandBuffer-cmdpool",[623],{"type":21,"tag":22,"props":624,"children":625},{},[626,627,633,635,640,642,645],{"type":26,"value":459},{"type":21,"tag":49,"props":628,"children":630},{"className":629},[],[631],{"type":26,"value":632},"VkCommandPool",{"type":26,"value":634}," that ",{"type":21,"tag":49,"props":636,"children":638},{"className":637},[],[639],{"type":26,"value":90},{"type":26,"value":641}," was allocated from ",{"type":21,"tag":29,"props":643,"children":644},{"type":337},[],{"type":26,"value":646}," support graphics, or compute operations",{"type":21,"tag":347,"props":648,"children":650},{"name":649},"VUID-vkCmdPreprocessGeneratedCommandsEXT-renderpass",[651],{"type":21,"tag":22,"props":652,"children":653},{},[654,656,659],{"type":26,"value":655},"This command ",{"type":21,"tag":29,"props":657,"children":658},{"type":337},[],{"type":26,"value":660}," only be called outside of a render pass instance",{"type":21,"tag":347,"props":662,"children":664},{"name":663},"VUID-vkCmdPreprocessGeneratedCommandsEXT-videocoding",[665],{"type":21,"tag":22,"props":666,"children":667},{},[668,669,672],{"type":26,"value":655},{"type":21,"tag":29,"props":670,"children":671},{"type":337},[],{"type":26,"value":673}," only be called outside of a video coding scope",{"type":21,"tag":347,"props":675,"children":677},{"name":676},"VUID-vkCmdPreprocessGeneratedCommandsEXT-bufferlevel",[678],{"type":21,"tag":22,"props":679,"children":680},{},[681,686,687,690,692],{"type":21,"tag":49,"props":682,"children":684},{"className":683},[],[685],{"type":26,"value":90},{"type":26,"value":368},{"type":21,"tag":29,"props":688,"children":689},{"type":337},[],{"type":26,"value":691}," be a primary ",{"type":21,"tag":49,"props":693,"children":695},{"className":694},[],[696],{"type":26,"value":546},{"type":21,"tag":347,"props":698,"children":700},{"name":699},"VUID-vkCmdPreprocessGeneratedCommandsEXT-commonparent",[701],{"type":21,"tag":22,"props":702,"children":703},{},[704,706,711,713,718,719,722,724],{"type":26,"value":705},"Both of ",{"type":21,"tag":49,"props":707,"children":709},{"className":708},[],[710],{"type":26,"value":90},{"type":26,"value":712},", and ",{"type":21,"tag":49,"props":714,"children":716},{"className":715},[],[717],{"type":26,"value":136},{"type":26,"value":368},{"type":21,"tag":29,"props":720,"children":721},{"type":337},[],{"type":26,"value":723}," have been created, allocated, or retrieved from the same ",{"type":21,"tag":303,"props":725,"children":727},{"href":726},"/man/VkDevice",[728],{"type":26,"value":729},"VkDevice",{"type":21,"tag":731,"props":732,"children":734},"validity-box",{"name":733},"Host Synchronization",[735],{"type":21,"tag":277,"props":736,"children":737},{},[738,754,768],{"type":21,"tag":281,"props":739,"children":740},{},[741,743,748,749,752],{"type":26,"value":742},"Host access to ",{"type":21,"tag":49,"props":744,"children":746},{"className":745},[],[747],{"type":26,"value":90},{"type":26,"value":368},{"type":21,"tag":29,"props":750,"children":751},{"type":337},[],{"type":26,"value":753}," be externally synchronized",{"type":21,"tag":281,"props":755,"children":756},{},[757,758,763,764,767],{"type":26,"value":742},{"type":21,"tag":49,"props":759,"children":761},{"className":760},[],[762],{"type":26,"value":136},{"type":26,"value":368},{"type":21,"tag":29,"props":765,"children":766},{"type":337},[],{"type":26,"value":753},{"type":21,"tag":281,"props":769,"children":770},{},[771,773,778,779,784,785,788],{"type":26,"value":772},"Host access to the ",{"type":21,"tag":49,"props":774,"children":776},{"className":775},[],[777],{"type":26,"value":632},{"type":26,"value":634},{"type":21,"tag":49,"props":780,"children":782},{"className":781},[],[783],{"type":26,"value":90},{"type":26,"value":641},{"type":21,"tag":29,"props":786,"children":787},{"type":337},[],{"type":26,"value":789}," be externally synchronized\n::",{"type":21,"tag":791,"props":792,"children":793},"style",{},[794],{"type":26,"value":795},"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":46,"searchDepth":78,"depth":78,"links":797},[],"markdown",1729612502816]