[{"data":1,"prerenderedAt":591},["ShallowReactive",2],{"$f2u38xNjPxnbwCPoHHAnK697-ICeomVfN0JoXehVBhTI":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":590,"_id":4},"vkCmdCopyMemoryIndirectKHR","Copy data between memory regions","VK_KHR_copy_memory_indirect",[8,9],"primary","secondary","outside",[12,13,14],"VK_QUEUE_TRANSFER_BIT","VK_QUEUE_GRAPHICS_BIT","VK_QUEUE_COMPUTE_BIT",[16],"action","protos",[],{"type":20,"children":21,"toc":588},"root",[22,30,226,269,282,371,537,582],{"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 memory, call:",{"type":23,"tag":31,"props":32,"children":33},"code-group",{},[34,120],{"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 vkCmdCopyMemoryIndirectKHR(\n VkCommandBuffer commandBuffer,\n const VkCopyMemoryIndirectInfoKHR* pCopyMemoryIndirectInfo);\n","C","c","",[43],{"type":23,"tag":44,"props":45,"children":46},"code",{"__ignoreMap":41},[47,71,91],{"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}," vkCmdCopyMemoryIndirectKHR",{"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,110,115],{"type":23,"tag":48,"props":96,"children":97},{"style":55},[98],{"type":28,"value":99}," const",{"type":23,"tag":48,"props":101,"children":102},{"style":67},[103],{"type":28,"value":104}," VkCopyMemoryIndirectInfoKHR",{"type":23,"tag":48,"props":106,"children":107},{"style":55},[108],{"type":28,"value":109},"*",{"type":23,"tag":48,"props":111,"children":112},{"style":82},[113],{"type":28,"value":114}," pCopyMemoryIndirectInfo",{"type":23,"tag":48,"props":116,"children":117},{"style":67},[118],{"type":28,"value":119},");\n",{"type":23,"tag":35,"props":121,"children":126},{"className":122,"code":123,"filename":124,"language":125,"meta":41,"style":41},"language-rs shiki shiki-themes github-light-default github-dark-default","pub fn cmd_copy_memory_indirect_khr(\n command_buffer: vk::CommandBuffer,\n p_copy_memory_indirect_info: *const vk::CopyMemoryIndirectInfoKHR,\n);\n","Rust","rs",[127],{"type":23,"tag":44,"props":128,"children":129},{"__ignoreMap":41},[130,152,184,218],{"type":23,"tag":48,"props":131,"children":132},{"class":50,"line":51},[133,138,143,148],{"type":23,"tag":48,"props":134,"children":135},{"style":55},[136],{"type":28,"value":137},"pub",{"type":23,"tag":48,"props":139,"children":140},{"style":55},[141],{"type":28,"value":142}," fn",{"type":23,"tag":48,"props":144,"children":145},{"style":61},[146],{"type":28,"value":147}," cmd_copy_memory_indirect_khr",{"type":23,"tag":48,"props":149,"children":150},{"style":67},[151],{"type":28,"value":70},{"type":23,"tag":48,"props":153,"children":154},{"class":50,"line":73},[155,160,165,170,175,180],{"type":23,"tag":48,"props":156,"children":157},{"style":67},[158],{"type":28,"value":159}," command_buffer",{"type":23,"tag":48,"props":161,"children":162},{"style":55},[163],{"type":28,"value":164},":",{"type":23,"tag":48,"props":166,"children":167},{"style":82},[168],{"type":28,"value":169}," vk",{"type":23,"tag":48,"props":171,"children":172},{"style":55},[173],{"type":28,"value":174},"::",{"type":23,"tag":48,"props":176,"children":177},{"style":82},[178],{"type":28,"value":179},"CommandBuffer",{"type":23,"tag":48,"props":181,"children":182},{"style":67},[183],{"type":28,"value":90},{"type":23,"tag":48,"props":185,"children":186},{"class":50,"line":93},[187,192,196,201,205,209,214],{"type":23,"tag":48,"props":188,"children":189},{"style":67},[190],{"type":28,"value":191}," p_copy_memory_indirect_info",{"type":23,"tag":48,"props":193,"children":194},{"style":55},[195],{"type":28,"value":164},{"type":23,"tag":48,"props":197,"children":198},{"style":55},[199],{"type":28,"value":200}," *const",{"type":23,"tag":48,"props":202,"children":203},{"style":82},[204],{"type":28,"value":169},{"type":23,"tag":48,"props":206,"children":207},{"style":55},[208],{"type":28,"value":174},{"type":23,"tag":48,"props":210,"children":211},{"style":82},[212],{"type":28,"value":213},"CopyMemoryIndirectInfoKHR",{"type":23,"tag":48,"props":215,"children":216},{"style":67},[217],{"type":28,"value":90},{"type":23,"tag":48,"props":219,"children":221},{"class":50,"line":220},4,[222],{"type":23,"tag":48,"props":223,"children":224},{"style":67},[225],{"type":28,"value":119},{"type":23,"tag":227,"props":228,"children":229},"ul",{},[230,241],{"type":23,"tag":231,"props":232,"children":233},"li",{},[234,239],{"type":23,"tag":44,"props":235,"children":237},{"className":236},[],[238],{"type":28,"value":85},{"type":28,"value":240}," is the command buffer into which the command will be\nrecorded.",{"type":23,"tag":231,"props":242,"children":243},{},[244,250,252,259,261,267],{"type":23,"tag":44,"props":245,"children":247},{"className":246},[],[248],{"type":28,"value":249},"pCopyMemoryIndirectInfo",{"type":28,"value":251}," is a pointer to a\n",{"type":23,"tag":253,"props":254,"children":256},"a",{"href":255},"/man/VkCopyMemoryIndirectInfoKHR",[257],{"type":28,"value":258},"VkCopyMemoryIndirectInfoKHR",{"type":28,"value":260}," structure containing the copy\nparameters, including the number of copies to execute and a strided\narray of ",{"type":23,"tag":253,"props":262,"children":264},{"href":263},"/man/VkCopyMemoryIndirectCommandKHR",[265],{"type":28,"value":266},"VkCopyMemoryIndirectCommandKHR",{"type":28,"value":268}," structures.",{"type":23,"tag":24,"props":270,"children":271},{},[272,274,280],{"type":28,"value":273},"Each region specified in the memory referenced by\n",{"type":23,"tag":44,"props":275,"children":277},{"className":276},[],[278],{"type":28,"value":279},"pCopyMemoryIndirectInfo→copyAddressRange",{"type":28,"value":281}," 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":283,"props":284,"children":286},"validity-group",{"name":285},"Valid Usage",[287,316,357],{"type":23,"tag":288,"props":289,"children":291},"validity-field",{"name":290},"VUID-vkCmdCopyMemoryIndirectKHR-indirectMemoryCopy-10935",[292],{"type":23,"tag":24,"props":293,"children":294},{},[295,297,307,309,314],{"type":28,"value":296},"The ",{"type":23,"tag":253,"props":298,"children":300},{"href":299},"/man/VkPhysicalDeviceCopyMemoryIndirectFeaturesKHR#features-indirectMemoryCopy",[301],{"type":23,"tag":44,"props":302,"children":304},{"className":303},[],[305],{"type":28,"value":306},"indirectMemoryCopy",{"type":28,"value":308}," feature\n",{"type":23,"tag":310,"props":311,"children":313},"normative",{"type":312},"must",[],{"type":28,"value":315}," be enabled",{"type":23,"tag":288,"props":317,"children":319},{"name":318},"VUID-vkCmdCopyMemoryIndirectKHR-commandBuffer-10936",[320],{"type":23,"tag":24,"props":321,"children":322},{},[323,324,330,332,337,339,342,344,350,351],{"type":28,"value":296},{"type":23,"tag":253,"props":325,"children":327},{"href":326},"/man/VkCommandPool",[328],{"type":28,"value":329},"VkCommandPool",{"type":28,"value":331}," that ",{"type":23,"tag":44,"props":333,"children":335},{"className":334},[],[336],{"type":28,"value":85},{"type":28,"value":338}," was allocated from\n",{"type":23,"tag":310,"props":340,"children":341},{"type":312},[],{"type":28,"value":343}," support at least one of the queue types specified in\n",{"type":23,"tag":253,"props":345,"children":347},{"href":346},"/man/VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR",[348],{"type":28,"value":349},"VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR",{"type":28,"value":174},{"type":23,"tag":44,"props":352,"children":354},{"className":353},[],[355],{"type":28,"value":356},"supportedQueues",{"type":23,"tag":288,"props":358,"children":360},{"name":359},"VUID-vkCmdCopyMemoryIndirectKHR-commandBuffer-10937",[361],{"type":23,"tag":24,"props":362,"children":363},{},[364,369],{"type":23,"tag":44,"props":365,"children":367},{"className":366},[],[368],{"type":28,"value":85},{"type":28,"value":370}," must not be a protected command buffer",{"type":23,"tag":283,"props":372,"children":374},{"name":373},"Valid Usage (Implicit)",[375,402,426,450,497,511,524],{"type":23,"tag":288,"props":376,"children":378},{"name":377},"VUID-vkCmdCopyMemoryIndirectKHR-commandBuffer-parameter",[379],{"type":23,"tag":24,"props":380,"children":381},{},[382,387,389,392,394,400],{"type":23,"tag":44,"props":383,"children":385},{"className":384},[],[386],{"type":28,"value":85},{"type":28,"value":388}," ",{"type":23,"tag":310,"props":390,"children":391},{"type":312},[],{"type":28,"value":393}," be a valid ",{"type":23,"tag":253,"props":395,"children":397},{"href":396},"/man/VkCommandBuffer",[398],{"type":28,"value":399},"VkCommandBuffer",{"type":28,"value":401}," handle",{"type":23,"tag":288,"props":403,"children":405},{"name":404},"VUID-vkCmdCopyMemoryIndirectKHR-pCopyMemoryIndirectInfo-parameter",[406],{"type":23,"tag":24,"props":407,"children":408},{},[409,414,415,418,420,424],{"type":23,"tag":44,"props":410,"children":412},{"className":411},[],[413],{"type":28,"value":249},{"type":28,"value":388},{"type":23,"tag":310,"props":416,"children":417},{"type":312},[],{"type":28,"value":419}," be a valid pointer to a valid ",{"type":23,"tag":253,"props":421,"children":422},{"href":255},[423],{"type":28,"value":258},{"type":28,"value":425}," structure",{"type":23,"tag":288,"props":427,"children":429},{"name":428},"VUID-vkCmdCopyMemoryIndirectKHR-commandBuffer-recording",[430],{"type":23,"tag":24,"props":431,"children":432},{},[433,438,439,442,444],{"type":23,"tag":44,"props":434,"children":436},{"className":435},[],[437],{"type":28,"value":85},{"type":28,"value":388},{"type":23,"tag":310,"props":440,"children":441},{"type":312},[],{"type":28,"value":443}," be in the ",{"type":23,"tag":253,"props":445,"children":447},{"href":446},"/chapters/commandbuffers#commandbuffers-lifecycle",[448],{"type":28,"value":449},"recording state",{"type":23,"tag":288,"props":451,"children":453},{"name":452},"VUID-vkCmdCopyMemoryIndirectKHR-commandBuffer-cmdpool",[454],{"type":23,"tag":24,"props":455,"children":456},{},[457,458,463,464,469,471,474,476,481,483,488,490,495],{"type":28,"value":296},{"type":23,"tag":44,"props":459,"children":461},{"className":460},[],[462],{"type":28,"value":329},{"type":28,"value":331},{"type":23,"tag":44,"props":465,"children":467},{"className":466},[],[468],{"type":28,"value":85},{"type":28,"value":470}," was allocated from ",{"type":23,"tag":310,"props":472,"children":473},{"type":312},[],{"type":28,"value":475}," support ",{"type":23,"tag":44,"props":477,"children":479},{"className":478},[],[480],{"type":28,"value":14},{"type":28,"value":482},", ",{"type":23,"tag":44,"props":484,"children":486},{"className":485},[],[487],{"type":28,"value":13},{"type":28,"value":489},", or ",{"type":23,"tag":44,"props":491,"children":493},{"className":492},[],[494],{"type":28,"value":12},{"type":28,"value":496}," operations",{"type":23,"tag":288,"props":498,"children":500},{"name":499},"VUID-vkCmdCopyMemoryIndirectKHR-renderpass",[501],{"type":23,"tag":24,"props":502,"children":503},{},[504,506,509],{"type":28,"value":505},"This command ",{"type":23,"tag":310,"props":507,"children":508},{"type":312},[],{"type":28,"value":510}," only be called outside of a render pass instance",{"type":23,"tag":288,"props":512,"children":514},{"name":513},"VUID-vkCmdCopyMemoryIndirectKHR-suspended",[515],{"type":23,"tag":24,"props":516,"children":517},{},[518,519,522],{"type":28,"value":505},{"type":23,"tag":310,"props":520,"children":521},{"type":312},[],{"type":28,"value":523}," not be called between suspended render pass instances",{"type":23,"tag":288,"props":525,"children":527},{"name":526},"VUID-vkCmdCopyMemoryIndirectKHR-videocoding",[528],{"type":23,"tag":24,"props":529,"children":530},{},[531,532,535],{"type":28,"value":505},{"type":23,"tag":310,"props":533,"children":534},{"type":312},[],{"type":28,"value":536}," only be called outside of a video coding scope",{"type":23,"tag":538,"props":539,"children":541},"validity-box",{"name":540},"Host Synchronization",[542],{"type":23,"tag":227,"props":543,"children":544},{},[545,561],{"type":23,"tag":231,"props":546,"children":547},{},[548,550,555,556,559],{"type":28,"value":549},"Host access to ",{"type":23,"tag":44,"props":551,"children":553},{"className":552},[],[554],{"type":28,"value":85},{"type":28,"value":388},{"type":23,"tag":310,"props":557,"children":558},{"type":312},[],{"type":28,"value":560}," be externally synchronized",{"type":23,"tag":231,"props":562,"children":563},{},[564,566,571,572,577,578,581],{"type":28,"value":565},"Host access to the ",{"type":23,"tag":44,"props":567,"children":569},{"className":568},[],[570],{"type":28,"value":329},{"type":28,"value":331},{"type":23,"tag":44,"props":573,"children":575},{"className":574},[],[576],{"type":28,"value":85},{"type":28,"value":470},{"type":23,"tag":310,"props":579,"children":580},{"type":312},[],{"type":28,"value":560},{"type":23,"tag":583,"props":584,"children":585},"style",{},[586],{"type":28,"value":587},"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":589},[],"markdown",1773054788910]