[{"data":1,"prerenderedAt":331},["ShallowReactive",2],{"$fFBQiWBmVOrRs8XDTK1EV1xVRPpHYEELFzhKdEOFSGuI":3},{"title":4,"description":5,"parent":6,"type":7,"xrefs":8,"body":9,"_type":330,"_id":4},"VkDescriptorMappingSourceHeapDataEXT","Structure specifying mapping a uniform buffer to heap data","VK_EXT_descriptor_heap","structs",[],{"type":10,"children":11,"toc":328},"root",[12,28,187,214,219,227,241,322],{"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 as:",{"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 VkDescriptorMappingSourceHeapDataEXT {\n uint32_t heapOffset;\n uint32_t pushOffset;\n} VkDescriptorMappingSourceHeapDataEXT;\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}," VkDescriptorMappingSourceHeapDataEXT {\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}," heapOffset;\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}," pushOffset;\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},"} VkDescriptorMappingSourceHeapDataEXT;\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 DescriptorMappingSourceHeapDataEXT {\n heap_offset: u32,\n push_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}," DescriptorMappingSourceHeapDataEXT",{"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}," heap_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}," push_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},"heapOffset",{"type":18,"value":202}," is a constant byte offset added to the heap address for\nthe mapped buffer.",{"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},"pushOffset",{"type":18,"value":213}," is an index into push data where an additional offset\ninto the heap for the mapped resource will be retrieved.",{"type":13,"tag":14,"props":215,"children":216},{},[217],{"type":18,"value":218},"Uniform buffers using this mapping will be backed directly by data in the\nheap.\nAccessing data in the uniform buffer at an offset of shaderOffset in\nthe shader will access heap data at an offset equal to",{"type":13,"tag":188,"props":220,"children":221},{},[222],{"type":13,"tag":192,"props":223,"children":224},{},[225],{"type":18,"value":226},"offset = shaderOffset + heapOffset +\n((uint32_t*)pPushData)[pushOffset/4]",{"type":13,"tag":14,"props":228,"children":229},{},[230,232,239],{"type":18,"value":231},"where pPushData is the total set of push data specified by\n",{"type":13,"tag":233,"props":234,"children":236},"a",{"href":235},"/man/vkCmdPushDataEXT",[237],{"type":18,"value":238},"vkCmdPushDataEXT",{"type":18,"value":240},".\nShader reads through the heap mapped in this way are performed according to\nthe mapped resource.",{"type":13,"tag":242,"props":243,"children":245},"validity-group",{"name":244},"Valid Usage",[246,278,296],{"type":13,"tag":247,"props":248,"children":250},"validity-field",{"name":249},"VUID-VkDescriptorMappingSourceHeapDataEXT-heapOffset-11263",[251],{"type":13,"tag":14,"props":252,"children":253},{},[254,259,261,266,268],{"type":13,"tag":21,"props":255,"children":257},{"className":256},[],[258],{"type":18,"value":200},{"type":18,"value":260}," ",{"type":13,"tag":262,"props":263,"children":265},"normative",{"type":264},"must",[],{"type":18,"value":267}," be a multiple of\n",{"type":13,"tag":233,"props":269,"children":271},{"href":270},"/man/VkPhysicalDeviceLimits#limits-minUniformBufferOffsetAlignment",[272],{"type":13,"tag":21,"props":273,"children":275},{"className":274},[],[276],{"type":18,"value":277},"minUniformBufferOffsetAlignment",{"type":13,"tag":247,"props":279,"children":281},{"name":280},"VUID-VkDescriptorMappingSourceHeapDataEXT-pushOffset-11264",[282],{"type":13,"tag":14,"props":283,"children":284},{},[285,290,291,294],{"type":13,"tag":21,"props":286,"children":288},{"className":287},[],[289],{"type":18,"value":211},{"type":18,"value":260},{"type":13,"tag":262,"props":292,"children":293},{"type":264},[],{"type":18,"value":295}," be a multiple of 4",{"type":13,"tag":247,"props":297,"children":299},{"name":298},"VUID-VkDescriptorMappingSourceHeapDataEXT-pushOffset-11265",[300],{"type":13,"tag":14,"props":301,"children":302},{},[303,308,309,312,314,320],{"type":13,"tag":21,"props":304,"children":306},{"className":305},[],[307],{"type":18,"value":211},{"type":18,"value":260},{"type":13,"tag":262,"props":310,"children":311},{"type":264},[],{"type":18,"value":313}," be less than or equal to\n",{"type":13,"tag":21,"props":315,"children":317},{"className":316},[],[318],{"type":18,"value":319},"maxPushDataSize",{"type":18,"value":321}," - 4",{"type":13,"tag":323,"props":324,"children":325},"style",{},[326],{"type":18,"value":327},"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":329},[],"markdown",1773054746703]