[{"data":1,"prerenderedAt":5245},["ShallowReactive",2],{"uXQmTyoU89":3,"VyF3Mmj32r":3688,"N9m89Rcq0G":3888},{"title":4,"description":5,"body":6,"_type":3687,"_id":4},"VK_EXT_shader_tile_image.proposal","VK_EXT_shader_tile_image is a device extension that explicitly enables access to on-chip pixel data. For GPUs supporting this extension, it is a replacement for many use-cases for subpasses, which are not available when the VK_KHR_dynamic_rendering extension is used.",{"type":7,"children":8,"toc":3639},"root",[9,32,39,44,49,69,81,86,92,99,104,109,127,132,212,217,222,240,245,273,279,284,289,295,301,311,316,322,335,365,375,385,390,395,412,417,424,429,463,575,581,609,614,846,852,857,921,926,998,1003,1243,1249,1255,1261,1756,1762,1835,1841,1846,1852,1858,1877,1916,1951,1989,2018,2052,2058,2076,2094,2100,2105,2117,2225,2230,2336,2342,2347,2353,2379,2385,2415,2420,2425,2689,2695,2723,2728,2732,3050,3056,3069,3230,3235,3306,3312,3325,3331,3337,3342,3348,3353,3359,3364,3369,3374,3379,3392,3397,3403,3408,3413,3418,3423,3429,3434,3439,3445,3450,3455,3460,3466,3471,3476,3496,3501,3507,3512,3517,3523,3528,3533,3539,3551,3557,3563,3576,3582,3587,3592,3611,3617,3622,3628,3633],{"type":10,"tag":11,"props":12,"children":13},"element","p",{},[14,22,24,30],{"type":10,"tag":15,"props":16,"children":18},"code",{"className":17},[],[19],{"type":20,"value":21},"text","VK_EXT_shader_tile_image",{"type":20,"value":23}," is a device extension that explicitly enables access to on-chip pixel data. For GPUs supporting this extension, it is a replacement for many use-cases for subpasses, which are not available when the ",{"type":10,"tag":15,"props":25,"children":27},{"className":26},[],[28],{"type":20,"value":29},"VK_KHR_dynamic_rendering",{"type":20,"value":31}," extension is used.",{"type":10,"tag":33,"props":34,"children":36},"h2",{"id":35},"_problem_statement",[37],{"type":20,"value":38},"Problem Statement",{"type":10,"tag":11,"props":40,"children":41},{},[42],{"type":20,"value":43},"Some implementations, in particular tile-based GPUs, want to allow applications to effectively exploit local, e.g. on-chip, memory.\nA classic example would be optimizing G-buffer based deferred shading techniques where the G-buffer is produced and consumed on-chip.",{"type":10,"tag":11,"props":45,"children":46},{},[47],{"type":20,"value":48},"Subpasses were designed to support such use-cases with an API mechanism that was portable across all implementations. In practice, that has led to some problems, including:",{"type":10,"tag":50,"props":51,"children":52},"ul",{},[53,59,64],{"type":10,"tag":54,"props":55,"children":56},"li",{},[57],{"type":20,"value":58},"the high level abstraction is far removed from the mental model an application developer needs to have to be able to optimize for keeping data on-chip",{"type":10,"tag":54,"props":60,"children":61},{},[62],{"type":20,"value":63},"the subpass design affects other parts of the API and is seen as a 'tax' on applications that do not target implementations that benefit from on-chip storage",{"type":10,"tag":54,"props":65,"children":66},{},[67],{"type":20,"value":68},"developers wanting to optimize for a specific class of GPUs often need to make GPU specific optimization choices, so the abstraction does not add much",{"type":10,"tag":11,"props":70,"children":71},{},[72,74,79],{"type":20,"value":73},"These problems motivated ",{"type":10,"tag":15,"props":75,"children":77},{"className":76},[],[78],{"type":20,"value":29},{"type":20,"value":80},", which offers an alternative API without subpasses. But keeping data on-chip is still an important optimization for a class of GPUs.",{"type":10,"tag":11,"props":82,"children":83},{},[84],{"type":20,"value":85},"This proposal aims to provide the most essential functionality of subpasses, but in an explicit manner.\nThe abstractions in this proposal are a closer match to what the underlying GPU implementation does and should make it easier to communicate best practices and performance guarantees to developers.",{"type":10,"tag":33,"props":87,"children":89},{"id":88},"_solution_space",[90],{"type":20,"value":91},"Solution Space",{"type":10,"tag":93,"props":94,"children":96},"h3",{"id":95},"_high_level_choices",[97],{"type":20,"value":98},"High-level choices",{"type":10,"tag":11,"props":100,"children":101},{},[102],{"type":20,"value":103},"The solution space can be split in two axes: scope and abstraction level.",{"type":10,"tag":11,"props":105,"children":106},{},[107],{"type":20,"value":108},"The abstraction level is a question of whether we want an API that is only targeted at tile-based GPUs or if we should have a higher-level API that would allow the feature to be supported on a wider range of GPUs.\nThe main argument for a higher abstraction level is application portability.\nArguments against additional abstractions include:",{"type":10,"tag":50,"props":110,"children":111},{},[112,117,122],{"type":10,"tag":54,"props":113,"children":114},{},[115],{"type":20,"value":116},"It would be hard for developers to reason about performance expectations, for the same reasons that it is hard to do this for subpasses",{"type":10,"tag":54,"props":118,"children":119},{},[120],{"type":20,"value":121},"\"Framebuffer fetch\" and \"programmable blend\" semantics are naturally expressed as direct reads from color attachments, and adding abstractions just obfuscate what (some) GPU hardware is doing",{"type":10,"tag":54,"props":123,"children":124},{},[125],{"type":20,"value":126},"GPUs that are not tile-based would not gain much from exposing this - at least not unless the scope is expanded - so the abstractions add little practical value",{"type":10,"tag":11,"props":128,"children":129},{},[130],{"type":20,"value":131},"There are two choices broadly based on what the functionality is for, and which GPUs are able to support it:",{"type":10,"tag":133,"props":134,"children":135},"ol",{},[136,174],{"type":10,"tag":54,"props":137,"children":138},{},[139,141],{"type":20,"value":140},"An explicit API to allow certain tile-based GPUs to expose on-chip memory with fast raster order access.",{"type":10,"tag":50,"props":142,"children":143},{},[144,149,154,159,164,169],{"type":10,"tag":54,"props":145,"children":146},{},[147],{"type":20,"value":148},"Provides framebuffer fetch and Pixel Local Storage functionality and forms the basis for Tile Shader like functionality.",{"type":10,"tag":54,"props":150,"children":151},{},[152],{"type":20,"value":153},"This is mainly targeted at GPUs which defer fragment shading into framebuffer tiles where each tile is typically processed just once.",{"type":10,"tag":54,"props":155,"children":156},{},[157],{"type":20,"value":158},"This addresses use cases such as keeping G-buffer data on-chip.",{"type":10,"tag":54,"props":160,"children":161},{},[162],{"type":20,"value":163},"No DRAM bandwidth paid for render targets which are cleared on load, consumed within the render pass, and content discarded at end of render pass.",{"type":10,"tag":54,"props":165,"children":166},{},[167],{"type":20,"value":168},"Raster order access (coherent access) to framebuffer data from fragment shader is efficient or even \"free\" - depending on the GPU.",{"type":10,"tag":54,"props":170,"children":171},{},[172],{"type":20,"value":173},"No descriptors needed for render target access.",{"type":10,"tag":54,"props":175,"children":176},{},[177,179],{"type":20,"value":178},"A slightly higher level API to enable broad GPU support for framebuffer fetch like functionality within draw calls in dynamic render passes.",{"type":10,"tag":50,"props":180,"children":181},{},[182,187,192,197,202,207],{"type":10,"tag":54,"props":183,"children":184},{},[185],{"type":20,"value":186},"Provides framebuffer fetch like functionality.",{"type":10,"tag":54,"props":188,"children":189},{},[190],{"type":20,"value":191},"This is intended to be supported by a wide range of GPUs. The GPUs in general have optimized support for framebuffer fetch within a render pass.",{"type":10,"tag":54,"props":193,"children":194},{},[195],{"type":20,"value":196},"This addresses use cases such a programmable image composition, or programmable resolve.",{"type":10,"tag":54,"props":198,"children":199},{},[200],{"type":20,"value":201},"Attachment data is not guaranteed to be on-chip within a render pass and may spill to DRAM. Implementations may opportunistically cache data in their cache hierarchy.",{"type":10,"tag":54,"props":203,"children":204},{},[205],{"type":20,"value":206},"Raster order access to framebuffer data from fragment shader is not \"free\". Many implementations may prefer non-coherent access with explicit synchronization from applications.",{"type":10,"tag":54,"props":208,"children":209},{},[210],{"type":20,"value":211},"Descriptors need to be bound for render target access (at least for some implementations).",{"type":10,"tag":11,"props":213,"children":214},{},[215],{"type":20,"value":216},"This proposal targets the first choice.",{"type":10,"tag":11,"props":218,"children":219},{},[220],{"type":20,"value":221},"The options for scope include:",{"type":10,"tag":50,"props":223,"children":224},{},[225,230,235],{"type":10,"tag":54,"props":226,"children":227},{},[228],{"type":20,"value":229},"\"Framebuffer fetch\" equivalent, i.e. enable access to the previously written pixel in the local framebuffer region",{"type":10,"tag":54,"props":231,"children":232},{},[233],{"type":20,"value":234},"\"Pixel local storage\" equivalent, i.e. as above with the addition of pixel format reinterpretation",{"type":10,"tag":54,"props":236,"children":237},{},[238],{"type":20,"value":239},"\"Tile shader\" equivalent, i.e. enable access to a region larger than 1x1 pixels",{"type":10,"tag":11,"props":241,"children":242},{},[243],{"type":20,"value":244},"This proposal targets the first option, but adds building blocks to enable future enhancements.\nThe reasoning behind this choice is that:",{"type":10,"tag":50,"props":246,"children":247},{},[248,253,258,263],{"type":10,"tag":54,"props":249,"children":250},{},[251],{"type":20,"value":252},"It should be possible to support this extension on existing GPUs",{"type":10,"tag":54,"props":254,"children":255},{},[256],{"type":20,"value":257},"Many use-cases that benefit from subpasses could be implemented with this functionality",{"type":10,"tag":54,"props":259,"children":260},{},[261],{"type":20,"value":262},"Ease of integration; this option requires the least amount of changes to rendering engines",{"type":10,"tag":54,"props":264,"children":265},{},[266,268],{"type":20,"value":267},"Time to market; several IHVs would like at least the subpass equivalent functionality to be implemented alongside ",{"type":10,"tag":15,"props":269,"children":271},{"className":270},[],[272],{"type":20,"value":29},{"type":10,"tag":93,"props":274,"children":276},{"id":275},"_implementation_choices",[277],{"type":20,"value":278},"Implementation choices",{"type":10,"tag":11,"props":280,"children":281},{},[282],{"type":20,"value":283},"It is useful to provide tile image access for all attachment types.\nBut implementations may manage depth/stencil differently than color, which could add constraints.\nWe will therefore expose separate feature bits for color, depth, and stencil access.",{"type":10,"tag":11,"props":285,"children":286},{},[287],{"type":20,"value":288},"Tile image variables currently have to 'alias' a color attachment location, and their format is implicitly specified to match the color attachment format.",{"type":10,"tag":33,"props":290,"children":292},{"id":291},"_proposal",[293],{"type":20,"value":294},"Proposal",{"type":10,"tag":93,"props":296,"children":298},{"id":297},"_concept",[299],{"type":20,"value":300},"Concept",{"type":10,"tag":11,"props":302,"children":303},{},[304],{"type":10,"tag":305,"props":306,"children":310},"img",{"alt":307,"src":308,"title":309},"tile image","https://data.vkdoc.net/images/tile_image.svg","Tile Image",[],{"type":10,"tag":11,"props":312,"children":313},{},[314],{"type":20,"value":315},"Introduce the concept of a 'tile image'. When the extension is enabled, the framebuffer is logically divided into a grid of non-overlapping tiles called tile images.",{"type":10,"tag":93,"props":317,"children":319},{"id":318},"_api_changes",[320],{"type":20,"value":321},"API changes",{"type":10,"tag":11,"props":323,"children":324},{},[325,327,333],{"type":20,"value":326},"Add a new feature struct ",{"type":10,"tag":15,"props":328,"children":330},{"className":329},[],[331],{"type":20,"value":332},"VkPhysicalDeviceShaderTileImageFeaturesEXT",{"type":20,"value":334}," containing:",{"type":10,"tag":50,"props":336,"children":337},{},[338,347,356],{"type":10,"tag":54,"props":339,"children":340},{},[341],{"type":10,"tag":15,"props":342,"children":344},{"className":343},[],[345],{"type":20,"value":346},"shaderTileImageColorReadAccess",{"type":10,"tag":54,"props":348,"children":349},{},[350],{"type":10,"tag":15,"props":351,"children":353},{"className":352},[],[354],{"type":20,"value":355},"shaderTileImageDepthReadAccess",{"type":10,"tag":54,"props":357,"children":358},{},[359],{"type":10,"tag":15,"props":360,"children":362},{"className":361},[],[363],{"type":20,"value":364},"shaderTileImageStencilReadAccess",{"type":10,"tag":11,"props":366,"children":367},{},[368,373],{"type":10,"tag":15,"props":369,"children":371},{"className":370},[],[372],{"type":20,"value":346},{"type":20,"value":374}," is mandatory if this extension is supported.",{"type":10,"tag":11,"props":376,"children":377},{},[378,383],{"type":10,"tag":15,"props":379,"children":381},{"className":380},[],[382],{"type":20,"value":346},{"type":20,"value":384}," provides the ability to access current (rasterization order) color values from tile memory via tile images.\nThere is no support for the storage format to be redefined as part of this feature.\nOutput data is still written via Fragment Output variables.\nSince the framebuffer format is not redeclared, fixed-function blending works as normal.",{"type":10,"tag":11,"props":386,"children":387},{},[388],{"type":20,"value":389},"Existing shaders do not to need to be modified to write to color attachments.",{"type":10,"tag":11,"props":391,"children":392},{},[393],{"type":20,"value":394},"Reading color values using the functionality in this extension guarantees that the access is in rasterization order.\nSee the spec (Fragment Shader Tile Image Reads) for details on which samples reads qualify for coherent read access.",{"type":10,"tag":11,"props":396,"children":397},{},[398,403,405,410],{"type":10,"tag":15,"props":399,"children":401},{"className":400},[],[402],{"type":20,"value":355},{"type":20,"value":404}," and ",{"type":10,"tag":15,"props":406,"children":408},{"className":407},[],[409],{"type":20,"value":364},{"type":20,"value":411}," provide similar ability to read the depth and stencil values of any sample location covered by the fragment.\nDepth and stencil fetches use implicit tile images.\nIf no depth / stencil attachment is present then the values returned by fetches are undefined.\nEarly fragment tests are disallowed if depth or stencil fetch is used.",{"type":10,"tag":11,"props":413,"children":414},{},[415],{"type":20,"value":416},"Reading depth/stencil values have similar rasterization order and synchronization guarantees as color.",{"type":10,"tag":418,"props":419,"children":421},"h4",{"id":420},"_explicit_synchronization",[422],{"type":20,"value":423},"Explicit Synchronization",{"type":10,"tag":11,"props":425,"children":426},{},[427],{"type":20,"value":428},"When non-coherent tile image reads are enabled, writes via color, depth and\nstencil attachments are not automatically made visible to the corresponding\nattachment reads via tile images.\nFor the writes to be made visible, an explicit memory dependency must be\ninserted between when the attachment is written to and when it is read from\nby later fragments.\nSuch memory dependencies must be inserted every time a fragment will read\nvalues at a particular sample (x, y, layer, sample) coordinate, if those\nvalues have been written since the most recent pipeline barrier; or since\nthe start of the render pass instance, if there have been no pipeline\nbarriers since the start of the render pass instance.\nWhen such memory dependencies are used the values at all sample locations\ninside the fragment area are made visible, regardless of coverage.",{"type":10,"tag":11,"props":430,"children":431},{},[432,434,443,445,452,454,461],{"type":20,"value":433},"To insert a memory dependency for explicit render pass tile image\nsynchronization, ",{"type":10,"tag":435,"props":436,"children":440},"a",{"href":437,"rel":438},"https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdPipelineBarrier.html",[439],"nofollow",[441],{"type":20,"value":442},"vkCmdPipelineBarrier",{"type":20,"value":444},"\nand ",{"type":10,"tag":435,"props":446,"children":449},{"href":447,"rel":448},"https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdPipelineBarrier2.html",[439],[450],{"type":20,"value":451},"vkCmdPipelineBarrier2",{"type":20,"value":453},"\ncan now be called inside a render pass instance started with\n",{"type":10,"tag":435,"props":455,"children":458},{"href":456,"rel":457},"https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdBeginRendering.html",[439],[459],{"type":20,"value":460},"vkCmdBeginRendering",{"type":20,"value":462},".\nThe following restrictions apply for such pipeline barriers:",{"type":10,"tag":50,"props":464,"children":465},{},[466,485,490,519],{"type":10,"tag":54,"props":467,"children":468},{},[469,475,477,483],{"type":10,"tag":15,"props":470,"children":472},{"className":471},[],[473],{"type":20,"value":474},"dependencyFlags",{"type":20,"value":476}," must include ",{"type":10,"tag":15,"props":478,"children":480},{"className":479},[],[481],{"type":20,"value":482},"VK_DEPENDENCY_BY_REGION_BIT",{"type":20,"value":484},".",{"type":10,"tag":54,"props":486,"children":487},{},[488],{"type":20,"value":489},"The pipeline barriers can include only memory barriers.\nThat is, buffer memory barriers and image memory barriers must not be\nused.",{"type":10,"tag":54,"props":491,"children":492},{},[493,495,501,502,508,510,517],{"type":20,"value":494},"The stages in the ",{"type":10,"tag":15,"props":496,"children":498},{"className":497},[],[499],{"type":20,"value":500},"srcStageMask",{"type":20,"value":404},{"type":10,"tag":15,"props":503,"children":505},{"className":504},[],[506],{"type":20,"value":507},"dstStageMask",{"type":20,"value":509}," members of ",{"type":10,"tag":435,"props":511,"children":514},{"href":512,"rel":513},"https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkMemoryBarrier2.html",[439],[515],{"type":20,"value":516},"VkMemoryBarrier2",{"type":20,"value":518}," are restricted to framebuffer\nspace stages.",{"type":10,"tag":54,"props":520,"children":521},{},[522,524,530,531,537,538,543,545,551,553,559,560,566,568,574],{"type":20,"value":523},"The access types in the ",{"type":10,"tag":15,"props":525,"children":527},{"className":526},[],[528],{"type":20,"value":529},"srcAccessMask",{"type":20,"value":404},{"type":10,"tag":15,"props":532,"children":534},{"className":533},[],[535],{"type":20,"value":536},"dstAccessMask",{"type":20,"value":509},{"type":10,"tag":435,"props":539,"children":541},{"href":512,"rel":540},[439],[542],{"type":20,"value":516},{"type":20,"value":544}," are restricted to the\nfollowing types: ",{"type":10,"tag":15,"props":546,"children":548},{"className":547},[],[549],{"type":20,"value":550},"VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT",{"type":20,"value":552},",\n",{"type":10,"tag":15,"props":554,"children":556},{"className":555},[],[557],{"type":20,"value":558},"VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT",{"type":20,"value":552},{"type":10,"tag":15,"props":561,"children":563},{"className":562},[],[564],{"type":20,"value":565},"VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT",{"type":20,"value":567},", and\n",{"type":10,"tag":15,"props":569,"children":571},{"className":570},[],[572],{"type":20,"value":573},"VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT",{"type":20,"value":484},{"type":10,"tag":93,"props":576,"children":578},{"id":577},"_spir_v_changes",[579],{"type":20,"value":580},"SPIR-V changes",{"type":10,"tag":11,"props":582,"children":583},{},[584,586,592,594,600,602,608],{"type":20,"value":585},"This proposal leverages ",{"type":10,"tag":15,"props":587,"children":589},{"className":588},[],[590],{"type":20,"value":591},"OpTypeImage",{"type":20,"value":593}," and makes 'TileImageDataEXT' another ",{"type":10,"tag":15,"props":595,"children":597},{"className":596},[],[598],{"type":20,"value":599},"Dim",{"type":20,"value":601}," similar to ",{"type":10,"tag":15,"props":603,"children":605},{"className":604},[],[606],{"type":20,"value":607},"SubpassData",{"type":20,"value":484},{"type":10,"tag":11,"props":610,"children":611},{},[612],{"type":20,"value":613},"Specifically:",{"type":10,"tag":50,"props":615,"children":616},{},[617,634,758,779,814],{"type":10,"tag":54,"props":618,"children":619},{},[620,625,627,633],{"type":10,"tag":15,"props":621,"children":623},{"className":622},[],[624],{"type":20,"value":599},{"type":20,"value":626}," is extended with ",{"type":10,"tag":15,"props":628,"children":630},{"className":629},[],[631],{"type":20,"value":632},"TileImageDataEXT",{"type":20,"value":484},{"type":10,"tag":54,"props":635,"children":636},{},[637,642,644,649,651,656,658],{"type":10,"tag":15,"props":638,"children":640},{"className":639},[],[641],{"type":20,"value":591},{"type":20,"value":643}," gets the additional constraint that if ",{"type":10,"tag":15,"props":645,"children":647},{"className":646},[],[648],{"type":20,"value":599},{"type":20,"value":650}," is ",{"type":10,"tag":15,"props":652,"children":654},{"className":653},[],[655],{"type":20,"value":632},{"type":20,"value":657},":",{"type":10,"tag":50,"props":659,"children":660},{},[661,686,713,729,745],{"type":10,"tag":54,"props":662,"children":663},{},[664,670,672,678,680],{"type":10,"tag":15,"props":665,"children":667},{"className":666},[],[668],{"type":20,"value":669},"Sampled",{"type":20,"value":671}," ",{"type":10,"tag":673,"props":674,"children":675},"em",{},[676],{"type":20,"value":677},"must",{"type":20,"value":679}," be ",{"type":10,"tag":15,"props":681,"children":683},{"className":682},[],[684],{"type":20,"value":685},"2",{"type":10,"tag":54,"props":687,"children":688},{},[689,695,697,703,705],{"type":10,"tag":15,"props":690,"children":692},{"className":691},[],[693],{"type":20,"value":694},"Image Format",{"type":20,"value":696}," must be ",{"type":10,"tag":15,"props":698,"children":700},{"className":699},[],[701],{"type":20,"value":702},"Unknown",{"type":20,"value":704}," as the format is implicitly specified by the color attachment",{"type":10,"tag":50,"props":706,"children":707},{},[708],{"type":10,"tag":54,"props":709,"children":710},{},[711],{"type":20,"value":712},"(We could relax this in a further extension if we wanted to support format reinterpretation in the shader.)",{"type":10,"tag":54,"props":714,"children":715},{},[716,722,723],{"type":10,"tag":15,"props":717,"children":719},{"className":718},[],[720],{"type":20,"value":721},"Execution Model",{"type":20,"value":696},{"type":10,"tag":15,"props":724,"children":726},{"className":725},[],[727],{"type":20,"value":728},"Fragment",{"type":10,"tag":54,"props":730,"children":731},{},[732,738,739],{"type":10,"tag":15,"props":733,"children":735},{"className":734},[],[736],{"type":20,"value":737},"Arrayed",{"type":20,"value":696},{"type":10,"tag":15,"props":740,"children":742},{"className":741},[],[743],{"type":20,"value":744},"0",{"type":10,"tag":54,"props":746,"children":747},{},[748,750,756],{"type":20,"value":749},"Extend the use of ",{"type":10,"tag":15,"props":751,"children":753},{"className":752},[],[754],{"type":20,"value":755},"Location",{"type":20,"value":757}," such that it specifies the color attachment index",{"type":10,"tag":54,"props":759,"children":760},{},[761,763,769,771,777],{"type":20,"value":762},"Add ",{"type":10,"tag":15,"props":764,"children":766},{"className":765},[],[767],{"type":20,"value":768},"OpColorAttachmentReadEXT",{"type":20,"value":770},", which is similar to ",{"type":10,"tag":15,"props":772,"children":774},{"className":773},[],[775],{"type":20,"value":776},"OpImageRead",{"type":20,"value":778}," but helps disambiguate between color/depth/stencil.",{"type":10,"tag":54,"props":780,"children":781},{},[782,783,789,790,796,798],{"type":20,"value":762},{"type":10,"tag":15,"props":784,"children":786},{"className":785},[],[787],{"type":20,"value":788},"OpDepthAttachmentReadEXT",{"type":20,"value":404},{"type":10,"tag":15,"props":791,"children":793},{"className":792},[],[794],{"type":20,"value":795},"OpStencilAttachmentReadEXT",{"type":20,"value":797}," to read depth/stencil",{"type":10,"tag":50,"props":799,"children":800},{},[801],{"type":10,"tag":54,"props":802,"children":803},{},[804,806,812],{"type":20,"value":805},"These take an optional ",{"type":10,"tag":15,"props":807,"children":809},{"className":808},[],[810],{"type":20,"value":811},"Sample",{"type":20,"value":813}," parameter for MSAA use-cases",{"type":10,"tag":54,"props":815,"children":816},{},[817,819,825,827,832,834,839,841],{"type":20,"value":818},"Add a ",{"type":10,"tag":15,"props":820,"children":822},{"className":821},[],[823],{"type":20,"value":824},"TileImageEXT",{"type":20,"value":826}," Storage Class that is only supported for variables of ",{"type":10,"tag":15,"props":828,"children":830},{"className":829},[],[831],{"type":20,"value":591},{"type":20,"value":833}," with ",{"type":10,"tag":15,"props":835,"children":837},{"className":836},[],[838],{"type":20,"value":599},{"type":20,"value":840}," equal to ",{"type":10,"tag":15,"props":842,"children":844},{"className":843},[],[845],{"type":20,"value":632},{"type":10,"tag":93,"props":847,"children":849},{"id":848},"_glsl_changes",[850],{"type":20,"value":851},"GLSL changes",{"type":10,"tag":11,"props":853,"children":854},{},[855],{"type":20,"value":856},"Main changes:",{"type":10,"tag":50,"props":858,"children":859},{},[860,871,884,895],{"type":10,"tag":54,"props":861,"children":862},{},[863,865],{"type":20,"value":864},"New type: ",{"type":10,"tag":15,"props":866,"children":868},{"className":867},[],[869],{"type":20,"value":870},"attachmentEXT",{"type":10,"tag":54,"props":872,"children":873},{},[874,876,882],{"type":20,"value":875},"The ",{"type":10,"tag":15,"props":877,"children":879},{"className":878},[],[880],{"type":20,"value":881},"location",{"type":20,"value":883}," layout qualifier is used to specify the corresponding color attachment",{"type":10,"tag":54,"props":885,"children":886},{},[887,889],{"type":20,"value":888},"New storage qualifier (supported only in fragment shaders): ",{"type":10,"tag":15,"props":890,"children":892},{"className":891},[],[893],{"type":20,"value":894},"tileImageEXT",{"type":10,"tag":54,"props":896,"children":897},{},[898,900,906,908,914,915],{"type":20,"value":899},"New functions: ",{"type":10,"tag":15,"props":901,"children":903},{"className":902},[],[904],{"type":20,"value":905},"colorAttachmentReadEXT",{"type":20,"value":907},", ",{"type":10,"tag":15,"props":909,"children":911},{"className":910},[],[912],{"type":20,"value":913},"depthAttachmentReadEXT",{"type":20,"value":907},{"type":10,"tag":15,"props":916,"children":918},{"className":917},[],[919],{"type":20,"value":920},"stencilAttachmentReadEXT",{"type":10,"tag":11,"props":922,"children":923},{},[924],{"type":20,"value":925},"Mapping to SPIR-V:",{"type":10,"tag":50,"props":927,"children":928},{},[929,956,970,984],{"type":10,"tag":54,"props":930,"children":931},{},[932,937,939,944,945,950,951],{"type":10,"tag":15,"props":933,"children":935},{"className":934},[],[936],{"type":20,"value":870},{"type":20,"value":938}," maps to ",{"type":10,"tag":15,"props":940,"children":942},{"className":941},[],[943],{"type":20,"value":591},{"type":20,"value":833},{"type":10,"tag":15,"props":946,"children":948},{"className":947},[],[949],{"type":20,"value":599},{"type":20,"value":840},{"type":10,"tag":15,"props":952,"children":954},{"className":953},[],[955],{"type":20,"value":632},{"type":10,"tag":54,"props":957,"children":958},{},[959,964,965],{"type":10,"tag":15,"props":960,"children":962},{"className":961},[],[963],{"type":20,"value":905},{"type":20,"value":938},{"type":10,"tag":15,"props":966,"children":968},{"className":967},[],[969],{"type":20,"value":768},{"type":10,"tag":54,"props":971,"children":972},{},[973,978,979],{"type":10,"tag":15,"props":974,"children":976},{"className":975},[],[977],{"type":20,"value":913},{"type":20,"value":938},{"type":10,"tag":15,"props":980,"children":982},{"className":981},[],[983],{"type":20,"value":788},{"type":10,"tag":54,"props":985,"children":986},{},[987,992,993],{"type":10,"tag":15,"props":988,"children":990},{"className":989},[],[991],{"type":20,"value":920},{"type":20,"value":938},{"type":10,"tag":15,"props":994,"children":996},{"className":995},[],[997],{"type":20,"value":795},{"type":10,"tag":11,"props":999,"children":1000},{},[1001],{"type":20,"value":1002},"Function signatures:",{"type":10,"tag":1004,"props":1005,"children":1010},"pre",{"className":1006,"code":1007,"language":1008,"meta":1009,"style":1009},"language-c shiki shiki-themes github-light-default github-dark-default","// color\ngvec4 colorAttachmentReadEXT(gattachment attachmentEXT);\ngvec4 colorAttachmentReadEXT(gattachment attachmentEXT, int sample);\n\n// depth\nhighp float depthAttachmentReadEXT();\nhighp float depthAttachmentReadEXT(int sample);\n\n// stencil\nlowp uint stencilAttachmentReadEXT();\nlowp uint stencilAttachmentReadEXT(int sample);\n","c","",[1011],{"type":10,"tag":15,"props":1012,"children":1013},{"__ignoreMap":1009},[1014,1026,1056,1095,1105,1114,1138,1171,1179,1188,1211],{"type":10,"tag":1015,"props":1016,"children":1019},"span",{"class":1017,"line":1018},"line",1,[1020],{"type":10,"tag":1015,"props":1021,"children":1023},{"style":1022},"--shiki-default:#6E7781;--shiki-dark:#8B949E",[1024],{"type":20,"value":1025},"// color\n",{"type":10,"tag":1015,"props":1027,"children":1029},{"class":1017,"line":1028},2,[1030,1036,1041,1046,1051],{"type":10,"tag":1015,"props":1031,"children":1033},{"style":1032},"--shiki-default:#1F2328;--shiki-dark:#E6EDF3",[1034],{"type":20,"value":1035},"gvec4 ",{"type":10,"tag":1015,"props":1037,"children":1039},{"style":1038},"--shiki-default:#8250DF;--shiki-dark:#D2A8FF",[1040],{"type":20,"value":905},{"type":10,"tag":1015,"props":1042,"children":1043},{"style":1032},[1044],{"type":20,"value":1045},"(gattachment ",{"type":10,"tag":1015,"props":1047,"children":1049},{"style":1048},"--shiki-default:#953800;--shiki-dark:#FFA657",[1050],{"type":20,"value":870},{"type":10,"tag":1015,"props":1052,"children":1053},{"style":1032},[1054],{"type":20,"value":1055},");\n",{"type":10,"tag":1015,"props":1057,"children":1059},{"class":1017,"line":1058},3,[1060,1064,1068,1072,1076,1080,1086,1091],{"type":10,"tag":1015,"props":1061,"children":1062},{"style":1032},[1063],{"type":20,"value":1035},{"type":10,"tag":1015,"props":1065,"children":1066},{"style":1038},[1067],{"type":20,"value":905},{"type":10,"tag":1015,"props":1069,"children":1070},{"style":1032},[1071],{"type":20,"value":1045},{"type":10,"tag":1015,"props":1073,"children":1074},{"style":1048},[1075],{"type":20,"value":870},{"type":10,"tag":1015,"props":1077,"children":1078},{"style":1032},[1079],{"type":20,"value":907},{"type":10,"tag":1015,"props":1081,"children":1083},{"style":1082},"--shiki-default:#CF222E;--shiki-dark:#FF7B72",[1084],{"type":20,"value":1085},"int",{"type":10,"tag":1015,"props":1087,"children":1088},{"style":1048},[1089],{"type":20,"value":1090}," sample",{"type":10,"tag":1015,"props":1092,"children":1093},{"style":1032},[1094],{"type":20,"value":1055},{"type":10,"tag":1015,"props":1096,"children":1098},{"class":1017,"line":1097},4,[1099],{"type":10,"tag":1015,"props":1100,"children":1102},{"emptyLinePlaceholder":1101},true,[1103],{"type":20,"value":1104},"\n",{"type":10,"tag":1015,"props":1106,"children":1108},{"class":1017,"line":1107},5,[1109],{"type":10,"tag":1015,"props":1110,"children":1111},{"style":1022},[1112],{"type":20,"value":1113},"// depth\n",{"type":10,"tag":1015,"props":1115,"children":1117},{"class":1017,"line":1116},6,[1118,1123,1128,1133],{"type":10,"tag":1015,"props":1119,"children":1120},{"style":1032},[1121],{"type":20,"value":1122},"highp ",{"type":10,"tag":1015,"props":1124,"children":1125},{"style":1082},[1126],{"type":20,"value":1127},"float",{"type":10,"tag":1015,"props":1129,"children":1130},{"style":1038},[1131],{"type":20,"value":1132}," depthAttachmentReadEXT",{"type":10,"tag":1015,"props":1134,"children":1135},{"style":1032},[1136],{"type":20,"value":1137},"();\n",{"type":10,"tag":1015,"props":1139,"children":1141},{"class":1017,"line":1140},7,[1142,1146,1150,1154,1159,1163,1167],{"type":10,"tag":1015,"props":1143,"children":1144},{"style":1032},[1145],{"type":20,"value":1122},{"type":10,"tag":1015,"props":1147,"children":1148},{"style":1082},[1149],{"type":20,"value":1127},{"type":10,"tag":1015,"props":1151,"children":1152},{"style":1038},[1153],{"type":20,"value":1132},{"type":10,"tag":1015,"props":1155,"children":1156},{"style":1032},[1157],{"type":20,"value":1158},"(",{"type":10,"tag":1015,"props":1160,"children":1161},{"style":1082},[1162],{"type":20,"value":1085},{"type":10,"tag":1015,"props":1164,"children":1165},{"style":1048},[1166],{"type":20,"value":1090},{"type":10,"tag":1015,"props":1168,"children":1169},{"style":1032},[1170],{"type":20,"value":1055},{"type":10,"tag":1015,"props":1172,"children":1174},{"class":1017,"line":1173},8,[1175],{"type":10,"tag":1015,"props":1176,"children":1177},{"emptyLinePlaceholder":1101},[1178],{"type":20,"value":1104},{"type":10,"tag":1015,"props":1180,"children":1182},{"class":1017,"line":1181},9,[1183],{"type":10,"tag":1015,"props":1184,"children":1185},{"style":1022},[1186],{"type":20,"value":1187},"// stencil\n",{"type":10,"tag":1015,"props":1189,"children":1191},{"class":1017,"line":1190},10,[1192,1197,1202,1207],{"type":10,"tag":1015,"props":1193,"children":1194},{"style":1032},[1195],{"type":20,"value":1196},"lowp ",{"type":10,"tag":1015,"props":1198,"children":1199},{"style":1082},[1200],{"type":20,"value":1201},"uint",{"type":10,"tag":1015,"props":1203,"children":1204},{"style":1038},[1205],{"type":20,"value":1206}," stencilAttachmentReadEXT",{"type":10,"tag":1015,"props":1208,"children":1209},{"style":1032},[1210],{"type":20,"value":1137},{"type":10,"tag":1015,"props":1212,"children":1214},{"class":1017,"line":1213},11,[1215,1219,1223,1227,1231,1235,1239],{"type":10,"tag":1015,"props":1216,"children":1217},{"style":1032},[1218],{"type":20,"value":1196},{"type":10,"tag":1015,"props":1220,"children":1221},{"style":1082},[1222],{"type":20,"value":1201},{"type":10,"tag":1015,"props":1224,"children":1225},{"style":1038},[1226],{"type":20,"value":1206},{"type":10,"tag":1015,"props":1228,"children":1229},{"style":1032},[1230],{"type":20,"value":1158},{"type":10,"tag":1015,"props":1232,"children":1233},{"style":1082},[1234],{"type":20,"value":1085},{"type":10,"tag":1015,"props":1236,"children":1237},{"style":1048},[1238],{"type":20,"value":1090},{"type":10,"tag":1015,"props":1240,"children":1241},{"style":1032},[1242],{"type":20,"value":1055},{"type":10,"tag":93,"props":1244,"children":1246},{"id":1245},"_hlsl_changes",[1247],{"type":20,"value":1248},"HLSL Changes",{"type":10,"tag":33,"props":1250,"children":1252},{"id":1251},"_examples",[1253],{"type":20,"value":1254},"Examples",{"type":10,"tag":93,"props":1256,"children":1258},{"id":1257},"_color_reads",[1259],{"type":20,"value":1260},"Color reads",{"type":10,"tag":1004,"props":1262,"children":1264},{"className":1006,"code":1263,"language":1008,"meta":1009,"style":1009},"// ------ Subpass Example --------\nlayout( set = 0, binding = 0, input_attachment_index = 0 ) uniform highp subpassInput color0;\nlayout( set = 0, binding = 1, input_attachment_index = 1 ) uniform highp subpassInput color1;\n\nlayout( location = 0 ) out vec4 fragColor;\n\nvoid main()\n{\n vec4 value = subpassLoad(color0) + subpassLoad(color1);\n fragColor = value;\n}\n\n// ----- Equivalent Tile Image approach ------\n\n// NOTES:\n// 'tileImageEXT' is a storage qualifier.\n// 'attachmentEXT' is an opaque type; similar to subpassInput\n// 'aliased' means that the variable shares _tile image_ with the corresponding attachment; there is no in-memory aliasing\n\nlayout( location = 0 /* aliased to color attachment 0 */ ) tileImageEXT highp attachmentEXT color0;\nlayout( location = 1 /* aliased to color attachment 1 */ ) tileImageEXT highp attachmentEXT color1;\n\nlayout( location = 0 ) out vec4 fragColor;\n\nvoid main()\n{\n vec4 value = colorAttachmentReadEXT(color0) + colorAttachmentReadEXT(color1);\n fragColor = value;\n}\n",[1265],{"type":10,"tag":15,"props":1266,"children":1267},{"__ignoreMap":1009},[1268,1276,1331,1380,1387,1412,1419,1437,1445,1481,1498,1506,1514,1523,1531,1540,1549,1558,1567,1575,1605,1635,1643,1667,1675,1691,1699,1732,1748],{"type":10,"tag":1015,"props":1269,"children":1270},{"class":1017,"line":1018},[1271],{"type":10,"tag":1015,"props":1272,"children":1273},{"style":1022},[1274],{"type":20,"value":1275},"// ------ Subpass Example --------\n",{"type":10,"tag":1015,"props":1277,"children":1278},{"class":1017,"line":1028},[1279,1284,1289,1294,1300,1305,1309,1313,1318,1322,1326],{"type":10,"tag":1015,"props":1280,"children":1281},{"style":1038},[1282],{"type":20,"value":1283},"layout",{"type":10,"tag":1015,"props":1285,"children":1286},{"style":1032},[1287],{"type":20,"value":1288},"( set ",{"type":10,"tag":1015,"props":1290,"children":1291},{"style":1082},[1292],{"type":20,"value":1293},"=",{"type":10,"tag":1015,"props":1295,"children":1297},{"style":1296},"--shiki-default:#0550AE;--shiki-dark:#79C0FF",[1298],{"type":20,"value":1299}," 0",{"type":10,"tag":1015,"props":1301,"children":1302},{"style":1032},[1303],{"type":20,"value":1304},", binding ",{"type":10,"tag":1015,"props":1306,"children":1307},{"style":1082},[1308],{"type":20,"value":1293},{"type":10,"tag":1015,"props":1310,"children":1311},{"style":1296},[1312],{"type":20,"value":1299},{"type":10,"tag":1015,"props":1314,"children":1315},{"style":1032},[1316],{"type":20,"value":1317},", input_attachment_index ",{"type":10,"tag":1015,"props":1319,"children":1320},{"style":1082},[1321],{"type":20,"value":1293},{"type":10,"tag":1015,"props":1323,"children":1324},{"style":1296},[1325],{"type":20,"value":1299},{"type":10,"tag":1015,"props":1327,"children":1328},{"style":1032},[1329],{"type":20,"value":1330}," ) uniform highp subpassInput color0;\n",{"type":10,"tag":1015,"props":1332,"children":1333},{"class":1017,"line":1058},[1334,1338,1342,1346,1350,1354,1358,1363,1367,1371,1375],{"type":10,"tag":1015,"props":1335,"children":1336},{"style":1038},[1337],{"type":20,"value":1283},{"type":10,"tag":1015,"props":1339,"children":1340},{"style":1032},[1341],{"type":20,"value":1288},{"type":10,"tag":1015,"props":1343,"children":1344},{"style":1082},[1345],{"type":20,"value":1293},{"type":10,"tag":1015,"props":1347,"children":1348},{"style":1296},[1349],{"type":20,"value":1299},{"type":10,"tag":1015,"props":1351,"children":1352},{"style":1032},[1353],{"type":20,"value":1304},{"type":10,"tag":1015,"props":1355,"children":1356},{"style":1082},[1357],{"type":20,"value":1293},{"type":10,"tag":1015,"props":1359,"children":1360},{"style":1296},[1361],{"type":20,"value":1362}," 1",{"type":10,"tag":1015,"props":1364,"children":1365},{"style":1032},[1366],{"type":20,"value":1317},{"type":10,"tag":1015,"props":1368,"children":1369},{"style":1082},[1370],{"type":20,"value":1293},{"type":10,"tag":1015,"props":1372,"children":1373},{"style":1296},[1374],{"type":20,"value":1362},{"type":10,"tag":1015,"props":1376,"children":1377},{"style":1032},[1378],{"type":20,"value":1379}," ) uniform highp subpassInput color1;\n",{"type":10,"tag":1015,"props":1381,"children":1382},{"class":1017,"line":1097},[1383],{"type":10,"tag":1015,"props":1384,"children":1385},{"emptyLinePlaceholder":1101},[1386],{"type":20,"value":1104},{"type":10,"tag":1015,"props":1388,"children":1389},{"class":1017,"line":1107},[1390,1394,1399,1403,1407],{"type":10,"tag":1015,"props":1391,"children":1392},{"style":1038},[1393],{"type":20,"value":1283},{"type":10,"tag":1015,"props":1395,"children":1396},{"style":1032},[1397],{"type":20,"value":1398},"( location ",{"type":10,"tag":1015,"props":1400,"children":1401},{"style":1082},[1402],{"type":20,"value":1293},{"type":10,"tag":1015,"props":1404,"children":1405},{"style":1296},[1406],{"type":20,"value":1299},{"type":10,"tag":1015,"props":1408,"children":1409},{"style":1032},[1410],{"type":20,"value":1411}," ) out vec4 fragColor;\n",{"type":10,"tag":1015,"props":1413,"children":1414},{"class":1017,"line":1116},[1415],{"type":10,"tag":1015,"props":1416,"children":1417},{"emptyLinePlaceholder":1101},[1418],{"type":20,"value":1104},{"type":10,"tag":1015,"props":1420,"children":1421},{"class":1017,"line":1140},[1422,1427,1432],{"type":10,"tag":1015,"props":1423,"children":1424},{"style":1082},[1425],{"type":20,"value":1426},"void",{"type":10,"tag":1015,"props":1428,"children":1429},{"style":1038},[1430],{"type":20,"value":1431}," main",{"type":10,"tag":1015,"props":1433,"children":1434},{"style":1032},[1435],{"type":20,"value":1436},"()\n",{"type":10,"tag":1015,"props":1438,"children":1439},{"class":1017,"line":1173},[1440],{"type":10,"tag":1015,"props":1441,"children":1442},{"style":1032},[1443],{"type":20,"value":1444},"{\n",{"type":10,"tag":1015,"props":1446,"children":1447},{"class":1017,"line":1181},[1448,1453,1457,1462,1467,1472,1476],{"type":10,"tag":1015,"props":1449,"children":1450},{"style":1032},[1451],{"type":20,"value":1452}," vec4 value ",{"type":10,"tag":1015,"props":1454,"children":1455},{"style":1082},[1456],{"type":20,"value":1293},{"type":10,"tag":1015,"props":1458,"children":1459},{"style":1038},[1460],{"type":20,"value":1461}," subpassLoad",{"type":10,"tag":1015,"props":1463,"children":1464},{"style":1032},[1465],{"type":20,"value":1466},"(color0) ",{"type":10,"tag":1015,"props":1468,"children":1469},{"style":1082},[1470],{"type":20,"value":1471},"+",{"type":10,"tag":1015,"props":1473,"children":1474},{"style":1038},[1475],{"type":20,"value":1461},{"type":10,"tag":1015,"props":1477,"children":1478},{"style":1032},[1479],{"type":20,"value":1480},"(color1);\n",{"type":10,"tag":1015,"props":1482,"children":1483},{"class":1017,"line":1190},[1484,1489,1493],{"type":10,"tag":1015,"props":1485,"children":1486},{"style":1032},[1487],{"type":20,"value":1488}," fragColor ",{"type":10,"tag":1015,"props":1490,"children":1491},{"style":1082},[1492],{"type":20,"value":1293},{"type":10,"tag":1015,"props":1494,"children":1495},{"style":1032},[1496],{"type":20,"value":1497}," value;\n",{"type":10,"tag":1015,"props":1499,"children":1500},{"class":1017,"line":1213},[1501],{"type":10,"tag":1015,"props":1502,"children":1503},{"style":1032},[1504],{"type":20,"value":1505},"}\n",{"type":10,"tag":1015,"props":1507,"children":1509},{"class":1017,"line":1508},12,[1510],{"type":10,"tag":1015,"props":1511,"children":1512},{"emptyLinePlaceholder":1101},[1513],{"type":20,"value":1104},{"type":10,"tag":1015,"props":1515,"children":1517},{"class":1017,"line":1516},13,[1518],{"type":10,"tag":1015,"props":1519,"children":1520},{"style":1022},[1521],{"type":20,"value":1522},"// ----- Equivalent Tile Image approach ------\n",{"type":10,"tag":1015,"props":1524,"children":1526},{"class":1017,"line":1525},14,[1527],{"type":10,"tag":1015,"props":1528,"children":1529},{"emptyLinePlaceholder":1101},[1530],{"type":20,"value":1104},{"type":10,"tag":1015,"props":1532,"children":1534},{"class":1017,"line":1533},15,[1535],{"type":10,"tag":1015,"props":1536,"children":1537},{"style":1022},[1538],{"type":20,"value":1539},"// NOTES:\n",{"type":10,"tag":1015,"props":1541,"children":1543},{"class":1017,"line":1542},16,[1544],{"type":10,"tag":1015,"props":1545,"children":1546},{"style":1022},[1547],{"type":20,"value":1548},"// 'tileImageEXT' is a storage qualifier.\n",{"type":10,"tag":1015,"props":1550,"children":1552},{"class":1017,"line":1551},17,[1553],{"type":10,"tag":1015,"props":1554,"children":1555},{"style":1022},[1556],{"type":20,"value":1557},"// 'attachmentEXT' is an opaque type; similar to subpassInput\n",{"type":10,"tag":1015,"props":1559,"children":1561},{"class":1017,"line":1560},18,[1562],{"type":10,"tag":1015,"props":1563,"children":1564},{"style":1022},[1565],{"type":20,"value":1566},"// 'aliased' means that the variable shares _tile image_ with the corresponding attachment; there is no in-memory aliasing\n",{"type":10,"tag":1015,"props":1568,"children":1570},{"class":1017,"line":1569},19,[1571],{"type":10,"tag":1015,"props":1572,"children":1573},{"emptyLinePlaceholder":1101},[1574],{"type":20,"value":1104},{"type":10,"tag":1015,"props":1576,"children":1578},{"class":1017,"line":1577},20,[1579,1583,1587,1591,1595,1600],{"type":10,"tag":1015,"props":1580,"children":1581},{"style":1038},[1582],{"type":20,"value":1283},{"type":10,"tag":1015,"props":1584,"children":1585},{"style":1032},[1586],{"type":20,"value":1398},{"type":10,"tag":1015,"props":1588,"children":1589},{"style":1082},[1590],{"type":20,"value":1293},{"type":10,"tag":1015,"props":1592,"children":1593},{"style":1296},[1594],{"type":20,"value":1299},{"type":10,"tag":1015,"props":1596,"children":1597},{"style":1022},[1598],{"type":20,"value":1599}," /* aliased to color attachment 0 */",{"type":10,"tag":1015,"props":1601,"children":1602},{"style":1032},[1603],{"type":20,"value":1604}," ) tileImageEXT highp attachmentEXT color0;\n",{"type":10,"tag":1015,"props":1606,"children":1608},{"class":1017,"line":1607},21,[1609,1613,1617,1621,1625,1630],{"type":10,"tag":1015,"props":1610,"children":1611},{"style":1038},[1612],{"type":20,"value":1283},{"type":10,"tag":1015,"props":1614,"children":1615},{"style":1032},[1616],{"type":20,"value":1398},{"type":10,"tag":1015,"props":1618,"children":1619},{"style":1082},[1620],{"type":20,"value":1293},{"type":10,"tag":1015,"props":1622,"children":1623},{"style":1296},[1624],{"type":20,"value":1362},{"type":10,"tag":1015,"props":1626,"children":1627},{"style":1022},[1628],{"type":20,"value":1629}," /* aliased to color attachment 1 */",{"type":10,"tag":1015,"props":1631,"children":1632},{"style":1032},[1633],{"type":20,"value":1634}," ) tileImageEXT highp attachmentEXT color1;\n",{"type":10,"tag":1015,"props":1636,"children":1638},{"class":1017,"line":1637},22,[1639],{"type":10,"tag":1015,"props":1640,"children":1641},{"emptyLinePlaceholder":1101},[1642],{"type":20,"value":1104},{"type":10,"tag":1015,"props":1644,"children":1646},{"class":1017,"line":1645},23,[1647,1651,1655,1659,1663],{"type":10,"tag":1015,"props":1648,"children":1649},{"style":1038},[1650],{"type":20,"value":1283},{"type":10,"tag":1015,"props":1652,"children":1653},{"style":1032},[1654],{"type":20,"value":1398},{"type":10,"tag":1015,"props":1656,"children":1657},{"style":1082},[1658],{"type":20,"value":1293},{"type":10,"tag":1015,"props":1660,"children":1661},{"style":1296},[1662],{"type":20,"value":1299},{"type":10,"tag":1015,"props":1664,"children":1665},{"style":1032},[1666],{"type":20,"value":1411},{"type":10,"tag":1015,"props":1668,"children":1670},{"class":1017,"line":1669},24,[1671],{"type":10,"tag":1015,"props":1672,"children":1673},{"emptyLinePlaceholder":1101},[1674],{"type":20,"value":1104},{"type":10,"tag":1015,"props":1676,"children":1678},{"class":1017,"line":1677},25,[1679,1683,1687],{"type":10,"tag":1015,"props":1680,"children":1681},{"style":1082},[1682],{"type":20,"value":1426},{"type":10,"tag":1015,"props":1684,"children":1685},{"style":1038},[1686],{"type":20,"value":1431},{"type":10,"tag":1015,"props":1688,"children":1689},{"style":1032},[1690],{"type":20,"value":1436},{"type":10,"tag":1015,"props":1692,"children":1694},{"class":1017,"line":1693},26,[1695],{"type":10,"tag":1015,"props":1696,"children":1697},{"style":1032},[1698],{"type":20,"value":1444},{"type":10,"tag":1015,"props":1700,"children":1702},{"class":1017,"line":1701},27,[1703,1707,1711,1716,1720,1724,1728],{"type":10,"tag":1015,"props":1704,"children":1705},{"style":1032},[1706],{"type":20,"value":1452},{"type":10,"tag":1015,"props":1708,"children":1709},{"style":1082},[1710],{"type":20,"value":1293},{"type":10,"tag":1015,"props":1712,"children":1713},{"style":1038},[1714],{"type":20,"value":1715}," colorAttachmentReadEXT",{"type":10,"tag":1015,"props":1717,"children":1718},{"style":1032},[1719],{"type":20,"value":1466},{"type":10,"tag":1015,"props":1721,"children":1722},{"style":1082},[1723],{"type":20,"value":1471},{"type":10,"tag":1015,"props":1725,"children":1726},{"style":1038},[1727],{"type":20,"value":1715},{"type":10,"tag":1015,"props":1729,"children":1730},{"style":1032},[1731],{"type":20,"value":1480},{"type":10,"tag":1015,"props":1733,"children":1735},{"class":1017,"line":1734},28,[1736,1740,1744],{"type":10,"tag":1015,"props":1737,"children":1738},{"style":1032},[1739],{"type":20,"value":1488},{"type":10,"tag":1015,"props":1741,"children":1742},{"style":1082},[1743],{"type":20,"value":1293},{"type":10,"tag":1015,"props":1745,"children":1746},{"style":1032},[1747],{"type":20,"value":1497},{"type":10,"tag":1015,"props":1749,"children":1751},{"class":1017,"line":1750},29,[1752],{"type":10,"tag":1015,"props":1753,"children":1754},{"style":1032},[1755],{"type":20,"value":1505},{"type":10,"tag":418,"props":1757,"children":1759},{"id":1758},"_depth_reads",[1760],{"type":20,"value":1761},"Depth reads",{"type":10,"tag":1004,"props":1763,"children":1765},{"className":1006,"code":1764,"language":1008,"meta":1009,"style":1009},"void main()\n{\n // read sample 0: works for non-MSAA or MSAA targets\n highp float last_depth = depthAttachmentReadEXT();\n}\n",[1766],{"type":10,"tag":15,"props":1767,"children":1768},{"__ignoreMap":1009},[1769,1784,1791,1799,1828],{"type":10,"tag":1015,"props":1770,"children":1771},{"class":1017,"line":1018},[1772,1776,1780],{"type":10,"tag":1015,"props":1773,"children":1774},{"style":1082},[1775],{"type":20,"value":1426},{"type":10,"tag":1015,"props":1777,"children":1778},{"style":1038},[1779],{"type":20,"value":1431},{"type":10,"tag":1015,"props":1781,"children":1782},{"style":1032},[1783],{"type":20,"value":1436},{"type":10,"tag":1015,"props":1785,"children":1786},{"class":1017,"line":1028},[1787],{"type":10,"tag":1015,"props":1788,"children":1789},{"style":1032},[1790],{"type":20,"value":1444},{"type":10,"tag":1015,"props":1792,"children":1793},{"class":1017,"line":1058},[1794],{"type":10,"tag":1015,"props":1795,"children":1796},{"style":1022},[1797],{"type":20,"value":1798}," // read sample 0: works for non-MSAA or MSAA targets\n",{"type":10,"tag":1015,"props":1800,"children":1801},{"class":1017,"line":1097},[1802,1807,1811,1816,1820,1824],{"type":10,"tag":1015,"props":1803,"children":1804},{"style":1032},[1805],{"type":20,"value":1806}," highp ",{"type":10,"tag":1015,"props":1808,"children":1809},{"style":1082},[1810],{"type":20,"value":1127},{"type":10,"tag":1015,"props":1812,"children":1813},{"style":1032},[1814],{"type":20,"value":1815}," last_depth ",{"type":10,"tag":1015,"props":1817,"children":1818},{"style":1082},[1819],{"type":20,"value":1293},{"type":10,"tag":1015,"props":1821,"children":1822},{"style":1038},[1823],{"type":20,"value":1132},{"type":10,"tag":1015,"props":1825,"children":1826},{"style":1032},[1827],{"type":20,"value":1137},{"type":10,"tag":1015,"props":1829,"children":1830},{"class":1017,"line":1107},[1831],{"type":10,"tag":1015,"props":1832,"children":1833},{"style":1032},[1834],{"type":20,"value":1505},{"type":10,"tag":33,"props":1836,"children":1838},{"id":1837},"_alternate_proposals",[1839],{"type":20,"value":1840},"Alternate Proposals",{"type":10,"tag":11,"props":1842,"children":1843},{},[1844],{"type":20,"value":1845},"The following proposals explore alternate ways to expose the functionality for reading from the tile memory for color data - reading depth and stencil and the API changes are kept unchanged from the main proposal.",{"type":10,"tag":93,"props":1847,"children":1849},{"id":1848},"_proposal_b_optypetileimage",[1850],{"type":20,"value":1851},"Proposal B: OpTypeTileImage",{"type":10,"tag":418,"props":1853,"children":1855},{"id":1854},"_spir_v_changes_2",[1856],{"type":20,"value":1857},"SPIR-V Changes",{"type":10,"tag":11,"props":1859,"children":1860},{},[1861,1863,1869,1871,1876],{"type":20,"value":1862},"Add new type: ",{"type":10,"tag":15,"props":1864,"children":1866},{"className":1865},[],[1867],{"type":20,"value":1868},"TileImage",{"type":20,"value":1870},". We have two options for defining ",{"type":10,"tag":15,"props":1872,"children":1874},{"className":1873},[],[1875],{"type":20,"value":1868},{"type":20,"value":657},{"type":10,"tag":133,"props":1878,"children":1879},{},[1880,1890],{"type":10,"tag":54,"props":1881,"children":1882},{},[1883,1888],{"type":10,"tag":15,"props":1884,"children":1886},{"className":1885},[],[1887],{"type":20,"value":1868},{"type":20,"value":1889}," variables which are instanced per-pixel (or per-sample in case of multisampled framebuffers)",{"type":10,"tag":54,"props":1891,"children":1892},{},[1893,1898,1900],{"type":10,"tag":15,"props":1894,"children":1896},{"className":1895},[],[1897],{"type":20,"value":1868},{"type":20,"value":1899}," defines a 2D array of pixels similar to an image but in tile memory.",{"type":10,"tag":133,"props":1901,"children":1902},{},[1903],{"type":10,"tag":54,"props":1904,"children":1905},{},[1906,1908,1914],{"type":20,"value":1907},"Note: Defining this as a 2D array fits well for future ",{"type":10,"tag":15,"props":1909,"children":1911},{"className":1910},[],[1912],{"type":20,"value":1913},"Tile Shaders",{"type":20,"value":1915}," functionality where tile shader invocations on a tile can access any location within a TileImage on the tile.",{"type":10,"tag":11,"props":1917,"children":1918},{},[1919,1921,1927,1929,1934,1936,1942,1944,1949],{"type":20,"value":1920},"Add new instruction: ",{"type":10,"tag":15,"props":1922,"children":1924},{"className":1923},[],[1925],{"type":20,"value":1926},"OpTypeTileImage",{"type":20,"value":1928},". The instruction declares a ",{"type":10,"tag":15,"props":1930,"children":1932},{"className":1931},[],[1933],{"type":20,"value":307},{"type":20,"value":1935},". ",{"type":10,"tag":15,"props":1937,"children":1939},{"className":1938},[],[1940],{"type":20,"value":1941},"Tile image",{"type":20,"value":1943}," is an opaque type. ",{"type":10,"tag":15,"props":1945,"children":1947},{"className":1946},[],[1948],{"type":20,"value":1926},{"type":20,"value":1950}," has the following operands:",{"type":10,"tag":50,"props":1952,"children":1953},{},[1954,1978],{"type":10,"tag":54,"props":1955,"children":1956},{},[1957,1962,1964,1969,1971],{"type":10,"tag":15,"props":1958,"children":1960},{"className":1959},[],[1961],{"type":20,"value":694},{"type":20,"value":1963},": the imageformat. This must be set to ",{"type":10,"tag":15,"props":1965,"children":1967},{"className":1966},[],[1968],{"type":20,"value":702},{"type":20,"value":1970}," as the format is implicitly specified by the color attachment.",{"type":10,"tag":50,"props":1972,"children":1973},{},[1974],{"type":10,"tag":54,"props":1975,"children":1976},{},[1977],{"type":20,"value":712},{"type":10,"tag":54,"props":1979,"children":1980},{},[1981,1987],{"type":10,"tag":15,"props":1982,"children":1984},{"className":1983},[],[1985],{"type":20,"value":1986},"MS",{"type":20,"value":1988}," : indicates whether the content is multisampled. 0 - single-sampled. 1 - multisampled.",{"type":10,"tag":11,"props":1990,"children":1991},{},[1992,1997,1999,2004,2006,2011,2012,2017],{"type":10,"tag":15,"props":1993,"children":1995},{"className":1994},[],[1996],{"type":20,"value":1941},{"type":20,"value":1998}," variables must be decorated with ",{"type":10,"tag":15,"props":2000,"children":2002},{"className":2001},[],[2003],{"type":20,"value":755},{"type":20,"value":2005}," which specifies the color attachment index.\n",{"type":10,"tag":15,"props":2007,"children":2009},{"className":2008},[],[2010],{"type":20,"value":721},{"type":20,"value":696},{"type":10,"tag":15,"props":2013,"children":2015},{"className":2014},[],[2016],{"type":20,"value":728},{"type":20,"value":484},{"type":10,"tag":11,"props":2019,"children":2020},{},[2021,2022,2028,2029,2035,2036,2042,2044,2050],{"type":20,"value":762},{"type":10,"tag":15,"props":2023,"children":2025},{"className":2024},[],[2026],{"type":20,"value":2027},"OpTileImageRead",{"type":20,"value":907},{"type":10,"tag":15,"props":2030,"children":2032},{"className":2031},[],[2033],{"type":20,"value":2034},"OpDepthTileImageRead",{"type":20,"value":907},{"type":10,"tag":15,"props":2037,"children":2039},{"className":2038},[],[2040],{"type":20,"value":2041},"OpStencilTileImageRead",{"type":20,"value":2043}," to read from color, depth, stencil tile images.\nAdd ",{"type":10,"tag":15,"props":2045,"children":2047},{"className":2046},[],[2048],{"type":20,"value":2049},"Tile",{"type":20,"value":2051}," storage class.",{"type":10,"tag":418,"props":2053,"children":2055},{"id":2054},"_glsl_changes_2",[2056],{"type":20,"value":2057},"GLSL Changes",{"type":10,"tag":11,"props":2059,"children":2060},{},[2061,2063,2068,2070,2075],{"type":20,"value":2062},"GLSL changes remain the same as in the main proposal except the mapping changes to ",{"type":10,"tag":15,"props":2064,"children":2066},{"className":2065},[],[2067],{"type":20,"value":1926},{"type":20,"value":2069}," instead of ",{"type":10,"tag":15,"props":2071,"children":2073},{"className":2072},[],[2074],{"type":20,"value":591},{"type":20,"value":657},{"type":10,"tag":50,"props":2077,"children":2078},{},[2079],{"type":10,"tag":54,"props":2080,"children":2081},{},[2082,2088,2089],{"type":10,"tag":15,"props":2083,"children":2085},{"className":2084},[],[2086],{"type":20,"value":2087},"tileImage",{"type":20,"value":938},{"type":10,"tag":15,"props":2090,"children":2092},{"className":2091},[],[2093],{"type":20,"value":1926},{"type":10,"tag":93,"props":2095,"children":2097},{"id":2096},"_proposal_c_storage_class_pls_style",[2098],{"type":20,"value":2099},"Proposal C: Storage Class / PLS style",{"type":10,"tag":418,"props":2101,"children":2103},{"id":2102},"_spir_v_changes_3",[2104],{"type":20,"value":1857},{"type":10,"tag":11,"props":2106,"children":2107},{},[2108,2110,2115],{"type":20,"value":2109},"Introduce ",{"type":10,"tag":15,"props":2111,"children":2113},{"className":2112},[],[2114],{"type":20,"value":1868},{"type":20,"value":2116}," as a new storage class.",{"type":10,"tag":50,"props":2118,"children":2119},{},[2120,2139,2152,2162,2194],{"type":10,"tag":54,"props":2121,"children":2122},{},[2123,2125,2130,2132,2137],{"type":20,"value":2124},"Variables declared with ",{"type":10,"tag":15,"props":2126,"children":2128},{"className":2127},[],[2129],{"type":20,"value":1868},{"type":20,"value":2131}," must have ",{"type":10,"tag":15,"props":2133,"children":2135},{"className":2134},[],[2136],{"type":20,"value":755},{"type":20,"value":2138}," decoration specified - this specifies the attachment index to alias to.",{"type":10,"tag":54,"props":2140,"children":2141},{},[2142,2144,2150],{"type":20,"value":2143},"If image format reinterpretation is to be supported then a new ",{"type":10,"tag":15,"props":2145,"children":2147},{"className":2146},[],[2148],{"type":20,"value":2149},"Imageformat",{"type":20,"value":2151}," decoration is specified.",{"type":10,"tag":54,"props":2153,"children":2154},{},[2155,2160],{"type":10,"tag":15,"props":2156,"children":2158},{"className":2157},[],[2159],{"type":20,"value":1868},{"type":20,"value":2161}," storage class variables are multisampled with the sample count of the framebuffer if multisampling is enabled.",{"type":10,"tag":54,"props":2163,"children":2164},{},[2165,2167,2172,2173],{"type":20,"value":2166},"Reading of TileImage variables is done via ",{"type":10,"tag":15,"props":2168,"children":2170},{"className":2169},[],[2171],{"type":20,"value":2027},{"type":20,"value":484},{"type":10,"tag":50,"props":2174,"children":2175},{},[2176],{"type":10,"tag":54,"props":2177,"children":2178},{},[2179,2184,2186,2192],{"type":10,"tag":15,"props":2180,"children":2182},{"className":2181},[],[2183],{"type":20,"value":2027},{"type":20,"value":2185}," which accepts a ",{"type":10,"tag":15,"props":2187,"children":2189},{"className":2188},[],[2190],{"type":20,"value":2191},"sample",{"type":20,"value":2193}," parameter for MSAA use cases.",{"type":10,"tag":54,"props":2195,"children":2196},{},[2197,2199,2204,2206],{"type":20,"value":2198},"If aggregate types are to be supported in ",{"type":10,"tag":15,"props":2200,"children":2202},{"className":2201},[],[2203],{"type":20,"value":1868},{"type":20,"value":2205}," storage class, we would need the following:",{"type":10,"tag":50,"props":2207,"children":2208},{},[2209],{"type":10,"tag":54,"props":2210,"children":2211},{},[2212,2217,2218,2223],{"type":10,"tag":15,"props":2213,"children":2215},{"className":2214},[],[2216],{"type":20,"value":755},{"type":20,"value":404},{"type":10,"tag":15,"props":2219,"children":2221},{"className":2220},[],[2222],{"type":20,"value":2149},{"type":20,"value":2224}," must only be applied to non-structure type (that is, scalars or vectors or arrays of scalars or arrays of vectors).",{"type":10,"tag":418,"props":2226,"children":2228},{"id":2227},"_glsl_changes_3",[2229],{"type":20,"value":2057},{"type":10,"tag":50,"props":2231,"children":2232},{},[2233,2244,2256,2268,2286],{"type":10,"tag":54,"props":2234,"children":2235},{},[2236,2238,2243],{"type":20,"value":2237},"New storage class ",{"type":10,"tag":15,"props":2239,"children":2241},{"className":2240},[],[2242],{"type":20,"value":2087},{"type":20,"value":484},{"type":10,"tag":54,"props":2245,"children":2246},{},[2247,2249,2254],{"type":20,"value":2248},"Add support for grouping ",{"type":10,"tag":15,"props":2250,"children":2252},{"className":2251},[],[2253],{"type":20,"value":2087},{"type":20,"value":2255}," variable declarations into an interface block.",{"type":10,"tag":54,"props":2257,"children":2258},{},[2259,2261,2266],{"type":20,"value":2260},"layout ",{"type":10,"tag":15,"props":2262,"children":2264},{"className":2263},[],[2265],{"type":20,"value":881},{"type":20,"value":2267}," must be specified for the variables.",{"type":10,"tag":54,"props":2269,"children":2270},{},[2271,2273,2279,2281],{"type":20,"value":2272},"Add new builtin function ",{"type":10,"tag":15,"props":2274,"children":2276},{"className":2275},[],[2277],{"type":20,"value":2278},"tileImageRead",{"type":20,"value":2280},", which accepts an optional parameter ",{"type":10,"tag":15,"props":2282,"children":2284},{"className":2283},[],[2285],{"type":20,"value":2191},{"type":10,"tag":54,"props":2287,"children":2288},{},[2289,2291,2297,2298,2304,2306,2311,2313,2319,2321,2327,2328,2334],{"type":20,"value":2290},"If reinterpretation of formats is supported (within the same draw call), then we need ",{"type":10,"tag":15,"props":2292,"children":2294},{"className":2293},[],[2295],{"type":20,"value":2296},"tileImageIn",{"type":20,"value":404},{"type":10,"tag":15,"props":2299,"children":2301},{"className":2300},[],[2302],{"type":20,"value":2303},"tileImageOut",{"type":20,"value":2305}," (or make ",{"type":10,"tag":15,"props":2307,"children":2309},{"className":2308},[],[2310],{"type":20,"value":2087},{"type":20,"value":2312}," an auxiliary storage specifier, similar to ",{"type":10,"tag":15,"props":2314,"children":2316},{"className":2315},[],[2317],{"type":20,"value":2318},"patch",{"type":20,"value":2320}," so we could use ",{"type":10,"tag":15,"props":2322,"children":2324},{"className":2323},[],[2325],{"type":20,"value":2326},"tileImage in",{"type":20,"value":404},{"type":10,"tag":15,"props":2329,"children":2331},{"className":2330},[],[2332],{"type":20,"value":2333},"tileImage out",{"type":20,"value":2335},").",{"type":10,"tag":33,"props":2337,"children":2339},{"id":2338},"_non_coherent_access",[2340],{"type":20,"value":2341},"Non-coherent access",{"type":10,"tag":11,"props":2343,"children":2344},{},[2345],{"type":20,"value":2346},"Some implementations have a penalty for support raster order access to tile image data. To support this functionality on such implementations we would add the following changes to the base proposal:",{"type":10,"tag":93,"props":2348,"children":2350},{"id":2349},"_api_changes_2",[2351],{"type":20,"value":2352},"API Changes",{"type":10,"tag":50,"props":2354,"children":2355},{},[2356,2369,2374],{"type":10,"tag":54,"props":2357,"children":2358},{},[2359,2361,2367],{"type":20,"value":2360},"A property bit ",{"type":10,"tag":15,"props":2362,"children":2364},{"className":2363},[],[2365],{"type":20,"value":2366},"shaderTileImagePreferCoherentReadAccess",{"type":20,"value":2368}," indicating whether the implementation prefers coherent read accesses are used.",{"type":10,"tag":54,"props":2370,"children":2371},{},[2372],{"type":20,"value":2373},"Support for specifying the barriers - three broad options (see next section)",{"type":10,"tag":54,"props":2375,"children":2376},{},[2377],{"type":20,"value":2378},"Note: The gains from tile image feature with raster order access enabled are expected to match the gains from subpasses.",{"type":10,"tag":93,"props":2380,"children":2382},{"id":2381},"_barrier_proposal_a_memorybarrier_via_vkcmdpipelinebarrier2",[2383],{"type":20,"value":2384},"Barrier Proposal A: MemoryBarrier via vkCmdPipelineBarrier2",{"type":10,"tag":11,"props":2386,"children":2387},{},[2388,2393,2395,2400,2402,2407,2408,2413],{"type":10,"tag":15,"props":2389,"children":2391},{"className":2390},[],[2392],{"type":20,"value":451},{"type":20,"value":2394}," would be allowed within dynamic render passes to specify a ",{"type":10,"tag":15,"props":2396,"children":2398},{"className":2397},[],[2399],{"type":20,"value":516},{"type":20,"value":2401}," with some restrictions. The enums ",{"type":10,"tag":15,"props":2403,"children":2405},{"className":2404},[],[2406],{"type":20,"value":550},{"type":20,"value":404},{"type":10,"tag":15,"props":2409,"children":2411},{"className":2410},[],[2412],{"type":20,"value":565},{"type":20,"value":2414}," are reused for tileimage read accesses.",{"type":10,"tag":11,"props":2416,"children":2417},{},[2418],{"type":20,"value":2419},"This approach would allow synchronizing all color attachments, or depth stencil attachment, but does not support synchronizing individual color attachments.",{"type":10,"tag":11,"props":2421,"children":2422},{},[2423],{"type":20,"value":2424},"Example synchronizing two draw calls, where the first writes to color attachments and the second reads via the tileimage variables.",{"type":10,"tag":1004,"props":2426,"children":2428},{"className":1006,"code":2427,"language":1008,"meta":1009,"style":1009},"vkCmdDraw(...);\n\nVkMemoryBarrier2 memoryBarrier = {\n ...\n .srcStageMask = VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT,\n .srcAccessMask = VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT,\n .dstStageMask = VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT,\n .dstAccessMask = VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT\n};\n\nVkDependencyInfo dependencyInfo {\n ...\n VK_DEPENDENCY_BY_REGION, //dependency flags\n 1, //memory barrier count\n &memoryBarrier, //memory barrier\n ...\n};\n\nvkCmdPipelineBarrier2(commandBuffer, &dependencyInfo);\n\nvkCmdDraw(...);\n",[2429],{"type":10,"tag":15,"props":2430,"children":2431},{"__ignoreMap":1009},[2432,2445,2452,2469,2477,2494,2511,2528,2545,2553,2560,2568,2575,2588,2606,2624,2631,2638,2645,2671,2678],{"type":10,"tag":1015,"props":2433,"children":2434},{"class":1017,"line":1018},[2435,2440],{"type":10,"tag":1015,"props":2436,"children":2437},{"style":1038},[2438],{"type":20,"value":2439},"vkCmdDraw",{"type":10,"tag":1015,"props":2441,"children":2442},{"style":1032},[2443],{"type":20,"value":2444},"(...);\n",{"type":10,"tag":1015,"props":2446,"children":2447},{"class":1017,"line":1028},[2448],{"type":10,"tag":1015,"props":2449,"children":2450},{"emptyLinePlaceholder":1101},[2451],{"type":20,"value":1104},{"type":10,"tag":1015,"props":2453,"children":2454},{"class":1017,"line":1058},[2455,2460,2464],{"type":10,"tag":1015,"props":2456,"children":2457},{"style":1032},[2458],{"type":20,"value":2459},"VkMemoryBarrier2 memoryBarrier ",{"type":10,"tag":1015,"props":2461,"children":2462},{"style":1082},[2463],{"type":20,"value":1293},{"type":10,"tag":1015,"props":2465,"children":2466},{"style":1032},[2467],{"type":20,"value":2468}," {\n",{"type":10,"tag":1015,"props":2470,"children":2471},{"class":1017,"line":1097},[2472],{"type":10,"tag":1015,"props":2473,"children":2474},{"style":1032},[2475],{"type":20,"value":2476}," ...\n",{"type":10,"tag":1015,"props":2478,"children":2479},{"class":1017,"line":1107},[2480,2485,2489],{"type":10,"tag":1015,"props":2481,"children":2482},{"style":1032},[2483],{"type":20,"value":2484}," .srcStageMask ",{"type":10,"tag":1015,"props":2486,"children":2487},{"style":1082},[2488],{"type":20,"value":1293},{"type":10,"tag":1015,"props":2490,"children":2491},{"style":1032},[2492],{"type":20,"value":2493}," VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT,\n",{"type":10,"tag":1015,"props":2495,"children":2496},{"class":1017,"line":1116},[2497,2502,2506],{"type":10,"tag":1015,"props":2498,"children":2499},{"style":1032},[2500],{"type":20,"value":2501}," .srcAccessMask ",{"type":10,"tag":1015,"props":2503,"children":2504},{"style":1082},[2505],{"type":20,"value":1293},{"type":10,"tag":1015,"props":2507,"children":2508},{"style":1032},[2509],{"type":20,"value":2510}," VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT,\n",{"type":10,"tag":1015,"props":2512,"children":2513},{"class":1017,"line":1140},[2514,2519,2523],{"type":10,"tag":1015,"props":2515,"children":2516},{"style":1032},[2517],{"type":20,"value":2518}," .dstStageMask ",{"type":10,"tag":1015,"props":2520,"children":2521},{"style":1082},[2522],{"type":20,"value":1293},{"type":10,"tag":1015,"props":2524,"children":2525},{"style":1032},[2526],{"type":20,"value":2527}," VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT,\n",{"type":10,"tag":1015,"props":2529,"children":2530},{"class":1017,"line":1173},[2531,2536,2540],{"type":10,"tag":1015,"props":2532,"children":2533},{"style":1032},[2534],{"type":20,"value":2535}," .dstAccessMask ",{"type":10,"tag":1015,"props":2537,"children":2538},{"style":1082},[2539],{"type":20,"value":1293},{"type":10,"tag":1015,"props":2541,"children":2542},{"style":1032},[2543],{"type":20,"value":2544}," VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT\n",{"type":10,"tag":1015,"props":2546,"children":2547},{"class":1017,"line":1181},[2548],{"type":10,"tag":1015,"props":2549,"children":2550},{"style":1032},[2551],{"type":20,"value":2552},"};\n",{"type":10,"tag":1015,"props":2554,"children":2555},{"class":1017,"line":1190},[2556],{"type":10,"tag":1015,"props":2557,"children":2558},{"emptyLinePlaceholder":1101},[2559],{"type":20,"value":1104},{"type":10,"tag":1015,"props":2561,"children":2562},{"class":1017,"line":1213},[2563],{"type":10,"tag":1015,"props":2564,"children":2565},{"style":1032},[2566],{"type":20,"value":2567},"VkDependencyInfo dependencyInfo {\n",{"type":10,"tag":1015,"props":2569,"children":2570},{"class":1017,"line":1508},[2571],{"type":10,"tag":1015,"props":2572,"children":2573},{"style":1032},[2574],{"type":20,"value":2476},{"type":10,"tag":1015,"props":2576,"children":2577},{"class":1017,"line":1516},[2578,2583],{"type":10,"tag":1015,"props":2579,"children":2580},{"style":1032},[2581],{"type":20,"value":2582}," VK_DEPENDENCY_BY_REGION,",{"type":10,"tag":1015,"props":2584,"children":2585},{"style":1022},[2586],{"type":20,"value":2587}," //dependency flags\n",{"type":10,"tag":1015,"props":2589,"children":2590},{"class":1017,"line":1525},[2591,2596,2601],{"type":10,"tag":1015,"props":2592,"children":2593},{"style":1296},[2594],{"type":20,"value":2595}," 1",{"type":10,"tag":1015,"props":2597,"children":2598},{"style":1032},[2599],{"type":20,"value":2600},",",{"type":10,"tag":1015,"props":2602,"children":2603},{"style":1022},[2604],{"type":20,"value":2605}," //memory barrier count\n",{"type":10,"tag":1015,"props":2607,"children":2608},{"class":1017,"line":1533},[2609,2614,2619],{"type":10,"tag":1015,"props":2610,"children":2611},{"style":1082},[2612],{"type":20,"value":2613}," &",{"type":10,"tag":1015,"props":2615,"children":2616},{"style":1032},[2617],{"type":20,"value":2618},"memoryBarrier,",{"type":10,"tag":1015,"props":2620,"children":2621},{"style":1022},[2622],{"type":20,"value":2623}," //memory barrier\n",{"type":10,"tag":1015,"props":2625,"children":2626},{"class":1017,"line":1542},[2627],{"type":10,"tag":1015,"props":2628,"children":2629},{"style":1032},[2630],{"type":20,"value":2476},{"type":10,"tag":1015,"props":2632,"children":2633},{"class":1017,"line":1551},[2634],{"type":10,"tag":1015,"props":2635,"children":2636},{"style":1032},[2637],{"type":20,"value":2552},{"type":10,"tag":1015,"props":2639,"children":2640},{"class":1017,"line":1560},[2641],{"type":10,"tag":1015,"props":2642,"children":2643},{"emptyLinePlaceholder":1101},[2644],{"type":20,"value":1104},{"type":10,"tag":1015,"props":2646,"children":2647},{"class":1017,"line":1569},[2648,2652,2657,2662,2667],{"type":10,"tag":1015,"props":2649,"children":2650},{"style":1038},[2651],{"type":20,"value":451},{"type":10,"tag":1015,"props":2653,"children":2654},{"style":1032},[2655],{"type":20,"value":2656},"(commandBuffer, ",{"type":10,"tag":1015,"props":2658,"children":2659},{"style":1082},[2660],{"type":20,"value":2661},"&",{"type":10,"tag":1015,"props":2663,"children":2664},{"style":1048},[2665],{"type":20,"value":2666},"dependencyInfo",{"type":10,"tag":1015,"props":2668,"children":2669},{"style":1032},[2670],{"type":20,"value":1055},{"type":10,"tag":1015,"props":2672,"children":2673},{"class":1017,"line":1577},[2674],{"type":10,"tag":1015,"props":2675,"children":2676},{"emptyLinePlaceholder":1101},[2677],{"type":20,"value":1104},{"type":10,"tag":1015,"props":2679,"children":2680},{"class":1017,"line":1607},[2681,2685],{"type":10,"tag":1015,"props":2682,"children":2683},{"style":1038},[2684],{"type":20,"value":2439},{"type":10,"tag":1015,"props":2686,"children":2687},{"style":1032},[2688],{"type":20,"value":2444},{"type":10,"tag":93,"props":2690,"children":2692},{"id":2691},"_barrier_proposal_b_imagememorybarrier_via_vkcmdpipelinebarrier2",[2693],{"type":20,"value":2694},"Barrier Proposal B: ImageMemoryBarrier via vkCmdPipelineBarrier2",{"type":10,"tag":11,"props":2696,"children":2697},{},[2698,2703,2704,2709,2710,2715,2716,2721],{"type":10,"tag":15,"props":2699,"children":2701},{"className":2700},[],[2702],{"type":20,"value":451},{"type":20,"value":2394},{"type":10,"tag":15,"props":2705,"children":2707},{"className":2706},[],[2708],{"type":20,"value":516},{"type":20,"value":2401},{"type":10,"tag":15,"props":2711,"children":2713},{"className":2712},[],[2714],{"type":20,"value":550},{"type":20,"value":404},{"type":10,"tag":15,"props":2717,"children":2719},{"className":2718},[],[2720],{"type":20,"value":565},{"type":20,"value":2722}," are reused to express tileimage read accesses.",{"type":10,"tag":11,"props":2724,"children":2725},{},[2726],{"type":20,"value":2727},"This approach would allow synchronizing individual color attachments, or depth or stencil attachment.",{"type":10,"tag":11,"props":2729,"children":2730},{},[2731],{"type":20,"value":2424},{"type":10,"tag":1004,"props":2733,"children":2735},{"className":1006,"code":2734,"language":1008,"meta":1009,"style":1009},"vkCmdDraw(...);\n\nVkImageMemoryBarrier2 imageMemoryBarrier = {\n ...\n .srcStageMask = VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT,\n .srcAccessMask = VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT,\n .dstStageMask = VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT,\n .dstAccessMask = VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT,\n .oldLayout = ..., //layouts not allowed to be changed.\n .newLayout ...,\n .image = .., //image and subresource identifying the specific attachment.\n .subresourceRange = ..\n};\n\nVkDependencyInfo dependencyInfo {\n ...\n VK_DEPENDENCY_BY_REGION, //dependency flags\n ...\n 1, //image memory barrier count\n &imageMemoryBarrier, //memory barrier\n ...\n};\n\nvkCmdPipelineBarrier2(commandBuffer, &dependencyInfo);\n\nvkCmdDraw(...);\n",[2736],{"type":10,"tag":15,"props":2737,"children":2738},{"__ignoreMap":1009},[2739,2750,2757,2773,2780,2795,2810,2825,2841,2863,2871,2893,2910,2917,2924,2931,2938,2949,2956,2972,2988,2995,3002,3009,3032,3039],{"type":10,"tag":1015,"props":2740,"children":2741},{"class":1017,"line":1018},[2742,2746],{"type":10,"tag":1015,"props":2743,"children":2744},{"style":1038},[2745],{"type":20,"value":2439},{"type":10,"tag":1015,"props":2747,"children":2748},{"style":1032},[2749],{"type":20,"value":2444},{"type":10,"tag":1015,"props":2751,"children":2752},{"class":1017,"line":1028},[2753],{"type":10,"tag":1015,"props":2754,"children":2755},{"emptyLinePlaceholder":1101},[2756],{"type":20,"value":1104},{"type":10,"tag":1015,"props":2758,"children":2759},{"class":1017,"line":1058},[2760,2765,2769],{"type":10,"tag":1015,"props":2761,"children":2762},{"style":1032},[2763],{"type":20,"value":2764},"VkImageMemoryBarrier2 imageMemoryBarrier ",{"type":10,"tag":1015,"props":2766,"children":2767},{"style":1082},[2768],{"type":20,"value":1293},{"type":10,"tag":1015,"props":2770,"children":2771},{"style":1032},[2772],{"type":20,"value":2468},{"type":10,"tag":1015,"props":2774,"children":2775},{"class":1017,"line":1097},[2776],{"type":10,"tag":1015,"props":2777,"children":2778},{"style":1032},[2779],{"type":20,"value":2476},{"type":10,"tag":1015,"props":2781,"children":2782},{"class":1017,"line":1107},[2783,2787,2791],{"type":10,"tag":1015,"props":2784,"children":2785},{"style":1032},[2786],{"type":20,"value":2484},{"type":10,"tag":1015,"props":2788,"children":2789},{"style":1082},[2790],{"type":20,"value":1293},{"type":10,"tag":1015,"props":2792,"children":2793},{"style":1032},[2794],{"type":20,"value":2493},{"type":10,"tag":1015,"props":2796,"children":2797},{"class":1017,"line":1116},[2798,2802,2806],{"type":10,"tag":1015,"props":2799,"children":2800},{"style":1032},[2801],{"type":20,"value":2501},{"type":10,"tag":1015,"props":2803,"children":2804},{"style":1082},[2805],{"type":20,"value":1293},{"type":10,"tag":1015,"props":2807,"children":2808},{"style":1032},[2809],{"type":20,"value":2510},{"type":10,"tag":1015,"props":2811,"children":2812},{"class":1017,"line":1140},[2813,2817,2821],{"type":10,"tag":1015,"props":2814,"children":2815},{"style":1032},[2816],{"type":20,"value":2518},{"type":10,"tag":1015,"props":2818,"children":2819},{"style":1082},[2820],{"type":20,"value":1293},{"type":10,"tag":1015,"props":2822,"children":2823},{"style":1032},[2824],{"type":20,"value":2527},{"type":10,"tag":1015,"props":2826,"children":2827},{"class":1017,"line":1173},[2828,2832,2836],{"type":10,"tag":1015,"props":2829,"children":2830},{"style":1032},[2831],{"type":20,"value":2535},{"type":10,"tag":1015,"props":2833,"children":2834},{"style":1082},[2835],{"type":20,"value":1293},{"type":10,"tag":1015,"props":2837,"children":2838},{"style":1032},[2839],{"type":20,"value":2840}," VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT,\n",{"type":10,"tag":1015,"props":2842,"children":2843},{"class":1017,"line":1181},[2844,2849,2853,2858],{"type":10,"tag":1015,"props":2845,"children":2846},{"style":1032},[2847],{"type":20,"value":2848}," .oldLayout ",{"type":10,"tag":1015,"props":2850,"children":2851},{"style":1082},[2852],{"type":20,"value":1293},{"type":10,"tag":1015,"props":2854,"children":2855},{"style":1032},[2856],{"type":20,"value":2857}," ...,",{"type":10,"tag":1015,"props":2859,"children":2860},{"style":1022},[2861],{"type":20,"value":2862}," //layouts not allowed to be changed.\n",{"type":10,"tag":1015,"props":2864,"children":2865},{"class":1017,"line":1190},[2866],{"type":10,"tag":1015,"props":2867,"children":2868},{"style":1032},[2869],{"type":20,"value":2870}," .newLayout ...,\n",{"type":10,"tag":1015,"props":2872,"children":2873},{"class":1017,"line":1213},[2874,2879,2883,2888],{"type":10,"tag":1015,"props":2875,"children":2876},{"style":1032},[2877],{"type":20,"value":2878}," .image ",{"type":10,"tag":1015,"props":2880,"children":2881},{"style":1082},[2882],{"type":20,"value":1293},{"type":10,"tag":1015,"props":2884,"children":2885},{"style":1032},[2886],{"type":20,"value":2887}," ..,",{"type":10,"tag":1015,"props":2889,"children":2890},{"style":1022},[2891],{"type":20,"value":2892}," //image and subresource identifying the specific attachment.\n",{"type":10,"tag":1015,"props":2894,"children":2895},{"class":1017,"line":1508},[2896,2901,2905],{"type":10,"tag":1015,"props":2897,"children":2898},{"style":1032},[2899],{"type":20,"value":2900}," .subresourceRange ",{"type":10,"tag":1015,"props":2902,"children":2903},{"style":1082},[2904],{"type":20,"value":1293},{"type":10,"tag":1015,"props":2906,"children":2907},{"style":1032},[2908],{"type":20,"value":2909}," ..\n",{"type":10,"tag":1015,"props":2911,"children":2912},{"class":1017,"line":1516},[2913],{"type":10,"tag":1015,"props":2914,"children":2915},{"style":1032},[2916],{"type":20,"value":2552},{"type":10,"tag":1015,"props":2918,"children":2919},{"class":1017,"line":1525},[2920],{"type":10,"tag":1015,"props":2921,"children":2922},{"emptyLinePlaceholder":1101},[2923],{"type":20,"value":1104},{"type":10,"tag":1015,"props":2925,"children":2926},{"class":1017,"line":1533},[2927],{"type":10,"tag":1015,"props":2928,"children":2929},{"style":1032},[2930],{"type":20,"value":2567},{"type":10,"tag":1015,"props":2932,"children":2933},{"class":1017,"line":1542},[2934],{"type":10,"tag":1015,"props":2935,"children":2936},{"style":1032},[2937],{"type":20,"value":2476},{"type":10,"tag":1015,"props":2939,"children":2940},{"class":1017,"line":1551},[2941,2945],{"type":10,"tag":1015,"props":2942,"children":2943},{"style":1032},[2944],{"type":20,"value":2582},{"type":10,"tag":1015,"props":2946,"children":2947},{"style":1022},[2948],{"type":20,"value":2587},{"type":10,"tag":1015,"props":2950,"children":2951},{"class":1017,"line":1560},[2952],{"type":10,"tag":1015,"props":2953,"children":2954},{"style":1032},[2955],{"type":20,"value":2476},{"type":10,"tag":1015,"props":2957,"children":2958},{"class":1017,"line":1569},[2959,2963,2967],{"type":10,"tag":1015,"props":2960,"children":2961},{"style":1296},[2962],{"type":20,"value":2595},{"type":10,"tag":1015,"props":2964,"children":2965},{"style":1032},[2966],{"type":20,"value":2600},{"type":10,"tag":1015,"props":2968,"children":2969},{"style":1022},[2970],{"type":20,"value":2971}," //image memory barrier count\n",{"type":10,"tag":1015,"props":2973,"children":2974},{"class":1017,"line":1577},[2975,2979,2984],{"type":10,"tag":1015,"props":2976,"children":2977},{"style":1082},[2978],{"type":20,"value":2613},{"type":10,"tag":1015,"props":2980,"children":2981},{"style":1032},[2982],{"type":20,"value":2983},"imageMemoryBarrier,",{"type":10,"tag":1015,"props":2985,"children":2986},{"style":1022},[2987],{"type":20,"value":2623},{"type":10,"tag":1015,"props":2989,"children":2990},{"class":1017,"line":1607},[2991],{"type":10,"tag":1015,"props":2992,"children":2993},{"style":1032},[2994],{"type":20,"value":2476},{"type":10,"tag":1015,"props":2996,"children":2997},{"class":1017,"line":1637},[2998],{"type":10,"tag":1015,"props":2999,"children":3000},{"style":1032},[3001],{"type":20,"value":2552},{"type":10,"tag":1015,"props":3003,"children":3004},{"class":1017,"line":1645},[3005],{"type":10,"tag":1015,"props":3006,"children":3007},{"emptyLinePlaceholder":1101},[3008],{"type":20,"value":1104},{"type":10,"tag":1015,"props":3010,"children":3011},{"class":1017,"line":1669},[3012,3016,3020,3024,3028],{"type":10,"tag":1015,"props":3013,"children":3014},{"style":1038},[3015],{"type":20,"value":451},{"type":10,"tag":1015,"props":3017,"children":3018},{"style":1032},[3019],{"type":20,"value":2656},{"type":10,"tag":1015,"props":3021,"children":3022},{"style":1082},[3023],{"type":20,"value":2661},{"type":10,"tag":1015,"props":3025,"children":3026},{"style":1048},[3027],{"type":20,"value":2666},{"type":10,"tag":1015,"props":3029,"children":3030},{"style":1032},[3031],{"type":20,"value":1055},{"type":10,"tag":1015,"props":3033,"children":3034},{"class":1017,"line":1677},[3035],{"type":10,"tag":1015,"props":3036,"children":3037},{"emptyLinePlaceholder":1101},[3038],{"type":20,"value":1104},{"type":10,"tag":1015,"props":3040,"children":3041},{"class":1017,"line":1693},[3042,3046],{"type":10,"tag":1015,"props":3043,"children":3044},{"style":1038},[3045],{"type":20,"value":2439},{"type":10,"tag":1015,"props":3047,"children":3048},{"style":1032},[3049],{"type":20,"value":2444},{"type":10,"tag":93,"props":3051,"children":3053},{"id":3052},"_barrier_proposal_c_new_simple_api_for_tile_image_barriers",[3054],{"type":20,"value":3055},"Barrier Proposal C: New simple API for tile image barriers",{"type":10,"tag":11,"props":3057,"children":3058},{},[3059,3061,3067],{"type":20,"value":3060},"New API entry point ",{"type":10,"tag":15,"props":3062,"children":3064},{"className":3063},[],[3065],{"type":20,"value":3066},"vkCmdTileBarrierEXT(..)",{"type":20,"value":3068}," where the application can specify which attachments to synchronize. This can be easily extended to tile shader if an implementation desires explicit barriers - by specifying all of tile memory needs to be synchronized and explicitly specifying tile-wide synchronization.",{"type":10,"tag":1004,"props":3070,"children":3072},{"className":1006,"code":3071,"language":1008,"meta":1009,"style":1009},"//New Vulkan function and types\nvkCmdTileBarrierEXT(\n VkCommandBuffer commandBuffer,\n VkDependencyFlags dependencyFlags,\n VkTileMemoryTypeFlagsEXT tileMemoryMask);\n\ntypedef enum VkTileMemoryTypeFlagsBitsEXT {\n VK_TILE_IMAGE_COLOR_ATTACHMENTS_BIT = 0x00000001,\n VK_TILE_IMAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000002,\n}\n",[3073],{"type":10,"tag":15,"props":3074,"children":3075},{"__ignoreMap":1009},[3076,3084,3097,3114,3130,3147,3154,3172,3198,3223],{"type":10,"tag":1015,"props":3077,"children":3078},{"class":1017,"line":1018},[3079],{"type":10,"tag":1015,"props":3080,"children":3081},{"style":1022},[3082],{"type":20,"value":3083},"//New Vulkan function and types\n",{"type":10,"tag":1015,"props":3085,"children":3086},{"class":1017,"line":1028},[3087,3092],{"type":10,"tag":1015,"props":3088,"children":3089},{"style":1038},[3090],{"type":20,"value":3091},"vkCmdTileBarrierEXT",{"type":10,"tag":1015,"props":3093,"children":3094},{"style":1032},[3095],{"type":20,"value":3096},"(\n",{"type":10,"tag":1015,"props":3098,"children":3099},{"class":1017,"line":1058},[3100,3105,3110],{"type":10,"tag":1015,"props":3101,"children":3102},{"style":1032},[3103],{"type":20,"value":3104}," VkCommandBuffer ",{"type":10,"tag":1015,"props":3106,"children":3107},{"style":1048},[3108],{"type":20,"value":3109},"commandBuffer",{"type":10,"tag":1015,"props":3111,"children":3112},{"style":1032},[3113],{"type":20,"value":552},{"type":10,"tag":1015,"props":3115,"children":3116},{"class":1017,"line":1097},[3117,3122,3126],{"type":10,"tag":1015,"props":3118,"children":3119},{"style":1032},[3120],{"type":20,"value":3121}," VkDependencyFlags ",{"type":10,"tag":1015,"props":3123,"children":3124},{"style":1048},[3125],{"type":20,"value":474},{"type":10,"tag":1015,"props":3127,"children":3128},{"style":1032},[3129],{"type":20,"value":552},{"type":10,"tag":1015,"props":3131,"children":3132},{"class":1017,"line":1107},[3133,3138,3143],{"type":10,"tag":1015,"props":3134,"children":3135},{"style":1032},[3136],{"type":20,"value":3137}," VkTileMemoryTypeFlagsEXT ",{"type":10,"tag":1015,"props":3139,"children":3140},{"style":1048},[3141],{"type":20,"value":3142},"tileMemoryMask",{"type":10,"tag":1015,"props":3144,"children":3145},{"style":1032},[3146],{"type":20,"value":1055},{"type":10,"tag":1015,"props":3148,"children":3149},{"class":1017,"line":1116},[3150],{"type":10,"tag":1015,"props":3151,"children":3152},{"emptyLinePlaceholder":1101},[3153],{"type":20,"value":1104},{"type":10,"tag":1015,"props":3155,"children":3156},{"class":1017,"line":1140},[3157,3162,3167],{"type":10,"tag":1015,"props":3158,"children":3159},{"style":1082},[3160],{"type":20,"value":3161},"typedef",{"type":10,"tag":1015,"props":3163,"children":3164},{"style":1082},[3165],{"type":20,"value":3166}," enum",{"type":10,"tag":1015,"props":3168,"children":3169},{"style":1032},[3170],{"type":20,"value":3171}," VkTileMemoryTypeFlagsBitsEXT {\n",{"type":10,"tag":1015,"props":3173,"children":3174},{"class":1017,"line":1173},[3175,3180,3184,3189,3194],{"type":10,"tag":1015,"props":3176,"children":3177},{"style":1032},[3178],{"type":20,"value":3179}," VK_TILE_IMAGE_COLOR_ATTACHMENTS_BIT ",{"type":10,"tag":1015,"props":3181,"children":3182},{"style":1082},[3183],{"type":20,"value":1293},{"type":10,"tag":1015,"props":3185,"children":3186},{"style":1082},[3187],{"type":20,"value":3188}," 0x",{"type":10,"tag":1015,"props":3190,"children":3191},{"style":1296},[3192],{"type":20,"value":3193},"00000001",{"type":10,"tag":1015,"props":3195,"children":3196},{"style":1032},[3197],{"type":20,"value":552},{"type":10,"tag":1015,"props":3199,"children":3200},{"class":1017,"line":1181},[3201,3206,3210,3214,3219],{"type":10,"tag":1015,"props":3202,"children":3203},{"style":1032},[3204],{"type":20,"value":3205}," VK_TILE_IMAGE_DEPTH_STENCIL_ATTACHMENT_BIT ",{"type":10,"tag":1015,"props":3207,"children":3208},{"style":1082},[3209],{"type":20,"value":1293},{"type":10,"tag":1015,"props":3211,"children":3212},{"style":1082},[3213],{"type":20,"value":3188},{"type":10,"tag":1015,"props":3215,"children":3216},{"style":1296},[3217],{"type":20,"value":3218},"00000002",{"type":10,"tag":1015,"props":3220,"children":3221},{"style":1032},[3222],{"type":20,"value":552},{"type":10,"tag":1015,"props":3224,"children":3225},{"class":1017,"line":1190},[3226],{"type":10,"tag":1015,"props":3227,"children":3228},{"style":1032},[3229],{"type":20,"value":1505},{"type":10,"tag":11,"props":3231,"children":3232},{},[3233],{"type":20,"value":3234},"Example synchronizing two draw calls, where the first writes to color attachments and the second reads via the tile image variables.",{"type":10,"tag":1004,"props":3236,"children":3238},{"className":1006,"code":3237,"language":1008,"meta":1009,"style":1009},"vkCmdDraw(...);\n\nvkCmdTileBarrierEXT(commandBuffer,\n VK_DEPENDENCY_BY_REGION,\n VK_TILE_IMAGE_COLOR_ATTACHMENTS_BIT);\n\nvkCmdDraw(...);\n",[3239],{"type":10,"tag":15,"props":3240,"children":3241},{"__ignoreMap":1009},[3242,3253,3260,3272,3280,3288,3295],{"type":10,"tag":1015,"props":3243,"children":3244},{"class":1017,"line":1018},[3245,3249],{"type":10,"tag":1015,"props":3246,"children":3247},{"style":1038},[3248],{"type":20,"value":2439},{"type":10,"tag":1015,"props":3250,"children":3251},{"style":1032},[3252],{"type":20,"value":2444},{"type":10,"tag":1015,"props":3254,"children":3255},{"class":1017,"line":1028},[3256],{"type":10,"tag":1015,"props":3257,"children":3258},{"emptyLinePlaceholder":1101},[3259],{"type":20,"value":1104},{"type":10,"tag":1015,"props":3261,"children":3262},{"class":1017,"line":1058},[3263,3267],{"type":10,"tag":1015,"props":3264,"children":3265},{"style":1038},[3266],{"type":20,"value":3091},{"type":10,"tag":1015,"props":3268,"children":3269},{"style":1032},[3270],{"type":20,"value":3271},"(commandBuffer,\n",{"type":10,"tag":1015,"props":3273,"children":3274},{"class":1017,"line":1097},[3275],{"type":10,"tag":1015,"props":3276,"children":3277},{"style":1032},[3278],{"type":20,"value":3279}," VK_DEPENDENCY_BY_REGION,\n",{"type":10,"tag":1015,"props":3281,"children":3282},{"class":1017,"line":1107},[3283],{"type":10,"tag":1015,"props":3284,"children":3285},{"style":1032},[3286],{"type":20,"value":3287}," VK_TILE_IMAGE_COLOR_ATTACHMENTS_BIT);\n",{"type":10,"tag":1015,"props":3289,"children":3290},{"class":1017,"line":1116},[3291],{"type":10,"tag":1015,"props":3292,"children":3293},{"emptyLinePlaceholder":1101},[3294],{"type":20,"value":1104},{"type":10,"tag":1015,"props":3296,"children":3297},{"class":1017,"line":1140},[3298,3302],{"type":10,"tag":1015,"props":3299,"children":3300},{"style":1038},[3301],{"type":20,"value":2439},{"type":10,"tag":1015,"props":3303,"children":3304},{"style":1032},[3305],{"type":20,"value":2444},{"type":10,"tag":93,"props":3307,"children":3309},{"id":3308},"_spir_v_and_glsl_changes",[3310],{"type":20,"value":3311},"SPIR-V and GLSL changes",{"type":10,"tag":50,"props":3313,"children":3314},{},[3315,3320],{"type":10,"tag":54,"props":3316,"children":3317},{},[3318],{"type":20,"value":3319},"Tile Image data variables can optionally be specified with \"noncoherent\" layout qualifier in GLSL. For Depth and Stencil we could use a special fragment shader layout qualifier (similar to early_fragment_tests) to indicate depth and stencil access is \"noncoherent\".",{"type":10,"tag":54,"props":3321,"children":3322},{},[3323],{"type":20,"value":3324},"Three new Execution modes in SPIR-V to specify that color, depth or stencil reads via the functionality in this extension are non-coherent (that is the reads are no longer guaranteed to be in raster order with respect to write operations from prior fragments).",{"type":10,"tag":33,"props":3326,"children":3328},{"id":3327},"_issues",[3329],{"type":20,"value":3330},"Issues",{"type":10,"tag":93,"props":3332,"children":3334},{"id":3333},"_1_resolved_should_we_allow_early_fragment_tests",[3335],{"type":20,"value":3336},"1. RESOLVED: Should we allow early fragment tests?",{"type":10,"tag":11,"props":3338,"children":3339},{},[3340],{"type":20,"value":3341},"Early fragment tests are disallowed if reading frag depth / stencil.",{"type":10,"tag":93,"props":3343,"children":3345},{"id":3344},"_2_resolved_should_depth_stencil_fetch_be_a_separate_extension",[3346],{"type":20,"value":3347},"2. RESOLVED: Should depth / stencil fetch be a separate extension?",{"type":10,"tag":11,"props":3349,"children":3350},{},[3351],{"type":20,"value":3352},"Access to depth / stencil is defined differently than color, but we suggest keeping them together - with separate feature bits.",{"type":10,"tag":93,"props":3354,"children":3356},{"id":3355},"_3_resolved_what_should_we_name_these_variables_what_should_the_extension_be_named",[3357],{"type":20,"value":3358},"3. RESOLVED: What should we name these variables? What should the extension be named?",{"type":10,"tag":11,"props":3360,"children":3361},{},[3362],{"type":20,"value":3363},"Other APIs have similar but not identical concepts, so a unique name is useful.",{"type":10,"tag":11,"props":3365,"children":3366},{},[3367],{"type":20,"value":3368},"We call these resources tile images.\nOn typical implementations supporting this extension, the framebuffer is divided into tiles and fragment processing is deferred such that each framebuffer tile is typically visited just once.\nA tile image is a view of a framebuffer attachment, restricted to the tile being processed.",{"type":10,"tag":11,"props":3370,"children":3371},{},[3372],{"type":20,"value":3373},"Note that fragment shaders still can only color, depth, and stencil values from their fragment location and not the entire tile.",{"type":10,"tag":11,"props":3375,"children":3376},{},[3377],{"type":20,"value":3378},"The extension is called VK_EXT_shader_tile_image.",{"type":10,"tag":93,"props":3380,"children":3382},{"id":3381},"_4_resolved_are_there_any_non_obvious_interactions_with_the_suspendresume_functionality_in_vk_khr_dynamic_rendering",[3383,3385,3390],{"type":20,"value":3384},"4. RESOLVED: Are there any non-obvious interactions with the suspend/resume functionality in ",{"type":10,"tag":15,"props":3386,"children":3388},{"className":3387},[],[3389],{"type":20,"value":29},{"type":20,"value":3391},"?",{"type":10,"tag":11,"props":3393,"children":3394},{},[3395],{"type":20,"value":3396},"Not at present.\nIf we were to allow non-aliased tile image variables, then implementations would have to be able to guarantee that those variables never have to 'spill' from tile image.",{"type":10,"tag":93,"props":3398,"children":3400},{"id":3399},"_5_resolved_enable_disable_raster_order_access",[3401],{"type":20,"value":3402},"5. RESOLVED: Enable / Disable raster order access",{"type":10,"tag":11,"props":3404,"children":3405},{},[3406],{"type":20,"value":3407},"Some implementations pay a performance cost to guarantee raster order access. We need to give them a way to disable raster order access and add support for barriers to explicitly perform synchronization.",{"type":10,"tag":11,"props":3409,"children":3410},{},[3411],{"type":20,"value":3412},"Three proposals have been added to the Non-coherent access section in this document. The spec changes currently choose Barrier Proposal A: MemoryBarrier via vkCmdPipelineBarrier2.",{"type":10,"tag":11,"props":3414,"children":3415},{},[3416],{"type":20,"value":3417},"Vulkan barriers have been difficult for developers to use, so Barrier Proposal C might offer a simpler API.",{"type":10,"tag":11,"props":3419,"children":3420},{},[3421],{"type":20,"value":3422},"Consensus was to keep things consistent with existing barriers in Vulkan, so Barrier Proposal A was chosen.",{"type":10,"tag":93,"props":3424,"children":3426},{"id":3425},"_7_resolved_should_this_extension_reuse_optypeimage_or_introduce_a_new_type_for_declaring_tile_images",[3427],{"type":20,"value":3428},"7. RESOLVED: Should this extension reuse OpTypeImage, or introduce a new type for declaring tile images?",{"type":10,"tag":11,"props":3430,"children":3431},{},[3432],{"type":20,"value":3433},"OpTypeImage is reused with a special Dim for tile images, following what was done for subpass attachments.",{"type":10,"tag":11,"props":3435,"children":3436},{},[3437],{"type":20,"value":3438},"An alternative would have been to make tile images their own type, and introduce an OpTypeTileImage type.\nThat would require less special-casing of OpTypeImage, but comes with higher initial burden in tooling.",{"type":10,"tag":93,"props":3440,"children":3442},{"id":3441},"_8_resolved_should_color_depth_and_stencil_reads_use_the_same_spir_v_opcode",[3443],{"type":20,"value":3444},"8. RESOLVED: Should Color, Depth, and Stencil reads use the same SPIR-V opcode?",{"type":10,"tag":11,"props":3446,"children":3447},{},[3448],{"type":20,"value":3449},"No. The extension introduces separate opcodes.",{"type":10,"tag":11,"props":3451,"children":3452},{},[3453],{"type":20,"value":3454},"Tile based GPUs which guarantee framebuffer residency in tile memory can offer efficient raster order access to color, depth, stencil data with relatively low overhead.\nSome GPU implementations would have a significant performance penalty in raster order access if the implementation cannot determine from the SPIR-V shader whether a specific access is color, depth, or stencil.",{"type":10,"tag":11,"props":3456,"children":3457},{},[3458],{"type":20,"value":3459},"This design choice is in-line with other API extensions (GL framebuffer fetch and framebuffer fetch depth stencil) and other APIs where depth/stencil access is clearly disambiguated.",{"type":10,"tag":93,"props":3461,"children":3463},{"id":3462},"_9_resolved_should_depth_and_stencil_read_opcodes_consume_an_image_operand_specifying_the_attachment_or_should_it_be_implicit",[3464],{"type":20,"value":3465},"9. RESOLVED: Should Depth and Stencil read opcodes consume an image operand specifying the attachment, or should it be implicit?",{"type":10,"tag":11,"props":3467,"children":3468},{},[3469],{"type":20,"value":3470},"No operand is necessary as there is depth and stencil uniquely identify the attachments unlike with color.",{"type":10,"tag":11,"props":3472,"children":3473},{},[3474],{"type":20,"value":3475},"The other options considered were:",{"type":10,"tag":133,"props":3477,"children":3478},{},[3479,3491],{"type":10,"tag":54,"props":3480,"children":3481},{},[3482,3484,3489],{"type":20,"value":3483},"Allow depth and stencil tile images to be declared as variables. Tile images are defined to map to the color attachment specified via the ",{"type":10,"tag":15,"props":3485,"children":3487},{"className":3486},[],[3488],{"type":20,"value":755},{"type":20,"value":3490}," decoration - some equivalent needs to be defined for depth and stencil. Pixel Local Storage like functionality of supporting format reinterpretation is only supported for color attachments, and hence must be disallowed for depth and stencil. There is very little benefit to declaring the depth and stencil variables given these restrictions.",{"type":10,"tag":54,"props":3492,"children":3493},{},[3494],{"type":20,"value":3495},"Depth and stencil tile images are exposed as built-in variables.",{"type":10,"tag":11,"props":3497,"children":3498},{},[3499],{"type":20,"value":3500},"Given the design choice made for issue 8, the alternate options do not add any value.",{"type":10,"tag":93,"props":3502,"children":3504},{"id":3503},"_10_resolved_should_this_extension_reuse_the_image_dim_subpassdata_or_introduce_a_new_dim",[3505],{"type":20,"value":3506},"10. RESOLVED: Should this extension reuse the image Dim SubpassData or introduce a new Dim?",{"type":10,"tag":11,"props":3508,"children":3509},{},[3510],{"type":20,"value":3511},"The extension introduces a new Dim.",{"type":10,"tag":11,"props":3513,"children":3514},{},[3515],{"type":20,"value":3516},"This extension is intended to serve as foundation for further functionality - for example Pixel Local Storage like format reinterpretation, or to define the tile size and allow tile shaders to access any pixel within the tile.\nIn SPIR-V, input attachments use images with Dim of SubpassData. We use a new Dim so we can easily distinguish whether an image is an input attachment or a tile image.",{"type":10,"tag":93,"props":3518,"children":3520},{"id":3519},"_11_resolved_should_this_extension_require_applications_to_create_and_bind_descriptors_for_tile_images",[3521],{"type":20,"value":3522},"11. RESOLVED: Should this extension require applications to create and bind descriptors for tile images?",{"type":10,"tag":11,"props":3524,"children":3525},{},[3526],{"type":20,"value":3527},"No.\nSome GPUs internally require descriptors to be able to access framebuffer data. The input attachments in Vulkan subpasses help these GPU implementations.",{"type":10,"tag":11,"props":3529,"children":3530},{},[3531],{"type":20,"value":3532},"Other GPUs do not require apps to bind such descriptors. The intent with this extension is to provide functionality roughly in the lines of GL_EXT_shader_framebuffer_fetch, GL_EXT_shader_pixel_local_storage - which do not require apps to manage and bind descriptors.",{"type":10,"tag":93,"props":3534,"children":3536},{"id":3535},"_12_resolved_what_does_undefined_value_mean_for_tile_image_reads",[3537],{"type":20,"value":3538},"12. RESOLVED: What does 'undefined value' mean for tile image reads?",{"type":10,"tag":11,"props":3540,"children":3541},{},[3542,3544,3549],{"type":20,"value":3543},"It simply means that the value has no well-defined meaning to an application. It does ",{"type":10,"tag":673,"props":3545,"children":3546},{},[3547],{"type":20,"value":3548},"not",{"type":20,"value":3550}," mean that the value is random nor that it could have been leaked from other contexts, processes, or memory other than the framebuffer attachments.",{"type":10,"tag":33,"props":3552,"children":3554},{"id":3553},"_further_functionality",[3555],{"type":20,"value":3556},"Further Functionality",{"type":10,"tag":93,"props":3558,"children":3560},{"id":3559},"_fragment_shading_rate_interactions",[3561],{"type":20,"value":3562},"Fragment Shading Rate interactions",{"type":10,"tag":11,"props":3564,"children":3565},{},[3566,3568,3574],{"type":20,"value":3567},"With ",{"type":10,"tag":15,"props":3569,"children":3571},{"className":3570},[],[3572],{"type":20,"value":3573},"VK_KHR_fragment_shading_rate",{"type":20,"value":3575}," multi-pixel fragments read some implementation-defined pixel from the input attachments. We could define stronger requirements in this extension.",{"type":10,"tag":93,"props":3577,"children":3579},{"id":3578},"_allow_non_aliased_tile_image_variables_andor_image_format_redeclaration",[3580],{"type":20,"value":3581},"Allow non-aliased Tile Image variables and/or image format redeclaration",{"type":10,"tag":11,"props":3583,"children":3584},{},[3585],{"type":20,"value":3586},"This would provide \"Pixel local storage\" equivalent functionality.",{"type":10,"tag":11,"props":3588,"children":3589},{},[3590],{"type":20,"value":3591},"A possible approach for that would be to specify the format as layout parameter - similar to image access:",{"type":10,"tag":1004,"props":3593,"children":3595},{"className":1006,"code":3594,"language":1008,"meta":1009,"style":1009},"layout(r11f_g11f_b10f) tile readonly highp tileImage normal;\n",[3596],{"type":10,"tag":15,"props":3597,"children":3598},{"__ignoreMap":1009},[3599],{"type":10,"tag":1015,"props":3600,"children":3601},{"class":1017,"line":1018},[3602,3606],{"type":10,"tag":1015,"props":3603,"children":3604},{"style":1038},[3605],{"type":20,"value":1283},{"type":10,"tag":1015,"props":3607,"children":3608},{"style":1032},[3609],{"type":20,"value":3610},"(r11f_g11f_b10f) tile readonly highp tileImage normal;\n",{"type":10,"tag":93,"props":3612,"children":3614},{"id":3613},"_tile_image_size_query",[3615],{"type":20,"value":3616},"Tile Image size query",{"type":10,"tag":11,"props":3618,"children":3619},{},[3620],{"type":20,"value":3621},"If we were to allow non-aliased Tile Image variables, we would need to expose some limits on tile image size and tile dimensions so that applications can make performance trade-offs on tile size vs storage requirements.",{"type":10,"tag":93,"props":3623,"children":3625},{"id":3624},"_memoryless_attachments",[3626],{"type":20,"value":3627},"Memoryless attachments",{"type":10,"tag":11,"props":3629,"children":3630},{},[3631],{"type":20,"value":3632},"We have lazily allocated images in Vulkan, but they do not guarantee that memory is not allocated.",{"type":10,"tag":3634,"props":3635,"children":3636},"style",{},[3637],{"type":20,"value":3638},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":1009,"searchDepth":1028,"depth":1028,"links":3640},[3641,3642,3646,3653,3656,3660,3667,3681],{"id":35,"depth":1028,"text":38},{"id":88,"depth":1028,"text":91,"children":3643},[3644,3645],{"id":95,"depth":1058,"text":98},{"id":275,"depth":1058,"text":278},{"id":291,"depth":1028,"text":294,"children":3647},[3648,3649,3650,3651,3652],{"id":297,"depth":1058,"text":300},{"id":318,"depth":1058,"text":321},{"id":577,"depth":1058,"text":580},{"id":848,"depth":1058,"text":851},{"id":1245,"depth":1058,"text":1248},{"id":1251,"depth":1028,"text":1254,"children":3654},[3655],{"id":1257,"depth":1058,"text":1260},{"id":1837,"depth":1028,"text":1840,"children":3657},[3658,3659],{"id":1848,"depth":1058,"text":1851},{"id":2096,"depth":1058,"text":2099},{"id":2338,"depth":1028,"text":2341,"children":3661},[3662,3663,3664,3665,3666],{"id":2349,"depth":1058,"text":2352},{"id":2381,"depth":1058,"text":2384},{"id":2691,"depth":1058,"text":2694},{"id":3052,"depth":1058,"text":3055},{"id":3308,"depth":1058,"text":3311},{"id":3327,"depth":1028,"text":3330,"children":3668},[3669,3670,3671,3672,3674,3675,3676,3677,3678,3679,3680],{"id":3333,"depth":1058,"text":3336},{"id":3344,"depth":1058,"text":3347},{"id":3355,"depth":1058,"text":3358},{"id":3381,"depth":1058,"text":3673},"4. RESOLVED: Are there any non-obvious interactions with the suspend/resume functionality in VK_KHR_dynamic_rendering?",{"id":3399,"depth":1058,"text":3402},{"id":3425,"depth":1058,"text":3428},{"id":3441,"depth":1058,"text":3444},{"id":3462,"depth":1058,"text":3465},{"id":3503,"depth":1058,"text":3506},{"id":3519,"depth":1058,"text":3522},{"id":3535,"depth":1058,"text":3538},{"id":3553,"depth":1028,"text":3556,"children":3682},[3683,3684,3685,3686],{"id":3559,"depth":1058,"text":3562},{"id":3578,"depth":1058,"text":3581},{"id":3613,"depth":1058,"text":3616},{"id":3624,"depth":1058,"text":3627},"markdown",[3689,3694,3697,3700,3703,3706,3709,3712,3715,3718,3721,3724,3727,3730,3733,3736,3739,3742,3745,3748,3751,3754,3757,3760,3763,3766,3769,3772,3775,3778,3781,3785,3789,3793,3797,3801,3805,3809,3813,3817,3821,3825,3829,3833,3837,3841,3845,3849,3853,3857,3861,3864,3867,3870,3873,3876,3879,3882,3885],{"index":3690,"title":3691,"id":3692,"appendix":3693},0,"Preamble","preamble",false,{"index":1018,"title":3695,"id":3696,"appendix":3693},"Introduction","introduction",{"index":1028,"title":3698,"id":3699,"appendix":3693},"Fundamentals","fundamentals",{"index":1058,"title":3701,"id":3702,"appendix":3693},"Initialization","initialization",{"index":1097,"title":3704,"id":3705,"appendix":3693},"Devices and Queues","devsandqueues",{"index":1107,"title":3707,"id":3708,"appendix":3693},"Command Buffers","commandbuffers",{"index":1116,"title":3710,"id":3711,"appendix":3693},"Synchronization and Cache Control","synchronization",{"index":1140,"title":3713,"id":3714,"appendix":3693},"Render Pass","renderpass",{"index":1173,"title":3716,"id":3717,"appendix":3693},"Shaders","shaders",{"index":1181,"title":3719,"id":3720,"appendix":3693},"Pipelines","pipelines",{"index":1190,"title":3722,"id":3723,"appendix":3693},"Memory Allocation","memory",{"index":1213,"title":3725,"id":3726,"appendix":3693},"Resource Creation","resources",{"index":1508,"title":3728,"id":3729,"appendix":3693},"Samplers","samplers",{"index":1516,"title":3731,"id":3732,"appendix":3693},"Resource Descriptors","descriptorsets",{"index":1525,"title":3734,"id":3735,"appendix":3693},"Shader Interfaces","interfaces",{"index":1533,"title":3737,"id":3738,"appendix":3693},"Image Operations","textures",{"index":1542,"title":3740,"id":3741,"appendix":3693},"Fragment Density Map Operations","fragmentdensitymapops",{"index":1551,"title":3743,"id":3744,"appendix":3693},"Queries","queries",{"index":1560,"title":3746,"id":3747,"appendix":3693},"Clear Commands","clears",{"index":1569,"title":3749,"id":3750,"appendix":3693},"Copy Commands","copies",{"index":1577,"title":3752,"id":3753,"appendix":3693},"Drawing Commands","drawing",{"index":1607,"title":3755,"id":3756,"appendix":3693},"Fixed-Function Vertex Processing","fxvertex",{"index":1637,"title":3758,"id":3759,"appendix":3693},"Tessellation","tessellation",{"index":1645,"title":3761,"id":3762,"appendix":3693},"Geometry Shading","geometry",{"index":1669,"title":3764,"id":3765,"appendix":3693},"Mesh Shading","mesh",{"index":1677,"title":3767,"id":3768,"appendix":3693},"Cluster Culling Shading","cluster-culling",{"index":1693,"title":3770,"id":3771,"appendix":3693},"Fixed-Function Vertex Post-Processing","vertexpostproc",{"index":1701,"title":3773,"id":3774,"appendix":3693},"Rasterization","primsrast",{"index":1734,"title":3776,"id":3777,"appendix":3693},"Fragment Operations","fragops",{"index":1750,"title":3779,"id":3780,"appendix":3693},"The Framebuffer","framebuffer",{"index":3782,"title":3783,"id":3784,"appendix":3693},30,"Dispatching Commands","dispatch",{"index":3786,"title":3787,"id":3788,"appendix":3693},31,"Device-Generated Commands","device-generated-commands",{"index":3790,"title":3791,"id":3792,"appendix":3693},32,"Sparse Resources","sparsememory",{"index":3794,"title":3795,"id":3796,"appendix":3693},33,"Window System Integration (WSI)","wsi",{"index":3798,"title":3799,"id":3800,"appendix":3693},34,"Deferred Host Operations","deferred-host-operations",{"index":3802,"title":3803,"id":3804,"appendix":3693},35,"Private Data","private-data",{"index":3806,"title":3807,"id":3808,"appendix":3693},36,"Acceleration Structures","acceleration-structure",{"index":3810,"title":3811,"id":3812,"appendix":3693},37,"Micromap","micromap",{"index":3814,"title":3815,"id":3816,"appendix":3693},38,"Ray Traversal","ray-traversal",{"index":3818,"title":3819,"id":3820,"appendix":3693},39,"Ray Tracing","ray-tracing",{"index":3822,"title":3823,"id":3824,"appendix":3693},40,"Memory Decompression","memory-decompression",{"index":3826,"title":3827,"id":3828,"appendix":3693},41,"Video Coding","video-coding",{"index":3830,"title":3831,"id":3832,"appendix":3693},42,"Optical Flow","opticalflow",{"index":3834,"title":3835,"id":3836,"appendix":3693},43,"Execution Graphs","executiongraphs",{"index":3838,"title":3839,"id":3840,"appendix":3693},44,"Extending Vulkan","extendingvulkan",{"index":3842,"title":3843,"id":3844,"appendix":3693},45,"Features","features",{"index":3846,"title":3847,"id":3848,"appendix":3693},46,"Limits","limits",{"index":3850,"title":3851,"id":3852,"appendix":3693},47,"Formats","formats",{"index":3854,"title":3855,"id":3856,"appendix":3693},48,"Additional Capabilities","capabilities",{"index":3858,"title":3859,"id":3860,"appendix":3693},49,"Debugging","debugging",{"index":3690,"title":3862,"id":3863,"appendix":1101},"Vulkan Environment for SPIR-V","spirvenv",{"index":1018,"title":3865,"id":3866,"appendix":1101},"Memory Model","memory-model",{"index":1028,"title":3868,"id":3869,"appendix":1101},"Compressed Image Formats","compressed_image_formats",{"index":1058,"title":3871,"id":3872,"appendix":1101},"Core Revisions (Informative)","versions",{"index":1097,"title":3874,"id":3875,"appendix":1101},"Layers & Extensions (Informative)","extensions",{"index":1107,"title":3877,"id":3878,"appendix":1101},"API Boilerplate","boilerplate",{"index":1116,"title":3880,"id":3881,"appendix":1101},"Invariance","invariance",{"index":1140,"title":3883,"id":3884,"appendix":1101},"Lexicon","lexicon",{"index":1173,"title":3886,"id":3887,"appendix":1101},"Credits (Informative)","credits",[3889,3897,3901,3906,3910,3915,3918,3921,3924,3928,3932,3935,3938,3941,3943,3945,3948,3951,3955,3957,3961,3963,3966,3968,3971,3979,3983,3989,3993,3998,4000,4004,4010,4016,4022,4024,4027,4033,4036,4040,4046,4050,4054,4059,4063,4066,4069,4075,4078,4081,4085,4089,4093,4096,4098,4102,4107,4113,4116,4120,4123,4129,4132,4136,4139,4143,4146,4150,4153,4158,4162,4165,4170,4173,4176,4179,4183,4188,4193,4197,4201,4205,4209,4213,4217,4221,4224,4227,4231,4234,4237,4240,4244,4249,4253,4256,4260,4265,4269,4274,4277,4280,4285,4290,4294,4297,4301,4306,4309,4314,4319,4322,4325,4329,4333,4337,4342,4346,4349,4354,4358,4361,4365,4369,4373,4376,4378,4382,4385,4388,4391,4394,4397,4400,4403,4406,4409,4413,4417,4420,4423,4426,4429,4431,4434,4438,4442,4446,4449,4453,4456,4459,4462,4464,4468,4473,4477,4481,4483,4487,4490,4497,4501,4505,4509,4515,4518,4522,4526,4529,4532,4536,4541,4547,4551,4553,4558,4561,4566,4570,4575,4579,4583,4585,4588,4591,4593,4598,4601,4604,4609,4613,4617,4622,4626,4630,4632,4634,4637,4639,4642,4644,4648,4652,4654,4658,4661,4665,4668,4670,4673,4677,4679,4683,4686,4689,4692,4695,4698,4701,4703,4706,4708,4711,4715,4718,4720,4722,4724,4726,4730,4732,4735,4740,4744,4747,4749,4752,4754,4758,4761,4764,4767,4771,4774,4779,4783,4786,4790,4793,4796,4800,4804,4806,4811,4814,4818,4821,4824,4827,4829,4832,4836,4839,4843,4846,4850,4854,4857,4860,4863,4866,4870,4872,4875,4877,4882,4883,4887,4890,4893,4896,4899,4901,4905,4908,4911,4914,4918,4920,4922,4926,4928,4931,4935,4939,4941,4945,4948,4951,4954,4957,4961,4966,4971,4975,4981,4985,4988,4992,4996,4999,5003,5007,5010,5014,5017,5022,5026,5028,5034,5037,5040,5043,5047,5050,5054,5058,5062,5064,5067,5069,5072,5074,5076,5079,5082,5085,5088,5091,5094,5096,5100,5104,5108,5112,5115,5118,5122,5125,5129,5131,5135,5139,5142,5145,5148,5151,5154,5157,5160,5163,5166,5169,5172,5175,5178,5181,5185,5188,5192,5196,5199,5202,5205,5208,5211,5214,5218,5221,5224,5230,5234,5238,5242],{"number":3890,"type":3891,"author":3892,"provisional":1101,"depends":3893,"platform":3894,"contact":3895,"extension":3896,"proposal":1101},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":3898,"type":3891,"author":3892,"provisional":3693,"contact":3899,"extension":3900,"proposal":1101},477,"Stu Smith","VK_AMD_anti_lag",{"number":3902,"type":3891,"author":3892,"provisional":3693,"specialuse":3903,"contact":3904,"extension":3905,"proposal":3693},180,"devtools","Daniel Rakos @drakos-amd","VK_AMD_buffer_marker",{"number":3907,"type":3891,"author":3892,"provisional":3693,"depends":3908,"contact":3895,"extension":3909,"proposal":3693},230,"VK_KHR_get_physical_device_properties2,VK_VERSION_1_1","VK_AMD_device_coherent_memory",{"number":3911,"type":3891,"author":3892,"provisional":3693,"depends":3912,"contact":3913,"extension":3914,"proposal":3693},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":3798,"type":3891,"author":3892,"promotedto":3916,"provisional":3693,"contact":3904,"extension":3917,"proposal":3693},"VK_KHR_draw_indirect_count","VK_AMD_draw_indirect_count",{"number":1693,"type":3891,"author":3892,"provisional":3693,"contact":3919,"extension":3920,"proposal":3693},"Dominik Witczak @dominikwitczakamd","VK_AMD_gcn_shader",{"number":3810,"type":3891,"author":3892,"deprecatedby":3922,"provisional":3693,"contact":3919,"extension":3923,"proposal":3693},"VK_KHR_shader_float16_int8","VK_AMD_gpu_shader_half_float",{"number":3925,"type":3891,"author":3892,"deprecatedby":3922,"provisional":3693,"contact":3926,"extension":3927,"proposal":3693},133,"Qun Lin @linqun","VK_AMD_gpu_shader_int16",{"number":3929,"type":3891,"author":3892,"provisional":3693,"contact":3930,"extension":3931,"proposal":3693},190,"Martin Dinkov @mdinkov","VK_AMD_memory_overallocation_behavior",{"number":3933,"type":3891,"author":3892,"provisional":3693,"contact":3913,"extension":3934,"proposal":3693},137,"VK_AMD_mixed_attachment_samples",{"number":3806,"type":3891,"author":3892,"obsoletedby":3936,"provisional":3693,"contact":3913,"extension":3937,"proposal":3693},"VK_KHR_maintenance1","VK_AMD_negative_viewport_height",{"number":3939,"type":3891,"author":3892,"provisional":3693,"contact":3913,"extension":3940,"proposal":3693},184,"VK_AMD_pipeline_compiler_control",{"number":1569,"type":3891,"author":3892,"provisional":3693,"contact":3904,"extension":3942,"proposal":3693},"VK_AMD_rasterization_order",{"number":3814,"type":3891,"author":3892,"provisional":3693,"contact":3919,"extension":3944,"proposal":3693},"VK_AMD_shader_ballot",{"number":3946,"type":3891,"author":3892,"provisional":3693,"depends":3908,"contact":3930,"extension":3947,"proposal":3693},186,"VK_AMD_shader_core_properties",{"number":3949,"type":3891,"author":3892,"provisional":3693,"depends":3947,"contact":3913,"extension":3950,"proposal":3693},228,"VK_AMD_shader_core_properties2",{"number":3952,"type":3891,"author":3953,"provisional":3693,"depends":3908,"contact":3895,"extension":3954,"proposal":1101},322,"EXT","VK_AMD_shader_early_and_late_fragment_tests",{"number":1637,"type":3891,"author":3892,"provisional":3693,"contact":3926,"extension":3956,"proposal":3693},"VK_AMD_shader_explicit_vertex_parameter",{"number":3958,"type":3891,"author":3892,"provisional":3693,"contact":3959,"extension":3960,"proposal":3693},138,"Aaron Hagan @AaronHaganAMD","VK_AMD_shader_fragment_mask",{"number":3850,"type":3891,"author":3892,"provisional":3693,"contact":3919,"extension":3962,"proposal":3693},"VK_AMD_shader_image_load_store_lod",{"number":3834,"type":3891,"author":3892,"provisional":3693,"specialuse":3903,"contact":3964,"extension":3965,"proposal":3693},"Jaakko Konttinen @jaakkoamd","VK_AMD_shader_info",{"number":1607,"type":3891,"author":3892,"provisional":3693,"contact":3926,"extension":3967,"proposal":3693},"VK_AMD_shader_trinary_minmax",{"number":3830,"type":3891,"author":3892,"provisional":3693,"depends":3908,"contact":3969,"extension":3970,"proposal":3693},"Rex Xu @amdrexu","VK_AMD_texture_gather_bias_lod",{"number":3972,"type":3891,"author":3973,"provisional":3693,"depends":3974,"platform":3975,"specialuse":3976,"contact":3977,"extension":3978,"proposal":1101},469,"ANDROID","VK_ANDROID_external_memory_android_hardware_buffer","android","glemulation","Chris Forbes @chrisforbes","VK_ANDROID_external_format_resolve",{"number":3980,"type":3891,"author":3973,"provisional":3693,"depends":3981,"platform":3975,"contact":3982,"extension":3974,"proposal":3693},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":3984,"type":3891,"author":3985,"promotedto":3986,"provisional":3693,"depends":3908,"contact":3987,"extension":3988,"proposal":3693},343,"ARM","VK_EXT_rasterization_order_attachment_access","Jan-Harald Fredriksen @janharaldfredriksen-arm","VK_ARM_rasterization_order_attachment_access",{"number":3990,"type":3891,"author":3985,"provisional":3693,"depends":3991,"contact":3987,"extension":3992,"proposal":1101},425,"((VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_KHR_synchronization2),VK_VERSION_1_3","VK_ARM_render_pass_striped",{"number":3994,"type":3891,"author":3985,"provisional":3693,"depends":3995,"contact":3996,"extension":3997,"proposal":3693},418,"VK_ARM_shader_core_builtins","Kevin Petit @kpet","VK_ARM_scheduling_controls",{"number":3999,"type":3891,"author":3985,"provisional":3693,"depends":3908,"contact":3996,"extension":3995,"proposal":3693},498,{"number":4001,"type":3891,"author":3985,"provisional":3693,"depends":4002,"contact":3987,"extension":4003,"proposal":3693},416,"VK_VERSION_1_1","VK_ARM_shader_core_properties",{"number":4005,"type":3891,"author":3953,"promotedto":4006,"provisional":3693,"depends":3908,"ratified":4007,"contact":4008,"extension":4009,"proposal":3693},341,"VK_VERSION_1_3","vulkansc","Joshua Ashton @Joshua-Ashton","VK_EXT_4444_formats",{"number":4011,"type":4012,"author":3953,"provisional":3693,"depends":4013,"contact":4014,"extension":4015,"proposal":3693},286,"instance","VK_EXT_direct_mode_display","Drew DeVault sir@cmpwn.com","VK_EXT_acquire_drm_display",{"number":4017,"type":4012,"author":4018,"provisional":3693,"depends":4013,"platform":4019,"contact":4020,"extension":4021,"proposal":3693},90,"NV","xlib_xrandr","James Jones @cubanismo","VK_EXT_acquire_xlib_display",{"extension":4023,"proposal":3693},"VK_EXT_application_parameters",{"number":4025,"type":3891,"author":3985,"provisional":3693,"depends":3908,"contact":3987,"extension":4026,"proposal":3693},68,"VK_EXT_astc_decode_mode",{"number":4028,"type":3891,"author":3953,"provisional":3693,"depends":4029,"ratified":4030,"contact":4031,"extension":4032,"proposal":1101},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":4034,"type":3891,"author":3953,"provisional":3693,"depends":3908,"ratified":4030,"contact":4008,"extension":4035,"proposal":1101},340,"VK_EXT_attachment_feedback_loop_layout",{"number":4037,"type":3891,"author":4018,"provisional":3693,"depends":3908,"ratified":4030,"contact":4038,"extension":4039,"proposal":3693},149,"Jeff Bolz @jeffbolznv","VK_EXT_blend_operation_advanced",{"number":4041,"type":3891,"author":3953,"provisional":3693,"depends":4042,"specialuse":4043,"contact":4044,"extension":4045,"proposal":3693},412,"VK_EXT_custom_border_color","glemulation,d3demulation","Piers Daniell @pdaniell-nv","VK_EXT_border_color_swizzle",{"number":4047,"type":3891,"author":4018,"deprecatedby":4048,"provisional":3693,"depends":3908,"contact":4038,"extension":4049,"proposal":3693},245,"VK_KHR_buffer_device_address","VK_EXT_buffer_device_address",{"number":4051,"type":3891,"author":3953,"promotedto":4052,"provisional":3693,"depends":3908,"contact":3904,"extension":4053,"proposal":1101},185,"VK_KHR_calibrated_timestamps","VK_EXT_calibrated_timestamps",{"number":4055,"type":3891,"author":3953,"provisional":3693,"depends":3908,"ratified":4056,"contact":4057,"extension":4058,"proposal":3693},382,"vulkan,vulkansc","Sharif Elcott @selcott","VK_EXT_color_write_enable",{"number":4060,"type":3891,"author":4018,"provisional":3693,"depends":3908,"contact":4061,"extension":4062,"proposal":3693},82,"Vikram Kushwaha @vkushwaha","VK_EXT_conditional_rendering",{"number":4064,"type":3891,"author":4018,"provisional":3693,"depends":3908,"ratified":4030,"contact":4044,"extension":4065,"proposal":3693},102,"VK_EXT_conservative_rasterization",{"number":4067,"type":3891,"author":3953,"provisional":3693,"depends":3908,"ratified":4056,"specialuse":4043,"contact":4068,"extension":4042,"proposal":3693},288,"Liam Middlebrook @liam-middlebrook",{"number":1645,"type":3891,"author":4070,"promotedto":4071,"provisional":3693,"depends":4072,"specialuse":3860,"contact":4073,"extension":4074,"proposal":3693},"Baldur Karlsson","VK_EXT_debug_utils","VK_EXT_debug_report","Baldur Karlsson @baldurk","VK_EXT_debug_marker",{"number":1508,"type":4012,"author":4076,"deprecatedby":4071,"provisional":3693,"specialuse":3860,"contact":4077,"extension":4072,"proposal":3693},"GOOGLE","Courtney Goeltzenleuchter @courtney-g",{"number":4079,"type":4012,"author":3953,"provisional":3693,"specialuse":3860,"contact":4080,"extension":4071,"proposal":3693},129,"Mark Young @marky-lunarg",{"number":4082,"type":3891,"author":3953,"provisional":3693,"depends":3908,"ratified":4030,"specialuse":4083,"contact":4008,"extension":4084,"proposal":1101},284,"d3demulation","VK_EXT_depth_bias_control",{"number":4086,"type":3891,"author":3953,"provisional":3693,"depends":3908,"contact":4087,"extension":4088,"proposal":3693},422,"Graeme Leese @gnl21","VK_EXT_depth_clamp_zero_one",{"number":4090,"type":3891,"author":3953,"provisional":3693,"depends":3908,"ratified":4030,"specialuse":3976,"contact":4091,"extension":4092,"proposal":3693},356,"Shahbaz Youssefi @syoussefi","VK_EXT_depth_clip_control",{"number":4094,"type":3891,"author":3953,"provisional":3693,"depends":3908,"ratified":4056,"specialuse":4083,"contact":4044,"extension":4095,"proposal":3693},103,"VK_EXT_depth_clip_enable",{"number":1525,"type":3891,"author":4018,"provisional":3693,"ratified":4056,"contact":4044,"extension":4097,"proposal":3693},"VK_EXT_depth_range_unrestricted",{"number":4099,"type":3891,"author":3953,"provisional":3693,"depends":4100,"contact":3895,"extension":4101,"proposal":1101},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":4103,"type":3891,"author":4018,"promotedto":4104,"provisional":3693,"depends":4105,"contact":4038,"extension":4106,"proposal":3693},162,"VK_VERSION_1_2","(VK_KHR_get_physical_device_properties2+VK_KHR_maintenance3),VK_VERSION_1_1","VK_EXT_descriptor_indexing",{"number":4108,"type":3891,"author":3953,"provisional":3693,"depends":4109,"specialuse":4110,"contact":4111,"extension":4112,"proposal":3693},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":4114,"type":3891,"author":3953,"provisional":3693,"depends":3908,"contact":4111,"extension":4115,"proposal":1101},342,"VK_EXT_device_fault",{"number":4117,"type":3891,"author":3953,"provisional":3693,"depends":3908,"ratified":4030,"specialuse":3903,"contact":4118,"extension":4119,"proposal":3693},285,"Yiwei Zhang @zhangyiwei","VK_EXT_device_memory_report",{"number":4121,"type":4012,"author":4018,"provisional":3693,"depends":4122,"contact":4020,"extension":4013,"proposal":3693},89,"VK_KHR_display",{"number":4124,"type":4012,"author":3953,"provisional":3693,"depends":4125,"platform":4126,"contact":4127,"extension":4128,"proposal":3693},347,"VK_KHR_surface","directfb","Nicolas Caramelli @caramelli","VK_EXT_directfb_surface",{"number":4130,"type":3891,"author":4018,"provisional":3693,"depends":3908,"ratified":4056,"contact":4044,"extension":4131,"proposal":3693},100,"VK_EXT_discard_rectangles",{"number":4133,"type":3891,"author":4018,"provisional":3693,"depends":4134,"ratified":4030,"contact":4020,"extension":4135,"proposal":3693},92,"VK_EXT_display_surface_counter+VK_KHR_swapchain","VK_EXT_display_control",{"number":4137,"type":4012,"author":4018,"provisional":3693,"depends":4122,"ratified":4030,"contact":4020,"extension":4138,"proposal":3693},91,"VK_EXT_display_surface_counter",{"number":4140,"type":3891,"author":3953,"provisional":3693,"depends":4141,"ratified":4030,"contact":4044,"extension":4142,"proposal":1101},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":4144,"type":3891,"author":3953,"promotedto":4006,"provisional":3693,"depends":3908,"ratified":4007,"contact":4044,"extension":4145,"proposal":3693},268,"VK_EXT_extended_dynamic_state",{"number":4147,"type":3891,"author":3953,"promotedto":4006,"provisional":3693,"depends":3908,"ratified":4007,"contact":4148,"extension":4149,"proposal":3693},378,"Vikram Kushwaha @vkushwaha-nv","VK_EXT_extended_dynamic_state2",{"number":4151,"type":3891,"author":4018,"provisional":3693,"depends":3908,"ratified":4030,"contact":4044,"extension":4152,"proposal":1101},456,"VK_EXT_extended_dynamic_state3",{"number":4154,"type":3891,"author":3953,"provisional":3693,"depends":4155,"ratified":4030,"contact":4156,"extension":4157,"proposal":1101},454,"VK_KHR_external_memory,VK_VERSION_1_1","Lina Versace @versalinyaa","VK_EXT_external_memory_acquire_unmodified",{"number":4159,"type":3891,"author":3953,"provisional":3693,"depends":4160,"ratified":4056,"contact":4156,"extension":4161,"proposal":3693},126,"VK_KHR_external_memory_fd","VK_EXT_external_memory_dma_buf",{"number":4163,"type":3891,"author":3953,"provisional":3693,"depends":4155,"ratified":4056,"contact":3904,"extension":4164,"proposal":3693},179,"VK_EXT_external_memory_host",{"number":4166,"type":3891,"author":4167,"provisional":3693,"ratified":4030,"contact":4168,"extension":4169,"proposal":3693},171,"QCOM","Matthew Netsch @mnetsch","VK_EXT_filter_cubic",{"number":4171,"type":3891,"author":3953,"provisional":3693,"depends":3908,"contact":4168,"extension":4172,"proposal":3693},219,"VK_EXT_fragment_density_map",{"number":4174,"type":3891,"author":3953,"provisional":3693,"depends":4172,"contact":4168,"extension":4175,"proposal":3693},333,"VK_EXT_fragment_density_map2",{"number":4177,"type":3891,"author":3953,"provisional":3693,"depends":3908,"contact":4044,"extension":4178,"proposal":3693},252,"VK_EXT_fragment_shader_interlock",{"number":4180,"type":3891,"author":3953,"provisional":3693,"ratified":4030,"contact":4181,"extension":4182,"proposal":1101},376,"James Fitzpatrick @jamesfitzpatrick","VK_EXT_frame_boundary",{"number":4184,"type":3891,"author":3953,"provisional":3693,"depends":4185,"platform":4186,"ratified":4030,"contact":4020,"extension":4187,"proposal":3693},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":4189,"type":3891,"author":3953,"promotedto":4190,"provisional":3693,"contact":4191,"extension":4192,"proposal":3693},175,"VK_KHR_global_priority","Andres Rodriguez @lostgoat","VK_EXT_global_priority",{"number":4194,"type":3891,"author":3953,"promotedto":4190,"provisional":3693,"depends":4195,"contact":4118,"extension":4196,"proposal":3693},389,"VK_EXT_global_priority+(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)","VK_EXT_global_priority_query",{"number":4198,"type":3891,"author":3892,"provisional":3693,"depends":4199,"contact":3895,"extension":4200,"proposal":1101},321,"(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_KHR_pipeline_library","VK_EXT_graphics_pipeline_library",{"number":4202,"type":3891,"author":4076,"provisional":3693,"depends":4203,"ratified":4056,"contact":4077,"extension":4204,"proposal":3693},106,"VK_KHR_swapchain","VK_EXT_hdr_metadata",{"number":4206,"type":4012,"author":3953,"provisional":3693,"depends":4125,"contact":4207,"extension":4208,"proposal":3693},257,"Lisa Wu @chengtianww","VK_EXT_headless_surface",{"number":4210,"type":3891,"author":3953,"provisional":3693,"depends":4211,"ratified":4030,"contact":4091,"extension":4212,"proposal":1101},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":4214,"type":3891,"author":3953,"promotedto":4104,"provisional":3693,"depends":3908,"contact":4215,"extension":4216,"proposal":3693},262,"Bas Nieuwenhuizen @BNieuwenhuizen","VK_EXT_host_query_reset",{"number":4218,"type":3891,"author":3953,"provisional":3693,"depends":4219,"specialuse":3976,"contact":4031,"extension":4220,"proposal":3693},394,"(VK_KHR_maintenance1+VK_KHR_get_physical_device_properties2),VK_VERSION_1_1","VK_EXT_image_2d_view_of_3d",{"number":4222,"type":3891,"author":3953,"provisional":3693,"depends":3908,"contact":3987,"extension":4223,"proposal":1101},339,"VK_EXT_image_compression_control",{"number":4225,"type":3891,"author":3953,"provisional":3693,"depends":4223,"contact":3987,"extension":4226,"proposal":3693},438,"VK_EXT_image_compression_control_swapchain",{"number":4228,"type":3891,"author":3953,"provisional":3693,"depends":4229,"ratified":4030,"contact":4156,"extension":4230,"proposal":3693},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":4232,"type":3891,"author":3953,"promotedto":4006,"provisional":3693,"depends":3908,"ratified":4007,"contact":4087,"extension":4233,"proposal":3693},336,"VK_EXT_image_robustness",{"number":4235,"type":3891,"author":3953,"provisional":3693,"depends":4219,"specialuse":4083,"contact":4031,"extension":4236,"proposal":1101},419,"VK_EXT_image_sliced_view_of_3d",{"number":4238,"type":3891,"author":3953,"provisional":3693,"depends":3908,"contact":4008,"extension":4239,"proposal":3693},392,"VK_EXT_image_view_min_lod",{"number":4241,"type":3891,"author":3953,"promotedto":4242,"provisional":3693,"depends":3908,"contact":4044,"extension":4243,"proposal":3693},266,"VK_KHR_index_type_uint8","VK_EXT_index_type_uint8",{"number":4245,"type":3891,"author":3953,"promotedto":4006,"provisional":3693,"depends":4246,"contact":4247,"extension":4248,"proposal":3693},139,"(VK_KHR_get_physical_device_properties2+VK_KHR_maintenance1),VK_VERSION_1_1","Daniel Rakos @aqnuep","VK_EXT_inline_uniform_block",{"number":4250,"type":4012,"author":3953,"provisional":3693,"ratified":4030,"contact":4251,"extension":4252,"proposal":1101},497,"Christophe Riccio @christophe","VK_EXT_layer_settings",{"number":4254,"type":3891,"author":3953,"provisional":3693,"depends":3908,"specialuse":3976,"contact":4091,"extension":4255,"proposal":1101},466,"VK_EXT_legacy_dithering",{"number":4257,"type":3891,"author":3953,"provisional":3693,"depends":4258,"ratified":4030,"specialuse":3976,"contact":4031,"extension":4259,"proposal":1101},496,"VK_EXT_vertex_input_dynamic_state","VK_EXT_legacy_vertex_attributes",{"number":4261,"type":3891,"author":3953,"promotedto":4262,"provisional":3693,"depends":3908,"specialuse":4263,"contact":4038,"extension":4264,"proposal":3693},260,"VK_KHR_line_rasterization","cadsupport","VK_EXT_line_rasterization",{"number":4266,"type":3891,"author":3953,"promotedto":4267,"provisional":3693,"ratified":4030,"contact":4091,"extension":4268,"proposal":3693},401,"VK_KHR_load_store_op_none","VK_EXT_load_store_op_none",{"number":4270,"type":3891,"author":3953,"provisional":3693,"depends":4271,"ratified":4030,"contact":4272,"extension":4273,"proposal":1101},273,"VK_KHR_map_memory2","Faith Ekstrand @gfxstrand","VK_EXT_map_memory_placed",{"number":4275,"type":3891,"author":3953,"provisional":3693,"depends":3908,"ratified":4030,"contact":4038,"extension":4276,"proposal":3693},238,"VK_EXT_memory_budget",{"number":4278,"type":3891,"author":3953,"provisional":3693,"depends":3908,"ratified":4030,"contact":4038,"extension":4279,"proposal":3693},239,"VK_EXT_memory_priority",{"number":4281,"type":3891,"author":3953,"provisional":3693,"depends":4282,"contact":4283,"extension":4284,"proposal":1101},329,"VK_KHR_spirv_1_4","Christoph Kubisch @pixeljetstream","VK_EXT_mesh_shader",{"number":4286,"type":3891,"author":3953,"provisional":3693,"platform":4287,"contact":4288,"extension":4289,"proposal":1101},312,"metal","Bill Hollings @billhollings","VK_EXT_metal_objects",{"number":4291,"type":4012,"author":3953,"provisional":3693,"depends":4125,"platform":4287,"contact":4292,"extension":4293,"proposal":3693},218,"Dzmitry Malyshau @kvark","VK_EXT_metal_surface",{"number":4295,"type":3891,"author":3953,"provisional":3693,"depends":3908,"contact":4031,"extension":4296,"proposal":3693},393,"VK_EXT_multi_draw",{"number":4298,"type":3891,"author":3953,"provisional":3693,"depends":4299,"contact":4091,"extension":4300,"proposal":1101},377,"(VK_KHR_create_renderpass2+VK_KHR_depth_stencil_resolve),VK_VERSION_1_2","VK_EXT_multisampled_render_to_single_sampled",{"number":4302,"type":3891,"author":3953,"provisional":3693,"depends":4303,"specialuse":4083,"contact":4304,"extension":4305,"proposal":1101},495,"VK_KHR_maintenance3","Joshua Ashton @Joshua-Ashton,Hans-Kristian Arntzen @HansKristian-Work","VK_EXT_mutable_descriptor_type",{"number":4307,"type":3891,"author":3953,"provisional":3693,"depends":3908,"ratified":4030,"contact":4044,"extension":4308,"proposal":3693},452,"VK_EXT_nested_command_buffer",{"number":4310,"type":3891,"author":3953,"provisional":3693,"depends":3908,"specialuse":4311,"contact":4312,"extension":4313,"proposal":1101},423,"d3demulation,glemulation","Georg Lehmann @DadSchoorse","VK_EXT_non_seamless_cube_map",{"number":4315,"type":3891,"author":3953,"provisional":3693,"depends":4316,"ratified":4030,"contact":4317,"extension":4318,"proposal":1101},397,"VK_KHR_acceleration_structure+(VK_KHR_synchronization2,VK_VERSION_1_3)","Christoph Kubisch @pixeljetstream, Eric Werness","VK_EXT_opacity_micromap",{"number":4320,"type":3891,"author":3953,"provisional":3693,"depends":4279,"contact":4044,"extension":4321,"proposal":3693},413,"VK_EXT_pageable_device_local_memory",{"number":4323,"type":3891,"author":3953,"provisional":3693,"depends":3908,"ratified":4056,"contact":3913,"extension":4324,"proposal":3693},213,"VK_EXT_pci_bus_info",{"number":4326,"type":3891,"author":3953,"provisional":3693,"depends":3908,"contact":4327,"extension":4328,"proposal":3693},354,"Simon Ser @emersion","VK_EXT_physical_device_drm",{"number":4330,"type":3891,"author":3892,"promotedto":4006,"provisional":3693,"depends":3908,"contact":4331,"extension":4332,"proposal":3693},298,"Gregory Grebe @grgrebe_amd","VK_EXT_pipeline_creation_cache_control",{"number":4334,"type":3891,"author":4076,"promotedto":4006,"provisional":3693,"specialuse":3903,"contact":4335,"extension":4336,"proposal":3693},193,"Jean-Francois Roy @jfroy","VK_EXT_pipeline_creation_feedback",{"number":4338,"type":3891,"author":3953,"provisional":3693,"depends":4339,"contact":4340,"extension":4341,"proposal":1101},499,"VK_KHR_ray_tracing_pipeline+VK_KHR_pipeline_library","Hans-Kristian Arntzen @HansKristian-Work","VK_EXT_pipeline_library_group_handles",{"number":4343,"type":3891,"author":3953,"provisional":3693,"depends":3908,"contact":4344,"extension":4345,"proposal":3693},373,"Mukund Keshava @mkeshavanv","VK_EXT_pipeline_properties",{"number":4347,"type":3891,"author":3953,"provisional":3693,"depends":3908,"contact":4091,"extension":4348,"proposal":1101},467,"VK_EXT_pipeline_protected_access",{"number":4350,"type":3891,"author":4351,"provisional":3693,"depends":3908,"contact":4352,"extension":4353,"proposal":3693},69,"IMG","Jarred Davies","VK_EXT_pipeline_robustness",{"number":4355,"type":3891,"author":4018,"provisional":3693,"ratified":4030,"contact":4356,"extension":4357,"proposal":3693},156,"Daniel Koch @dgkoch","VK_EXT_post_depth_coverage",{"number":4359,"type":3891,"author":3953,"provisional":3693,"depends":3908,"ratified":4030,"specialuse":3976,"contact":4091,"extension":4360,"proposal":3693},357,"VK_EXT_primitive_topology_list_restart",{"number":4362,"type":3891,"author":3953,"provisional":3693,"depends":4363,"specialuse":3976,"contact":4091,"extension":4364,"proposal":1101},383,"VK_EXT_transform_feedback","VK_EXT_primitives_generated_query",{"number":4366,"type":3891,"author":4018,"promotedto":4006,"provisional":3693,"depends":3908,"contact":4367,"extension":4368,"proposal":3693},296,"Matthew Rusch @mattruschnv","VK_EXT_private_data",{"number":4370,"type":3891,"author":3953,"provisional":3693,"depends":3908,"ratified":4030,"specialuse":3976,"contact":4371,"extension":4372,"proposal":3693},255,"Jesse Hall @jessehall","VK_EXT_provoking_vertex",{"number":4374,"type":3891,"author":3953,"provisional":3693,"depends":4155,"ratified":4056,"contact":4156,"extension":4375,"proposal":3693},127,"VK_EXT_queue_family_foreign",{"number":4377,"type":3891,"author":3985,"provisional":3693,"depends":3908,"contact":3987,"extension":3986,"proposal":1101},464,{"number":4379,"type":3891,"author":3953,"provisional":3693,"depends":4380,"contact":3987,"extension":4381,"proposal":3693},345,"VK_KHR_sampler_ycbcr_conversion,VK_VERSION_1_1","VK_EXT_rgba10x6_formats",{"number":4383,"type":3891,"author":3953,"provisional":3693,"depends":3908,"ratified":4056,"contact":4068,"extension":4384,"proposal":3693},287,"VK_EXT_robustness2",{"number":4386,"type":3891,"author":3892,"provisional":3693,"depends":3908,"ratified":4056,"contact":3904,"extension":4387,"proposal":3693},144,"VK_EXT_sample_locations",{"number":4389,"type":3891,"author":4018,"promotedto":4104,"provisional":3693,"depends":3908,"contact":4038,"extension":4390,"proposal":3693},131,"VK_EXT_sampler_filter_minmax",{"number":4392,"type":3891,"author":3953,"promotedto":4104,"provisional":3693,"depends":3908,"contact":3895,"extension":4393,"proposal":3693},222,"VK_EXT_scalar_block_layout",{"number":4395,"type":3891,"author":3953,"promotedto":4104,"provisional":3693,"contact":3904,"extension":4396,"proposal":3693},247,"VK_EXT_separate_stencil_usage",{"number":4398,"type":3891,"author":4018,"provisional":3693,"depends":3908,"ratified":4056,"contact":4148,"extension":4399,"proposal":3693},261,"VK_EXT_shader_atomic_float",{"number":4401,"type":3891,"author":3953,"provisional":3693,"depends":4399,"ratified":4030,"contact":4272,"extension":4402,"proposal":3693},274,"VK_EXT_shader_atomic_float2",{"number":4404,"type":3891,"author":3953,"promotedto":4006,"provisional":3693,"depends":3908,"ratified":4007,"contact":4038,"extension":4405,"proposal":3693},277,"VK_EXT_shader_demote_to_helper_invocation",{"number":4407,"type":3891,"author":3953,"provisional":3693,"depends":3908,"ratified":4030,"contact":3895,"extension":4408,"proposal":3693},235,"VK_EXT_shader_image_atomic_int64",{"number":4410,"type":3891,"author":3953,"provisional":3693,"depends":4411,"contact":4340,"extension":4412,"proposal":1101},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":4414,"type":3891,"author":3953,"provisional":3693,"depends":4141,"ratified":4030,"contact":4415,"extension":4416,"proposal":1101},483,"Daniel Story @daniel-story","VK_EXT_shader_object",{"number":4418,"type":3891,"author":3953,"provisional":3693,"ratified":4030,"contact":3996,"extension":4419,"proposal":1101},565,"VK_EXT_shader_replicated_composites",{"number":4421,"type":3891,"author":3953,"provisional":3693,"ratified":4056,"contact":3919,"extension":4422,"proposal":3693},141,"VK_EXT_shader_stencil_export",{"number":4424,"type":3891,"author":4018,"deprecatedby":4104,"provisional":3693,"contact":4356,"extension":4425,"proposal":3693},65,"VK_EXT_shader_subgroup_ballot",{"number":4427,"type":3891,"author":4018,"deprecatedby":4002,"provisional":3693,"contact":4356,"extension":4428,"proposal":3693},66,"VK_EXT_shader_subgroup_vote",{"number":4430,"type":3891,"author":3953,"provisional":3693,"depends":4006,"ratified":4030,"contact":3987,"extension":21,"proposal":1101},396,{"number":4432,"type":3891,"author":4018,"promotedto":4104,"provisional":3693,"contact":4356,"extension":4433,"proposal":3693},163,"VK_EXT_shader_viewport_index_layer",{"number":4435,"type":3891,"author":3953,"promotedto":4006,"provisional":3693,"depends":4002,"ratified":4007,"contact":4436,"extension":4437,"proposal":3693},226,"Neil Henning @sheredom","VK_EXT_subgroup_size_control",{"number":4439,"type":3891,"author":3953,"provisional":3693,"depends":3908,"contact":4440,"extension":4441,"proposal":1101},459,"Ting Wei @catweiting","VK_EXT_subpass_merge_feedback",{"number":4443,"type":4012,"author":3953,"provisional":3693,"depends":4444,"contact":4091,"extension":4445,"proposal":1101},275,"VK_KHR_surface+VK_KHR_get_surface_capabilities2","VK_EXT_surface_maintenance1",{"number":4447,"type":4012,"author":4076,"provisional":3693,"depends":4125,"contact":4077,"extension":4448,"proposal":3693},105,"VK_EXT_swapchain_colorspace",{"number":4450,"type":3891,"author":3953,"provisional":3693,"depends":4451,"contact":4091,"extension":4452,"proposal":1101},276,"VK_KHR_swapchain+VK_EXT_surface_maintenance1+(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)","VK_EXT_swapchain_maintenance1",{"number":4454,"type":3891,"author":3953,"promotedto":4006,"provisional":3693,"depends":3908,"ratified":4007,"contact":4038,"extension":4455,"proposal":3693},282,"VK_EXT_texel_buffer_alignment",{"number":4457,"type":3891,"author":3985,"promotedto":4006,"provisional":3693,"depends":3908,"ratified":4007,"contact":3987,"extension":4458,"proposal":3693},67,"VK_EXT_texture_compression_astc_hdr",{"number":4460,"type":3891,"author":3953,"promotedto":4006,"provisional":3693,"contact":3895,"extension":4461,"proposal":3693},246,"VK_EXT_tooling_info",{"number":1750,"type":3891,"author":4018,"provisional":3693,"depends":3908,"ratified":4030,"specialuse":4463,"contact":4044,"extension":4363,"proposal":3693},"glemulation,d3demulation,devtools",{"number":4465,"type":3891,"author":4076,"provisional":3693,"contact":4466,"extension":4467,"proposal":3693},161,"Cort Stratton @cdwfs","VK_EXT_validation_cache",{"number":4469,"type":4012,"author":4470,"deprecatedby":4252,"provisional":3693,"specialuse":3860,"contact":4471,"extension":4472,"proposal":3693},248,"LUNARG","Karl Schultz @karl-lunarg","VK_EXT_validation_features",{"number":4474,"type":4012,"author":4076,"deprecatedby":4252,"provisional":3693,"specialuse":3860,"contact":4475,"extension":4476,"proposal":3693},62,"Tobin Ehlis @tobine","VK_EXT_validation_flags",{"number":4478,"type":3891,"author":4018,"promotedto":4479,"provisional":3693,"depends":3908,"contact":4061,"extension":4480,"proposal":3693},191,"VK_KHR_vertex_attribute_divisor","VK_EXT_vertex_attribute_divisor",{"number":4482,"type":3891,"author":3953,"provisional":3693,"depends":3908,"ratified":4030,"contact":4044,"extension":4258,"proposal":3693},353,{"number":4484,"type":3891,"author":3953,"promotedto":4006,"provisional":3693,"depends":4380,"ratified":4007,"contact":4485,"extension":4486,"proposal":3693},331,"Tony Zlatinski @tzlatinski","VK_EXT_ycbcr_2plane_444_formats",{"number":4488,"type":3891,"author":3953,"provisional":3693,"depends":4380,"ratified":4056,"contact":4044,"extension":4489,"proposal":3693},253,"VK_EXT_ycbcr_image_arrays",{"number":4491,"type":3891,"author":4492,"provisional":3693,"depends":4493,"platform":4494,"contact":4495,"extension":4496,"proposal":3693},367,"FUCHSIA","VK_FUCHSIA_external_memory+(VK_KHR_sampler_ycbcr_conversion,VK_VERSION_1_1)","fuchsia","John Rosasco @rosasco","VK_FUCHSIA_buffer_collection",{"number":4498,"type":3891,"author":4492,"provisional":3693,"depends":4499,"platform":4494,"contact":4495,"extension":4500,"proposal":3693},365,"(VK_KHR_external_memory_capabilities+VK_KHR_external_memory),VK_VERSION_1_1","VK_FUCHSIA_external_memory",{"number":4502,"type":3891,"author":4492,"provisional":3693,"depends":4503,"platform":4494,"contact":4495,"extension":4504,"proposal":3693},366,"VK_KHR_external_semaphore_capabilities+VK_KHR_external_semaphore","VK_FUCHSIA_external_semaphore",{"number":4506,"type":4012,"author":4492,"provisional":3693,"depends":4125,"platform":4494,"contact":4507,"extension":4508,"proposal":3693},215,"Craig Stout @cdotstout","VK_FUCHSIA_imagepipe_surface",{"number":4510,"type":3891,"author":4511,"provisional":3693,"depends":4512,"platform":4513,"contact":4335,"extension":4514,"proposal":3693},192,"GGP","VK_KHR_swapchain+VK_GGP_stream_descriptor_surface","ggp","VK_GGP_frame_token",{"number":4516,"type":4012,"author":4511,"provisional":3693,"depends":4125,"platform":4513,"contact":4335,"extension":4517,"proposal":3693},50,"VK_GGP_stream_descriptor_surface",{"number":4519,"type":3891,"author":4076,"provisional":3693,"contact":4520,"extension":4521,"proposal":3693},225,"Hai Nguyen @chaoticbob","VK_GOOGLE_decorate_string",{"number":4523,"type":3891,"author":4076,"provisional":3693,"depends":4203,"contact":4524,"extension":4525,"proposal":3693},93,"Ian Elliott @ianelliottus","VK_GOOGLE_display_timing",{"number":4527,"type":3891,"author":4076,"provisional":3693,"contact":4520,"extension":4528,"proposal":3693},224,"VK_GOOGLE_hlsl_functionality1",{"number":4530,"type":4012,"author":4076,"provisional":3693,"depends":4125,"specialuse":3976,"contact":4091,"extension":4531,"proposal":1101},434,"VK_GOOGLE_surfaceless_query",{"number":4533,"type":3891,"author":4076,"provisional":3693,"contact":4534,"extension":4535,"proposal":3693},290,"Kaye Mason @chaleur","VK_GOOGLE_user_type",{"number":4537,"type":3891,"author":4538,"provisional":3693,"depends":3908,"contact":4539,"extension":4540,"proposal":1101},405,"HUAWEI","Yuchang Wang @richard_Wang2","VK_HUAWEI_cluster_culling_shader",{"number":4542,"type":3891,"author":4543,"provisional":3693,"depends":4544,"contact":4545,"extension":4546,"proposal":1101},371,"Huawei","VK_KHR_ray_tracing_pipeline+(VK_KHR_synchronization2,VK_VERSION_1_3)","Pan Gao @PanGao-h","VK_HUAWEI_invocation_mask",{"number":4548,"type":3891,"author":4538,"provisional":3693,"depends":4549,"contact":4545,"extension":4550,"proposal":3693},370,"((VK_KHR_create_renderpass2,VK_VERSION_1_2)+VK_KHR_synchronization2),VK_VERSION_1_3","VK_HUAWEI_subpass_shading",{"number":1542,"type":3891,"author":4351,"provisional":3693,"contact":3895,"extension":4552,"proposal":3693},"VK_IMG_filter_cubic",{"number":4554,"type":3891,"author":4351,"deprecatedby":4555,"provisional":3693,"contact":4556,"extension":4557,"proposal":3693},55,null,"Stuart Smith","VK_IMG_format_pvrtc",{"number":4559,"type":3891,"author":4351,"provisional":3693,"depends":3908,"specialuse":3976,"contact":4181,"extension":4560,"proposal":3693},111,"VK_IMG_relaxed_line_rasterization",{"number":4562,"type":3891,"author":4563,"provisional":3693,"specialuse":3903,"contact":4564,"extension":4565,"proposal":3693},211,"INTEL","Lionel Landwerlin @llandwerlin","VK_INTEL_performance_query",{"number":4567,"type":3891,"author":4563,"provisional":3693,"depends":3908,"contact":4568,"extension":4569,"proposal":3693},210,"Ian Romanick @ianromanick","VK_INTEL_shader_integer_functions2",{"number":4571,"type":3891,"author":4572,"promotedto":4002,"provisional":3693,"depends":4573,"ratified":4030,"contact":3987,"extension":4574,"proposal":3693},84,"KHR","(VK_KHR_get_physical_device_properties2+VK_KHR_storage_buffer_storage_class),VK_VERSION_1_1","VK_KHR_16bit_storage",{"number":4576,"type":3891,"author":4572,"promotedto":4104,"provisional":3693,"depends":4573,"ratified":4030,"contact":4577,"extension":4578,"proposal":3693},178,"Alexander Galazin @alegal-arm","VK_KHR_8bit_storage",{"number":4580,"type":3891,"author":4572,"provisional":3693,"depends":4581,"ratified":4030,"contact":4356,"extension":4582,"proposal":3693},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":1181,"type":4012,"author":4572,"provisional":3693,"depends":4125,"platform":3975,"ratified":4030,"contact":3982,"extension":4584,"proposal":3693},"VK_KHR_android_surface",{"number":4586,"type":3891,"author":4572,"promotedto":4002,"provisional":3693,"ratified":4030,"contact":3895,"extension":4587,"proposal":3693},158,"VK_KHR_bind_memory2",{"number":4589,"type":3891,"author":4572,"promotedto":4104,"provisional":3693,"depends":4590,"ratified":4030,"contact":4038,"extension":4048,"proposal":3693},258,"(VK_KHR_get_physical_device_properties2+VK_KHR_device_group),VK_VERSION_1_1",{"number":4592,"type":3891,"author":4572,"provisional":3693,"depends":3908,"ratified":4056,"contact":4247,"extension":4052,"proposal":3693},544,{"number":4594,"type":3891,"author":4572,"provisional":3693,"depends":4595,"ratified":4030,"contact":4596,"extension":4597,"proposal":1101},512,"VK_KHR_get_physical_device_properties2","Jean-Noe Morissette @MagicPoncho","VK_KHR_compute_shader_derivatives",{"number":4599,"type":3891,"author":4572,"provisional":3693,"depends":3908,"ratified":4030,"contact":3996,"extension":4600,"proposal":1101},507,"VK_KHR_cooperative_matrix",{"number":4602,"type":3891,"author":4572,"promotedto":4006,"provisional":3693,"depends":3908,"ratified":4056,"contact":4168,"extension":4603,"proposal":3693},338,"VK_KHR_copy_commands2",{"number":4605,"type":3891,"author":4572,"promotedto":4104,"provisional":3693,"depends":4606,"ratified":4030,"contact":4607,"extension":4608,"proposal":3693},110,"(VK_KHR_multiview+VK_KHR_maintenance2),VK_VERSION_1_1","Tobias Hector @tobias","VK_KHR_create_renderpass2",{"number":4610,"type":3891,"author":4572,"promotedto":4002,"provisional":3693,"depends":4611,"ratified":4030,"contact":4020,"extension":4612,"proposal":3693},128,"VK_KHR_get_memory_requirements2,VK_VERSION_1_1","VK_KHR_dedicated_allocation",{"number":4614,"type":3891,"author":4572,"provisional":3693,"ratified":4030,"contact":4615,"extension":4616,"proposal":3693},269,"Josh Barczak @jbarczak","VK_KHR_deferred_host_operations",{"number":4618,"type":3891,"author":4572,"promotedto":4104,"provisional":3693,"depends":4619,"ratified":4030,"contact":4620,"extension":4621,"proposal":3693},200,"VK_KHR_create_renderpass2,VK_VERSION_1_2","Jan-Harald Fredriksen @janharald","VK_KHR_depth_stencil_resolve",{"number":4623,"type":3891,"author":4572,"promotedto":4002,"provisional":3693,"ratified":4030,"contact":4624,"extension":4625,"proposal":3693},86,"Markus Tavenrath @mtavenrath","VK_KHR_descriptor_update_template",{"number":4627,"type":3891,"author":4572,"promotedto":4002,"provisional":3693,"depends":4628,"ratified":4030,"contact":4038,"extension":4629,"proposal":3693},61,"VK_KHR_device_group_creation","VK_KHR_device_group",{"number":4631,"type":4012,"author":4572,"promotedto":4002,"provisional":3693,"ratified":4030,"contact":4038,"extension":4628,"proposal":3693},71,{"number":1058,"type":4012,"author":4572,"provisional":3693,"depends":4125,"ratified":4056,"contact":4633,"extension":4122,"proposal":3693},"James Jones @cubanismo,Norbert Nopper @FslNopper",{"number":1097,"type":3891,"author":4572,"provisional":3693,"depends":4635,"ratified":4056,"contact":4020,"extension":4636,"proposal":3693},"VK_KHR_swapchain+VK_KHR_display","VK_KHR_display_swapchain",{"number":4638,"type":3891,"author":4572,"promotedto":4104,"provisional":3693,"ratified":4030,"contact":4044,"extension":3916,"proposal":3693},170,{"number":4640,"type":3891,"author":4572,"promotedto":4104,"provisional":3693,"depends":3908,"ratified":4030,"contact":3904,"extension":4641,"proposal":3693},197,"VK_KHR_driver_properties",{"number":3842,"type":3891,"author":4572,"promotedto":4006,"provisional":3693,"depends":4643,"ratified":4030,"contact":3895,"extension":29,"proposal":1101},"((VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_KHR_depth_stencil_resolve),VK_VERSION_1_2",{"number":4645,"type":3891,"author":3892,"provisional":3693,"depends":4646,"ratified":4030,"contact":3895,"extension":4647,"proposal":1101},233,"VK_KHR_dynamic_rendering,VK_VERSION_1_3","VK_KHR_dynamic_rendering_local_read",{"number":4649,"type":3891,"author":4572,"promotedto":4002,"provisional":3693,"depends":4650,"ratified":4030,"contact":3982,"extension":4651,"proposal":3693},114,"VK_KHR_external_fence_capabilities","VK_KHR_external_fence",{"number":4653,"type":4012,"author":4572,"promotedto":4002,"provisional":3693,"depends":3908,"ratified":4030,"contact":3982,"extension":4650,"proposal":3693},113,{"number":4655,"type":3891,"author":4572,"provisional":3693,"depends":4656,"ratified":4056,"contact":3982,"extension":4657,"proposal":3693},116,"VK_KHR_external_fence,VK_VERSION_1_1","VK_KHR_external_fence_fd",{"number":4659,"type":3891,"author":4572,"provisional":3693,"depends":4651,"platform":4186,"ratified":4030,"contact":3982,"extension":4660,"proposal":3693},115,"VK_KHR_external_fence_win32",{"number":4662,"type":3891,"author":4572,"promotedto":4002,"provisional":3693,"depends":4663,"ratified":4030,"contact":4020,"extension":4664,"proposal":3693},73,"VK_KHR_external_memory_capabilities,VK_VERSION_1_1","VK_KHR_external_memory",{"number":4666,"type":4012,"author":4572,"promotedto":4002,"provisional":3693,"depends":3908,"ratified":4030,"contact":4020,"extension":4667,"proposal":3693},72,"VK_KHR_external_memory_capabilities",{"number":4669,"type":3891,"author":4572,"provisional":3693,"depends":4155,"ratified":4056,"contact":4020,"extension":4160,"proposal":3693},75,{"number":4671,"type":3891,"author":4572,"provisional":3693,"depends":4155,"platform":4186,"ratified":4030,"contact":4020,"extension":4672,"proposal":3693},74,"VK_KHR_external_memory_win32",{"number":4674,"type":3891,"author":4572,"promotedto":4002,"provisional":3693,"depends":4675,"ratified":4030,"contact":4020,"extension":4676,"proposal":3693},78,"VK_KHR_external_semaphore_capabilities","VK_KHR_external_semaphore",{"number":4678,"type":4012,"author":4572,"promotedto":4002,"provisional":3693,"depends":3908,"ratified":4030,"contact":4020,"extension":4675,"proposal":3693},77,{"number":4680,"type":3891,"author":4572,"provisional":3693,"depends":4681,"ratified":4056,"contact":4020,"extension":4682,"proposal":3693},80,"VK_KHR_external_semaphore,VK_VERSION_1_1","VK_KHR_external_semaphore_fd",{"number":4684,"type":3891,"author":4572,"provisional":3693,"depends":4676,"platform":4186,"ratified":4030,"contact":4020,"extension":4685,"proposal":3693},79,"VK_KHR_external_semaphore_win32",{"number":4687,"type":3891,"author":4572,"promotedto":4006,"provisional":3693,"depends":3908,"ratified":4030,"contact":4564,"extension":4688,"proposal":3693},361,"VK_KHR_format_feature_flags2",{"number":4690,"type":3891,"author":4572,"provisional":3693,"depends":3908,"ratified":4030,"contact":3899,"extension":4691,"proposal":1101},323,"VK_KHR_fragment_shader_barycentric",{"number":4693,"type":3891,"author":4572,"provisional":3693,"depends":4694,"ratified":4056,"contact":3895,"extension":3573,"proposal":1101},227,"((VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_KHR_create_renderpass2),VK_VERSION_1_2",{"number":4696,"type":4012,"author":4572,"provisional":3693,"depends":4122,"ratified":4056,"contact":4020,"extension":4697,"proposal":3693},122,"VK_KHR_get_display_properties2",{"number":4699,"type":3891,"author":4572,"promotedto":4002,"provisional":3693,"ratified":4030,"contact":4272,"extension":4700,"proposal":3693},147,"VK_KHR_get_memory_requirements2",{"number":4702,"type":4012,"author":4572,"promotedto":4002,"provisional":3693,"ratified":4030,"contact":4038,"extension":4595,"proposal":3693},60,{"number":4704,"type":4012,"author":4572,"provisional":3693,"depends":4125,"ratified":4056,"contact":4020,"extension":4705,"proposal":3693},120,"VK_KHR_get_surface_capabilities2",{"number":4707,"type":3891,"author":4572,"provisional":3693,"depends":3908,"ratified":4056,"contact":3895,"extension":4190,"proposal":3693},189,{"number":4709,"type":3891,"author":4572,"promotedto":4104,"provisional":3693,"ratified":4030,"contact":4272,"extension":4710,"proposal":3693},148,"VK_KHR_image_format_list",{"number":4712,"type":3891,"author":4572,"promotedto":4104,"provisional":3693,"depends":4713,"ratified":4030,"contact":4607,"extension":4714,"proposal":3693},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":4716,"type":3891,"author":4572,"provisional":3693,"depends":4203,"ratified":4056,"contact":4524,"extension":4717,"proposal":3693},85,"VK_KHR_incremental_present",{"number":4719,"type":3891,"author":4572,"provisional":3693,"depends":3908,"ratified":4056,"contact":4044,"extension":4242,"proposal":3693},534,{"number":4721,"type":3891,"author":4572,"provisional":3693,"depends":3908,"ratified":4056,"contact":4044,"extension":4262,"proposal":3693},535,{"number":4723,"type":3891,"author":4572,"provisional":3693,"ratified":4030,"contact":4091,"extension":4267,"proposal":1101},527,{"number":4725,"type":3891,"author":4572,"promotedto":4002,"provisional":3693,"ratified":4030,"contact":4044,"extension":3936,"proposal":3693},70,{"number":4727,"type":3891,"author":4572,"promotedto":4002,"provisional":3693,"ratified":4030,"contact":4728,"extension":4729,"proposal":3693},118,"Michael Worcester @michaelworcester","VK_KHR_maintenance2",{"number":4731,"type":3891,"author":4572,"promotedto":4002,"provisional":3693,"depends":3908,"ratified":4030,"contact":4038,"extension":4303,"proposal":3693},169,{"number":4733,"type":3891,"author":4572,"promotedto":4006,"provisional":3693,"depends":4002,"ratified":4030,"contact":4044,"extension":4734,"proposal":3693},414,"VK_KHR_maintenance4",{"number":4736,"type":3891,"author":4572,"provisional":3693,"depends":4737,"ratified":4030,"contact":4738,"extension":4739,"proposal":1101},471,"(VK_VERSION_1_1+VK_KHR_dynamic_rendering),VK_VERSION_1_3","Stu Smith @stu-s","VK_KHR_maintenance5",{"number":4741,"type":3891,"author":4572,"provisional":3693,"depends":4002,"ratified":4030,"contact":4742,"extension":4743,"proposal":1101},546,"Jon Leech @oddhack","VK_KHR_maintenance6",{"number":4745,"type":3891,"author":4572,"provisional":3693,"depends":4002,"ratified":4030,"contact":4031,"extension":4746,"proposal":1101},563,"VK_KHR_maintenance7",{"number":4748,"type":3891,"author":4572,"provisional":3693,"ratified":4030,"contact":4272,"extension":4271,"proposal":1101},272,{"number":4750,"type":3891,"author":4572,"promotedto":4002,"provisional":3693,"depends":3908,"ratified":4030,"contact":4038,"extension":4751,"proposal":3693},54,"VK_KHR_multiview",{"extension":4753,"proposal":3693},"VK_KHR_object_refresh",{"number":4755,"type":3891,"author":4572,"provisional":3693,"depends":3908,"ratified":4056,"specialuse":3903,"contact":4756,"extension":4757,"proposal":3693},117,"Alon Or-bach @alonorbach","VK_KHR_performance_query",{"number":4759,"type":3891,"author":4572,"provisional":3693,"depends":4739,"ratified":4030,"contact":4738,"extension":4760,"proposal":1101},484,"VK_KHR_pipeline_binary",{"number":4762,"type":3891,"author":4572,"provisional":3693,"depends":3908,"ratified":4030,"specialuse":3903,"contact":4272,"extension":4763,"proposal":3693},270,"VK_KHR_pipeline_executable_properties",{"number":4765,"type":3891,"author":4572,"provisional":3693,"ratified":4030,"contact":4283,"extension":4766,"proposal":3693},291,"VK_KHR_pipeline_library",{"number":4768,"type":4012,"author":4572,"provisional":3693,"ratified":4030,"contact":4769,"extension":4770,"proposal":3693},395,"Charles Giessen @charles-lunarg","VK_KHR_portability_enumeration",{"number":4772,"type":3891,"author":4572,"provisional":1101,"depends":3908,"platform":3894,"ratified":4030,"contact":4288,"extension":4773,"proposal":3693},164,"VK_KHR_portability_subset",{"number":4775,"type":3891,"author":4572,"provisional":3693,"depends":4776,"ratified":4030,"contact":4777,"extension":4778,"proposal":3693},295,"VK_KHR_swapchain+VK_KHR_get_physical_device_properties2,VK_VERSION_1_1","Keith Packard @keithp","VK_KHR_present_id",{"number":4780,"type":3891,"author":4572,"provisional":3693,"depends":4781,"ratified":4030,"contact":4777,"extension":4782,"proposal":3693},249,"VK_KHR_swapchain+VK_KHR_present_id","VK_KHR_present_wait",{"number":4784,"type":3891,"author":4572,"provisional":3693,"depends":3908,"ratified":4030,"contact":4038,"extension":4785,"proposal":3693},81,"VK_KHR_push_descriptor",{"number":4787,"type":3891,"author":4572,"provisional":3693,"depends":4788,"ratified":4030,"contact":4356,"extension":4789,"proposal":3693},349,"VK_KHR_spirv_1_4+VK_KHR_acceleration_structure","VK_KHR_ray_query",{"number":4791,"type":3891,"author":4572,"provisional":3693,"depends":4582,"ratified":4030,"contact":4356,"extension":4792,"proposal":3693},387,"VK_KHR_ray_tracing_maintenance1",{"number":4794,"type":3891,"author":4572,"provisional":3693,"depends":4788,"ratified":4030,"contact":4356,"extension":4795,"proposal":3693},348,"VK_KHR_ray_tracing_pipeline",{"number":4797,"type":3891,"author":4572,"provisional":3693,"depends":4582,"ratified":4030,"contact":4798,"extension":4799,"proposal":1101},482,"Eric Werness","VK_KHR_ray_tracing_position_fetch",{"number":4801,"type":3891,"author":4572,"promotedto":4002,"provisional":3693,"ratified":4030,"contact":4802,"extension":4803,"proposal":3693},145,"John Kessenich @johnkslang","VK_KHR_relaxed_block_layout",{"number":1533,"type":3891,"author":4572,"promotedto":4104,"provisional":3693,"ratified":4030,"contact":3895,"extension":4805,"proposal":3693},"VK_KHR_sampler_mirror_clamp_to_edge",{"number":4807,"type":3891,"author":4572,"promotedto":4002,"provisional":3693,"depends":4808,"ratified":4030,"contact":4809,"extension":4810,"proposal":3693},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":4812,"type":3891,"author":4572,"promotedto":4104,"provisional":3693,"depends":4694,"ratified":4030,"contact":4044,"extension":4813,"proposal":3693},242,"VK_KHR_separate_depth_stencil_layouts",{"number":4815,"type":3891,"author":4572,"promotedto":4104,"provisional":3693,"depends":3908,"ratified":4030,"contact":4816,"extension":4817,"proposal":3693},181,"Aaron Hagan @ahagan","VK_KHR_shader_atomic_int64",{"number":4819,"type":3891,"author":4572,"provisional":3693,"depends":3908,"ratified":4056,"contact":4816,"extension":4820,"proposal":3693},182,"VK_KHR_shader_clock",{"number":4822,"type":3891,"author":4572,"promotedto":4002,"provisional":3693,"ratified":4030,"contact":4356,"extension":4823,"proposal":3693},64,"VK_KHR_shader_draw_parameters",{"number":4825,"type":3891,"author":4572,"provisional":3693,"depends":3908,"ratified":4030,"contact":3996,"extension":4826,"proposal":1101},545,"VK_KHR_shader_expect_assume",{"number":4828,"type":3891,"author":4572,"promotedto":4104,"provisional":3693,"depends":3908,"ratified":4030,"contact":4577,"extension":3922,"proposal":3693},83,{"number":4830,"type":3891,"author":4572,"promotedto":4104,"provisional":3693,"depends":3908,"ratified":4030,"contact":4577,"extension":4831,"proposal":3693},198,"VK_KHR_shader_float_controls",{"number":4833,"type":3891,"author":4572,"provisional":3693,"depends":4834,"ratified":4030,"contact":4087,"extension":4835,"proposal":1101},529,"VK_VERSION_1_1+VK_KHR_shader_float_controls","VK_KHR_shader_float_controls2",{"number":4837,"type":3891,"author":4572,"promotedto":4006,"provisional":3693,"depends":3908,"ratified":4030,"contact":3996,"extension":4838,"proposal":1101},281,"VK_KHR_shader_integer_dot_product",{"number":4840,"type":3891,"author":4572,"provisional":3693,"depends":4002,"ratified":4030,"contact":4841,"extension":4842,"proposal":1101},435,"Alan Baker @alan-baker","VK_KHR_shader_maximal_reconvergence",{"number":4844,"type":3891,"author":4572,"promotedto":4006,"provisional":3693,"ratified":4030,"contact":4073,"extension":4845,"proposal":3693},294,"VK_KHR_shader_non_semantic_info",{"number":4847,"type":3891,"author":4572,"provisional":3693,"depends":4848,"ratified":4030,"contact":3895,"extension":4849,"proposal":1101},236,"VK_VERSION_1_1+VK_KHR_vulkan_memory_model+VK_KHR_shader_maximal_reconvergence","VK_KHR_shader_quad_control",{"number":4851,"type":3891,"author":4572,"provisional":3693,"ratified":4030,"contact":4852,"extension":4853,"proposal":1101},559,"Nathan Gauër @Keenuts","VK_KHR_shader_relaxed_extended_instruction",{"number":4855,"type":3891,"author":4572,"promotedto":4104,"provisional":3693,"depends":4002,"ratified":4030,"contact":4436,"extension":4856,"proposal":3693},176,"VK_KHR_shader_subgroup_extended_types",{"number":4858,"type":3891,"author":4572,"provisional":3693,"ratified":4030,"contact":3996,"extension":4859,"proposal":1101},417,"VK_KHR_shader_subgroup_rotate",{"number":4861,"type":3891,"author":4572,"provisional":3693,"depends":4002,"ratified":4030,"contact":4841,"extension":4862,"proposal":3693},324,"VK_KHR_shader_subgroup_uniform_control_flow",{"number":4864,"type":3891,"author":4572,"promotedto":4006,"provisional":3693,"depends":3908,"ratified":4056,"contact":3982,"extension":4865,"proposal":3693},216,"VK_KHR_shader_terminate_invocation",{"number":4867,"type":3891,"author":4572,"provisional":3693,"depends":4868,"ratified":4056,"contact":4756,"extension":4869,"proposal":3693},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":4871,"type":3891,"author":4572,"promotedto":4104,"provisional":3693,"depends":4834,"ratified":4030,"contact":3982,"extension":4282,"proposal":3693},237,{"number":4873,"type":3891,"author":4572,"promotedto":4002,"provisional":3693,"ratified":4030,"contact":4577,"extension":4874,"proposal":3693},132,"VK_KHR_storage_buffer_storage_class",{"number":1018,"type":4012,"author":4572,"provisional":3693,"ratified":4056,"contact":4876,"extension":4125,"proposal":3693},"James Jones @cubanismo,Ian Elliott @ianelliottus",{"number":4878,"type":4012,"author":4572,"provisional":3693,"depends":4879,"ratified":4030,"contact":4880,"extension":4881,"proposal":3693},240,"VK_VERSION_1_1+VK_KHR_get_surface_capabilities2","Sandeep Shinde @sashinde","VK_KHR_surface_protected_capabilities",{"number":1028,"type":3891,"author":4572,"provisional":3693,"depends":4125,"ratified":4056,"contact":4876,"extension":4203,"proposal":3693},{"number":4884,"type":3891,"author":4572,"provisional":3693,"depends":4885,"ratified":4056,"contact":3904,"extension":4886,"proposal":3693},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":4888,"type":3891,"author":4572,"promotedto":4006,"provisional":3693,"depends":3908,"ratified":4056,"contact":3895,"extension":4889,"proposal":3693},315,"VK_KHR_synchronization2",{"number":4891,"type":3891,"author":4572,"promotedto":4104,"provisional":3693,"depends":3908,"ratified":4030,"contact":4272,"extension":4892,"proposal":3693},208,"VK_KHR_timeline_semaphore",{"number":4894,"type":3891,"author":4572,"promotedto":4104,"provisional":3693,"depends":3908,"ratified":4030,"contact":4087,"extension":4895,"proposal":3693},254,"VK_KHR_uniform_buffer_standard_layout",{"number":4897,"type":3891,"author":4572,"promotedto":4002,"provisional":3693,"depends":4573,"ratified":4030,"contact":3982,"extension":4898,"proposal":3693},121,"VK_KHR_variable_pointers",{"number":4900,"type":3891,"author":4572,"provisional":3693,"depends":3908,"ratified":4056,"contact":4091,"extension":4479,"proposal":1101},526,{"number":4902,"type":3891,"author":4572,"provisional":3693,"depends":4903,"ratified":4030,"contact":4247,"extension":4904,"proposal":1101},513,"VK_KHR_video_decode_queue","VK_KHR_video_decode_av1",{"number":3826,"type":3891,"author":4572,"provisional":3693,"depends":4903,"ratified":4030,"contact":4906,"extension":4907,"proposal":1101},"peter.fang@amd.com","VK_KHR_video_decode_h264",{"number":4909,"type":3891,"author":4572,"provisional":3693,"depends":4903,"ratified":4030,"contact":4906,"extension":4910,"proposal":1101},188,"VK_KHR_video_decode_h265",{"number":1677,"type":3891,"author":4572,"provisional":3693,"depends":4912,"ratified":4030,"contact":4913,"extension":4903,"proposal":1101},"VK_KHR_video_queue+(VK_KHR_synchronization2,VK_VERSION_1_3)","jake.beju@amd.com",{"number":3818,"type":3891,"author":4572,"provisional":3693,"depends":4915,"ratified":4030,"contact":4916,"extension":4917,"proposal":1101},"VK_KHR_video_encode_queue","Ahmed Abdelkhalek @aabdelkh","VK_KHR_video_encode_h264",{"number":3822,"type":3891,"author":4572,"provisional":3693,"depends":4915,"ratified":4030,"contact":4916,"extension":4919,"proposal":1101},"VK_KHR_video_encode_h265",{"number":4921,"type":3891,"author":4572,"provisional":3693,"depends":4912,"ratified":4030,"contact":4916,"extension":4915,"proposal":1101},300,{"number":4923,"type":3891,"author":4572,"provisional":3693,"depends":4924,"ratified":4030,"contact":4247,"extension":4925,"proposal":1101},516,"VK_KHR_video_queue","VK_KHR_video_maintenance1",{"number":1669,"type":3891,"author":4572,"provisional":3693,"depends":4927,"ratified":4030,"contact":4485,"extension":4924,"proposal":1101},"(VK_VERSION_1_1+VK_KHR_synchronization2),VK_VERSION_1_3",{"number":4929,"type":3891,"author":4572,"promotedto":4104,"provisional":3693,"depends":3908,"ratified":4030,"contact":4038,"extension":4930,"proposal":3693},212,"VK_KHR_vulkan_memory_model",{"number":1140,"type":4012,"author":4572,"provisional":3693,"depends":4125,"platform":4932,"ratified":4030,"contact":4933,"extension":4934,"proposal":3693},"wayland","Jesse Hall @critsec,Ian Elliott @ianelliottus","VK_KHR_wayland_surface",{"number":4936,"type":3891,"author":4572,"provisional":3693,"depends":4672,"platform":4186,"ratified":4030,"contact":4937,"extension":4938,"proposal":3693},76,"Carsten Rohde @crohde","VK_KHR_win32_keyed_mutex",{"number":1190,"type":4012,"author":4572,"provisional":3693,"depends":4125,"platform":4186,"ratified":4030,"contact":4933,"extension":4940,"proposal":3693},"VK_KHR_win32_surface",{"number":4942,"type":3891,"author":4572,"provisional":3693,"depends":3908,"ratified":4030,"contact":4943,"extension":4944,"proposal":3693},337,"Caio Marcelo de Oliveira Filho @cmarcelo","VK_KHR_workgroup_memory_explicit_layout",{"number":1116,"type":4012,"author":4572,"provisional":3693,"depends":4125,"platform":4946,"ratified":4030,"contact":4933,"extension":4947,"proposal":3693},"xcb","VK_KHR_xcb_surface",{"number":1107,"type":4012,"author":4572,"provisional":3693,"depends":4125,"platform":4949,"ratified":4030,"contact":4933,"extension":4950,"proposal":3693},"xlib","VK_KHR_xlib_surface",{"number":4952,"type":3891,"author":4572,"promotedto":4006,"provisional":3693,"depends":3908,"ratified":4030,"contact":4841,"extension":4953,"proposal":3693},326,"VK_KHR_zero_initialize_workgroup_memory",{"number":4955,"type":4012,"author":4470,"provisional":3693,"contact":4769,"extension":4956,"proposal":1101},460,"VK_LUNARG_direct_driver_loading",{"number":4958,"type":3891,"author":4959,"provisional":3693,"depends":3908,"specialuse":4083,"contact":4340,"extension":4960,"proposal":3693},576,"MESA","VK_MESA_image_alignment_control",{"number":4962,"type":3891,"author":4963,"provisional":3693,"depends":3908,"contact":4964,"extension":4965,"proposal":1101},531,"MSFT","Jesse Natalie @jenatali","VK_MSFT_layered_driver",{"number":4967,"type":4012,"author":4968,"deprecatedby":4293,"provisional":3693,"depends":4125,"platform":4969,"contact":4288,"extension":4970,"proposal":3693},123,"MVK","ios","VK_MVK_ios_surface",{"number":4972,"type":4012,"author":4968,"deprecatedby":4293,"provisional":3693,"depends":4125,"platform":4973,"contact":4288,"extension":4974,"proposal":3693},124,"macos","VK_MVK_macos_surface",{"number":4976,"type":4012,"author":4977,"provisional":3693,"depends":4125,"platform":4978,"contact":4979,"extension":4980,"proposal":3693},63,"NN","vi","Mathias Heyer gitlab:@mheyer","VK_NN_vi_surface",{"number":3782,"type":3891,"author":4982,"provisional":3693,"contact":4983,"extension":4984,"proposal":3693},"NVX","Eric Werness @ewerness-nv,Liam Middlebrook @liam-middlebrook","VK_NVX_binary_import",{"number":3786,"type":3891,"author":4982,"provisional":3693,"contact":4986,"extension":4987,"proposal":3693},"Eric Werness @ewerness-nv","VK_NVX_image_view_handle",{"number":4989,"type":3891,"author":4982,"provisional":3693,"depends":4990,"contact":4038,"extension":4991,"proposal":3693},98,"VK_KHR_multiview,VK_VERSION_1_1","VK_NVX_multiview_per_view_attributes",{"number":4993,"type":3891,"author":4018,"provisional":3693,"depends":4013,"platform":4186,"contact":4994,"extension":4995,"proposal":3693},346,"Jeff Juliano @jjuliano","VK_NV_acquire_winrt_display",{"number":4997,"type":3891,"author":4018,"provisional":3693,"contact":4986,"extension":4998,"proposal":3693},88,"VK_NV_clip_space_w_scaling",{"number":5000,"type":3891,"author":4018,"provisional":3693,"contact":5001,"extension":5002,"proposal":3693},560,"Lujin Wang @lujinwangnv","VK_NV_command_buffer_inheritance",{"number":5004,"type":3891,"author":4018,"promotedto":4597,"provisional":3693,"depends":3908,"contact":5005,"extension":5006,"proposal":3693},202,"Pat Brown @nvpbrown","VK_NV_compute_shader_derivatives",{"number":5008,"type":3891,"author":4018,"provisional":3693,"depends":3908,"contact":4038,"extension":5009,"proposal":3693},250,"VK_NV_cooperative_matrix",{"number":5011,"type":3891,"author":4018,"provisional":3693,"depends":5012,"contact":4148,"extension":5013,"proposal":3693},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":5015,"type":3891,"author":4018,"provisional":3693,"depends":3908,"contact":4356,"extension":5016,"proposal":3693},51,"VK_NV_corner_sampled_image",{"number":5018,"type":3891,"author":4018,"provisional":3693,"depends":5019,"contact":5020,"extension":5021,"proposal":3693},251,"VK_NV_framebuffer_mixed_samples+(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)","Kedarnath Thangudu @kthangudu","VK_NV_coverage_reduction_mode",{"number":5023,"type":3891,"author":4018,"provisional":1101,"contact":5024,"extension":5025,"proposal":3693},308,"Tristan Lorach @tlorach","VK_NV_cuda_kernel_launch",{"number":1701,"type":3891,"author":4018,"deprecatedby":4612,"provisional":3693,"contact":4038,"extension":5027,"proposal":3693},"VK_NV_dedicated_allocation",{"number":5029,"type":3891,"author":5030,"provisional":3693,"depends":5031,"contact":5032,"extension":5033,"proposal":3693},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":5035,"type":3891,"author":4018,"provisional":3693,"depends":4002,"contact":4044,"extension":5036,"proposal":3693},547,"VK_NV_descriptor_pool_overallocation",{"number":5038,"type":3891,"author":5030,"provisional":3693,"depends":3908,"contact":5032,"extension":5039,"proposal":3693},207,"VK_NV_device_diagnostic_checkpoints",{"number":5041,"type":3891,"author":4018,"provisional":3693,"depends":3908,"contact":5020,"extension":5042,"proposal":3693},301,"VK_NV_device_diagnostics_config",{"number":5044,"type":3891,"author":4018,"provisional":3693,"depends":5045,"contact":4283,"extension":5046,"proposal":3693},278,"(VK_VERSION_1_1+VK_KHR_buffer_device_address),VK_VERSION_1_2","VK_NV_device_generated_commands",{"number":5048,"type":3891,"author":4018,"provisional":3693,"depends":5046,"contact":4148,"extension":5049,"proposal":3693},429,"VK_NV_device_generated_commands_compute",{"number":5051,"type":3891,"author":4018,"provisional":1101,"depends":4318,"platform":3894,"contact":5052,"extension":5053,"proposal":3693},398,"Christoph Kubisch @pixeljetstream, Eric Werness @ewerness-nv","VK_NV_displacement_micromap",{"number":5055,"type":3891,"author":4018,"provisional":3693,"contact":5056,"extension":5057,"proposal":3693},493,"Russell Chou @russellcnv","VK_NV_extended_sparse_address_space",{"number":5059,"type":3891,"author":4018,"deprecatedby":4664,"provisional":3693,"depends":5060,"contact":4020,"extension":5061,"proposal":3693},57,"VK_NV_external_memory_capabilities","VK_NV_external_memory",{"number":5063,"type":4012,"author":4018,"deprecatedby":4667,"provisional":3693,"contact":4020,"extension":5060,"proposal":3693},56,{"number":5065,"type":3891,"author":4018,"provisional":3693,"depends":4155,"contact":4937,"extension":5066,"proposal":3693},372,"VK_NV_external_memory_rdma",{"extension":5068,"proposal":3693},"VK_NV_external_memory_sci_buf",{"number":5070,"type":3891,"author":4018,"deprecatedby":4672,"provisional":3693,"depends":5061,"platform":4186,"contact":4020,"extension":5071,"proposal":3693},58,"VK_NV_external_memory_win32",{"extension":5073,"proposal":3693},"VK_NV_external_sci_sync",{"extension":5075,"proposal":3693},"VK_NV_external_sci_sync2",{"number":5077,"type":3891,"author":4018,"provisional":3693,"contact":4038,"extension":5078,"proposal":3693},154,"VK_NV_fill_rectangle",{"number":5080,"type":3891,"author":4018,"provisional":3693,"contact":4038,"extension":5081,"proposal":3693},150,"VK_NV_fragment_coverage_to_color",{"number":5083,"type":3891,"author":4018,"promotedto":4691,"provisional":3693,"depends":3908,"contact":5005,"extension":5084,"proposal":3693},204,"VK_NV_fragment_shader_barycentric",{"number":5086,"type":3891,"author":4018,"provisional":3693,"depends":3573,"contact":5005,"extension":5087,"proposal":3693},327,"VK_NV_fragment_shading_rate_enums",{"number":5089,"type":3891,"author":4018,"provisional":3693,"contact":4038,"extension":5090,"proposal":3693},153,"VK_NV_framebuffer_mixed_samples",{"number":5092,"type":3891,"author":4018,"provisional":3693,"contact":4356,"extension":5093,"proposal":3693},96,"VK_NV_geometry_shader_passthrough",{"number":1516,"type":3891,"author":4018,"deprecatedby":4555,"provisional":3693,"contact":4044,"extension":5095,"proposal":3693},"VK_NV_glsl_shader",{"number":5097,"type":3891,"author":4018,"provisional":3693,"depends":3908,"contact":5098,"extension":5099,"proposal":3693},279,"David Zhao Akeley @akeley98","VK_NV_inherited_viewport_scissor",{"number":5101,"type":3891,"author":5030,"provisional":3693,"depends":3908,"contact":5102,"extension":5103,"proposal":3693},431,"sourav parmar @souravpNV","VK_NV_linear_color_attachment",{"number":5105,"type":3891,"author":4018,"provisional":3693,"contact":5106,"extension":5107,"proposal":3693},311,"Charles Hansen @cshansen","VK_NV_low_latency",{"number":5109,"type":3891,"author":4018,"provisional":3693,"depends":5110,"contact":5106,"extension":5111,"proposal":3693},506,"VK_VERSION_1_2,VK_KHR_timeline_semaphore","VK_NV_low_latency2",{"number":5113,"type":3891,"author":4018,"provisional":3693,"depends":5012,"contact":4148,"extension":5114,"proposal":3693},428,"VK_NV_memory_decompression",{"number":5116,"type":3891,"author":4018,"provisional":3693,"depends":3908,"contact":4283,"extension":5117,"proposal":3693},203,"VK_NV_mesh_shader",{"number":5119,"type":3891,"author":4018,"provisional":3693,"depends":5120,"contact":4937,"extension":5121,"proposal":3693},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":5123,"type":3891,"author":4018,"provisional":3693,"depends":4743,"contact":4044,"extension":5124,"proposal":3693},517,"VK_NV_per_stage_descriptor_set",{"number":5126,"type":3891,"author":4018,"provisional":3693,"depends":4185,"contact":5127,"extension":5128,"proposal":3693},293,"Liya Li @liyli","VK_NV_present_barrier",{"extension":5130,"proposal":3693},"VK_NV_private_vendor_info",{"number":5132,"type":3891,"author":4018,"provisional":3693,"contact":5133,"extension":5134,"proposal":3693},556,"Rodrigo Locatti @rlocatti","VK_NV_raw_access_chains",{"number":5136,"type":3891,"author":4018,"deprecatedby":4795,"provisional":3693,"depends":5137,"contact":4986,"extension":5138,"proposal":3693},166,"(VK_KHR_get_physical_device_properties2+VK_KHR_get_memory_requirements2),VK_VERSION_1_1","VK_NV_ray_tracing",{"number":5140,"type":3891,"author":4018,"provisional":3693,"depends":4795,"contact":4986,"extension":5141,"proposal":3693},491,"VK_NV_ray_tracing_invocation_reorder",{"number":5143,"type":3891,"author":4018,"provisional":3693,"depends":4795,"contact":4798,"extension":5144,"proposal":3693},328,"VK_NV_ray_tracing_motion_blur",{"number":5146,"type":3891,"author":4018,"provisional":3693,"contact":4148,"extension":5147,"proposal":1101},569,"VK_NV_ray_tracing_validation",{"number":5149,"type":3891,"author":4018,"provisional":3693,"depends":3908,"contact":5020,"extension":5150,"proposal":3693},167,"VK_NV_representative_fragment_test",{"number":5152,"type":3891,"author":4018,"provisional":3693,"contact":4044,"extension":5153,"proposal":3693},95,"VK_NV_sample_mask_override_coverage",{"number":5155,"type":3891,"author":4018,"provisional":3693,"depends":3908,"contact":5005,"extension":5156,"proposal":3693},206,"VK_NV_scissor_exclusive",{"number":5158,"type":3891,"author":4018,"provisional":3693,"contact":4038,"extension":5159,"proposal":3693},564,"VK_NV_shader_atomic_float16_vector",{"number":5161,"type":3891,"author":4018,"provisional":3693,"depends":3908,"contact":5005,"extension":5162,"proposal":3693},205,"VK_NV_shader_image_footprint",{"number":5164,"type":3891,"author":4018,"provisional":3693,"depends":4002,"contact":4356,"extension":5165,"proposal":3693},155,"VK_NV_shader_sm_builtins",{"number":5167,"type":3891,"author":4018,"provisional":3693,"depends":4002,"contact":4038,"extension":5168,"proposal":3693},199,"VK_NV_shader_subgroup_partitioned",{"number":5170,"type":3891,"author":4018,"provisional":3693,"depends":3908,"contact":5005,"extension":5171,"proposal":3693},165,"VK_NV_shading_rate_image",{"number":5173,"type":3891,"author":4018,"provisional":3693,"contact":4356,"extension":5174,"proposal":3693},97,"VK_NV_viewport_array2",{"number":5176,"type":3891,"author":4018,"provisional":3693,"contact":4044,"extension":5177,"proposal":3693},99,"VK_NV_viewport_swizzle",{"number":5179,"type":3891,"author":4018,"promotedto":4938,"provisional":3693,"depends":5071,"platform":4186,"contact":4937,"extension":5180,"proposal":3693},59,"VK_NV_win32_keyed_mutex",{"number":5182,"type":3891,"author":4167,"provisional":3693,"depends":5183,"contact":4168,"extension":5184,"proposal":3693},522,"(VK_EXT_filter_cubic)+(VK_VERSION_1_2,VK_EXT_sampler_filter_minmax)","VK_QCOM_filter_cubic_clamp",{"number":5186,"type":3891,"author":4167,"provisional":3693,"depends":4169,"contact":4168,"extension":5187,"proposal":3693},520,"VK_QCOM_filter_cubic_weights",{"number":5189,"type":3891,"author":4167,"provisional":3693,"depends":5190,"contact":4168,"extension":5191,"proposal":3693},426,"(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_EXT_fragment_density_map","VK_QCOM_fragment_density_map_offset",{"number":5193,"type":3891,"author":4167,"provisional":3693,"depends":5194,"contact":4168,"extension":5195,"proposal":1101},441,"VK_KHR_format_feature_flags2,VK_VERSION_1_3","VK_QCOM_image_processing",{"number":5197,"type":3891,"author":4167,"provisional":3693,"depends":5195,"contact":4168,"extension":5198,"proposal":3693},519,"VK_QCOM_image_processing2",{"number":5200,"type":3891,"author":4167,"provisional":3693,"contact":4168,"extension":5201,"proposal":3693},511,"VK_QCOM_multiview_per_view_render_areas",{"number":5203,"type":3891,"author":4167,"provisional":3693,"depends":3908,"contact":4168,"extension":5204,"proposal":3693},489,"VK_QCOM_multiview_per_view_viewports",{"number":5206,"type":3891,"author":4167,"provisional":3693,"contact":4168,"extension":5207,"proposal":3693},172,"VK_QCOM_render_pass_shader_resolve",{"number":5209,"type":3891,"author":4167,"provisional":3693,"contact":4168,"extension":5210,"proposal":3693},302,"VK_QCOM_render_pass_store_ops",{"number":5212,"type":3891,"author":4167,"provisional":3693,"contact":4168,"extension":5213,"proposal":3693},283,"VK_QCOM_render_pass_transform",{"number":5215,"type":3891,"author":4167,"provisional":3693,"depends":5216,"contact":4168,"extension":5217,"proposal":3693},334,"VK_KHR_copy_commands2,VK_VERSION_1_3","VK_QCOM_rotated_copy_commands",{"number":5219,"type":3891,"author":4167,"provisional":3693,"depends":3908,"contact":4168,"extension":5220,"proposal":1101},485,"VK_QCOM_tile_properties",{"number":5222,"type":3891,"author":4167,"provisional":3693,"contact":4168,"extension":5223,"proposal":3693},521,"VK_QCOM_ycbcr_degamma",{"number":5225,"type":3891,"author":5226,"provisional":3693,"depends":3981,"platform":5227,"contact":5228,"extension":5229,"proposal":3693},530,"QNX","screen","Mike Gorchak @mgorchak-blackberry, Aaron Ruby @aruby-blackberry","VK_QNX_external_memory_screen_buffer",{"number":5231,"type":4012,"author":5226,"provisional":3693,"depends":4125,"platform":5227,"contact":5232,"extension":5233,"proposal":3693},379,"Mike Gorchak @mgorchak-blackberry","VK_QNX_screen_surface",{"number":5235,"type":3891,"author":5236,"provisional":3693,"depends":3908,"contact":4111,"extension":5237,"proposal":3693},486,"SEC","VK_SEC_amigo_profiling",{"number":5239,"type":3891,"author":5240,"provisional":3693,"depends":3908,"specialuse":4083,"contact":4340,"extension":5241,"proposal":3693},421,"VALVE","VK_VALVE_descriptor_set_host_mapping",{"number":5243,"type":3891,"author":5240,"promotedto":4305,"provisional":3693,"depends":4303,"specialuse":4083,"contact":4304,"extension":5244,"proposal":3693},352,"VK_VALVE_mutable_descriptor_type",1725732657500]