[{"data":1,"prerenderedAt":834},["ShallowReactive",2],{"zt2u4ASyw8":3},{"title":4,"description":5,"parent":6,"type":7,"xrefs":8,"body":9,"_type":833,"_id":4},"vkCreateMicromapEXT","Create a new micromap object","VK_EXT_opacity_micromap","protos",[],{"type":10,"children":11,"toc":831},"root",[12,20,373,445,464,520,591,607,707,825],{"type":13,"tag":14,"props":15,"children":16},"element","p",{},[17],{"type":18,"value":19},"text","To create a micromap, call:",{"type":13,"tag":21,"props":22,"children":23},"code-group",{},[24,157],{"type":13,"tag":25,"props":26,"children":32},"pre",{"className":27,"code":28,"filename":29,"language":30,"meta":31,"style":31},"language-c shiki shiki-themes github-light-default github-dark-default","VkResult vkCreateMicromapEXT(\n VkDevice device,\n const VkMicromapCreateInfoEXT* pCreateInfo,\n const VkAllocationCallbacks* pAllocator,\n VkMicromapEXT* pMicromap);\n","C","c","",[33],{"type":13,"tag":34,"props":35,"children":36},"code",{"__ignoreMap":31},[37,59,79,108,134],{"type":13,"tag":38,"props":39,"children":42},"span",{"class":40,"line":41},"line",1,[43,49,54],{"type":13,"tag":38,"props":44,"children":46},{"style":45},"--shiki-default:#1F2328;--shiki-dark:#E6EDF3",[47],{"type":18,"value":48},"VkResult ",{"type":13,"tag":38,"props":50,"children":52},{"style":51},"--shiki-default:#8250DF;--shiki-dark:#D2A8FF",[53],{"type":18,"value":4},{"type":13,"tag":38,"props":55,"children":56},{"style":45},[57],{"type":18,"value":58},"(\n",{"type":13,"tag":38,"props":60,"children":62},{"class":40,"line":61},2,[63,68,74],{"type":13,"tag":38,"props":64,"children":65},{"style":45},[66],{"type":18,"value":67}," VkDevice ",{"type":13,"tag":38,"props":69,"children":71},{"style":70},"--shiki-default:#953800;--shiki-dark:#FFA657",[72],{"type":18,"value":73},"device",{"type":13,"tag":38,"props":75,"children":76},{"style":45},[77],{"type":18,"value":78},",\n",{"type":13,"tag":38,"props":80,"children":82},{"class":40,"line":81},3,[83,89,94,99,104],{"type":13,"tag":38,"props":84,"children":86},{"style":85},"--shiki-default:#CF222E;--shiki-dark:#FF7B72",[87],{"type":18,"value":88}," const",{"type":13,"tag":38,"props":90,"children":91},{"style":45},[92],{"type":18,"value":93}," VkMicromapCreateInfoEXT",{"type":13,"tag":38,"props":95,"children":96},{"style":85},[97],{"type":18,"value":98},"*",{"type":13,"tag":38,"props":100,"children":101},{"style":70},[102],{"type":18,"value":103}," pCreateInfo",{"type":13,"tag":38,"props":105,"children":106},{"style":45},[107],{"type":18,"value":78},{"type":13,"tag":38,"props":109,"children":111},{"class":40,"line":110},4,[112,116,121,125,130],{"type":13,"tag":38,"props":113,"children":114},{"style":85},[115],{"type":18,"value":88},{"type":13,"tag":38,"props":117,"children":118},{"style":45},[119],{"type":18,"value":120}," VkAllocationCallbacks",{"type":13,"tag":38,"props":122,"children":123},{"style":85},[124],{"type":18,"value":98},{"type":13,"tag":38,"props":126,"children":127},{"style":70},[128],{"type":18,"value":129}," pAllocator",{"type":13,"tag":38,"props":131,"children":132},{"style":45},[133],{"type":18,"value":78},{"type":13,"tag":38,"props":135,"children":137},{"class":40,"line":136},5,[138,143,147,152],{"type":13,"tag":38,"props":139,"children":140},{"style":45},[141],{"type":18,"value":142}," VkMicromapEXT",{"type":13,"tag":38,"props":144,"children":145},{"style":85},[146],{"type":18,"value":98},{"type":13,"tag":38,"props":148,"children":149},{"style":70},[150],{"type":18,"value":151}," pMicromap",{"type":13,"tag":38,"props":153,"children":154},{"style":45},[155],{"type":18,"value":156},");\n",{"type":13,"tag":25,"props":158,"children":163},{"className":159,"code":160,"filename":161,"language":162,"meta":31,"style":31},"language-rs shiki shiki-themes github-light-default github-dark-default","pub fn create_micromap_ext(\n device: crate :: vk :: vk::Device,\n p_create_info: *const vk::MicromapCreateInfoEXT,\n p_allocator: *const vk::AllocationCallbacks,\n p_micromap: *mut vk::MicromapEXT,\n) -> vk::Result;\n","Rust","rs",[164],{"type":13,"tag":34,"props":165,"children":166},{"__ignoreMap":31},[167,189,240,274,307,341],{"type":13,"tag":38,"props":168,"children":169},{"class":40,"line":41},[170,175,180,185],{"type":13,"tag":38,"props":171,"children":172},{"style":85},[173],{"type":18,"value":174},"pub",{"type":13,"tag":38,"props":176,"children":177},{"style":85},[178],{"type":18,"value":179}," fn",{"type":13,"tag":38,"props":181,"children":182},{"style":51},[183],{"type":18,"value":184}," create_micromap_ext",{"type":13,"tag":38,"props":186,"children":187},{"style":45},[188],{"type":18,"value":58},{"type":13,"tag":38,"props":190,"children":191},{"class":40,"line":61},[192,197,202,207,212,217,222,227,231,236],{"type":13,"tag":38,"props":193,"children":194},{"style":45},[195],{"type":18,"value":196}," device",{"type":13,"tag":38,"props":198,"children":199},{"style":85},[200],{"type":18,"value":201},":",{"type":13,"tag":38,"props":203,"children":204},{"style":85},[205],{"type":18,"value":206}," crate",{"type":13,"tag":38,"props":208,"children":209},{"style":85},[210],{"type":18,"value":211}," ::",{"type":13,"tag":38,"props":213,"children":214},{"style":45},[215],{"type":18,"value":216}," vk ",{"type":13,"tag":38,"props":218,"children":219},{"style":85},[220],{"type":18,"value":221},"::",{"type":13,"tag":38,"props":223,"children":224},{"style":70},[225],{"type":18,"value":226}," vk",{"type":13,"tag":38,"props":228,"children":229},{"style":85},[230],{"type":18,"value":221},{"type":13,"tag":38,"props":232,"children":233},{"style":70},[234],{"type":18,"value":235},"Device",{"type":13,"tag":38,"props":237,"children":238},{"style":45},[239],{"type":18,"value":78},{"type":13,"tag":38,"props":241,"children":242},{"class":40,"line":81},[243,248,252,257,261,265,270],{"type":13,"tag":38,"props":244,"children":245},{"style":45},[246],{"type":18,"value":247}," p_create_info",{"type":13,"tag":38,"props":249,"children":250},{"style":85},[251],{"type":18,"value":201},{"type":13,"tag":38,"props":253,"children":254},{"style":85},[255],{"type":18,"value":256}," *const",{"type":13,"tag":38,"props":258,"children":259},{"style":70},[260],{"type":18,"value":226},{"type":13,"tag":38,"props":262,"children":263},{"style":85},[264],{"type":18,"value":221},{"type":13,"tag":38,"props":266,"children":267},{"style":70},[268],{"type":18,"value":269},"MicromapCreateInfoEXT",{"type":13,"tag":38,"props":271,"children":272},{"style":45},[273],{"type":18,"value":78},{"type":13,"tag":38,"props":275,"children":276},{"class":40,"line":110},[277,282,286,290,294,298,303],{"type":13,"tag":38,"props":278,"children":279},{"style":45},[280],{"type":18,"value":281}," p_allocator",{"type":13,"tag":38,"props":283,"children":284},{"style":85},[285],{"type":18,"value":201},{"type":13,"tag":38,"props":287,"children":288},{"style":85},[289],{"type":18,"value":256},{"type":13,"tag":38,"props":291,"children":292},{"style":70},[293],{"type":18,"value":226},{"type":13,"tag":38,"props":295,"children":296},{"style":85},[297],{"type":18,"value":221},{"type":13,"tag":38,"props":299,"children":300},{"style":70},[301],{"type":18,"value":302},"AllocationCallbacks",{"type":13,"tag":38,"props":304,"children":305},{"style":45},[306],{"type":18,"value":78},{"type":13,"tag":38,"props":308,"children":309},{"class":40,"line":136},[310,315,319,324,328,332,337],{"type":13,"tag":38,"props":311,"children":312},{"style":45},[313],{"type":18,"value":314}," p_micromap",{"type":13,"tag":38,"props":316,"children":317},{"style":85},[318],{"type":18,"value":201},{"type":13,"tag":38,"props":320,"children":321},{"style":85},[322],{"type":18,"value":323}," *mut",{"type":13,"tag":38,"props":325,"children":326},{"style":70},[327],{"type":18,"value":226},{"type":13,"tag":38,"props":329,"children":330},{"style":85},[331],{"type":18,"value":221},{"type":13,"tag":38,"props":333,"children":334},{"style":70},[335],{"type":18,"value":336},"MicromapEXT",{"type":13,"tag":38,"props":338,"children":339},{"style":45},[340],{"type":18,"value":78},{"type":13,"tag":38,"props":342,"children":344},{"class":40,"line":343},6,[345,350,355,359,363,368],{"type":13,"tag":38,"props":346,"children":347},{"style":45},[348],{"type":18,"value":349},") ",{"type":13,"tag":38,"props":351,"children":352},{"style":85},[353],{"type":18,"value":354},"->",{"type":13,"tag":38,"props":356,"children":357},{"style":70},[358],{"type":18,"value":226},{"type":13,"tag":38,"props":360,"children":361},{"style":85},[362],{"type":18,"value":221},{"type":13,"tag":38,"props":364,"children":365},{"style":70},[366],{"type":18,"value":367},"Result",{"type":13,"tag":38,"props":369,"children":370},{"style":45},[371],{"type":18,"value":372},";\n",{"type":13,"tag":374,"props":375,"children":376},"ul",{},[377,388,408,427],{"type":13,"tag":378,"props":379,"children":380},"li",{},[381,386],{"type":13,"tag":34,"props":382,"children":384},{"className":383},[],[385],{"type":18,"value":73},{"type":18,"value":387}," is the logical device that creates the acceleration\nstructure object.",{"type":13,"tag":378,"props":389,"children":390},{},[391,397,399,406],{"type":13,"tag":34,"props":392,"children":394},{"className":393},[],[395],{"type":18,"value":396},"pCreateInfo",{"type":18,"value":398}," is a pointer to a ",{"type":13,"tag":400,"props":401,"children":403},"a",{"href":402},"/man/VkMicromapCreateInfoEXT",[404],{"type":18,"value":405},"VkMicromapCreateInfoEXT",{"type":18,"value":407},"\nstructure containing parameters affecting creation of the micromap.",{"type":13,"tag":378,"props":409,"children":410},{},[411,417,419,425],{"type":13,"tag":34,"props":412,"children":414},{"className":413},[],[415],{"type":18,"value":416},"pAllocator",{"type":18,"value":418}," controls host memory allocation as described in the\n",{"type":13,"tag":400,"props":420,"children":422},{"href":421},"/chapters/memory#memory-allocation",[423],{"type":18,"value":424},"Memory Allocation",{"type":18,"value":426}," chapter.",{"type":13,"tag":378,"props":428,"children":429},{},[430,436,437,443],{"type":13,"tag":34,"props":431,"children":433},{"className":432},[],[434],{"type":18,"value":435},"pMicromap",{"type":18,"value":398},{"type":13,"tag":34,"props":438,"children":440},{"className":439},[],[441],{"type":18,"value":442},"VkMicromapEXT",{"type":18,"value":444}," handle in which\nthe resulting micromap object is returned.",{"type":13,"tag":14,"props":446,"children":447},{},[448,450,456,458,462],{"type":18,"value":449},"Similar to other objects in Vulkan, the micromap creation merely creates an\nobject with a specific ",{"type":13,"tag":34,"props":451,"children":453},{"className":452},[],[454],{"type":18,"value":455},"shape",{"type":18,"value":457},".\nThe type and quantity of geometry that can be built into a micromap is\ndetermined by the parameters of ",{"type":13,"tag":400,"props":459,"children":460},{"href":402},[461],{"type":18,"value":405},{"type":18,"value":463},".",{"type":13,"tag":14,"props":465,"children":466},{},[467,469,474,475,481,483,488,490,496,497,503,505,511,513,519],{"type":18,"value":468},"The micromap data is stored in the object referred to by\n",{"type":13,"tag":34,"props":470,"children":472},{"className":471},[],[473],{"type":18,"value":405},{"type":18,"value":221},{"type":13,"tag":34,"props":476,"children":478},{"className":477},[],[479],{"type":18,"value":480},"buffer",{"type":18,"value":482},".\nOnce memory has been bound to that buffer, it ",{"type":13,"tag":484,"props":485,"children":487},"normative",{"type":486},"must",[],{"type":18,"value":489}," be populated by micromap\nbuild or micromap copy commands such as ",{"type":13,"tag":400,"props":491,"children":493},{"href":492},"/man/vkCmdBuildMicromapsEXT",[494],{"type":18,"value":495},"vkCmdBuildMicromapsEXT",{"type":18,"value":78},{"type":13,"tag":400,"props":498,"children":500},{"href":499},"/man/vkBuildMicromapsEXT",[501],{"type":18,"value":502},"vkBuildMicromapsEXT",{"type":18,"value":504},", ",{"type":13,"tag":400,"props":506,"children":508},{"href":507},"/man/vkCmdCopyMicromapEXT",[509],{"type":18,"value":510},"vkCmdCopyMicromapEXT",{"type":18,"value":512},", and\n",{"type":13,"tag":400,"props":514,"children":516},{"href":515},"/man/vkCopyMicromapEXT",[517],{"type":18,"value":518},"vkCopyMicromapEXT",{"type":18,"value":463},{"type":13,"tag":521,"props":522,"children":523},"note",{},[524],{"type":13,"tag":14,"props":525,"children":526},{},[527,529,535,537,543,545,551,553,559,560,566,568,574,576,581,583,589],{"type":18,"value":528},"The expected usage for a trace capture/replay tool is that it will serialize\nand later deserialize the micromap data using micromap copy commands.\nDuring capture the tool will use ",{"type":13,"tag":400,"props":530,"children":532},{"href":531},"/man/vkCopyMicromapToMemoryEXT",[533],{"type":18,"value":534},"vkCopyMicromapToMemoryEXT",{"type":18,"value":536}," or\n",{"type":13,"tag":400,"props":538,"children":540},{"href":539},"/man/vkCmdCopyMicromapToMemoryEXT",[541],{"type":18,"value":542},"vkCmdCopyMicromapToMemoryEXT",{"type":18,"value":544}," with a ",{"type":13,"tag":34,"props":546,"children":548},{"className":547},[],[549],{"type":18,"value":550},"mode",{"type":18,"value":552}," of\n",{"type":13,"tag":34,"props":554,"children":556},{"className":555},[],[557],{"type":18,"value":558},"VK_COPY_MICROMAP_MODE_SERIALIZE_EXT",{"type":18,"value":512},{"type":13,"tag":400,"props":561,"children":563},{"href":562},"/man/vkCopyMemoryToMicromapEXT",[564],{"type":18,"value":565},"vkCopyMemoryToMicromapEXT",{"type":18,"value":567}," or ",{"type":13,"tag":400,"props":569,"children":571},{"href":570},"/man/vkCmdCopyMemoryToMicromapEXT",[572],{"type":18,"value":573},"vkCmdCopyMemoryToMicromapEXT",{"type":18,"value":575}," with a\n",{"type":13,"tag":34,"props":577,"children":579},{"className":578},[],[580],{"type":18,"value":550},{"type":18,"value":582}," of ",{"type":13,"tag":34,"props":584,"children":586},{"className":585},[],[587],{"type":18,"value":588},"VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT",{"type":18,"value":590}," during replay.",{"type":13,"tag":14,"props":592,"children":593},{},[594,596,599,601,605],{"type":18,"value":595},"The input buffers passed to micromap build commands will be referenced by\nthe implementation for the duration of the command.\nMicromaps ",{"type":13,"tag":484,"props":597,"children":598},{"type":486},[],{"type":18,"value":600}," be fully self-contained.\nThe application ",{"type":13,"tag":484,"props":602,"children":604},{"type":603},"can",[],{"type":18,"value":606}," reuse or free any memory which was used by the command\nas an input or as scratch without affecting the results of a subsequent\nacceleration structure build using the micromap or traversal of that\nacceleration structure.",{"type":13,"tag":608,"props":609,"children":611},"validity-group",{"name":610},"Valid Usage",[612,639,677],{"type":13,"tag":613,"props":614,"children":616},"validity-field",{"name":615},"VUID-vkCreateMicromapEXT-micromap-07430",[617],{"type":13,"tag":14,"props":618,"children":619},{},[620,622,632,634,637],{"type":18,"value":621},"The ",{"type":13,"tag":400,"props":623,"children":625},{"href":624},"/man/VkPhysicalDeviceOpacityMicromapFeaturesEXT#features-micromap",[626],{"type":13,"tag":34,"props":627,"children":629},{"className":628},[],[630],{"type":18,"value":631},"micromap",{"type":18,"value":633}," feature ",{"type":13,"tag":484,"props":635,"children":636},{"type":486},[],{"type":18,"value":638}," be enabled",{"type":13,"tag":613,"props":640,"children":642},{"name":641},"VUID-vkCreateMicromapEXT-deviceAddress-07431",[643],{"type":13,"tag":14,"props":644,"children":645},{},[646,648,652,653,659,661,671,673,676],{"type":18,"value":647},"If ",{"type":13,"tag":400,"props":649,"children":650},{"href":402},[651],{"type":18,"value":405},{"type":18,"value":221},{"type":13,"tag":34,"props":654,"children":656},{"className":655},[],[657],{"type":18,"value":658},"deviceAddress",{"type":18,"value":660}," is not zero, the\n",{"type":13,"tag":400,"props":662,"children":664},{"href":663},"/man/VkPhysicalDeviceOpacityMicromapFeaturesEXT#features-micromapCaptureReplay",[665],{"type":13,"tag":34,"props":666,"children":668},{"className":667},[],[669],{"type":18,"value":670},"micromapCaptureReplay",{"type":18,"value":672}," feature\n",{"type":13,"tag":484,"props":674,"children":675},{"type":486},[],{"type":18,"value":638},{"type":13,"tag":613,"props":678,"children":680},{"name":679},"VUID-vkCreateMicromapEXT-device-07432",[681],{"type":13,"tag":14,"props":682,"children":683},{},[684,685,690,692,702,703,706],{"type":18,"value":647},{"type":13,"tag":34,"props":686,"children":688},{"className":687},[],[689],{"type":18,"value":73},{"type":18,"value":691}," was created with multiple physical devices, then the\n",{"type":13,"tag":400,"props":693,"children":695},{"href":694},"/man/VkPhysicalDeviceBufferDeviceAddressFeatures#features-bufferDeviceAddressMultiDevice",[696],{"type":13,"tag":34,"props":697,"children":699},{"className":698},[],[700],{"type":18,"value":701},"bufferDeviceAddressMultiDevice",{"type":18,"value":633},{"type":13,"tag":484,"props":704,"children":705},{"type":486},[],{"type":18,"value":638},{"type":13,"tag":608,"props":708,"children":710},{"name":709},"Valid Usage (Implicit)",[711,738,762,801],{"type":13,"tag":613,"props":712,"children":714},{"name":713},"VUID-vkCreateMicromapEXT-device-parameter",[715],{"type":13,"tag":14,"props":716,"children":717},{},[718,723,725,728,730,736],{"type":13,"tag":34,"props":719,"children":721},{"className":720},[],[722],{"type":18,"value":73},{"type":18,"value":724}," ",{"type":13,"tag":484,"props":726,"children":727},{"type":486},[],{"type":18,"value":729}," be a valid ",{"type":13,"tag":400,"props":731,"children":733},{"href":732},"/man/VkDevice",[734],{"type":18,"value":735},"VkDevice",{"type":18,"value":737}," handle",{"type":13,"tag":613,"props":739,"children":741},{"name":740},"VUID-vkCreateMicromapEXT-pCreateInfo-parameter",[742],{"type":13,"tag":14,"props":743,"children":744},{},[745,750,751,754,756,760],{"type":13,"tag":34,"props":746,"children":748},{"className":747},[],[749],{"type":18,"value":396},{"type":18,"value":724},{"type":13,"tag":484,"props":752,"children":753},{"type":486},[],{"type":18,"value":755}," be a valid pointer to a valid ",{"type":13,"tag":400,"props":757,"children":758},{"href":402},[759],{"type":18,"value":405},{"type":18,"value":761}," structure",{"type":13,"tag":613,"props":763,"children":765},{"name":764},"VUID-vkCreateMicromapEXT-pAllocator-parameter",[766],{"type":13,"tag":14,"props":767,"children":768},{},[769,770,775,777,783,784,789,790,793,794,800],{"type":18,"value":647},{"type":13,"tag":34,"props":771,"children":773},{"className":772},[],[774],{"type":18,"value":416},{"type":18,"value":776}," is not ",{"type":13,"tag":34,"props":778,"children":780},{"className":779},[],[781],{"type":18,"value":782},"NULL",{"type":18,"value":504},{"type":13,"tag":34,"props":785,"children":787},{"className":786},[],[788],{"type":18,"value":416},{"type":18,"value":724},{"type":13,"tag":484,"props":791,"children":792},{"type":486},[],{"type":18,"value":755},{"type":13,"tag":400,"props":795,"children":797},{"href":796},"/man/VkAllocationCallbacks",[798],{"type":18,"value":799},"VkAllocationCallbacks",{"type":18,"value":761},{"type":13,"tag":613,"props":802,"children":804},{"name":803},"VUID-vkCreateMicromapEXT-pMicromap-parameter",[805],{"type":13,"tag":14,"props":806,"children":807},{},[808,813,814,817,819,824],{"type":13,"tag":34,"props":809,"children":811},{"className":810},[],[812],{"type":18,"value":435},{"type":18,"value":724},{"type":13,"tag":484,"props":815,"children":816},{"type":486},[],{"type":18,"value":818}," be a valid pointer to a ",{"type":13,"tag":400,"props":820,"children":822},{"href":821},"/man/VkMicromapEXT",[823],{"type":18,"value":442},{"type":18,"value":737},{"type":13,"tag":826,"props":827,"children":828},"style",{},[829],{"type":18,"value":830},"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":31,"searchDepth":61,"depth":61,"links":832},[],"markdown",1725732613289]