[{"data":1,"prerenderedAt":649},["ShallowReactive",2],{"fMlLbiIDHw":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":648,"_id":4},"vkCmdCopyMemoryIndirectNV","Copy data between memory regions","VK_NV_copy_memory_indirect",[8,9],"primary","secondary","outside",[12,13,14],"transfer","graphics","compute",[16],"action","protos",[],{"type":20,"children":21,"toc":646},"root",[22,30,287,343,355,487,594,640],{"type":23,"tag":24,"props":25,"children":26},"element","p",{},[27],{"type":28,"value":29},"text","To copy data between two memory regions by specifying copy parameters\nindirectly in a buffer, call:",{"type":23,"tag":31,"props":32,"children":33},"code-group",{},[34,145],{"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 vkCmdCopyMemoryIndirectNV(\n VkCommandBuffer commandBuffer,\n VkDeviceAddress copyBufferAddress,\n uint32_t copyCount,\n uint32_t stride);\n","C","c","",[43],{"type":23,"tag":44,"props":45,"children":46},"code",{"__ignoreMap":41},[47,71,91,109,127],{"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}," vkCmdCopyMemoryIndirectNV",{"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}," VkDeviceAddress ",{"type":23,"tag":48,"props":101,"children":102},{"style":82},[103],{"type":28,"value":104},"copyBufferAddress",{"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":55},[116],{"type":28,"value":117}," uint32_t",{"type":23,"tag":48,"props":119,"children":120},{"style":82},[121],{"type":28,"value":122}," copyCount",{"type":23,"tag":48,"props":124,"children":125},{"style":67},[126],{"type":28,"value":90},{"type":23,"tag":48,"props":128,"children":130},{"class":50,"line":129},5,[131,135,140],{"type":23,"tag":48,"props":132,"children":133},{"style":55},[134],{"type":28,"value":117},{"type":23,"tag":48,"props":136,"children":137},{"style":82},[138],{"type":28,"value":139}," stride",{"type":23,"tag":48,"props":141,"children":142},{"style":67},[143],{"type":28,"value":144},");\n",{"type":23,"tag":35,"props":146,"children":151},{"className":147,"code":148,"filename":149,"language":150,"meta":41,"style":41},"language-rs shiki shiki-themes github-light-default github-dark-default","pub fn cmd_copy_memory_indirect_nv(\n command_buffer: vk::CommandBuffer,\n copy_buffer_address: vk::DeviceAddress,\n copy_count: u32,\n stride: u32,\n);\n","Rust","rs",[152],{"type":23,"tag":44,"props":153,"children":154},{"__ignoreMap":41},[155,177,209,238,259,279],{"type":23,"tag":48,"props":156,"children":157},{"class":50,"line":51},[158,163,168,173],{"type":23,"tag":48,"props":159,"children":160},{"style":55},[161],{"type":28,"value":162},"pub",{"type":23,"tag":48,"props":164,"children":165},{"style":55},[166],{"type":28,"value":167}," fn",{"type":23,"tag":48,"props":169,"children":170},{"style":61},[171],{"type":28,"value":172}," cmd_copy_memory_indirect_nv",{"type":23,"tag":48,"props":174,"children":175},{"style":67},[176],{"type":28,"value":70},{"type":23,"tag":48,"props":178,"children":179},{"class":50,"line":73},[180,185,190,195,200,205],{"type":23,"tag":48,"props":181,"children":182},{"style":67},[183],{"type":28,"value":184}," command_buffer",{"type":23,"tag":48,"props":186,"children":187},{"style":55},[188],{"type":28,"value":189},":",{"type":23,"tag":48,"props":191,"children":192},{"style":82},[193],{"type":28,"value":194}," vk",{"type":23,"tag":48,"props":196,"children":197},{"style":55},[198],{"type":28,"value":199},"::",{"type":23,"tag":48,"props":201,"children":202},{"style":82},[203],{"type":28,"value":204},"CommandBuffer",{"type":23,"tag":48,"props":206,"children":207},{"style":67},[208],{"type":28,"value":90},{"type":23,"tag":48,"props":210,"children":211},{"class":50,"line":93},[212,217,221,225,229,234],{"type":23,"tag":48,"props":213,"children":214},{"style":67},[215],{"type":28,"value":216}," copy_buffer_address",{"type":23,"tag":48,"props":218,"children":219},{"style":55},[220],{"type":28,"value":189},{"type":23,"tag":48,"props":222,"children":223},{"style":82},[224],{"type":28,"value":194},{"type":23,"tag":48,"props":226,"children":227},{"style":55},[228],{"type":28,"value":199},{"type":23,"tag":48,"props":230,"children":231},{"style":82},[232],{"type":28,"value":233},"DeviceAddress",{"type":23,"tag":48,"props":235,"children":236},{"style":67},[237],{"type":28,"value":90},{"type":23,"tag":48,"props":239,"children":240},{"class":50,"line":111},[241,246,250,255],{"type":23,"tag":48,"props":242,"children":243},{"style":67},[244],{"type":28,"value":245}," copy_count",{"type":23,"tag":48,"props":247,"children":248},{"style":55},[249],{"type":28,"value":189},{"type":23,"tag":48,"props":251,"children":252},{"style":82},[253],{"type":28,"value":254}," u32",{"type":23,"tag":48,"props":256,"children":257},{"style":67},[258],{"type":28,"value":90},{"type":23,"tag":48,"props":260,"children":261},{"class":50,"line":129},[262,267,271,275],{"type":23,"tag":48,"props":263,"children":264},{"style":67},[265],{"type":28,"value":266}," stride",{"type":23,"tag":48,"props":268,"children":269},{"style":55},[270],{"type":28,"value":189},{"type":23,"tag":48,"props":272,"children":273},{"style":82},[274],{"type":28,"value":254},{"type":23,"tag":48,"props":276,"children":277},{"style":67},[278],{"type":28,"value":90},{"type":23,"tag":48,"props":280,"children":282},{"class":50,"line":281},6,[283],{"type":23,"tag":48,"props":284,"children":285},{"style":67},[286],{"type":28,"value":144},{"type":23,"tag":288,"props":289,"children":290},"ul",{},[291,302,321,332],{"type":23,"tag":292,"props":293,"children":294},"li",{},[295,300],{"type":23,"tag":44,"props":296,"children":298},{"className":297},[],[299],{"type":28,"value":85},{"type":28,"value":301}," is the command buffer into which the command will be\nrecorded.",{"type":23,"tag":292,"props":303,"children":304},{},[305,310,312,319],{"type":23,"tag":44,"props":306,"children":308},{"className":307},[],[309],{"type":28,"value":104},{"type":28,"value":311}," is the buffer address specifying the copy\nparameters.\nThis buffer is laid out in memory as an array of\n",{"type":23,"tag":313,"props":314,"children":316},"a",{"href":315},"/man/VkCopyMemoryIndirectCommandNV",[317],{"type":28,"value":318},"VkCopyMemoryIndirectCommandNV",{"type":28,"value":320}," structures.",{"type":23,"tag":292,"props":322,"children":323},{},[324,330],{"type":23,"tag":44,"props":325,"children":327},{"className":326},[],[328],{"type":28,"value":329},"copyCount",{"type":28,"value":331}," is the number of copies to execute, and can be zero.",{"type":23,"tag":292,"props":333,"children":334},{},[335,341],{"type":23,"tag":44,"props":336,"children":338},{"className":337},[],[339],{"type":28,"value":340},"stride",{"type":28,"value":342}," is the stride in bytes between successive sets of copy\nparameters.",{"type":23,"tag":24,"props":344,"children":345},{},[346,348,353],{"type":28,"value":347},"Each region read from ",{"type":23,"tag":44,"props":349,"children":351},{"className":350},[],[352],{"type":28,"value":104},{"type":28,"value":354}," is copied from the source\nregion to the specified destination region.\nThe results are undefined: if any of the source and destination regions\noverlap in memory.",{"type":23,"tag":356,"props":357,"children":359},"validity-group",{"name":358},"Valid Usage",[360,389,408,446],{"type":23,"tag":361,"props":362,"children":364},"validity-field",{"name":363},"VUID-vkCmdCopyMemoryIndirectNV-None-07653",[365],{"type":23,"tag":24,"props":366,"children":367},{},[368,370,380,382,387],{"type":28,"value":369},"The ",{"type":23,"tag":313,"props":371,"children":373},{"href":372},"/man/VkPhysicalDeviceCopyMemoryIndirectFeaturesNV#features-indirectCopy",[374],{"type":23,"tag":44,"props":375,"children":377},{"className":376},[],[378],{"type":28,"value":379},"indirectCopy",{"type":28,"value":381}," feature ",{"type":23,"tag":383,"props":384,"children":386},"normative",{"type":385},"must",[],{"type":28,"value":388}," be\nenabled",{"type":23,"tag":361,"props":390,"children":392},{"name":391},"VUID-vkCmdCopyMemoryIndirectNV-copyBufferAddress-07654",[393],{"type":23,"tag":24,"props":394,"children":395},{},[396,401,403,406],{"type":23,"tag":44,"props":397,"children":399},{"className":398},[],[400],{"type":28,"value":104},{"type":28,"value":402}," ",{"type":23,"tag":383,"props":404,"children":405},{"type":385},[],{"type":28,"value":407}," be 4 byte aligned",{"type":23,"tag":361,"props":409,"children":411},{"name":410},"VUID-vkCmdCopyMemoryIndirectNV-stride-07655",[412],{"type":23,"tag":24,"props":413,"children":414},{},[415,420,421,424,426,432,434,437,439,444],{"type":23,"tag":44,"props":416,"children":418},{"className":417},[],[419],{"type":28,"value":340},{"type":28,"value":402},{"type":23,"tag":383,"props":422,"children":423},{"type":385},[],{"type":28,"value":425}," be a multiple of ",{"type":23,"tag":44,"props":427,"children":429},{"className":428},[],[430],{"type":28,"value":431},"4",{"type":28,"value":433}," and ",{"type":23,"tag":383,"props":435,"children":436},{"type":385},[],{"type":28,"value":438}," be greater than or\nequal to sizeof(",{"type":23,"tag":44,"props":440,"children":442},{"className":441},[],[443],{"type":28,"value":318},{"type":28,"value":445},")",{"type":23,"tag":361,"props":447,"children":449},{"name":448},"VUID-vkCmdCopyMemoryIndirectNV-commandBuffer-07656",[450],{"type":23,"tag":24,"props":451,"children":452},{},[453,454,460,462,467,469,472,474,480,481],{"type":28,"value":369},{"type":23,"tag":313,"props":455,"children":457},{"href":456},"/man/VkCommandPool",[458],{"type":28,"value":459},"VkCommandPool",{"type":28,"value":461}," that ",{"type":23,"tag":44,"props":463,"children":465},{"className":464},[],[466],{"type":28,"value":85},{"type":28,"value":468}," was allocated from\n",{"type":23,"tag":383,"props":470,"children":471},{"type":385},[],{"type":28,"value":473}," support at least one of the\n",{"type":23,"tag":313,"props":475,"children":477},{"href":476},"/man/VkPhysicalDeviceCopyMemoryIndirectPropertiesNV",[478],{"type":28,"value":479},"VkPhysicalDeviceCopyMemoryIndirectPropertiesNV",{"type":28,"value":199},{"type":23,"tag":44,"props":482,"children":484},{"className":483},[],[485],{"type":28,"value":486},"supportedQueues",{"type":23,"tag":356,"props":488,"children":490},{"name":489},"Valid Usage (Implicit)",[491,517,541,567,581],{"type":23,"tag":361,"props":492,"children":494},{"name":493},"VUID-vkCmdCopyMemoryIndirectNV-commandBuffer-parameter",[495],{"type":23,"tag":24,"props":496,"children":497},{},[498,503,504,507,509,515],{"type":23,"tag":44,"props":499,"children":501},{"className":500},[],[502],{"type":28,"value":85},{"type":28,"value":402},{"type":23,"tag":383,"props":505,"children":506},{"type":385},[],{"type":28,"value":508}," be a valid ",{"type":23,"tag":313,"props":510,"children":512},{"href":511},"/man/VkCommandBuffer",[513],{"type":28,"value":514},"VkCommandBuffer",{"type":28,"value":516}," handle",{"type":23,"tag":361,"props":518,"children":520},{"name":519},"VUID-vkCmdCopyMemoryIndirectNV-commandBuffer-recording",[521],{"type":23,"tag":24,"props":522,"children":523},{},[524,529,530,533,535],{"type":23,"tag":44,"props":525,"children":527},{"className":526},[],[528],{"type":28,"value":85},{"type":28,"value":402},{"type":23,"tag":383,"props":531,"children":532},{"type":385},[],{"type":28,"value":534}," be in the ",{"type":23,"tag":313,"props":536,"children":538},{"href":537},"/chapters/commandbuffers#commandbuffers-lifecycle",[539],{"type":28,"value":540},"recording state",{"type":23,"tag":361,"props":542,"children":544},{"name":543},"VUID-vkCmdCopyMemoryIndirectNV-commandBuffer-cmdpool",[545],{"type":23,"tag":24,"props":546,"children":547},{},[548,549,554,555,560,562,565],{"type":28,"value":369},{"type":23,"tag":44,"props":550,"children":552},{"className":551},[],[553],{"type":28,"value":459},{"type":28,"value":461},{"type":23,"tag":44,"props":556,"children":558},{"className":557},[],[559],{"type":28,"value":85},{"type":28,"value":561}," was allocated from ",{"type":23,"tag":383,"props":563,"children":564},{"type":385},[],{"type":28,"value":566}," support transfer, graphics, or compute operations",{"type":23,"tag":361,"props":568,"children":570},{"name":569},"VUID-vkCmdCopyMemoryIndirectNV-renderpass",[571],{"type":23,"tag":24,"props":572,"children":573},{},[574,576,579],{"type":28,"value":575},"This command ",{"type":23,"tag":383,"props":577,"children":578},{"type":385},[],{"type":28,"value":580}," only be called outside of a render pass instance",{"type":23,"tag":361,"props":582,"children":584},{"name":583},"VUID-vkCmdCopyMemoryIndirectNV-videocoding",[585],{"type":23,"tag":24,"props":586,"children":587},{},[588,589,592],{"type":28,"value":575},{"type":23,"tag":383,"props":590,"children":591},{"type":385},[],{"type":28,"value":593}," only be called outside of a video coding scope",{"type":23,"tag":595,"props":596,"children":598},"validity-box",{"name":597},"Host Synchronization",[599],{"type":23,"tag":288,"props":600,"children":601},{},[602,618],{"type":23,"tag":292,"props":603,"children":604},{},[605,607,612,613,616],{"type":28,"value":606},"Host access to ",{"type":23,"tag":44,"props":608,"children":610},{"className":609},[],[611],{"type":28,"value":85},{"type":28,"value":402},{"type":23,"tag":383,"props":614,"children":615},{"type":385},[],{"type":28,"value":617}," be externally synchronized",{"type":23,"tag":292,"props":619,"children":620},{},[621,623,628,629,634,635,638],{"type":28,"value":622},"Host access to the ",{"type":23,"tag":44,"props":624,"children":626},{"className":625},[],[627],{"type":28,"value":459},{"type":28,"value":461},{"type":23,"tag":44,"props":630,"children":632},{"className":631},[],[633],{"type":28,"value":85},{"type":28,"value":561},{"type":23,"tag":383,"props":636,"children":637},{"type":385},[],{"type":28,"value":639}," be externally synchronized\n::",{"type":23,"tag":641,"props":642,"children":643},"style",{},[644],{"type":28,"value":645},"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":647},[],"markdown",1725732599042]