[{"data":1,"prerenderedAt":642},["ShallowReactive",2],{"$fTiV64P-diuOo_5m3QKRzVC6RUxiJwshjyf89PQZsDCQ":3},{"title":4,"description":5,"parent":6,"type":7,"xrefs":8,"body":9,"_type":641,"_id":4},"VkDescriptorMappingSourceConstantOffsetEXT","Structure specifying mapping resources to a constant heap index","VK_EXT_descriptor_heap","structs",[],{"type":10,"children":11,"toc":639},"root",[12,28,313,394,399,420,425,438,446,480,591,633],{"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,153],{"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 VkDescriptorMappingSourceConstantOffsetEXT {\n uint32_t heapOffset;\n uint32_t heapArrayStride;\n const VkSamplerCreateInfo* pEmbeddedSampler;\n uint32_t samplerHeapOffset;\n uint32_t samplerHeapArrayStride;\n} VkDescriptorMappingSourceConstantOffsetEXT;\n","C","c","",[41],{"type":13,"tag":21,"props":42,"children":43},{"__ignoreMap":39},[44,67,81,94,118,131,144],{"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}," VkDescriptorMappingSourceConstantOffsetEXT {\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}," heapArrayStride;\n",{"type":13,"tag":45,"props":95,"children":97},{"class":47,"line":96},4,[98,103,108,113],{"type":13,"tag":45,"props":99,"children":100},{"style":52},[101],{"type":18,"value":102}," const",{"type":13,"tag":45,"props":104,"children":105},{"style":63},[106],{"type":18,"value":107}," VkSamplerCreateInfo",{"type":13,"tag":45,"props":109,"children":110},{"style":52},[111],{"type":18,"value":112},"*",{"type":13,"tag":45,"props":114,"children":115},{"style":63},[116],{"type":18,"value":117}," pEmbeddedSampler;\n",{"type":13,"tag":45,"props":119,"children":121},{"class":47,"line":120},5,[122,126],{"type":13,"tag":45,"props":123,"children":124},{"style":52},[125],{"type":18,"value":75},{"type":13,"tag":45,"props":127,"children":128},{"style":63},[129],{"type":18,"value":130}," samplerHeapOffset;\n",{"type":13,"tag":45,"props":132,"children":134},{"class":47,"line":133},6,[135,139],{"type":13,"tag":45,"props":136,"children":137},{"style":52},[138],{"type":18,"value":75},{"type":13,"tag":45,"props":140,"children":141},{"style":63},[142],{"type":18,"value":143}," samplerHeapArrayStride;\n",{"type":13,"tag":45,"props":145,"children":147},{"class":47,"line":146},7,[148],{"type":13,"tag":45,"props":149,"children":150},{"style":63},[151],{"type":18,"value":152},"} VkDescriptorMappingSourceConstantOffsetEXT;\n",{"type":13,"tag":33,"props":154,"children":159},{"className":155,"code":156,"filename":157,"language":158,"meta":39,"style":39},"language-rs shiki shiki-themes github-light-default github-dark-default","pub struct DescriptorMappingSourceConstantOffsetEXT {\n heap_offset: u32,\n heap_array_stride: u32,\n p_embedded_sampler: *const vk::SamplerCreateInfo,\n sampler_heap_offset: u32,\n sampler_heap_array_stride: u32,\n}\n","Rust","rs",[160],{"type":13,"tag":21,"props":161,"children":162},{"__ignoreMap":39},[163,186,209,229,265,285,305],{"type":13,"tag":45,"props":164,"children":165},{"class":47,"line":48},[166,171,175,181],{"type":13,"tag":45,"props":167,"children":168},{"style":52},[169],{"type":18,"value":170},"pub",{"type":13,"tag":45,"props":172,"children":173},{"style":52},[174],{"type":18,"value":60},{"type":13,"tag":45,"props":176,"children":178},{"style":177},"--shiki-default:#953800;--shiki-dark:#FFA657",[179],{"type":18,"value":180}," DescriptorMappingSourceConstantOffsetEXT",{"type":13,"tag":45,"props":182,"children":183},{"style":63},[184],{"type":18,"value":185}," {\n",{"type":13,"tag":45,"props":187,"children":188},{"class":47,"line":69},[189,194,199,204],{"type":13,"tag":45,"props":190,"children":191},{"style":63},[192],{"type":18,"value":193}," heap_offset",{"type":13,"tag":45,"props":195,"children":196},{"style":52},[197],{"type":18,"value":198},":",{"type":13,"tag":45,"props":200,"children":201},{"style":177},[202],{"type":18,"value":203}," u32",{"type":13,"tag":45,"props":205,"children":206},{"style":63},[207],{"type":18,"value":208},",\n",{"type":13,"tag":45,"props":210,"children":211},{"class":47,"line":83},[212,217,221,225],{"type":13,"tag":45,"props":213,"children":214},{"style":63},[215],{"type":18,"value":216}," heap_array_stride",{"type":13,"tag":45,"props":218,"children":219},{"style":52},[220],{"type":18,"value":198},{"type":13,"tag":45,"props":222,"children":223},{"style":177},[224],{"type":18,"value":203},{"type":13,"tag":45,"props":226,"children":227},{"style":63},[228],{"type":18,"value":208},{"type":13,"tag":45,"props":230,"children":231},{"class":47,"line":96},[232,237,241,246,251,256,261],{"type":13,"tag":45,"props":233,"children":234},{"style":63},[235],{"type":18,"value":236}," p_embedded_sampler",{"type":13,"tag":45,"props":238,"children":239},{"style":52},[240],{"type":18,"value":198},{"type":13,"tag":45,"props":242,"children":243},{"style":52},[244],{"type":18,"value":245}," *const",{"type":13,"tag":45,"props":247,"children":248},{"style":177},[249],{"type":18,"value":250}," vk",{"type":13,"tag":45,"props":252,"children":253},{"style":52},[254],{"type":18,"value":255},"::",{"type":13,"tag":45,"props":257,"children":258},{"style":177},[259],{"type":18,"value":260},"SamplerCreateInfo",{"type":13,"tag":45,"props":262,"children":263},{"style":63},[264],{"type":18,"value":208},{"type":13,"tag":45,"props":266,"children":267},{"class":47,"line":120},[268,273,277,281],{"type":13,"tag":45,"props":269,"children":270},{"style":63},[271],{"type":18,"value":272}," sampler_heap_offset",{"type":13,"tag":45,"props":274,"children":275},{"style":52},[276],{"type":18,"value":198},{"type":13,"tag":45,"props":278,"children":279},{"style":177},[280],{"type":18,"value":203},{"type":13,"tag":45,"props":282,"children":283},{"style":63},[284],{"type":18,"value":208},{"type":13,"tag":45,"props":286,"children":287},{"class":47,"line":133},[288,293,297,301],{"type":13,"tag":45,"props":289,"children":290},{"style":63},[291],{"type":18,"value":292}," sampler_heap_array_stride",{"type":13,"tag":45,"props":294,"children":295},{"style":52},[296],{"type":18,"value":198},{"type":13,"tag":45,"props":298,"children":299},{"style":177},[300],{"type":18,"value":203},{"type":13,"tag":45,"props":302,"children":303},{"style":63},[304],{"type":18,"value":208},{"type":13,"tag":45,"props":306,"children":307},{"class":47,"line":146},[308],{"type":13,"tag":45,"props":309,"children":310},{"style":63},[311],{"type":18,"value":312},"}\n",{"type":13,"tag":314,"props":315,"children":316},"ul",{},[317,329,340,360,378],{"type":13,"tag":318,"props":319,"children":320},"li",{},[321,327],{"type":13,"tag":21,"props":322,"children":324},{"className":323},[],[325],{"type":18,"value":326},"heapOffset",{"type":18,"value":328}," is a constant byte offset added to the heap address for\nthe mapped resource or sampler.",{"type":13,"tag":318,"props":330,"children":331},{},[332,338],{"type":13,"tag":21,"props":333,"children":335},{"className":334},[],[336],{"type":18,"value":337},"heapArrayStride",{"type":18,"value":339}," is a constant byte stride that multiplies the\nshader binding and array index.",{"type":13,"tag":318,"props":341,"children":342},{},[343,349,351,358],{"type":13,"tag":21,"props":344,"children":346},{"className":345},[],[347],{"type":18,"value":348},"pEmbeddedSampler",{"type":18,"value":350}," is an optional ",{"type":13,"tag":352,"props":353,"children":355},"a",{"href":354},"/man/VkSamplerCreateInfo",[356],{"type":18,"value":357},"VkSamplerCreateInfo",{"type":18,"value":359},"\nstructure specifying a sampler to embed into the shader, in place of\nlooking the sampler up in a heap.",{"type":13,"tag":318,"props":361,"children":362},{},[363,369,371,376],{"type":13,"tag":21,"props":364,"children":366},{"className":365},[],[367],{"type":18,"value":368},"samplerHeapOffset",{"type":18,"value":370}," is used only when mapping a combined image\nsampler, used in place of ",{"type":13,"tag":21,"props":372,"children":374},{"className":373},[],[375],{"type":18,"value":326},{"type":18,"value":377}," to retrieve the sampler.",{"type":13,"tag":318,"props":379,"children":380},{},[381,387,388,393],{"type":13,"tag":21,"props":382,"children":384},{"className":383},[],[385],{"type":18,"value":386},"samplerHeapArrayStride",{"type":18,"value":370},{"type":13,"tag":21,"props":389,"children":391},{"className":390},[],[392],{"type":18,"value":337},{"type":18,"value":377},{"type":13,"tag":14,"props":395,"children":396},{},[397],{"type":18,"value":398},"Resources using this mapping will be backed by a descriptor in the heap, at\nan offset calculated as",{"type":13,"tag":314,"props":400,"children":401},{},[402,415],{"type":13,"tag":318,"props":403,"children":404},{},[405,407,413],{"type":18,"value":406},"shaderIndex = (Binding - ",{"type":13,"tag":21,"props":408,"children":410},{"className":409},[],[411],{"type":18,"value":412},"firstBinding",{"type":18,"value":414},") +\narrayIndex",{"type":13,"tag":318,"props":416,"children":417},{},[418],{"type":18,"value":419},"offset = heapOffset + (shaderIndex * heapArrayStride)",{"type":13,"tag":14,"props":421,"children":422},{},[423],{"type":18,"value":424},"where Binding is the binding value in the shader, arrayIndex is\nthe index into the array if the shader binding is declared as an array.",{"type":13,"tag":14,"props":426,"children":427},{},[428,430,436],{"type":18,"value":429},"If the mapped resource is a ",{"type":13,"tag":21,"props":431,"children":433},{"className":432},[],[434],{"type":18,"value":435},"OpTypeSampledImage",{"type":18,"value":437},", offset is instead\ncalculated for the sampler as",{"type":13,"tag":314,"props":439,"children":440},{},[441],{"type":13,"tag":318,"props":442,"children":443},{},[444],{"type":18,"value":445},"offset = samplerHeapOffset + (shaderIndex *\nsamplerHeapArrayStride)",{"type":13,"tag":14,"props":447,"children":448},{},[449,450,456,458,463,465,470,472,478],{"type":18,"value":429},{"type":13,"tag":21,"props":451,"children":453},{"className":452},[],[454],{"type":18,"value":455},"OpTypeSampler",{"type":18,"value":457}," or ",{"type":13,"tag":21,"props":459,"children":461},{"className":460},[],[462],{"type":18,"value":435},{"type":18,"value":464},",\nand ",{"type":13,"tag":21,"props":466,"children":468},{"className":467},[],[469],{"type":18,"value":348},{"type":18,"value":471}," is not ",{"type":13,"tag":21,"props":473,"children":475},{"className":474},[],[476],{"type":18,"value":477},"NULL",{"type":18,"value":479},", the specified embedded sampler\nwill be used rather than accessing the sampler heap.",{"type":13,"tag":481,"props":482,"children":484},"validity-group",{"name":483},"Valid Usage",[485,537],{"type":13,"tag":486,"props":487,"children":489},"validity-field",{"name":488},"VUID-VkDescriptorMappingSourceConstantOffsetEXT-pEmbeddedSampler-11445",[490],{"type":13,"tag":14,"props":491,"children":492},{},[493,495,500,502,506,508,514,516,521,523,529,531],{"type":18,"value":494},"If ",{"type":13,"tag":21,"props":496,"children":498},{"className":497},[],[499],{"type":18,"value":348},{"type":18,"value":501}," is a valid pointer to a\n",{"type":13,"tag":352,"props":503,"children":504},{"href":354},[505],{"type":18,"value":357},{"type":18,"value":507},", its ",{"type":13,"tag":21,"props":509,"children":511},{"className":510},[],[512],{"type":18,"value":513},"borderColor",{"type":18,"value":515}," ",{"type":13,"tag":517,"props":518,"children":520},"normative",{"type":519},"must",[],{"type":18,"value":522}," not be\n",{"type":13,"tag":21,"props":524,"children":526},{"className":525},[],[527],{"type":18,"value":528},"VK_BORDER_COLOR_FLOAT_CUSTOM_EXT",{"type":18,"value":530}," or\n",{"type":13,"tag":21,"props":532,"children":534},{"className":533},[],[535],{"type":18,"value":536},"VK_BORDER_COLOR_INT_CUSTOM_EXT",{"type":13,"tag":486,"props":538,"children":540},{"name":539},"VUID-VkDescriptorMappingSourceConstantOffsetEXT-pEmbeddedSampler-11415",[541],{"type":13,"tag":14,"props":542,"children":543},{},[544,545,550,551,555,557,563,565,571,573,579,580,583,585],{"type":18,"value":494},{"type":13,"tag":21,"props":546,"children":548},{"className":547},[],[549],{"type":18,"value":348},{"type":18,"value":501},{"type":13,"tag":352,"props":552,"children":553},{"href":354},[554],{"type":18,"value":357},{"type":18,"value":556},", and there is a\n",{"type":13,"tag":352,"props":558,"children":560},{"href":559},"/man/VkDebugUtilsObjectNameInfoEXT",[561],{"type":18,"value":562},"VkDebugUtilsObjectNameInfoEXT",{"type":18,"value":564}," structure in its ",{"type":13,"tag":21,"props":566,"children":568},{"className":567},[],[569],{"type":18,"value":570},"pNext",{"type":18,"value":572}," chain,\nits ",{"type":13,"tag":21,"props":574,"children":576},{"className":575},[],[577],{"type":18,"value":578},"objectType",{"type":18,"value":515},{"type":13,"tag":517,"props":581,"children":582},{"type":519},[],{"type":18,"value":584}," be ",{"type":13,"tag":21,"props":586,"children":588},{"className":587},[],[589],{"type":18,"value":590},"VK_OBJECT_TYPE_UNKNOWN",{"type":13,"tag":481,"props":592,"children":594},{"name":593},"Valid Usage (Implicit)",[595],{"type":13,"tag":486,"props":596,"children":598},{"name":597},"VUID-VkDescriptorMappingSourceConstantOffsetEXT-pEmbeddedSampler-parameter",[599],{"type":13,"tag":14,"props":600,"children":601},{},[602,603,608,609,614,616,621,622,625,627,631],{"type":18,"value":494},{"type":13,"tag":21,"props":604,"children":606},{"className":605},[],[607],{"type":18,"value":348},{"type":18,"value":471},{"type":13,"tag":21,"props":610,"children":612},{"className":611},[],[613],{"type":18,"value":477},{"type":18,"value":615},", ",{"type":13,"tag":21,"props":617,"children":619},{"className":618},[],[620],{"type":18,"value":348},{"type":18,"value":515},{"type":13,"tag":517,"props":623,"children":624},{"type":519},[],{"type":18,"value":626}," be a valid pointer to a valid ",{"type":13,"tag":352,"props":628,"children":629},{"href":354},[630],{"type":18,"value":357},{"type":18,"value":632}," structure",{"type":13,"tag":634,"props":635,"children":636},"style",{},[637],{"type":18,"value":638},"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":640},[],"markdown",1773054746629]