[{"data":1,"prerenderedAt":1390},["ShallowReactive",2],{"8qEk57pDiz":3},{"title":4,"description":5,"parent":6,"type":7,"xrefs":8,"body":9,"_type":1389,"_id":4},"VkRenderPassMultiviewCreateInfo","Structure containing multiview information for all subpasses","VK_VERSION_1_1","structs",[],{"type":10,"children":11,"toc":1387},"root",[12,45,57,455,460,525,674,718,723,756,761,792,814,850,1086,1130,1221,1381],{"type":13,"tag":14,"props":15,"children":16},"element","p",{},[17,20,27,29,36,38,43],{"type":18,"value":19},"text","If the ",{"type":13,"tag":21,"props":22,"children":24},"a",{"href":23},"/man/VkRenderPassCreateInfo",[25],{"type":18,"value":26},"VkRenderPassCreateInfo",{"type":18,"value":28},"::",{"type":13,"tag":30,"props":31,"children":33},"code",{"className":32},[],[34],{"type":18,"value":35},"pNext",{"type":18,"value":37}," chain includes a\n",{"type":13,"tag":30,"props":39,"children":41},{"className":40},[],[42],{"type":18,"value":4},{"type":18,"value":44}," structure, then that structure\nincludes an array of view masks, view offsets, and correlation masks for the\nrender pass.",{"type":13,"tag":14,"props":46,"children":47},{},[48,50,55],{"type":18,"value":49},"The ",{"type":13,"tag":30,"props":51,"children":53},{"className":52},[],[54],{"type":18,"value":4},{"type":18,"value":56}," structure is defined as:",{"type":13,"tag":58,"props":59,"children":60},"code-group",{},[61,226],{"type":13,"tag":62,"props":63,"children":69},"pre",{"className":64,"code":65,"filename":66,"language":67,"meta":68,"style":68},"language-c shiki shiki-themes github-light-default github-dark-default","typedef struct VkRenderPassMultiviewCreateInfo {\n VkStructureType sType;\n const void* pNext;\n uint32_t subpassCount;\n const uint32_t* pViewMasks;\n uint32_t dependencyCount;\n const int32_t* pViewOffsets;\n uint32_t correlationMaskCount;\n const uint32_t* pCorrelationMasks;\n} VkRenderPassMultiviewCreateInfo;\n","C","c","",[70],{"type":13,"tag":30,"props":71,"children":72},{"__ignoreMap":68},[73,96,105,124,138,156,169,187,200,217],{"type":13,"tag":74,"props":75,"children":78},"span",{"class":76,"line":77},"line",1,[79,85,90],{"type":13,"tag":74,"props":80,"children":82},{"style":81},"--shiki-default:#CF222E;--shiki-dark:#FF7B72",[83],{"type":18,"value":84},"typedef",{"type":13,"tag":74,"props":86,"children":87},{"style":81},[88],{"type":18,"value":89}," struct",{"type":13,"tag":74,"props":91,"children":93},{"style":92},"--shiki-default:#1F2328;--shiki-dark:#E6EDF3",[94],{"type":18,"value":95}," VkRenderPassMultiviewCreateInfo {\n",{"type":13,"tag":74,"props":97,"children":99},{"class":76,"line":98},2,[100],{"type":13,"tag":74,"props":101,"children":102},{"style":92},[103],{"type":18,"value":104}," VkStructureType sType;\n",{"type":13,"tag":74,"props":106,"children":108},{"class":76,"line":107},3,[109,114,119],{"type":13,"tag":74,"props":110,"children":111},{"style":81},[112],{"type":18,"value":113}," const",{"type":13,"tag":74,"props":115,"children":116},{"style":81},[117],{"type":18,"value":118}," void*",{"type":13,"tag":74,"props":120,"children":121},{"style":92},[122],{"type":18,"value":123}," pNext;\n",{"type":13,"tag":74,"props":125,"children":127},{"class":76,"line":126},4,[128,133],{"type":13,"tag":74,"props":129,"children":130},{"style":81},[131],{"type":18,"value":132}," uint32_t",{"type":13,"tag":74,"props":134,"children":135},{"style":92},[136],{"type":18,"value":137}," subpassCount;\n",{"type":13,"tag":74,"props":139,"children":141},{"class":76,"line":140},5,[142,146,151],{"type":13,"tag":74,"props":143,"children":144},{"style":81},[145],{"type":18,"value":113},{"type":13,"tag":74,"props":147,"children":148},{"style":81},[149],{"type":18,"value":150}," uint32_t*",{"type":13,"tag":74,"props":152,"children":153},{"style":92},[154],{"type":18,"value":155}," pViewMasks;\n",{"type":13,"tag":74,"props":157,"children":159},{"class":76,"line":158},6,[160,164],{"type":13,"tag":74,"props":161,"children":162},{"style":81},[163],{"type":18,"value":132},{"type":13,"tag":74,"props":165,"children":166},{"style":92},[167],{"type":18,"value":168}," dependencyCount;\n",{"type":13,"tag":74,"props":170,"children":172},{"class":76,"line":171},7,[173,177,182],{"type":13,"tag":74,"props":174,"children":175},{"style":81},[176],{"type":18,"value":113},{"type":13,"tag":74,"props":178,"children":179},{"style":81},[180],{"type":18,"value":181}," int32_t*",{"type":13,"tag":74,"props":183,"children":184},{"style":92},[185],{"type":18,"value":186}," pViewOffsets;\n",{"type":13,"tag":74,"props":188,"children":190},{"class":76,"line":189},8,[191,195],{"type":13,"tag":74,"props":192,"children":193},{"style":81},[194],{"type":18,"value":132},{"type":13,"tag":74,"props":196,"children":197},{"style":92},[198],{"type":18,"value":199}," correlationMaskCount;\n",{"type":13,"tag":74,"props":201,"children":203},{"class":76,"line":202},9,[204,208,212],{"type":13,"tag":74,"props":205,"children":206},{"style":81},[207],{"type":18,"value":113},{"type":13,"tag":74,"props":209,"children":210},{"style":81},[211],{"type":18,"value":150},{"type":13,"tag":74,"props":213,"children":214},{"style":92},[215],{"type":18,"value":216}," pCorrelationMasks;\n",{"type":13,"tag":74,"props":218,"children":220},{"class":76,"line":219},10,[221],{"type":13,"tag":74,"props":222,"children":223},{"style":92},[224],{"type":18,"value":225},"} VkRenderPassMultiviewCreateInfo;\n",{"type":13,"tag":62,"props":227,"children":232},{"className":228,"code":229,"filename":230,"language":231,"meta":68,"style":68},"language-rs shiki shiki-themes github-light-default github-dark-default","pub struct RenderPassMultiviewCreateInfo {\n s_type: vk::StructureType,\n p_next: *const c_void,\n subpass_count: u32,\n p_view_masks: *const u32,\n dependency_count: u32,\n p_view_offsets: *const i32,\n correlation_mask_count: u32,\n p_correlation_masks: *const u32,\n}\n","Rust","rs",[233],{"type":13,"tag":30,"props":234,"children":235},{"__ignoreMap":68},[236,259,291,313,334,358,378,403,423,447],{"type":13,"tag":74,"props":237,"children":238},{"class":76,"line":77},[239,244,248,254],{"type":13,"tag":74,"props":240,"children":241},{"style":81},[242],{"type":18,"value":243},"pub",{"type":13,"tag":74,"props":245,"children":246},{"style":81},[247],{"type":18,"value":89},{"type":13,"tag":74,"props":249,"children":251},{"style":250},"--shiki-default:#953800;--shiki-dark:#FFA657",[252],{"type":18,"value":253}," RenderPassMultiviewCreateInfo",{"type":13,"tag":74,"props":255,"children":256},{"style":92},[257],{"type":18,"value":258}," {\n",{"type":13,"tag":74,"props":260,"children":261},{"class":76,"line":98},[262,267,272,277,281,286],{"type":13,"tag":74,"props":263,"children":264},{"style":92},[265],{"type":18,"value":266}," s_type",{"type":13,"tag":74,"props":268,"children":269},{"style":81},[270],{"type":18,"value":271},":",{"type":13,"tag":74,"props":273,"children":274},{"style":250},[275],{"type":18,"value":276}," vk",{"type":13,"tag":74,"props":278,"children":279},{"style":81},[280],{"type":18,"value":28},{"type":13,"tag":74,"props":282,"children":283},{"style":250},[284],{"type":18,"value":285},"StructureType",{"type":13,"tag":74,"props":287,"children":288},{"style":92},[289],{"type":18,"value":290},",\n",{"type":13,"tag":74,"props":292,"children":293},{"class":76,"line":107},[294,299,303,308],{"type":13,"tag":74,"props":295,"children":296},{"style":92},[297],{"type":18,"value":298}," p_next",{"type":13,"tag":74,"props":300,"children":301},{"style":81},[302],{"type":18,"value":271},{"type":13,"tag":74,"props":304,"children":305},{"style":81},[306],{"type":18,"value":307}," *const",{"type":13,"tag":74,"props":309,"children":310},{"style":92},[311],{"type":18,"value":312}," c_void,\n",{"type":13,"tag":74,"props":314,"children":315},{"class":76,"line":126},[316,321,325,330],{"type":13,"tag":74,"props":317,"children":318},{"style":92},[319],{"type":18,"value":320}," subpass_count",{"type":13,"tag":74,"props":322,"children":323},{"style":81},[324],{"type":18,"value":271},{"type":13,"tag":74,"props":326,"children":327},{"style":250},[328],{"type":18,"value":329}," u32",{"type":13,"tag":74,"props":331,"children":332},{"style":92},[333],{"type":18,"value":290},{"type":13,"tag":74,"props":335,"children":336},{"class":76,"line":140},[337,342,346,350,354],{"type":13,"tag":74,"props":338,"children":339},{"style":92},[340],{"type":18,"value":341}," p_view_masks",{"type":13,"tag":74,"props":343,"children":344},{"style":81},[345],{"type":18,"value":271},{"type":13,"tag":74,"props":347,"children":348},{"style":81},[349],{"type":18,"value":307},{"type":13,"tag":74,"props":351,"children":352},{"style":250},[353],{"type":18,"value":329},{"type":13,"tag":74,"props":355,"children":356},{"style":92},[357],{"type":18,"value":290},{"type":13,"tag":74,"props":359,"children":360},{"class":76,"line":158},[361,366,370,374],{"type":13,"tag":74,"props":362,"children":363},{"style":92},[364],{"type":18,"value":365}," dependency_count",{"type":13,"tag":74,"props":367,"children":368},{"style":81},[369],{"type":18,"value":271},{"type":13,"tag":74,"props":371,"children":372},{"style":250},[373],{"type":18,"value":329},{"type":13,"tag":74,"props":375,"children":376},{"style":92},[377],{"type":18,"value":290},{"type":13,"tag":74,"props":379,"children":380},{"class":76,"line":171},[381,386,390,394,399],{"type":13,"tag":74,"props":382,"children":383},{"style":92},[384],{"type":18,"value":385}," p_view_offsets",{"type":13,"tag":74,"props":387,"children":388},{"style":81},[389],{"type":18,"value":271},{"type":13,"tag":74,"props":391,"children":392},{"style":81},[393],{"type":18,"value":307},{"type":13,"tag":74,"props":395,"children":396},{"style":250},[397],{"type":18,"value":398}," i32",{"type":13,"tag":74,"props":400,"children":401},{"style":92},[402],{"type":18,"value":290},{"type":13,"tag":74,"props":404,"children":405},{"class":76,"line":189},[406,411,415,419],{"type":13,"tag":74,"props":407,"children":408},{"style":92},[409],{"type":18,"value":410}," correlation_mask_count",{"type":13,"tag":74,"props":412,"children":413},{"style":81},[414],{"type":18,"value":271},{"type":13,"tag":74,"props":416,"children":417},{"style":250},[418],{"type":18,"value":329},{"type":13,"tag":74,"props":420,"children":421},{"style":92},[422],{"type":18,"value":290},{"type":13,"tag":74,"props":424,"children":425},{"class":76,"line":202},[426,431,435,439,443],{"type":13,"tag":74,"props":427,"children":428},{"style":92},[429],{"type":18,"value":430}," p_correlation_masks",{"type":13,"tag":74,"props":432,"children":433},{"style":81},[434],{"type":18,"value":271},{"type":13,"tag":74,"props":436,"children":437},{"style":81},[438],{"type":18,"value":307},{"type":13,"tag":74,"props":440,"children":441},{"style":250},[442],{"type":18,"value":329},{"type":13,"tag":74,"props":444,"children":445},{"style":92},[446],{"type":18,"value":290},{"type":13,"tag":74,"props":448,"children":449},{"class":76,"line":219},[450],{"type":13,"tag":74,"props":451,"children":452},{"style":92},[453],{"type":18,"value":454},"}\n",{"type":13,"tag":14,"props":456,"children":457},{},[458],{"type":18,"value":459},"or the equivalent",{"type":13,"tag":58,"props":461,"children":462},{},[463,482],{"type":13,"tag":62,"props":464,"children":466},{"className":64,"code":465,"filename":66,"language":67,"meta":68,"style":68},"typedef VkRenderPassMultiviewCreateInfo VkRenderPassMultiviewCreateInfoKHR;\n",[467],{"type":13,"tag":30,"props":468,"children":469},{"__ignoreMap":68},[470],{"type":13,"tag":74,"props":471,"children":472},{"class":76,"line":77},[473,477],{"type":13,"tag":74,"props":474,"children":475},{"style":81},[476],{"type":18,"value":84},{"type":13,"tag":74,"props":478,"children":479},{"style":92},[480],{"type":18,"value":481}," VkRenderPassMultiviewCreateInfo VkRenderPassMultiviewCreateInfoKHR;\n",{"type":13,"tag":62,"props":483,"children":485},{"className":228,"code":484,"filename":230,"language":231,"meta":68,"style":68},"type RenderPassMultiviewCreateInfoKHR = vk::RenderPassMultiviewCreateInfo;\n",[486],{"type":13,"tag":30,"props":487,"children":488},{"__ignoreMap":68},[489],{"type":13,"tag":74,"props":490,"children":491},{"class":76,"line":77},[492,497,502,507,511,515,520],{"type":13,"tag":74,"props":493,"children":494},{"style":81},[495],{"type":18,"value":496},"type",{"type":13,"tag":74,"props":498,"children":499},{"style":250},[500],{"type":18,"value":501}," RenderPassMultiviewCreateInfoKHR",{"type":13,"tag":74,"props":503,"children":504},{"style":81},[505],{"type":18,"value":506}," =",{"type":13,"tag":74,"props":508,"children":509},{"style":250},[510],{"type":18,"value":276},{"type":13,"tag":74,"props":512,"children":513},{"style":81},[514],{"type":18,"value":28},{"type":13,"tag":74,"props":516,"children":517},{"style":250},[518],{"type":18,"value":519},"RenderPassMultiviewCreateInfo",{"type":13,"tag":74,"props":521,"children":522},{"style":92},[523],{"type":18,"value":524},";\n",{"type":13,"tag":526,"props":527,"children":528},"ul",{},[529,549,567,578,603,614,638,649],{"type":13,"tag":530,"props":531,"children":532},"li",{},[533,539,541,547],{"type":13,"tag":30,"props":534,"children":536},{"className":535},[],[537],{"type":18,"value":538},"sType",{"type":18,"value":540}," is a ",{"type":13,"tag":21,"props":542,"children":544},{"href":543},"/man/VkStructureType",[545],{"type":18,"value":546},"VkStructureType",{"type":18,"value":548}," value identifying this structure.",{"type":13,"tag":530,"props":550,"children":551},{},[552,557,559,565],{"type":13,"tag":30,"props":553,"children":555},{"className":554},[],[556],{"type":18,"value":35},{"type":18,"value":558}," is ",{"type":13,"tag":30,"props":560,"children":562},{"className":561},[],[563],{"type":18,"value":564},"NULL",{"type":18,"value":566}," or a pointer to a structure extending this\nstructure.",{"type":13,"tag":530,"props":568,"children":569},{},[570,576],{"type":13,"tag":30,"props":571,"children":573},{"className":572},[],[574],{"type":18,"value":575},"subpassCount",{"type":18,"value":577}," is zero or the number of subpasses in the render\npass.",{"type":13,"tag":530,"props":579,"children":580},{},[581,587,589,594,596,601],{"type":13,"tag":30,"props":582,"children":584},{"className":583},[],[585],{"type":18,"value":586},"pViewMasks",{"type":18,"value":588}," is a pointer to an array of ",{"type":13,"tag":30,"props":590,"children":592},{"className":591},[],[593],{"type":18,"value":575},{"type":18,"value":595}," view\nmasks, where each mask is a bitfield of view indices describing which\nviews rendering is broadcast to in each subpass, when multiview is\nenabled.\nIf ",{"type":13,"tag":30,"props":597,"children":599},{"className":598},[],[600],{"type":18,"value":575},{"type":18,"value":602}," is zero, each view mask is treated as zero.",{"type":13,"tag":530,"props":604,"children":605},{},[606,612],{"type":13,"tag":30,"props":607,"children":609},{"className":608},[],[610],{"type":18,"value":611},"dependencyCount",{"type":18,"value":613}," is zero or the number of dependencies in the\nrender pass.",{"type":13,"tag":530,"props":615,"children":616},{},[617,623,624,629,631,636],{"type":13,"tag":30,"props":618,"children":620},{"className":619},[],[621],{"type":18,"value":622},"pViewOffsets",{"type":18,"value":588},{"type":13,"tag":30,"props":625,"children":627},{"className":626},[],[628],{"type":18,"value":611},{"type":18,"value":630},"\nview offsets, one for each dependency.\nIf ",{"type":13,"tag":30,"props":632,"children":634},{"className":633},[],[635],{"type":18,"value":611},{"type":18,"value":637}," is zero, each dependency’s view offset is\ntreated as zero.\nEach view offset controls which views in the source subpass the views in\nthe destination subpass depend on.",{"type":13,"tag":530,"props":639,"children":640},{},[641,647],{"type":13,"tag":30,"props":642,"children":644},{"className":643},[],[645],{"type":18,"value":646},"correlationMaskCount",{"type":18,"value":648}," is zero or the number of correlation masks.",{"type":13,"tag":530,"props":650,"children":651},{},[652,658,660,665,667,672],{"type":13,"tag":30,"props":653,"children":655},{"className":654},[],[656],{"type":18,"value":657},"pCorrelationMasks",{"type":18,"value":659}," is a pointer to an array of\n",{"type":13,"tag":30,"props":661,"children":663},{"className":662},[],[664],{"type":18,"value":646},{"type":18,"value":666}," view masks indicating sets of views that ",{"type":13,"tag":668,"props":669,"children":671},"normative",{"type":670},"may",[],{"type":18,"value":673},"\nbe more efficient to render concurrently.",{"type":13,"tag":14,"props":675,"children":676},{},[677,679,685,687,691,693,696,698,701,703,708,710,716],{"type":18,"value":678},"When a subpass uses a non-zero view mask, ",{"type":13,"tag":680,"props":681,"children":682},"em",{},[683],{"type":18,"value":684},"multiview",{"type":18,"value":686}," functionality is\nconsidered to be enabled.\nMultiview is all-or-nothing for a render pass - that is, either all\nsubpasses ",{"type":13,"tag":668,"props":688,"children":690},{"type":689},"must",[],{"type":18,"value":692}," have a non-zero view mask (though some subpasses ",{"type":13,"tag":668,"props":694,"children":695},{"type":670},[],{"type":18,"value":697}," have\nonly one view) or all ",{"type":13,"tag":668,"props":699,"children":700},{"type":689},[],{"type":18,"value":702}," be zero.\nMultiview causes all drawing and clear commands in the subpass to behave as\nif they were broadcast to each view, where a view is represented by one\nlayer of the framebuffer attachments.\nAll draws and clears are broadcast to each ",{"type":13,"tag":680,"props":704,"children":705},{},[706],{"type":18,"value":707},"view index",{"type":18,"value":709}," whose bit is set in\nthe view mask.\nThe view index is provided in the ",{"type":13,"tag":30,"props":711,"children":713},{"className":712},[],[714],{"type":18,"value":715},"ViewIndex",{"type":18,"value":717}," shader input variable, and\ncolor, depth/stencil, and input attachments all read/write the layer of the\nframebuffer corresponding to the view index.",{"type":13,"tag":14,"props":719,"children":720},{},[721],{"type":18,"value":722},"If the view mask is zero for all subpasses, multiview is considered to be\ndisabled and all drawing commands execute normally, without this additional\nbroadcasting.",{"type":13,"tag":14,"props":724,"children":725},{},[726,728,731,733,739,740,746,748,754],{"type":18,"value":727},"Some implementations ",{"type":13,"tag":668,"props":729,"children":730},{"type":670},[],{"type":18,"value":732}," not support multiview in conjunction with\n",{"type":13,"tag":21,"props":734,"children":736},{"href":735},"/man/VkPhysicalDeviceMeshShaderFeaturesEXT#features-multiview-mesh",[737],{"type":18,"value":738},"mesh shaders",{"type":18,"value":290},{"type":13,"tag":21,"props":741,"children":743},{"href":742},"/man/VkPhysicalDeviceMultiviewFeatures#features-multiview-gs",[744],{"type":18,"value":745},"geometry shaders",{"type":18,"value":747}," or ",{"type":13,"tag":21,"props":749,"children":751},{"href":750},"/man/VkPhysicalDeviceMultiviewFeatures#features-multiview-tess",[752],{"type":18,"value":753},"tessellation shaders",{"type":18,"value":755},".",{"type":13,"tag":757,"props":758,"children":760},"anchor",{"id":759},"renderpass-multiview-view-local",[],{"type":13,"tag":14,"props":762,"children":763},{},[764,766,772,774,778,780,783,785,790],{"type":18,"value":765},"When multiview is enabled, the ",{"type":13,"tag":30,"props":767,"children":769},{"className":768},[],[770],{"type":18,"value":771},"VK_DEPENDENCY_VIEW_LOCAL_BIT",{"type":18,"value":773}," bit in a\ndependency ",{"type":13,"tag":668,"props":775,"children":777},{"type":776},"can",[],{"type":18,"value":779}," be used to express a view-local dependency, meaning that\neach view in the destination subpass depends on a single view in the source\nsubpass.\nUnlike pipeline barriers, a subpass dependency ",{"type":13,"tag":668,"props":781,"children":782},{"type":776},[],{"type":18,"value":784}," potentially have a\ndifferent view mask in the source subpass and the destination subpass.\nIf the dependency is view-local, then each view (dstView) in the\ndestination subpass depends on the view dstView +\n",{"type":13,"tag":30,"props":786,"children":788},{"className":787},[],[789],{"type":18,"value":622},{"type":18,"value":791},"[dependency] in the source subpass.\nIf there is not such a view in the source subpass, then this dependency does\nnot affect that view in the destination subpass.\nIf the dependency is not view-local, then all views in the destination\nsubpass depend on all views in the source subpass, and the view offset is\nignored.\nA non-zero view offset is not allowed in a self-dependency.",{"type":13,"tag":14,"props":793,"children":794},{},[795,797,802,804,807,809,812],{"type":18,"value":796},"The elements of ",{"type":13,"tag":30,"props":798,"children":800},{"className":799},[],[801],{"type":18,"value":657},{"type":18,"value":803}," are a set of masks of views\nindicating that views in the same mask ",{"type":13,"tag":668,"props":805,"children":806},{"type":670},[],{"type":18,"value":808}," exhibit spatial coherency\nbetween the views, making it more efficient to render them concurrently.\nCorrelation masks ",{"type":13,"tag":668,"props":810,"children":811},{"type":689},[],{"type":18,"value":813}," not have a functional effect on the results of the\nmultiview rendering.",{"type":13,"tag":14,"props":815,"children":816},{},[817,819,825,827,833,835,838,840,843,845,848],{"type":18,"value":818},"When multiview is enabled, at the beginning of each subpass all non-render\npass state is undefined:.\nIn particular, each time ",{"type":13,"tag":21,"props":820,"children":822},{"href":821},"/man/vkCmdBeginRenderPass",[823],{"type":18,"value":824},"vkCmdBeginRenderPass",{"type":18,"value":826}," or\n",{"type":13,"tag":21,"props":828,"children":830},{"href":829},"/man/vkCmdNextSubpass",[831],{"type":18,"value":832},"vkCmdNextSubpass",{"type":18,"value":834}," is called the graphics pipeline ",{"type":13,"tag":668,"props":836,"children":837},{"type":689},[],{"type":18,"value":839}," be bound, any\nrelevant descriptor sets or vertex/index buffers ",{"type":13,"tag":668,"props":841,"children":842},{"type":689},[],{"type":18,"value":844}," be bound, and any\nrelevant dynamic state or push constants ",{"type":13,"tag":668,"props":846,"children":847},{"type":689},[],{"type":18,"value":849}," be set before they are used.",{"type":13,"tag":14,"props":851,"children":852},{},[853,855,858,860,866,868,874,876,882,884,890,892,897,899,902,904,909,911,916,917,920,922,927,929,932,934,940,942,947,948,951,953,958,960,965,967,972,974,977,979,985,987,992,993,996,998,1003,1004,1009,1011,1016,1017,1022,1024,1029,1030,1035,1037,1042,1043,1048,1049,1052,1054,1059,1060,1065,1067,1073,1075,1078,1080,1085],{"type":18,"value":854},"A multiview subpass ",{"type":13,"tag":668,"props":856,"children":857},{"type":776},[],{"type":18,"value":859}," declare that its shaders will write per-view\nattributes for all views in a single invocation, by setting the\n",{"type":13,"tag":30,"props":861,"children":863},{"className":862},[],[864],{"type":18,"value":865},"VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX",{"type":18,"value":867}," bit in the subpass\ndescription.\nThe only supported per-view attributes are position and viewport mask, and\nper-view position and viewport masks are written to output array variables\ndecorated with ",{"type":13,"tag":30,"props":869,"children":871},{"className":870},[],[872],{"type":18,"value":873},"PositionPerViewNV",{"type":18,"value":875}," and ",{"type":13,"tag":30,"props":877,"children":879},{"className":878},[],[880],{"type":18,"value":881},"ViewportMaskPerViewNV",{"type":18,"value":883},",\nrespectively.\nIf ",{"type":13,"tag":21,"props":885,"children":887},{"href":886},"/extensions/VK_NV_viewport_array2",[888],{"type":18,"value":889},"VK_NV_viewport_array2",{"type":18,"value":891}," is not supported and enabled,\n",{"type":13,"tag":30,"props":893,"children":895},{"className":894},[],[896],{"type":18,"value":881},{"type":18,"value":898}," ",{"type":13,"tag":668,"props":900,"children":901},{"type":689},[],{"type":18,"value":903}," not be used.\nValues written to elements of ",{"type":13,"tag":30,"props":905,"children":907},{"className":906},[],[908],{"type":18,"value":873},{"type":18,"value":910}," and\n",{"type":13,"tag":30,"props":912,"children":914},{"className":913},[],[915],{"type":18,"value":881},{"type":18,"value":898},{"type":13,"tag":668,"props":918,"children":919},{"type":689},[],{"type":18,"value":921}," not depend on the ",{"type":13,"tag":30,"props":923,"children":925},{"className":924},[],[926],{"type":18,"value":715},{"type":18,"value":928},".\nThe shader ",{"type":13,"tag":668,"props":930,"children":931},{"type":689},[],{"type":18,"value":933}," also write to an output variable decorated with\n",{"type":13,"tag":30,"props":935,"children":937},{"className":936},[],[938],{"type":18,"value":939},"Position",{"type":18,"value":941},", and the value written to ",{"type":13,"tag":30,"props":943,"children":945},{"className":944},[],[946],{"type":18,"value":939},{"type":18,"value":898},{"type":13,"tag":668,"props":949,"children":950},{"type":689},[],{"type":18,"value":952}," equal the value\nwritten to ",{"type":13,"tag":30,"props":954,"children":956},{"className":955},[],[957],{"type":18,"value":873},{"type":18,"value":959},"[",{"type":13,"tag":30,"props":961,"children":963},{"className":962},[],[964],{"type":18,"value":715},{"type":18,"value":966},"].\nSimilarly, if ",{"type":13,"tag":30,"props":968,"children":970},{"className":969},[],[971],{"type":18,"value":881},{"type":18,"value":973}," is written to then the shader ",{"type":13,"tag":668,"props":975,"children":976},{"type":689},[],{"type":18,"value":978},"\nalso write to an output variable decorated with ",{"type":13,"tag":30,"props":980,"children":982},{"className":981},[],[983],{"type":18,"value":984},"ViewportMaskNV",{"type":18,"value":986},", and the\nvalue written to ",{"type":13,"tag":30,"props":988,"children":990},{"className":989},[],[991],{"type":18,"value":984},{"type":18,"value":898},{"type":13,"tag":668,"props":994,"children":995},{"type":689},[],{"type":18,"value":997}," equal the value written to\n",{"type":13,"tag":30,"props":999,"children":1001},{"className":1000},[],[1002],{"type":18,"value":881},{"type":18,"value":959},{"type":13,"tag":30,"props":1005,"children":1007},{"className":1006},[],[1008],{"type":18,"value":715},{"type":18,"value":1010},"].\nImplementations will either use values taken from ",{"type":13,"tag":30,"props":1012,"children":1014},{"className":1013},[],[1015],{"type":18,"value":939},{"type":18,"value":910},{"type":13,"tag":30,"props":1018,"children":1020},{"className":1019},[],[1021],{"type":18,"value":984},{"type":18,"value":1023}," and invoke the shader once for each view, or will use\nvalues taken from ",{"type":13,"tag":30,"props":1025,"children":1027},{"className":1026},[],[1028],{"type":18,"value":873},{"type":18,"value":875},{"type":13,"tag":30,"props":1031,"children":1033},{"className":1032},[],[1034],{"type":18,"value":881},{"type":18,"value":1036}," and\ninvoke the shader fewer times.\nThe values written to ",{"type":13,"tag":30,"props":1038,"children":1040},{"className":1039},[],[1041],{"type":18,"value":939},{"type":18,"value":875},{"type":13,"tag":30,"props":1044,"children":1046},{"className":1045},[],[1047],{"type":18,"value":984},{"type":18,"value":898},{"type":13,"tag":668,"props":1050,"children":1051},{"type":689},[],{"type":18,"value":1053}," not depend\non the values written to ",{"type":13,"tag":30,"props":1055,"children":1057},{"className":1056},[],[1058],{"type":18,"value":873},{"type":18,"value":910},{"type":13,"tag":30,"props":1061,"children":1063},{"className":1062},[],[1064],{"type":18,"value":881},{"type":18,"value":1066},", or vice versa (to allow compilers to eliminate\nthe unused outputs).\nAll attributes that do not have ",{"type":13,"tag":30,"props":1068,"children":1070},{"className":1069},[],[1071],{"type":18,"value":1072},"*PerViewNV",{"type":18,"value":1074}," counterparts ",{"type":13,"tag":668,"props":1076,"children":1077},{"type":689},[],{"type":18,"value":1079}," not depend\non ",{"type":13,"tag":30,"props":1081,"children":1083},{"className":1082},[],[1084],{"type":18,"value":715},{"type":18,"value":755},{"type":13,"tag":14,"props":1087,"children":1088},{},[1089,1091,1096,1098,1101,1103,1109,1111,1116,1118,1121,1123,1128],{"type":18,"value":1090},"Per-view attributes are all-or-nothing for a subpass.\nThat is, all pipelines compiled against a subpass that includes the\n",{"type":13,"tag":30,"props":1092,"children":1094},{"className":1093},[],[1095],{"type":18,"value":865},{"type":18,"value":1097}," bit ",{"type":13,"tag":668,"props":1099,"children":1100},{"type":689},[],{"type":18,"value":1102}," write\nper-view attributes to the ",{"type":13,"tag":30,"props":1104,"children":1106},{"className":1105},[],[1107],{"type":18,"value":1108},"*PerViewNV[]",{"type":18,"value":1110}," shader outputs, in addition to the\nnon-per-view (e.g. ",{"type":13,"tag":30,"props":1112,"children":1114},{"className":1113},[],[1115],{"type":18,"value":939},{"type":18,"value":1117},") outputs.\nPipelines compiled against a subpass that does not include this bit ",{"type":13,"tag":668,"props":1119,"children":1120},{"type":689},[],{"type":18,"value":1122},"\nnot include the ",{"type":13,"tag":30,"props":1124,"children":1126},{"className":1125},[],[1127],{"type":18,"value":1108},{"type":18,"value":1129}," outputs in their interfaces.",{"type":13,"tag":1131,"props":1132,"children":1134},"validity-group",{"name":1133},"Valid Usage",[1135,1155,1191],{"type":13,"tag":1136,"props":1137,"children":1139},"validity-field",{"name":1138},"VUID-VkRenderPassMultiviewCreateInfo-pCorrelationMasks-00841",[1140],{"type":13,"tag":14,"props":1141,"children":1142},{},[1143,1145,1148,1150],{"type":18,"value":1144},"Each view index ",{"type":13,"tag":668,"props":1146,"children":1147},{"type":689},[],{"type":18,"value":1149}," not be set in more than one element of\n",{"type":13,"tag":30,"props":1151,"children":1153},{"className":1152},[],[1154],{"type":18,"value":657},{"type":13,"tag":1136,"props":1156,"children":1158},{"name":1157},"VUID-VkRenderPassMultiviewCreateInfo-multiview-06555",[1159],{"type":13,"tag":14,"props":1160,"children":1161},{},[1162,1163,1172,1174,1179,1180,1183,1185],{"type":18,"value":19},{"type":13,"tag":21,"props":1164,"children":1166},{"href":1165},"/man/VkPhysicalDeviceMultiviewFeatures#features-multiview",[1167],{"type":13,"tag":30,"props":1168,"children":1170},{"className":1169},[],[1171],{"type":18,"value":684},{"type":18,"value":1173}," feature is not enabled,\neach element of ",{"type":13,"tag":30,"props":1175,"children":1177},{"className":1176},[],[1178],{"type":18,"value":586},{"type":18,"value":898},{"type":13,"tag":668,"props":1181,"children":1182},{"type":689},[],{"type":18,"value":1184}," be ",{"type":13,"tag":30,"props":1186,"children":1188},{"className":1187},[],[1189],{"type":18,"value":1190},"0",{"type":13,"tag":1136,"props":1192,"children":1194},{"name":1193},"VUID-VkRenderPassMultiviewCreateInfo-pViewMasks-06697",[1195],{"type":13,"tag":14,"props":1196,"children":1197},{},[1198,1200,1205,1206,1209,1211],{"type":18,"value":1199},"The index of the most significant bit in each element of\n",{"type":13,"tag":30,"props":1201,"children":1203},{"className":1202},[],[1204],{"type":18,"value":586},{"type":18,"value":898},{"type":13,"tag":668,"props":1207,"children":1208},{"type":689},[],{"type":18,"value":1210}," be less than ",{"type":13,"tag":21,"props":1212,"children":1214},{"href":1213},"/man/VkPhysicalDeviceMultiviewProperties#limits-maxMultiviewViewCount",[1215],{"type":13,"tag":30,"props":1216,"children":1218},{"className":1217},[],[1219],{"type":18,"value":1220},"maxMultiviewViewCount",{"type":13,"tag":1131,"props":1222,"children":1224},{"name":1223},"Valid Usage (Implicit)",[1225,1248,1296,1339],{"type":13,"tag":1136,"props":1226,"children":1228},{"name":1227},"VUID-VkRenderPassMultiviewCreateInfo-sType-sType",[1229],{"type":13,"tag":14,"props":1230,"children":1231},{},[1232,1237,1238,1241,1242],{"type":13,"tag":30,"props":1233,"children":1235},{"className":1234},[],[1236],{"type":18,"value":538},{"type":18,"value":898},{"type":13,"tag":668,"props":1239,"children":1240},{"type":689},[],{"type":18,"value":1184},{"type":13,"tag":30,"props":1243,"children":1245},{"className":1244},[],[1246],{"type":18,"value":1247},"VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO",{"type":13,"tag":1136,"props":1249,"children":1251},{"name":1250},"VUID-VkRenderPassMultiviewCreateInfo-pViewMasks-parameter",[1252],{"type":13,"tag":14,"props":1253,"children":1254},{},[1255,1257,1262,1264,1269,1271,1276,1277,1280,1282,1287,1288,1294],{"type":18,"value":1256},"If ",{"type":13,"tag":30,"props":1258,"children":1260},{"className":1259},[],[1261],{"type":18,"value":575},{"type":18,"value":1263}," is not ",{"type":13,"tag":30,"props":1265,"children":1267},{"className":1266},[],[1268],{"type":18,"value":1190},{"type":18,"value":1270},", ",{"type":13,"tag":30,"props":1272,"children":1274},{"className":1273},[],[1275],{"type":18,"value":586},{"type":18,"value":898},{"type":13,"tag":668,"props":1278,"children":1279},{"type":689},[],{"type":18,"value":1281}," be a valid pointer to an array of ",{"type":13,"tag":30,"props":1283,"children":1285},{"className":1284},[],[1286],{"type":18,"value":575},{"type":18,"value":898},{"type":13,"tag":30,"props":1289,"children":1291},{"className":1290},[],[1292],{"type":18,"value":1293},"uint32_t",{"type":18,"value":1295}," values",{"type":13,"tag":1136,"props":1297,"children":1299},{"name":1298},"VUID-VkRenderPassMultiviewCreateInfo-pViewOffsets-parameter",[1300],{"type":13,"tag":14,"props":1301,"children":1302},{},[1303,1304,1309,1310,1315,1316,1321,1322,1325,1326,1331,1332,1338],{"type":18,"value":1256},{"type":13,"tag":30,"props":1305,"children":1307},{"className":1306},[],[1308],{"type":18,"value":611},{"type":18,"value":1263},{"type":13,"tag":30,"props":1311,"children":1313},{"className":1312},[],[1314],{"type":18,"value":1190},{"type":18,"value":1270},{"type":13,"tag":30,"props":1317,"children":1319},{"className":1318},[],[1320],{"type":18,"value":622},{"type":18,"value":898},{"type":13,"tag":668,"props":1323,"children":1324},{"type":689},[],{"type":18,"value":1281},{"type":13,"tag":30,"props":1327,"children":1329},{"className":1328},[],[1330],{"type":18,"value":611},{"type":18,"value":898},{"type":13,"tag":30,"props":1333,"children":1335},{"className":1334},[],[1336],{"type":18,"value":1337},"int32_t",{"type":18,"value":1295},{"type":13,"tag":1136,"props":1340,"children":1342},{"name":1341},"VUID-VkRenderPassMultiviewCreateInfo-pCorrelationMasks-parameter",[1343],{"type":13,"tag":14,"props":1344,"children":1345},{},[1346,1347,1352,1353,1358,1359,1364,1365,1368,1369,1374,1375,1380],{"type":18,"value":1256},{"type":13,"tag":30,"props":1348,"children":1350},{"className":1349},[],[1351],{"type":18,"value":646},{"type":18,"value":1263},{"type":13,"tag":30,"props":1354,"children":1356},{"className":1355},[],[1357],{"type":18,"value":1190},{"type":18,"value":1270},{"type":13,"tag":30,"props":1360,"children":1362},{"className":1361},[],[1363],{"type":18,"value":657},{"type":18,"value":898},{"type":13,"tag":668,"props":1366,"children":1367},{"type":689},[],{"type":18,"value":1281},{"type":13,"tag":30,"props":1370,"children":1372},{"className":1371},[],[1373],{"type":18,"value":646},{"type":18,"value":898},{"type":13,"tag":30,"props":1376,"children":1378},{"className":1377},[],[1379],{"type":18,"value":1293},{"type":18,"value":1295},{"type":13,"tag":1382,"props":1383,"children":1384},"style",{},[1385],{"type":18,"value":1386},"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":68,"searchDepth":98,"depth":98,"links":1388},[],"markdown",1725732583208]