[{"data":1,"prerenderedAt":338},["ShallowReactive",2],{"$fNVNSt8PgR47_KO7XX7rt-R4MUHwuFP62UiTMWW3PyWY":3},{"title":4,"description":5,"parent":6,"type":7,"xrefs":8,"body":9,"_type":337,"_id":4},"VkDescriptorMappingSourceIndirectAddressEXT","Structure specifying mapping a uniform buffer to an address specified indirectly","VK_EXT_descriptor_heap","structs",[],{"type":10,"children":11,"toc":335},"root",[12,28,187,214,219,232,261,329],{"type":13,"tag":14,"props":15,"children":16},"element","p",{},[17,20,26],{"type":18,"value":19},"text","The ",{"type":13,"tag":21,"props":22,"children":24},"code",{"className":23},[],[25],{"type":18,"value":4},{"type":18,"value":27}," structure is defined\nas:",{"type":13,"tag":29,"props":30,"children":31},"code-group",{},[32,103],{"type":13,"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","typedef struct VkDescriptorMappingSourceIndirectAddressEXT {\n uint32_t pushOffset;\n uint32_t addressOffset;\n} VkDescriptorMappingSourceIndirectAddressEXT;\n","C","c","",[41],{"type":13,"tag":21,"props":42,"children":43},{"__ignoreMap":39},[44,67,81,94],{"type":13,"tag":45,"props":46,"children":49},"span",{"class":47,"line":48},"line",1,[50,56,61],{"type":13,"tag":45,"props":51,"children":53},{"style":52},"--shiki-default:#CF222E;--shiki-dark:#FF7B72",[54],{"type":18,"value":55},"typedef",{"type":13,"tag":45,"props":57,"children":58},{"style":52},[59],{"type":18,"value":60}," struct",{"type":13,"tag":45,"props":62,"children":64},{"style":63},"--shiki-default:#1F2328;--shiki-dark:#E6EDF3",[65],{"type":18,"value":66}," VkDescriptorMappingSourceIndirectAddressEXT {\n",{"type":13,"tag":45,"props":68,"children":70},{"class":47,"line":69},2,[71,76],{"type":13,"tag":45,"props":72,"children":73},{"style":52},[74],{"type":18,"value":75}," uint32_t",{"type":13,"tag":45,"props":77,"children":78},{"style":63},[79],{"type":18,"value":80}," pushOffset;\n",{"type":13,"tag":45,"props":82,"children":84},{"class":47,"line":83},3,[85,89],{"type":13,"tag":45,"props":86,"children":87},{"style":52},[88],{"type":18,"value":75},{"type":13,"tag":45,"props":90,"children":91},{"style":63},[92],{"type":18,"value":93}," addressOffset;\n",{"type":13,"tag":45,"props":95,"children":97},{"class":47,"line":96},4,[98],{"type":13,"tag":45,"props":99,"children":100},{"style":63},[101],{"type":18,"value":102},"} VkDescriptorMappingSourceIndirectAddressEXT;\n",{"type":13,"tag":33,"props":104,"children":109},{"className":105,"code":106,"filename":107,"language":108,"meta":39,"style":39},"language-rs shiki shiki-themes github-light-default github-dark-default","pub struct DescriptorMappingSourceIndirectAddressEXT {\n push_offset: u32,\n address_offset: u32,\n}\n","Rust","rs",[110],{"type":13,"tag":21,"props":111,"children":112},{"__ignoreMap":39},[113,136,159,179],{"type":13,"tag":45,"props":114,"children":115},{"class":47,"line":48},[116,121,125,131],{"type":13,"tag":45,"props":117,"children":118},{"style":52},[119],{"type":18,"value":120},"pub",{"type":13,"tag":45,"props":122,"children":123},{"style":52},[124],{"type":18,"value":60},{"type":13,"tag":45,"props":126,"children":128},{"style":127},"--shiki-default:#953800;--shiki-dark:#FFA657",[129],{"type":18,"value":130}," DescriptorMappingSourceIndirectAddressEXT",{"type":13,"tag":45,"props":132,"children":133},{"style":63},[134],{"type":18,"value":135}," {\n",{"type":13,"tag":45,"props":137,"children":138},{"class":47,"line":69},[139,144,149,154],{"type":13,"tag":45,"props":140,"children":141},{"style":63},[142],{"type":18,"value":143}," push_offset",{"type":13,"tag":45,"props":145,"children":146},{"style":52},[147],{"type":18,"value":148},":",{"type":13,"tag":45,"props":150,"children":151},{"style":127},[152],{"type":18,"value":153}," u32",{"type":13,"tag":45,"props":155,"children":156},{"style":63},[157],{"type":18,"value":158},",\n",{"type":13,"tag":45,"props":160,"children":161},{"class":47,"line":83},[162,167,171,175],{"type":13,"tag":45,"props":163,"children":164},{"style":63},[165],{"type":18,"value":166}," address_offset",{"type":13,"tag":45,"props":168,"children":169},{"style":52},[170],{"type":18,"value":148},{"type":13,"tag":45,"props":172,"children":173},{"style":127},[174],{"type":18,"value":153},{"type":13,"tag":45,"props":176,"children":177},{"style":63},[178],{"type":18,"value":158},{"type":13,"tag":45,"props":180,"children":181},{"class":47,"line":96},[182],{"type":13,"tag":45,"props":183,"children":184},{"style":63},[185],{"type":18,"value":186},"}\n",{"type":13,"tag":188,"props":189,"children":190},"ul",{},[191,203],{"type":13,"tag":192,"props":193,"children":194},"li",{},[195,201],{"type":13,"tag":21,"props":196,"children":198},{"className":197},[],[199],{"type":18,"value":200},"pushOffset",{"type":18,"value":202}," is a byte offset into push data where an indirect\naddress containing the address for the mapped resource will be\nretrieved.",{"type":13,"tag":192,"props":204,"children":205},{},[206,212],{"type":13,"tag":21,"props":207,"children":209},{"className":208},[],[210],{"type":18,"value":211},"addressOffset",{"type":18,"value":213}," is a byte offset into the indirect address where the\naddress for the mapped resource will be retrieved.",{"type":13,"tag":14,"props":215,"children":216},{},[217],{"type":18,"value":218},"Accessing data via the mapped resource in the shader will access data\nbacking the address specified in the indirect address at the supplied\noffset:",{"type":13,"tag":188,"props":220,"children":221},{},[222,227],{"type":13,"tag":192,"props":223,"children":224},{},[225],{"type":18,"value":226},"indirectAddress =\n((VkDeviceAddress*)pPushData)[pushOffset/8]",{"type":13,"tag":192,"props":228,"children":229},{},[230],{"type":18,"value":231},"resourceAddress =\n((VkDeviceAddress*)indirectAddress)[addressOffset/8]",{"type":13,"tag":14,"props":233,"children":234},{},[235,237,244,246,252,254,259],{"type":18,"value":236},"where pPushData is the total set of push data specified by\n",{"type":13,"tag":238,"props":239,"children":241},"a",{"href":240},"/man/vkCmdPushDataEXT",[242],{"type":18,"value":243},"vkCmdPushDataEXT",{"type":18,"value":245},".\nReads through indirectAddress are performed as non-volatile uniform\nbuffer reads, and can be synchronized using\n",{"type":13,"tag":21,"props":247,"children":249},{"className":248},[],[250],{"type":18,"value":251},"VK_ACCESS_2_UNIFORM_READ_BIT",{"type":18,"value":253},".\nShader reads through resourceAddress are performed according to the\nmapped resource.\nIf the shader resource is an acceleration structure, the address ",{"type":13,"tag":255,"props":256,"children":258},"normative",{"type":257},"must",[],{"type":18,"value":260}," be a\nvalid acceleration structure address.",{"type":13,"tag":262,"props":263,"children":265},"validity-group",{"name":264},"Valid Usage",[266,286,312],{"type":13,"tag":267,"props":268,"children":270},"validity-field",{"name":269},"VUID-VkDescriptorMappingSourceIndirectAddressEXT-pushOffset-11266",[271],{"type":13,"tag":14,"props":272,"children":273},{},[274,279,281,284],{"type":13,"tag":21,"props":275,"children":277},{"className":276},[],[278],{"type":18,"value":200},{"type":18,"value":280}," ",{"type":13,"tag":255,"props":282,"children":283},{"type":257},[],{"type":18,"value":285}," be a multiple of 8",{"type":13,"tag":267,"props":287,"children":289},{"name":288},"VUID-VkDescriptorMappingSourceIndirectAddressEXT-pushOffset-11267",[290],{"type":13,"tag":14,"props":291,"children":292},{},[293,298,299,302,304,310],{"type":13,"tag":21,"props":294,"children":296},{"className":295},[],[297],{"type":18,"value":200},{"type":18,"value":280},{"type":13,"tag":255,"props":300,"children":301},{"type":257},[],{"type":18,"value":303}," be less than or equal to\n",{"type":13,"tag":21,"props":305,"children":307},{"className":306},[],[308],{"type":18,"value":309},"maxPushDataSize",{"type":18,"value":311}," - 8",{"type":13,"tag":267,"props":313,"children":315},{"name":314},"VUID-VkDescriptorMappingSourceIndirectAddressEXT-addressOffset-11268",[316],{"type":13,"tag":14,"props":317,"children":318},{},[319,324,325,328],{"type":13,"tag":21,"props":320,"children":322},{"className":321},[],[323],{"type":18,"value":211},{"type":18,"value":280},{"type":13,"tag":255,"props":326,"children":327},{"type":257},[],{"type":18,"value":285},{"type":13,"tag":330,"props":331,"children":332},"style",{},[333],{"type":18,"value":334},"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":69,"depth":69,"links":336},[],"markdown",1773054746724]