[{"data":1,"prerenderedAt":598},["ShallowReactive",2],{"LsZNFRWWj8":3},{"title":4,"description":5,"parent":6,"type":7,"xrefs":8,"body":9,"_type":597,"_id":4},"vkGetAccelerationStructureDeviceAddressKHR","Query an address of an acceleration structure","VK_KHR_acceleration_structure","protos",[],{"type":10,"children":11,"toc":595},"root",[12,20,258,293,298,318,373,383,405,535,589],{"type":13,"tag":14,"props":15,"children":16},"element","p",{},[17],{"type":18,"value":19},"text","To query the 64-bit device address for an acceleration structure, call:",{"type":13,"tag":21,"props":22,"children":23},"code-group",{},[24,109],{"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","VkDeviceAddress vkGetAccelerationStructureDeviceAddressKHR(\n VkDevice device,\n const VkAccelerationStructureDeviceAddressInfoKHR* pInfo);\n","C","c","",[33],{"type":13,"tag":34,"props":35,"children":36},"code",{"__ignoreMap":31},[37,59,79],{"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},"VkDeviceAddress ",{"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}," VkAccelerationStructureDeviceAddressInfoKHR",{"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}," pInfo",{"type":13,"tag":38,"props":105,"children":106},{"style":45},[107],{"type":18,"value":108},");\n",{"type":13,"tag":25,"props":110,"children":115},{"className":111,"code":112,"filename":113,"language":114,"meta":31,"style":31},"language-rs shiki shiki-themes github-light-default github-dark-default","pub fn get_acceleration_structure_device_address_khr(\n device: crate :: vk :: vk::Device,\n p_info: *const vk::AccelerationStructureDeviceAddressInfoKHR,\n) -> vk::DeviceAddress;\n","Rust","rs",[116],{"type":13,"tag":34,"props":117,"children":118},{"__ignoreMap":31},[119,141,192,226],{"type":13,"tag":38,"props":120,"children":121},{"class":40,"line":41},[122,127,132,137],{"type":13,"tag":38,"props":123,"children":124},{"style":85},[125],{"type":18,"value":126},"pub",{"type":13,"tag":38,"props":128,"children":129},{"style":85},[130],{"type":18,"value":131}," fn",{"type":13,"tag":38,"props":133,"children":134},{"style":51},[135],{"type":18,"value":136}," get_acceleration_structure_device_address_khr",{"type":13,"tag":38,"props":138,"children":139},{"style":45},[140],{"type":18,"value":58},{"type":13,"tag":38,"props":142,"children":143},{"class":40,"line":61},[144,149,154,159,164,169,174,179,183,188],{"type":13,"tag":38,"props":145,"children":146},{"style":45},[147],{"type":18,"value":148}," device",{"type":13,"tag":38,"props":150,"children":151},{"style":85},[152],{"type":18,"value":153},":",{"type":13,"tag":38,"props":155,"children":156},{"style":85},[157],{"type":18,"value":158}," crate",{"type":13,"tag":38,"props":160,"children":161},{"style":85},[162],{"type":18,"value":163}," ::",{"type":13,"tag":38,"props":165,"children":166},{"style":45},[167],{"type":18,"value":168}," vk ",{"type":13,"tag":38,"props":170,"children":171},{"style":85},[172],{"type":18,"value":173},"::",{"type":13,"tag":38,"props":175,"children":176},{"style":70},[177],{"type":18,"value":178}," vk",{"type":13,"tag":38,"props":180,"children":181},{"style":85},[182],{"type":18,"value":173},{"type":13,"tag":38,"props":184,"children":185},{"style":70},[186],{"type":18,"value":187},"Device",{"type":13,"tag":38,"props":189,"children":190},{"style":45},[191],{"type":18,"value":78},{"type":13,"tag":38,"props":193,"children":194},{"class":40,"line":81},[195,200,204,209,213,217,222],{"type":13,"tag":38,"props":196,"children":197},{"style":45},[198],{"type":18,"value":199}," p_info",{"type":13,"tag":38,"props":201,"children":202},{"style":85},[203],{"type":18,"value":153},{"type":13,"tag":38,"props":205,"children":206},{"style":85},[207],{"type":18,"value":208}," *const",{"type":13,"tag":38,"props":210,"children":211},{"style":70},[212],{"type":18,"value":178},{"type":13,"tag":38,"props":214,"children":215},{"style":85},[216],{"type":18,"value":173},{"type":13,"tag":38,"props":218,"children":219},{"style":70},[220],{"type":18,"value":221},"AccelerationStructureDeviceAddressInfoKHR",{"type":13,"tag":38,"props":223,"children":224},{"style":45},[225],{"type":18,"value":78},{"type":13,"tag":38,"props":227,"children":229},{"class":40,"line":228},4,[230,235,240,244,248,253],{"type":13,"tag":38,"props":231,"children":232},{"style":45},[233],{"type":18,"value":234},") ",{"type":13,"tag":38,"props":236,"children":237},{"style":85},[238],{"type":18,"value":239},"->",{"type":13,"tag":38,"props":241,"children":242},{"style":70},[243],{"type":18,"value":178},{"type":13,"tag":38,"props":245,"children":246},{"style":85},[247],{"type":18,"value":173},{"type":13,"tag":38,"props":249,"children":250},{"style":70},[251],{"type":18,"value":252},"DeviceAddress",{"type":13,"tag":38,"props":254,"children":255},{"style":45},[256],{"type":18,"value":257},";\n",{"type":13,"tag":259,"props":260,"children":261},"ul",{},[262,273],{"type":13,"tag":263,"props":264,"children":265},"li",{},[266,271],{"type":13,"tag":34,"props":267,"children":269},{"className":268},[],[270],{"type":18,"value":73},{"type":18,"value":272}," is the logical device that the acceleration structure was\ncreated on.",{"type":13,"tag":263,"props":274,"children":275},{},[276,282,284,291],{"type":13,"tag":34,"props":277,"children":279},{"className":278},[],[280],{"type":18,"value":281},"pInfo",{"type":18,"value":283}," is a pointer to a\n",{"type":13,"tag":285,"props":286,"children":288},"a",{"href":287},"/man/VkAccelerationStructureDeviceAddressInfoKHR",[289],{"type":18,"value":290},"VkAccelerationStructureDeviceAddressInfoKHR",{"type":18,"value":292}," structure specifying\nthe acceleration structure to retrieve an address for.",{"type":13,"tag":14,"props":294,"children":295},{},[296],{"type":18,"value":297},"The 64-bit return value is an address of the acceleration structure, which\ncan be used for device and shader operations that involve acceleration\nstructures, such as\nray traversal and\nacceleration structure building.",{"type":13,"tag":14,"props":299,"children":300},{},[301,303,309,310,316],{"type":18,"value":302},"If the acceleration structure was created with a non-zero value of\n",{"type":13,"tag":285,"props":304,"children":306},{"href":305},"/man/VkAccelerationStructureCreateInfoKHR",[307],{"type":18,"value":308},"VkAccelerationStructureCreateInfoKHR",{"type":18,"value":173},{"type":13,"tag":34,"props":311,"children":313},{"className":312},[],[314],{"type":18,"value":315},"deviceAddress",{"type":18,"value":317},", the return\nvalue will be the same address.",{"type":13,"tag":14,"props":319,"children":320},{},[321,323,329,331,337,339,344,346,351,353,358,360,366,368,371],{"type":18,"value":322},"If the acceleration structure was created with a ",{"type":13,"tag":34,"props":324,"children":326},{"className":325},[],[327],{"type":18,"value":328},"type",{"type":18,"value":330}," of\n",{"type":13,"tag":34,"props":332,"children":334},{"className":333},[],[335],{"type":18,"value":336},"VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR",{"type":18,"value":338},", the returned address ",{"type":13,"tag":340,"props":341,"children":343},"normative",{"type":342},"must",[],{"type":18,"value":345},"\nbe consistent with the relative offset to other acceleration structures with\n",{"type":13,"tag":34,"props":347,"children":349},{"className":348},[],[350],{"type":18,"value":328},{"type":18,"value":352}," ",{"type":13,"tag":34,"props":354,"children":356},{"className":355},[],[357],{"type":18,"value":336},{"type":18,"value":359}," allocated with\nthe same ",{"type":13,"tag":285,"props":361,"children":363},{"href":362},"/man/VkBuffer",[364],{"type":18,"value":365},"VkBuffer",{"type":18,"value":367},".\nThat is, the difference in returned addresses between the two ",{"type":13,"tag":340,"props":369,"children":370},{"type":342},[],{"type":18,"value":372}," be the\nsame as the difference in offsets provided at acceleration structure\ncreation.",{"type":13,"tag":14,"props":374,"children":375},{},[376,378,381],{"type":18,"value":377},"The returned address ",{"type":13,"tag":340,"props":379,"children":380},{"type":342},[],{"type":18,"value":382}," be aligned to 256 bytes.",{"type":13,"tag":384,"props":385,"children":386},"note",{},[387],{"type":13,"tag":14,"props":388,"children":389},{},[390,392,396,398,403],{"type":18,"value":391},"The acceleration structure device address ",{"type":13,"tag":340,"props":393,"children":395},{"type":394},"may",[],{"type":18,"value":397}," be different from the buffer\ndevice address corresponding to the acceleration structure’s start offset in\nits storage buffer for acceleration structure types other than\n",{"type":13,"tag":34,"props":399,"children":401},{"className":400},[],[402],{"type":18,"value":336},{"type":18,"value":404},".",{"type":13,"tag":406,"props":407,"children":409},"validity-group",{"name":408},"Valid Usage",[410,444,476,506],{"type":13,"tag":411,"props":412,"children":414},"validity-field",{"name":413},"VUID-vkGetAccelerationStructureDeviceAddressKHR-accelerationStructure-08935",[415],{"type":13,"tag":14,"props":416,"children":417},{},[418,420,437,439,442],{"type":18,"value":419},"The ",{"type":13,"tag":285,"props":421,"children":423},{"href":422},"/man/VkPhysicalDeviceAccelerationStructureFeaturesKHR#features-accelerationStructure",[424,430,431],{"type":13,"tag":34,"props":425,"children":427},{"className":426},[],[428],{"type":18,"value":429},"VkPhysicalDeviceAccelerationStructureFeaturesKHR",{"type":18,"value":173},{"type":13,"tag":34,"props":432,"children":434},{"className":433},[],[435],{"type":18,"value":436},"accelerationStructure",{"type":18,"value":438},"\nfeature ",{"type":13,"tag":340,"props":440,"children":441},{"type":342},[],{"type":18,"value":443}," be enabled",{"type":13,"tag":411,"props":445,"children":447},{"name":446},"VUID-vkGetAccelerationStructureDeviceAddressKHR-device-03504",[448],{"type":13,"tag":14,"props":449,"children":450},{},[451,453,458,460,470,472,475],{"type":18,"value":452},"If ",{"type":13,"tag":34,"props":454,"children":456},{"className":455},[],[457],{"type":18,"value":73},{"type":18,"value":459}," was created with multiple physical devices, then the\n",{"type":13,"tag":285,"props":461,"children":463},{"href":462},"/man/VkPhysicalDeviceBufferDeviceAddressFeatures#features-bufferDeviceAddressMultiDevice",[464],{"type":13,"tag":34,"props":465,"children":467},{"className":466},[],[468],{"type":18,"value":469},"bufferDeviceAddressMultiDevice",{"type":18,"value":471}," feature ",{"type":13,"tag":340,"props":473,"children":474},{"type":342},[],{"type":18,"value":443},{"type":13,"tag":411,"props":477,"children":479},{"name":478},"VUID-vkGetAccelerationStructureDeviceAddressKHR-pInfo-09541",[480],{"type":13,"tag":14,"props":481,"children":482},{},[483,485,491,493,496,498,504],{"type":18,"value":484},"If the buffer on which ",{"type":13,"tag":34,"props":486,"children":488},{"className":487},[],[489],{"type":18,"value":490},"pInfo→accelerationStructure",{"type":18,"value":492}," was placed is\nnon-sparse then it ",{"type":13,"tag":340,"props":494,"children":495},{"type":342},[],{"type":18,"value":497}," be bound completely and contiguously to a\nsingle ",{"type":13,"tag":34,"props":499,"children":501},{"className":500},[],[502],{"type":18,"value":503},"VkDeviceMemory",{"type":18,"value":505}," object",{"type":13,"tag":411,"props":507,"children":509},{"name":508},"VUID-vkGetAccelerationStructureDeviceAddressKHR-pInfo-09542",[510],{"type":13,"tag":14,"props":511,"children":512},{},[513,515,520,522,525,527,533],{"type":18,"value":514},"The buffer on which ",{"type":13,"tag":34,"props":516,"children":518},{"className":517},[],[519],{"type":18,"value":490},{"type":18,"value":521}," was placed ",{"type":13,"tag":340,"props":523,"children":524},{"type":342},[],{"type":18,"value":526},"\nhave been created with the\n",{"type":13,"tag":34,"props":528,"children":530},{"className":529},[],[531],{"type":18,"value":532},"VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT",{"type":18,"value":534}," usage flag",{"type":13,"tag":406,"props":536,"children":538},{"name":537},"Valid Usage (Implicit)",[539,565],{"type":13,"tag":411,"props":540,"children":542},{"name":541},"VUID-vkGetAccelerationStructureDeviceAddressKHR-device-parameter",[543],{"type":13,"tag":14,"props":544,"children":545},{},[546,551,552,555,557,563],{"type":13,"tag":34,"props":547,"children":549},{"className":548},[],[550],{"type":18,"value":73},{"type":18,"value":352},{"type":13,"tag":340,"props":553,"children":554},{"type":342},[],{"type":18,"value":556}," be a valid ",{"type":13,"tag":285,"props":558,"children":560},{"href":559},"/man/VkDevice",[561],{"type":18,"value":562},"VkDevice",{"type":18,"value":564}," handle",{"type":13,"tag":411,"props":566,"children":568},{"name":567},"VUID-vkGetAccelerationStructureDeviceAddressKHR-pInfo-parameter",[569],{"type":13,"tag":14,"props":570,"children":571},{},[572,577,578,581,583,587],{"type":13,"tag":34,"props":573,"children":575},{"className":574},[],[576],{"type":18,"value":281},{"type":18,"value":352},{"type":13,"tag":340,"props":579,"children":580},{"type":342},[],{"type":18,"value":582}," be a valid pointer to a valid ",{"type":13,"tag":285,"props":584,"children":585},{"href":287},[586],{"type":18,"value":290},{"type":18,"value":588}," structure",{"type":13,"tag":590,"props":591,"children":592},"style",{},[593],{"type":18,"value":594},"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":596},[],"markdown",1725732616581]