[{"data":1,"prerenderedAt":716},["ShallowReactive",2],{"4f5gek7rRl":3},{"title":4,"description":5,"parent":6,"cmd_buf_level":7,"render_pass_scope":10,"supported_queue_types":11,"tasks":15,"type":17,"xrefs":18,"body":19,"_type":715,"_id":4},"vkCmdUpdatePipelineIndirectBufferNV","Update the indirect compute pipeline's metadata","VK_NV_device_generated_commands_compute",[8,9],"primary","secondary","outside",[12,13,14],"transfer","graphics","compute",[16],"action","protos",[],{"type":20,"children":21,"toc":713},"root",[22,30,258,302,357,472,661,707],{"type":23,"tag":24,"props":25,"children":26},"element","p",{},[27],{"type":28,"value":29},"text","To save a compute pipeline’s metadata at a device address call:",{"type":23,"tag":31,"props":32,"children":33},"code-group",{},[34,128],{"type":23,"tag":35,"props":36,"children":42},"pre",{"className":37,"code":38,"filename":39,"language":40,"meta":41,"style":41},"language-c shiki shiki-themes github-light-default github-dark-default","void vkCmdUpdatePipelineIndirectBufferNV(\n VkCommandBuffer commandBuffer,\n VkPipelineBindPoint pipelineBindPoint,\n VkPipeline pipeline);\n","C","c","",[43],{"type":23,"tag":44,"props":45,"children":46},"code",{"__ignoreMap":41},[47,71,91,109],{"type":23,"tag":48,"props":49,"children":52},"span",{"class":50,"line":51},"line",1,[53,59,65],{"type":23,"tag":48,"props":54,"children":56},{"style":55},"--shiki-default:#CF222E;--shiki-dark:#FF7B72",[57],{"type":28,"value":58},"void",{"type":23,"tag":48,"props":60,"children":62},{"style":61},"--shiki-default:#8250DF;--shiki-dark:#D2A8FF",[63],{"type":28,"value":64}," vkCmdUpdatePipelineIndirectBufferNV",{"type":23,"tag":48,"props":66,"children":68},{"style":67},"--shiki-default:#1F2328;--shiki-dark:#E6EDF3",[69],{"type":28,"value":70},"(\n",{"type":23,"tag":48,"props":72,"children":74},{"class":50,"line":73},2,[75,80,86],{"type":23,"tag":48,"props":76,"children":77},{"style":67},[78],{"type":28,"value":79}," VkCommandBuffer ",{"type":23,"tag":48,"props":81,"children":83},{"style":82},"--shiki-default:#953800;--shiki-dark:#FFA657",[84],{"type":28,"value":85},"commandBuffer",{"type":23,"tag":48,"props":87,"children":88},{"style":67},[89],{"type":28,"value":90},",\n",{"type":23,"tag":48,"props":92,"children":94},{"class":50,"line":93},3,[95,100,105],{"type":23,"tag":48,"props":96,"children":97},{"style":67},[98],{"type":28,"value":99}," VkPipelineBindPoint ",{"type":23,"tag":48,"props":101,"children":102},{"style":82},[103],{"type":28,"value":104},"pipelineBindPoint",{"type":23,"tag":48,"props":106,"children":107},{"style":67},[108],{"type":28,"value":90},{"type":23,"tag":48,"props":110,"children":112},{"class":50,"line":111},4,[113,118,123],{"type":23,"tag":48,"props":114,"children":115},{"style":67},[116],{"type":28,"value":117}," VkPipeline ",{"type":23,"tag":48,"props":119,"children":120},{"style":82},[121],{"type":28,"value":122},"pipeline",{"type":23,"tag":48,"props":124,"children":125},{"style":67},[126],{"type":28,"value":127},");\n",{"type":23,"tag":35,"props":129,"children":134},{"className":130,"code":131,"filename":132,"language":133,"meta":41,"style":41},"language-rs shiki shiki-themes github-light-default github-dark-default","pub fn cmd_update_pipeline_indirect_buffer_nv(\n command_buffer: vk::CommandBuffer,\n pipeline_bind_point: vk::PipelineBindPoint,\n pipeline: vk::Pipeline,\n);\n","Rust","rs",[135],{"type":23,"tag":44,"props":136,"children":137},{"__ignoreMap":41},[138,160,192,221,250],{"type":23,"tag":48,"props":139,"children":140},{"class":50,"line":51},[141,146,151,156],{"type":23,"tag":48,"props":142,"children":143},{"style":55},[144],{"type":28,"value":145},"pub",{"type":23,"tag":48,"props":147,"children":148},{"style":55},[149],{"type":28,"value":150}," fn",{"type":23,"tag":48,"props":152,"children":153},{"style":61},[154],{"type":28,"value":155}," cmd_update_pipeline_indirect_buffer_nv",{"type":23,"tag":48,"props":157,"children":158},{"style":67},[159],{"type":28,"value":70},{"type":23,"tag":48,"props":161,"children":162},{"class":50,"line":73},[163,168,173,178,183,188],{"type":23,"tag":48,"props":164,"children":165},{"style":67},[166],{"type":28,"value":167}," command_buffer",{"type":23,"tag":48,"props":169,"children":170},{"style":55},[171],{"type":28,"value":172},":",{"type":23,"tag":48,"props":174,"children":175},{"style":82},[176],{"type":28,"value":177}," vk",{"type":23,"tag":48,"props":179,"children":180},{"style":55},[181],{"type":28,"value":182},"::",{"type":23,"tag":48,"props":184,"children":185},{"style":82},[186],{"type":28,"value":187},"CommandBuffer",{"type":23,"tag":48,"props":189,"children":190},{"style":67},[191],{"type":28,"value":90},{"type":23,"tag":48,"props":193,"children":194},{"class":50,"line":93},[195,200,204,208,212,217],{"type":23,"tag":48,"props":196,"children":197},{"style":67},[198],{"type":28,"value":199}," pipeline_bind_point",{"type":23,"tag":48,"props":201,"children":202},{"style":55},[203],{"type":28,"value":172},{"type":23,"tag":48,"props":205,"children":206},{"style":82},[207],{"type":28,"value":177},{"type":23,"tag":48,"props":209,"children":210},{"style":55},[211],{"type":28,"value":182},{"type":23,"tag":48,"props":213,"children":214},{"style":82},[215],{"type":28,"value":216},"PipelineBindPoint",{"type":23,"tag":48,"props":218,"children":219},{"style":67},[220],{"type":28,"value":90},{"type":23,"tag":48,"props":222,"children":223},{"class":50,"line":111},[224,229,233,237,241,246],{"type":23,"tag":48,"props":225,"children":226},{"style":67},[227],{"type":28,"value":228}," pipeline",{"type":23,"tag":48,"props":230,"children":231},{"style":55},[232],{"type":28,"value":172},{"type":23,"tag":48,"props":234,"children":235},{"style":82},[236],{"type":28,"value":177},{"type":23,"tag":48,"props":238,"children":239},{"style":55},[240],{"type":28,"value":182},{"type":23,"tag":48,"props":242,"children":243},{"style":82},[244],{"type":28,"value":245},"Pipeline",{"type":23,"tag":48,"props":247,"children":248},{"style":67},[249],{"type":28,"value":90},{"type":23,"tag":48,"props":251,"children":253},{"class":50,"line":252},5,[254],{"type":23,"tag":48,"props":255,"children":256},{"style":67},[257],{"type":28,"value":127},{"type":23,"tag":259,"props":260,"children":261},"ul",{},[262,273,292],{"type":23,"tag":263,"props":264,"children":265},"li",{},[266,271],{"type":23,"tag":44,"props":267,"children":269},{"className":268},[],[270],{"type":28,"value":85},{"type":28,"value":272}," is the command buffer into which the command will be\nrecorded.",{"type":23,"tag":263,"props":274,"children":275},{},[276,281,283,290],{"type":23,"tag":44,"props":277,"children":279},{"className":278},[],[280],{"type":28,"value":104},{"type":28,"value":282}," is a ",{"type":23,"tag":284,"props":285,"children":287},"a",{"href":286},"/man/VkPipelineBindPoint",[288],{"type":28,"value":289},"VkPipelineBindPoint",{"type":28,"value":291}," value specifying\nthe type of pipeline whose metadata will be saved.",{"type":23,"tag":263,"props":293,"children":294},{},[295,300],{"type":23,"tag":44,"props":296,"children":298},{"className":297},[],[299],{"type":28,"value":122},{"type":28,"value":301}," is the pipeline whose metadata will be saved.",{"type":23,"tag":24,"props":303,"children":304},{},[305,310,312,317,319,324,326,332,334,340,342,348,349,355],{"type":23,"tag":44,"props":306,"children":308},{"className":307},[],[309],{"type":28,"value":4},{"type":28,"value":311}," is only allowed outside of a\nrender pass.\nThis command is treated as a ",{"type":23,"tag":44,"props":313,"children":315},{"className":314},[],[316],{"type":28,"value":12},{"type":28,"value":318}," operation for the purposes of\nsynchronization barriers.\nThe writes to the address ",{"type":23,"tag":320,"props":321,"children":323},"normative",{"type":322},"must",[],{"type":28,"value":325}," be synchronized using stages\n",{"type":23,"tag":44,"props":327,"children":329},{"className":328},[],[330],{"type":28,"value":331},"VK_PIPELINE_STAGE_2_COPY_BIT",{"type":28,"value":333}," and\n",{"type":23,"tag":44,"props":335,"children":337},{"className":336},[],[338],{"type":28,"value":339},"VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV",{"type":28,"value":341}," and with access masks\n",{"type":23,"tag":44,"props":343,"children":345},{"className":344},[],[346],{"type":28,"value":347},"VK_ACCESS_MEMORY_WRITE_BIT",{"type":28,"value":333},{"type":23,"tag":44,"props":350,"children":352},{"className":351},[],[353],{"type":28,"value":354},"VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV",{"type":28,"value":356}," respectively before using the\nresults in preprocessing.",{"type":23,"tag":358,"props":359,"children":361},"validity-group",{"name":360},"Valid Usage",[362,388,414,439],{"type":23,"tag":363,"props":364,"children":366},"validity-field",{"name":365},"VUID-vkCmdUpdatePipelineIndirectBufferNV-pipelineBindPoint-09018",[367],{"type":23,"tag":24,"props":368,"children":369},{},[370,375,377,380,382],{"type":23,"tag":44,"props":371,"children":373},{"className":372},[],[374],{"type":28,"value":104},{"type":28,"value":376}," ",{"type":23,"tag":320,"props":378,"children":379},{"type":322},[],{"type":28,"value":381}," be ",{"type":23,"tag":44,"props":383,"children":385},{"className":384},[],[386],{"type":28,"value":387},"VK_PIPELINE_BIND_POINT_COMPUTE",{"type":23,"tag":363,"props":389,"children":391},{"name":390},"VUID-vkCmdUpdatePipelineIndirectBufferNV-pipeline-09019",[392],{"type":23,"tag":24,"props":393,"children":394},{},[395,400,401,404,406,412],{"type":23,"tag":44,"props":396,"children":398},{"className":397},[],[399],{"type":28,"value":122},{"type":28,"value":376},{"type":23,"tag":320,"props":402,"children":403},{"type":322},[],{"type":28,"value":405}," have been created with\n",{"type":23,"tag":44,"props":407,"children":409},{"className":408},[],[410],{"type":28,"value":411},"VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV",{"type":28,"value":413}," flag set",{"type":23,"tag":363,"props":415,"children":417},{"name":416},"VUID-vkCmdUpdatePipelineIndirectBufferNV-pipeline-09020",[418],{"type":23,"tag":24,"props":419,"children":420},{},[421,426,427,430,431,437],{"type":23,"tag":44,"props":422,"children":424},{"className":423},[],[425],{"type":28,"value":122},{"type":28,"value":376},{"type":23,"tag":320,"props":428,"children":429},{"type":322},[],{"type":28,"value":405},{"type":23,"tag":284,"props":432,"children":434},{"href":433},"/man/VkComputePipelineIndirectBufferInfoNV",[435],{"type":28,"value":436},"VkComputePipelineIndirectBufferInfoNV",{"type":28,"value":438}," structure specifying a valid\naddress where its metadata will be saved",{"type":23,"tag":363,"props":440,"children":442},{"name":441},"VUID-vkCmdUpdatePipelineIndirectBufferNV-deviceGeneratedComputePipelines-09021",[443],{"type":23,"tag":24,"props":444,"children":445},{},[446,448,465,467,470],{"type":28,"value":447},"The ",{"type":23,"tag":284,"props":449,"children":451},{"href":450},"/man/VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV#features-deviceGeneratedComputePipelines",[452,458,459],{"type":23,"tag":44,"props":453,"children":455},{"className":454},[],[456],{"type":28,"value":457},"VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV",{"type":28,"value":182},{"type":23,"tag":44,"props":460,"children":462},{"className":461},[],[463],{"type":28,"value":464},"deviceGeneratedComputePipelines",{"type":28,"value":466},"\nfeature ",{"type":23,"tag":320,"props":468,"children":469},{"type":322},[],{"type":28,"value":471}," be enabled",{"type":23,"tag":358,"props":473,"children":475},{"name":474},"Valid Usage (Implicit)",[476,502,525,549,573,601,615,628],{"type":23,"tag":363,"props":477,"children":479},{"name":478},"VUID-vkCmdUpdatePipelineIndirectBufferNV-commandBuffer-parameter",[480],{"type":23,"tag":24,"props":481,"children":482},{},[483,488,489,492,494,500],{"type":23,"tag":44,"props":484,"children":486},{"className":485},[],[487],{"type":28,"value":85},{"type":28,"value":376},{"type":23,"tag":320,"props":490,"children":491},{"type":322},[],{"type":28,"value":493}," be a valid ",{"type":23,"tag":284,"props":495,"children":497},{"href":496},"/man/VkCommandBuffer",[498],{"type":28,"value":499},"VkCommandBuffer",{"type":28,"value":501}," handle",{"type":23,"tag":363,"props":503,"children":505},{"name":504},"VUID-vkCmdUpdatePipelineIndirectBufferNV-pipelineBindPoint-parameter",[506],{"type":23,"tag":24,"props":507,"children":508},{},[509,514,515,518,519,523],{"type":23,"tag":44,"props":510,"children":512},{"className":511},[],[513],{"type":28,"value":104},{"type":28,"value":376},{"type":23,"tag":320,"props":516,"children":517},{"type":322},[],{"type":28,"value":493},{"type":23,"tag":284,"props":520,"children":521},{"href":286},[522],{"type":28,"value":289},{"type":28,"value":524}," value",{"type":23,"tag":363,"props":526,"children":528},{"name":527},"VUID-vkCmdUpdatePipelineIndirectBufferNV-pipeline-parameter",[529],{"type":23,"tag":24,"props":530,"children":531},{},[532,537,538,541,542,548],{"type":23,"tag":44,"props":533,"children":535},{"className":534},[],[536],{"type":28,"value":122},{"type":28,"value":376},{"type":23,"tag":320,"props":539,"children":540},{"type":322},[],{"type":28,"value":493},{"type":23,"tag":284,"props":543,"children":545},{"href":544},"/man/VkPipeline",[546],{"type":28,"value":547},"VkPipeline",{"type":28,"value":501},{"type":23,"tag":363,"props":550,"children":552},{"name":551},"VUID-vkCmdUpdatePipelineIndirectBufferNV-commandBuffer-recording",[553],{"type":23,"tag":24,"props":554,"children":555},{},[556,561,562,565,567],{"type":23,"tag":44,"props":557,"children":559},{"className":558},[],[560],{"type":28,"value":85},{"type":28,"value":376},{"type":23,"tag":320,"props":563,"children":564},{"type":322},[],{"type":28,"value":566}," be in the ",{"type":23,"tag":284,"props":568,"children":570},{"href":569},"/chapters/commandbuffers#commandbuffers-lifecycle",[571],{"type":28,"value":572},"recording state",{"type":23,"tag":363,"props":574,"children":576},{"name":575},"VUID-vkCmdUpdatePipelineIndirectBufferNV-commandBuffer-cmdpool",[577],{"type":23,"tag":24,"props":578,"children":579},{},[580,581,587,589,594,596,599],{"type":28,"value":447},{"type":23,"tag":44,"props":582,"children":584},{"className":583},[],[585],{"type":28,"value":586},"VkCommandPool",{"type":28,"value":588}," that ",{"type":23,"tag":44,"props":590,"children":592},{"className":591},[],[593],{"type":28,"value":85},{"type":28,"value":595}," was allocated from ",{"type":23,"tag":320,"props":597,"children":598},{"type":322},[],{"type":28,"value":600}," support transfer, graphics, or compute operations",{"type":23,"tag":363,"props":602,"children":604},{"name":603},"VUID-vkCmdUpdatePipelineIndirectBufferNV-renderpass",[605],{"type":23,"tag":24,"props":606,"children":607},{},[608,610,613],{"type":28,"value":609},"This command ",{"type":23,"tag":320,"props":611,"children":612},{"type":322},[],{"type":28,"value":614}," only be called outside of a render pass instance",{"type":23,"tag":363,"props":616,"children":618},{"name":617},"VUID-vkCmdUpdatePipelineIndirectBufferNV-videocoding",[619],{"type":23,"tag":24,"props":620,"children":621},{},[622,623,626],{"type":28,"value":609},{"type":23,"tag":320,"props":624,"children":625},{"type":322},[],{"type":28,"value":627}," only be called outside of a video coding scope",{"type":23,"tag":363,"props":629,"children":631},{"name":630},"VUID-vkCmdUpdatePipelineIndirectBufferNV-commonparent",[632],{"type":23,"tag":24,"props":633,"children":634},{},[635,637,642,644,649,650,653,655],{"type":28,"value":636},"Both of ",{"type":23,"tag":44,"props":638,"children":640},{"className":639},[],[641],{"type":28,"value":85},{"type":28,"value":643},", and ",{"type":23,"tag":44,"props":645,"children":647},{"className":646},[],[648],{"type":28,"value":122},{"type":28,"value":376},{"type":23,"tag":320,"props":651,"children":652},{"type":322},[],{"type":28,"value":654}," have been created, allocated, or retrieved from the same ",{"type":23,"tag":284,"props":656,"children":658},{"href":657},"/man/VkDevice",[659],{"type":28,"value":660},"VkDevice",{"type":23,"tag":662,"props":663,"children":665},"validity-box",{"name":664},"Host Synchronization",[666],{"type":23,"tag":259,"props":667,"children":668},{},[669,685],{"type":23,"tag":263,"props":670,"children":671},{},[672,674,679,680,683],{"type":28,"value":673},"Host access to ",{"type":23,"tag":44,"props":675,"children":677},{"className":676},[],[678],{"type":28,"value":85},{"type":28,"value":376},{"type":23,"tag":320,"props":681,"children":682},{"type":322},[],{"type":28,"value":684}," be externally synchronized",{"type":23,"tag":263,"props":686,"children":687},{},[688,690,695,696,701,702,705],{"type":28,"value":689},"Host access to the ",{"type":23,"tag":44,"props":691,"children":693},{"className":692},[],[694],{"type":28,"value":586},{"type":28,"value":588},{"type":23,"tag":44,"props":697,"children":699},{"className":698},[],[700],{"type":28,"value":85},{"type":28,"value":595},{"type":23,"tag":320,"props":703,"children":704},{"type":322},[],{"type":28,"value":706}," be externally synchronized\n::",{"type":23,"tag":708,"props":709,"children":710},"style",{},[711],{"type":28,"value":712},"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":41,"searchDepth":73,"depth":73,"links":714},[],"markdown",1729612507266]