[{"data":1,"prerenderedAt":745},["ShallowReactive",2],{"doyiSnoPDf":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":744,"_id":4},"vkCmdCopyMemoryToAccelerationStructureKHR","Copy device memory to an acceleration structure","VK_KHR_acceleration_structure",[8,9],"primary","secondary","outside",[12],"compute",[14],"action","protos",[],{"type":18,"children":19,"toc":742},"root",[20,28,224,259,293,310,352,365,382,402,418,557,690,736],{"type":21,"tag":22,"props":23,"children":24},"element","p",{},[25],{"type":26,"value":27},"text","To copy device memory to an acceleration structure 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 vkCmdCopyMemoryToAccelerationStructureKHR(\n VkCommandBuffer commandBuffer,\n const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);\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}," vkCmdCopyMemoryToAccelerationStructureKHR",{"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}," VkCopyMemoryToAccelerationStructureInfoKHR",{"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}," pInfo",{"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_to_acceleration_structure_khr(\n command_buffer: vk::CommandBuffer,\n p_info: *const vk::CopyMemoryToAccelerationStructureInfoKHR,\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_to_acceleration_structure_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_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},"CopyMemoryToAccelerationStructureInfoKHR",{"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},"pInfo",{"type":26,"value":249}," is a pointer to a\n",{"type":21,"tag":251,"props":252,"children":254},"a",{"href":253},"/man/VkCopyMemoryToAccelerationStructureInfoKHR",[255],{"type":26,"value":256},"VkCopyMemoryToAccelerationStructureInfoKHR",{"type":26,"value":258}," structure defining the\ncopy operation.",{"type":21,"tag":22,"props":260,"children":261},{},[262,264,270,272,277,279,285,287],{"type":26,"value":263},"Accesses to ",{"type":21,"tag":42,"props":265,"children":267},{"className":266},[],[268],{"type":26,"value":269},"pInfo→dst",{"type":26,"value":271}," ",{"type":21,"tag":273,"props":274,"children":276},"normative",{"type":275},"must",[],{"type":26,"value":278}," be ",{"type":21,"tag":251,"props":280,"children":282},{"href":281},"/chapters/synchronization#synchronization-dependencies",[283],{"type":26,"value":284},"synchronized",{"type":26,"value":286}," with the\n",{"type":21,"tag":42,"props":288,"children":290},{"className":289},[],[291],{"type":26,"value":292},"VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR",{"type":21,"tag":22,"props":294,"children":295},{},[296,302,304],{"type":21,"tag":251,"props":297,"children":299},{"href":298},"/chapters/synchronization#synchronization-pipeline-stages",[300],{"type":26,"value":301},"pipeline stage",{"type":26,"value":303}," or the\n",{"type":21,"tag":42,"props":305,"children":307},{"className":306},[],[308],{"type":26,"value":309},"VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR",{"type":21,"tag":22,"props":311,"children":312},{},[313,317,319,325,327,333,335,341,342,345,347],{"type":21,"tag":251,"props":314,"children":315},{"href":298},[316],{"type":26,"value":301},{"type":26,"value":318},", and an\n",{"type":21,"tag":251,"props":320,"children":322},{"href":321},"/chapters/synchronization#synchronization-access-types",[323],{"type":26,"value":324},"access type",{"type":26,"value":326}," of\n",{"type":21,"tag":42,"props":328,"children":330},{"className":329},[],[331],{"type":26,"value":332},"VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR",{"type":26,"value":334},".\nAccesses to the buffer indicated by ",{"type":21,"tag":42,"props":336,"children":338},{"className":337},[],[339],{"type":26,"value":340},"pInfo→src.deviceAddress",{"type":26,"value":271},{"type":21,"tag":273,"props":343,"children":344},{"type":275},[],{"type":26,"value":346}," be\nsynchronized with the\n",{"type":21,"tag":42,"props":348,"children":350},{"className":349},[],[351],{"type":26,"value":292},{"type":21,"tag":22,"props":353,"children":354},{},[355,359,360],{"type":21,"tag":251,"props":356,"children":357},{"href":298},[358],{"type":26,"value":301},{"type":26,"value":303},{"type":21,"tag":42,"props":361,"children":363},{"className":362},[],[364],{"type":26,"value":309},{"type":21,"tag":22,"props":366,"children":367},{},[368,372,374,380],{"type":21,"tag":251,"props":369,"children":370},{"href":298},[371],{"type":26,"value":301},{"type":26,"value":373},", and an access type of\n",{"type":21,"tag":42,"props":375,"children":377},{"className":376},[],[378],{"type":26,"value":379},"VK_ACCESS_TRANSFER_READ_BIT",{"type":26,"value":381},".",{"type":21,"tag":22,"props":383,"children":384},{},[385,387,393,395,401],{"type":26,"value":386},"This command can accept acceleration structures produced by either\n",{"type":21,"tag":251,"props":388,"children":390},{"href":389},"/man/vkCmdCopyAccelerationStructureToMemoryKHR",[391],{"type":26,"value":392},"vkCmdCopyAccelerationStructureToMemoryKHR",{"type":26,"value":394}," or\n",{"type":21,"tag":251,"props":396,"children":398},{"href":397},"/man/vkCopyAccelerationStructureToMemoryKHR",[399],{"type":26,"value":400},"vkCopyAccelerationStructureToMemoryKHR",{"type":26,"value":381},{"type":21,"tag":22,"props":403,"children":404},{},[405,407,411,413,416],{"type":26,"value":406},"The structure provided as input to deserialize is as described in\n",{"type":21,"tag":251,"props":408,"children":409},{"href":389},[410],{"type":26,"value":392},{"type":26,"value":412},", with any acceleration\nstructure handles filled in with the newly-queried handles to bottom level\nacceleration structures created before deserialization.\nThese do not need to be built at deserialize time, but ",{"type":21,"tag":273,"props":414,"children":415},{"type":275},[],{"type":26,"value":417}," be created.",{"type":21,"tag":419,"props":420,"children":422},"validity-group",{"name":421},"Valid Usage",[423,457,475,501,530],{"type":21,"tag":424,"props":425,"children":427},"validity-field",{"name":426},"VUID-vkCmdCopyMemoryToAccelerationStructureKHR-accelerationStructure-08927",[428],{"type":21,"tag":22,"props":429,"children":430},{},[431,433,450,452,455],{"type":26,"value":432},"The ",{"type":21,"tag":251,"props":434,"children":436},{"href":435},"/man/VkPhysicalDeviceAccelerationStructureFeaturesKHR#features-accelerationStructure",[437,443,444],{"type":21,"tag":42,"props":438,"children":440},{"className":439},[],[441],{"type":26,"value":442},"VkPhysicalDeviceAccelerationStructureFeaturesKHR",{"type":26,"value":172},{"type":21,"tag":42,"props":445,"children":447},{"className":446},[],[448],{"type":26,"value":449},"accelerationStructure",{"type":26,"value":451},"\nfeature ",{"type":21,"tag":273,"props":453,"children":454},{"type":275},[],{"type":26,"value":456}," be enabled",{"type":21,"tag":424,"props":458,"children":460},{"name":459},"VUID-vkCmdCopyMemoryToAccelerationStructureKHR-pInfo-03742",[461],{"type":21,"tag":22,"props":462,"children":463},{},[464,469,470,473],{"type":21,"tag":42,"props":465,"children":467},{"className":466},[],[468],{"type":26,"value":340},{"type":26,"value":271},{"type":21,"tag":273,"props":471,"children":472},{"type":275},[],{"type":26,"value":474}," be a valid device address for a\nbuffer bound to device memory",{"type":21,"tag":424,"props":476,"children":478},{"name":477},"VUID-vkCmdCopyMemoryToAccelerationStructureKHR-pInfo-03743",[479],{"type":21,"tag":22,"props":480,"children":481},{},[482,487,488,491,493,499],{"type":21,"tag":42,"props":483,"children":485},{"className":484},[],[486],{"type":26,"value":340},{"type":26,"value":271},{"type":21,"tag":273,"props":489,"children":490},{"type":275},[],{"type":26,"value":492}," be aligned to ",{"type":21,"tag":42,"props":494,"children":496},{"className":495},[],[497],{"type":26,"value":498},"256",{"type":26,"value":500}," bytes",{"type":21,"tag":424,"props":502,"children":504},{"name":503},"VUID-vkCmdCopyMemoryToAccelerationStructureKHR-pInfo-03744",[505],{"type":21,"tag":22,"props":506,"children":507},{},[508,510,515,517,520,522,528],{"type":26,"value":509},"If the buffer pointed to by ",{"type":21,"tag":42,"props":511,"children":513},{"className":512},[],[514],{"type":26,"value":340},{"type":26,"value":516}," is non-sparse\nthen it ",{"type":21,"tag":273,"props":518,"children":519},{"type":275},[],{"type":26,"value":521}," be bound completely and contiguously to a single\n",{"type":21,"tag":251,"props":523,"children":525},{"href":524},"/man/VkDeviceMemory",[526],{"type":26,"value":527},"VkDeviceMemory",{"type":26,"value":529}," object",{"type":21,"tag":424,"props":531,"children":533},{"name":532},"VUID-vkCmdCopyMemoryToAccelerationStructureKHR-buffer-03745",[534],{"type":21,"tag":22,"props":535,"children":536},{},[537,538,544,546,551,552,555],{"type":26,"value":432},{"type":21,"tag":42,"props":539,"children":541},{"className":540},[],[542],{"type":26,"value":543},"buffer",{"type":26,"value":545}," used to create ",{"type":21,"tag":42,"props":547,"children":549},{"className":548},[],[550],{"type":26,"value":269},{"type":26,"value":271},{"type":21,"tag":273,"props":553,"children":554},{"type":275},[],{"type":26,"value":556}," be bound to\ndevice memory",{"type":21,"tag":419,"props":558,"children":560},{"name":559},"Valid Usage (Implicit)",[561,587,611,635,663,677],{"type":21,"tag":424,"props":562,"children":564},{"name":563},"VUID-vkCmdCopyMemoryToAccelerationStructureKHR-commandBuffer-parameter",[565],{"type":21,"tag":22,"props":566,"children":567},{},[568,573,574,577,579,585],{"type":21,"tag":42,"props":569,"children":571},{"className":570},[],[572],{"type":26,"value":83},{"type":26,"value":271},{"type":21,"tag":273,"props":575,"children":576},{"type":275},[],{"type":26,"value":578}," be a valid ",{"type":21,"tag":251,"props":580,"children":582},{"href":581},"/man/VkCommandBuffer",[583],{"type":26,"value":584},"VkCommandBuffer",{"type":26,"value":586}," handle",{"type":21,"tag":424,"props":588,"children":590},{"name":589},"VUID-vkCmdCopyMemoryToAccelerationStructureKHR-pInfo-parameter",[591],{"type":21,"tag":22,"props":592,"children":593},{},[594,599,600,603,605,609],{"type":21,"tag":42,"props":595,"children":597},{"className":596},[],[598],{"type":26,"value":247},{"type":26,"value":271},{"type":21,"tag":273,"props":601,"children":602},{"type":275},[],{"type":26,"value":604}," be a valid pointer to a valid ",{"type":21,"tag":251,"props":606,"children":607},{"href":253},[608],{"type":26,"value":256},{"type":26,"value":610}," structure",{"type":21,"tag":424,"props":612,"children":614},{"name":613},"VUID-vkCmdCopyMemoryToAccelerationStructureKHR-commandBuffer-recording",[615],{"type":21,"tag":22,"props":616,"children":617},{},[618,623,624,627,629],{"type":21,"tag":42,"props":619,"children":621},{"className":620},[],[622],{"type":26,"value":83},{"type":26,"value":271},{"type":21,"tag":273,"props":625,"children":626},{"type":275},[],{"type":26,"value":628}," be in the ",{"type":21,"tag":251,"props":630,"children":632},{"href":631},"/chapters/commandbuffers#commandbuffers-lifecycle",[633],{"type":26,"value":634},"recording state",{"type":21,"tag":424,"props":636,"children":638},{"name":637},"VUID-vkCmdCopyMemoryToAccelerationStructureKHR-commandBuffer-cmdpool",[639],{"type":21,"tag":22,"props":640,"children":641},{},[642,643,649,651,656,658,661],{"type":26,"value":432},{"type":21,"tag":42,"props":644,"children":646},{"className":645},[],[647],{"type":26,"value":648},"VkCommandPool",{"type":26,"value":650}," that ",{"type":21,"tag":42,"props":652,"children":654},{"className":653},[],[655],{"type":26,"value":83},{"type":26,"value":657}," was allocated from ",{"type":21,"tag":273,"props":659,"children":660},{"type":275},[],{"type":26,"value":662}," support compute operations",{"type":21,"tag":424,"props":664,"children":666},{"name":665},"VUID-vkCmdCopyMemoryToAccelerationStructureKHR-renderpass",[667],{"type":21,"tag":22,"props":668,"children":669},{},[670,672,675],{"type":26,"value":671},"This command ",{"type":21,"tag":273,"props":673,"children":674},{"type":275},[],{"type":26,"value":676}," only be called outside of a render pass instance",{"type":21,"tag":424,"props":678,"children":680},{"name":679},"VUID-vkCmdCopyMemoryToAccelerationStructureKHR-videocoding",[681],{"type":21,"tag":22,"props":682,"children":683},{},[684,685,688],{"type":26,"value":671},{"type":21,"tag":273,"props":686,"children":687},{"type":275},[],{"type":26,"value":689}," only be called outside of a video coding scope",{"type":21,"tag":691,"props":692,"children":694},"validity-box",{"name":693},"Host Synchronization",[695],{"type":21,"tag":225,"props":696,"children":697},{},[698,714],{"type":21,"tag":229,"props":699,"children":700},{},[701,703,708,709,712],{"type":26,"value":702},"Host access to ",{"type":21,"tag":42,"props":704,"children":706},{"className":705},[],[707],{"type":26,"value":83},{"type":26,"value":271},{"type":21,"tag":273,"props":710,"children":711},{"type":275},[],{"type":26,"value":713}," be externally synchronized",{"type":21,"tag":229,"props":715,"children":716},{},[717,719,724,725,730,731,734],{"type":26,"value":718},"Host access to the ",{"type":21,"tag":42,"props":720,"children":722},{"className":721},[],[723],{"type":26,"value":648},{"type":26,"value":650},{"type":21,"tag":42,"props":726,"children":728},{"className":727},[],[729],{"type":26,"value":83},{"type":26,"value":657},{"type":21,"tag":273,"props":732,"children":733},{"type":275},[],{"type":26,"value":735}," be externally synchronized\n::",{"type":21,"tag":737,"props":738,"children":739},"style",{},[740],{"type":26,"value":741},"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":743},[],"markdown",1729612493270]