[{"data":1,"prerenderedAt":731},["ShallowReactive",2],{"c5a4ATOXGD":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":730,"_id":4},"vkCmdCopyMicromapToMemoryEXT","Copy a micromap to device memory","VK_EXT_opacity_micromap",[8,9],"primary","secondary","outside",[12],"compute",[14],"action","protos",[],{"type":18,"children":19,"toc":728},"root",[20,28,224,259,293,347,381,386,391,436,543,676,722],{"type":21,"tag":22,"props":23,"children":24},"element","p",{},[25],{"type":26,"value":27},"text","To copy a micromap to device memory 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 vkCmdCopyMicromapToMemoryEXT(\n VkCommandBuffer commandBuffer,\n const VkCopyMicromapToMemoryInfoEXT* 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}," vkCmdCopyMicromapToMemoryEXT",{"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}," VkCopyMicromapToMemoryInfoEXT",{"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_micromap_to_memory_ext(\n command_buffer: vk::CommandBuffer,\n p_info: *const vk::CopyMicromapToMemoryInfoEXT,\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_micromap_to_memory_ext",{"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},"CopyMicromapToMemoryInfoEXT",{"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 an a pointer to a ",{"type":21,"tag":251,"props":252,"children":254},"a",{"href":253},"/man/VkCopyMicromapToMemoryInfoEXT",[255],{"type":26,"value":256},"VkCopyMicromapToMemoryInfoEXT",{"type":26,"value":258},"\nstructure defining the copy 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→src",{"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 ",{"type":21,"tag":42,"props":288,"children":290},{"className":289},[],[291],{"type":26,"value":292},"VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT",{"type":21,"tag":22,"props":294,"children":295},{},[296,302,304,310,312,318,320,326,327,330,332,337,339,345],{"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}," and an\n",{"type":21,"tag":251,"props":305,"children":307},{"href":306},"/chapters/synchronization#synchronization-access-types",[308],{"type":26,"value":309},"access type",{"type":26,"value":311}," of\n",{"type":21,"tag":42,"props":313,"children":315},{"className":314},[],[316],{"type":26,"value":317},"VK_ACCESS_2_MICROMAP_READ_BIT_EXT",{"type":26,"value":319},".\nAccesses to the buffer indicated by ",{"type":21,"tag":42,"props":321,"children":323},{"className":322},[],[324],{"type":26,"value":325},"pInfo→dst.deviceAddress",{"type":26,"value":271},{"type":21,"tag":273,"props":328,"children":329},{"type":275},[],{"type":26,"value":331}," be\nsynchronized with the ",{"type":21,"tag":42,"props":333,"children":335},{"className":334},[],[336],{"type":26,"value":292},{"type":26,"value":338},"\npipeline stage and an access type of ",{"type":21,"tag":42,"props":340,"children":342},{"className":341},[],[343],{"type":26,"value":344},"VK_ACCESS_TRANSFER_WRITE_BIT",{"type":26,"value":346},".",{"type":21,"tag":22,"props":348,"children":349},{},[350,352,358,360,364,366,372,374,380],{"type":26,"value":351},"This command produces the same results as ",{"type":21,"tag":251,"props":353,"children":355},{"href":354},"/man/vkCopyMicromapToMemoryEXT",[356],{"type":26,"value":357},"vkCopyMicromapToMemoryEXT",{"type":26,"value":359},",\nbut writes its result to a device address, and is executed on the device\nrather than the host.\nThe output ",{"type":21,"tag":273,"props":361,"children":363},{"type":362},"may",[],{"type":26,"value":365}," not necessarily be bit-for-bit identical, but it can be\nequally used by either ",{"type":21,"tag":251,"props":367,"children":369},{"href":368},"/man/vkCmdCopyMemoryToMicromapEXT",[370],{"type":26,"value":371},"vkCmdCopyMemoryToMicromapEXT",{"type":26,"value":373}," or\n",{"type":21,"tag":251,"props":375,"children":377},{"href":376},"/man/vkCopyMemoryToMicromapEXT",[378],{"type":26,"value":379},"vkCopyMemoryToMicromapEXT",{"type":26,"value":346},{"type":21,"tag":382,"props":383,"children":385},"anchor",{"id":384},"serialized-micromap-header",[],{"type":21,"tag":22,"props":387,"children":388},{},[389],{"type":26,"value":390},"The defined header structure for the serialized data consists of:",{"type":21,"tag":225,"props":392,"children":393},{},[394,418],{"type":21,"tag":229,"props":395,"children":396},{},[397,403,405,411,412],{"type":21,"tag":42,"props":398,"children":400},{"className":399},[],[401],{"type":26,"value":402},"VK_UUID_SIZE",{"type":26,"value":404}," bytes of data matching\n",{"type":21,"tag":42,"props":406,"children":408},{"className":407},[],[409],{"type":26,"value":410},"VkPhysicalDeviceIDProperties",{"type":26,"value":172},{"type":21,"tag":42,"props":413,"children":415},{"className":414},[],[416],{"type":26,"value":417},"driverUUID",{"type":21,"tag":229,"props":419,"children":420},{},[421,426,428,434],{"type":21,"tag":42,"props":422,"children":424},{"className":423},[],[425],{"type":26,"value":402},{"type":26,"value":427}," bytes of data identifying the compatibility for\ncomparison using ",{"type":21,"tag":251,"props":429,"children":431},{"href":430},"/man/vkGetDeviceMicromapCompatibilityEXT",[432],{"type":26,"value":433},"vkGetDeviceMicromapCompatibilityEXT",{"type":26,"value":435},"\nThe serialized data is written to the buffer (or read from the buffer)\naccording to the host endianness.",{"type":21,"tag":437,"props":438,"children":440},"validity-group",{"name":439},"Valid Usage",[441,460,486,515],{"type":21,"tag":442,"props":443,"children":445},"validity-field",{"name":444},"VUID-vkCmdCopyMicromapToMemoryEXT-pInfo-07536",[446],{"type":21,"tag":22,"props":447,"children":448},{},[449,454,455,458],{"type":21,"tag":42,"props":450,"children":452},{"className":451},[],[453],{"type":26,"value":325},{"type":26,"value":271},{"type":21,"tag":273,"props":456,"children":457},{"type":275},[],{"type":26,"value":459}," be a valid device address for a\nbuffer bound to device memory",{"type":21,"tag":442,"props":461,"children":463},{"name":462},"VUID-vkCmdCopyMicromapToMemoryEXT-pInfo-07537",[464],{"type":21,"tag":22,"props":465,"children":466},{},[467,472,473,476,478,484],{"type":21,"tag":42,"props":468,"children":470},{"className":469},[],[471],{"type":26,"value":325},{"type":26,"value":271},{"type":21,"tag":273,"props":474,"children":475},{"type":275},[],{"type":26,"value":477}," be aligned to ",{"type":21,"tag":42,"props":479,"children":481},{"className":480},[],[482],{"type":26,"value":483},"256",{"type":26,"value":485}," bytes",{"type":21,"tag":442,"props":487,"children":489},{"name":488},"VUID-vkCmdCopyMicromapToMemoryEXT-pInfo-07538",[490],{"type":21,"tag":22,"props":491,"children":492},{},[493,495,500,502,505,507,513],{"type":26,"value":494},"If the buffer pointed to by ",{"type":21,"tag":42,"props":496,"children":498},{"className":497},[],[499],{"type":26,"value":325},{"type":26,"value":501}," is non-sparse\nthen it ",{"type":21,"tag":273,"props":503,"children":504},{"type":275},[],{"type":26,"value":506}," be bound completely and contiguously to a single\n",{"type":21,"tag":251,"props":508,"children":510},{"href":509},"/man/VkDeviceMemory",[511],{"type":26,"value":512},"VkDeviceMemory",{"type":26,"value":514}," object",{"type":21,"tag":442,"props":516,"children":518},{"name":517},"VUID-vkCmdCopyMicromapToMemoryEXT-buffer-07539",[519],{"type":21,"tag":22,"props":520,"children":521},{},[522,524,530,532,537,538,541],{"type":26,"value":523},"The ",{"type":21,"tag":42,"props":525,"children":527},{"className":526},[],[528],{"type":26,"value":529},"buffer",{"type":26,"value":531}," used to create ",{"type":21,"tag":42,"props":533,"children":535},{"className":534},[],[536],{"type":26,"value":269},{"type":26,"value":271},{"type":21,"tag":273,"props":539,"children":540},{"type":275},[],{"type":26,"value":542}," be bound to\ndevice memory",{"type":21,"tag":437,"props":544,"children":546},{"name":545},"Valid Usage (Implicit)",[547,573,597,621,649,663],{"type":21,"tag":442,"props":548,"children":550},{"name":549},"VUID-vkCmdCopyMicromapToMemoryEXT-commandBuffer-parameter",[551],{"type":21,"tag":22,"props":552,"children":553},{},[554,559,560,563,565,571],{"type":21,"tag":42,"props":555,"children":557},{"className":556},[],[558],{"type":26,"value":83},{"type":26,"value":271},{"type":21,"tag":273,"props":561,"children":562},{"type":275},[],{"type":26,"value":564}," be a valid ",{"type":21,"tag":251,"props":566,"children":568},{"href":567},"/man/VkCommandBuffer",[569],{"type":26,"value":570},"VkCommandBuffer",{"type":26,"value":572}," handle",{"type":21,"tag":442,"props":574,"children":576},{"name":575},"VUID-vkCmdCopyMicromapToMemoryEXT-pInfo-parameter",[577],{"type":21,"tag":22,"props":578,"children":579},{},[580,585,586,589,591,595],{"type":21,"tag":42,"props":581,"children":583},{"className":582},[],[584],{"type":26,"value":247},{"type":26,"value":271},{"type":21,"tag":273,"props":587,"children":588},{"type":275},[],{"type":26,"value":590}," be a valid pointer to a valid ",{"type":21,"tag":251,"props":592,"children":593},{"href":253},[594],{"type":26,"value":256},{"type":26,"value":596}," structure",{"type":21,"tag":442,"props":598,"children":600},{"name":599},"VUID-vkCmdCopyMicromapToMemoryEXT-commandBuffer-recording",[601],{"type":21,"tag":22,"props":602,"children":603},{},[604,609,610,613,615],{"type":21,"tag":42,"props":605,"children":607},{"className":606},[],[608],{"type":26,"value":83},{"type":26,"value":271},{"type":21,"tag":273,"props":611,"children":612},{"type":275},[],{"type":26,"value":614}," be in the ",{"type":21,"tag":251,"props":616,"children":618},{"href":617},"/chapters/commandbuffers#commandbuffers-lifecycle",[619],{"type":26,"value":620},"recording state",{"type":21,"tag":442,"props":622,"children":624},{"name":623},"VUID-vkCmdCopyMicromapToMemoryEXT-commandBuffer-cmdpool",[625],{"type":21,"tag":22,"props":626,"children":627},{},[628,629,635,637,642,644,647],{"type":26,"value":523},{"type":21,"tag":42,"props":630,"children":632},{"className":631},[],[633],{"type":26,"value":634},"VkCommandPool",{"type":26,"value":636}," that ",{"type":21,"tag":42,"props":638,"children":640},{"className":639},[],[641],{"type":26,"value":83},{"type":26,"value":643}," was allocated from ",{"type":21,"tag":273,"props":645,"children":646},{"type":275},[],{"type":26,"value":648}," support compute operations",{"type":21,"tag":442,"props":650,"children":652},{"name":651},"VUID-vkCmdCopyMicromapToMemoryEXT-renderpass",[653],{"type":21,"tag":22,"props":654,"children":655},{},[656,658,661],{"type":26,"value":657},"This command ",{"type":21,"tag":273,"props":659,"children":660},{"type":275},[],{"type":26,"value":662}," only be called outside of a render pass instance",{"type":21,"tag":442,"props":664,"children":666},{"name":665},"VUID-vkCmdCopyMicromapToMemoryEXT-videocoding",[667],{"type":21,"tag":22,"props":668,"children":669},{},[670,671,674],{"type":26,"value":657},{"type":21,"tag":273,"props":672,"children":673},{"type":275},[],{"type":26,"value":675}," only be called outside of a video coding scope",{"type":21,"tag":677,"props":678,"children":680},"validity-box",{"name":679},"Host Synchronization",[681],{"type":21,"tag":225,"props":682,"children":683},{},[684,700],{"type":21,"tag":229,"props":685,"children":686},{},[687,689,694,695,698],{"type":26,"value":688},"Host access to ",{"type":21,"tag":42,"props":690,"children":692},{"className":691},[],[693],{"type":26,"value":83},{"type":26,"value":271},{"type":21,"tag":273,"props":696,"children":697},{"type":275},[],{"type":26,"value":699}," be externally synchronized",{"type":21,"tag":229,"props":701,"children":702},{},[703,705,710,711,716,717,720],{"type":26,"value":704},"Host access to the ",{"type":21,"tag":42,"props":706,"children":708},{"className":707},[],[709],{"type":26,"value":634},{"type":26,"value":636},{"type":21,"tag":42,"props":712,"children":714},{"className":713},[],[715],{"type":26,"value":83},{"type":26,"value":643},{"type":21,"tag":273,"props":718,"children":719},{"type":275},[],{"type":26,"value":721}," be externally synchronized\n::",{"type":21,"tag":723,"props":724,"children":725},"style",{},[726],{"type":26,"value":727},"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":729},[],"markdown",1729612493662]