[{"data":1,"prerenderedAt":637},["ShallowReactive",2],{"$fcjoQOz_5MMzQVAFUcXosH_RxVHl3tayAB4GfTEQCz0I":3},{"title":4,"description":5,"parent":6,"cmd_buf_level":7,"render_pass_scope":10,"supported_queue_types":11,"tasks":13,"type":15,"xrefs":16,"body":17,"_type":636,"_id":4},"vkCmdCopyMemoryKHR","Copy data between memory ranges","VK_KHR_device_address_commands",[8,9],"primary","secondary","outside",[12],"VK_QUEUE_TRANSFER_BIT",[14],"action","protos",[],{"type":18,"children":19,"toc":634},"root",[20,28,224,259,413,583,628],{"type":21,"tag":22,"props":23,"children":24},"element","p",{},[25],{"type":26,"value":27},"text","To copy data between memory ranges, call:",{"type":21,"tag":29,"props":30,"children":31},"code-group",{},[32,118],{"type":21,"tag":33,"props":34,"children":40},"pre",{"className":35,"code":36,"filename":37,"language":38,"meta":39,"style":39},"language-c shiki shiki-themes github-light-default github-dark-default","void vkCmdCopyMemoryKHR(\n VkCommandBuffer commandBuffer,\n const VkCopyDeviceMemoryInfoKHR* pCopyMemoryInfo);\n","C","c","",[41],{"type":21,"tag":42,"props":43,"children":44},"code",{"__ignoreMap":39},[45,69,89],{"type":21,"tag":46,"props":47,"children":50},"span",{"class":48,"line":49},"line",1,[51,57,63],{"type":21,"tag":46,"props":52,"children":54},{"style":53},"--shiki-default:#CF222E;--shiki-dark:#FF7B72",[55],{"type":26,"value":56},"void",{"type":21,"tag":46,"props":58,"children":60},{"style":59},"--shiki-default:#8250DF;--shiki-dark:#D2A8FF",[61],{"type":26,"value":62}," vkCmdCopyMemoryKHR",{"type":21,"tag":46,"props":64,"children":66},{"style":65},"--shiki-default:#1F2328;--shiki-dark:#E6EDF3",[67],{"type":26,"value":68},"(\n",{"type":21,"tag":46,"props":70,"children":72},{"class":48,"line":71},2,[73,78,84],{"type":21,"tag":46,"props":74,"children":75},{"style":65},[76],{"type":26,"value":77}," VkCommandBuffer ",{"type":21,"tag":46,"props":79,"children":81},{"style":80},"--shiki-default:#953800;--shiki-dark:#FFA657",[82],{"type":26,"value":83},"commandBuffer",{"type":21,"tag":46,"props":85,"children":86},{"style":65},[87],{"type":26,"value":88},",\n",{"type":21,"tag":46,"props":90,"children":92},{"class":48,"line":91},3,[93,98,103,108,113],{"type":21,"tag":46,"props":94,"children":95},{"style":53},[96],{"type":26,"value":97}," const",{"type":21,"tag":46,"props":99,"children":100},{"style":65},[101],{"type":26,"value":102}," VkCopyDeviceMemoryInfoKHR",{"type":21,"tag":46,"props":104,"children":105},{"style":53},[106],{"type":26,"value":107},"*",{"type":21,"tag":46,"props":109,"children":110},{"style":80},[111],{"type":26,"value":112}," pCopyMemoryInfo",{"type":21,"tag":46,"props":114,"children":115},{"style":65},[116],{"type":26,"value":117},");\n",{"type":21,"tag":33,"props":119,"children":124},{"className":120,"code":121,"filename":122,"language":123,"meta":39,"style":39},"language-rs shiki shiki-themes github-light-default github-dark-default","pub fn cmd_copy_memory_khr(\n command_buffer: vk::CommandBuffer,\n p_copy_memory_info: *const vk::CopyDeviceMemoryInfoKHR,\n);\n","Rust","rs",[125],{"type":21,"tag":42,"props":126,"children":127},{"__ignoreMap":39},[128,150,182,216],{"type":21,"tag":46,"props":129,"children":130},{"class":48,"line":49},[131,136,141,146],{"type":21,"tag":46,"props":132,"children":133},{"style":53},[134],{"type":26,"value":135},"pub",{"type":21,"tag":46,"props":137,"children":138},{"style":53},[139],{"type":26,"value":140}," fn",{"type":21,"tag":46,"props":142,"children":143},{"style":59},[144],{"type":26,"value":145}," cmd_copy_memory_khr",{"type":21,"tag":46,"props":147,"children":148},{"style":65},[149],{"type":26,"value":68},{"type":21,"tag":46,"props":151,"children":152},{"class":48,"line":71},[153,158,163,168,173,178],{"type":21,"tag":46,"props":154,"children":155},{"style":65},[156],{"type":26,"value":157}," command_buffer",{"type":21,"tag":46,"props":159,"children":160},{"style":53},[161],{"type":26,"value":162},":",{"type":21,"tag":46,"props":164,"children":165},{"style":80},[166],{"type":26,"value":167}," vk",{"type":21,"tag":46,"props":169,"children":170},{"style":53},[171],{"type":26,"value":172},"::",{"type":21,"tag":46,"props":174,"children":175},{"style":80},[176],{"type":26,"value":177},"CommandBuffer",{"type":21,"tag":46,"props":179,"children":180},{"style":65},[181],{"type":26,"value":88},{"type":21,"tag":46,"props":183,"children":184},{"class":48,"line":91},[185,190,194,199,203,207,212],{"type":21,"tag":46,"props":186,"children":187},{"style":65},[188],{"type":26,"value":189}," p_copy_memory_info",{"type":21,"tag":46,"props":191,"children":192},{"style":53},[193],{"type":26,"value":162},{"type":21,"tag":46,"props":195,"children":196},{"style":53},[197],{"type":26,"value":198}," *const",{"type":21,"tag":46,"props":200,"children":201},{"style":80},[202],{"type":26,"value":167},{"type":21,"tag":46,"props":204,"children":205},{"style":53},[206],{"type":26,"value":172},{"type":21,"tag":46,"props":208,"children":209},{"style":80},[210],{"type":26,"value":211},"CopyDeviceMemoryInfoKHR",{"type":21,"tag":46,"props":213,"children":214},{"style":65},[215],{"type":26,"value":88},{"type":21,"tag":46,"props":217,"children":219},{"class":48,"line":218},4,[220],{"type":21,"tag":46,"props":221,"children":222},{"style":65},[223],{"type":26,"value":117},{"type":21,"tag":225,"props":226,"children":227},"ul",{},[228,239],{"type":21,"tag":229,"props":230,"children":231},"li",{},[232,237],{"type":21,"tag":42,"props":233,"children":235},{"className":234},[],[236],{"type":26,"value":83},{"type":26,"value":238}," is the command buffer into which the command will be\nrecorded.",{"type":21,"tag":229,"props":240,"children":241},{},[242,248,250,257],{"type":21,"tag":42,"props":243,"children":245},{"className":244},[],[246],{"type":26,"value":247},"pCopyMemoryInfo",{"type":26,"value":249}," a pointer to a ",{"type":21,"tag":251,"props":252,"children":254},"a",{"href":253},"/man/VkCopyDeviceMemoryInfoKHR",[255],{"type":26,"value":256},"VkCopyDeviceMemoryInfoKHR",{"type":26,"value":258},"\nstructure describing the copies to perform.",{"type":21,"tag":260,"props":261,"children":263},"validity-group",{"name":262},"Valid Usage",[264,322,367],{"type":21,"tag":265,"props":266,"children":268},"validity-field",{"name":267},"VUID-vkCmdCopyMemoryKHR-commandBuffer-13012",[269],{"type":21,"tag":22,"props":270,"children":271},{},[272,274,279,281,291,293,299,301,307,309,314,316],{"type":26,"value":273},"If ",{"type":21,"tag":42,"props":275,"children":277},{"className":276},[],[278],{"type":26,"value":83},{"type":26,"value":280}," is an unprotected command buffer and\n",{"type":21,"tag":251,"props":282,"children":284},{"href":283},"/man/VkPhysicalDeviceVulkan11Properties#limits-protectedNoFault",[285],{"type":21,"tag":42,"props":286,"children":288},{"className":287},[],[289],{"type":26,"value":290},"protectedNoFault",{"type":26,"value":292}," is not supported,\nthe ",{"type":21,"tag":42,"props":294,"children":296},{"className":295},[],[297],{"type":26,"value":298},"srcCopyFlags",{"type":26,"value":300}," member of all elements of\n",{"type":21,"tag":42,"props":302,"children":304},{"className":303},[],[305],{"type":26,"value":306},"pCopyMemoryInfo→pRegions",{"type":26,"value":308}," ",{"type":21,"tag":310,"props":311,"children":313},"normative",{"type":312},"must",[],{"type":26,"value":315}," not include\n",{"type":21,"tag":42,"props":317,"children":319},{"className":318},[],[320],{"type":26,"value":321},"VK_ADDRESS_COMMAND_PROTECTED_BIT_KHR",{"type":21,"tag":265,"props":323,"children":325},{"name":324},"VUID-vkCmdCopyMemoryKHR-commandBuffer-13013",[326],{"type":21,"tag":22,"props":327,"children":328},{},[329,330,335,336,344,345,351,352,357,358,361,362],{"type":26,"value":273},{"type":21,"tag":42,"props":331,"children":333},{"className":332},[],[334],{"type":26,"value":83},{"type":26,"value":280},{"type":21,"tag":251,"props":337,"children":338},{"href":283},[339],{"type":21,"tag":42,"props":340,"children":342},{"className":341},[],[343],{"type":26,"value":290},{"type":26,"value":292},{"type":21,"tag":42,"props":346,"children":348},{"className":347},[],[349],{"type":26,"value":350},"dstCopyFlags",{"type":26,"value":300},{"type":21,"tag":42,"props":353,"children":355},{"className":354},[],[356],{"type":26,"value":306},{"type":26,"value":308},{"type":21,"tag":310,"props":359,"children":360},{"type":312},[],{"type":26,"value":315},{"type":21,"tag":42,"props":363,"children":365},{"className":364},[],[366],{"type":26,"value":321},{"type":21,"tag":265,"props":368,"children":370},{"name":369},"VUID-vkCmdCopyMemoryKHR-commandBuffer-13014",[371],{"type":21,"tag":22,"props":372,"children":373},{},[374,375,380,382,390,391,396,397,402,403,406,408],{"type":26,"value":273},{"type":21,"tag":42,"props":376,"children":378},{"className":377},[],[379],{"type":26,"value":83},{"type":26,"value":381}," is a protected command buffer and\n",{"type":21,"tag":251,"props":383,"children":384},{"href":283},[385],{"type":21,"tag":42,"props":386,"children":388},{"className":387},[],[389],{"type":26,"value":290},{"type":26,"value":292},{"type":21,"tag":42,"props":392,"children":394},{"className":393},[],[395],{"type":26,"value":350},{"type":26,"value":300},{"type":21,"tag":42,"props":398,"children":400},{"className":399},[],[401],{"type":26,"value":306},{"type":26,"value":308},{"type":21,"tag":310,"props":404,"children":405},{"type":312},[],{"type":26,"value":407}," include\n",{"type":21,"tag":42,"props":409,"children":411},{"className":410},[],[412],{"type":26,"value":321},{"type":21,"tag":260,"props":414,"children":416},{"name":415},"Valid Usage (Implicit)",[417,443,483,507,543,557,570],{"type":21,"tag":265,"props":418,"children":420},{"name":419},"VUID-vkCmdCopyMemoryKHR-commandBuffer-parameter",[421],{"type":21,"tag":22,"props":422,"children":423},{},[424,429,430,433,435,441],{"type":21,"tag":42,"props":425,"children":427},{"className":426},[],[428],{"type":26,"value":83},{"type":26,"value":308},{"type":21,"tag":310,"props":431,"children":432},{"type":312},[],{"type":26,"value":434}," be a valid ",{"type":21,"tag":251,"props":436,"children":438},{"href":437},"/man/VkCommandBuffer",[439],{"type":26,"value":440},"VkCommandBuffer",{"type":26,"value":442}," handle",{"type":21,"tag":265,"props":444,"children":446},{"name":445},"VUID-vkCmdCopyMemoryKHR-pCopyMemoryInfo-parameter",[447],{"type":21,"tag":22,"props":448,"children":449},{},[450,451,456,458,464,466,471,472,475,477,481],{"type":26,"value":273},{"type":21,"tag":42,"props":452,"children":454},{"className":453},[],[455],{"type":26,"value":247},{"type":26,"value":457}," is not ",{"type":21,"tag":42,"props":459,"children":461},{"className":460},[],[462],{"type":26,"value":463},"NULL",{"type":26,"value":465},", ",{"type":21,"tag":42,"props":467,"children":469},{"className":468},[],[470],{"type":26,"value":247},{"type":26,"value":308},{"type":21,"tag":310,"props":473,"children":474},{"type":312},[],{"type":26,"value":476}," be a valid pointer to a valid ",{"type":21,"tag":251,"props":478,"children":479},{"href":253},[480],{"type":26,"value":256},{"type":26,"value":482}," structure",{"type":21,"tag":265,"props":484,"children":486},{"name":485},"VUID-vkCmdCopyMemoryKHR-commandBuffer-recording",[487],{"type":21,"tag":22,"props":488,"children":489},{},[490,495,496,499,501],{"type":21,"tag":42,"props":491,"children":493},{"className":492},[],[494],{"type":26,"value":83},{"type":26,"value":308},{"type":21,"tag":310,"props":497,"children":498},{"type":312},[],{"type":26,"value":500}," be in the ",{"type":21,"tag":251,"props":502,"children":504},{"href":503},"/chapters/commandbuffers#commandbuffers-lifecycle",[505],{"type":26,"value":506},"recording state",{"type":21,"tag":265,"props":508,"children":510},{"name":509},"VUID-vkCmdCopyMemoryKHR-commandBuffer-cmdpool",[511],{"type":21,"tag":22,"props":512,"children":513},{},[514,516,522,524,529,531,534,536,541],{"type":26,"value":515},"The ",{"type":21,"tag":42,"props":517,"children":519},{"className":518},[],[520],{"type":26,"value":521},"VkCommandPool",{"type":26,"value":523}," that ",{"type":21,"tag":42,"props":525,"children":527},{"className":526},[],[528],{"type":26,"value":83},{"type":26,"value":530}," was allocated from ",{"type":21,"tag":310,"props":532,"children":533},{"type":312},[],{"type":26,"value":535}," support ",{"type":21,"tag":42,"props":537,"children":539},{"className":538},[],[540],{"type":26,"value":12},{"type":26,"value":542}," operations",{"type":21,"tag":265,"props":544,"children":546},{"name":545},"VUID-vkCmdCopyMemoryKHR-renderpass",[547],{"type":21,"tag":22,"props":548,"children":549},{},[550,552,555],{"type":26,"value":551},"This command ",{"type":21,"tag":310,"props":553,"children":554},{"type":312},[],{"type":26,"value":556}," only be called outside of a render pass instance",{"type":21,"tag":265,"props":558,"children":560},{"name":559},"VUID-vkCmdCopyMemoryKHR-suspended",[561],{"type":21,"tag":22,"props":562,"children":563},{},[564,565,568],{"type":26,"value":551},{"type":21,"tag":310,"props":566,"children":567},{"type":312},[],{"type":26,"value":569}," not be called between suspended render pass instances",{"type":21,"tag":265,"props":571,"children":573},{"name":572},"VUID-vkCmdCopyMemoryKHR-videocoding",[574],{"type":21,"tag":22,"props":575,"children":576},{},[577,578,581],{"type":26,"value":551},{"type":21,"tag":310,"props":579,"children":580},{"type":312},[],{"type":26,"value":582}," only be called outside of a video coding scope",{"type":21,"tag":584,"props":585,"children":587},"validity-box",{"name":586},"Host Synchronization",[588],{"type":21,"tag":225,"props":589,"children":590},{},[591,607],{"type":21,"tag":229,"props":592,"children":593},{},[594,596,601,602,605],{"type":26,"value":595},"Host access to ",{"type":21,"tag":42,"props":597,"children":599},{"className":598},[],[600],{"type":26,"value":83},{"type":26,"value":308},{"type":21,"tag":310,"props":603,"children":604},{"type":312},[],{"type":26,"value":606}," be externally synchronized",{"type":21,"tag":229,"props":608,"children":609},{},[610,612,617,618,623,624,627],{"type":26,"value":611},"Host access to the ",{"type":21,"tag":42,"props":613,"children":615},{"className":614},[],[616],{"type":26,"value":521},{"type":26,"value":523},{"type":21,"tag":42,"props":619,"children":621},{"className":620},[],[622],{"type":26,"value":83},{"type":26,"value":530},{"type":21,"tag":310,"props":625,"children":626},{"type":312},[],{"type":26,"value":606},{"type":21,"tag":629,"props":630,"children":631},"style",{},[632],{"type":26,"value":633},"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":39,"searchDepth":71,"depth":71,"links":635},[],"markdown",1773471469917]