[{"data":1,"prerenderedAt":6267},["ShallowReactive",2],{"uXeQqnoEG0":3,"VyF3Mmj32r":4685,"N9m89Rcq0G":4911},{"title":4,"description":5,"body":6,"_type":4683,"_id":4684},"Fragment Operations","Fragments produced by rasterization go through a number of operations to\ndetermine whether or how values produced by fragment shading are written to\nthe framebuffer.",{"type":7,"children":8,"toc":4650},"root",[9,17,22,36,220,242,274,287,320,390,458,505,559,609,614,833,881,885,1004,1033,1045,1052,1078,1107,1211,1216,1226,1236,1246,1255,1264,1273,1279,1313,1339,1435,1477,1485,1491,1523,1549,1643,1648,1656,1664,1673,1679,1711,1720,1757,1763,1781,1793,1798,1954,1964,2005,2012,2037,2061,2090,2118,2124,2145,2164,2185,2213,2242,2254,2266,2305,2353,2396,2413,2436,2453,2466,2479,2484,2497,2537,2561,2597,2602,2638,2643,2679,2684,2709,2743,2766,2798,2819,2851,2872,2878,2947,2997,3006,3015,3042,3071,3082,3092,3105,3117,3123,3152,3160,3169,3178,3184,3219,3260,3291,3296,3304,3312,3318,3350,3355,3380,3391,3409,3451,3508,3580,3591,3662,3719,3756,3764,3772,3780,3788,3797,3806,3815,3823,3831,3837,3871,3876,3881,3887,3951,3970,4003,4008,4056,4062,4087,4141,4151,4157,4194,4202,4210,4218,4224,4242,4251,4260,4266,4278,4283,4289,4298,4306,4315,4324,4330,4335,4341,4359,4364,4380,4405,4411,4416,4434,4439,4457,4519,4539,4547,4555,4564,4573,4582,4591,4597,4606,4614,4623,4632,4641],{"type":10,"tag":11,"props":12,"children":14},"element","h1",{"id":13},"fragops",[15],{"type":16,"value":4},"text",{"type":10,"tag":18,"props":19,"children":20},"p",{},[21],{"type":16,"value":5},{"type":10,"tag":18,"props":23,"children":24},{},[25,27,34],{"type":16,"value":26},"The following fragment operations adhere to ",{"type":10,"tag":28,"props":29,"children":31},"a",{"href":30},"/chapters/primsrast#primsrast-order",[32],{"type":16,"value":33},"rasterization\norder",{"type":16,"value":35},", and are typically performed in this order:",{"type":10,"tag":37,"props":38,"children":39},"ol",{},[40,50,59,68,77,139,148,157,166,175,184,193,202,211],{"type":10,"tag":41,"props":42,"children":43},"li",{},[44],{"type":10,"tag":28,"props":45,"children":47},{"href":46},"/chapters/fragops#fragops-discard-rectangles",[48],{"type":16,"value":49},"Discard rectangles test",{"type":10,"tag":41,"props":51,"children":52},{},[53],{"type":10,"tag":28,"props":54,"children":56},{"href":55},"/chapters/fragops#fragops-scissor",[57],{"type":16,"value":58},"Scissor test",{"type":10,"tag":41,"props":60,"children":61},{},[62],{"type":10,"tag":28,"props":63,"children":65},{"href":64},"/chapters/fragops#fragops-exclusive-scissor",[66],{"type":16,"value":67},"Exclusive scissor test",{"type":10,"tag":41,"props":69,"children":70},{},[71],{"type":10,"tag":28,"props":72,"children":74},{"href":73},"/chapters/fragops#fragops-samplemask",[75],{"type":16,"value":76},"Sample mask test",{"type":10,"tag":41,"props":78,"children":79},{},[80,82,88,90],{"type":16,"value":81},"Certain ",{"type":10,"tag":28,"props":83,"children":85},{"href":84},"/chapters/fragops#fragops-shader",[86],{"type":16,"value":87},"Fragment shading",{"type":16,"value":89}," operations:",{"type":10,"tag":91,"props":92,"children":93},"ul",{},[94,103,112,121,130],{"type":10,"tag":41,"props":95,"children":96},{},[97],{"type":10,"tag":28,"props":98,"children":100},{"href":99},"/chapters/fragops#fragops-shader-samplemask",[101],{"type":16,"value":102},"Sample Mask Accesses",{"type":10,"tag":41,"props":104,"children":105},{},[106],{"type":10,"tag":28,"props":107,"children":109},{"href":108},"/chapters/fragops#fragops-shader-tileimage-reads",[110],{"type":16,"value":111},"Tile Image Reads",{"type":10,"tag":41,"props":113,"children":114},{},[115],{"type":10,"tag":28,"props":116,"children":118},{"href":117},"/chapters/fragops#fragops-shader-depthreplacement",[119],{"type":16,"value":120},"Depth Replacement",{"type":10,"tag":41,"props":122,"children":123},{},[124],{"type":10,"tag":28,"props":125,"children":127},{"href":126},"/chapters/fragops#fragops-shader-stencilrefreplacement",[128],{"type":16,"value":129},"Stencil Reference Replacement",{"type":10,"tag":41,"props":131,"children":132},{},[133],{"type":10,"tag":28,"props":134,"children":136},{"href":135},"/chapters/fragops#fragops-shader-interlock",[137],{"type":16,"value":138},"Interlocked Operations",{"type":10,"tag":41,"props":140,"children":141},{},[142],{"type":10,"tag":28,"props":143,"children":145},{"href":144},"/chapters/fragops#fragops-covg",[146],{"type":16,"value":147},"Multisample coverage",{"type":10,"tag":41,"props":149,"children":150},{},[151],{"type":10,"tag":28,"props":152,"children":154},{"href":153},"/chapters/fragops#fragops-dbt",[155],{"type":16,"value":156},"Depth bounds test",{"type":10,"tag":41,"props":158,"children":159},{},[160],{"type":10,"tag":28,"props":161,"children":163},{"href":162},"/chapters/fragops#fragops-stencil",[164],{"type":16,"value":165},"Stencil test",{"type":10,"tag":41,"props":167,"children":168},{},[169],{"type":10,"tag":28,"props":170,"children":172},{"href":171},"/chapters/fragops#fragops-depth",[173],{"type":16,"value":174},"Depth test",{"type":10,"tag":41,"props":176,"children":177},{},[178],{"type":10,"tag":28,"props":179,"children":181},{"href":180},"/chapters/fragops#fragops-rep-frag-test",[182],{"type":16,"value":183},"Representative fragment test",{"type":10,"tag":41,"props":185,"children":186},{},[187],{"type":10,"tag":28,"props":188,"children":190},{"href":189},"/chapters/fragops#fragops-samplecount",[191],{"type":16,"value":192},"Sample counting",{"type":10,"tag":41,"props":194,"children":195},{},[196],{"type":10,"tag":28,"props":197,"children":199},{"href":198},"/chapters/fragops#fragops-coverage-to-color",[200],{"type":16,"value":201},"Coverage to color",{"type":10,"tag":41,"props":203,"children":204},{},[205],{"type":10,"tag":28,"props":206,"children":208},{"href":207},"/chapters/fragops#fragops-coverage-reduction",[209],{"type":16,"value":210},"Coverage reduction",{"type":10,"tag":41,"props":212,"children":213},{},[214],{"type":10,"tag":28,"props":215,"children":217},{"href":216},"/chapters/fragops#fragops-coverage-modulation",[218],{"type":16,"value":219},"Coverage modulation",{"type":10,"tag":18,"props":221,"children":222},{},[223,225,231,233,240],{"type":16,"value":224},"The ",{"type":10,"tag":28,"props":226,"children":228},{"href":227},"/chapters/primsrast#primsrast-multisampling-coverage-mask",[229],{"type":16,"value":230},"coverage mask",{"type":16,"value":232}," generated by\nrasterization describes the initial coverage of each sample covered by the\nfragment.\nFragment operations will update the coverage mask to add or subtract\ncoverage where appropriate.\nIf a fragment operation results in all bits of the coverage mask being ",{"type":10,"tag":234,"props":235,"children":237},"code",{"className":236},[],[238],{"type":16,"value":239},"0",{"type":16,"value":241},",\nthe fragment is discarded, and no further operations are performed.\nFragments can also be programmatically discarded in a fragment shader by\nexecuting one of",{"type":10,"tag":91,"props":243,"children":244},{},[245,254,263],{"type":10,"tag":41,"props":246,"children":247},{},[248],{"type":10,"tag":234,"props":249,"children":251},{"className":250},[],[252],{"type":16,"value":253},"OpTerminateInvocation",{"type":10,"tag":41,"props":255,"children":256},{},[257],{"type":10,"tag":234,"props":258,"children":260},{"className":259},[],[261],{"type":16,"value":262},"OpDemoteToHelperInvocationEXT",{"type":10,"tag":41,"props":264,"children":265},{},[266,272],{"type":10,"tag":234,"props":267,"children":269},{"className":268},[],[270],{"type":16,"value":271},"OpKill",{"type":16,"value":273},".",{"type":10,"tag":18,"props":275,"children":276},{},[277,279,285],{"type":16,"value":278},"When one of the fragment operations in this chapter is described as\n",{"type":10,"tag":234,"props":280,"children":282},{"className":281},[],[283],{"type":16,"value":284},"replacing",{"type":16,"value":286}," a fragment shader output, that output is replaced\nunconditionally, even if no fragment shader previously wrote to that output.",{"type":10,"tag":18,"props":288,"children":289},{},[290,292,297,299,305,307,312,314,319],{"type":16,"value":291},"If there is a ",{"type":10,"tag":28,"props":293,"children":294},{"href":84},[295],{"type":16,"value":296},"fragment shader",{"type":16,"value":298}," and it declares the\n",{"type":10,"tag":234,"props":300,"children":302},{"className":301},[],[303],{"type":16,"value":304},"PostDepthCoverage",{"type":16,"value":306}," execution mode, the ",{"type":10,"tag":28,"props":308,"children":309},{"href":73},[310],{"type":16,"value":311},"sample mask\ntest",{"type":16,"value":313}," is instead performed after the ",{"type":10,"tag":28,"props":315,"children":316},{"href":171},[317],{"type":16,"value":318},"depth test",{"type":16,"value":273},{"type":10,"tag":18,"props":321,"children":322},{},[323,325,331,333,339,341,347,349,353,355,361,363,368,370,375,377,382,384,389],{"type":16,"value":324},"If\n",{"type":10,"tag":234,"props":326,"children":328},{"className":327},[],[329],{"type":16,"value":330},"VkPhysicalDeviceMaintenance5PropertiesKHR",{"type":16,"value":332},"::",{"type":10,"tag":234,"props":334,"children":336},{"className":335},[],[337],{"type":16,"value":338},"earlyFragmentMultisampleCoverageAfterSampleCounting",{"type":16,"value":340},"\nis set to ",{"type":10,"tag":234,"props":342,"children":344},{"className":343},[],[345],{"type":16,"value":346},"VK_TRUE",{"type":16,"value":348}," and there is a ",{"type":10,"tag":28,"props":350,"children":351},{"href":84},[352],{"type":16,"value":296},{"type":16,"value":354},"\nwhich declares the ",{"type":10,"tag":234,"props":356,"children":358},{"className":357},[],[359],{"type":16,"value":360},"EarlyFragmentTests",{"type":16,"value":362}," execution mode, ",{"type":10,"tag":28,"props":364,"children":365},{"href":84},[366],{"type":16,"value":367},"fragment shading",{"type":16,"value":369}," and ",{"type":10,"tag":28,"props":371,"children":372},{"href":144},[373],{"type":16,"value":374},"multisample coverage",{"type":16,"value":376}," operations\n",{"type":10,"tag":378,"props":379,"children":381},"normative",{"type":380},"must",[],{"type":16,"value":383}," be performed after ",{"type":10,"tag":28,"props":385,"children":386},{"href":189},[387],{"type":16,"value":388},"sample counting",{"type":16,"value":273},{"type":10,"tag":18,"props":391,"children":392},{},[393,395,400,401,406,407,413,414,418,419,424,425,429,430,434,435,439,441,445,447,451,453,457],{"type":16,"value":394},"Otherwise, if\n",{"type":10,"tag":234,"props":396,"children":398},{"className":397},[],[399],{"type":16,"value":330},{"type":16,"value":332},{"type":10,"tag":234,"props":402,"children":404},{"className":403},[],[405],{"type":16,"value":338},{"type":16,"value":340},{"type":10,"tag":234,"props":408,"children":410},{"className":409},[],[411],{"type":16,"value":412},"VK_FALSE",{"type":16,"value":348},{"type":10,"tag":28,"props":415,"children":416},{"href":84},[417],{"type":16,"value":296},{"type":16,"value":354},{"type":10,"tag":234,"props":420,"children":422},{"className":421},[],[423],{"type":16,"value":360},{"type":16,"value":362},{"type":10,"tag":28,"props":426,"children":427},{"href":84},[428],{"type":16,"value":367},{"type":16,"value":369},{"type":10,"tag":28,"props":431,"children":432},{"href":144},[433],{"type":16,"value":374},{"type":16,"value":376},{"type":10,"tag":378,"props":436,"children":438},{"type":437},"should",[],{"type":16,"value":440}," instead be performed after ",{"type":10,"tag":28,"props":442,"children":443},{"href":189},[444],{"type":16,"value":388},{"type":16,"value":446},",\nbut ",{"type":10,"tag":378,"props":448,"children":450},{"type":449},"may",[],{"type":16,"value":452}," be performed before ",{"type":10,"tag":28,"props":454,"children":455},{"href":189},[456],{"type":16,"value":388},{"type":16,"value":273},{"type":10,"tag":18,"props":459,"children":460},{},[461,462,467,468,474,475,480,481,485,486,491,493,498,500,503],{"type":16,"value":324},{"type":10,"tag":234,"props":463,"children":465},{"className":464},[],[466],{"type":16,"value":330},{"type":16,"value":332},{"type":10,"tag":234,"props":469,"children":471},{"className":470},[],[472],{"type":16,"value":473},"earlyFragmentSampleMaskTestBeforeSampleCounting",{"type":16,"value":340},{"type":10,"tag":234,"props":476,"children":478},{"className":477},[],[479],{"type":16,"value":346},{"type":16,"value":348},{"type":10,"tag":28,"props":482,"children":483},{"href":84},[484],{"type":16,"value":296},{"type":16,"value":354},{"type":10,"tag":234,"props":487,"children":489},{"className":488},[],[490],{"type":16,"value":360},{"type":16,"value":492}," execution mode\n",{"type":10,"tag":28,"props":494,"children":495},{"href":73},[496],{"type":16,"value":497},"sample mask test",{"type":16,"value":499}," operations ",{"type":10,"tag":378,"props":501,"children":502},{"type":380},[],{"type":16,"value":504}," follow the order\nof fragment operations from above.",{"type":10,"tag":18,"props":506,"children":507},{},[508,509,514,515,520,521,526,527,531,532,537,539,543,544,547,549,552,554,558],{"type":16,"value":394},{"type":10,"tag":234,"props":510,"children":512},{"className":511},[],[513],{"type":16,"value":330},{"type":16,"value":332},{"type":10,"tag":234,"props":516,"children":518},{"className":517},[],[519],{"type":16,"value":473},{"type":16,"value":340},{"type":10,"tag":234,"props":522,"children":524},{"className":523},[],[525],{"type":16,"value":412},{"type":16,"value":348},{"type":10,"tag":28,"props":528,"children":529},{"href":84},[530],{"type":16,"value":296},{"type":16,"value":354},{"type":10,"tag":234,"props":533,"children":535},{"className":534},[],[536],{"type":16,"value":360},{"type":16,"value":538}," execution mode,\n",{"type":10,"tag":28,"props":540,"children":541},{"href":73},[542],{"type":16,"value":497},{"type":16,"value":499},{"type":10,"tag":378,"props":545,"children":546},{"type":437},[],{"type":16,"value":548}," follow the order\nof fragment operations from above but ",{"type":10,"tag":378,"props":550,"children":551},{"type":449},[],{"type":16,"value":553}," instead be performed after\n",{"type":10,"tag":28,"props":555,"children":556},{"href":189},[557],{"type":16,"value":388},{"type":16,"value":273},{"type":10,"tag":18,"props":560,"children":561},{},[562,563,567,569,575,577,583,585,591,593,597,598,602,604,608],{"type":16,"value":291},{"type":10,"tag":28,"props":564,"children":565},{"href":84},[566],{"type":16,"value":296},{"type":16,"value":568}," which declares the\n",{"type":10,"tag":234,"props":570,"children":572},{"className":571},[],[573],{"type":16,"value":574},"EarlyAndLateFragmentTestsAMD",{"type":16,"value":576}," execution mode, and it does not declare\nthe ",{"type":10,"tag":234,"props":578,"children":580},{"className":579},[],[581],{"type":16,"value":582},"DepthReplacing",{"type":16,"value":584},"\nor ",{"type":10,"tag":234,"props":586,"children":588},{"className":587},[],[589],{"type":16,"value":590},"StencilRefReplacingEXT",{"type":16,"value":592},"\nexecution mode, ",{"type":10,"tag":28,"props":594,"children":595},{"href":84},[596],{"type":16,"value":367},{"type":16,"value":369},{"type":10,"tag":28,"props":599,"children":600},{"href":144},[601],{"type":16,"value":374},{"type":16,"value":603}," operations are instead be performed after\n",{"type":10,"tag":28,"props":605,"children":606},{"href":189},[607],{"type":16,"value":388},{"type":16,"value":273},{"type":10,"tag":18,"props":610,"children":611},{},[612],{"type":16,"value":613},"For a pipeline with the following properties:",{"type":10,"tag":91,"props":615,"children":616},{},[617,622,634,646,747],{"type":10,"tag":41,"props":618,"children":619},{},[620],{"type":16,"value":621},"a fragment shader is specified",{"type":10,"tag":41,"props":623,"children":624},{},[625,627,632],{"type":16,"value":626},"the fragment shader either specifies ",{"type":10,"tag":234,"props":628,"children":630},{"className":629},[],[631],{"type":16,"value":574},{"type":16,"value":633},"\nor does not write to storage resources;",{"type":10,"tag":41,"props":635,"children":636},{},[637,639,644],{"type":16,"value":638},"the fragment shader specifies the ",{"type":10,"tag":234,"props":640,"children":642},{"className":641},[],[643],{"type":16,"value":590},{"type":16,"value":645}," execution\nmode;",{"type":10,"tag":41,"props":647,"children":648},{},[649,651],{"type":16,"value":650},"either",{"type":10,"tag":91,"props":652,"children":653},{},[654,666,709],{"type":10,"tag":41,"props":655,"children":656},{},[657,658,664],{"type":16,"value":638},{"type":10,"tag":234,"props":659,"children":661},{"className":660},[],[662],{"type":16,"value":663},"StencilRefUnchangedFrontAMD",{"type":16,"value":665},"\nexecution mode;",{"type":10,"tag":41,"props":667,"children":668},{},[669,670,676,678,684,685,691,693,699,701,707],{"type":16,"value":638},{"type":10,"tag":234,"props":671,"children":673},{"className":672},[],[674],{"type":16,"value":675},"StencilRefLessFrontAMD",{"type":16,"value":677}," execution\nmode and the pipeline uses a\n",{"type":10,"tag":28,"props":679,"children":681},{"href":680},"/man/VkPipelineDepthStencilStateCreateInfo",[682],{"type":16,"value":683},"VkPipelineDepthStencilStateCreateInfo",{"type":16,"value":332},{"type":10,"tag":234,"props":686,"children":688},{"className":687},[],[689],{"type":16,"value":690},"front.compareOp",{"type":16,"value":692}," of\n",{"type":10,"tag":234,"props":694,"children":696},{"className":695},[],[697],{"type":16,"value":698},"VK_COMPARE_OP_GREATER",{"type":16,"value":700}," or ",{"type":10,"tag":234,"props":702,"children":704},{"className":703},[],[705],{"type":16,"value":706},"VK_COMPARE_OP_GREATER_OR_EQUAL",{"type":16,"value":708},"; or",{"type":10,"tag":41,"props":710,"children":711},{},[712,713,719,721,725,726,731,732,738,739,745],{"type":16,"value":638},{"type":10,"tag":234,"props":714,"children":716},{"className":715},[],[717],{"type":16,"value":718},"StencilRefGreaterFrontAMD",{"type":16,"value":720},"\nexecution mode and the pipeline uses a\n",{"type":10,"tag":28,"props":722,"children":723},{"href":680},[724],{"type":16,"value":683},{"type":16,"value":332},{"type":10,"tag":234,"props":727,"children":729},{"className":728},[],[730],{"type":16,"value":690},{"type":16,"value":692},{"type":10,"tag":234,"props":733,"children":735},{"className":734},[],[736],{"type":16,"value":737},"VK_COMPARE_OP_LESS",{"type":16,"value":700},{"type":10,"tag":234,"props":740,"children":742},{"className":741},[],[743],{"type":16,"value":744},"VK_COMPARE_OP_LESS_OR_EQUAL",{"type":16,"value":746},"; and",{"type":10,"tag":41,"props":748,"children":749},{},[750,751],{"type":16,"value":650},{"type":10,"tag":91,"props":752,"children":753},{},[754,765,800],{"type":10,"tag":41,"props":755,"children":756},{},[757,758,764],{"type":16,"value":638},{"type":10,"tag":234,"props":759,"children":761},{"className":760},[],[762],{"type":16,"value":763},"StencilRefUnchangedBackAMD",{"type":16,"value":665},{"type":10,"tag":41,"props":766,"children":767},{},[768,769,775,776,780,781,787,788,793,794,799],{"type":16,"value":638},{"type":10,"tag":234,"props":770,"children":772},{"className":771},[],[773],{"type":16,"value":774},"StencilRefLessBackAMD",{"type":16,"value":677},{"type":10,"tag":28,"props":777,"children":778},{"href":680},[779],{"type":16,"value":683},{"type":16,"value":332},{"type":10,"tag":234,"props":782,"children":784},{"className":783},[],[785],{"type":16,"value":786},"back.compareOp",{"type":16,"value":692},{"type":10,"tag":234,"props":789,"children":791},{"className":790},[],[792],{"type":16,"value":698},{"type":16,"value":700},{"type":10,"tag":234,"props":795,"children":797},{"className":796},[],[798],{"type":16,"value":706},{"type":16,"value":708},{"type":10,"tag":41,"props":801,"children":802},{},[803,804,810,811,815,816,821,822,827,828],{"type":16,"value":638},{"type":10,"tag":234,"props":805,"children":807},{"className":806},[],[808],{"type":16,"value":809},"StencilRefGreaterBackAMD",{"type":16,"value":720},{"type":10,"tag":28,"props":812,"children":813},{"href":680},[814],{"type":16,"value":683},{"type":16,"value":332},{"type":10,"tag":234,"props":817,"children":819},{"className":818},[],[820],{"type":16,"value":786},{"type":16,"value":692},{"type":10,"tag":234,"props":823,"children":825},{"className":824},[],[826],{"type":16,"value":737},{"type":16,"value":700},{"type":10,"tag":234,"props":829,"children":831},{"className":830},[],[832],{"type":16,"value":744},{"type":10,"tag":18,"props":834,"children":835},{},[836,838,843,845,848,850,854,856,860,861,867,869,873,874,880],{"type":16,"value":837},"an additional ",{"type":10,"tag":28,"props":839,"children":840},{"href":162},[841],{"type":16,"value":842},"stencil test",{"type":16,"value":844}," ",{"type":10,"tag":378,"props":846,"children":847},{"type":449},[],{"type":16,"value":849}," be performed before\n",{"type":10,"tag":28,"props":851,"children":852},{"href":84},[853],{"type":16,"value":367},{"type":16,"value":855},", using the stencil reference value\nspecified by\n",{"type":10,"tag":28,"props":857,"children":858},{"href":680},[859],{"type":16,"value":683},{"type":16,"value":332},{"type":10,"tag":234,"props":862,"children":864},{"className":863},[],[865],{"type":16,"value":866},"front.reference",{"type":16,"value":868}," or\n",{"type":10,"tag":28,"props":870,"children":871},{"href":680},[872],{"type":16,"value":683},{"type":16,"value":332},{"type":10,"tag":234,"props":875,"children":877},{"className":876},[],[878],{"type":16,"value":879},"back.reference",{"type":16,"value":273},{"type":10,"tag":18,"props":882,"children":883},{},[884],{"type":16,"value":613},{"type":10,"tag":91,"props":886,"children":887},{},[888,892,904,915],{"type":10,"tag":41,"props":889,"children":890},{},[891],{"type":16,"value":621},{"type":10,"tag":41,"props":893,"children":894},{},[895,897,902],{"type":16,"value":896},"the fragment shader\neither specifies ",{"type":10,"tag":234,"props":898,"children":900},{"className":899},[],[901],{"type":16,"value":574},{"type":16,"value":903}," or\ndoes not write to storage resources;",{"type":10,"tag":41,"props":905,"children":906},{},[907,908,913],{"type":16,"value":638},{"type":10,"tag":234,"props":909,"children":911},{"className":910},[],[912],{"type":16,"value":582},{"type":16,"value":914}," execution mode;\nand",{"type":10,"tag":41,"props":916,"children":917},{},[918,919],{"type":16,"value":650},{"type":10,"tag":91,"props":920,"children":921},{},[922,934,970],{"type":10,"tag":41,"props":923,"children":924},{},[925,926,932],{"type":16,"value":638},{"type":10,"tag":234,"props":927,"children":929},{"className":928},[],[930],{"type":16,"value":931},"DepthUnchanged",{"type":16,"value":933}," execution mode;",{"type":10,"tag":41,"props":935,"children":936},{},[937,938,944,946,950,951,957,958,963,964,969],{"type":16,"value":638},{"type":10,"tag":234,"props":939,"children":941},{"className":940},[],[942],{"type":16,"value":943},"DepthLess",{"type":16,"value":945}," execution mode and the\npipeline uses a\n",{"type":10,"tag":28,"props":947,"children":948},{"href":680},[949],{"type":16,"value":683},{"type":16,"value":332},{"type":10,"tag":234,"props":952,"children":954},{"className":953},[],[955],{"type":16,"value":956},"depthCompareOp",{"type":16,"value":692},{"type":10,"tag":234,"props":959,"children":961},{"className":960},[],[962],{"type":16,"value":698},{"type":16,"value":700},{"type":10,"tag":234,"props":965,"children":967},{"className":966},[],[968],{"type":16,"value":706},{"type":16,"value":708},{"type":10,"tag":41,"props":971,"children":972},{},[973,974,980,982,986,987,992,993,998,999],{"type":16,"value":638},{"type":10,"tag":234,"props":975,"children":977},{"className":976},[],[978],{"type":16,"value":979},"DepthGreater",{"type":16,"value":981}," execution mode and\nthe pipeline uses a\n",{"type":10,"tag":28,"props":983,"children":984},{"href":680},[985],{"type":16,"value":683},{"type":16,"value":332},{"type":10,"tag":234,"props":988,"children":990},{"className":989},[],[991],{"type":16,"value":956},{"type":16,"value":692},{"type":10,"tag":234,"props":994,"children":996},{"className":995},[],[997],{"type":16,"value":737},{"type":16,"value":700},{"type":10,"tag":234,"props":1000,"children":1002},{"className":1001},[],[1003],{"type":16,"value":744},{"type":10,"tag":18,"props":1005,"children":1006},{},[1007,1009,1012,1014,1019,1021,1025,1027,1031],{"type":16,"value":1008},"the implementation ",{"type":10,"tag":378,"props":1010,"children":1011},{"type":449},[],{"type":16,"value":1013}," perform ",{"type":10,"tag":28,"props":1015,"children":1016},{"href":153},[1017],{"type":16,"value":1018},"depth bounds test",{"type":16,"value":1020}," before\n",{"type":10,"tag":28,"props":1022,"children":1023},{"href":84},[1024],{"type":16,"value":367},{"type":16,"value":1026}," and perform an additional\n",{"type":10,"tag":28,"props":1028,"children":1029},{"href":171},[1030],{"type":16,"value":318},{"type":16,"value":1032}," immediately after that using the interpolated\ndepth value generated by rasterization.",{"type":10,"tag":18,"props":1034,"children":1035},{},[1036,1038,1044],{"type":16,"value":1037},"Once all fragment operations have completed, fragment shader outputs for\ncovered color attachment samples pass through ",{"type":10,"tag":28,"props":1039,"children":1041},{"href":1040},"/chapters/framebuffer#framebuffer",[1042],{"type":16,"value":1043},"framebuffer\noperations",{"type":16,"value":273},{"type":10,"tag":1046,"props":1047,"children":1049},"h2",{"id":1048},"fragops-discard-rectangles",[1050],{"type":16,"value":1051},"Discard Rectangles Test",{"type":10,"tag":18,"props":1053,"children":1054},{},[1055,1057,1063,1065,1069,1071,1077],{"type":16,"value":1056},"The discard rectangle test compares the framebuffer coordinates\n(x",{"type":10,"tag":1058,"props":1059,"children":1060},"sub",{},[1061],{"type":16,"value":1062},"f",{"type":16,"value":1064},",y",{"type":10,"tag":1058,"props":1066,"children":1067},{},[1068],{"type":16,"value":1062},{"type":16,"value":1070},") of each sample covered by a fragment against a set of\n",{"type":10,"tag":1072,"props":1073,"children":1074},"em",{},[1075],{"type":16,"value":1076},"discard rectangles",{"type":16,"value":273},{"type":10,"tag":18,"props":1079,"children":1080},{},[1081,1083,1089,1091,1097,1099,1105],{"type":16,"value":1082},"Each discard rectangle is defined by a ",{"type":10,"tag":28,"props":1084,"children":1086},{"href":1085},"/man/VkRect2D",[1087],{"type":16,"value":1088},"VkRect2D",{"type":16,"value":1090},".\nThese values are either set by the\n",{"type":10,"tag":28,"props":1092,"children":1094},{"href":1093},"/man/VkPipelineDiscardRectangleStateCreateInfoEXT",[1095],{"type":16,"value":1096},"VkPipelineDiscardRectangleStateCreateInfoEXT",{"type":16,"value":1098}," structure during pipeline\ncreation, or dynamically by the ",{"type":10,"tag":28,"props":1100,"children":1102},{"href":1101},"/man/vkCmdSetDiscardRectangleEXT",[1103],{"type":16,"value":1104},"vkCmdSetDiscardRectangleEXT",{"type":16,"value":1106}," command.",{"type":10,"tag":18,"props":1108,"children":1109},{},[1110,1112,1116,1118,1122,1123,1129,1131,1135,1136,1141,1143,1147,1148,1154,1156,1160,1162,1166,1167,1173,1174,1178,1179,1184,1185,1189,1190,1196,1198,1203,1205,1210],{"type":16,"value":1111},"A given sample is considered inside a discard rectangle if the x",{"type":10,"tag":1058,"props":1113,"children":1114},{},[1115],{"type":16,"value":1062},{"type":16,"value":1117}," is\nin the range [",{"type":10,"tag":28,"props":1119,"children":1120},{"href":1085},[1121],{"type":16,"value":1088},{"type":16,"value":332},{"type":10,"tag":234,"props":1124,"children":1126},{"className":1125},[],[1127],{"type":16,"value":1128},"offset.x",{"type":16,"value":1130},",\n",{"type":10,"tag":28,"props":1132,"children":1133},{"href":1085},[1134],{"type":16,"value":1088},{"type":16,"value":332},{"type":10,"tag":234,"props":1137,"children":1139},{"className":1138},[],[1140],{"type":16,"value":1128},{"type":16,"value":1142}," + ",{"type":10,"tag":28,"props":1144,"children":1145},{"href":1085},[1146],{"type":16,"value":1088},{"type":16,"value":332},{"type":10,"tag":234,"props":1149,"children":1151},{"className":1150},[],[1152],{"type":16,"value":1153},"extent.x",{"type":16,"value":1155},"), and\ny",{"type":10,"tag":1058,"props":1157,"children":1158},{},[1159],{"type":16,"value":1062},{"type":16,"value":1161}," is in the range [",{"type":10,"tag":28,"props":1163,"children":1164},{"href":1085},[1165],{"type":16,"value":1088},{"type":16,"value":332},{"type":10,"tag":234,"props":1168,"children":1170},{"className":1169},[],[1171],{"type":16,"value":1172},"offset.y",{"type":16,"value":1130},{"type":10,"tag":28,"props":1175,"children":1176},{"href":1085},[1177],{"type":16,"value":1088},{"type":16,"value":332},{"type":10,"tag":234,"props":1180,"children":1182},{"className":1181},[],[1183],{"type":16,"value":1172},{"type":16,"value":1142},{"type":10,"tag":28,"props":1186,"children":1187},{"href":1085},[1188],{"type":16,"value":1088},{"type":16,"value":332},{"type":10,"tag":234,"props":1191,"children":1193},{"className":1192},[],[1194],{"type":16,"value":1195},"extent.y",{"type":16,"value":1197},").\nIf the test is set to be inclusive, samples that are not inside any of the\ndiscard rectangles will have their coverage set to ",{"type":10,"tag":234,"props":1199,"children":1201},{"className":1200},[],[1202],{"type":16,"value":239},{"type":16,"value":1204},".\nIf the test is set to be exclusive, samples that are inside any of the\ndiscard rectangles will have their coverage set to ",{"type":10,"tag":234,"props":1206,"children":1208},{"className":1207},[],[1209],{"type":16,"value":239},{"type":16,"value":273},{"type":10,"tag":18,"props":1212,"children":1213},{},[1214],{"type":16,"value":1215},"If no discard rectangles are specified, the coverage mask is unmodified by\nthis operation.",{"type":10,"tag":1217,"props":1218,"children":1220},"refpage",{"name":1096,"type":1219},"structs",[1221],{"type":10,"tag":18,"props":1222,"children":1223},{},[1224],{"type":16,"value":1225},"Structure specifying discard rectangle",{"type":10,"tag":1217,"props":1227,"children":1230},{"name":1228,"type":1229},"VkPipelineDiscardRectangleStateCreateFlagsEXT","flags",[1231],{"type":10,"tag":18,"props":1232,"children":1233},{},[1234],{"type":16,"value":1235},"Reserved for future use",{"type":10,"tag":1217,"props":1237,"children":1240},{"name":1238,"type":1239},"VkDiscardRectangleModeEXT","enums",[1241],{"type":10,"tag":18,"props":1242,"children":1243},{},[1244],{"type":16,"value":1245},"Specify the discard rectangle mode",{"type":10,"tag":1217,"props":1247,"children":1249},{"name":1104,"type":1248},"protos",[1250],{"type":10,"tag":18,"props":1251,"children":1252},{},[1253],{"type":16,"value":1254},"Set discard rectangles dynamically for a command buffer",{"type":10,"tag":1217,"props":1256,"children":1258},{"name":1257,"type":1248},"vkCmdSetDiscardRectangleEnableEXT",[1259],{"type":10,"tag":18,"props":1260,"children":1261},{},[1262],{"type":16,"value":1263},"Enable discard rectangles dynamically for a command buffer",{"type":10,"tag":1217,"props":1265,"children":1267},{"name":1266,"type":1248},"vkCmdSetDiscardRectangleModeEXT",[1268],{"type":10,"tag":18,"props":1269,"children":1270},{},[1271],{"type":16,"value":1272},"Sets the discard rectangle mode dynamically for a command buffer",{"type":10,"tag":1046,"props":1274,"children":1276},{"id":1275},"fragops-scissor",[1277],{"type":16,"value":1278},"Scissor Test",{"type":10,"tag":18,"props":1280,"children":1281},{},[1282,1284,1288,1289,1293,1295,1300,1302,1312],{"type":16,"value":1283},"The scissor test compares the framebuffer coordinates (x",{"type":10,"tag":1058,"props":1285,"children":1286},{},[1287],{"type":16,"value":1062},{"type":16,"value":1064},{"type":10,"tag":1058,"props":1290,"children":1291},{},[1292],{"type":16,"value":1062},{"type":16,"value":1294},") of\neach sample covered by a fragment against a ",{"type":10,"tag":1072,"props":1296,"children":1297},{},[1298],{"type":16,"value":1299},"scissor rectangle",{"type":16,"value":1301}," at the index\nequal to the fragment’s ",{"type":10,"tag":28,"props":1303,"children":1305},{"href":1304},"/chapters/interfaces#interfaces-builtin-variables-viewportindex",[1306],{"type":10,"tag":234,"props":1307,"children":1309},{"className":1308},[],[1310],{"type":16,"value":1311},"ViewportIndex",{"type":16,"value":273},{"type":10,"tag":18,"props":1314,"children":1315},{},[1316,1318,1322,1324,1330,1332,1338],{"type":16,"value":1317},"Each scissor rectangle is defined by a ",{"type":10,"tag":28,"props":1319,"children":1320},{"href":1085},[1321],{"type":16,"value":1088},{"type":16,"value":1323},".\nThese values are either set by the ",{"type":10,"tag":28,"props":1325,"children":1327},{"href":1326},"/man/VkPipelineViewportStateCreateInfo",[1328],{"type":16,"value":1329},"VkPipelineViewportStateCreateInfo",{"type":16,"value":1331},"\nstructure during pipeline creation, or dynamically by the\n",{"type":10,"tag":28,"props":1333,"children":1335},{"href":1334},"/man/vkCmdSetScissor",[1336],{"type":16,"value":1337},"vkCmdSetScissor",{"type":16,"value":1106},{"type":10,"tag":18,"props":1340,"children":1341},{},[1342,1344,1348,1350,1354,1355,1360,1361,1365,1366,1371,1372,1376,1377,1382,1383,1387,1388,1392,1393,1398,1399,1403,1404,1409,1410,1414,1415,1420,1422,1427,1429,1434],{"type":16,"value":1343},"A given sample is considered inside a scissor rectangle if x",{"type":10,"tag":1058,"props":1345,"children":1346},{},[1347],{"type":16,"value":1062},{"type":16,"value":1349}," is in\nthe range [",{"type":10,"tag":28,"props":1351,"children":1352},{"href":1085},[1353],{"type":16,"value":1088},{"type":16,"value":332},{"type":10,"tag":234,"props":1356,"children":1358},{"className":1357},[],[1359],{"type":16,"value":1128},{"type":16,"value":1130},{"type":10,"tag":28,"props":1362,"children":1363},{"href":1085},[1364],{"type":16,"value":1088},{"type":16,"value":332},{"type":10,"tag":234,"props":1367,"children":1369},{"className":1368},[],[1370],{"type":16,"value":1128},{"type":16,"value":1142},{"type":10,"tag":28,"props":1373,"children":1374},{"href":1085},[1375],{"type":16,"value":1088},{"type":16,"value":332},{"type":10,"tag":234,"props":1378,"children":1380},{"className":1379},[],[1381],{"type":16,"value":1153},{"type":16,"value":1155},{"type":10,"tag":1058,"props":1384,"children":1385},{},[1386],{"type":16,"value":1062},{"type":16,"value":1161},{"type":10,"tag":28,"props":1389,"children":1390},{"href":1085},[1391],{"type":16,"value":1088},{"type":16,"value":332},{"type":10,"tag":234,"props":1394,"children":1396},{"className":1395},[],[1397],{"type":16,"value":1172},{"type":16,"value":1130},{"type":10,"tag":28,"props":1400,"children":1401},{"href":1085},[1402],{"type":16,"value":1088},{"type":16,"value":332},{"type":10,"tag":234,"props":1405,"children":1407},{"className":1406},[],[1408],{"type":16,"value":1172},{"type":16,"value":1142},{"type":10,"tag":28,"props":1411,"children":1412},{"href":1085},[1413],{"type":16,"value":1088},{"type":16,"value":332},{"type":10,"tag":234,"props":1416,"children":1418},{"className":1417},[],[1419],{"type":16,"value":1195},{"type":16,"value":1421},").\nSamples with coordinates outside the scissor rectangle at the corresponding\n",{"type":10,"tag":234,"props":1423,"children":1425},{"className":1424},[],[1426],{"type":16,"value":1311},{"type":16,"value":1428}," will have their coverage set to ",{"type":10,"tag":234,"props":1430,"children":1432},{"className":1431},[],[1433],{"type":16,"value":239},{"type":16,"value":273},{"type":10,"tag":18,"props":1436,"children":1437},{},[1438,1440,1445,1447,1452,1454,1460,1461,1467,1469,1475],{"type":16,"value":1439},"If a render pass transform is enabled, the (",{"type":10,"tag":234,"props":1441,"children":1443},{"className":1442},[],[1444],{"type":16,"value":1128},{"type":16,"value":1446}," and\n",{"type":10,"tag":234,"props":1448,"children":1450},{"className":1449},[],[1451],{"type":16,"value":1172},{"type":16,"value":1453},") and (",{"type":10,"tag":234,"props":1455,"children":1457},{"className":1456},[],[1458],{"type":16,"value":1459},"extent.width",{"type":16,"value":369},{"type":10,"tag":234,"props":1462,"children":1464},{"className":1463},[],[1465],{"type":16,"value":1466},"extent.height",{"type":16,"value":1468},") values are\ntransformed as described in ",{"type":10,"tag":28,"props":1470,"children":1472},{"href":1471},"/chapters/vertexpostproc#vertexpostproc-renderpass-transform",[1473],{"type":16,"value":1474},"render\npass transform",{"type":16,"value":1476}," before participating in the scissor test.",{"type":10,"tag":1217,"props":1478,"children":1479},{"name":1337,"type":1248},[1480],{"type":10,"tag":18,"props":1481,"children":1482},{},[1483],{"type":16,"value":1484},"Set scissor rectangles dynamically for a command buffer",{"type":10,"tag":1046,"props":1486,"children":1488},{"id":1487},"fragops-exclusive-scissor",[1489],{"type":16,"value":1490},"Exclusive Scissor Test",{"type":10,"tag":18,"props":1492,"children":1493},{},[1494,1496,1500,1501,1505,1507,1512,1514,1522],{"type":16,"value":1495},"The exclusive scissor test compares the framebuffer coordinates\n(x",{"type":10,"tag":1058,"props":1497,"children":1498},{},[1499],{"type":16,"value":1062},{"type":16,"value":1064},{"type":10,"tag":1058,"props":1502,"children":1503},{},[1504],{"type":16,"value":1062},{"type":16,"value":1506},") of each sample covered by a fragment against an ",{"type":10,"tag":1072,"props":1508,"children":1509},{},[1510],{"type":16,"value":1511},"exclusive\nscissor rectangle",{"type":16,"value":1513}," at the index equal to the fragment’s\n",{"type":10,"tag":28,"props":1515,"children":1516},{"href":1304},[1517],{"type":10,"tag":234,"props":1518,"children":1520},{"className":1519},[],[1521],{"type":16,"value":1311},{"type":16,"value":273},{"type":10,"tag":18,"props":1524,"children":1525},{},[1526,1528,1532,1533,1539,1541,1547],{"type":16,"value":1527},"Each exclusive scissor rectangle is defined by a ",{"type":10,"tag":28,"props":1529,"children":1530},{"href":1085},[1531],{"type":16,"value":1088},{"type":16,"value":1090},{"type":10,"tag":28,"props":1534,"children":1536},{"href":1535},"/man/VkPipelineViewportExclusiveScissorStateCreateInfoNV",[1537],{"type":16,"value":1538},"VkPipelineViewportExclusiveScissorStateCreateInfoNV",{"type":16,"value":1540}," structure during\npipeline creation, or dynamically by the ",{"type":10,"tag":28,"props":1542,"children":1544},{"href":1543},"/man/vkCmdSetExclusiveScissorNV",[1545],{"type":16,"value":1546},"vkCmdSetExclusiveScissorNV",{"type":16,"value":1548},"\ncommand.",{"type":10,"tag":18,"props":1550,"children":1551},{},[1552,1554,1558,1559,1563,1564,1569,1570,1574,1575,1580,1581,1585,1586,1591,1592,1596,1597,1601,1602,1607,1608,1612,1613,1618,1619,1623,1624,1629,1631,1636,1637,1642],{"type":16,"value":1553},"A given sample is considered inside an exclusive scissor rectangle if\nx",{"type":10,"tag":1058,"props":1555,"children":1556},{},[1557],{"type":16,"value":1062},{"type":16,"value":1161},{"type":10,"tag":28,"props":1560,"children":1561},{"href":1085},[1562],{"type":16,"value":1088},{"type":16,"value":332},{"type":10,"tag":234,"props":1565,"children":1567},{"className":1566},[],[1568],{"type":16,"value":1128},{"type":16,"value":1130},{"type":10,"tag":28,"props":1571,"children":1572},{"href":1085},[1573],{"type":16,"value":1088},{"type":16,"value":332},{"type":10,"tag":234,"props":1576,"children":1578},{"className":1577},[],[1579],{"type":16,"value":1128},{"type":16,"value":1142},{"type":10,"tag":28,"props":1582,"children":1583},{"href":1085},[1584],{"type":16,"value":1088},{"type":16,"value":332},{"type":10,"tag":234,"props":1587,"children":1589},{"className":1588},[],[1590],{"type":16,"value":1153},{"type":16,"value":1155},{"type":10,"tag":1058,"props":1593,"children":1594},{},[1595],{"type":16,"value":1062},{"type":16,"value":1161},{"type":10,"tag":28,"props":1598,"children":1599},{"href":1085},[1600],{"type":16,"value":1088},{"type":16,"value":332},{"type":10,"tag":234,"props":1603,"children":1605},{"className":1604},[],[1606],{"type":16,"value":1172},{"type":16,"value":1130},{"type":10,"tag":28,"props":1609,"children":1610},{"href":1085},[1611],{"type":16,"value":1088},{"type":16,"value":332},{"type":10,"tag":234,"props":1614,"children":1616},{"className":1615},[],[1617],{"type":16,"value":1172},{"type":16,"value":1142},{"type":10,"tag":28,"props":1620,"children":1621},{"href":1085},[1622],{"type":16,"value":1088},{"type":16,"value":332},{"type":10,"tag":234,"props":1625,"children":1627},{"className":1626},[],[1628],{"type":16,"value":1195},{"type":16,"value":1630},").\nSamples with coordinates inside the exclusive scissor rectangle at the\ncorresponding ",{"type":10,"tag":234,"props":1632,"children":1634},{"className":1633},[],[1635],{"type":16,"value":1311},{"type":16,"value":1428},{"type":10,"tag":234,"props":1638,"children":1640},{"className":1639},[],[1641],{"type":16,"value":239},{"type":16,"value":273},{"type":10,"tag":18,"props":1644,"children":1645},{},[1646],{"type":16,"value":1647},"If no exclusive scissor rectangles are specified, the coverage mask is\nunmodified by this operation.",{"type":10,"tag":1217,"props":1649,"children":1650},{"name":1538,"type":1219},[1651],{"type":10,"tag":18,"props":1652,"children":1653},{},[1654],{"type":16,"value":1655},"Structure specifying parameters controlling exclusive scissor testing",{"type":10,"tag":1217,"props":1657,"children":1658},{"name":1546,"type":1248},[1659],{"type":10,"tag":18,"props":1660,"children":1661},{},[1662],{"type":16,"value":1663},"Set exclusive scissor rectangles dynamically for a command buffer",{"type":10,"tag":1217,"props":1665,"children":1667},{"name":1666,"type":1248},"vkCmdSetExclusiveScissorEnableNV",[1668],{"type":10,"tag":18,"props":1669,"children":1670},{},[1671],{"type":16,"value":1672},"Dynamically enable each exclusive scissor for a command buffer",{"type":10,"tag":1046,"props":1674,"children":1676},{"id":1675},"fragops-samplemask",[1677],{"type":16,"value":1678},"Sample Mask Test",{"type":10,"tag":18,"props":1680,"children":1681},{},[1682,1684,1688,1690,1695,1697,1703,1704,1710],{"type":16,"value":1683},"The sample mask test compares the ",{"type":10,"tag":28,"props":1685,"children":1686},{"href":227},[1687],{"type":16,"value":230},{"type":16,"value":1689}," for a fragment with the ",{"type":10,"tag":1072,"props":1691,"children":1692},{},[1693],{"type":16,"value":1694},"sample mask",{"type":16,"value":1696}," defined by\n",{"type":10,"tag":28,"props":1698,"children":1700},{"href":1699},"/man/VkPipelineMultisampleStateCreateInfo",[1701],{"type":16,"value":1702},"VkPipelineMultisampleStateCreateInfo",{"type":16,"value":332},{"type":10,"tag":234,"props":1705,"children":1707},{"className":1706},[],[1708],{"type":16,"value":1709},"pSampleMask",{"type":16,"value":273},{"type":10,"tag":1217,"props":1712,"children":1714},{"name":1713,"type":1248},"vkCmdSetSampleMaskEXT",[1715],{"type":10,"tag":18,"props":1716,"children":1717},{},[1718],{"type":16,"value":1719},"Specify the sample mask dynamically for a command buffer",{"type":10,"tag":18,"props":1721,"children":1722},{},[1723,1725,1730,1732,1736,1737,1742,1744,1749,1751,1756],{"type":16,"value":1724},"Each bit of the coverage mask is associated with a sample index as described\nin the ",{"type":10,"tag":28,"props":1726,"children":1727},{"href":227},[1728],{"type":16,"value":1729},"rasterization chapter",{"type":16,"value":1731},".\nIf the bit in ",{"type":10,"tag":28,"props":1733,"children":1734},{"href":1699},[1735],{"type":16,"value":1702},{"type":16,"value":332},{"type":10,"tag":234,"props":1738,"children":1740},{"className":1739},[],[1741],{"type":16,"value":1709},{"type":16,"value":1743},"\nwhich is associated with that same sample index is set to ",{"type":10,"tag":234,"props":1745,"children":1747},{"className":1746},[],[1748],{"type":16,"value":239},{"type":16,"value":1750},", the coverage\nmask bit is set to ",{"type":10,"tag":234,"props":1752,"children":1754},{"className":1753},[],[1755],{"type":16,"value":239},{"type":16,"value":273},{"type":10,"tag":1046,"props":1758,"children":1760},{"id":1759},"fragops-shader",[1761],{"type":16,"value":1762},"Fragment Shading",{"type":10,"tag":18,"props":1764,"children":1765},{},[1766,1772,1774,1780],{"type":10,"tag":28,"props":1767,"children":1769},{"href":1768},"/chapters/shaders#shaders-fragment",[1770],{"type":16,"value":1771},"Fragment shaders",{"type":16,"value":1773}," are invoked for each fragment, or as\n",{"type":10,"tag":28,"props":1775,"children":1777},{"href":1776},"/chapters/shaders#shaders-helper-invocations",[1778],{"type":16,"value":1779},"helper invocations",{"type":16,"value":273},{"type":10,"tag":18,"props":1782,"children":1783},{},[1784,1786,1791],{"type":16,"value":1785},"Most operations in the fragment shader are not performed in\n",{"type":10,"tag":28,"props":1787,"children":1788},{"href":30},[1789],{"type":16,"value":1790},"rasterization order",{"type":16,"value":1792},", with exceptions called out in the\nfollowing sections.",{"type":10,"tag":18,"props":1794,"children":1795},{},[1796],{"type":16,"value":1797},"For fragment shaders invoked by fragments, the following rules apply:",{"type":10,"tag":91,"props":1799,"children":1800},{},[1801,1819,1884],{"type":10,"tag":41,"props":1802,"children":1803},{},[1804,1806,1809,1811,1817],{"type":16,"value":1805},"A fragment shader ",{"type":10,"tag":378,"props":1807,"children":1808},{"type":380},[],{"type":16,"value":1810}," not be executed if a ",{"type":10,"tag":28,"props":1812,"children":1814},{"href":1813},"/chapters/fragops#fragops",[1815],{"type":16,"value":1816},"fragment\noperation",{"type":16,"value":1818}," that executes before fragment shading discards the fragment.",{"type":10,"tag":41,"props":1820,"children":1821},{},[1822,1823,1826,1828],{"type":16,"value":1805},{"type":10,"tag":378,"props":1824,"children":1825},{"type":449},[],{"type":16,"value":1827}," not be executed if:",{"type":10,"tag":91,"props":1829,"children":1830},{},[1831,1844,1856],{"type":10,"tag":41,"props":1832,"children":1833},{},[1834,1836,1842],{"type":16,"value":1835},"An implementation determines that another fragment shader, invoked by a\nsubsequent primitive in ",{"type":10,"tag":28,"props":1837,"children":1839},{"href":1838},"/chapters/drawing#drawing-primitive-order",[1840],{"type":16,"value":1841},"primitive order",{"type":16,"value":1843},",\noverwrites all results computed by the shader (including writes to\nstorage resources).",{"type":10,"tag":41,"props":1845,"children":1846},{},[1847,1849,1854],{"type":16,"value":1848},"Any other ",{"type":10,"tag":28,"props":1850,"children":1851},{"href":1813},[1852],{"type":16,"value":1853},"fragment operation",{"type":16,"value":1855}," discards the fragment, and\nthe shader does not write to any storage resources.",{"type":10,"tag":41,"props":1857,"children":1858},{},[1859,1861,1864,1866,1869,1871,1877,1879,1882],{"type":16,"value":1860},"If a fragment shader statically computes the same values for different\nframebuffer locations, and does not write to any storage resources,\nmultiple fragments ",{"type":10,"tag":378,"props":1862,"children":1863},{"type":449},[],{"type":16,"value":1865}," be shaded by one fragment shader invocation.\nThis ",{"type":10,"tag":378,"props":1867,"children":1868},{"type":449},[],{"type":16,"value":1870}," affect\n",{"type":10,"tag":234,"props":1872,"children":1874},{"className":1873},[],[1875],{"type":16,"value":1876},"VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT",{"type":16,"value":1878},"\nresults, but ",{"type":10,"tag":378,"props":1880,"children":1881},{"type":380},[],{"type":16,"value":1883}," otherwise not be visible behavior to applications.",{"type":10,"tag":41,"props":1885,"children":1886},{},[1887,1889,1892,1894],{"type":16,"value":1888},"Otherwise, at least one fragment shader ",{"type":10,"tag":378,"props":1890,"children":1891},{"type":380},[],{"type":16,"value":1893}," be executed.",{"type":10,"tag":91,"props":1895,"children":1896},{},[1897,1921,1944],{"type":10,"tag":41,"props":1898,"children":1899},{},[1900,1902,1908,1910,1914,1916,1919],{"type":16,"value":1901},"If ",{"type":10,"tag":28,"props":1903,"children":1905},{"href":1904},"/chapters/primsrast#primsrast-sampleshading",[1906],{"type":16,"value":1907},"sample shading",{"type":16,"value":1909}," is enabled and multiple\ninvocations per fragment are ",{"type":10,"tag":378,"props":1911,"children":1913},{"type":1912},"required",[],{"type":16,"value":1915},", additional invocations ",{"type":10,"tag":378,"props":1917,"children":1918},{"type":380},[],{"type":16,"value":1920}," be\nexecuted as specified.",{"type":10,"tag":41,"props":1922,"children":1923},{},[1924,1926,1932,1934,1937,1939,1942],{"type":16,"value":1925},"If a ",{"type":10,"tag":28,"props":1927,"children":1929},{"href":1928},"/chapters/primsrast#primsrast-shading-rate-image",[1930],{"type":16,"value":1931},"shading rate image",{"type":16,"value":1933}," is used and\nmultiple invocations per fragment are ",{"type":10,"tag":378,"props":1935,"children":1936},{"type":1912},[],{"type":16,"value":1938},", additional invocations\n",{"type":10,"tag":378,"props":1940,"children":1941},{"type":380},[],{"type":16,"value":1943}," be executed as specified.",{"type":10,"tag":41,"props":1945,"children":1946},{},[1947,1949,1952],{"type":16,"value":1948},"Each covered sample ",{"type":10,"tag":378,"props":1950,"children":1951},{"type":380},[],{"type":16,"value":1953}," be included in at least one fragment shader\ninvocation.",{"type":10,"tag":18,"props":1955,"children":1956},{},[1957,1959,1962],{"type":16,"value":1958},"If no fragment shader is included in the pipeline, no fragment shader is\nexecuted, and undefined: values ",{"type":10,"tag":378,"props":1960,"children":1961},{"type":449},[],{"type":16,"value":1963}," be written to all color attachment\noutputs during this fragment operation.",{"type":10,"tag":1965,"props":1966,"children":1967},"note",{},[1968,1973,1978],{"type":10,"tag":18,"props":1969,"children":1970},{},[1971],{"type":16,"value":1972},"Multiple fragment shader invocations may be executed for the same fragment\nfor any number of implementation-dependent reasons.\nWhen there is more than one fragment shader invocation per fragment, the\nassociation of samples to invocations is implementation-dependent.\nStores and atomics performed by these additional invocations have the normal\neffect.",{"type":10,"tag":18,"props":1974,"children":1975},{},[1976],{"type":16,"value":1977},"For example, if the subpass includes multiple views in its view mask, a\nfragment shader may be invoked separately for each view.",{"type":10,"tag":18,"props":1979,"children":1980},{},[1981,1983,1989,1990,1996,1998,2003],{"type":16,"value":1982},"Similarly, if the render pass has a fragment density map attachment, more\nthan one fragment shader invocation may be invoked for each covered sample.\nSuch additional invocations are only produced if\n",{"type":10,"tag":234,"props":1984,"children":1986},{"className":1985},[],[1987],{"type":16,"value":1988},"VkPhysicalDeviceFragmentDensityMapPropertiesEXT",{"type":16,"value":332},{"type":10,"tag":234,"props":1991,"children":1993},{"className":1992},[],[1994],{"type":16,"value":1995},"fragmentDensityInvocations",{"type":16,"value":1997},"\nis ",{"type":10,"tag":234,"props":1999,"children":2001},{"className":2000},[],[2002],{"type":16,"value":346},{"type":16,"value":2004},".\nImplementations may generate these additional fragment shader invocations in\norder to make transitions between fragment areas with different fragment\ndensities more smooth.",{"type":10,"tag":2006,"props":2007,"children":2009},"h3",{"id":2008},"fragops-shader-samplemask",[2010],{"type":16,"value":2011},"Sample Mask",{"type":10,"tag":18,"props":2013,"children":2014},{},[2015,2017,2027,2029,2035],{"type":16,"value":2016},"Reading from the ",{"type":10,"tag":28,"props":2018,"children":2020},{"href":2019},"/chapters/interfaces#interfaces-builtin-variables-samplemask",[2021],{"type":10,"tag":234,"props":2022,"children":2024},{"className":2023},[],[2025],{"type":16,"value":2026},"SampleMask",{"type":16,"value":2028}," built-in in the ",{"type":10,"tag":234,"props":2030,"children":2032},{"className":2031},[],[2033],{"type":16,"value":2034},"Input",{"type":16,"value":2036}," storage class will return the\ncoverage mask for the current fragment as calculated by fragment operations\nthat executed prior to fragment shading.",{"type":10,"tag":18,"props":2038,"children":2039},{},[2040,2041,2045,2047,2053,2055,2060],{"type":16,"value":1901},{"type":10,"tag":28,"props":2042,"children":2043},{"href":1904},[2044],{"type":16,"value":1907},{"type":16,"value":2046}," is enabled, fragment shaders\nwill only see values of ",{"type":10,"tag":234,"props":2048,"children":2050},{"className":2049},[],[2051],{"type":16,"value":2052},"1",{"type":16,"value":2054}," for samples being shaded - other bits will be\n",{"type":10,"tag":234,"props":2056,"children":2058},{"className":2057},[],[2059],{"type":16,"value":239},{"type":16,"value":273},{"type":10,"tag":18,"props":2062,"children":2063},{},[2064,2065,2069,2070,2075,2077,2082,2084,2089],{"type":16,"value":1724},{"type":10,"tag":28,"props":2066,"children":2067},{"href":227},[2068],{"type":16,"value":1729},{"type":16,"value":1731},{"type":10,"tag":234,"props":2071,"children":2073},{"className":2072},[],[2074],{"type":16,"value":2026},{"type":16,"value":2076}," which is associated with that same sample\nindex is set to ",{"type":10,"tag":234,"props":2078,"children":2080},{"className":2079},[],[2081],{"type":16,"value":239},{"type":16,"value":2083},", that coverage mask bit is set to ",{"type":10,"tag":234,"props":2085,"children":2087},{"className":2086},[],[2088],{"type":16,"value":239},{"type":16,"value":273},{"type":10,"tag":18,"props":2091,"children":2092},{},[2093,2095,2103,2104,2110,2112,2116],{"type":16,"value":2094},"Values written to the ",{"type":10,"tag":28,"props":2096,"children":2097},{"href":2019},[2098],{"type":10,"tag":234,"props":2099,"children":2101},{"className":2100},[],[2102],{"type":16,"value":2026},{"type":16,"value":2028},{"type":10,"tag":234,"props":2105,"children":2107},{"className":2106},[],[2108],{"type":16,"value":2109},"Output",{"type":16,"value":2111}," storage class will be used by\nthe ",{"type":10,"tag":28,"props":2113,"children":2114},{"href":144},[2115],{"type":16,"value":374},{"type":16,"value":2117}," operation, with the same encoding\nas the input built-in.",{"type":10,"tag":2006,"props":2119,"children":2121},{"id":2120},"fragops-shader-tileimage-reads",[2122],{"type":16,"value":2123},"Fragment Shader Tile Image Reads",{"type":10,"tag":18,"props":2125,"children":2126},{},[2127,2129,2135,2137,2143],{"type":16,"value":2128},"If the ",{"type":10,"tag":28,"props":2130,"children":2132},{"href":2131},"/extensions/VK_EXT_shader_tile_image",[2133],{"type":16,"value":2134},"VK_EXT_shader_tile_image",{"type":16,"value":2136}," extension is enabled,\nimplementations divide the framebuffer into a grid of tiles.\nA ",{"type":10,"tag":28,"props":2138,"children":2140},{"href":2139},"/404#glossary-tile-image",[2141],{"type":16,"value":2142},"tile image",{"type":16,"value":2144}," is a view of a framebuffer attachment\ntile for fragments with locations within the tile.",{"type":10,"tag":18,"props":2146,"children":2147},{},[2148,2150,2156,2158,2162],{"type":16,"value":2149},"Within a render pass instance initiated by ",{"type":10,"tag":28,"props":2151,"children":2153},{"href":2152},"/man/vkCmdBeginRenderingKHR",[2154],{"type":16,"value":2155},"vkCmdBeginRenderingKHR",{"type":16,"value":2157},",\nfragment shader invocations ",{"type":10,"tag":378,"props":2159,"children":2161},{"type":2160},"can",[],{"type":16,"value":2163}," read the framebuffer color, depth, and\nstencil values at the fragment location via tile images.",{"type":10,"tag":1965,"props":2165,"children":2166},{},[2167,2172],{"type":10,"tag":18,"props":2168,"children":2169},{},[2170],{"type":16,"value":2171},"Even though fragment shader invocation can only read from the corresponding\nfragment location, the abstraction of a tile image is introduced for the\nfollowing reasons:",{"type":10,"tag":91,"props":2173,"children":2174},{},[2175,2180],{"type":10,"tag":41,"props":2176,"children":2177},{},[2178],{"type":16,"value":2179},"Tile dimensions will be exposed in a future extension",{"type":10,"tag":41,"props":2181,"children":2182},{},[2183],{"type":16,"value":2184},"Future functionality such as executing compute dispatches within render\npasses via tile shaders can leverage tile images.",{"type":10,"tag":18,"props":2186,"children":2187},{},[2188,2190,2196,2198,2204,2205,2211],{"type":16,"value":2189},"Enabling ",{"type":10,"tag":28,"props":2191,"children":2193},{"href":2192},"/man/VkPhysicalDeviceShaderTileImageFeaturesEXT#features-shaderTileImageColorReadAccess",[2194],{"type":16,"value":2195},"shaderTileImageColorReadAccess",{"type":16,"value":2197},", ",{"type":10,"tag":28,"props":2199,"children":2201},{"href":2200},"/man/VkPhysicalDeviceShaderTileImageFeaturesEXT#features-shaderTileImageDepthReadAccess",[2202],{"type":16,"value":2203},"shaderTileImageDepthReadAccess",{"type":16,"value":1130},{"type":10,"tag":28,"props":2206,"children":2208},{"href":2207},"/man/VkPhysicalDeviceShaderTileImageFeaturesEXT#features-shaderTileImageStencilReadAccess",[2209],{"type":16,"value":2210},"shaderTileImageStencilReadAccess",{"type":16,"value":2212}," enables fragment shader invocations to\nread from color, depth, and stencil, respectively.",{"type":10,"tag":18,"props":2214,"children":2215},{},[2216,2218,2224,2226,2232,2234,2240],{"type":16,"value":2217},"Color values are read from tile image variables with\n",{"type":10,"tag":234,"props":2219,"children":2221},{"className":2220},[],[2222],{"type":16,"value":2223},"OpColorAttachmentReadEXT",{"type":16,"value":2225},".\nTile image variables are linked to specific color attachments using\n",{"type":10,"tag":234,"props":2227,"children":2229},{"className":2228},[],[2230],{"type":16,"value":2231},"Location",{"type":16,"value":2233}," decoration.\nSee ",{"type":10,"tag":28,"props":2235,"children":2237},{"href":2236},"/chapters/interfaces#interfaces-fragmenttileimage",[2238],{"type":16,"value":2239},"Fragment Tile Image Interface",{"type":16,"value":2241}," for more\ndetails.",{"type":10,"tag":18,"props":2243,"children":2244},{},[2245,2247,2253],{"type":16,"value":2246},"Depth values are read with ",{"type":10,"tag":234,"props":2248,"children":2250},{"className":2249},[],[2251],{"type":16,"value":2252},"OpDepthAttachmentReadEXT",{"type":16,"value":273},{"type":10,"tag":18,"props":2255,"children":2256},{},[2257,2259,2265],{"type":16,"value":2258},"Stencil values are read with ",{"type":10,"tag":234,"props":2260,"children":2262},{"className":2261},[],[2263],{"type":16,"value":2264},"OpStencilAttachmentReadEXT",{"type":16,"value":273},{"type":10,"tag":18,"props":2267,"children":2268},{},[2269,2271,2276,2278,2284,2286,2291,2292,2297,2299,2304],{"type":16,"value":2270},"The sample to read is specified by a\n",{"type":10,"tag":28,"props":2272,"children":2273},{"href":227},[2274],{"type":16,"value":2275},"sample index",{"type":16,"value":2277}," value specified as\nthe ",{"type":10,"tag":234,"props":2279,"children":2281},{"className":2280},[],[2282],{"type":16,"value":2283},"Sample",{"type":16,"value":2285}," operand to ",{"type":10,"tag":234,"props":2287,"children":2289},{"className":2288},[],[2290],{"type":16,"value":2223},{"type":16,"value":1130},{"type":10,"tag":234,"props":2293,"children":2295},{"className":2294},[],[2296],{"type":16,"value":2252},{"type":16,"value":2298},", or ",{"type":10,"tag":234,"props":2300,"children":2302},{"className":2301},[],[2303],{"type":16,"value":2264},{"type":16,"value":273},{"type":10,"tag":18,"props":2306,"children":2307},{},[2308,2309,2313,2315,2318,2320,2324,2325,2331,2333,2339,2340,2346,2347,2352],{"type":16,"value":1901},{"type":10,"tag":28,"props":2310,"children":2311},{"href":1904},[2312],{"type":16,"value":1907},{"type":16,"value":2314}," is disabled, a fragment\ninvocation ",{"type":10,"tag":378,"props":2316,"children":2317},{"type":2160},[],{"type":16,"value":2319}," read from all sample locations associated with the fragment\nregardless of the fragment’s coverage.\nThis functionality is supported for\n",{"type":10,"tag":28,"props":2321,"children":2322},{"href":1699},[2323],{"type":16,"value":1702},{"type":16,"value":332},{"type":10,"tag":234,"props":2326,"children":2328},{"className":2327},[],[2329],{"type":16,"value":2330},"rasterizationSamples",{"type":16,"value":2332}," > 1\nwhen\n",{"type":10,"tag":28,"props":2334,"children":2336},{"href":2335},"/man/VkPhysicalDeviceShaderTileImagePropertiesEXT",[2337],{"type":16,"value":2338},"VkPhysicalDeviceShaderTileImagePropertiesEXT",{"type":16,"value":332},{"type":10,"tag":234,"props":2341,"children":2343},{"className":2342},[],[2344],{"type":16,"value":2345},"shaderTileImageReadSampleFromPixelRateInvocation",{"type":16,"value":1997},{"type":10,"tag":234,"props":2348,"children":2350},{"className":2349},[],[2351],{"type":16,"value":346},{"type":16,"value":273},{"type":10,"tag":18,"props":2354,"children":2355},{},[2356,2357,2361,2363,2369,2371,2374,2376,2382,2384,2387,2389,2394],{"type":16,"value":1901},{"type":10,"tag":28,"props":2358,"children":2359},{"href":1904},[2360],{"type":16,"value":1907},{"type":16,"value":2362}," is enabled, and\n",{"type":10,"tag":234,"props":2364,"children":2366},{"className":2365},[],[2367],{"type":16,"value":2368},"minSampleShading",{"type":16,"value":2370}," is 1.0, a fragment invocation ",{"type":10,"tag":378,"props":2372,"children":2373},{"type":380},[],{"type":16,"value":2375}," only read from\nthe ",{"type":10,"tag":28,"props":2377,"children":2379},{"href":2378},"/chapters/primsrast#primsrast-multisampling-coverageindex",[2380],{"type":16,"value":2381},"coverage index",{"type":16,"value":2383}," sample.\nTile image access ",{"type":10,"tag":378,"props":2385,"children":2386},{"type":380},[],{"type":16,"value":2388}," not be used if the value of ",{"type":10,"tag":234,"props":2390,"children":2392},{"className":2391},[],[2393],{"type":16,"value":2368},{"type":16,"value":2395},"\nis not 1.0.",{"type":10,"tag":18,"props":2397,"children":2398},{},[2399,2400,2404,2406,2411],{"type":16,"value":2128},{"type":10,"tag":28,"props":2401,"children":2402},{"href":84},[2403],{"type":16,"value":296},{"type":16,"value":2405}," declares the\n",{"type":10,"tag":234,"props":2407,"children":2409},{"className":2408},[],[2410],{"type":16,"value":360},{"type":16,"value":2412}," execution mode, depth reads are allowed only if\ndepth writes are disabled and stencil reads are allowed only if stencil\nwrites are disabled.",{"type":10,"tag":18,"props":2414,"children":2415},{},[2416,2417,2421,2422,2428,2429,2434],{"type":16,"value":324},{"type":10,"tag":28,"props":2418,"children":2419},{"href":2335},[2420],{"type":16,"value":2338},{"type":16,"value":332},{"type":10,"tag":234,"props":2423,"children":2425},{"className":2424},[],[2426],{"type":16,"value":2427},"shaderTileImageReadFromHelperInvocation",{"type":16,"value":1997},{"type":10,"tag":234,"props":2430,"children":2432},{"className":2431},[],[2433],{"type":16,"value":412},{"type":16,"value":2435},", values read from helper invocations are undefined:\notherwise the values read are subject to the coherency guarantees described\nbelow.",{"type":10,"tag":18,"props":2437,"children":2438},{},[2439,2444,2446,2451],{"type":10,"tag":234,"props":2440,"children":2442},{"className":2441},[],[2443],{"type":16,"value":2252},{"type":16,"value":2445}," returns an undefined: value if no depth\nattachment is present.\n",{"type":10,"tag":234,"props":2447,"children":2449},{"className":2448},[],[2450],{"type":16,"value":2264},{"type":16,"value":2452}," returns an undefined: value if no stencil\nattachment is present.",{"type":10,"tag":18,"props":2454,"children":2455},{},[2456,2458,2464],{"type":16,"value":2457},"Tile image reads from color, depth and stencil attachments are said to be\ncoherent when the accesses happen in raster order and without\n",{"type":10,"tag":28,"props":2459,"children":2461},{"href":2460},"/chapters/memory-model#memory-model-access-data-race",[2462],{"type":16,"value":2463},"data race",{"type":16,"value":2465}," with respect to accesses to the\nattachments from framebuffer-space pipeline stages.\nThe samples which qualify for coherent access and the enabling conditions\nare described below.",{"type":10,"tag":91,"props":2467,"children":2468},{},[2469,2474],{"type":10,"tag":41,"props":2470,"children":2471},{},[2472],{"type":16,"value":2473},"Let Rc be the set of components being read from an attachment\nA in a draw call",{"type":10,"tag":41,"props":2475,"children":2476},{},[2477],{"type":16,"value":2478},"Let Wc be the set of components being written to A by the\ndraw call",{"type":10,"tag":18,"props":2480,"children":2481},{},[2482],{"type":16,"value":2483},"The samples which qualify for coherent tile image reads from an attachment\nA are:",{"type":10,"tag":91,"props":2485,"children":2486},{},[2487,2492],{"type":10,"tag":41,"props":2488,"children":2489},{},[2490],{"type":16,"value":2491},"All samples in a pixel when Rc is disjoint with Wc.",{"type":10,"tag":41,"props":2493,"children":2494},{},[2495],{"type":16,"value":2496},"The samples with coverage in a fragment when Rc is not disjoint\nwith Wc.\nThe samples with coverage are determined by the coverage mask for the\nfragment as calculated by fragment operations that executed prior to\nfragment shading, including early fragment tests if enabled for the draw\ncall.",{"type":10,"tag":18,"props":2498,"children":2499},{},[2500,2501,2504,2506,2512,2513,2519,2521,2527,2529,2535],{"type":16,"value":1805},{"type":10,"tag":378,"props":2502,"children":2503},{"type":2160},[],{"type":16,"value":2505}," declare ",{"type":10,"tag":234,"props":2507,"children":2509},{"className":2508},[],[2510],{"type":16,"value":2511},"NonCoherentColorAttachmentReadEXT",{"type":16,"value":1130},{"type":10,"tag":234,"props":2514,"children":2516},{"className":2515},[],[2517],{"type":16,"value":2518},"NonCoherentDepthAttachmentReadEXT",{"type":16,"value":2520},", or\n",{"type":10,"tag":234,"props":2522,"children":2524},{"className":2523},[],[2525],{"type":16,"value":2526},"NonCoherentStencilAttachmentReadEXT",{"type":16,"value":2528}," execution modes to enable\nnon-coherent tile image reads which require an explicit\n",{"type":10,"tag":28,"props":2530,"children":2532},{"href":2531},"/man/vkCmdPipelineBarrier2",[2533],{"type":16,"value":2534},"vkCmdPipelineBarrier2",{"type":16,"value":2536}," call for the writes to an attachment to be made\nvisible via tile image reads.",{"type":10,"tag":18,"props":2538,"children":2539},{},[2540,2542,2546,2547,2553,2554,2559],{"type":16,"value":2541},"When\n",{"type":10,"tag":28,"props":2543,"children":2544},{"href":2335},[2545],{"type":16,"value":2338},{"type":16,"value":332},{"type":10,"tag":234,"props":2548,"children":2550},{"className":2549},[],[2551],{"type":16,"value":2552},"shaderTileImageCoherentReadAccelerated",{"type":16,"value":1997},{"type":10,"tag":234,"props":2555,"children":2557},{"className":2556},[],[2558],{"type":16,"value":346},{"type":16,"value":2560},", the implementation prefers that coherent tile image reads\nare used, otherwise the implementation prefers that non-coherent tile image\nreads are used.",{"type":10,"tag":1965,"props":2562,"children":2563},{},[2564,2569,2592],{"type":10,"tag":18,"props":2565,"children":2566},{},[2567],{"type":16,"value":2568},"In practice, the most common tile image reads usage patterns fall under one\nof the following:",{"type":10,"tag":91,"props":2570,"children":2571},{},[2572,2577,2582,2587],{"type":10,"tag":41,"props":2573,"children":2574},{},[2575],{"type":16,"value":2576},"Programmable blending - each fragment reads from a single sample\n(SampleID) at its location.\nPer-sample shading is typically enabled when multisampled rendertargets\nare used.",{"type":10,"tag":41,"props":2578,"children":2579},{},[2580],{"type":16,"value":2581},"G-buffer generation and shading in one render pass - in the shading\nphase a fragment reads from a single sample at its location.",{"type":10,"tag":41,"props":2583,"children":2584},{},[2585],{"type":16,"value":2586},"Programmable resolve - a fragment reads from all samples at its location\n(per-sample shading is disabled).\nThis requires the use of a \"full-screen triangle\" instead of a rectangle\ncomposed of two triangles in order to avoid data races along the shared\nedge of the triangles.",{"type":10,"tag":41,"props":2588,"children":2589},{},[2590],{"type":16,"value":2591},"1:1 texturing with LOD - in use cases such a deferred screen space\ndecals a fragment reads a single sample (SampleID) from depth buffer,\nbut requires being able to read from helper threads to derive the\ntexture LOD.\nThis use case is supported as long as the attachment components being\nread are not overwritten by color, depth, or stencil attachment writes.",{"type":10,"tag":18,"props":2593,"children":2594},{},[2595],{"type":16,"value":2596},"All of the above use cases are supported by coherent tile image reads, but\nonly the latter three are supported when non-coherent reads are used as\nthere is no mechanism to synchronize non-coherent reads with writes within a\ndraw call.",{"type":10,"tag":2006,"props":2598,"children":2600},{"id":2599},"fragops-shader-depthreplacement",[2601],{"type":16,"value":120},{"type":10,"tag":18,"props":2603,"children":2604},{},[2605,2607,2617,2619,2624,2626,2631,2633,2637],{"type":16,"value":2606},"Writing to the ",{"type":10,"tag":28,"props":2608,"children":2610},{"href":2609},"/chapters/interfaces#interfaces-builtin-variables-fragdepth",[2611],{"type":10,"tag":234,"props":2612,"children":2614},{"className":2613},[],[2615],{"type":16,"value":2616},"FragDepth",{"type":16,"value":2618},"\nbuilt-in will replace the fragment’s calculated depth values for each sample\nin the input ",{"type":10,"tag":234,"props":2620,"children":2622},{"className":2621},[],[2623],{"type":16,"value":2026},{"type":16,"value":2625},".\n",{"type":10,"tag":28,"props":2627,"children":2628},{"href":171},[2629],{"type":16,"value":2630},"Depth testing",{"type":16,"value":2632}," performed after the fragment shader for\nthis fragment will use this new value as z",{"type":10,"tag":1058,"props":2634,"children":2635},{},[2636],{"type":16,"value":1062},{"type":16,"value":273},{"type":10,"tag":2006,"props":2639,"children":2641},{"id":2640},"fragops-shader-stencilrefreplacement",[2642],{"type":16,"value":129},{"type":10,"tag":18,"props":2644,"children":2645},{},[2646,2648,2658,2660,2665,2666,2671,2673,2678],{"type":16,"value":2647},"Writing to the\n",{"type":10,"tag":28,"props":2649,"children":2651},{"href":2650},"/chapters/interfaces#interfaces-builtin-variables-fragstencilref",[2652],{"type":10,"tag":234,"props":2653,"children":2655},{"className":2654},[],[2656],{"type":16,"value":2657},"FragStencilRefEXT",{"type":16,"value":2659},"\nbuilt-in will replace the fragment’s stencil reference value for each sample\nin the input ",{"type":10,"tag":234,"props":2661,"children":2663},{"className":2662},[],[2664],{"type":16,"value":2026},{"type":16,"value":2625},{"type":10,"tag":28,"props":2667,"children":2668},{"href":162},[2669],{"type":16,"value":2670},"Stencil testing",{"type":16,"value":2672}," performed after the fragment shader for\nthis fragment will use this new value as s",{"type":10,"tag":1058,"props":2674,"children":2675},{},[2676],{"type":16,"value":2677},"r",{"type":16,"value":273},{"type":10,"tag":2006,"props":2680,"children":2682},{"id":2681},"fragops-shader-interlock",[2683],{"type":16,"value":138},{"type":10,"tag":18,"props":2685,"children":2686},{},[2687,2693,2694,2700,2702,2707],{"type":10,"tag":234,"props":2688,"children":2690},{"className":2689},[],[2691],{"type":16,"value":2692},"OpBeginInvocationInterlockEXT",{"type":16,"value":369},{"type":10,"tag":234,"props":2695,"children":2697},{"className":2696},[],[2698],{"type":16,"value":2699},"OpEndInvocationInterlockEXT",{"type":16,"value":2701},"\ndefine a section of a fragment shader which imposes additional ordering\nconstraints on operations performed within them.\nThese operations are defined as ",{"type":10,"tag":1072,"props":2703,"children":2704},{},[2705],{"type":16,"value":2706},"interlocked operations",{"type":16,"value":2708},".\nHow interlocked operations are ordered against other fragment shader\ninvocations depends on the specified execution modes.",{"type":10,"tag":18,"props":2710,"children":2711},{},[2712,2713,2719,2721,2724,2726,2730,2732,2735,2737,2741],{"type":16,"value":2128},{"type":10,"tag":234,"props":2714,"children":2716},{"className":2715},[],[2717],{"type":16,"value":2718},"ShadingRateInterlockOrderedEXT",{"type":16,"value":2720}," execution mode is specified, any\ninterlocked operations in a fragment shader ",{"type":10,"tag":378,"props":2722,"children":2723},{"type":380},[],{"type":16,"value":2725}," happen before interlocked\noperations in fragment shader invocations that execute later in\n",{"type":10,"tag":28,"props":2727,"children":2728},{"href":30},[2729],{"type":16,"value":1790},{"type":16,"value":2731}," and cover at least one sample in\nthe same fragment area, and ",{"type":10,"tag":378,"props":2733,"children":2734},{"type":380},[],{"type":16,"value":2736}," happen after interlocked operations in a\nfragment shader that executes earlier in ",{"type":10,"tag":28,"props":2738,"children":2739},{"href":30},[2740],{"type":16,"value":33},{"type":16,"value":2742}," and cover at least one sample in the same fragment area.",{"type":10,"tag":18,"props":2744,"children":2745},{},[2746,2747,2753,2755,2758,2760,2764],{"type":16,"value":2128},{"type":10,"tag":234,"props":2748,"children":2750},{"className":2749},[],[2751],{"type":16,"value":2752},"ShadingRateInterlockUnorderedEXT",{"type":16,"value":2754}," execution mode is specified,\nany interlocked operations in a fragment shader ",{"type":10,"tag":378,"props":2756,"children":2757},{"type":380},[],{"type":16,"value":2759}," happen before or after\ninterlocked operations in fragment shader invocations that execute earlier\nor later in ",{"type":10,"tag":28,"props":2761,"children":2762},{"href":30},[2763],{"type":16,"value":1790},{"type":16,"value":2765}," and cover at least one\nsample in the same fragment area.",{"type":10,"tag":18,"props":2767,"children":2768},{},[2769,2770,2776,2777,2780,2781,2785,2787,2790,2792,2796],{"type":16,"value":2128},{"type":10,"tag":234,"props":2771,"children":2773},{"className":2772},[],[2774],{"type":16,"value":2775},"PixelInterlockOrderedEXT",{"type":16,"value":2720},{"type":10,"tag":378,"props":2778,"children":2779},{"type":380},[],{"type":16,"value":2725},{"type":10,"tag":28,"props":2782,"children":2783},{"href":30},[2784],{"type":16,"value":1790},{"type":16,"value":2786}," and cover at least one sample in\nthe same pixel, and ",{"type":10,"tag":378,"props":2788,"children":2789},{"type":380},[],{"type":16,"value":2791}," happen after interlocked operations in a fragment\nshader that executes earlier in ",{"type":10,"tag":28,"props":2793,"children":2794},{"href":30},[2795],{"type":16,"value":1790},{"type":16,"value":2797}," and\ncover at least one sample in the same pixel.",{"type":10,"tag":18,"props":2799,"children":2800},{},[2801,2802,2808,2809,2812,2813,2817],{"type":16,"value":2128},{"type":10,"tag":234,"props":2803,"children":2805},{"className":2804},[],[2806],{"type":16,"value":2807},"PixelInterlockUnorderedEXT",{"type":16,"value":2720},{"type":10,"tag":378,"props":2810,"children":2811},{"type":380},[],{"type":16,"value":2759},{"type":10,"tag":28,"props":2814,"children":2815},{"href":30},[2816],{"type":16,"value":1790},{"type":16,"value":2818}," and cover at least one\nsample in the same pixel.",{"type":10,"tag":18,"props":2820,"children":2821},{},[2822,2823,2829,2830,2833,2834,2838,2840,2843,2845,2849],{"type":16,"value":2128},{"type":10,"tag":234,"props":2824,"children":2826},{"className":2825},[],[2827],{"type":16,"value":2828},"SampleInterlockOrderedEXT",{"type":16,"value":2720},{"type":10,"tag":378,"props":2831,"children":2832},{"type":380},[],{"type":16,"value":2725},{"type":10,"tag":28,"props":2835,"children":2836},{"href":30},[2837],{"type":16,"value":1790},{"type":16,"value":2839}," and cover at least one of the same\nsamples, and ",{"type":10,"tag":378,"props":2841,"children":2842},{"type":380},[],{"type":16,"value":2844}," happen after interlocked operations in a fragment shader\nthat executes earlier in ",{"type":10,"tag":28,"props":2846,"children":2847},{"href":30},[2848],{"type":16,"value":1790},{"type":16,"value":2850}," and cover\nat least one of the same samples.",{"type":10,"tag":18,"props":2852,"children":2853},{},[2854,2855,2861,2862,2865,2866,2870],{"type":16,"value":2128},{"type":10,"tag":234,"props":2856,"children":2858},{"className":2857},[],[2859],{"type":16,"value":2860},"SampleInterlockUnorderedEXT",{"type":16,"value":2720},{"type":10,"tag":378,"props":2863,"children":2864},{"type":380},[],{"type":16,"value":2759},{"type":10,"tag":28,"props":2867,"children":2868},{"href":30},[2869],{"type":16,"value":1790},{"type":16,"value":2871}," and cover at least one\nof the same samples.",{"type":10,"tag":1046,"props":2873,"children":2875},{"id":2874},"fragops-covg",[2876],{"type":16,"value":2877},"Multisample Coverage",{"type":10,"tag":18,"props":2879,"children":2880},{},[2881,2883,2888,2890,2896,2898,2904,2906,2911,2913,2918,2920,2925,2927,2931,2933,2938,2940,2945],{"type":16,"value":2882},"If a fragment shader is active and its entry point’s interface includes a\nbuilt-in output variable decorated with ",{"type":10,"tag":234,"props":2884,"children":2886},{"className":2885},[],[2887],{"type":16,"value":2026},{"type":16,"value":2889},",\nbut not ",{"type":10,"tag":234,"props":2891,"children":2893},{"className":2892},[],[2894],{"type":16,"value":2895},"OverrideCoverageNV",{"type":16,"value":2897},",\nthe coverage mask is ",{"type":10,"tag":234,"props":2899,"children":2901},{"className":2900},[],[2902],{"type":16,"value":2903},"ANDed",{"type":16,"value":2905}," with the bits of the ",{"type":10,"tag":234,"props":2907,"children":2909},{"className":2908},[],[2910],{"type":16,"value":2026},{"type":16,"value":2912},"\nbuilt-in to generate a new coverage mask.\nIf the ",{"type":10,"tag":234,"props":2914,"children":2916},{"className":2915},[],[2917],{"type":16,"value":2026},{"type":16,"value":2919}," built-in is also decorated with\n",{"type":10,"tag":234,"props":2921,"children":2923},{"className":2922},[],[2924],{"type":16,"value":2895},{"type":16,"value":2926},", the coverage mask is replaced with the mask bits\nset in the shader.\nIf ",{"type":10,"tag":28,"props":2928,"children":2929},{"href":1904},[2930],{"type":16,"value":1907},{"type":16,"value":2932}," is enabled, bits written to\n",{"type":10,"tag":234,"props":2934,"children":2936},{"className":2935},[],[2937],{"type":16,"value":2026},{"type":16,"value":2939}," corresponding to samples that are not being shaded by the\nfragment shader invocation are ignored.\nIf no fragment shader is active, or if the active fragment shader does not\ninclude ",{"type":10,"tag":234,"props":2941,"children":2943},{"className":2942},[],[2944],{"type":16,"value":2026},{"type":16,"value":2946}," in its interface, the coverage mask is not modified.",{"type":10,"tag":18,"props":2948,"children":2949},{},[2950,2952,2958,2960,2966,2968,2974,2976,2982,2983,2989,2991,2995],{"type":16,"value":2951},"Next, the fragment alpha value and coverage mask are modified based on the\nline coverage factor if the ",{"type":10,"tag":234,"props":2953,"children":2955},{"className":2954},[],[2956],{"type":16,"value":2957},"lineRasterizationMode",{"type":16,"value":2959}," member of the\n",{"type":10,"tag":28,"props":2961,"children":2963},{"href":2962},"/man/VkPipelineRasterizationStateCreateInfo",[2964],{"type":16,"value":2965},"VkPipelineRasterizationStateCreateInfo",{"type":16,"value":2967}," structure is\n",{"type":10,"tag":234,"props":2969,"children":2971},{"className":2970},[],[2972],{"type":16,"value":2973},"VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR",{"type":16,"value":2975},", and the\n",{"type":10,"tag":234,"props":2977,"children":2979},{"className":2978},[],[2980],{"type":16,"value":2981},"alphaToCoverageEnable",{"type":16,"value":369},{"type":10,"tag":234,"props":2984,"children":2986},{"className":2985},[],[2987],{"type":16,"value":2988},"alphaToOneEnable",{"type":16,"value":2990}," members of the\n",{"type":10,"tag":28,"props":2992,"children":2993},{"href":1699},[2994],{"type":16,"value":1702},{"type":16,"value":2996}," structure.",{"type":10,"tag":1217,"props":2998,"children":3000},{"name":2999,"type":1248},"vkCmdSetAlphaToCoverageEnableEXT",[3001],{"type":10,"tag":18,"props":3002,"children":3003},{},[3004],{"type":16,"value":3005},"Specify the alpha to coverage enable state dynamically for a command buffer",{"type":10,"tag":1217,"props":3007,"children":3009},{"name":3008,"type":1248},"vkCmdSetAlphaToOneEnableEXT",[3010],{"type":10,"tag":18,"props":3011,"children":3012},{},[3013],{"type":16,"value":3014},"Specify the alpha to one enable state dynamically for a command buffer",{"type":10,"tag":18,"props":3016,"children":3017},{},[3018,3020,3025,3026,3032,3034,3040],{"type":16,"value":3019},"All alpha values in this section refer only to the alpha component of the\nfragment shader output that has a ",{"type":10,"tag":234,"props":3021,"children":3023},{"className":3022},[],[3024],{"type":16,"value":2231},{"type":16,"value":369},{"type":10,"tag":234,"props":3027,"children":3029},{"className":3028},[],[3030],{"type":16,"value":3031},"Index",{"type":16,"value":3033}," decoration of\nzero (see the ",{"type":10,"tag":28,"props":3035,"children":3037},{"href":3036},"/chapters/interfaces#interfaces-fragmentoutput",[3038],{"type":16,"value":3039},"Fragment Output Interface",{"type":16,"value":3041},"\nsection).\nIf that shader output has an integer or unsigned integer type, then these\noperations are skipped.",{"type":10,"tag":18,"props":3043,"children":3044},{},[3045,3046,3051,3052,3056,3057,3062,3064,3070],{"type":16,"value":2128},{"type":10,"tag":234,"props":3047,"children":3049},{"className":3048},[],[3050],{"type":16,"value":2957},{"type":16,"value":2959},{"type":10,"tag":28,"props":3053,"children":3054},{"href":2962},[3055],{"type":16,"value":2965},{"type":16,"value":2967},{"type":10,"tag":234,"props":3058,"children":3060},{"className":3059},[],[3061],{"type":16,"value":2973},{"type":16,"value":3063}," and the fragment\ncame from a line segment, then the alpha value is replaced by multiplying it\nby the coverage factor for the fragment computed during\n",{"type":10,"tag":28,"props":3065,"children":3067},{"href":3066},"/chapters/primsrast#primsrast-lines-smooth",[3068],{"type":16,"value":3069},"smooth line rasterization",{"type":16,"value":273},{"type":10,"tag":18,"props":3072,"children":3073},{},[3074,3075,3080],{"type":16,"value":1901},{"type":10,"tag":234,"props":3076,"children":3078},{"className":3077},[],[3079],{"type":16,"value":2981},{"type":16,"value":3081}," is enabled, a temporary coverage mask is\ngenerated where each bit is determined by the fragment’s alpha value, which\nis ANDed with the fragment coverage mask.",{"type":10,"tag":18,"props":3083,"children":3084},{},[3085,3087,3090],{"type":16,"value":3086},"No specific algorithm is specified for converting the alpha value to a\ntemporary coverage mask.\nIt is intended that the number of 1’s in this value be proportional to the\nalpha value (clamped to [0,1]), with all 1’s corresponding to a value\nof 1.0 and all 0’s corresponding to 0.0.\nThe algorithm ",{"type":10,"tag":378,"props":3088,"children":3089},{"type":449},[],{"type":16,"value":3091}," be different at different framebuffer coordinates.",{"type":10,"tag":1965,"props":3093,"children":3094},{},[3095],{"type":10,"tag":18,"props":3096,"children":3097},{},[3098,3100,3103],{"type":16,"value":3099},"Using different algorithms at different framebuffer coordinates ",{"type":10,"tag":378,"props":3101,"children":3102},{"type":449},[],{"type":16,"value":3104}," help to\navoid artifacts caused by regular coverage sample locations.",{"type":10,"tag":18,"props":3106,"children":3107},{},[3108,3110,3115],{"type":16,"value":3109},"Finally, if ",{"type":10,"tag":234,"props":3111,"children":3113},{"className":3112},[],[3114],{"type":16,"value":2988},{"type":16,"value":3116}," is enabled, each alpha value is replaced\nby the maximum representable alpha value for fixed-point color attachments,\nor by 1.0 for floating-point attachments.\nOtherwise, the alpha values are not changed.",{"type":10,"tag":1046,"props":3118,"children":3120},{"id":3119},"fragops-ds-state",[3121],{"type":16,"value":3122},"Depth and Stencil Operations",{"type":10,"tag":18,"props":3124,"children":3125},{},[3126,3128,3133,3134,3138,3140,3144,3146,3151],{"type":16,"value":3127},"Pipeline state controlling the ",{"type":10,"tag":28,"props":3129,"children":3130},{"href":153},[3131],{"type":16,"value":3132},"depth bounds tests",{"type":16,"value":1130},{"type":10,"tag":28,"props":3135,"children":3136},{"href":162},[3137],{"type":16,"value":842},{"type":16,"value":3139},", and ",{"type":10,"tag":28,"props":3141,"children":3142},{"href":171},[3143],{"type":16,"value":318},{"type":16,"value":3145}," is\nspecified through the members of the\n",{"type":10,"tag":234,"props":3147,"children":3149},{"className":3148},[],[3150],{"type":16,"value":683},{"type":16,"value":2996},{"type":10,"tag":1217,"props":3153,"children":3154},{"name":683,"type":1219},[3155],{"type":10,"tag":18,"props":3156,"children":3157},{},[3158],{"type":16,"value":3159},"Structure specifying parameters of a newly created pipeline depth stencil state",{"type":10,"tag":1217,"props":3161,"children":3163},{"name":3162,"type":1229},"VkPipelineDepthStencilStateCreateFlags",[3164],{"type":10,"tag":18,"props":3165,"children":3166},{},[3167],{"type":16,"value":3168},"Bitmask of VkPipelineDepthStencilStateCreateFlagBits",{"type":10,"tag":1217,"props":3170,"children":3172},{"name":3171,"type":1239},"VkPipelineDepthStencilStateCreateFlagBits",[3173],{"type":10,"tag":18,"props":3174,"children":3175},{},[3176],{"type":16,"value":3177},"Bitmask specifying additional depth/stencil state information.",{"type":10,"tag":1046,"props":3179,"children":3181},{"id":3180},"fragops-dbt",[3182],{"type":16,"value":3183},"Depth Bounds Test",{"type":10,"tag":18,"props":3185,"children":3186},{},[3187,3189,3193,3195,3199,3200,3204,3206,3211,3213,3218],{"type":16,"value":3188},"The depth bounds test compares the depth value z",{"type":10,"tag":1058,"props":3190,"children":3191},{},[3192],{"type":16,"value":28},{"type":16,"value":3194}," in the\ndepth/stencil attachment at each sample’s framebuffer coordinates\n(x",{"type":10,"tag":1058,"props":3196,"children":3197},{},[3198],{"type":16,"value":1062},{"type":16,"value":1064},{"type":10,"tag":1058,"props":3201,"children":3202},{},[3203],{"type":16,"value":1062},{"type":16,"value":3205},") and ",{"type":10,"tag":28,"props":3207,"children":3208},{"href":227},[3209],{"type":16,"value":3210},"sample\nindex",{"type":16,"value":3212}," i against a set of ",{"type":10,"tag":1072,"props":3214,"children":3215},{},[3216],{"type":16,"value":3217},"depth bounds",{"type":16,"value":273},{"type":10,"tag":18,"props":3220,"children":3221},{},[3222,3224,3230,3232,3238,3240,3244,3246,3252,3253,3259],{"type":16,"value":3223},"The depth bounds are determined by two floating-point values defining a\nminimum (",{"type":10,"tag":234,"props":3225,"children":3227},{"className":3226},[],[3228],{"type":16,"value":3229},"minDepthBounds",{"type":16,"value":3231},") and maximum (",{"type":10,"tag":234,"props":3233,"children":3235},{"className":3234},[],[3236],{"type":16,"value":3237},"maxDepthBounds",{"type":16,"value":3239},") depth\nvalue.\nThese values are either set by the\n",{"type":10,"tag":28,"props":3241,"children":3242},{"href":680},[3243],{"type":16,"value":683},{"type":16,"value":3245}," structure during pipeline\ncreation, or dynamically by\n",{"type":10,"tag":28,"props":3247,"children":3249},{"href":3248},"/man/vkCmdSetDepthBoundsTestEnable",[3250],{"type":16,"value":3251},"vkCmdSetDepthBoundsTestEnable",{"type":16,"value":1446},{"type":10,"tag":28,"props":3254,"children":3256},{"href":3255},"/man/vkCmdSetDepthBounds",[3257],{"type":16,"value":3258},"vkCmdSetDepthBounds",{"type":16,"value":273},{"type":10,"tag":18,"props":3261,"children":3262},{},[3263,3265,3269,3271,3276,3278,3283,3285,3290],{"type":16,"value":3264},"A given sample is considered within the depth bounds if z",{"type":10,"tag":1058,"props":3266,"children":3267},{},[3268],{"type":16,"value":28},{"type":16,"value":3270}," is in the\nrange [",{"type":10,"tag":234,"props":3272,"children":3274},{"className":3273},[],[3275],{"type":16,"value":3229},{"type":16,"value":3277},",",{"type":10,"tag":234,"props":3279,"children":3281},{"className":3280},[],[3282],{"type":16,"value":3237},{"type":16,"value":3284},"].\nSamples with depth attachment values outside of the depth bounds will have\ntheir coverage set to ",{"type":10,"tag":234,"props":3286,"children":3288},{"className":3287},[],[3289],{"type":16,"value":239},{"type":16,"value":273},{"type":10,"tag":18,"props":3292,"children":3293},{},[3294],{"type":16,"value":3295},"If the depth bounds test is disabled, or if there is no depth attachment,\nthe coverage mask is unmodified by this operation.",{"type":10,"tag":1217,"props":3297,"children":3298},{"name":3251,"type":1248},[3299],{"type":10,"tag":18,"props":3300,"children":3301},{},[3302],{"type":16,"value":3303},"Set depth bounds test enable dynamically for a command buffer",{"type":10,"tag":1217,"props":3305,"children":3306},{"name":3258,"type":1248},[3307],{"type":10,"tag":18,"props":3308,"children":3309},{},[3310],{"type":16,"value":3311},"Set depth bounds range dynamically for a command buffer",{"type":10,"tag":1046,"props":3313,"children":3315},{"id":3314},"fragops-stencil",[3316],{"type":16,"value":3317},"Stencil Test",{"type":10,"tag":18,"props":3319,"children":3320},{},[3321,3323,3327,3328,3332,3333,3337,3338,3342,3344,3349],{"type":16,"value":3322},"The stencil test compares the stencil attachment value s",{"type":10,"tag":1058,"props":3324,"children":3325},{},[3326],{"type":16,"value":28},{"type":16,"value":3194},{"type":10,"tag":1058,"props":3329,"children":3330},{},[3331],{"type":16,"value":1062},{"type":16,"value":1064},{"type":10,"tag":1058,"props":3334,"children":3335},{},[3336],{"type":16,"value":1062},{"type":16,"value":3205},{"type":10,"tag":28,"props":3339,"children":3340},{"href":227},[3341],{"type":16,"value":3210},{"type":16,"value":3343}," i against a ",{"type":10,"tag":1072,"props":3345,"children":3346},{},[3347],{"type":16,"value":3348},"stencil reference value",{"type":16,"value":273},{"type":10,"tag":18,"props":3351,"children":3352},{},[3353],{"type":16,"value":3354},"If the render pass has a fragment density map attachment and the fragment\ncovers multiple pixels, there is an implementation-dependent association of\ncoverage samples to stencil attachment samples within the fragment.\nHowever, if all samples in the fragment are covered, and the stencil\nattachment value is updated as a result of this test, all stencil attachment\nsamples will be updated.",{"type":10,"tag":18,"props":3356,"children":3357},{},[3358,3360,3366,3367,3371,3372,3378],{"type":16,"value":3359},"If the stencil test is not enabled, as specified by\n",{"type":10,"tag":28,"props":3361,"children":3363},{"href":3362},"/man/vkCmdSetStencilTestEnable",[3364],{"type":16,"value":3365},"vkCmdSetStencilTestEnable",{"type":16,"value":868},{"type":10,"tag":28,"props":3368,"children":3369},{"href":680},[3370],{"type":16,"value":683},{"type":16,"value":332},{"type":10,"tag":234,"props":3373,"children":3375},{"className":3374},[],[3376],{"type":16,"value":3377},"stencilTestEnable",{"type":16,"value":3379},", or if\nthere is no stencil attachment, the coverage mask is unmodified by this\noperation.",{"type":10,"tag":18,"props":3381,"children":3382},{},[3383,3385],{"type":16,"value":3384},"The stencil test is controlled by one of two sets of stencil-related state,\nthe front stencil state and the back stencil state.\nStencil tests and writes use the back stencil state when processing\nfragments generated by ",{"type":10,"tag":28,"props":3386,"children":3388},{"href":3387},"/chapters/primsrast#primsrast-polygons-basic",[3389],{"type":16,"value":3390},"back-facing",{"type":10,"tag":18,"props":3392,"children":3393},{},[3394,3400,3402,3407],{"type":10,"tag":28,"props":3395,"children":3397},{"href":3396},"/chapters/primsrast#primsrast-polygons",[3398],{"type":16,"value":3399},"polygons",{"type":16,"value":3401},", and the front stencil state when processing\nfragments generated by ",{"type":10,"tag":28,"props":3403,"children":3404},{"href":3387},[3405],{"type":16,"value":3406},"front-facing polygons",{"type":16,"value":3408}," or\nany other primitives.",{"type":10,"tag":18,"props":3410,"children":3411},{},[3412,3414,3420,3422,3428,3429,3435,3437,3443,3444,3449],{"type":16,"value":3413},"The comparison operation performed is determined by the ",{"type":10,"tag":28,"props":3415,"children":3417},{"href":3416},"/man/VkCompareOp",[3418],{"type":16,"value":3419},"VkCompareOp",{"type":16,"value":3421},"\nvalue set by\n",{"type":10,"tag":28,"props":3423,"children":3425},{"href":3424},"/man/vkCmdSetStencilOp",[3426],{"type":16,"value":3427},"vkCmdSetStencilOp",{"type":16,"value":332},{"type":10,"tag":234,"props":3430,"children":3432},{"className":3431},[],[3433],{"type":16,"value":3434},"compareOp",{"type":16,"value":3436},", or by\n",{"type":10,"tag":28,"props":3438,"children":3440},{"href":3439},"/man/VkStencilOpState",[3441],{"type":16,"value":3442},"VkStencilOpState",{"type":16,"value":332},{"type":10,"tag":234,"props":3445,"children":3447},{"className":3446},[],[3448],{"type":16,"value":3434},{"type":16,"value":3450}," during pipeline creation.",{"type":10,"tag":18,"props":3452,"children":3453},{},[3454,3456,3461,3463,3467,3469,3473,3475,3479,3481,3487,3489,3493,3495,3499,3501,3507],{"type":16,"value":3455},"The compare mask s",{"type":10,"tag":1058,"props":3457,"children":3458},{},[3459],{"type":16,"value":3460},"c",{"type":16,"value":3462}," and stencil reference value s",{"type":10,"tag":1058,"props":3464,"children":3465},{},[3466],{"type":16,"value":2677},{"type":16,"value":3468}," of the\nfront or the back stencil state set determine arguments of the comparison\noperation.\ns",{"type":10,"tag":1058,"props":3470,"children":3471},{},[3472],{"type":16,"value":3460},{"type":16,"value":3474}," is set by the ",{"type":10,"tag":28,"props":3476,"children":3477},{"href":680},[3478],{"type":16,"value":683},{"type":16,"value":3480},"\nstructure during pipeline creation, or by the\n",{"type":10,"tag":28,"props":3482,"children":3484},{"href":3483},"/man/vkCmdSetStencilCompareMask",[3485],{"type":16,"value":3486},"vkCmdSetStencilCompareMask",{"type":16,"value":3488}," command.\ns",{"type":10,"tag":1058,"props":3490,"children":3491},{},[3492],{"type":16,"value":2677},{"type":16,"value":3494}," is set by ",{"type":10,"tag":28,"props":3496,"children":3497},{"href":680},[3498],{"type":16,"value":683},{"type":16,"value":3500}," or by\n",{"type":10,"tag":28,"props":3502,"children":3504},{"href":3503},"/man/vkCmdSetStencilReference",[3505],{"type":16,"value":3506},"vkCmdSetStencilReference",{"type":16,"value":273},{"type":10,"tag":18,"props":3509,"children":3510},{},[3511,3513,3517,3519,3523,3525,3529,3531,3537,3539,3543,3545,3549,3551,3555,3556,3560,3562,3567,3568,3573,3575,3579],{"type":16,"value":3512},"s",{"type":10,"tag":1058,"props":3514,"children":3515},{},[3516],{"type":16,"value":2677},{"type":16,"value":3518}," and s",{"type":10,"tag":1058,"props":3520,"children":3521},{},[3522],{"type":16,"value":28},{"type":16,"value":3524}," are each independently combined with s",{"type":10,"tag":1058,"props":3526,"children":3527},{},[3528],{"type":16,"value":3460},{"type":16,"value":3530},"\nusing a bitwise ",{"type":10,"tag":234,"props":3532,"children":3534},{"className":3533},[],[3535],{"type":16,"value":3536},"AND",{"type":16,"value":3538}," operation to create masked reference and attachment\nvalues s'",{"type":10,"tag":1058,"props":3540,"children":3541},{},[3542],{"type":16,"value":2677},{"type":16,"value":3544}," and s'",{"type":10,"tag":1058,"props":3546,"children":3547},{},[3548],{"type":16,"value":28},{"type":16,"value":3550},".\ns'",{"type":10,"tag":1058,"props":3552,"children":3553},{},[3554],{"type":16,"value":2677},{"type":16,"value":3544},{"type":10,"tag":1058,"props":3557,"children":3558},{},[3559],{"type":16,"value":28},{"type":16,"value":3561}," are used as the ",{"type":10,"tag":1072,"props":3563,"children":3564},{},[3565],{"type":16,"value":3566},"reference",{"type":16,"value":369},{"type":10,"tag":1072,"props":3569,"children":3570},{},[3571],{"type":16,"value":3572},"test",{"type":16,"value":3574}," values,\nrespectively, in the operation specified by the ",{"type":10,"tag":28,"props":3576,"children":3577},{"href":3416},[3578],{"type":16,"value":3419},{"type":16,"value":273},{"type":10,"tag":18,"props":3581,"children":3582},{},[3583,3585,3590],{"type":16,"value":3584},"If the comparison evaluates to false, the coverage for the sample is set to\n",{"type":10,"tag":234,"props":3586,"children":3588},{"className":3587},[],[3589],{"type":16,"value":239},{"type":16,"value":273},{"type":10,"tag":18,"props":3592,"children":3593},{},[3594,3596,3601,3603,3609,3611,3615,3616,3620,3622,3628,3630,3634,3636,3640,3641,3647,3649,3653,3654,3660],{"type":16,"value":3595},"A new stencil value s",{"type":10,"tag":1058,"props":3597,"children":3598},{},[3599],{"type":16,"value":3600},"g",{"type":16,"value":3602}," is generated according to a stencil operation\ndefined by ",{"type":10,"tag":28,"props":3604,"children":3606},{"href":3605},"/man/VkStencilOp",[3607],{"type":16,"value":3608},"VkStencilOp",{"type":16,"value":3610}," parameters set by\n",{"type":10,"tag":28,"props":3612,"children":3613},{"href":3424},[3614],{"type":16,"value":3427},{"type":16,"value":868},{"type":10,"tag":28,"props":3617,"children":3618},{"href":680},[3619],{"type":16,"value":683},{"type":16,"value":3621},".\nIf the stencil test fails, ",{"type":10,"tag":234,"props":3623,"children":3625},{"className":3624},[],[3626],{"type":16,"value":3627},"failOp",{"type":16,"value":3629}," defines the stencil operation used.\nIf the stencil test passes however, the stencil op used is based on the\n",{"type":10,"tag":28,"props":3631,"children":3632},{"href":171},[3633],{"type":16,"value":318},{"type":16,"value":3635}," - if it passes,\n",{"type":10,"tag":28,"props":3637,"children":3638},{"href":680},[3639],{"type":16,"value":683},{"type":16,"value":332},{"type":10,"tag":234,"props":3642,"children":3644},{"className":3643},[],[3645],{"type":16,"value":3646},"passOp",{"type":16,"value":3648}," is used, otherwise\n",{"type":10,"tag":28,"props":3650,"children":3651},{"href":680},[3652],{"type":16,"value":683},{"type":16,"value":332},{"type":10,"tag":234,"props":3655,"children":3657},{"className":3656},[],[3658],{"type":16,"value":3659},"depthFailOp",{"type":16,"value":3661}," is used.",{"type":10,"tag":18,"props":3663,"children":3664},{},[3665,3667,3671,3673,3677,3679,3684,3685,3691,3693,3697,3698,3704,3706,3710,3711,3717],{"type":16,"value":3666},"The stencil attachment value s",{"type":10,"tag":1058,"props":3668,"children":3669},{},[3670],{"type":16,"value":28},{"type":16,"value":3672}," is then updated with the generated\nstencil value s",{"type":10,"tag":1058,"props":3674,"children":3675},{},[3676],{"type":16,"value":3600},{"type":16,"value":3678}," according to the write mask s",{"type":10,"tag":1058,"props":3680,"children":3681},{},[3682],{"type":16,"value":3683},"w",{"type":16,"value":1696},{"type":10,"tag":234,"props":3686,"children":3688},{"className":3687},[],[3689],{"type":16,"value":3690},"writeMask",{"type":16,"value":3692}," in ",{"type":10,"tag":28,"props":3694,"children":3695},{"href":680},[3696],{"type":16,"value":683},{"type":16,"value":332},{"type":10,"tag":234,"props":3699,"children":3701},{"className":3700},[],[3702],{"type":16,"value":3703},"front",{"type":16,"value":3705},"\nand ",{"type":10,"tag":28,"props":3707,"children":3708},{"href":680},[3709],{"type":16,"value":683},{"type":16,"value":332},{"type":10,"tag":234,"props":3712,"children":3714},{"className":3713},[],[3715],{"type":16,"value":3716},"back",{"type":16,"value":3718}," as:",{"type":10,"tag":91,"props":3720,"children":3721},{},[3722],{"type":10,"tag":41,"props":3723,"children":3724},{},[3725,3726,3730,3732,3736,3738,3742,3744,3748,3750,3754],{"type":16,"value":3512},{"type":10,"tag":1058,"props":3727,"children":3728},{},[3729],{"type":16,"value":28},{"type":16,"value":3731}," = (s",{"type":10,"tag":1058,"props":3733,"children":3734},{},[3735],{"type":16,"value":28},{"type":16,"value":3737}," & ¬s",{"type":10,"tag":1058,"props":3739,"children":3740},{},[3741],{"type":16,"value":3683},{"type":16,"value":3743},") | (s",{"type":10,"tag":1058,"props":3745,"children":3746},{},[3747],{"type":16,"value":3600},{"type":16,"value":3749}," & s",{"type":10,"tag":1058,"props":3751,"children":3752},{},[3753],{"type":16,"value":3683},{"type":16,"value":3755},")",{"type":10,"tag":1217,"props":3757,"children":3758},{"name":3365,"type":1248},[3759],{"type":10,"tag":18,"props":3760,"children":3761},{},[3762],{"type":16,"value":3763},"Set stencil test enable dynamically for a command buffer",{"type":10,"tag":1217,"props":3765,"children":3766},{"name":3427,"type":1248},[3767],{"type":10,"tag":18,"props":3768,"children":3769},{},[3770],{"type":16,"value":3771},"Set stencil operation dynamically for a command buffer",{"type":10,"tag":1217,"props":3773,"children":3774},{"name":3442,"type":1219},[3775],{"type":10,"tag":18,"props":3776,"children":3777},{},[3778],{"type":16,"value":3779},"Structure specifying stencil operation state",{"type":10,"tag":1217,"props":3781,"children":3782},{"name":3486,"type":1248},[3783],{"type":10,"tag":18,"props":3784,"children":3785},{},[3786],{"type":16,"value":3787},"Set stencil compare mask dynamically for a command buffer",{"type":10,"tag":1217,"props":3789,"children":3791},{"name":3790,"type":1239},"VkStencilFaceFlagBits",[3792],{"type":10,"tag":18,"props":3793,"children":3794},{},[3795],{"type":16,"value":3796},"Bitmask specifying sets of stencil state for which to update the compare mask",{"type":10,"tag":1217,"props":3798,"children":3800},{"name":3799,"type":1229},"VkStencilFaceFlags",[3801],{"type":10,"tag":18,"props":3802,"children":3803},{},[3804],{"type":16,"value":3805},"Bitmask of VkStencilFaceFlagBits",{"type":10,"tag":1217,"props":3807,"children":3809},{"name":3808,"type":1248},"vkCmdSetStencilWriteMask",[3810],{"type":10,"tag":18,"props":3811,"children":3812},{},[3813],{"type":16,"value":3814},"Set stencil write mask dynamically for a command buffer",{"type":10,"tag":1217,"props":3816,"children":3817},{"name":3506,"type":1248},[3818],{"type":10,"tag":18,"props":3819,"children":3820},{},[3821],{"type":16,"value":3822},"Set stencil reference value dynamically for a command buffer",{"type":10,"tag":1217,"props":3824,"children":3825},{"name":3608,"type":1239},[3826],{"type":10,"tag":18,"props":3827,"children":3828},{},[3829],{"type":16,"value":3830},"Stencil comparison function",{"type":10,"tag":1046,"props":3832,"children":3834},{"id":3833},"fragops-depth",[3835],{"type":16,"value":3836},"Depth Test",{"type":10,"tag":18,"props":3838,"children":3839},{},[3840,3842,3846,3848,3852,3853,3857,3859,3863,3865,3869],{"type":16,"value":3841},"The depth test compares the depth value z",{"type":10,"tag":1058,"props":3843,"children":3844},{},[3845],{"type":16,"value":28},{"type":16,"value":3847}," in the depth/stencil\nattachment at each sample’s framebuffer coordinates (x",{"type":10,"tag":1058,"props":3849,"children":3850},{},[3851],{"type":16,"value":1062},{"type":16,"value":1064},{"type":10,"tag":1058,"props":3854,"children":3855},{},[3856],{"type":16,"value":1062},{"type":16,"value":3858},") and\n",{"type":10,"tag":28,"props":3860,"children":3861},{"href":227},[3862],{"type":16,"value":2275},{"type":16,"value":3864}," i against the\nsample’s depth value z",{"type":10,"tag":1058,"props":3866,"children":3867},{},[3868],{"type":16,"value":1062},{"type":16,"value":3870},".\nIf there is no depth attachment then the depth test is skipped.",{"type":10,"tag":18,"props":3872,"children":3873},{},[3874],{"type":16,"value":3875},"If the render pass has a fragment density map attachment and the fragment\ncovers multiple pixels, there is an implementation-dependent association of\nrasterization samples to depth attachment samples within the fragment.\nHowever, if all samples in the fragment are covered, and the depth\nattachment value is updated as a result of this test, all depth attachment\nsamples will be updated.",{"type":10,"tag":18,"props":3877,"children":3878},{},[3879],{"type":16,"value":3880},"The depth test occurs in three stages, as detailed in the following\nsections.",{"type":10,"tag":2006,"props":3882,"children":3884},{"id":3883},"_depth_clamping_and_range_adjustment",[3885],{"type":16,"value":3886},"Depth Clamping and Range Adjustment",{"type":10,"tag":18,"props":3888,"children":3889},{},[3890,3891,3895,3896,3902,3904,3908,3910,3915,3917,3922,3924,3928,3930,3934,3936,3942,3943,3949],{"type":16,"value":1901},{"type":10,"tag":28,"props":3892,"children":3893},{"href":2962},[3894],{"type":16,"value":2965},{"type":16,"value":332},{"type":10,"tag":234,"props":3897,"children":3899},{"className":3898},[],[3900],{"type":16,"value":3901},"depthClampEnable",{"type":16,"value":3903}," is\nenabled, z",{"type":10,"tag":1058,"props":3905,"children":3906},{},[3907],{"type":16,"value":1062},{"type":16,"value":3909}," is clamped to [z",{"type":10,"tag":1058,"props":3911,"children":3912},{},[3913],{"type":16,"value":3914},"min",{"type":16,"value":3916},", z",{"type":10,"tag":1058,"props":3918,"children":3919},{},[3920],{"type":16,"value":3921},"max",{"type":16,"value":3923},"], where z",{"type":10,"tag":1058,"props":3925,"children":3926},{},[3927],{"type":16,"value":3914},{"type":16,"value":3929},"\n= min(n,f), z",{"type":10,"tag":1058,"props":3931,"children":3932},{},[3933],{"type":16,"value":3921},{"type":16,"value":3935}," = max(n,f)], and n and f are the\n",{"type":10,"tag":234,"props":3937,"children":3939},{"className":3938},[],[3940],{"type":16,"value":3941},"minDepth",{"type":16,"value":369},{"type":10,"tag":234,"props":3944,"children":3946},{"className":3945},[],[3947],{"type":16,"value":3948},"maxDepth",{"type":16,"value":3950}," depth range values of the viewport used by\nthis fragment, respectively.",{"type":10,"tag":18,"props":3952,"children":3953},{},[3954,3955,3961,3962,3968],{"type":16,"value":324},{"type":10,"tag":28,"props":3956,"children":3958},{"href":3957},"/man/VkPhysicalDeviceDepthClampZeroOneFeaturesEXT",[3959],{"type":16,"value":3960},"VkPhysicalDeviceDepthClampZeroOneFeaturesEXT",{"type":16,"value":332},{"type":10,"tag":234,"props":3963,"children":3965},{"className":3964},[],[3966],{"type":16,"value":3967},"depthClampZeroOne",{"type":16,"value":3969},"\nis enabled:",{"type":10,"tag":91,"props":3971,"children":3972},{},[3973,3992],{"type":10,"tag":41,"props":3974,"children":3975},{},[3976,3978,3984,3986,3990],{"type":16,"value":3977},"If the depth attachment has a floating-point format and\n",{"type":10,"tag":28,"props":3979,"children":3981},{"href":3980},"/extensions/VK_EXT_depth_range_unrestricted",[3982],{"type":16,"value":3983},"VK_EXT_depth_range_unrestricted",{"type":16,"value":3985}," is enabled then z",{"type":10,"tag":1058,"props":3987,"children":3988},{},[3989],{"type":16,"value":1062},{"type":16,"value":3991}," is\nunchanged.",{"type":10,"tag":41,"props":3993,"children":3994},{},[3995,3997,4001],{"type":16,"value":3996},"Otherwise, z",{"type":10,"tag":1058,"props":3998,"children":3999},{},[4000],{"type":16,"value":1062},{"type":16,"value":4002}," is clamped to the range [0, 1].",{"type":10,"tag":18,"props":4004,"children":4005},{},[4006],{"type":16,"value":4007},"Otherwise:",{"type":10,"tag":91,"props":4009,"children":4010},{},[4011,4039],{"type":10,"tag":41,"props":4012,"children":4013},{},[4014,4016,4020,4022,4026,4027,4031,4033,4037],{"type":16,"value":4015},"If z",{"type":10,"tag":1058,"props":4017,"children":4018},{},[4019],{"type":16,"value":1062},{"type":16,"value":4021}," is not in the range [z",{"type":10,"tag":1058,"props":4023,"children":4024},{},[4025],{"type":16,"value":3914},{"type":16,"value":3916},{"type":10,"tag":1058,"props":4028,"children":4029},{},[4030],{"type":16,"value":3921},{"type":16,"value":4032},"], then\nz",{"type":10,"tag":1058,"props":4034,"children":4035},{},[4036],{"type":16,"value":1062},{"type":16,"value":4038}," is undefined: following this step.",{"type":10,"tag":41,"props":4040,"children":4041},{},[4042,4044,4048,4050,4054],{"type":16,"value":4043},"If the depth attachment has a fixed-point format and z",{"type":10,"tag":1058,"props":4045,"children":4046},{},[4047],{"type":16,"value":1062},{"type":16,"value":4049}," is not\nin the range [0, 1], then z",{"type":10,"tag":1058,"props":4051,"children":4052},{},[4053],{"type":16,"value":1062},{"type":16,"value":4055}," is undefined: following this\nstep.",{"type":10,"tag":2006,"props":4057,"children":4059},{"id":4058},"fragops-depth-comparison",[4060],{"type":16,"value":4061},"Depth Comparison",{"type":10,"tag":18,"props":4063,"children":4064},{},[4065,4067,4073,4074,4078,4079,4085],{"type":16,"value":4066},"If the depth test is not enabled, as specified by\n",{"type":10,"tag":28,"props":4068,"children":4070},{"href":4069},"/man/vkCmdSetDepthTestEnable",[4071],{"type":16,"value":4072},"vkCmdSetDepthTestEnable",{"type":16,"value":868},{"type":10,"tag":28,"props":4075,"children":4076},{"href":680},[4077],{"type":16,"value":683},{"type":16,"value":332},{"type":10,"tag":234,"props":4080,"children":4082},{"className":4081},[],[4083],{"type":16,"value":4084},"depthTestEnable",{"type":16,"value":4086},", then\nthis step is skipped.",{"type":10,"tag":18,"props":4088,"children":4089},{},[4090,4091,4095,4096,4102,4103,4107,4108,4113,4115,4119,4121,4125,4126,4130,4131,4135,4136,4140],{"type":16,"value":3413},{"type":10,"tag":28,"props":4092,"children":4093},{"href":3416},[4094],{"type":16,"value":3419},{"type":16,"value":3421},{"type":10,"tag":28,"props":4097,"children":4099},{"href":4098},"/man/vkCmdSetDepthCompareOp",[4100],{"type":16,"value":4101},"vkCmdSetDepthCompareOp",{"type":16,"value":3436},{"type":10,"tag":28,"props":4104,"children":4105},{"href":680},[4106],{"type":16,"value":683},{"type":16,"value":332},{"type":10,"tag":234,"props":4109,"children":4111},{"className":4110},[],[4112],{"type":16,"value":956},{"type":16,"value":4114}," during\npipeline creation.\nz",{"type":10,"tag":1058,"props":4116,"children":4117},{},[4118],{"type":16,"value":1062},{"type":16,"value":4120}," and z",{"type":10,"tag":1058,"props":4122,"children":4123},{},[4124],{"type":16,"value":28},{"type":16,"value":3561},{"type":10,"tag":1072,"props":4127,"children":4128},{},[4129],{"type":16,"value":3566},{"type":16,"value":369},{"type":10,"tag":1072,"props":4132,"children":4133},{},[4134],{"type":16,"value":3572},{"type":16,"value":3574},{"type":10,"tag":28,"props":4137,"children":4138},{"href":3416},[4139],{"type":16,"value":3419},{"type":16,"value":273},{"type":10,"tag":18,"props":4142,"children":4143},{},[4144,4145,4150],{"type":16,"value":3584},{"type":10,"tag":234,"props":4146,"children":4148},{"className":4147},[],[4149],{"type":16,"value":239},{"type":16,"value":273},{"type":10,"tag":2006,"props":4152,"children":4154},{"id":4153},"fragops-depth-write",[4155],{"type":16,"value":4156},"Depth Attachment Writes",{"type":10,"tag":18,"props":4158,"children":4159},{},[4160,4162,4168,4169,4173,4174,4180,4182,4186,4188,4192],{"type":16,"value":4161},"If depth writes are enabled, as specified by\n",{"type":10,"tag":28,"props":4163,"children":4165},{"href":4164},"/man/vkCmdSetDepthWriteEnable",[4166],{"type":16,"value":4167},"vkCmdSetDepthWriteEnable",{"type":16,"value":868},{"type":10,"tag":28,"props":4170,"children":4171},{"href":680},[4172],{"type":16,"value":683},{"type":16,"value":332},{"type":10,"tag":234,"props":4175,"children":4177},{"className":4176},[],[4178],{"type":16,"value":4179},"depthWriteEnable",{"type":16,"value":4181},", and the\ncomparison evaluated to true, the depth attachment value z",{"type":10,"tag":1058,"props":4183,"children":4184},{},[4185],{"type":16,"value":28},{"type":16,"value":4187}," is set\nto the sample’s depth value z",{"type":10,"tag":1058,"props":4189,"children":4190},{},[4191],{"type":16,"value":1062},{"type":16,"value":4193},".\nIf there is no depth attachment, no value is written.",{"type":10,"tag":1217,"props":4195,"children":4196},{"name":4072,"type":1248},[4197],{"type":10,"tag":18,"props":4198,"children":4199},{},[4200],{"type":16,"value":4201},"Set depth test enable dynamically for a command buffer",{"type":10,"tag":1217,"props":4203,"children":4204},{"name":4101,"type":1248},[4205],{"type":10,"tag":18,"props":4206,"children":4207},{},[4208],{"type":16,"value":4209},"Set depth comparison operator dynamically for a command buffer",{"type":10,"tag":1217,"props":4211,"children":4212},{"name":4167,"type":1248},[4213],{"type":10,"tag":18,"props":4214,"children":4215},{},[4216],{"type":16,"value":4217},"Set depth write enable dynamically for a command buffer",{"type":10,"tag":1046,"props":4219,"children":4221},{"id":4220},"fragops-rep-frag-test",[4222],{"type":16,"value":4223},"Representative Fragment Test",{"type":10,"tag":18,"props":4225,"children":4226},{},[4227,4229,4232,4234,4240],{"type":16,"value":4228},"The representative fragment test allows implementations to reduce the amount\nof rasterization and fragment processing work performed for each point,\nline, or triangle primitive.\nFor any primitive that produces one or more fragments that pass all prior\nearly fragment tests, the implementation ",{"type":10,"tag":378,"props":4230,"children":4231},{"type":449},[],{"type":16,"value":4233}," choose one or more\n",{"type":10,"tag":234,"props":4235,"children":4237},{"className":4236},[],[4238],{"type":16,"value":4239},"representative",{"type":16,"value":4241}," fragments for processing and discard all other fragments.\nFor draw calls rendering multiple points, lines, or triangles arranged in\nlists, strips, or fans, the representative fragment test is performed\nindependently for each of those primitives.\nThe set of fragments discarded by the representative fragment test is\nimplementation-dependent.\nIn some cases, the representative fragment test may not discard any\nfragments for a given primitive.",{"type":10,"tag":1217,"props":4243,"children":4245},{"name":4244,"type":1219},"VkPipelineRepresentativeFragmentTestStateCreateInfoNV",[4246],{"type":10,"tag":18,"props":4247,"children":4248},{},[4249],{"type":16,"value":4250},"Structure specifying representative fragment test",{"type":10,"tag":1217,"props":4252,"children":4254},{"name":4253,"type":1248},"vkCmdSetRepresentativeFragmentTestEnableNV",[4255],{"type":10,"tag":18,"props":4256,"children":4257},{},[4258],{"type":16,"value":4259},"Specify the representative fragment test enable dynamically for a command buffer",{"type":10,"tag":1046,"props":4261,"children":4263},{"id":4262},"fragops-samplecount",[4264],{"type":16,"value":4265},"Sample Counting",{"type":10,"tag":18,"props":4267,"children":4268},{},[4269,4271,4277],{"type":16,"value":4270},"Occlusion queries use query pool entries to track the number of samples that\npass all the per-fragment tests.\nThe mechanism of collecting an occlusion query value is described in\n",{"type":10,"tag":28,"props":4272,"children":4274},{"href":4273},"/chapters/queries#queries-occlusion",[4275],{"type":16,"value":4276},"Occlusion Queries",{"type":16,"value":273},{"type":10,"tag":18,"props":4279,"children":4280},{},[4281],{"type":16,"value":4282},"The occlusion query sample counter increments by one for each sample with a\ncoverage value of 1 in each fragment that survives all the per-fragment\ntests, including scissor,\nexclusive scissor,\nsample mask, alpha to coverage, stencil, and depth tests.",{"type":10,"tag":1046,"props":4284,"children":4286},{"id":4285},"fragops-coverage-to-color",[4287],{"type":16,"value":4288},"Fragment Coverage to Color",{"type":10,"tag":1217,"props":4290,"children":4292},{"name":4291,"type":1219},"VkPipelineCoverageToColorStateCreateInfoNV",[4293],{"type":10,"tag":18,"props":4294,"children":4295},{},[4296],{"type":16,"value":4297},"Structure specifying whether fragment coverage replaces a color",{"type":10,"tag":1217,"props":4299,"children":4301},{"name":4300,"type":1229},"VkPipelineCoverageToColorStateCreateFlagsNV",[4302],{"type":10,"tag":18,"props":4303,"children":4304},{},[4305],{"type":16,"value":1235},{"type":10,"tag":1217,"props":4307,"children":4309},{"name":4308,"type":1248},"vkCmdSetCoverageToColorEnableNV",[4310],{"type":10,"tag":18,"props":4311,"children":4312},{},[4313],{"type":16,"value":4314},"Specify the coverage to color enable state dynamically for a command buffer",{"type":10,"tag":1217,"props":4316,"children":4318},{"name":4317,"type":1248},"vkCmdSetCoverageToColorLocationNV",[4319],{"type":10,"tag":18,"props":4320,"children":4321},{},[4322],{"type":16,"value":4323},"Specify the coverage to color location dynamically for a command buffer",{"type":10,"tag":1046,"props":4325,"children":4327},{"id":4326},"fragops-coverage-reduction",[4328],{"type":16,"value":4329},"Coverage Reduction",{"type":10,"tag":18,"props":4331,"children":4332},{},[4333],{"type":16,"value":4334},"Coverage reduction takes the coverage information for a fragment and\nconverts that to a boolean coverage value for each color sample in each\npixel covered by the fragment.",{"type":10,"tag":2006,"props":4336,"children":4338},{"id":4337},"_pixel_coverage",[4339],{"type":16,"value":4340},"Pixel Coverage",{"type":10,"tag":18,"props":4342,"children":4343},{},[4344,4346,4351,4353,4357],{"type":16,"value":4345},"Coverage for each pixel is first extracted from the total fragment coverage\nmask.\nThis consists of ",{"type":10,"tag":234,"props":4347,"children":4349},{"className":4348},[],[4350],{"type":16,"value":2330},{"type":16,"value":4352}," unique coverage samples for each\npixel in the fragment area, each with a unique\n",{"type":10,"tag":28,"props":4354,"children":4355},{"href":227},[4356],{"type":16,"value":2275},{"type":16,"value":4358},".\nIf the fragment only contains a single pixel, coverage for the pixel is\nequivalent to the fragment coverage.",{"type":10,"tag":18,"props":4360,"children":4361},{},[4362],{"type":16,"value":4363},"If the render pass has a fragment density map attachment and the fragment\ncovers multiple pixels, pixel coverage is generated in an\nimplementation-dependent manner.\nIf all samples in the fragment are covered, all samples will be covered in\neach pixel coverage.",{"type":10,"tag":18,"props":4365,"children":4366},{},[4367,4368,4372,4374,4379],{"type":16,"value":1925},{"type":10,"tag":28,"props":4369,"children":4370},{"href":1928},[4371],{"type":16,"value":1931},{"type":16,"value":4373}," is used, and the\nfragment covers multiple pixels, each pixel’s coverage consists of the\ncoverage samples corresponding to that pixel, and each sample retains its\nunique ",{"type":10,"tag":28,"props":4375,"children":4376},{"href":227},[4377],{"type":16,"value":4378},"sample index i",{"type":16,"value":273},{"type":10,"tag":18,"props":4381,"children":4382},{},[4383,4384,4390,4392,4398,4400,4404],{"type":16,"value":2128},{"type":10,"tag":28,"props":4385,"children":4387},{"href":4386},"/chapters/primsrast#primsrast-fragment-shading-rate",[4388],{"type":16,"value":4389},"fragment shading rate",{"type":16,"value":4391}," is set,\nand the fragment covers multiple pixels, each pixel’s coverage consists of\nthe coverage samples with a ",{"type":10,"tag":28,"props":4393,"children":4395},{"href":4394},"/chapters/primsrast#primsrast-multisampling-coverage-mask-vrfs",[4396],{"type":16,"value":4397},"pixel index",{"type":16,"value":4399}," matching that pixel, and each sample retains its unique\n",{"type":10,"tag":28,"props":4401,"children":4402},{"href":227},[4403],{"type":16,"value":4378},{"type":16,"value":273},{"type":10,"tag":2006,"props":4406,"children":4408},{"id":4407},"_color_sample_coverage",[4409],{"type":16,"value":4410},"Color Sample Coverage",{"type":10,"tag":18,"props":4412,"children":4413},{},[4414],{"type":16,"value":4415},"Once pixel coverage is determined, coverage for each individual color sample\ncorresponding to that pixel is determined.",{"type":10,"tag":18,"props":4417,"children":4418},{},[4419,4421,4426,4428,4432],{"type":16,"value":4420},"If the\nnumber of ",{"type":10,"tag":234,"props":4422,"children":4424},{"className":4423},[],[4425],{"type":16,"value":2330},{"type":16,"value":4427}," is identical to the number of samples\nin the color\nattachments, a\ncolor sample is covered if the pixel coverage sample with the same\n",{"type":10,"tag":28,"props":4429,"children":4430},{"href":227},[4431],{"type":16,"value":2275},{"type":16,"value":4433}," i is covered.",{"type":10,"tag":18,"props":4435,"children":4436},{},[4437],{"type":16,"value":4438},"Otherwise, the coverage for each color sample is computed from the pixel\ncoverage as follows.",{"type":10,"tag":18,"props":4440,"children":4441},{},[4442,4443,4449,4451,4455],{"type":16,"value":2128},{"type":10,"tag":28,"props":4444,"children":4446},{"href":4445},"/extensions/VK_AMD_mixed_attachment_samples",[4447],{"type":16,"value":4448},"VK_AMD_mixed_attachment_samples",{"type":16,"value":4450}," extension is enabled, for\ncolor samples present in the color attachments, a color sample is covered if\nthe pixel coverage sample with the same\n",{"type":10,"tag":28,"props":4452,"children":4453},{"href":227},[4454],{"type":16,"value":2275},{"type":16,"value":4456}," i is covered;\nadditional pixel coverage samples are discarded.",{"type":10,"tag":18,"props":4458,"children":4459},{},[4460,4461,4467,4469,4475,4476,4482,4484,4490,4492,4498,4500,4505,4507,4511,4512,4517],{"type":16,"value":2128},{"type":10,"tag":234,"props":4462,"children":4464},{"className":4463},[],[4465],{"type":16,"value":4466},"pNext",{"type":16,"value":4468}," chain of ",{"type":10,"tag":28,"props":4470,"children":4472},{"href":4471},"/man/VkSubpassDescription2",[4473],{"type":16,"value":4474},"VkSubpassDescription2",{"type":16,"value":584},{"type":10,"tag":28,"props":4477,"children":4479},{"href":4478},"/man/VkRenderingInfo",[4480],{"type":16,"value":4481},"VkRenderingInfo",{"type":16,"value":4483},"\nincludes a ",{"type":10,"tag":28,"props":4485,"children":4487},{"href":4486},"/man/VkMultisampledRenderToSingleSampledInfoEXT",[4488],{"type":16,"value":4489},"VkMultisampledRenderToSingleSampledInfoEXT",{"type":16,"value":4491}," structure with\nthe ",{"type":10,"tag":234,"props":4493,"children":4495},{"className":4494},[],[4496],{"type":16,"value":4497},"multisampledRenderToSingleSampledEnable",{"type":16,"value":4499}," field equal to\n",{"type":10,"tag":234,"props":4501,"children":4503},{"className":4502},[],[4504],{"type":16,"value":346},{"type":16,"value":4506},", sample coverage is calculated as if the attachment has\n",{"type":10,"tag":28,"props":4508,"children":4509},{"href":4486},[4510],{"type":16,"value":4489},{"type":16,"value":332},{"type":10,"tag":234,"props":4513,"children":4515},{"className":4514},[],[4516],{"type":16,"value":2330},{"type":16,"value":4518},"\nsamples.",{"type":10,"tag":18,"props":4520,"children":4521},{},[4522,4524,4530,4532,4538],{"type":16,"value":4523},"When the ",{"type":10,"tag":28,"props":4525,"children":4527},{"href":4526},"/extensions/VK_NV_coverage_reduction_mode",[4528],{"type":16,"value":4529},"VK_NV_coverage_reduction_mode",{"type":16,"value":4531}," extension is enabled, the\npipeline state controlling coverage reduction is specified through the\nmembers of the ",{"type":10,"tag":234,"props":4533,"children":4535},{"className":4534},[],[4536],{"type":16,"value":4537},"VkPipelineCoverageReductionStateCreateInfoNV",{"type":16,"value":2996},{"type":10,"tag":1217,"props":4540,"children":4541},{"name":4537,"type":1219},[4542],{"type":10,"tag":18,"props":4543,"children":4544},{},[4545],{"type":16,"value":4546},"Structure specifying parameters controlling coverage reduction",{"type":10,"tag":1217,"props":4548,"children":4550},{"name":4549,"type":1229},"VkPipelineCoverageReductionStateCreateFlagsNV",[4551],{"type":10,"tag":18,"props":4552,"children":4553},{},[4554],{"type":16,"value":1235},{"type":10,"tag":1217,"props":4556,"children":4558},{"name":4557,"type":1239},"VkCoverageReductionModeNV",[4559],{"type":10,"tag":18,"props":4560,"children":4561},{},[4562],{"type":16,"value":4563},"Specify the coverage reduction mode",{"type":10,"tag":1217,"props":4565,"children":4567},{"name":4566,"type":1248},"vkCmdSetCoverageReductionModeNV",[4568],{"type":10,"tag":18,"props":4569,"children":4570},{},[4571],{"type":16,"value":4572},"Specify the coverage reduction mode dynamically for a command buffer",{"type":10,"tag":1217,"props":4574,"children":4576},{"name":4575,"type":1248},"vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV",[4577],{"type":10,"tag":18,"props":4578,"children":4579},{},[4580],{"type":16,"value":4581},"Query supported sample count combinations",{"type":10,"tag":1217,"props":4583,"children":4585},{"name":4584,"type":1219},"VkFramebufferMixedSamplesCombinationNV",[4586],{"type":10,"tag":18,"props":4587,"children":4588},{},[4589],{"type":16,"value":4590},"Structure specifying a supported sample count combination",{"type":10,"tag":2006,"props":4592,"children":4594},{"id":4593},"fragops-coverage-modulation",[4595],{"type":16,"value":4596},"Coverage Modulation",{"type":10,"tag":1217,"props":4598,"children":4600},{"name":4599,"type":1219},"VkPipelineCoverageModulationStateCreateInfoNV",[4601],{"type":10,"tag":18,"props":4602,"children":4603},{},[4604],{"type":16,"value":4605},"Structure specifying parameters controlling coverage modulation",{"type":10,"tag":1217,"props":4607,"children":4609},{"name":4608,"type":1229},"VkPipelineCoverageModulationStateCreateFlagsNV",[4610],{"type":10,"tag":18,"props":4611,"children":4612},{},[4613],{"type":16,"value":1235},{"type":10,"tag":1217,"props":4615,"children":4617},{"name":4616,"type":1239},"VkCoverageModulationModeNV",[4618],{"type":10,"tag":18,"props":4619,"children":4620},{},[4621],{"type":16,"value":4622},"Specify the coverage modulation mode",{"type":10,"tag":1217,"props":4624,"children":4626},{"name":4625,"type":1248},"vkCmdSetCoverageModulationModeNV",[4627],{"type":10,"tag":18,"props":4628,"children":4629},{},[4630],{"type":16,"value":4631},"Specify the coverage modulation mode dynamically for a command buffer",{"type":10,"tag":1217,"props":4633,"children":4635},{"name":4634,"type":1248},"vkCmdSetCoverageModulationTableEnableNV",[4636],{"type":10,"tag":18,"props":4637,"children":4638},{},[4639],{"type":16,"value":4640},"Specify the coverage modulation table enable state dynamically for a command buffer",{"type":10,"tag":1217,"props":4642,"children":4644},{"name":4643,"type":1248},"vkCmdSetCoverageModulationTableNV",[4645],{"type":10,"tag":18,"props":4646,"children":4647},{},[4648],{"type":16,"value":4649},"Specify the coverage modulation table dynamically for a command buffer",{"title":4651,"searchDepth":4652,"depth":4652,"links":4653},"",2,[4654,4655,4656,4657,4658,4666,4667,4668,4669,4670,4675,4676,4677,4678],{"id":1048,"depth":4652,"text":1051},{"id":1275,"depth":4652,"text":1278},{"id":1487,"depth":4652,"text":1490},{"id":1675,"depth":4652,"text":1678},{"id":1759,"depth":4652,"text":1762,"children":4659},[4660,4662,4663,4664,4665],{"id":2008,"depth":4661,"text":2011},3,{"id":2120,"depth":4661,"text":2123},{"id":2599,"depth":4661,"text":120},{"id":2640,"depth":4661,"text":129},{"id":2681,"depth":4661,"text":138},{"id":2874,"depth":4652,"text":2877},{"id":3119,"depth":4652,"text":3122},{"id":3180,"depth":4652,"text":3183},{"id":3314,"depth":4652,"text":3317},{"id":3833,"depth":4652,"text":3836,"children":4671},[4672,4673,4674],{"id":3883,"depth":4661,"text":3886},{"id":4058,"depth":4661,"text":4061},{"id":4153,"depth":4661,"text":4156},{"id":4220,"depth":4652,"text":4223},{"id":4262,"depth":4652,"text":4265},{"id":4285,"depth":4652,"text":4288},{"id":4326,"depth":4652,"text":4329,"children":4679},[4680,4681,4682],{"id":4337,"depth":4661,"text":4340},{"id":4407,"depth":4661,"text":4410},{"id":4593,"depth":4661,"text":4596},"markdown","chapters-fragops",[4686,4691,4695,4698,4701,4705,4709,4713,4717,4721,4725,4729,4733,4737,4741,4745,4749,4753,4757,4761,4765,4769,4773,4777,4781,4785,4789,4793,4797,4799,4803,4807,4811,4815,4819,4823,4827,4831,4835,4839,4843,4847,4851,4855,4859,4863,4867,4871,4875,4879,4883,4887,4890,4893,4896,4899,4902,4905,4908],{"index":4687,"title":4688,"id":4689,"appendix":4690},0,"Preamble","preamble",false,{"index":4692,"title":4693,"id":4694,"appendix":4690},1,"Introduction","introduction",{"index":4652,"title":4696,"id":4697,"appendix":4690},"Fundamentals","fundamentals",{"index":4661,"title":4699,"id":4700,"appendix":4690},"Initialization","initialization",{"index":4702,"title":4703,"id":4704,"appendix":4690},4,"Devices and Queues","devsandqueues",{"index":4706,"title":4707,"id":4708,"appendix":4690},5,"Command Buffers","commandbuffers",{"index":4710,"title":4711,"id":4712,"appendix":4690},6,"Synchronization and Cache Control","synchronization",{"index":4714,"title":4715,"id":4716,"appendix":4690},7,"Render Pass","renderpass",{"index":4718,"title":4719,"id":4720,"appendix":4690},8,"Shaders","shaders",{"index":4722,"title":4723,"id":4724,"appendix":4690},9,"Pipelines","pipelines",{"index":4726,"title":4727,"id":4728,"appendix":4690},10,"Memory Allocation","memory",{"index":4730,"title":4731,"id":4732,"appendix":4690},11,"Resource Creation","resources",{"index":4734,"title":4735,"id":4736,"appendix":4690},12,"Samplers","samplers",{"index":4738,"title":4739,"id":4740,"appendix":4690},13,"Resource Descriptors","descriptorsets",{"index":4742,"title":4743,"id":4744,"appendix":4690},14,"Shader Interfaces","interfaces",{"index":4746,"title":4747,"id":4748,"appendix":4690},15,"Image Operations","textures",{"index":4750,"title":4751,"id":4752,"appendix":4690},16,"Fragment Density Map Operations","fragmentdensitymapops",{"index":4754,"title":4755,"id":4756,"appendix":4690},17,"Queries","queries",{"index":4758,"title":4759,"id":4760,"appendix":4690},18,"Clear Commands","clears",{"index":4762,"title":4763,"id":4764,"appendix":4690},19,"Copy Commands","copies",{"index":4766,"title":4767,"id":4768,"appendix":4690},20,"Drawing Commands","drawing",{"index":4770,"title":4771,"id":4772,"appendix":4690},21,"Fixed-Function Vertex Processing","fxvertex",{"index":4774,"title":4775,"id":4776,"appendix":4690},22,"Tessellation","tessellation",{"index":4778,"title":4779,"id":4780,"appendix":4690},23,"Geometry Shading","geometry",{"index":4782,"title":4783,"id":4784,"appendix":4690},24,"Mesh Shading","mesh",{"index":4786,"title":4787,"id":4788,"appendix":4690},25,"Cluster Culling Shading","cluster-culling",{"index":4790,"title":4791,"id":4792,"appendix":4690},26,"Fixed-Function Vertex Post-Processing","vertexpostproc",{"index":4794,"title":4795,"id":4796,"appendix":4690},27,"Rasterization","primsrast",{"index":4798,"title":4,"id":13,"appendix":4690},28,{"index":4800,"title":4801,"id":4802,"appendix":4690},29,"The Framebuffer","framebuffer",{"index":4804,"title":4805,"id":4806,"appendix":4690},30,"Dispatching Commands","dispatch",{"index":4808,"title":4809,"id":4810,"appendix":4690},31,"Device-Generated Commands","device-generated-commands",{"index":4812,"title":4813,"id":4814,"appendix":4690},32,"Sparse Resources","sparsememory",{"index":4816,"title":4817,"id":4818,"appendix":4690},33,"Window System Integration (WSI)","wsi",{"index":4820,"title":4821,"id":4822,"appendix":4690},34,"Deferred Host Operations","deferred-host-operations",{"index":4824,"title":4825,"id":4826,"appendix":4690},35,"Private Data","private-data",{"index":4828,"title":4829,"id":4830,"appendix":4690},36,"Acceleration Structures","acceleration-structure",{"index":4832,"title":4833,"id":4834,"appendix":4690},37,"Micromap","micromap",{"index":4836,"title":4837,"id":4838,"appendix":4690},38,"Ray Traversal","ray-traversal",{"index":4840,"title":4841,"id":4842,"appendix":4690},39,"Ray Tracing","ray-tracing",{"index":4844,"title":4845,"id":4846,"appendix":4690},40,"Memory Decompression","memory-decompression",{"index":4848,"title":4849,"id":4850,"appendix":4690},41,"Video Coding","video-coding",{"index":4852,"title":4853,"id":4854,"appendix":4690},42,"Optical Flow","opticalflow",{"index":4856,"title":4857,"id":4858,"appendix":4690},43,"Execution Graphs","executiongraphs",{"index":4860,"title":4861,"id":4862,"appendix":4690},44,"Extending Vulkan","extendingvulkan",{"index":4864,"title":4865,"id":4866,"appendix":4690},45,"Features","features",{"index":4868,"title":4869,"id":4870,"appendix":4690},46,"Limits","limits",{"index":4872,"title":4873,"id":4874,"appendix":4690},47,"Formats","formats",{"index":4876,"title":4877,"id":4878,"appendix":4690},48,"Additional Capabilities","capabilities",{"index":4880,"title":4881,"id":4882,"appendix":4690},49,"Debugging","debugging",{"index":4687,"title":4884,"id":4885,"appendix":4886},"Vulkan Environment for SPIR-V","spirvenv",true,{"index":4692,"title":4888,"id":4889,"appendix":4886},"Memory Model","memory-model",{"index":4652,"title":4891,"id":4892,"appendix":4886},"Compressed Image Formats","compressed_image_formats",{"index":4661,"title":4894,"id":4895,"appendix":4886},"Core Revisions (Informative)","versions",{"index":4702,"title":4897,"id":4898,"appendix":4886},"Layers & Extensions (Informative)","extensions",{"index":4706,"title":4900,"id":4901,"appendix":4886},"API Boilerplate","boilerplate",{"index":4710,"title":4903,"id":4904,"appendix":4886},"Invariance","invariance",{"index":4714,"title":4906,"id":4907,"appendix":4886},"Lexicon","lexicon",{"index":4718,"title":4909,"id":4910,"appendix":4886},"Credits (Informative)","credits",[4912,4920,4924,4929,4933,4938,4941,4944,4947,4951,4955,4957,4960,4963,4965,4967,4970,4973,4977,4979,4983,4985,4988,4990,4993,5001,5005,5011,5015,5020,5022,5026,5032,5038,5044,5046,5049,5055,5058,5062,5068,5072,5076,5081,5085,5088,5091,5097,5100,5103,5107,5111,5115,5118,5119,5123,5128,5134,5137,5141,5144,5150,5153,5157,5160,5164,5167,5171,5174,5179,5183,5186,5191,5194,5197,5200,5204,5209,5214,5218,5222,5226,5230,5234,5238,5242,5245,5248,5252,5255,5258,5261,5265,5270,5274,5277,5281,5286,5290,5295,5298,5301,5306,5311,5315,5318,5322,5327,5330,5335,5340,5343,5346,5350,5354,5358,5363,5367,5370,5375,5379,5382,5386,5390,5394,5397,5399,5403,5406,5409,5412,5415,5418,5421,5424,5427,5430,5434,5438,5441,5444,5447,5450,5452,5455,5459,5463,5467,5470,5474,5477,5480,5483,5485,5489,5494,5498,5502,5504,5508,5511,5518,5522,5526,5530,5536,5539,5543,5547,5550,5553,5557,5562,5568,5572,5574,5579,5582,5587,5591,5596,5600,5604,5606,5609,5612,5614,5619,5622,5625,5630,5634,5638,5643,5647,5651,5653,5655,5658,5660,5663,5666,5670,5674,5676,5680,5683,5687,5690,5692,5695,5699,5701,5705,5708,5711,5714,5718,5721,5724,5726,5729,5731,5734,5738,5741,5743,5745,5747,5749,5753,5755,5758,5763,5767,5770,5772,5775,5777,5781,5784,5787,5790,5794,5797,5802,5806,5809,5813,5816,5819,5823,5827,5829,5834,5837,5841,5844,5847,5850,5852,5855,5859,5862,5866,5869,5873,5877,5880,5883,5886,5889,5893,5895,5898,5900,5905,5906,5910,5913,5916,5919,5922,5924,5928,5931,5934,5937,5941,5943,5945,5949,5951,5954,5958,5962,5964,5968,5971,5974,5977,5980,5984,5989,5994,5998,6004,6008,6011,6015,6019,6022,6026,6030,6033,6037,6040,6044,6048,6050,6056,6059,6062,6065,6069,6072,6076,6080,6084,6086,6089,6091,6094,6096,6098,6101,6104,6107,6110,6113,6116,6118,6122,6126,6130,6134,6137,6140,6144,6147,6151,6153,6157,6161,6164,6167,6170,6173,6176,6179,6182,6185,6188,6191,6194,6197,6200,6203,6207,6210,6214,6218,6221,6224,6227,6230,6233,6236,6240,6243,6246,6252,6256,6260,6264],{"number":4913,"type":4914,"author":4915,"provisional":4886,"depends":4916,"platform":4917,"contact":4918,"extension":4919,"proposal":4886},135,"device","AMD","(((VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_KHR_synchronization2),VK_VERSION_1_3)+VK_KHR_pipeline_library+VK_KHR_spirv_1_4","provisional","Tobias Hector @tobski","VK_AMDX_shader_enqueue",{"number":4921,"type":4914,"author":4915,"provisional":4690,"contact":4922,"extension":4923,"proposal":4886},477,"Stu Smith","VK_AMD_anti_lag",{"number":4925,"type":4914,"author":4915,"provisional":4690,"specialuse":4926,"contact":4927,"extension":4928,"proposal":4690},180,"devtools","Daniel Rakos @drakos-amd","VK_AMD_buffer_marker",{"number":4930,"type":4914,"author":4915,"provisional":4690,"depends":4931,"contact":4918,"extension":4932,"proposal":4690},230,"VK_KHR_get_physical_device_properties2,VK_VERSION_1_1","VK_AMD_device_coherent_memory",{"number":4934,"type":4914,"author":4915,"provisional":4690,"depends":4935,"contact":4936,"extension":4937,"proposal":4690},214,"(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_KHR_get_surface_capabilities2+VK_KHR_swapchain","Matthaeus G. Chajdas @anteru","VK_AMD_display_native_hdr",{"number":4820,"type":4914,"author":4915,"promotedto":4939,"provisional":4690,"contact":4927,"extension":4940,"proposal":4690},"VK_KHR_draw_indirect_count","VK_AMD_draw_indirect_count",{"number":4790,"type":4914,"author":4915,"provisional":4690,"contact":4942,"extension":4943,"proposal":4690},"Dominik Witczak @dominikwitczakamd","VK_AMD_gcn_shader",{"number":4832,"type":4914,"author":4915,"deprecatedby":4945,"provisional":4690,"contact":4942,"extension":4946,"proposal":4690},"VK_KHR_shader_float16_int8","VK_AMD_gpu_shader_half_float",{"number":4948,"type":4914,"author":4915,"deprecatedby":4945,"provisional":4690,"contact":4949,"extension":4950,"proposal":4690},133,"Qun Lin @linqun","VK_AMD_gpu_shader_int16",{"number":4952,"type":4914,"author":4915,"provisional":4690,"contact":4953,"extension":4954,"proposal":4690},190,"Martin Dinkov @mdinkov","VK_AMD_memory_overallocation_behavior",{"number":4956,"type":4914,"author":4915,"provisional":4690,"contact":4936,"extension":4448,"proposal":4690},137,{"number":4828,"type":4914,"author":4915,"obsoletedby":4958,"provisional":4690,"contact":4936,"extension":4959,"proposal":4690},"VK_KHR_maintenance1","VK_AMD_negative_viewport_height",{"number":4961,"type":4914,"author":4915,"provisional":4690,"contact":4936,"extension":4962,"proposal":4690},184,"VK_AMD_pipeline_compiler_control",{"number":4762,"type":4914,"author":4915,"provisional":4690,"contact":4927,"extension":4964,"proposal":4690},"VK_AMD_rasterization_order",{"number":4836,"type":4914,"author":4915,"provisional":4690,"contact":4942,"extension":4966,"proposal":4690},"VK_AMD_shader_ballot",{"number":4968,"type":4914,"author":4915,"provisional":4690,"depends":4931,"contact":4953,"extension":4969,"proposal":4690},186,"VK_AMD_shader_core_properties",{"number":4971,"type":4914,"author":4915,"provisional":4690,"depends":4969,"contact":4936,"extension":4972,"proposal":4690},228,"VK_AMD_shader_core_properties2",{"number":4974,"type":4914,"author":4975,"provisional":4690,"depends":4931,"contact":4918,"extension":4976,"proposal":4886},322,"EXT","VK_AMD_shader_early_and_late_fragment_tests",{"number":4774,"type":4914,"author":4915,"provisional":4690,"contact":4949,"extension":4978,"proposal":4690},"VK_AMD_shader_explicit_vertex_parameter",{"number":4980,"type":4914,"author":4915,"provisional":4690,"contact":4981,"extension":4982,"proposal":4690},138,"Aaron Hagan @AaronHaganAMD","VK_AMD_shader_fragment_mask",{"number":4872,"type":4914,"author":4915,"provisional":4690,"contact":4942,"extension":4984,"proposal":4690},"VK_AMD_shader_image_load_store_lod",{"number":4856,"type":4914,"author":4915,"provisional":4690,"specialuse":4926,"contact":4986,"extension":4987,"proposal":4690},"Jaakko Konttinen @jaakkoamd","VK_AMD_shader_info",{"number":4770,"type":4914,"author":4915,"provisional":4690,"contact":4949,"extension":4989,"proposal":4690},"VK_AMD_shader_trinary_minmax",{"number":4852,"type":4914,"author":4915,"provisional":4690,"depends":4931,"contact":4991,"extension":4992,"proposal":4690},"Rex Xu @amdrexu","VK_AMD_texture_gather_bias_lod",{"number":4994,"type":4914,"author":4995,"provisional":4690,"depends":4996,"platform":4997,"specialuse":4998,"contact":4999,"extension":5000,"proposal":4886},469,"ANDROID","VK_ANDROID_external_memory_android_hardware_buffer","android","glemulation","Chris Forbes @chrisforbes","VK_ANDROID_external_format_resolve",{"number":5002,"type":4914,"author":4995,"provisional":4690,"depends":5003,"platform":4997,"contact":5004,"extension":4996,"proposal":4690},130,"((VK_KHR_sampler_ycbcr_conversion+VK_KHR_external_memory+VK_KHR_dedicated_allocation),VK_VERSION_1_1)+VK_EXT_queue_family_foreign","Jesse Hall @critsec",{"number":5006,"type":4914,"author":5007,"promotedto":5008,"provisional":4690,"depends":4931,"contact":5009,"extension":5010,"proposal":4690},343,"ARM","VK_EXT_rasterization_order_attachment_access","Jan-Harald Fredriksen @janharaldfredriksen-arm","VK_ARM_rasterization_order_attachment_access",{"number":5012,"type":4914,"author":5007,"provisional":4690,"depends":5013,"contact":5009,"extension":5014,"proposal":4886},425,"((VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_KHR_synchronization2),VK_VERSION_1_3","VK_ARM_render_pass_striped",{"number":5016,"type":4914,"author":5007,"provisional":4690,"depends":5017,"contact":5018,"extension":5019,"proposal":4690},418,"VK_ARM_shader_core_builtins","Kevin Petit @kpet","VK_ARM_scheduling_controls",{"number":5021,"type":4914,"author":5007,"provisional":4690,"depends":4931,"contact":5018,"extension":5017,"proposal":4690},498,{"number":5023,"type":4914,"author":5007,"provisional":4690,"depends":5024,"contact":5009,"extension":5025,"proposal":4690},416,"VK_VERSION_1_1","VK_ARM_shader_core_properties",{"number":5027,"type":4914,"author":4975,"promotedto":5028,"provisional":4690,"depends":4931,"ratified":5029,"contact":5030,"extension":5031,"proposal":4690},341,"VK_VERSION_1_3","vulkansc","Joshua Ashton @Joshua-Ashton","VK_EXT_4444_formats",{"number":5033,"type":5034,"author":4975,"provisional":4690,"depends":5035,"contact":5036,"extension":5037,"proposal":4690},286,"instance","VK_EXT_direct_mode_display","Drew DeVault sir@cmpwn.com","VK_EXT_acquire_drm_display",{"number":5039,"type":5034,"author":5040,"provisional":4690,"depends":5035,"platform":5041,"contact":5042,"extension":5043,"proposal":4690},90,"NV","xlib_xrandr","James Jones @cubanismo","VK_EXT_acquire_xlib_display",{"extension":5045,"proposal":4690},"VK_EXT_application_parameters",{"number":5047,"type":4914,"author":5007,"provisional":4690,"depends":4931,"contact":5009,"extension":5048,"proposal":4690},68,"VK_EXT_astc_decode_mode",{"number":5050,"type":4914,"author":4975,"provisional":4690,"depends":5051,"ratified":5052,"contact":5053,"extension":5054,"proposal":4886},525,"(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_EXT_attachment_feedback_loop_layout","vulkan","Mike Blumenkrantz @zmike","VK_EXT_attachment_feedback_loop_dynamic_state",{"number":5056,"type":4914,"author":4975,"provisional":4690,"depends":4931,"ratified":5052,"contact":5030,"extension":5057,"proposal":4886},340,"VK_EXT_attachment_feedback_loop_layout",{"number":5059,"type":4914,"author":5040,"provisional":4690,"depends":4931,"ratified":5052,"contact":5060,"extension":5061,"proposal":4690},149,"Jeff Bolz @jeffbolznv","VK_EXT_blend_operation_advanced",{"number":5063,"type":4914,"author":4975,"provisional":4690,"depends":5064,"specialuse":5065,"contact":5066,"extension":5067,"proposal":4690},412,"VK_EXT_custom_border_color","glemulation,d3demulation","Piers Daniell @pdaniell-nv","VK_EXT_border_color_swizzle",{"number":5069,"type":4914,"author":5040,"deprecatedby":5070,"provisional":4690,"depends":4931,"contact":5060,"extension":5071,"proposal":4690},245,"VK_KHR_buffer_device_address","VK_EXT_buffer_device_address",{"number":5073,"type":4914,"author":4975,"promotedto":5074,"provisional":4690,"depends":4931,"contact":4927,"extension":5075,"proposal":4886},185,"VK_KHR_calibrated_timestamps","VK_EXT_calibrated_timestamps",{"number":5077,"type":4914,"author":4975,"provisional":4690,"depends":4931,"ratified":5078,"contact":5079,"extension":5080,"proposal":4690},382,"vulkan,vulkansc","Sharif Elcott @selcott","VK_EXT_color_write_enable",{"number":5082,"type":4914,"author":5040,"provisional":4690,"depends":4931,"contact":5083,"extension":5084,"proposal":4690},82,"Vikram Kushwaha @vkushwaha","VK_EXT_conditional_rendering",{"number":5086,"type":4914,"author":5040,"provisional":4690,"depends":4931,"ratified":5052,"contact":5066,"extension":5087,"proposal":4690},102,"VK_EXT_conservative_rasterization",{"number":5089,"type":4914,"author":4975,"provisional":4690,"depends":4931,"ratified":5078,"specialuse":5065,"contact":5090,"extension":5064,"proposal":4690},288,"Liam Middlebrook @liam-middlebrook",{"number":4778,"type":4914,"author":5092,"promotedto":5093,"provisional":4690,"depends":5094,"specialuse":4882,"contact":5095,"extension":5096,"proposal":4690},"Baldur Karlsson","VK_EXT_debug_utils","VK_EXT_debug_report","Baldur Karlsson @baldurk","VK_EXT_debug_marker",{"number":4734,"type":5034,"author":5098,"deprecatedby":5093,"provisional":4690,"specialuse":4882,"contact":5099,"extension":5094,"proposal":4690},"GOOGLE","Courtney Goeltzenleuchter @courtney-g",{"number":5101,"type":5034,"author":4975,"provisional":4690,"specialuse":4882,"contact":5102,"extension":5093,"proposal":4690},129,"Mark Young @marky-lunarg",{"number":5104,"type":4914,"author":4975,"provisional":4690,"depends":4931,"ratified":5052,"specialuse":5105,"contact":5030,"extension":5106,"proposal":4886},284,"d3demulation","VK_EXT_depth_bias_control",{"number":5108,"type":4914,"author":4975,"provisional":4690,"depends":4931,"contact":5109,"extension":5110,"proposal":4690},422,"Graeme Leese @gnl21","VK_EXT_depth_clamp_zero_one",{"number":5112,"type":4914,"author":4975,"provisional":4690,"depends":4931,"ratified":5052,"specialuse":4998,"contact":5113,"extension":5114,"proposal":4690},356,"Shahbaz Youssefi @syoussefi","VK_EXT_depth_clip_control",{"number":5116,"type":4914,"author":4975,"provisional":4690,"depends":4931,"ratified":5078,"specialuse":5105,"contact":5066,"extension":5117,"proposal":4690},103,"VK_EXT_depth_clip_enable",{"number":4742,"type":4914,"author":5040,"provisional":4690,"ratified":5078,"contact":5066,"extension":3983,"proposal":4690},{"number":5120,"type":4914,"author":4975,"provisional":4690,"depends":5121,"contact":4918,"extension":5122,"proposal":4886},317,"((((VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_KHR_buffer_device_address+VK_EXT_descriptor_indexing),VK_VERSION_1_2)+VK_KHR_synchronization2),VK_VERSION_1_3","VK_EXT_descriptor_buffer",{"number":5124,"type":4914,"author":5040,"promotedto":5125,"provisional":4690,"depends":5126,"contact":5060,"extension":5127,"proposal":4690},162,"VK_VERSION_1_2","(VK_KHR_get_physical_device_properties2+VK_KHR_maintenance3),VK_VERSION_1_1","VK_EXT_descriptor_indexing",{"number":5129,"type":4914,"author":4975,"provisional":4690,"depends":5130,"specialuse":5131,"contact":5132,"extension":5133,"proposal":4690},355,"(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_EXT_debug_utils","debugging,devtools","Ralph Potter gitlab:@r_potter","VK_EXT_device_address_binding_report",{"number":5135,"type":4914,"author":4975,"provisional":4690,"depends":4931,"contact":5132,"extension":5136,"proposal":4886},342,"VK_EXT_device_fault",{"number":5138,"type":4914,"author":4975,"provisional":4690,"depends":4931,"ratified":5052,"specialuse":4926,"contact":5139,"extension":5140,"proposal":4690},285,"Yiwei Zhang @zhangyiwei","VK_EXT_device_memory_report",{"number":5142,"type":5034,"author":5040,"provisional":4690,"depends":5143,"contact":5042,"extension":5035,"proposal":4690},89,"VK_KHR_display",{"number":5145,"type":5034,"author":4975,"provisional":4690,"depends":5146,"platform":5147,"contact":5148,"extension":5149,"proposal":4690},347,"VK_KHR_surface","directfb","Nicolas Caramelli @caramelli","VK_EXT_directfb_surface",{"number":5151,"type":4914,"author":5040,"provisional":4690,"depends":4931,"ratified":5078,"contact":5066,"extension":5152,"proposal":4690},100,"VK_EXT_discard_rectangles",{"number":5154,"type":4914,"author":5040,"provisional":4690,"depends":5155,"ratified":5052,"contact":5042,"extension":5156,"proposal":4690},92,"VK_EXT_display_surface_counter+VK_KHR_swapchain","VK_EXT_display_control",{"number":5158,"type":5034,"author":5040,"provisional":4690,"depends":5143,"ratified":5052,"contact":5042,"extension":5159,"proposal":4690},91,"VK_EXT_display_surface_counter",{"number":5161,"type":4914,"author":4975,"provisional":4690,"depends":5162,"ratified":5052,"contact":5066,"extension":5163,"proposal":4886},500,"((VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_KHR_dynamic_rendering),VK_VERSION_1_3","VK_EXT_dynamic_rendering_unused_attachments",{"number":5165,"type":4914,"author":4975,"promotedto":5028,"provisional":4690,"depends":4931,"ratified":5029,"contact":5066,"extension":5166,"proposal":4690},268,"VK_EXT_extended_dynamic_state",{"number":5168,"type":4914,"author":4975,"promotedto":5028,"provisional":4690,"depends":4931,"ratified":5029,"contact":5169,"extension":5170,"proposal":4690},378,"Vikram Kushwaha @vkushwaha-nv","VK_EXT_extended_dynamic_state2",{"number":5172,"type":4914,"author":5040,"provisional":4690,"depends":4931,"ratified":5052,"contact":5066,"extension":5173,"proposal":4886},456,"VK_EXT_extended_dynamic_state3",{"number":5175,"type":4914,"author":4975,"provisional":4690,"depends":5176,"ratified":5052,"contact":5177,"extension":5178,"proposal":4886},454,"VK_KHR_external_memory,VK_VERSION_1_1","Lina Versace @versalinyaa","VK_EXT_external_memory_acquire_unmodified",{"number":5180,"type":4914,"author":4975,"provisional":4690,"depends":5181,"ratified":5078,"contact":5177,"extension":5182,"proposal":4690},126,"VK_KHR_external_memory_fd","VK_EXT_external_memory_dma_buf",{"number":5184,"type":4914,"author":4975,"provisional":4690,"depends":5176,"ratified":5078,"contact":4927,"extension":5185,"proposal":4690},179,"VK_EXT_external_memory_host",{"number":5187,"type":4914,"author":5188,"provisional":4690,"ratified":5052,"contact":5189,"extension":5190,"proposal":4690},171,"QCOM","Matthew Netsch @mnetsch","VK_EXT_filter_cubic",{"number":5192,"type":4914,"author":4975,"provisional":4690,"depends":4931,"contact":5189,"extension":5193,"proposal":4690},219,"VK_EXT_fragment_density_map",{"number":5195,"type":4914,"author":4975,"provisional":4690,"depends":5193,"contact":5189,"extension":5196,"proposal":4690},333,"VK_EXT_fragment_density_map2",{"number":5198,"type":4914,"author":4975,"provisional":4690,"depends":4931,"contact":5066,"extension":5199,"proposal":4690},252,"VK_EXT_fragment_shader_interlock",{"number":5201,"type":4914,"author":4975,"provisional":4690,"ratified":5052,"contact":5202,"extension":5203,"proposal":4886},376,"James Fitzpatrick @jamesfitzpatrick","VK_EXT_frame_boundary",{"number":5205,"type":4914,"author":4975,"provisional":4690,"depends":5206,"platform":5207,"ratified":5052,"contact":5042,"extension":5208,"proposal":4690},256,"(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_KHR_surface+VK_KHR_get_surface_capabilities2+VK_KHR_swapchain","win32","VK_EXT_full_screen_exclusive",{"number":5210,"type":4914,"author":4975,"promotedto":5211,"provisional":4690,"contact":5212,"extension":5213,"proposal":4690},175,"VK_KHR_global_priority","Andres Rodriguez @lostgoat","VK_EXT_global_priority",{"number":5215,"type":4914,"author":4975,"promotedto":5211,"provisional":4690,"depends":5216,"contact":5139,"extension":5217,"proposal":4690},389,"VK_EXT_global_priority+(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)","VK_EXT_global_priority_query",{"number":5219,"type":4914,"author":4915,"provisional":4690,"depends":5220,"contact":4918,"extension":5221,"proposal":4886},321,"(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_KHR_pipeline_library","VK_EXT_graphics_pipeline_library",{"number":5223,"type":4914,"author":5098,"provisional":4690,"depends":5224,"ratified":5078,"contact":5099,"extension":5225,"proposal":4690},106,"VK_KHR_swapchain","VK_EXT_hdr_metadata",{"number":5227,"type":5034,"author":4975,"provisional":4690,"depends":5146,"contact":5228,"extension":5229,"proposal":4690},257,"Lisa Wu @chengtianww","VK_EXT_headless_surface",{"number":5231,"type":4914,"author":4975,"provisional":4690,"depends":5232,"ratified":5052,"contact":5113,"extension":5233,"proposal":4886},271,"((VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_KHR_copy_commands2+VK_KHR_format_feature_flags2),VK_VERSION_1_3","VK_EXT_host_image_copy",{"number":5235,"type":4914,"author":4975,"promotedto":5125,"provisional":4690,"depends":4931,"contact":5236,"extension":5237,"proposal":4690},262,"Bas Nieuwenhuizen @BNieuwenhuizen","VK_EXT_host_query_reset",{"number":5239,"type":4914,"author":4975,"provisional":4690,"depends":5240,"specialuse":4998,"contact":5053,"extension":5241,"proposal":4690},394,"(VK_KHR_maintenance1+VK_KHR_get_physical_device_properties2),VK_VERSION_1_1","VK_EXT_image_2d_view_of_3d",{"number":5243,"type":4914,"author":4975,"provisional":4690,"depends":4931,"contact":5009,"extension":5244,"proposal":4886},339,"VK_EXT_image_compression_control",{"number":5246,"type":4914,"author":4975,"provisional":4690,"depends":5244,"contact":5009,"extension":5247,"proposal":4690},438,"VK_EXT_image_compression_control_swapchain",{"number":5249,"type":4914,"author":4975,"provisional":4690,"depends":5250,"ratified":5052,"contact":5177,"extension":5251,"proposal":4690},159,"(((VK_KHR_bind_memory2+VK_KHR_get_physical_device_properties2+VK_KHR_sampler_ycbcr_conversion),VK_VERSION_1_1)+VK_KHR_image_format_list),VK_VERSION_1_2","VK_EXT_image_drm_format_modifier",{"number":5253,"type":4914,"author":4975,"promotedto":5028,"provisional":4690,"depends":4931,"ratified":5029,"contact":5109,"extension":5254,"proposal":4690},336,"VK_EXT_image_robustness",{"number":5256,"type":4914,"author":4975,"provisional":4690,"depends":5240,"specialuse":5105,"contact":5053,"extension":5257,"proposal":4886},419,"VK_EXT_image_sliced_view_of_3d",{"number":5259,"type":4914,"author":4975,"provisional":4690,"depends":4931,"contact":5030,"extension":5260,"proposal":4690},392,"VK_EXT_image_view_min_lod",{"number":5262,"type":4914,"author":4975,"promotedto":5263,"provisional":4690,"depends":4931,"contact":5066,"extension":5264,"proposal":4690},266,"VK_KHR_index_type_uint8","VK_EXT_index_type_uint8",{"number":5266,"type":4914,"author":4975,"promotedto":5028,"provisional":4690,"depends":5267,"contact":5268,"extension":5269,"proposal":4690},139,"(VK_KHR_get_physical_device_properties2+VK_KHR_maintenance1),VK_VERSION_1_1","Daniel Rakos @aqnuep","VK_EXT_inline_uniform_block",{"number":5271,"type":5034,"author":4975,"provisional":4690,"ratified":5052,"contact":5272,"extension":5273,"proposal":4886},497,"Christophe Riccio @christophe","VK_EXT_layer_settings",{"number":5275,"type":4914,"author":4975,"provisional":4690,"depends":4931,"specialuse":4998,"contact":5113,"extension":5276,"proposal":4886},466,"VK_EXT_legacy_dithering",{"number":5278,"type":4914,"author":4975,"provisional":4690,"depends":5279,"ratified":5052,"specialuse":4998,"contact":5053,"extension":5280,"proposal":4886},496,"VK_EXT_vertex_input_dynamic_state","VK_EXT_legacy_vertex_attributes",{"number":5282,"type":4914,"author":4975,"promotedto":5283,"provisional":4690,"depends":4931,"specialuse":5284,"contact":5060,"extension":5285,"proposal":4690},260,"VK_KHR_line_rasterization","cadsupport","VK_EXT_line_rasterization",{"number":5287,"type":4914,"author":4975,"promotedto":5288,"provisional":4690,"ratified":5052,"contact":5113,"extension":5289,"proposal":4690},401,"VK_KHR_load_store_op_none","VK_EXT_load_store_op_none",{"number":5291,"type":4914,"author":4975,"provisional":4690,"depends":5292,"ratified":5052,"contact":5293,"extension":5294,"proposal":4886},273,"VK_KHR_map_memory2","Faith Ekstrand @gfxstrand","VK_EXT_map_memory_placed",{"number":5296,"type":4914,"author":4975,"provisional":4690,"depends":4931,"ratified":5052,"contact":5060,"extension":5297,"proposal":4690},238,"VK_EXT_memory_budget",{"number":5299,"type":4914,"author":4975,"provisional":4690,"depends":4931,"ratified":5052,"contact":5060,"extension":5300,"proposal":4690},239,"VK_EXT_memory_priority",{"number":5302,"type":4914,"author":4975,"provisional":4690,"depends":5303,"contact":5304,"extension":5305,"proposal":4886},329,"VK_KHR_spirv_1_4","Christoph Kubisch @pixeljetstream","VK_EXT_mesh_shader",{"number":5307,"type":4914,"author":4975,"provisional":4690,"platform":5308,"contact":5309,"extension":5310,"proposal":4886},312,"metal","Bill Hollings @billhollings","VK_EXT_metal_objects",{"number":5312,"type":5034,"author":4975,"provisional":4690,"depends":5146,"platform":5308,"contact":5313,"extension":5314,"proposal":4690},218,"Dzmitry Malyshau @kvark","VK_EXT_metal_surface",{"number":5316,"type":4914,"author":4975,"provisional":4690,"depends":4931,"contact":5053,"extension":5317,"proposal":4690},393,"VK_EXT_multi_draw",{"number":5319,"type":4914,"author":4975,"provisional":4690,"depends":5320,"contact":5113,"extension":5321,"proposal":4886},377,"(VK_KHR_create_renderpass2+VK_KHR_depth_stencil_resolve),VK_VERSION_1_2","VK_EXT_multisampled_render_to_single_sampled",{"number":5323,"type":4914,"author":4975,"provisional":4690,"depends":5324,"specialuse":5105,"contact":5325,"extension":5326,"proposal":4886},495,"VK_KHR_maintenance3","Joshua Ashton @Joshua-Ashton,Hans-Kristian Arntzen @HansKristian-Work","VK_EXT_mutable_descriptor_type",{"number":5328,"type":4914,"author":4975,"provisional":4690,"depends":4931,"ratified":5052,"contact":5066,"extension":5329,"proposal":4690},452,"VK_EXT_nested_command_buffer",{"number":5331,"type":4914,"author":4975,"provisional":4690,"depends":4931,"specialuse":5332,"contact":5333,"extension":5334,"proposal":4886},423,"d3demulation,glemulation","Georg Lehmann @DadSchoorse","VK_EXT_non_seamless_cube_map",{"number":5336,"type":4914,"author":4975,"provisional":4690,"depends":5337,"ratified":5052,"contact":5338,"extension":5339,"proposal":4886},397,"VK_KHR_acceleration_structure+(VK_KHR_synchronization2,VK_VERSION_1_3)","Christoph Kubisch @pixeljetstream, Eric Werness","VK_EXT_opacity_micromap",{"number":5341,"type":4914,"author":4975,"provisional":4690,"depends":5300,"contact":5066,"extension":5342,"proposal":4690},413,"VK_EXT_pageable_device_local_memory",{"number":5344,"type":4914,"author":4975,"provisional":4690,"depends":4931,"ratified":5078,"contact":4936,"extension":5345,"proposal":4690},213,"VK_EXT_pci_bus_info",{"number":5347,"type":4914,"author":4975,"provisional":4690,"depends":4931,"contact":5348,"extension":5349,"proposal":4690},354,"Simon Ser @emersion","VK_EXT_physical_device_drm",{"number":5351,"type":4914,"author":4915,"promotedto":5028,"provisional":4690,"depends":4931,"contact":5352,"extension":5353,"proposal":4690},298,"Gregory Grebe @grgrebe_amd","VK_EXT_pipeline_creation_cache_control",{"number":5355,"type":4914,"author":5098,"promotedto":5028,"provisional":4690,"specialuse":4926,"contact":5356,"extension":5357,"proposal":4690},193,"Jean-Francois Roy @jfroy","VK_EXT_pipeline_creation_feedback",{"number":5359,"type":4914,"author":4975,"provisional":4690,"depends":5360,"contact":5361,"extension":5362,"proposal":4886},499,"VK_KHR_ray_tracing_pipeline+VK_KHR_pipeline_library","Hans-Kristian Arntzen @HansKristian-Work","VK_EXT_pipeline_library_group_handles",{"number":5364,"type":4914,"author":4975,"provisional":4690,"depends":4931,"contact":5365,"extension":5366,"proposal":4690},373,"Mukund Keshava @mkeshavanv","VK_EXT_pipeline_properties",{"number":5368,"type":4914,"author":4975,"provisional":4690,"depends":4931,"contact":5113,"extension":5369,"proposal":4886},467,"VK_EXT_pipeline_protected_access",{"number":5371,"type":4914,"author":5372,"provisional":4690,"depends":4931,"contact":5373,"extension":5374,"proposal":4690},69,"IMG","Jarred Davies","VK_EXT_pipeline_robustness",{"number":5376,"type":4914,"author":5040,"provisional":4690,"ratified":5052,"contact":5377,"extension":5378,"proposal":4690},156,"Daniel Koch @dgkoch","VK_EXT_post_depth_coverage",{"number":5380,"type":4914,"author":4975,"provisional":4690,"depends":4931,"ratified":5052,"specialuse":4998,"contact":5113,"extension":5381,"proposal":4690},357,"VK_EXT_primitive_topology_list_restart",{"number":5383,"type":4914,"author":4975,"provisional":4690,"depends":5384,"specialuse":4998,"contact":5113,"extension":5385,"proposal":4886},383,"VK_EXT_transform_feedback","VK_EXT_primitives_generated_query",{"number":5387,"type":4914,"author":5040,"promotedto":5028,"provisional":4690,"depends":4931,"contact":5388,"extension":5389,"proposal":4690},296,"Matthew Rusch @mattruschnv","VK_EXT_private_data",{"number":5391,"type":4914,"author":4975,"provisional":4690,"depends":4931,"ratified":5052,"specialuse":4998,"contact":5392,"extension":5393,"proposal":4690},255,"Jesse Hall @jessehall","VK_EXT_provoking_vertex",{"number":5395,"type":4914,"author":4975,"provisional":4690,"depends":5176,"ratified":5078,"contact":5177,"extension":5396,"proposal":4690},127,"VK_EXT_queue_family_foreign",{"number":5398,"type":4914,"author":5007,"provisional":4690,"depends":4931,"contact":5009,"extension":5008,"proposal":4886},464,{"number":5400,"type":4914,"author":4975,"provisional":4690,"depends":5401,"contact":5009,"extension":5402,"proposal":4690},345,"VK_KHR_sampler_ycbcr_conversion,VK_VERSION_1_1","VK_EXT_rgba10x6_formats",{"number":5404,"type":4914,"author":4975,"provisional":4690,"depends":4931,"ratified":5078,"contact":5090,"extension":5405,"proposal":4690},287,"VK_EXT_robustness2",{"number":5407,"type":4914,"author":4915,"provisional":4690,"depends":4931,"ratified":5078,"contact":4927,"extension":5408,"proposal":4690},144,"VK_EXT_sample_locations",{"number":5410,"type":4914,"author":5040,"promotedto":5125,"provisional":4690,"depends":4931,"contact":5060,"extension":5411,"proposal":4690},131,"VK_EXT_sampler_filter_minmax",{"number":5413,"type":4914,"author":4975,"promotedto":5125,"provisional":4690,"depends":4931,"contact":4918,"extension":5414,"proposal":4690},222,"VK_EXT_scalar_block_layout",{"number":5416,"type":4914,"author":4975,"promotedto":5125,"provisional":4690,"contact":4927,"extension":5417,"proposal":4690},247,"VK_EXT_separate_stencil_usage",{"number":5419,"type":4914,"author":5040,"provisional":4690,"depends":4931,"ratified":5078,"contact":5169,"extension":5420,"proposal":4690},261,"VK_EXT_shader_atomic_float",{"number":5422,"type":4914,"author":4975,"provisional":4690,"depends":5420,"ratified":5052,"contact":5293,"extension":5423,"proposal":4690},274,"VK_EXT_shader_atomic_float2",{"number":5425,"type":4914,"author":4975,"promotedto":5028,"provisional":4690,"depends":4931,"ratified":5029,"contact":5060,"extension":5426,"proposal":4690},277,"VK_EXT_shader_demote_to_helper_invocation",{"number":5428,"type":4914,"author":4975,"provisional":4690,"depends":4931,"ratified":5052,"contact":4918,"extension":5429,"proposal":4690},235,"VK_EXT_shader_image_atomic_int64",{"number":5431,"type":4914,"author":4975,"provisional":4690,"depends":5432,"contact":5361,"extension":5433,"proposal":4886},463,"((VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_EXT_pipeline_creation_cache_control),VK_VERSION_1_3","VK_EXT_shader_module_identifier",{"number":5435,"type":4914,"author":4975,"provisional":4690,"depends":5162,"ratified":5052,"contact":5436,"extension":5437,"proposal":4886},483,"Daniel Story @daniel-story","VK_EXT_shader_object",{"number":5439,"type":4914,"author":4975,"provisional":4690,"ratified":5052,"contact":5018,"extension":5440,"proposal":4886},565,"VK_EXT_shader_replicated_composites",{"number":5442,"type":4914,"author":4975,"provisional":4690,"ratified":5078,"contact":4942,"extension":5443,"proposal":4690},141,"VK_EXT_shader_stencil_export",{"number":5445,"type":4914,"author":5040,"deprecatedby":5125,"provisional":4690,"contact":5377,"extension":5446,"proposal":4690},65,"VK_EXT_shader_subgroup_ballot",{"number":5448,"type":4914,"author":5040,"deprecatedby":5024,"provisional":4690,"contact":5377,"extension":5449,"proposal":4690},66,"VK_EXT_shader_subgroup_vote",{"number":5451,"type":4914,"author":4975,"provisional":4690,"depends":5028,"ratified":5052,"contact":5009,"extension":2134,"proposal":4886},396,{"number":5453,"type":4914,"author":5040,"promotedto":5125,"provisional":4690,"contact":5377,"extension":5454,"proposal":4690},163,"VK_EXT_shader_viewport_index_layer",{"number":5456,"type":4914,"author":4975,"promotedto":5028,"provisional":4690,"depends":5024,"ratified":5029,"contact":5457,"extension":5458,"proposal":4690},226,"Neil Henning @sheredom","VK_EXT_subgroup_size_control",{"number":5460,"type":4914,"author":4975,"provisional":4690,"depends":4931,"contact":5461,"extension":5462,"proposal":4886},459,"Ting Wei @catweiting","VK_EXT_subpass_merge_feedback",{"number":5464,"type":5034,"author":4975,"provisional":4690,"depends":5465,"contact":5113,"extension":5466,"proposal":4886},275,"VK_KHR_surface+VK_KHR_get_surface_capabilities2","VK_EXT_surface_maintenance1",{"number":5468,"type":5034,"author":5098,"provisional":4690,"depends":5146,"contact":5099,"extension":5469,"proposal":4690},105,"VK_EXT_swapchain_colorspace",{"number":5471,"type":4914,"author":4975,"provisional":4690,"depends":5472,"contact":5113,"extension":5473,"proposal":4886},276,"VK_KHR_swapchain+VK_EXT_surface_maintenance1+(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)","VK_EXT_swapchain_maintenance1",{"number":5475,"type":4914,"author":4975,"promotedto":5028,"provisional":4690,"depends":4931,"ratified":5029,"contact":5060,"extension":5476,"proposal":4690},282,"VK_EXT_texel_buffer_alignment",{"number":5478,"type":4914,"author":5007,"promotedto":5028,"provisional":4690,"depends":4931,"ratified":5029,"contact":5009,"extension":5479,"proposal":4690},67,"VK_EXT_texture_compression_astc_hdr",{"number":5481,"type":4914,"author":4975,"promotedto":5028,"provisional":4690,"contact":4918,"extension":5482,"proposal":4690},246,"VK_EXT_tooling_info",{"number":4800,"type":4914,"author":5040,"provisional":4690,"depends":4931,"ratified":5052,"specialuse":5484,"contact":5066,"extension":5384,"proposal":4690},"glemulation,d3demulation,devtools",{"number":5486,"type":4914,"author":5098,"provisional":4690,"contact":5487,"extension":5488,"proposal":4690},161,"Cort Stratton @cdwfs","VK_EXT_validation_cache",{"number":5490,"type":5034,"author":5491,"deprecatedby":5273,"provisional":4690,"specialuse":4882,"contact":5492,"extension":5493,"proposal":4690},248,"LUNARG","Karl Schultz @karl-lunarg","VK_EXT_validation_features",{"number":5495,"type":5034,"author":5098,"deprecatedby":5273,"provisional":4690,"specialuse":4882,"contact":5496,"extension":5497,"proposal":4690},62,"Tobin Ehlis @tobine","VK_EXT_validation_flags",{"number":5499,"type":4914,"author":5040,"promotedto":5500,"provisional":4690,"depends":4931,"contact":5083,"extension":5501,"proposal":4690},191,"VK_KHR_vertex_attribute_divisor","VK_EXT_vertex_attribute_divisor",{"number":5503,"type":4914,"author":4975,"provisional":4690,"depends":4931,"ratified":5052,"contact":5066,"extension":5279,"proposal":4690},353,{"number":5505,"type":4914,"author":4975,"promotedto":5028,"provisional":4690,"depends":5401,"ratified":5029,"contact":5506,"extension":5507,"proposal":4690},331,"Tony Zlatinski @tzlatinski","VK_EXT_ycbcr_2plane_444_formats",{"number":5509,"type":4914,"author":4975,"provisional":4690,"depends":5401,"ratified":5078,"contact":5066,"extension":5510,"proposal":4690},253,"VK_EXT_ycbcr_image_arrays",{"number":5512,"type":4914,"author":5513,"provisional":4690,"depends":5514,"platform":5515,"contact":5516,"extension":5517,"proposal":4690},367,"FUCHSIA","VK_FUCHSIA_external_memory+(VK_KHR_sampler_ycbcr_conversion,VK_VERSION_1_1)","fuchsia","John Rosasco @rosasco","VK_FUCHSIA_buffer_collection",{"number":5519,"type":4914,"author":5513,"provisional":4690,"depends":5520,"platform":5515,"contact":5516,"extension":5521,"proposal":4690},365,"(VK_KHR_external_memory_capabilities+VK_KHR_external_memory),VK_VERSION_1_1","VK_FUCHSIA_external_memory",{"number":5523,"type":4914,"author":5513,"provisional":4690,"depends":5524,"platform":5515,"contact":5516,"extension":5525,"proposal":4690},366,"VK_KHR_external_semaphore_capabilities+VK_KHR_external_semaphore","VK_FUCHSIA_external_semaphore",{"number":5527,"type":5034,"author":5513,"provisional":4690,"depends":5146,"platform":5515,"contact":5528,"extension":5529,"proposal":4690},215,"Craig Stout @cdotstout","VK_FUCHSIA_imagepipe_surface",{"number":5531,"type":4914,"author":5532,"provisional":4690,"depends":5533,"platform":5534,"contact":5356,"extension":5535,"proposal":4690},192,"GGP","VK_KHR_swapchain+VK_GGP_stream_descriptor_surface","ggp","VK_GGP_frame_token",{"number":5537,"type":5034,"author":5532,"provisional":4690,"depends":5146,"platform":5534,"contact":5356,"extension":5538,"proposal":4690},50,"VK_GGP_stream_descriptor_surface",{"number":5540,"type":4914,"author":5098,"provisional":4690,"contact":5541,"extension":5542,"proposal":4690},225,"Hai Nguyen @chaoticbob","VK_GOOGLE_decorate_string",{"number":5544,"type":4914,"author":5098,"provisional":4690,"depends":5224,"contact":5545,"extension":5546,"proposal":4690},93,"Ian Elliott @ianelliottus","VK_GOOGLE_display_timing",{"number":5548,"type":4914,"author":5098,"provisional":4690,"contact":5541,"extension":5549,"proposal":4690},224,"VK_GOOGLE_hlsl_functionality1",{"number":5551,"type":5034,"author":5098,"provisional":4690,"depends":5146,"specialuse":4998,"contact":5113,"extension":5552,"proposal":4886},434,"VK_GOOGLE_surfaceless_query",{"number":5554,"type":4914,"author":5098,"provisional":4690,"contact":5555,"extension":5556,"proposal":4690},290,"Kaye Mason @chaleur","VK_GOOGLE_user_type",{"number":5558,"type":4914,"author":5559,"provisional":4690,"depends":4931,"contact":5560,"extension":5561,"proposal":4886},405,"HUAWEI","Yuchang Wang @richard_Wang2","VK_HUAWEI_cluster_culling_shader",{"number":5563,"type":4914,"author":5564,"provisional":4690,"depends":5565,"contact":5566,"extension":5567,"proposal":4886},371,"Huawei","VK_KHR_ray_tracing_pipeline+(VK_KHR_synchronization2,VK_VERSION_1_3)","Pan Gao @PanGao-h","VK_HUAWEI_invocation_mask",{"number":5569,"type":4914,"author":5559,"provisional":4690,"depends":5570,"contact":5566,"extension":5571,"proposal":4690},370,"((VK_KHR_create_renderpass2,VK_VERSION_1_2)+VK_KHR_synchronization2),VK_VERSION_1_3","VK_HUAWEI_subpass_shading",{"number":4750,"type":4914,"author":5372,"provisional":4690,"contact":4918,"extension":5573,"proposal":4690},"VK_IMG_filter_cubic",{"number":5575,"type":4914,"author":5372,"deprecatedby":5576,"provisional":4690,"contact":5577,"extension":5578,"proposal":4690},55,null,"Stuart Smith","VK_IMG_format_pvrtc",{"number":5580,"type":4914,"author":5372,"provisional":4690,"depends":4931,"specialuse":4998,"contact":5202,"extension":5581,"proposal":4690},111,"VK_IMG_relaxed_line_rasterization",{"number":5583,"type":4914,"author":5584,"provisional":4690,"specialuse":4926,"contact":5585,"extension":5586,"proposal":4690},211,"INTEL","Lionel Landwerlin @llandwerlin","VK_INTEL_performance_query",{"number":5588,"type":4914,"author":5584,"provisional":4690,"depends":4931,"contact":5589,"extension":5590,"proposal":4690},210,"Ian Romanick @ianromanick","VK_INTEL_shader_integer_functions2",{"number":5592,"type":4914,"author":5593,"promotedto":5024,"provisional":4690,"depends":5594,"ratified":5052,"contact":5009,"extension":5595,"proposal":4690},84,"KHR","(VK_KHR_get_physical_device_properties2+VK_KHR_storage_buffer_storage_class),VK_VERSION_1_1","VK_KHR_16bit_storage",{"number":5597,"type":4914,"author":5593,"promotedto":5125,"provisional":4690,"depends":5594,"ratified":5052,"contact":5598,"extension":5599,"proposal":4690},178,"Alexander Galazin @alegal-arm","VK_KHR_8bit_storage",{"number":5601,"type":4914,"author":5593,"provisional":4690,"depends":5602,"ratified":5052,"contact":5377,"extension":5603,"proposal":4690},151,"((VK_VERSION_1_1+VK_EXT_descriptor_indexing+VK_KHR_buffer_device_address),VK_VERSION_1_2)+VK_KHR_deferred_host_operations","VK_KHR_acceleration_structure",{"number":4722,"type":5034,"author":5593,"provisional":4690,"depends":5146,"platform":4997,"ratified":5052,"contact":5004,"extension":5605,"proposal":4690},"VK_KHR_android_surface",{"number":5607,"type":4914,"author":5593,"promotedto":5024,"provisional":4690,"ratified":5052,"contact":4918,"extension":5608,"proposal":4690},158,"VK_KHR_bind_memory2",{"number":5610,"type":4914,"author":5593,"promotedto":5125,"provisional":4690,"depends":5611,"ratified":5052,"contact":5060,"extension":5070,"proposal":4690},258,"(VK_KHR_get_physical_device_properties2+VK_KHR_device_group),VK_VERSION_1_1",{"number":5613,"type":4914,"author":5593,"provisional":4690,"depends":4931,"ratified":5078,"contact":5268,"extension":5074,"proposal":4690},544,{"number":5615,"type":4914,"author":5593,"provisional":4690,"depends":5616,"ratified":5052,"contact":5617,"extension":5618,"proposal":4886},512,"VK_KHR_get_physical_device_properties2","Jean-Noe Morissette @MagicPoncho","VK_KHR_compute_shader_derivatives",{"number":5620,"type":4914,"author":5593,"provisional":4690,"depends":4931,"ratified":5052,"contact":5018,"extension":5621,"proposal":4886},507,"VK_KHR_cooperative_matrix",{"number":5623,"type":4914,"author":5593,"promotedto":5028,"provisional":4690,"depends":4931,"ratified":5078,"contact":5189,"extension":5624,"proposal":4690},338,"VK_KHR_copy_commands2",{"number":5626,"type":4914,"author":5593,"promotedto":5125,"provisional":4690,"depends":5627,"ratified":5052,"contact":5628,"extension":5629,"proposal":4690},110,"(VK_KHR_multiview+VK_KHR_maintenance2),VK_VERSION_1_1","Tobias Hector @tobias","VK_KHR_create_renderpass2",{"number":5631,"type":4914,"author":5593,"promotedto":5024,"provisional":4690,"depends":5632,"ratified":5052,"contact":5042,"extension":5633,"proposal":4690},128,"VK_KHR_get_memory_requirements2,VK_VERSION_1_1","VK_KHR_dedicated_allocation",{"number":5635,"type":4914,"author":5593,"provisional":4690,"ratified":5052,"contact":5636,"extension":5637,"proposal":4690},269,"Josh Barczak @jbarczak","VK_KHR_deferred_host_operations",{"number":5639,"type":4914,"author":5593,"promotedto":5125,"provisional":4690,"depends":5640,"ratified":5052,"contact":5641,"extension":5642,"proposal":4690},200,"VK_KHR_create_renderpass2,VK_VERSION_1_2","Jan-Harald Fredriksen @janharald","VK_KHR_depth_stencil_resolve",{"number":5644,"type":4914,"author":5593,"promotedto":5024,"provisional":4690,"ratified":5052,"contact":5645,"extension":5646,"proposal":4690},86,"Markus Tavenrath @mtavenrath","VK_KHR_descriptor_update_template",{"number":5648,"type":4914,"author":5593,"promotedto":5024,"provisional":4690,"depends":5649,"ratified":5052,"contact":5060,"extension":5650,"proposal":4690},61,"VK_KHR_device_group_creation","VK_KHR_device_group",{"number":5652,"type":5034,"author":5593,"promotedto":5024,"provisional":4690,"ratified":5052,"contact":5060,"extension":5649,"proposal":4690},71,{"number":4661,"type":5034,"author":5593,"provisional":4690,"depends":5146,"ratified":5078,"contact":5654,"extension":5143,"proposal":4690},"James Jones @cubanismo,Norbert Nopper @FslNopper",{"number":4702,"type":4914,"author":5593,"provisional":4690,"depends":5656,"ratified":5078,"contact":5042,"extension":5657,"proposal":4690},"VK_KHR_swapchain+VK_KHR_display","VK_KHR_display_swapchain",{"number":5659,"type":4914,"author":5593,"promotedto":5125,"provisional":4690,"ratified":5052,"contact":5066,"extension":4939,"proposal":4690},170,{"number":5661,"type":4914,"author":5593,"promotedto":5125,"provisional":4690,"depends":4931,"ratified":5052,"contact":4927,"extension":5662,"proposal":4690},197,"VK_KHR_driver_properties",{"number":4864,"type":4914,"author":5593,"promotedto":5028,"provisional":4690,"depends":5664,"ratified":5052,"contact":4918,"extension":5665,"proposal":4886},"((VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_KHR_depth_stencil_resolve),VK_VERSION_1_2","VK_KHR_dynamic_rendering",{"number":5667,"type":4914,"author":4915,"provisional":4690,"depends":5668,"ratified":5052,"contact":4918,"extension":5669,"proposal":4886},233,"VK_KHR_dynamic_rendering,VK_VERSION_1_3","VK_KHR_dynamic_rendering_local_read",{"number":5671,"type":4914,"author":5593,"promotedto":5024,"provisional":4690,"depends":5672,"ratified":5052,"contact":5004,"extension":5673,"proposal":4690},114,"VK_KHR_external_fence_capabilities","VK_KHR_external_fence",{"number":5675,"type":5034,"author":5593,"promotedto":5024,"provisional":4690,"depends":4931,"ratified":5052,"contact":5004,"extension":5672,"proposal":4690},113,{"number":5677,"type":4914,"author":5593,"provisional":4690,"depends":5678,"ratified":5078,"contact":5004,"extension":5679,"proposal":4690},116,"VK_KHR_external_fence,VK_VERSION_1_1","VK_KHR_external_fence_fd",{"number":5681,"type":4914,"author":5593,"provisional":4690,"depends":5673,"platform":5207,"ratified":5052,"contact":5004,"extension":5682,"proposal":4690},115,"VK_KHR_external_fence_win32",{"number":5684,"type":4914,"author":5593,"promotedto":5024,"provisional":4690,"depends":5685,"ratified":5052,"contact":5042,"extension":5686,"proposal":4690},73,"VK_KHR_external_memory_capabilities,VK_VERSION_1_1","VK_KHR_external_memory",{"number":5688,"type":5034,"author":5593,"promotedto":5024,"provisional":4690,"depends":4931,"ratified":5052,"contact":5042,"extension":5689,"proposal":4690},72,"VK_KHR_external_memory_capabilities",{"number":5691,"type":4914,"author":5593,"provisional":4690,"depends":5176,"ratified":5078,"contact":5042,"extension":5181,"proposal":4690},75,{"number":5693,"type":4914,"author":5593,"provisional":4690,"depends":5176,"platform":5207,"ratified":5052,"contact":5042,"extension":5694,"proposal":4690},74,"VK_KHR_external_memory_win32",{"number":5696,"type":4914,"author":5593,"promotedto":5024,"provisional":4690,"depends":5697,"ratified":5052,"contact":5042,"extension":5698,"proposal":4690},78,"VK_KHR_external_semaphore_capabilities","VK_KHR_external_semaphore",{"number":5700,"type":5034,"author":5593,"promotedto":5024,"provisional":4690,"depends":4931,"ratified":5052,"contact":5042,"extension":5697,"proposal":4690},77,{"number":5702,"type":4914,"author":5593,"provisional":4690,"depends":5703,"ratified":5078,"contact":5042,"extension":5704,"proposal":4690},80,"VK_KHR_external_semaphore,VK_VERSION_1_1","VK_KHR_external_semaphore_fd",{"number":5706,"type":4914,"author":5593,"provisional":4690,"depends":5698,"platform":5207,"ratified":5052,"contact":5042,"extension":5707,"proposal":4690},79,"VK_KHR_external_semaphore_win32",{"number":5709,"type":4914,"author":5593,"promotedto":5028,"provisional":4690,"depends":4931,"ratified":5052,"contact":5585,"extension":5710,"proposal":4690},361,"VK_KHR_format_feature_flags2",{"number":5712,"type":4914,"author":5593,"provisional":4690,"depends":4931,"ratified":5052,"contact":4922,"extension":5713,"proposal":4886},323,"VK_KHR_fragment_shader_barycentric",{"number":5715,"type":4914,"author":5593,"provisional":4690,"depends":5716,"ratified":5078,"contact":4918,"extension":5717,"proposal":4886},227,"((VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_KHR_create_renderpass2),VK_VERSION_1_2","VK_KHR_fragment_shading_rate",{"number":5719,"type":5034,"author":5593,"provisional":4690,"depends":5143,"ratified":5078,"contact":5042,"extension":5720,"proposal":4690},122,"VK_KHR_get_display_properties2",{"number":5722,"type":4914,"author":5593,"promotedto":5024,"provisional":4690,"ratified":5052,"contact":5293,"extension":5723,"proposal":4690},147,"VK_KHR_get_memory_requirements2",{"number":5725,"type":5034,"author":5593,"promotedto":5024,"provisional":4690,"ratified":5052,"contact":5060,"extension":5616,"proposal":4690},60,{"number":5727,"type":5034,"author":5593,"provisional":4690,"depends":5146,"ratified":5078,"contact":5042,"extension":5728,"proposal":4690},120,"VK_KHR_get_surface_capabilities2",{"number":5730,"type":4914,"author":5593,"provisional":4690,"depends":4931,"ratified":5078,"contact":4918,"extension":5211,"proposal":4690},189,{"number":5732,"type":4914,"author":5593,"promotedto":5125,"provisional":4690,"ratified":5052,"contact":5293,"extension":5733,"proposal":4690},148,"VK_KHR_image_format_list",{"number":5735,"type":4914,"author":5593,"promotedto":5125,"provisional":4690,"depends":5736,"ratified":5052,"contact":5628,"extension":5737,"proposal":4690},109,"(((VK_KHR_get_physical_device_properties2+VK_KHR_maintenance2),VK_VERSION_1_1)+VK_KHR_image_format_list),VK_VERSION_1_2","VK_KHR_imageless_framebuffer",{"number":5739,"type":4914,"author":5593,"provisional":4690,"depends":5224,"ratified":5078,"contact":5545,"extension":5740,"proposal":4690},85,"VK_KHR_incremental_present",{"number":5742,"type":4914,"author":5593,"provisional":4690,"depends":4931,"ratified":5078,"contact":5066,"extension":5263,"proposal":4690},534,{"number":5744,"type":4914,"author":5593,"provisional":4690,"depends":4931,"ratified":5078,"contact":5066,"extension":5283,"proposal":4690},535,{"number":5746,"type":4914,"author":5593,"provisional":4690,"ratified":5052,"contact":5113,"extension":5288,"proposal":4886},527,{"number":5748,"type":4914,"author":5593,"promotedto":5024,"provisional":4690,"ratified":5052,"contact":5066,"extension":4958,"proposal":4690},70,{"number":5750,"type":4914,"author":5593,"promotedto":5024,"provisional":4690,"ratified":5052,"contact":5751,"extension":5752,"proposal":4690},118,"Michael Worcester @michaelworcester","VK_KHR_maintenance2",{"number":5754,"type":4914,"author":5593,"promotedto":5024,"provisional":4690,"depends":4931,"ratified":5052,"contact":5060,"extension":5324,"proposal":4690},169,{"number":5756,"type":4914,"author":5593,"promotedto":5028,"provisional":4690,"depends":5024,"ratified":5052,"contact":5066,"extension":5757,"proposal":4690},414,"VK_KHR_maintenance4",{"number":5759,"type":4914,"author":5593,"provisional":4690,"depends":5760,"ratified":5052,"contact":5761,"extension":5762,"proposal":4886},471,"(VK_VERSION_1_1+VK_KHR_dynamic_rendering),VK_VERSION_1_3","Stu Smith @stu-s","VK_KHR_maintenance5",{"number":5764,"type":4914,"author":5593,"provisional":4690,"depends":5024,"ratified":5052,"contact":5765,"extension":5766,"proposal":4886},546,"Jon Leech @oddhack","VK_KHR_maintenance6",{"number":5768,"type":4914,"author":5593,"provisional":4690,"depends":5024,"ratified":5052,"contact":5053,"extension":5769,"proposal":4886},563,"VK_KHR_maintenance7",{"number":5771,"type":4914,"author":5593,"provisional":4690,"ratified":5052,"contact":5293,"extension":5292,"proposal":4886},272,{"number":5773,"type":4914,"author":5593,"promotedto":5024,"provisional":4690,"depends":4931,"ratified":5052,"contact":5060,"extension":5774,"proposal":4690},54,"VK_KHR_multiview",{"extension":5776,"proposal":4690},"VK_KHR_object_refresh",{"number":5778,"type":4914,"author":5593,"provisional":4690,"depends":4931,"ratified":5078,"specialuse":4926,"contact":5779,"extension":5780,"proposal":4690},117,"Alon Or-bach @alonorbach","VK_KHR_performance_query",{"number":5782,"type":4914,"author":5593,"provisional":4690,"depends":5762,"ratified":5052,"contact":5761,"extension":5783,"proposal":4886},484,"VK_KHR_pipeline_binary",{"number":5785,"type":4914,"author":5593,"provisional":4690,"depends":4931,"ratified":5052,"specialuse":4926,"contact":5293,"extension":5786,"proposal":4690},270,"VK_KHR_pipeline_executable_properties",{"number":5788,"type":4914,"author":5593,"provisional":4690,"ratified":5052,"contact":5304,"extension":5789,"proposal":4690},291,"VK_KHR_pipeline_library",{"number":5791,"type":5034,"author":5593,"provisional":4690,"ratified":5052,"contact":5792,"extension":5793,"proposal":4690},395,"Charles Giessen @charles-lunarg","VK_KHR_portability_enumeration",{"number":5795,"type":4914,"author":5593,"provisional":4886,"depends":4931,"platform":4917,"ratified":5052,"contact":5309,"extension":5796,"proposal":4690},164,"VK_KHR_portability_subset",{"number":5798,"type":4914,"author":5593,"provisional":4690,"depends":5799,"ratified":5052,"contact":5800,"extension":5801,"proposal":4690},295,"VK_KHR_swapchain+VK_KHR_get_physical_device_properties2,VK_VERSION_1_1","Keith Packard @keithp","VK_KHR_present_id",{"number":5803,"type":4914,"author":5593,"provisional":4690,"depends":5804,"ratified":5052,"contact":5800,"extension":5805,"proposal":4690},249,"VK_KHR_swapchain+VK_KHR_present_id","VK_KHR_present_wait",{"number":5807,"type":4914,"author":5593,"provisional":4690,"depends":4931,"ratified":5052,"contact":5060,"extension":5808,"proposal":4690},81,"VK_KHR_push_descriptor",{"number":5810,"type":4914,"author":5593,"provisional":4690,"depends":5811,"ratified":5052,"contact":5377,"extension":5812,"proposal":4690},349,"VK_KHR_spirv_1_4+VK_KHR_acceleration_structure","VK_KHR_ray_query",{"number":5814,"type":4914,"author":5593,"provisional":4690,"depends":5603,"ratified":5052,"contact":5377,"extension":5815,"proposal":4690},387,"VK_KHR_ray_tracing_maintenance1",{"number":5817,"type":4914,"author":5593,"provisional":4690,"depends":5811,"ratified":5052,"contact":5377,"extension":5818,"proposal":4690},348,"VK_KHR_ray_tracing_pipeline",{"number":5820,"type":4914,"author":5593,"provisional":4690,"depends":5603,"ratified":5052,"contact":5821,"extension":5822,"proposal":4886},482,"Eric Werness","VK_KHR_ray_tracing_position_fetch",{"number":5824,"type":4914,"author":5593,"promotedto":5024,"provisional":4690,"ratified":5052,"contact":5825,"extension":5826,"proposal":4690},145,"John Kessenich @johnkslang","VK_KHR_relaxed_block_layout",{"number":4746,"type":4914,"author":5593,"promotedto":5125,"provisional":4690,"ratified":5052,"contact":4918,"extension":5828,"proposal":4690},"VK_KHR_sampler_mirror_clamp_to_edge",{"number":5830,"type":4914,"author":5593,"promotedto":5024,"provisional":4690,"depends":5831,"ratified":5052,"contact":5832,"extension":5833,"proposal":4690},157,"(VK_KHR_maintenance1+VK_KHR_bind_memory2+VK_KHR_get_memory_requirements2+VK_KHR_get_physical_device_properties2),VK_VERSION_1_1","Andrew Garrard @fluppeteer","VK_KHR_sampler_ycbcr_conversion",{"number":5835,"type":4914,"author":5593,"promotedto":5125,"provisional":4690,"depends":5716,"ratified":5052,"contact":5066,"extension":5836,"proposal":4690},242,"VK_KHR_separate_depth_stencil_layouts",{"number":5838,"type":4914,"author":5593,"promotedto":5125,"provisional":4690,"depends":4931,"ratified":5052,"contact":5839,"extension":5840,"proposal":4690},181,"Aaron Hagan @ahagan","VK_KHR_shader_atomic_int64",{"number":5842,"type":4914,"author":5593,"provisional":4690,"depends":4931,"ratified":5078,"contact":5839,"extension":5843,"proposal":4690},182,"VK_KHR_shader_clock",{"number":5845,"type":4914,"author":5593,"promotedto":5024,"provisional":4690,"ratified":5052,"contact":5377,"extension":5846,"proposal":4690},64,"VK_KHR_shader_draw_parameters",{"number":5848,"type":4914,"author":5593,"provisional":4690,"depends":4931,"ratified":5052,"contact":5018,"extension":5849,"proposal":4886},545,"VK_KHR_shader_expect_assume",{"number":5851,"type":4914,"author":5593,"promotedto":5125,"provisional":4690,"depends":4931,"ratified":5052,"contact":5598,"extension":4945,"proposal":4690},83,{"number":5853,"type":4914,"author":5593,"promotedto":5125,"provisional":4690,"depends":4931,"ratified":5052,"contact":5598,"extension":5854,"proposal":4690},198,"VK_KHR_shader_float_controls",{"number":5856,"type":4914,"author":5593,"provisional":4690,"depends":5857,"ratified":5052,"contact":5109,"extension":5858,"proposal":4886},529,"VK_VERSION_1_1+VK_KHR_shader_float_controls","VK_KHR_shader_float_controls2",{"number":5860,"type":4914,"author":5593,"promotedto":5028,"provisional":4690,"depends":4931,"ratified":5052,"contact":5018,"extension":5861,"proposal":4886},281,"VK_KHR_shader_integer_dot_product",{"number":5863,"type":4914,"author":5593,"provisional":4690,"depends":5024,"ratified":5052,"contact":5864,"extension":5865,"proposal":4886},435,"Alan Baker @alan-baker","VK_KHR_shader_maximal_reconvergence",{"number":5867,"type":4914,"author":5593,"promotedto":5028,"provisional":4690,"ratified":5052,"contact":5095,"extension":5868,"proposal":4690},294,"VK_KHR_shader_non_semantic_info",{"number":5870,"type":4914,"author":5593,"provisional":4690,"depends":5871,"ratified":5052,"contact":4918,"extension":5872,"proposal":4886},236,"VK_VERSION_1_1+VK_KHR_vulkan_memory_model+VK_KHR_shader_maximal_reconvergence","VK_KHR_shader_quad_control",{"number":5874,"type":4914,"author":5593,"provisional":4690,"ratified":5052,"contact":5875,"extension":5876,"proposal":4886},559,"Nathan Gauër @Keenuts","VK_KHR_shader_relaxed_extended_instruction",{"number":5878,"type":4914,"author":5593,"promotedto":5125,"provisional":4690,"depends":5024,"ratified":5052,"contact":5457,"extension":5879,"proposal":4690},176,"VK_KHR_shader_subgroup_extended_types",{"number":5881,"type":4914,"author":5593,"provisional":4690,"ratified":5052,"contact":5018,"extension":5882,"proposal":4886},417,"VK_KHR_shader_subgroup_rotate",{"number":5884,"type":4914,"author":5593,"provisional":4690,"depends":5024,"ratified":5052,"contact":5864,"extension":5885,"proposal":4690},324,"VK_KHR_shader_subgroup_uniform_control_flow",{"number":5887,"type":4914,"author":5593,"promotedto":5028,"provisional":4690,"depends":4931,"ratified":5078,"contact":5004,"extension":5888,"proposal":4690},216,"VK_KHR_shader_terminate_invocation",{"number":5890,"type":4914,"author":5593,"provisional":4690,"depends":5891,"ratified":5078,"contact":5779,"extension":5892,"proposal":4690},112,"VK_KHR_swapchain+VK_KHR_get_surface_capabilities2+(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)","VK_KHR_shared_presentable_image",{"number":5894,"type":4914,"author":5593,"promotedto":5125,"provisional":4690,"depends":5857,"ratified":5052,"contact":5004,"extension":5303,"proposal":4690},237,{"number":5896,"type":4914,"author":5593,"promotedto":5024,"provisional":4690,"ratified":5052,"contact":5598,"extension":5897,"proposal":4690},132,"VK_KHR_storage_buffer_storage_class",{"number":4692,"type":5034,"author":5593,"provisional":4690,"ratified":5078,"contact":5899,"extension":5146,"proposal":4690},"James Jones @cubanismo,Ian Elliott @ianelliottus",{"number":5901,"type":5034,"author":5593,"provisional":4690,"depends":5902,"ratified":5052,"contact":5903,"extension":5904,"proposal":4690},240,"VK_VERSION_1_1+VK_KHR_get_surface_capabilities2","Sandeep Shinde @sashinde","VK_KHR_surface_protected_capabilities",{"number":4652,"type":4914,"author":5593,"provisional":4690,"depends":5146,"ratified":5078,"contact":5899,"extension":5224,"proposal":4690},{"number":5907,"type":4914,"author":5593,"provisional":4690,"depends":5908,"ratified":5078,"contact":4927,"extension":5909,"proposal":4690},201,"VK_KHR_swapchain+(VK_KHR_maintenance2,VK_VERSION_1_1)+(VK_KHR_image_format_list,VK_VERSION_1_2)","VK_KHR_swapchain_mutable_format",{"number":5911,"type":4914,"author":5593,"promotedto":5028,"provisional":4690,"depends":4931,"ratified":5078,"contact":4918,"extension":5912,"proposal":4690},315,"VK_KHR_synchronization2",{"number":5914,"type":4914,"author":5593,"promotedto":5125,"provisional":4690,"depends":4931,"ratified":5052,"contact":5293,"extension":5915,"proposal":4690},208,"VK_KHR_timeline_semaphore",{"number":5917,"type":4914,"author":5593,"promotedto":5125,"provisional":4690,"depends":4931,"ratified":5052,"contact":5109,"extension":5918,"proposal":4690},254,"VK_KHR_uniform_buffer_standard_layout",{"number":5920,"type":4914,"author":5593,"promotedto":5024,"provisional":4690,"depends":5594,"ratified":5052,"contact":5004,"extension":5921,"proposal":4690},121,"VK_KHR_variable_pointers",{"number":5923,"type":4914,"author":5593,"provisional":4690,"depends":4931,"ratified":5078,"contact":5113,"extension":5500,"proposal":4886},526,{"number":5925,"type":4914,"author":5593,"provisional":4690,"depends":5926,"ratified":5052,"contact":5268,"extension":5927,"proposal":4886},513,"VK_KHR_video_decode_queue","VK_KHR_video_decode_av1",{"number":4848,"type":4914,"author":5593,"provisional":4690,"depends":5926,"ratified":5052,"contact":5929,"extension":5930,"proposal":4886},"peter.fang@amd.com","VK_KHR_video_decode_h264",{"number":5932,"type":4914,"author":5593,"provisional":4690,"depends":5926,"ratified":5052,"contact":5929,"extension":5933,"proposal":4886},188,"VK_KHR_video_decode_h265",{"number":4786,"type":4914,"author":5593,"provisional":4690,"depends":5935,"ratified":5052,"contact":5936,"extension":5926,"proposal":4886},"VK_KHR_video_queue+(VK_KHR_synchronization2,VK_VERSION_1_3)","jake.beju@amd.com",{"number":4840,"type":4914,"author":5593,"provisional":4690,"depends":5938,"ratified":5052,"contact":5939,"extension":5940,"proposal":4886},"VK_KHR_video_encode_queue","Ahmed Abdelkhalek @aabdelkh","VK_KHR_video_encode_h264",{"number":4844,"type":4914,"author":5593,"provisional":4690,"depends":5938,"ratified":5052,"contact":5939,"extension":5942,"proposal":4886},"VK_KHR_video_encode_h265",{"number":5944,"type":4914,"author":5593,"provisional":4690,"depends":5935,"ratified":5052,"contact":5939,"extension":5938,"proposal":4886},300,{"number":5946,"type":4914,"author":5593,"provisional":4690,"depends":5947,"ratified":5052,"contact":5268,"extension":5948,"proposal":4886},516,"VK_KHR_video_queue","VK_KHR_video_maintenance1",{"number":4782,"type":4914,"author":5593,"provisional":4690,"depends":5950,"ratified":5052,"contact":5506,"extension":5947,"proposal":4886},"(VK_VERSION_1_1+VK_KHR_synchronization2),VK_VERSION_1_3",{"number":5952,"type":4914,"author":5593,"promotedto":5125,"provisional":4690,"depends":4931,"ratified":5052,"contact":5060,"extension":5953,"proposal":4690},212,"VK_KHR_vulkan_memory_model",{"number":4714,"type":5034,"author":5593,"provisional":4690,"depends":5146,"platform":5955,"ratified":5052,"contact":5956,"extension":5957,"proposal":4690},"wayland","Jesse Hall @critsec,Ian Elliott @ianelliottus","VK_KHR_wayland_surface",{"number":5959,"type":4914,"author":5593,"provisional":4690,"depends":5694,"platform":5207,"ratified":5052,"contact":5960,"extension":5961,"proposal":4690},76,"Carsten Rohde @crohde","VK_KHR_win32_keyed_mutex",{"number":4726,"type":5034,"author":5593,"provisional":4690,"depends":5146,"platform":5207,"ratified":5052,"contact":5956,"extension":5963,"proposal":4690},"VK_KHR_win32_surface",{"number":5965,"type":4914,"author":5593,"provisional":4690,"depends":4931,"ratified":5052,"contact":5966,"extension":5967,"proposal":4690},337,"Caio Marcelo de Oliveira Filho @cmarcelo","VK_KHR_workgroup_memory_explicit_layout",{"number":4710,"type":5034,"author":5593,"provisional":4690,"depends":5146,"platform":5969,"ratified":5052,"contact":5956,"extension":5970,"proposal":4690},"xcb","VK_KHR_xcb_surface",{"number":4706,"type":5034,"author":5593,"provisional":4690,"depends":5146,"platform":5972,"ratified":5052,"contact":5956,"extension":5973,"proposal":4690},"xlib","VK_KHR_xlib_surface",{"number":5975,"type":4914,"author":5593,"promotedto":5028,"provisional":4690,"depends":4931,"ratified":5052,"contact":5864,"extension":5976,"proposal":4690},326,"VK_KHR_zero_initialize_workgroup_memory",{"number":5978,"type":5034,"author":5491,"provisional":4690,"contact":5792,"extension":5979,"proposal":4886},460,"VK_LUNARG_direct_driver_loading",{"number":5981,"type":4914,"author":5982,"provisional":4690,"depends":4931,"specialuse":5105,"contact":5361,"extension":5983,"proposal":4690},576,"MESA","VK_MESA_image_alignment_control",{"number":5985,"type":4914,"author":5986,"provisional":4690,"depends":4931,"contact":5987,"extension":5988,"proposal":4886},531,"MSFT","Jesse Natalie @jenatali","VK_MSFT_layered_driver",{"number":5990,"type":5034,"author":5991,"deprecatedby":5314,"provisional":4690,"depends":5146,"platform":5992,"contact":5309,"extension":5993,"proposal":4690},123,"MVK","ios","VK_MVK_ios_surface",{"number":5995,"type":5034,"author":5991,"deprecatedby":5314,"provisional":4690,"depends":5146,"platform":5996,"contact":5309,"extension":5997,"proposal":4690},124,"macos","VK_MVK_macos_surface",{"number":5999,"type":5034,"author":6000,"provisional":4690,"depends":5146,"platform":6001,"contact":6002,"extension":6003,"proposal":4690},63,"NN","vi","Mathias Heyer gitlab:@mheyer","VK_NN_vi_surface",{"number":4804,"type":4914,"author":6005,"provisional":4690,"contact":6006,"extension":6007,"proposal":4690},"NVX","Eric Werness @ewerness-nv,Liam Middlebrook @liam-middlebrook","VK_NVX_binary_import",{"number":4808,"type":4914,"author":6005,"provisional":4690,"contact":6009,"extension":6010,"proposal":4690},"Eric Werness @ewerness-nv","VK_NVX_image_view_handle",{"number":6012,"type":4914,"author":6005,"provisional":4690,"depends":6013,"contact":5060,"extension":6014,"proposal":4690},98,"VK_KHR_multiview,VK_VERSION_1_1","VK_NVX_multiview_per_view_attributes",{"number":6016,"type":4914,"author":5040,"provisional":4690,"depends":5035,"platform":5207,"contact":6017,"extension":6018,"proposal":4690},346,"Jeff Juliano @jjuliano","VK_NV_acquire_winrt_display",{"number":6020,"type":4914,"author":5040,"provisional":4690,"contact":6009,"extension":6021,"proposal":4690},88,"VK_NV_clip_space_w_scaling",{"number":6023,"type":4914,"author":5040,"provisional":4690,"contact":6024,"extension":6025,"proposal":4690},560,"Lujin Wang @lujinwangnv","VK_NV_command_buffer_inheritance",{"number":6027,"type":4914,"author":5040,"promotedto":5618,"provisional":4690,"depends":4931,"contact":6028,"extension":6029,"proposal":4690},202,"Pat Brown @nvpbrown","VK_NV_compute_shader_derivatives",{"number":6031,"type":4914,"author":5040,"provisional":4690,"depends":4931,"contact":5060,"extension":6032,"proposal":4690},250,"VK_NV_cooperative_matrix",{"number":6034,"type":4914,"author":5040,"provisional":4690,"depends":6035,"contact":5169,"extension":6036,"proposal":4690},427,"((VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_KHR_buffer_device_address),VK_VERSION_1_2","VK_NV_copy_memory_indirect",{"number":6038,"type":4914,"author":5040,"provisional":4690,"depends":4931,"contact":5377,"extension":6039,"proposal":4690},51,"VK_NV_corner_sampled_image",{"number":6041,"type":4914,"author":5040,"provisional":4690,"depends":6042,"contact":6043,"extension":4529,"proposal":4690},251,"VK_NV_framebuffer_mixed_samples+(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)","Kedarnath Thangudu @kthangudu",{"number":6045,"type":4914,"author":5040,"provisional":4886,"contact":6046,"extension":6047,"proposal":4690},308,"Tristan Lorach @tlorach","VK_NV_cuda_kernel_launch",{"number":4794,"type":4914,"author":5040,"deprecatedby":5633,"provisional":4690,"contact":5060,"extension":6049,"proposal":4690},"VK_NV_dedicated_allocation",{"number":6051,"type":4914,"author":6052,"provisional":4690,"depends":6053,"contact":6054,"extension":6055,"proposal":4690},241,"NVIDIA","(VK_KHR_dedicated_allocation+VK_KHR_get_physical_device_properties2),VK_VERSION_1_1","Nuno Subtil @nsubtil","VK_NV_dedicated_allocation_image_aliasing",{"number":6057,"type":4914,"author":5040,"provisional":4690,"depends":5024,"contact":5066,"extension":6058,"proposal":4690},547,"VK_NV_descriptor_pool_overallocation",{"number":6060,"type":4914,"author":6052,"provisional":4690,"depends":4931,"contact":6054,"extension":6061,"proposal":4690},207,"VK_NV_device_diagnostic_checkpoints",{"number":6063,"type":4914,"author":5040,"provisional":4690,"depends":4931,"contact":6043,"extension":6064,"proposal":4690},301,"VK_NV_device_diagnostics_config",{"number":6066,"type":4914,"author":5040,"provisional":4690,"depends":6067,"contact":5304,"extension":6068,"proposal":4690},278,"(VK_VERSION_1_1+VK_KHR_buffer_device_address),VK_VERSION_1_2","VK_NV_device_generated_commands",{"number":6070,"type":4914,"author":5040,"provisional":4690,"depends":6068,"contact":5169,"extension":6071,"proposal":4690},429,"VK_NV_device_generated_commands_compute",{"number":6073,"type":4914,"author":5040,"provisional":4886,"depends":5339,"platform":4917,"contact":6074,"extension":6075,"proposal":4690},398,"Christoph Kubisch @pixeljetstream, Eric Werness @ewerness-nv","VK_NV_displacement_micromap",{"number":6077,"type":4914,"author":5040,"provisional":4690,"contact":6078,"extension":6079,"proposal":4690},493,"Russell Chou @russellcnv","VK_NV_extended_sparse_address_space",{"number":6081,"type":4914,"author":5040,"deprecatedby":5686,"provisional":4690,"depends":6082,"contact":5042,"extension":6083,"proposal":4690},57,"VK_NV_external_memory_capabilities","VK_NV_external_memory",{"number":6085,"type":5034,"author":5040,"deprecatedby":5689,"provisional":4690,"contact":5042,"extension":6082,"proposal":4690},56,{"number":6087,"type":4914,"author":5040,"provisional":4690,"depends":5176,"contact":5960,"extension":6088,"proposal":4690},372,"VK_NV_external_memory_rdma",{"extension":6090,"proposal":4690},"VK_NV_external_memory_sci_buf",{"number":6092,"type":4914,"author":5040,"deprecatedby":5694,"provisional":4690,"depends":6083,"platform":5207,"contact":5042,"extension":6093,"proposal":4690},58,"VK_NV_external_memory_win32",{"extension":6095,"proposal":4690},"VK_NV_external_sci_sync",{"extension":6097,"proposal":4690},"VK_NV_external_sci_sync2",{"number":6099,"type":4914,"author":5040,"provisional":4690,"contact":5060,"extension":6100,"proposal":4690},154,"VK_NV_fill_rectangle",{"number":6102,"type":4914,"author":5040,"provisional":4690,"contact":5060,"extension":6103,"proposal":4690},150,"VK_NV_fragment_coverage_to_color",{"number":6105,"type":4914,"author":5040,"promotedto":5713,"provisional":4690,"depends":4931,"contact":6028,"extension":6106,"proposal":4690},204,"VK_NV_fragment_shader_barycentric",{"number":6108,"type":4914,"author":5040,"provisional":4690,"depends":5717,"contact":6028,"extension":6109,"proposal":4690},327,"VK_NV_fragment_shading_rate_enums",{"number":6111,"type":4914,"author":5040,"provisional":4690,"contact":5060,"extension":6112,"proposal":4690},153,"VK_NV_framebuffer_mixed_samples",{"number":6114,"type":4914,"author":5040,"provisional":4690,"contact":5377,"extension":6115,"proposal":4690},96,"VK_NV_geometry_shader_passthrough",{"number":4738,"type":4914,"author":5040,"deprecatedby":5576,"provisional":4690,"contact":5066,"extension":6117,"proposal":4690},"VK_NV_glsl_shader",{"number":6119,"type":4914,"author":5040,"provisional":4690,"depends":4931,"contact":6120,"extension":6121,"proposal":4690},279,"David Zhao Akeley @akeley98","VK_NV_inherited_viewport_scissor",{"number":6123,"type":4914,"author":6052,"provisional":4690,"depends":4931,"contact":6124,"extension":6125,"proposal":4690},431,"sourav parmar @souravpNV","VK_NV_linear_color_attachment",{"number":6127,"type":4914,"author":5040,"provisional":4690,"contact":6128,"extension":6129,"proposal":4690},311,"Charles Hansen @cshansen","VK_NV_low_latency",{"number":6131,"type":4914,"author":5040,"provisional":4690,"depends":6132,"contact":6128,"extension":6133,"proposal":4690},506,"VK_VERSION_1_2,VK_KHR_timeline_semaphore","VK_NV_low_latency2",{"number":6135,"type":4914,"author":5040,"provisional":4690,"depends":6035,"contact":5169,"extension":6136,"proposal":4690},428,"VK_NV_memory_decompression",{"number":6138,"type":4914,"author":5040,"provisional":4690,"depends":4931,"contact":5304,"extension":6139,"proposal":4690},203,"VK_NV_mesh_shader",{"number":6141,"type":4914,"author":5040,"provisional":4690,"depends":6142,"contact":5960,"extension":6143,"proposal":4690},465,"((VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_KHR_format_feature_flags2+VK_KHR_synchronization2),VK_VERSION_1_3","VK_NV_optical_flow",{"number":6145,"type":4914,"author":5040,"provisional":4690,"depends":5766,"contact":5066,"extension":6146,"proposal":4690},517,"VK_NV_per_stage_descriptor_set",{"number":6148,"type":4914,"author":5040,"provisional":4690,"depends":5206,"contact":6149,"extension":6150,"proposal":4690},293,"Liya Li @liyli","VK_NV_present_barrier",{"extension":6152,"proposal":4690},"VK_NV_private_vendor_info",{"number":6154,"type":4914,"author":5040,"provisional":4690,"contact":6155,"extension":6156,"proposal":4690},556,"Rodrigo Locatti @rlocatti","VK_NV_raw_access_chains",{"number":6158,"type":4914,"author":5040,"deprecatedby":5818,"provisional":4690,"depends":6159,"contact":6009,"extension":6160,"proposal":4690},166,"(VK_KHR_get_physical_device_properties2+VK_KHR_get_memory_requirements2),VK_VERSION_1_1","VK_NV_ray_tracing",{"number":6162,"type":4914,"author":5040,"provisional":4690,"depends":5818,"contact":6009,"extension":6163,"proposal":4690},491,"VK_NV_ray_tracing_invocation_reorder",{"number":6165,"type":4914,"author":5040,"provisional":4690,"depends":5818,"contact":5821,"extension":6166,"proposal":4690},328,"VK_NV_ray_tracing_motion_blur",{"number":6168,"type":4914,"author":5040,"provisional":4690,"contact":5169,"extension":6169,"proposal":4886},569,"VK_NV_ray_tracing_validation",{"number":6171,"type":4914,"author":5040,"provisional":4690,"depends":4931,"contact":6043,"extension":6172,"proposal":4690},167,"VK_NV_representative_fragment_test",{"number":6174,"type":4914,"author":5040,"provisional":4690,"contact":5066,"extension":6175,"proposal":4690},95,"VK_NV_sample_mask_override_coverage",{"number":6177,"type":4914,"author":5040,"provisional":4690,"depends":4931,"contact":6028,"extension":6178,"proposal":4690},206,"VK_NV_scissor_exclusive",{"number":6180,"type":4914,"author":5040,"provisional":4690,"contact":5060,"extension":6181,"proposal":4690},564,"VK_NV_shader_atomic_float16_vector",{"number":6183,"type":4914,"author":5040,"provisional":4690,"depends":4931,"contact":6028,"extension":6184,"proposal":4690},205,"VK_NV_shader_image_footprint",{"number":6186,"type":4914,"author":5040,"provisional":4690,"depends":5024,"contact":5377,"extension":6187,"proposal":4690},155,"VK_NV_shader_sm_builtins",{"number":6189,"type":4914,"author":5040,"provisional":4690,"depends":5024,"contact":5060,"extension":6190,"proposal":4690},199,"VK_NV_shader_subgroup_partitioned",{"number":6192,"type":4914,"author":5040,"provisional":4690,"depends":4931,"contact":6028,"extension":6193,"proposal":4690},165,"VK_NV_shading_rate_image",{"number":6195,"type":4914,"author":5040,"provisional":4690,"contact":5377,"extension":6196,"proposal":4690},97,"VK_NV_viewport_array2",{"number":6198,"type":4914,"author":5040,"provisional":4690,"contact":5066,"extension":6199,"proposal":4690},99,"VK_NV_viewport_swizzle",{"number":6201,"type":4914,"author":5040,"promotedto":5961,"provisional":4690,"depends":6093,"platform":5207,"contact":5960,"extension":6202,"proposal":4690},59,"VK_NV_win32_keyed_mutex",{"number":6204,"type":4914,"author":5188,"provisional":4690,"depends":6205,"contact":5189,"extension":6206,"proposal":4690},522,"(VK_EXT_filter_cubic)+(VK_VERSION_1_2,VK_EXT_sampler_filter_minmax)","VK_QCOM_filter_cubic_clamp",{"number":6208,"type":4914,"author":5188,"provisional":4690,"depends":5190,"contact":5189,"extension":6209,"proposal":4690},520,"VK_QCOM_filter_cubic_weights",{"number":6211,"type":4914,"author":5188,"provisional":4690,"depends":6212,"contact":5189,"extension":6213,"proposal":4690},426,"(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_EXT_fragment_density_map","VK_QCOM_fragment_density_map_offset",{"number":6215,"type":4914,"author":5188,"provisional":4690,"depends":6216,"contact":5189,"extension":6217,"proposal":4886},441,"VK_KHR_format_feature_flags2,VK_VERSION_1_3","VK_QCOM_image_processing",{"number":6219,"type":4914,"author":5188,"provisional":4690,"depends":6217,"contact":5189,"extension":6220,"proposal":4690},519,"VK_QCOM_image_processing2",{"number":6222,"type":4914,"author":5188,"provisional":4690,"contact":5189,"extension":6223,"proposal":4690},511,"VK_QCOM_multiview_per_view_render_areas",{"number":6225,"type":4914,"author":5188,"provisional":4690,"depends":4931,"contact":5189,"extension":6226,"proposal":4690},489,"VK_QCOM_multiview_per_view_viewports",{"number":6228,"type":4914,"author":5188,"provisional":4690,"contact":5189,"extension":6229,"proposal":4690},172,"VK_QCOM_render_pass_shader_resolve",{"number":6231,"type":4914,"author":5188,"provisional":4690,"contact":5189,"extension":6232,"proposal":4690},302,"VK_QCOM_render_pass_store_ops",{"number":6234,"type":4914,"author":5188,"provisional":4690,"contact":5189,"extension":6235,"proposal":4690},283,"VK_QCOM_render_pass_transform",{"number":6237,"type":4914,"author":5188,"provisional":4690,"depends":6238,"contact":5189,"extension":6239,"proposal":4690},334,"VK_KHR_copy_commands2,VK_VERSION_1_3","VK_QCOM_rotated_copy_commands",{"number":6241,"type":4914,"author":5188,"provisional":4690,"depends":4931,"contact":5189,"extension":6242,"proposal":4886},485,"VK_QCOM_tile_properties",{"number":6244,"type":4914,"author":5188,"provisional":4690,"contact":5189,"extension":6245,"proposal":4690},521,"VK_QCOM_ycbcr_degamma",{"number":6247,"type":4914,"author":6248,"provisional":4690,"depends":5003,"platform":6249,"contact":6250,"extension":6251,"proposal":4690},530,"QNX","screen","Mike Gorchak @mgorchak-blackberry, Aaron Ruby @aruby-blackberry","VK_QNX_external_memory_screen_buffer",{"number":6253,"type":5034,"author":6248,"provisional":4690,"depends":5146,"platform":6249,"contact":6254,"extension":6255,"proposal":4690},379,"Mike Gorchak @mgorchak-blackberry","VK_QNX_screen_surface",{"number":6257,"type":4914,"author":6258,"provisional":4690,"depends":4931,"contact":5132,"extension":6259,"proposal":4690},486,"SEC","VK_SEC_amigo_profiling",{"number":6261,"type":4914,"author":6262,"provisional":4690,"depends":4931,"specialuse":5105,"contact":5361,"extension":6263,"proposal":4690},421,"VALVE","VK_VALVE_descriptor_set_host_mapping",{"number":6265,"type":4914,"author":6262,"promotedto":5326,"provisional":4690,"depends":5324,"specialuse":5105,"contact":5325,"extension":6266,"proposal":4690},352,"VK_VALVE_mutable_descriptor_type",1725732629470]